watchbell 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -11
- package/bin/watchbell.mjs +735 -45
- package/package.json +1 -1
- package/scripts/node-runtime.mjs +166 -0
- package/scripts/selfhost-log.mjs +116 -0
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +105 -105
- package/server/.next/prerender-manifest.json +4 -4
- package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +32 -22
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +76 -74
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +34 -24
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +48 -38
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/(private)/ai/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +34 -24
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +40 -30
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +76 -74
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +77 -75
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +79 -76
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +75 -73
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +74 -44
- package/server/.next/server/app/(console)/alerts/page.js +78 -75
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +62 -52
- package/server/.next/server/app/(console)/apps/[id]/page.js +81 -79
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +34 -24
- package/server/.next/server/app/(console)/apps/page.js +77 -75
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +34 -24
- package/server/.next/server/app/(console)/backups/page.js +78 -76
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/catalog/page.js +76 -74
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +50 -40
- package/server/.next/server/app/(console)/connections/page.js +79 -77
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/d1/page.js +77 -75
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +40 -30
- package/server/.next/server/app/(console)/deployments/page.js +77 -75
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +42 -32
- package/server/.next/server/app/(console)/dns/page.js +80 -78
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +32 -22
- package/server/.next/server/app/(console)/domains/page.js +79 -77
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/events/page.js +76 -74
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +42 -32
- package/server/.next/server/app/(console)/firebase/page.js +78 -76
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/logs/page.js +75 -73
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/manage/sections/page.js +75 -73
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +50 -40
- package/server/.next/server/app/(console)/neon/page.js +80 -78
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +46 -36
- package/server/.next/server/app/(console)/overview/page.js +84 -82
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/repos/[id]/page.js +78 -76
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/repos/page.js +75 -73
- package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +48 -38
- package/server/.next/server/app/(console)/settings/page.js +76 -74
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +42 -32
- package/server/.next/server/app/(console)/sql/page.js +75 -73
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/status/page.js +78 -75
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +68 -58
- package/server/.next/server/app/(console)/supabase/page.js +85 -84
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/topology/page.js +77 -75
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/turso/page.js +76 -74
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/upstash/page.js +76 -74
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +56 -46
- package/server/.next/server/app/(console)/uptime/page.js +78 -76
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +38 -28
- package/server/.next/server/app/(console)/welcome/page.js +75 -73
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +4 -4
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js +14 -11
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +29 -24
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +29 -24
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +27 -24
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js +17 -18
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/collect/route.js +24 -24
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/daily/route.js +24 -24
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +23 -23
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +3 -3
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +3 -3
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js +2 -2
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +3 -3
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +3 -3
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +13 -13
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js +2 -2
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/build-manifest.json +3 -3
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js +22 -22
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js +31 -32
- package/server/.next/server/app/mfa/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js +31 -32
- package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/page/build-manifest.json +3 -3
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js +14 -11
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js +21 -20
- package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/setup/page/build-manifest.json +3 -3
- package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/setup/page.js +20 -18
- package/server/.next/server/app/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/signin/page/build-manifest.json +3 -3
- package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js +28 -28
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/chunks/{[externals]__0dolpidprtypa._.js → [externals]__0y_x27mdj85p4._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0pfohce9kbhcc._.js → [externals]__1fzfzd0ia0sk6._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1ou2ofma806s1._.js → [externals]__1qqyrxnupegg3._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0wbhuhlkn_ueu._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1cbg6fvn16har._.js → [root-of-the-server]__0032rbj2s87zo._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1-bvfylgbkjso._.js → [root-of-the-server]__02n6y6aa6qp1b._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__163-eo1vkbzx1._.js → [root-of-the-server]__03i6yscmtbhhg._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1x9u88f9545aa._.js → [root-of-the-server]__05qcc-0e8z1u8._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1p1k8nq50cwfy._.js → [root-of-the-server]__07bw6o0jc31yr._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14pgqdfdkuopi._.js → [root-of-the-server]__07eo--c90cju2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0iysztx_xio84._.js → [root-of-the-server]__07mzeijv31avl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__05ht00n_eiksb._.js → [root-of-the-server]__090in165mp6av._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__02s57amypj_ye._.js → [root-of-the-server]__09odxyho_9vk_._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0403hy52a1qcu._.js → [root-of-the-server]__0bmyll20mg_gf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08k886n7y6f_3._.js → [root-of-the-server]__0btybbrsr4abf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0hvejly8-nlkq._.js → [root-of-the-server]__0c-33noc8yn1-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1xrt934xl5wbd._.js → [root-of-the-server]__0d99wclm2suox._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0b136ghrklbbn._.js → [root-of-the-server]__0dsy-9ts8s-pn._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__01estsu5k8l4t._.js → [root-of-the-server]__0g1cifa7hd790._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0pwn8go30dm_3._.js → [root-of-the-server]__0gox66sv0bx47._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0w8qhgmo5c23i._.js → [root-of-the-server]__0hblpf7wqke-j._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0kgmy-sltdtb_._.js → [root-of-the-server]__0hlyn_aj72sn5._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0cskq__p3tja8._.js → [root-of-the-server]__0hnljrh9qi9t-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0xgl1cg3z00iz._.js → [root-of-the-server]__0hrtz5c_46jkw._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0iicsi0n7tfa5._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0dc0pz57q73va._.js → [root-of-the-server]__0kp0yx909wtab._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__04ruh9diphqtp._.js → [root-of-the-server]__0ku7nva3gxa9p._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1w-yk3b07wcf1._.js → [root-of-the-server]__0l6_iao04u72h._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1yzaj148hs9a1._.js → [root-of-the-server]__0l9ja3579qrju._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_64c807n6q9e._.js → [root-of-the-server]__0noc6l63d3l9w._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0nqbue6i0l3qs._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__04zuzs7oruu3o._.js → [root-of-the-server]__0nrg8zzqizk69._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1lbmzw1j9jufm._.js → [root-of-the-server]__0oy0hcm48kl-q._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0l5v9itfv9nhr._.js → [root-of-the-server]__0r1men25anfgb._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__05jzukkrp2pvu._.js → [root-of-the-server]__0s5b-tdq7rndj._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1ry92m8xlcebk._.js → [root-of-the-server]__0v-gc-c_e8pwl._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0wp6j3irilu76._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0t9o5ca5bzg0p._.js → [root-of-the-server]__0x487cn6dsn12._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11qvos_7nf8z8._.js → [root-of-the-server]__0yuyew8m9dc6-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1w9hei9xe1odr._.js → [root-of-the-server]__0zni_2pv2fdgb._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__10mob-6xfy8b0._.js → [root-of-the-server]__125fkw52kl2ty._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0m9648az7bkus._.js → [root-of-the-server]__16lfk1wg0ejaa._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1vmls0bkau925._.js → [root-of-the-server]__16waq6rapvngp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__18eg-mk5loj_8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1vutb2z9gw8el._.js → [root-of-the-server]__1adw_bv2u89kc._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1c653f_8qzrpd._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__00wz8qo4hgq2i._.js → [root-of-the-server]__1c78cu7kb9vkl._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1d5y0cc5mg_07._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hv3hk5182t-o._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1j6xniw630fg0._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1cwr95yi8preu._.js → [root-of-the-server]__1jsf0jf_ljpsm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1fj8d0drhw1yx._.js → [root-of-the-server]__1lerees-l5-6c._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1sb8d4e5b5pdl._.js → [root-of-the-server]__1lj1f2w2-w8nw._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1nu5isiy7d832._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0sfnhgc5reef1._.js → [root-of-the-server]__1ooxluowhatjt._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0i3bs_98vlttu._.js → [root-of-the-server]__1rpgddeg42i-q._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1r9j5o80kocvz._.js → [root-of-the-server]__1s4bwjevs4hd-._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1uox9a0td-o0-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vvg0ur3_7o0p._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1zcp6yrat15t5._.js → [root-of-the-server]__1wpdlr4uh1un4._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1x7en4waq21dd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1x813cg-b9rls._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1147qf6sf3ru4._.js → [root-of-the-server]__1xl6_spngp6k3._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1lfidps4tcfkg._.js → [root-of-the-server]__1y2qf8ltxhk0o._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1z_0gt-w6bx9v._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1w_wtn9h9eu93._.js → [root-of-the-server]__1zvoez8iapsem._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__209g3_0l-y67u._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20pu-tixzpeev._.js +3 -0
- package/server/.next/server/chunks/_0-fp57b-utmuw._.js +1 -1
- package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
- package/server/.next/server/chunks/_004j-wbs3yn84._.js +1 -1
- package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
- package/server/.next/server/chunks/_06lf75x-xhl7v._.js +1 -1
- package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
- package/server/.next/server/chunks/_0brb2454uen18._.js +1 -1
- package/server/.next/server/chunks/_0dkhprw6wsizx._.js +1 -1
- package/server/.next/server/chunks/_0duxuj4kmjibl._.js +46 -0
- package/server/.next/server/chunks/_0gz8ldqeokdtn._.js +1 -1
- package/server/.next/server/chunks/_0kmhvts35imzs._.js +4 -4
- package/server/.next/server/chunks/_0l_hz-8cj94r7._.js +3 -0
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0ofzzim090ezo._.js +1 -1
- package/server/.next/server/chunks/_0q3ygdztfvqq6._.js +3 -0
- package/server/.next/server/chunks/{_1msi9fy888xna._.js → _0q9a3ettj_h2s._.js} +2 -2
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +7 -7
- package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +3 -0
- package/server/.next/server/chunks/_0rwuppwyvemfj._.js +4 -4
- package/server/.next/server/chunks/{_1z8__gxixw-z-._.js → _0ry4553j-m5fp._.js} +3 -3
- package/server/.next/server/chunks/_0s2odl9xacsg0._.js +1 -1
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
- package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
- package/server/.next/server/chunks/_0voowig3y32v1._.js +4 -4
- package/server/.next/server/chunks/_0wtlf0x_depae._.js +3 -0
- package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +2 -2
- package/server/.next/server/chunks/_0zj10_al6r59j._.js +26 -26
- package/server/.next/server/chunks/_1-pcsy2hkg0il._.js +3 -0
- package/server/.next/server/chunks/_1-pw7jw52sbti._.js +1 -1
- package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
- package/server/.next/server/chunks/_113ebzq_9i756._.js +46 -0
- package/server/.next/server/chunks/{_219klbycazlx_._.js → _16urxazbgm48y._.js} +3 -3
- package/server/.next/server/chunks/_17aiz6zt-yv52._.js +2 -2
- package/server/.next/server/chunks/_18p-vw2zmdx9f._.js +1 -1
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
- package/server/.next/server/chunks/_1_xsrlijknnh3._.js +1 -1
- package/server/.next/server/chunks/_1a5vma58w9ytn._.js +4 -4
- package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +26 -26
- package/server/.next/server/chunks/{_060yqv0qyo-lp._.js → _1g8r-7wcf8sy3._.js} +3 -3
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +7 -7
- package/server/.next/server/chunks/_1h73gul79s8pi._.js +1 -1
- package/server/.next/server/chunks/_1ihndlef8r00f._.js +46 -0
- package/server/.next/server/chunks/_1mwb214-ablfo._.js +46 -0
- package/server/.next/server/chunks/_1ngkjn56qmi2x._.js +3 -0
- package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +4 -4
- package/server/.next/server/chunks/_1xs2ya_n7kb04._.js +4 -4
- package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +1 -1
- package/server/.next/server/chunks/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/{src_0lcm1yhnzhn2d._.js → src_00ixvrjrk_2h4._.js} +2 -2
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
- package/server/.next/server/chunks/{src_0v67kw2p2wd_c._.js → src_0tdn7mun5rvc6._.js} +2 -2
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
- package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/{src_0390zcofy42lg._.js → src_10vyvp9vy_69h._.js} +2 -2
- package/server/.next/server/chunks/{src_1v3tf1ye2jzyk._.js → src_13n1vi7uew4iu._.js} +2 -2
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
- package/server/.next/server/chunks/{src_07vqa8fdgu9ah._.js → src_1il7wg_qjxny7._.js} +2 -2
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +7 -4
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +7 -4
- package/server/.next/server/chunks/src_20ilndq84j3b3._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +6 -0
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +6 -0
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -9
- package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +6 -0
- package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +9 -0
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -9
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -9
- package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +9 -0
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_1xwavi_m_li7p._.js +1 -1
- package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +6 -0
- package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
- package/server/.next/server/chunks/src_lib_data_advisor-db_ts_0rl1ug3iana24._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +6 -6
- package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
- package/server/.next/server/chunks/src_lib_local-auth_setup_ts_10d8-k_e6pvft._.js +2 -2
- package/server/.next/server/chunks/src_lib_notify_telegram-bot_ts_18y40dkchmcqd._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/src_private_ai_gateway_ts_1qtr4nyb8kgnd._.js +2 -2
- package/server/.next/server/chunks/src_private_assist_provider-answer_ts_10qv42t-5046y._.js +1 -1
- package/server/.next/server/chunks/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
- package/server/.next/server/chunks/src_private_assist_questions-db_ts_1pc4g504t-qmu._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +4 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +3 -0
- package/server/.next/server/chunks/ssr/{[externals]__0jv_q8g96gubg._.js → [externals]__00tbi838eotwu._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1hqh7fi0-rtlc._.js → [externals]__01kgu896o9-9t._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1neu6qld_ilyx._.js → [externals]__078uqm46tk5mo._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0yzs5m5hot2o2._.js → [externals]__0i0hmh-a743jn._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0et8619os7o06._.js → [externals]__0qc7l-41h018j._.js} +1 -1
- package/server/.next/server/chunks/ssr/[externals]__194b54tqm6qaq._.js +3 -0
- package/server/.next/server/chunks/ssr/[externals]__1_ttbfsdm3x1-._.js +3 -0
- package/server/.next/server/chunks/ssr/{[externals]__0x50_fipcza3k._.js → [externals]__1devsqn7ez77y._.js} +1 -1
- package/server/.next/server/chunks/ssr/[externals]__1prfp5pzeoflz._.js +3 -0
- package/server/.next/server/chunks/ssr/[externals]__1zxtjc2qr2epg._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0oayb8dm0iu8k._.js → [root-of-the-server]__004q78ed0nf0_._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__01zthkv8nrlct._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__050d99bknjdvq._.js → [root-of-the-server]__04_prmhm_cts4._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-jx3t8dg8n5t._.js → [root-of-the-server]__04nc91kiy757l._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xwqrik2sugmi._.js → [root-of-the-server]__09blzlbsxqvy9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-o5i-5pqjk5v._.js → [root-of-the-server]__0_6on4a5w76va._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tco2ec6ha1k6._.js → [root-of-the-server]__0a3n6wzq8xui9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ptdec0sozaqm._.js → [root-of-the-server]__0an0wsglj2bhh._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18xb7pbdmiyiz._.js → [root-of-the-server]__0ban7lwqlko9y._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khp_gsot3jh_._.js → [root-of-the-server]__0c_q6tvcmsmt9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__00wwav5k7xmy0._.js → [root-of-the-server]__0ct4apye0sfmc._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__15keslh0ov5mv._.js → [root-of-the-server]__0d2ry7-u1cv8c._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0e8ya6wyy2plv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0h0txd7z3sxq7._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__08w3ad-xux1g4._.js → [root-of-the-server]__0h1vffivfh242._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__05hw89gap74cw._.js → [root-of-the-server]__0i0_6dnnf0hov._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khvq0xdah931._.js → [root-of-the-server]__0jgapr1cnvhi6._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_1130gx52k-9._.js → [root-of-the-server]__0jn0o2e32mwcp._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ojywxj06986-._.js → [root-of-the-server]__0k29b_kblv6sv._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ejxk0jlgi4eb._.js → [root-of-the-server]__0keo0-hwsnkw9._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0klc2dyzyjeba._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__16jkttbe1yoai._.js → [root-of-the-server]__0l50vsk8enxzj._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11ham42w_feik._.js → [root-of-the-server]__0o0cpvobd-u0n._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0kr_tvfgqtb-o._.js → [root-of-the-server]__0paolyy3xkow9._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0qnly-gjvfntd._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0qqcz9ynsgmgl._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1k_hi9mbd4_by._.js → [root-of-the-server]__0qwds8dkahd2_._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0bn_thc_vtf_i._.js → [root-of-the-server]__0rdf04ziqasfz._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_677ii9bahoy._.js → [root-of-the-server]__0ronqmm1xpldk._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0uxychcp_pldy._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0vnfx03nb5vku._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0x7w-5h8or6qr._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__15wwi1pda8ims._.js → [root-of-the-server]__0xpkzaqer75i-._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__04klr3-4qi7-t._.js → [root-of-the-server]__107gjehjdhw8p._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10kuehp7saz8h._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__113zn8es2wp67._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__04tkts7c9ylma._.js → [root-of-the-server]__13fabu66slkfb._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__14ept-_l8j32m._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__15s9onrf73-k8._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__10rhqv5xq9jaj._.js → [root-of-the-server]__191t_hhtr-k27._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19l_r5vy3kxo1._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1096-q3_trmm9._.js → [root-of-the-server]__1_b_k8wgqyxy7._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0exp042uqhyqs._.js → [root-of-the-server]__1a7x--bos5pv8._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1adcmllk9wt5l._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1d5tbv79yjhqm._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1itgt83qo1e77._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12ymdwm8dphvu._.js → [root-of-the-server]__1mumjk3h0om80._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1nat8lbog5imr._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1p2oghl9lfgmk._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tcu4-eowz9vt._.js → [root-of-the-server]__1pwd99rch8xyl._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0llh-w4ta1qbp._.js → [root-of-the-server]__1sw2q1p1t59y8._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__06uaa_2zbg57p._.js → [root-of-the-server]__1tj-iwvrxfd1a._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12-a3tcnfdcyq._.js → [root-of-the-server]__1u_13nhw3kuz3._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0tjab3yn0asf7._.js → [root-of-the-server]__1uojs0x42k86p._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1kieqcc6kdywx._.js → [root-of-the-server]__1yx8ayym979jd._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmavjo5fhryp._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__20of6xa16fwqa._.js +1 -1
- package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +3 -0
- package/server/.next/server/chunks/ssr/{_04ltmruop4rt3._.js → _02eudwc8ieb2r._.js} +3 -3
- package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +3 -0
- package/server/.next/server/chunks/ssr/_03od6e8ibcxtf._.js +3 -0
- package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +3 -0
- package/server/.next/server/chunks/ssr/{_090fib2x989oc._.js → _08xqk3eibu5aw._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_01irlde8uxva8._.js → _0_8v3-nq-b4ug._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1ag8axv14phju._.js → _0cbbks0ms7i_u._.js} +3 -3
- package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +4 -0
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/{_14n2368190qms._.js → _0fq8thje0tuch._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +4 -0
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +4 -0
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +4 -0
- package/server/.next/server/chunks/ssr/{_0tqc0bsnybvva._.js → _0ipnb60-_660b._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +3 -0
- package/server/.next/server/chunks/ssr/{_022u_nnwo1yb4._.js → _0kxkg0dbp42ai._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0lmcrl8r9dg49._.js +1 -1
- package/server/.next/server/chunks/ssr/_0mp5aext18ijx._.js +3 -0
- package/server/.next/server/chunks/ssr/_0ns_087lx5abm._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/{_18lgd6o04ugow._.js → _0oub-njkja8gu._.js} +3 -3
- package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +4 -0
- package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +3 -0
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +4 -0
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +4 -0
- package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
- package/server/.next/server/chunks/ssr/_0wb79bnj96x0g._.js +3 -0
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +4 -0
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +5 -5
- package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_11llsmv578p2i._.js +3 -0
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +4 -0
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_xsrlijknnh3._.js +1 -1
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +4 -0
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1de6e6l7599fp._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +4 -0
- package/server/.next/server/chunks/ssr/_1dqf3jmb24s37._.js +1 -1
- package/server/.next/server/chunks/ssr/_1e47r3tlad52r._.js +3 -0
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +4 -0
- package/server/.next/server/chunks/ssr/{_1w_rq6clcs0ft._.js → _1fuywfexex2s8._.js} +3 -3
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
- package/server/.next/server/chunks/ssr/_1h93joqd_-1og._.js +1 -1
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +4 -0
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +4 -0
- package/server/.next/server/chunks/ssr/{_0hmxyfx7su4uk._.js → _1m4km_w39x5e9._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +4 -0
- package/server/.next/server/chunks/ssr/_1qdox4yn1u4pc._.js +1 -1
- package/server/.next/server/chunks/ssr/_1qdqc9j_skd1q._.js +1 -1
- package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +4 -0
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_20wy2moxkzhf0._.js +3 -0
- package/server/.next/server/chunks/ssr/{_026w_ig6vy9bt._.js → _218164gkxgum_._.js} +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_0bqq4kab3lt4c._.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_05z64qbskywkh._.js → node_modules_1-uce_v-roeci._.js} +1 -1
- package/server/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_index_parts_mjs_0wvx70_xziwkw._.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kkewzcx4540.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00t5_cu_8xco2.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_028rm32yw9745.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02tytjla8gfpw.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05tff2l0grv3d.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08qavwdx-gipt.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09jdr97vksmwk.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c3z69fbbz6-a.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d4hxwzkts-8z.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dq-zslzf2s94.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_1q_82vyl-q7u6.js → node_modules_next_dist_esm_build_templates_app-page_0e-rjmezj0qkk.js} +2 -2
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0ivgh76j_tu2x.js → node_modules_next_dist_esm_build_templates_app-page_0e50mslm8ys4t.js} +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0esqulnipbhj7.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0icasmc2qvtfa.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0idohkgskbja5.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ii2a6tud83pj.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ivr2dcq7hh5t.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mcwghl-di24f.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0n05qgf2t9o6n.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ntej2bo95ns3.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0o1l93c0tj-p8.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ollx_iq739y6.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v16m5nv0x43b.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0wa_9ywaoqxrf.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0y94b-zvw0vrq.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ydzswpddtx9q.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zwpkpyuh6z99.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14t5-0abqp0sm.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18h3ke4tl-fzl.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_14-4y3i6c1vxc.js → node_modules_next_dist_esm_build_templates_app-page_19kqs-fc2i0zv.js} +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_s_25znkg8mz.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_ysa6fs0tt59.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b4hixza89i52.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1brrqdx4msjzf.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1e74o7dar2z12.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eqpqmdz9jgs0.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1f3932777ye1o.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kx1n5-wqjvko.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1l6umnmh89nvy.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mdyuengydtxm.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmm1wm-dfm_v.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t-fn8blx1hp8.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tf9xiz17b3cq.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tffdbiasnszd.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uisz6sszlhwp.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1umag21mbk-rs.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0i3p3qfjihm3f.js → node_modules_next_dist_esm_build_templates_app-page_1vakvu0qtsn07.js} +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wmviw4zw6t_r.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xq449tjypb4s.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
- package/server/.next/server/chunks/ssr/src_02ynbzyh8nn02._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_0oagnv9_4qww7._.js → src_05kvmrkq5nfyh._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_0905fjqu0qv57._.js → src_097wa6oc_utgr._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +6 -3
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_071xsnvnzlvj8._.js → src_1751lvujjc-tz._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1f1x6508qetmp._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_1nse4o3frj33x._.js → src_1fomo1_as1-ea._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1pd5lqhm1x4yf._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1sv5tf2pk5-pn._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_0widudneyf0oq._.js → src_1wnx8vxv7nd04._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_0p2-zm5eewkqo._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_1za4o0--zhso5._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1jme7fm7ej_lr._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_06v-xlrxfp079._.js → src_app_signin_11vigmz4xm91m._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_0-x11r8_844pu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_0_xymno8nakru._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_0ozvphxxwb7d-._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_0tmtbf2etsx03._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_charts_tsx_0u0c5sxi3-7ug._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_live_tsx_1p2s3b807w0jt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +7 -1
- package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1xwavi_m_li7p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1zgor_vrwl5kt._.js +5 -0
- package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
- package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_github-db_ts_02xuh84m-__8z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_demo_15okweo0amos4._.js → src_lib_demo_07uq47fhms-3d._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_local-auth_setup_ts_05zj7z33ne4f5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_security_node-runtime_ts_1jei00s21d6v0._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_network_ts_0toa7t-gw9cup._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_telegram-approvals_ts_14gvz6qi_j4aa._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +6 -6
- package/server/.next/server/chunks/ssr/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +105 -105
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +860 -674
- package/server/.next/static/chunks/04ospu_w--6p9.js +1 -0
- package/server/.next/static/chunks/06a83nde7riq-.js +1 -0
- package/server/.next/static/chunks/088c6cw88jmlb.js +7 -0
- package/server/.next/static/chunks/08f1euchlacye.js +1 -0
- package/server/.next/static/chunks/09e-vdlax9bp6.js +1 -0
- package/server/.next/static/chunks/{0rgn3-cks0udn.js → 0a-rekt06v0sv.js} +1 -1
- package/server/.next/static/chunks/{3zaeh5nbkqpyj.js → 0a4b85ckxbprh.js} +1 -1
- package/server/.next/static/chunks/0buwzrf7dpagn.js +1 -0
- package/server/.next/static/chunks/0dmql-jz-o69o.js +1 -0
- package/server/.next/static/chunks/0iyozrryj1w49.js +1 -0
- package/server/.next/static/chunks/{0r2z8zg4n43pd.js → 0jf5lpzwq4vh1.js} +1 -1
- package/server/.next/static/chunks/0p6hja9octhrd.js +1 -0
- package/server/.next/static/chunks/{2wd8yh_ni0lqj.js → 0qoql97izcn4l.js} +1 -1
- package/server/.next/static/chunks/0qsk0bb1x81nc.js +1 -0
- package/server/.next/static/chunks/{22ierqxhqtwn6.js → 0wkv5e-c430ea.js} +2 -2
- package/server/.next/static/chunks/0x41o1ud_ksl1.js +1 -0
- package/server/.next/static/chunks/0x_wb_w6fgkyt.js +1 -0
- package/server/.next/static/chunks/{0foc_dy1j2x52.js → 12bbufru1ui37.js} +1 -1
- package/server/.next/static/chunks/{25r6-t40ok5s9.js → 12zasgv1xisb5.js} +1 -1
- package/server/.next/static/chunks/{2yjh4ytp-sedv.js → 149lk0boxihnl.js} +1 -1
- package/server/.next/static/chunks/17lwu-2id6c_-.js +1 -0
- package/server/.next/static/chunks/{16lnw4itnfhw-.js → 1_93oj1b-nrla.js} +1 -1
- package/server/.next/static/chunks/1bt81ubbahkh6.js +1 -0
- package/server/.next/static/chunks/1c0s-ejiwfy2u.js +1 -0
- package/server/.next/static/chunks/1g_kip3m3h9q6.js +1 -0
- package/server/.next/static/chunks/1i8i1ieoh738i.js +1 -0
- package/server/.next/static/chunks/1s0s32oqy-54t.js +1 -0
- package/server/.next/static/chunks/1ss-6-h8nloc9.js +1 -0
- package/server/.next/static/chunks/1t8fe3w70uapo.js +1 -0
- package/server/.next/static/chunks/1t9f2pdc3crnr.js +1 -0
- package/server/.next/static/chunks/1urtw14pwufsv.js +1 -0
- package/server/.next/static/chunks/1wh-ps6a57yj1.js +1 -0
- package/server/.next/static/chunks/20ujg0hz_need.js +1 -0
- package/server/.next/static/chunks/23b9tctw1mn5a.js +76 -0
- package/server/.next/static/chunks/292uz-rsh422k.js +1 -0
- package/server/.next/static/chunks/{11gctw6uutyd7.js → 29xg947lkf4-x.js} +1 -1
- package/server/.next/static/chunks/2ac9gyn8mzqp4.js +1 -0
- package/server/.next/static/chunks/2fze_cnwk8j76.js +1 -0
- package/server/.next/static/chunks/2g9dossbqnlr7.js +1 -0
- package/server/.next/static/chunks/{2aerfowxsf234.js → 2l4upq4bwgvvu.js} +1 -1
- package/server/.next/static/chunks/{177dd6kiifsoi.js → 2pi0r5spn0slc.js} +1 -1
- package/server/.next/static/chunks/2rpa_j81h_45y.js +1 -0
- package/server/.next/static/chunks/2szc6dvuj3gxy.js +1 -0
- package/server/.next/static/chunks/2u3iceaxpiiws.js +1 -0
- package/server/.next/static/chunks/2z21xxtcmsmhe.js +1 -0
- package/server/.next/static/chunks/{1rt5heq1xn_az.js → 315s21b2dd7lg.js} +1 -1
- package/server/.next/static/chunks/35to2q1uretcv.js +1 -0
- package/server/.next/static/chunks/{2q88116332v43.js → 37zqf9hef7g0k.js} +1 -1
- package/server/.next/static/chunks/38-ay595f3xie.js +1 -0
- package/server/.next/static/chunks/38ao1jq4zw-nd.js +1 -0
- package/server/.next/static/chunks/38conxv_f-pgo.js +1 -0
- package/server/.next/static/chunks/3cyesi3hi6l1g.js +5 -0
- package/server/.next/static/chunks/{04lzxilmq17f_.js → 3efi_dyz4y0lj.js} +1 -1
- package/server/.next/static/chunks/3qjirj3rjf5mu.js +1 -0
- package/server/.next/static/chunks/3vpy-ra0rib9m.js +1 -0
- package/server/.next/static/chunks/{22h4lj0gp_6n5.js → 3xxcpv79l5tnh.js} +1 -1
- package/server/.next/static/chunks/3ybb15n1q3f-o.css +3 -0
- package/server/drizzle-selfhost/0007_webhook_channel.sql +5 -0
- package/server/drizzle-selfhost/meta/_journal.json +7 -0
- package/tools/reset-login.mjs +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0ych1y0j6e38k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zhzy29i2vylk._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zwe7i-isx08p._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10ee5dhzx78ne._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10q3dc485yp4l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10u93zgn0-c5a._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__115yxhfn37r-k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14mz6mbk2m_e0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__15y82djobfhof._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__165qlmqwvxmzr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1acps2oi9s0i7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1erq9v_t5jwp5._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ip0gr1i080kn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1mrpvwofqktnv._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ppnnpydkrs93._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qdo_hgivrawk._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qp_dvfy4vvsm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rk6wb8qem46d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s20vd1etiird._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s9_nmhp7chvj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1yc_xjjam78sg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__2067x8gf07f-i._.js +0 -3
- package/server/.next/server/chunks/_0beox3lp9z58-._.js +0 -3
- package/server/.next/server/chunks/_0gobsd0_oxj5v._.js +0 -3
- package/server/.next/server/chunks/_0vwctvzwde-sz._.js +0 -37
- package/server/.next/server/chunks/_0yzmfi6iwa_sk._.js +0 -3
- package/server/.next/server/chunks/_1c3ksp22eq0rw._.js +0 -37
- package/server/.next/server/chunks/_1cjfskikk32wj._.js +0 -37
- package/server/.next/server/chunks/_1d9mf39gz0bv4._.js +0 -3
- package/server/.next/server/chunks/_1dlvqnaceqr-_._.js +0 -3
- package/server/.next/server/chunks/_1jveb9aojczvg._.js +0 -3
- package/server/.next/server/chunks/_1qw43v448l9e7._.js +0 -37
- package/server/.next/server/chunks/src_0yve3gn52i_mn._.js +0 -3
- package/server/.next/server/chunks/src_lib_0cbh80jxsdx3n._.js +0 -6
- package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +0 -9
- package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +0 -9
- package/server/.next/server/chunks/src_lib_15y0kwcot_7u0._.js +0 -6
- package/server/.next/server/chunks/src_lib_16y1secb8t9fj._.js +0 -6
- package/server/.next/server/chunks/src_lib_1iwyh213u9xts._.js +0 -6
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +0 -4
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1mmmc4yhx5fm6._.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1nv-uycpa6_lh._.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1p5zuqwmfkoo1._.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1thdbok76xtof._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__01mgajn73iwc7._.js +0 -5
- package/server/.next/server/chunks/ssr/[root-of-the-server]__05q-laapy00sk._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0dd9rci1isdjf._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0lehuiyzxp78t._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0p7d9dfmuhnvv._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0tp9vtckbkk9o._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10y2ig7dg3f-k._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__194546bqpq02e._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1bvp2ia3h9qbs._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1dyjzbqwy6o12._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1l695djsioelp._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1pfk0fqey3ipf._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1pgpryg9lkmoz._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1t4thrxlv4zre._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1tuftf7fags7x._.js +0 -5
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1vyste6xyyu37._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1yf4_oyl-3xp7._.js +0 -3
- package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +0 -4
- package/server/.next/server/chunks/ssr/_06kn13xh_13da._.js +0 -3
- package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +0 -4
- package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +0 -4
- package/server/.next/server/chunks/ssr/_0i2a_ziqzhyq-._.js +0 -3
- package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +0 -4
- package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +0 -4
- package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +0 -4
- package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +0 -3
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +0 -3
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +0 -4
- package/server/.next/server/chunks/ssr/_0ymtfa6vo-yz5._.js +0 -3
- package/server/.next/server/chunks/ssr/_0yn1xeumiigj0._.js +0 -3
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +0 -4
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +0 -4
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +0 -4
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +0 -4
- package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +0 -4
- package/server/.next/server/chunks/ssr/_1dlvqnaceqr-_._.js +0 -3
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +0 -4
- package/server/.next/server/chunks/ssr/_1e5zfwgdf0mm5._.js +0 -3
- package/server/.next/server/chunks/ssr/_1h5tfqxzqd2tz._.js +0 -3
- package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +0 -4
- package/server/.next/server/chunks/ssr/_1k8rjvzlscs56._.js +0 -3
- package/server/.next/server/chunks/ssr/_1l-vlfiltmzu3._.js +0 -3
- package/server/.next/server/chunks/ssr/_1wssvwkmxcdn5._.js +0 -3
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +0 -4
- package/server/.next/server/chunks/ssr/_20gx4od4pnj8d._.js +0 -3
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +0 -4
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_1_u5afwqp6brs._.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kg_ige9ehqj.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00k37tbaia8dh.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00z_p6szkga15.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01-utr59mtfg1.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_055hw7kwif935.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06fg_efdkc3kx.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08f3d08smwt6_.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcfro9qovjn.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c8wd69fns_0d.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0cha-3kg99u4h.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d_0he72lzkh9.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0f6chw8z5cuyg.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j9-_xhs21abp.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kwpdjujljna-.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rer2akuum5r-.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0umt_achusjjb.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0un7wq602mt3n.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vrdl9n7guitd.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vse2cboy4cms.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0x7ey4_8b48_o.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z8l8t55t65t_.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zap6p0vuv-fp.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-m49cfu6a7gl.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-w3hswsbrppl.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1167zbjp4ys_a.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_129serqqq3xyq.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12en3pdvxu0dy.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1596hk9t3r1a5.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17us24ry0om-z.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_8xi22-aoxu1.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_l32aoya75_m.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ar0v26274uhj.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dkgfjoaf_1g3.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eg14m09zdg__.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1h_y671y1la_8.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mkokmyyp47hd.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1msjiuu45famw.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mw7isdchouml.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n4cotiug2a_r.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1njl24pr6dwrt.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o1_3bydb-3j5.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1pjor42_s9imf.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qta4yeufzpz7.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qxbl6k6dji0s.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_21a3kf8buivxw.js +0 -3
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0ley8c3htc2q9._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0ubtruqmercw2._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0vi30frvjgri2._.js +0 -3
- package/server/.next/server/chunks/ssr/src_12sdm7skn8fr1._.js +0 -3
- package/server/.next/server/chunks/ssr/src_16lx0qdi44evh._.js +0 -3
- package/server/.next/server/chunks/ssr/src_17yq6_bqlwgvy._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1n-6pz04odixj._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_05mlxmavgli8_._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_0u1ec16rmzze6._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_1yp2m9j9dnsv-._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_ui_dropdown-menu_tsx_1xyz_k6bpdu_5._.js +0 -3
- package/server/.next/static/chunks/01mhc6kz81iwf.js +0 -1
- package/server/.next/static/chunks/02byu0sw5d0g9.js +0 -1
- package/server/.next/static/chunks/02e07gc948zdh.js +0 -1
- package/server/.next/static/chunks/04yl9t4cn6zwm.js +0 -1
- package/server/.next/static/chunks/08oksl0raetg5.js +0 -1
- package/server/.next/static/chunks/0d556cjlmwiq4.js +0 -1
- package/server/.next/static/chunks/0jm8a63677590.js +0 -1
- package/server/.next/static/chunks/0lcmy-_tdtrqk.js +0 -1
- package/server/.next/static/chunks/0ld0vtd027il_.js +0 -1
- package/server/.next/static/chunks/0qciunoy58a03.js +0 -7
- package/server/.next/static/chunks/0r-2mywc7qkb_.js +0 -1
- package/server/.next/static/chunks/0xwz6ps1581qa.js +0 -1
- package/server/.next/static/chunks/1-zyqj42cr9hy.css +0 -3
- package/server/.next/static/chunks/12l7tr29-a97t.js +0 -1
- package/server/.next/static/chunks/160mk2sltxl3e.js +0 -1
- package/server/.next/static/chunks/1bn-7bluoi2vi.js +0 -1
- package/server/.next/static/chunks/1d0mukiro5klq.js +0 -1
- package/server/.next/static/chunks/1jc8ghvf721gg.js +0 -76
- package/server/.next/static/chunks/1nfofl7nhy6fx.js +0 -1
- package/server/.next/static/chunks/1x8bgprfjtt59.js +0 -1
- package/server/.next/static/chunks/1yctclvh0qaxz.js +0 -1
- package/server/.next/static/chunks/1zyyqxguxs96l.js +0 -1
- package/server/.next/static/chunks/23scyaimkowfl.js +0 -1
- package/server/.next/static/chunks/2lfa16b0tlnvj.js +0 -1
- package/server/.next/static/chunks/2onhuya5-n3-e.js +0 -1
- package/server/.next/static/chunks/2pn16qmann41d.js +0 -1
- package/server/.next/static/chunks/2szlo15y09085.js +0 -1
- package/server/.next/static/chunks/2v_f39dz8sa3-.js +0 -1
- package/server/.next/static/chunks/2xhx4rma6gx5o.js +0 -1
- package/server/.next/static/chunks/37f1rjolzxbiv.js +0 -1
- package/server/.next/static/chunks/38c9rnljzl6iw.js +0 -1
- package/server/.next/static/chunks/3_erdlvi2tz19.js +0 -1
- package/server/.next/static/chunks/3qbk8r6jm8udo.js +0 -5
- package/server/.next/static/chunks/3sg_npfod25zq.js +0 -1
- package/server/.next/static/chunks/3tl9dgour-h9l.js +0 -1
- package/server/.next/static/chunks/3vbz762vgy3dx.js +0 -1
- package/server/.next/static/chunks/3wi43ltm1e5iy.js +0 -1
- package/server/.next/static/chunks/3yljsdgzvrkdf.js +0 -1
- package/server/.next/static/chunks/42z3imsp11da1.js +0 -1
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_buildManifest.js +0 -0
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module.exports=[[889593,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={bootstrap:function(){return d},error:function(){return p},errorOnce:function(){return k},event:function(){return g},info:function(){return h},prefixes:function(){return s},ready:function(){return m},trace:function(){return y},wait:function(){return c},warn:function(){return f},warnOnce:function(){return w}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(116770),o=e.r(899509),s={wait:(0,i.white)((0,i.bold)("○")),error:(0,i.red)((0,i.bold)("⨯")),warn:(0,i.yellow)((0,i.bold)("⚠")),ready:"▲",info:(0,i.white)((0,i.bold)(" ")),event:(0,i.green)((0,i.bold)("✓")),trace:(0,i.magenta)((0,i.bold)("»"))},l={log:"log",warn:"warn",error:"error"};function u(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in l?l[e]:"log",n=s[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function d(e){console.log(e)}function c(...e){u("wait",...e)}function p(...e){u("error",...e)}function f(...e){u("warn",...e)}function m(...e){u("ready",...e)}function h(...e){u("info",...e)}function g(...e){u("event",...e)}function y(...e){u("trace",...e)}let b=new o.LRUCache(1e4,e=>e.length);function w(...e){let t=e.join(" ");b.has(t)||(b.set(t,t),f(...e))}let v=new o.LRUCache(1e4,e=>e.length);function k(...e){let t=e.join(" ");v.has(t)||(v.set(t,t),p(...e))}},973697,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return o},FLIGHT_HEADERS:function(){return m},NEXT_ACTION_NOT_FOUND_HEADER:function(){return k},NEXT_ACTION_REVALIDATED_HEADER:function(){return I},NEXT_DID_POSTPONE_HEADER:function(){return y},NEXT_HMR_REFRESH_HEADER:function(){return d},NEXT_HTML_REQUEST_ID_HEADER:function(){return A},NEXT_INSTANT_TEST_COOKIE:function(){return f},NEXT_IS_PRERENDER_HEADER:function(){return v},NEXT_REQUEST_ID_HEADER:function(){return _},NEXT_REWRITTEN_PATH_HEADER:function(){return b},NEXT_REWRITTEN_QUERY_HEADER:function(){return w},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return u},NEXT_ROUTER_STALE_TIME_HEADER:function(){return g},NEXT_ROUTER_STATE_TREE_HEADER:function(){return s},NEXT_RSC_UNION_QUERY:function(){return h},NEXT_URL:function(){return c},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="rsc",o="next-action",s="next-router-state-tree",l="next-router-prefetch",u="next-router-segment-prefetch",d="next-hmr-refresh",c="next-url",p="text/x-component",f="next-instant-navigation-testing",m=[i,s,l,d,u],h="_rsc",g="x-nextjs-stale-time",y="x-nextjs-postponed",b="x-nextjs-rewritten-path",w="x-nextjs-rewritten-query",v="x-nextjs-prerender",k="x-nextjs-action-not-found",_="x-nextjs-request-id",A="x-nextjs-html-request-id",I="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},165356,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Batcher",{enumerable:!0,get:function(){return a}});let n=e.r(900338);class a{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new a(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let a=this.pending.get(r);if(a)return a;let{promise:i,resolve:o,reject:s}=(0,n.createPromiseWithResolvers)();return this.pending.set(r,i),this.schedulerFn(async()=>{try{let r=await t({resolve:o,key:e});o(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),i}}},419372,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return U},CACHE_ONE_YEAR_SECONDS:function(){return N},DOT_NEXT_ALIAS:function(){return q},ESLINT_DEFAULT_DIRS:function(){return es},GSP_NO_RETURNED_VALUE:function(){return et},GSSP_COMPONENT_MEMBER_ERROR:function(){return ea},GSSP_NO_RETURNED_VALUE:function(){return er},HTML_CONTENT_TYPE_HEADER:function(){return o},INFINITE_CACHE:function(){return P},INSTRUMENTATION_HOOK_FILENAME:function(){return M},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return O},MIDDLEWARE_LOCATION_REGEXP:function(){return C},NEXT_BODY_SUFFIX:function(){return w},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return x},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return _},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return A},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return E},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return R},NEXT_CACHE_TAGS_HEADER:function(){return k},NEXT_CACHE_TAG_MAX_ITEMS:function(){return $},NEXT_CACHE_TAG_MAX_LENGTH:function(){return T},NEXT_DATA_SUFFIX:function(){return y},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return b},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return v},NEXT_QUERY_PARAM_PREFIX:function(){return l},NEXT_RESUME_HEADER:function(){return I},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return S},NON_STANDARD_NODE_ENV:function(){return ei},PAGES_DIR_ALIAS:function(){return z},PRERENDER_REVALIDATE_HEADER:function(){return c},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return p},PROXY_FILENAME:function(){return j},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return X},ROOT_DIR_ALIAS:function(){return L},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return W},RSC_ACTION_ENCRYPTION_ALIAS:function(){return F},RSC_ACTION_PROXY_ALIAS:function(){return V},RSC_ACTION_VALIDATE_ALIAS:function(){return B},RSC_CACHE_WRAPPER_ALIAS:function(){return G},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return K},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return h},SERVER_PROPS_EXPORT_ERROR:function(){return ee},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return el},SSG_FALLBACK_EXPORT_ERROR:function(){return eo},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return J},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return en},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return ep},WEB_SOCKET_MAX_RECONNECTIONS:function(){return eu}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",o="text/html; charset=utf-8",s="application/json; charset=utf-8",l="nxtP",u="nxtI",d="x-matched-path",c="x-prerender-revalidate",p="x-prerender-revalidate-if-generated",f=".segments",m=".segment.rsc",h=".rsc",g=".action",y=".json",b=".meta",w=".body",v="x-nextjs-deployment-id",k="x-next-cache-tags",_="x-next-revalidated-tags",A="x-next-revalidate-tag-token",I="next-resume",S="x-next-resume-state-length",$=128,T=256,R=1024,x="_N_T_",E="_N_RP_",N=31536e3,P=0xfffffffe,O="middleware",C=`(?:src/)?${O}`,j="proxy",D=`(?:src/)?${j}`,M="instrumentation",z="private-next-pages",q="private-dot-next",L="private-next-root-dir",U="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",B="private-next-rsc-action-validate",V="private-next-rsc-server-reference",G="private-next-rsc-cache-wrapper",K="private-next-rsc-track-dynamic-import",F="private-next-rsc-action-encryption",W="private-next-rsc-action-client-wrapper",X="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",J="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",ee="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",et="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",er="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",en="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ea="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ei='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',eo="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",es=["app","pages","components","lib","src"],el={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},eu=12,ed={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...ed,GROUP:{builtinReact:[ed.reactServerComponents,ed.actionBrowser],serverOnly:[ed.reactServerComponents,ed.actionBrowser,ed.instrument,ed.middleware],neutralTarget:[ed.apiNode,ed.apiEdge],clientOnly:[ed.serverSideRendering,ed.appPagesBrowser],bundled:[ed.reactServerComponents,ed.actionBrowser,ed.serverSideRendering,ed.appPagesBrowser,ed.shared,ed.instrument,ed.middleware],appPages:[ed.reactServerComponents,ed.serverSideRendering,ed.appPagesBrowser,ed.actionBrowser]}},ep={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},116770,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a={bgBlack:function(){return N},bgBlue:function(){return j},bgCyan:function(){return M},bgGreen:function(){return O},bgMagenta:function(){return D},bgRed:function(){return P},bgWhite:function(){return z},bgYellow:function(){return C},black:function(){return k},blue:function(){return S},bold:function(){return m},cyan:function(){return R},dim:function(){return h},gray:function(){return E},green:function(){return A},hidden:function(){return w},inverse:function(){return b},isColorSupported:function(){return u},italic:function(){return g},magenta:function(){return $},purple:function(){return T},red:function(){return _},reset:function(){return f},stdoutIsTerminal:function(){return d},strikethrough:function(){return v},underline:function(){return y},white:function(){return x},yellow:function(){return I}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let{env:o,stdout:s}=(null==(n=globalThis)?void 0:n.process)??{},l=o&&!o.NO_COLOR&&(o.FORCE_COLOR||(null==s?void 0:s.isTTY)&&!o.CI&&"dumb"!==o.TERM),u=!!l,d=!!(null==s?void 0:s.isTTY)||"1"===o.NEXT_PRIVATE_PROMPT_OUTPUT,c=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),o=i.indexOf(t);return~o?a+c(i,t,r,o):a+i},p=(e,t,r=e)=>l?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+c(a,t,r,i)+t:e+a+t}:String,f=l?e=>`\x1b[0m${e}\x1b[0m`:String,m=p("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),h=p("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),g=p("\x1b[3m","\x1b[23m"),y=p("\x1b[4m","\x1b[24m"),b=p("\x1b[7m","\x1b[27m"),w=p("\x1b[8m","\x1b[28m"),v=p("\x1b[9m","\x1b[29m"),k=p("\x1b[30m","\x1b[39m"),_=p("\x1b[31m","\x1b[39m"),A=p("\x1b[32m","\x1b[39m"),I=p("\x1b[33m","\x1b[39m"),S=p("\x1b[34m","\x1b[39m"),$=p("\x1b[35m","\x1b[39m"),T=p("\x1b[38;2;173;127;168m","\x1b[39m"),R=p("\x1b[36m","\x1b[39m"),x=p("\x1b[37m","\x1b[39m"),E=p("\x1b[90m","\x1b[39m"),N=p("\x1b[40m","\x1b[49m"),P=p("\x1b[41m","\x1b[49m"),O=p("\x1b[42m","\x1b[49m"),C=p("\x1b[43m","\x1b[49m"),j=p("\x1b[44m","\x1b[49m"),D=p("\x1b[45m","\x1b[49m"),M=p("\x1b[46m","\x1b[49m"),z=p("\x1b[47m","\x1b[49m")},403559,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return d},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return c},getOrCreateGlobalAsyncLocalStorage:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available");class o{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return s?new s:new o}function u(e){let t=Symbol.for(`@next/${e}@16.4.2`),r=globalThis;return r[t]??=l()}function d(e){return s?s.bind(e):o.bind(e)}function c(){return s?s.snapshot():function(e,...t){return e(...t)}}},110118,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={isNodeNextRequest:function(){return s},isNodeNextResponse:function(){return l},isWebNextRequest:function(){return i},isWebNextResponse:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e=>!1,o=e=>!1,s=e=>!0,l=e=>!0},696482,(e,t,r)=>{let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"cloneResponse",{enumerable:!0,get:function(){return i}});let a=()=>{};function i(e){if(!e.body)return[e,e];let[t,r]=e.body.tee(),a=new Response(t,{status:e.status,statusText:e.statusText,headers:e.headers});Object.defineProperty(a,"url",{value:e.url,configurable:!0,enumerable:!0,writable:!1});let i=new Response(r,{status:e.status,statusText:e.statusText,headers:e.headers});return Object.defineProperty(i,"url",{value:e.url,configurable:!0,enumerable:!0,writable:!1}),n&&(a.body&&n.register(a,new WeakRef(a.body)),i.body&&n.register(i,new WeakRef(i.body))),[a,i]}globalThis.FinalizationRegistry&&(n=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(a)}))},840578,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createDedupeFetch",{enumerable:!0,get:function(){return l}});let n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=o(void 0);if(t&&t.has(e))return t.get(e);var r={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=n?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}(e.r(910931)),a=e.r(696482),i=e.r(585346);function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}let s=new Set(["traceparent","tracestate"]);function l(e){let t=n.cache(e=>[]);return function(r,n){let o,l;if(n&&n.signal)return e(r,n);if("string"!=typeof r||n){let t,a="string"==typeof r||r instanceof URL?new Request(r,n):r;if("GET"!==a.method&&"HEAD"!==a.method||a.keepalive)return e(r,n);t=Array.from(a.headers.entries()).filter(([e])=>!s.has(e.toLowerCase())),l=JSON.stringify([a.method,t,a.mode,a.redirect,a.credentials,a.referrer,a.referrerPolicy,a.integrity]),o=a.url}else l='["GET",[],null,"follow",null,null,null,null]',o=r;let u=t(o);for(let e=0,t=u.length;e<t;e+=1){let[t,r]=u[e];if(t===l)return r.then(()=>{let t=u[e][2];if(!t)throw new i.InvariantError("No cached response");let[r,n]=(0,a.cloneResponse)(t);return u[e][2]=n,r})}let d=e(r,n),c=[l,d,null];return u.push(c),d.then(e=>{let[t,r]=(0,a.cloneResponse)(e);return c[2]=r,t})}}},387637,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeHeaderSafe",{enumerable:!0,get:function(){return i}});let n=/[^\t\x20-\x7e]/,a=/[^\t\x20-\x7e]+/g;function i(e){return n.test(e)?e.replace(a,e=>encodeURIComponent(e)):e}},899509,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"LRUCache",{enumerable:!0,get:function(){return i}});class n{constructor(e,t,r){this.prev=null,this.next=null,this.key=e,this.data=t,this.size=r}}class a{constructor(){this.prev=null,this.next=null}}class i{constructor(e,t,r){this.cache=new Map,this.totalSize=0,this.maxSize=e,this.calculateSize=t,this.onEvict=r,this.head=new a,this.tail=new a,this.head.next=this.tail,this.tail.prev=this.head}addToHead(e){e.prev=this.head,e.next=this.head.next,this.head.next.prev=e,this.head.next=e}removeNode(e){e.prev.next=e.next,e.next.prev=e.prev}moveToHead(e){this.removeNode(e),this.addToHead(e)}removeTail(){let e=this.tail.prev;return this.removeNode(e),e}set(e,t){let r=(null==this.calculateSize?void 0:this.calculateSize.call(this,t,e))??1;if(r<=0)throw Error(`LRUCache: calculateSize returned ${r}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`);if(r>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let a=this.cache.get(e);if(a)a.data=t,this.totalSize=this.totalSize-a.size+r,a.size=r,this.moveToHead(a);else{let a=new n(e,t,r);this.cache.set(e,a),this.addToHead(a),this.totalSize+=r}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let e=this.removeTail();this.cache.delete(e.key),this.totalSize-=e.size,null==this.onEvict||this.onEvict.call(this,e.key,e.data)}return!0}has(e){return this.cache.has(e)}get(e){let t=this.cache.get(e);if(t)return this.moveToHead(t),t.data}*[Symbol.iterator](){let e=this.head.next;for(;e&&e!==this.tail;){let t=e;yield[t.key,t.data],e=e.next}}remove(e){let t=this.cache.get(e);t&&(this.removeNode(t),this.cache.delete(e),this.totalSize-=t.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},188232,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={NEXT_PATCH_SYMBOL:function(){return y},createPatchedFetcher:function(){return A},patchFetch:function(){return I},validateRevalidate:function(){return b},validateTags:function(){return w}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(387064),o=e.r(631653),s=e.r(640007),l=e.r(166541),u=e.r(419372),d=e.r(258200),c=e.r(225176),p=e.r(840578),f=e.r(832319),m=e.r(153960),h=e.r(696482);e.r(865832);let g=e.r(387637),y=Symbol.for("next-patch");function b(e,t){try{let r;if(!1===e||1/0===e)r=u.INFINITE_CACHE;else if("number"==typeof e&&!isNaN(e)&&e>-1)r=e;else if(void 0!==e)throw Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`);return r}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}function w(e,t){let r=[],n=[];for(let a=0;a<e.length;a++){let i=e[a];if("string"!=typeof i?n.push({tag:i,reason:"invalid type, must be a string"}):i.length>u.NEXT_CACHE_TAG_MAX_LENGTH?n.push({tag:i,reason:`exceeded max length of ${u.NEXT_CACHE_TAG_MAX_LENGTH}`}):r.push((0,g.encodeHeaderSafe)(i)),r.length>u.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${t}, dropped tags:`,e.slice(a).join(", "));break}}if(n.length>0)for(let{tag:e,reason:r}of(console.warn(`Warning: invalid tags passed to ${t}: `),n))console.log(`tag: "${e}" ${r}`);return r}function v(e,t,r){let n={...r,end:performance.timeOrigin+performance.now(),idx:e.nextFetchId||0};if(null==t||t.setAttributes({"http.status_code":n.status,"next.fetch.idx":n.idx,"next.fetch.cache_status":n.cacheStatus,"next.fetch.cache_reason":n.cacheReason}),(0,o.isRequestInsightsEnabled)()){let t=(0,s.getRequestInsightsIdentity)(),r=(null==t?void 0:t.requestId)??e.requestId;r&&(0,o.recordRequestInsightFetch)({requestId:r,kind:null==t?void 0:t.kind,htmlRequestId:(null==t?void 0:t.htmlRequestId)??e.htmlRequestId,route:e.route},{url:n.url,method:n.method,statusCode:n.status,startTime:n.start,durationMs:n.end-n.start,cacheStatus:n.cacheStatus,cacheReason:n.cacheReason,index:n.idx})}e.shouldTrackFetchMetrics&&(e.fetchMetrics??=[],e.fetchMetrics.push(n))}async function k(e,t,r,n,a,i){let o=await e.arrayBuffer(),s={headers:Object.fromEntries(e.headers.entries()),body:Buffer.from(o).toString("base64"),status:e.status,url:e.url};return r&&await n.set(t,{kind:m.CachedRouteKind.FETCH,data:s,revalidate:a},r),await i(),new Response(o,{headers:e.headers,status:e.status,statusText:e.statusText})}async function _(e,t,r,n,a,i,o,s,l,u){let[d,c]=(0,h.cloneResponse)(t),p=d.arrayBuffer().then(async e=>{let t=Buffer.from(e),s={headers:Object.fromEntries(d.headers.entries()),body:t.toString("base64"),status:d.status,url:d.url};null==i||i.set(r,s),n&&await a.set(r,{kind:m.CachedRouteKind.FETCH,data:s,revalidate:o},n)}).catch(e=>{(null==u?void 0:u.aborted)||console.warn("Failed to set fetch cache",s,e)}).finally(l),f=`cache-set-${r}`,g=e.pendingRevalidates??={},y=Promise.resolve();return f in g&&(y=g[f]),g[f]=y.then(()=>p).finally(()=>{(null==g?void 0:g[f])&&delete g[f]}),c}function A(e,{workAsyncStorage:t,workUnitAsyncStorage:r}){let n=async function(n,a){var o,s;let p;try{(p=new URL(n instanceof Request?n.url:n)).username="",p.password=""}catch{p=void 0}let g=(null==p?void 0:p.href)??"",y=(null==a||null==(o=a.method)?void 0:o.toUpperCase())||"GET",A=(null==a||null==(s=a.next)?void 0:s.internal)===!0,I="1"===process.env.NEXT_OTEL_FETCH_DISABLED,$=A?void 0:performance.timeOrigin+performance.now(),T=t.getStore(),R=r.getStore(),x=R?(0,f.getCacheSignal)(R):null;x&&x.beginRead();let E=(0,l.getTracer)().trace(A?i.NextNodeServerSpan.internalFetch:i.AppRenderSpan.fetch,{hideSpan:I,kind:l.SpanKind.CLIENT,spanName:["fetch",y,g].filter(Boolean).join(" "),attributes:{"http.url":g,"http.method":y,"net.peer.name":null==p?void 0:p.hostname,"net.peer.port":(null==p?void 0:p.port)||void 0}},async t=>{var r;let i,o,s,l,p,y;if(A||!T||T.isDraftMode)return e(n,a);let I=n&&"object"==typeof n&&"string"==typeof n.method;if(I&&a){let{next:e,...t}=a;n=new Request(n,t),a=e?{next:e}:void 0}let E=e=>(null==a?void 0:a[e])||(I?n[e]:null),N=e=>{var t,r,i;return void 0!==(null==a||null==(t=a.next)?void 0:t[e])?null==a||null==(r=a.next)?void 0:r[e]:I?null==(i=n.next)?void 0:i[e]:void 0},P=N("revalidate"),O=P,C=w(N("tags")||[],`fetch ${n.toString()}`);if(R)switch(R.type){case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":case"prerender-legacy":case"cache":case"private-cache":i=R}if(i&&Array.isArray(C)){let e=i.tags??(i.tags=[]);for(let t of C)e.includes(t)||e.push(t)}let j=null==R?void 0:R.implicitTags,D=T.fetchCache;R&&"unstable-cache"===R.type&&(D="force-no-store");let M=!!T.isUnstableNoStore,z=E("cache"),q="";"string"==typeof z&&void 0!==O&&("force-cache"===z&&0===O||"no-store"===z&&(O>0||!1===O))&&(o=`Specified "cache: ${z}" and "revalidate: ${O}", only one should be specified.`,z=void 0,O=void 0);let L="no-cache"===z||"no-store"===z||"force-no-store"===D||"only-no-store"===D,U=!D&&!z&&!O&&T.forceDynamic;"force-cache"===z&&void 0===O?O=!1:(L||U)&&(O=0),("no-cache"===z||"no-store"===z)&&(q=`cache: ${z}`),y=b(O,T.route);let H=E("headers"),B="function"==typeof(null==H?void 0:H.get)?H:new Headers(H||{}),V=B.get("authorization")||B.get("cookie"),G=!["get","head"].includes((null==(r=E("method"))?void 0:r.toLowerCase())||"get"),K=void 0==D&&(void 0==z||"default"===z)&&void 0==O,F=!!((V||G)&&(null==i?void 0:i.revalidate)===0),W=!1;if(!F&&K&&(T.isBuildTimePrerendering?W=!0:F=!0),K&&void 0!==R)switch(R.type){case"prerender":case"prerender-runtime":case"prerender-client":return x&&(x.endRead(),x=null),(0,c.makeDynamicHangingPromise)(R.renderSignal,T.route,"fetch()")}switch(D){case"force-no-store":q="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===z||void 0!==y&&y>0)throw Error(`cache: 'force-cache' used on fetch for ${g} with 'export const fetchCache = 'only-no-store'`);q="fetchCache = only-no-store";break;case"only-cache":if("no-store"===z)throw Error(`cache: 'no-store' used on fetch for ${g} with 'export const fetchCache = 'only-cache'`);break;case"force-cache":(void 0===O||0===O)&&(q="fetchCache = force-cache",y=u.INFINITE_CACHE)}if(void 0===y?"default-cache"!==D||M?"default-no-store"===D?(y=0,q="fetchCache = default-no-store"):M?(y=0,q="noStore call"):F?(y=0,q="auto no cache"):(q="auto cache",y=i?i.revalidate:u.INFINITE_CACHE):(y=u.INFINITE_CACHE,q="fetchCache = default-cache"):q||(q=`revalidate: ${y}`),!(T.forceStatic&&0===y)&&!F&&i&&y<i.revalidate){if(0===y){if(R)switch(R.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return x&&(x.endRead(),x=null),(0,c.makeDynamicHangingPromise)(R.renderSignal,T.route,"fetch()")}(0,d.markCurrentScopeAsDynamic)(T,R,`revalidate: 0 fetch ${n} ${T.route}`)}i&&P===y&&(i.revalidate=y)}let X="number"==typeof y&&y>0,{incrementalCache:J}=T,Y=!1;if(R)switch(R.type){case"request":case"cache":case"private-cache":Y=R.isHmrRefresh??!1,l=R.serverComponentsHmrCache}if(J&&(X||l))try{s=await J.generateCacheKey(g,I?n:a)}catch(e){console.error("Failed to generate cache key for",n,e)}let Z=T.nextFetchId??1;T.nextFetchId=Z+1;let Q=()=>{},ee=async(r,i)=>{let d=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...r?[]:["signal"]];if(I){let e=n,t={body:e._ogBody||e.body};for(let r of d)t[r]=e[r];n=new Request(e.url,t)}else if(a){let{_ogBody:e,body:t,signal:n,...i}=a;a={...i,body:e||t,signal:r?void 0:n}}let c={...a,next:{...null==a?void 0:a.next,fetchType:"origin",fetchIdx:Z}};return e(n,c).then(async e=>{if(!r&&$&&v(T,t,{start:$,url:g,cacheReason:i||q,cacheStatus:0===y||i?"skip":"miss",cacheWarning:o,status:e.status,method:c.method||"GET"}),200===e.status&&J&&s&&(X||l)){let t=y>=u.INFINITE_CACHE?u.CACHE_ONE_YEAR_SECONDS:y,r=X?{fetchCache:!0,fetchUrl:g,fetchIdx:Z,tags:C,isImplicitBuildTimeCache:W}:void 0;switch(null==R?void 0:R.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return k(e,s,r,J,t,Q);case"request":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"build-time-generator":case void 0:return _(T,e,s,r,J,l,t,n,Q,E("signal"))}}return await Q(),e}).catch(e=>{throw Q(),e})},et=!1,er=!1;if(s&&J){let e;if(Y&&l&&(e=l.get(s),er=!0),X&&!e){Q=await J.lock(s);let t=T.isOnDemandRevalidate?null:await J.get(s,{kind:m.IncrementalCacheKind.FETCH,revalidate:y,fetchUrl:g,fetchIdx:Z,tags:C,softTags:null==j?void 0:j.tags});if(K&&R)switch(R.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":await (S||(S=new Promise(e=>{setTimeout(()=>{S=null,e()},0)})),S)}if(t?await Q():p="cache-control: no-cache (hard refresh)",(null==t?void 0:t.value)&&t.value.kind===m.CachedRouteKind.FETCH)if((0,f.willConsumerServerCache)(R)&&t.isStale)et=!0;else{if(t.isStale&&(T.pendingRevalidates??={},!T.pendingRevalidates[s])){let e=ee(!0).then(async e=>({body:await e.arrayBuffer(),headers:e.headers,status:e.status,statusText:e.statusText})).finally(()=>{T.pendingRevalidates??={},delete T.pendingRevalidates[s||""]});e.catch(console.error),T.pendingRevalidates[s]=e}e=t.value.data}}if(e){$&&v(T,t,{start:$,url:g,cacheReason:q,cacheStatus:er?"hmr":"hit",cacheWarning:o,status:e.status||200,method:(null==a?void 0:a.method)||"GET"});let r=new Response(Buffer.from(e.body,"base64"),{headers:e.headers,status:e.status});return Object.defineProperty(r,"url",{value:e.url}),r}}if(a&&"object"==typeof a&&function(e){if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return!0;case"request":case"prerender-runtime":case"validation-client":case"build-time-generator":return!1;default:return e}}(R)){let{cache:e}=a;if("no-store"===e){if(R)switch(R.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return x&&(x.endRead(),x=null),(0,c.makeDynamicHangingPromise)(R.renderSignal,T.route,"fetch()")}(0,d.markCurrentScopeAsDynamic)(T,R,`no-store fetch ${n} ${T.route}`)}let t="next"in a,{next:r={}}=a;if("number"==typeof r.revalidate&&i&&r.revalidate<i.revalidate){if(0===r.revalidate){if(R)switch(R.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return(0,c.makeDynamicHangingPromise)(R.renderSignal,T.route,"fetch()")}(0,d.markCurrentScopeAsDynamic)(T,R,`revalidate: 0 fetch ${n} ${T.route}`)}T.forceStatic&&0===r.revalidate||(i.revalidate=r.revalidate)}t&&delete a.next}if(!s||!et)return ee(!1,p);{let e=s;T.pendingRevalidates??={};let t=T.pendingRevalidates[e];if(t){let e=await t;return new Response(e.body,{headers:e.headers,status:e.status,statusText:e.statusText})}let r=ee(!0,p).then(h.cloneResponse);return(t=r.then(async e=>{let t=e[0];return{body:await t.arrayBuffer(),headers:t.headers,status:t.status,statusText:t.statusText}}).finally(()=>{var t;(null==(t=T.pendingRevalidates)?void 0:t[e])&&delete T.pendingRevalidates[e]})).catch(()=>{}),T.pendingRevalidates[e]=t,r.then(e=>e[1])}});if(x)try{return await E}finally{x&&x.endRead()}return E};return n.__nextPatched=!0,n.__nextGetStaticStore=()=>t,n._nextOriginalFetch=e,globalThis[y]=!0,Object.defineProperty(n,"name",{value:"fetch",writable:!1}),n}function I(e){if(!0===globalThis[y])return;let t=(0,p.createDedupeFetch)(globalThis.fetch);globalThis.fetch=A(t,e)}let S=null},387064,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a,i,o,s,l,u,d,c,p,f,m,h,g,y,b,w={AppRenderSpan:function(){return R},AppRouteRouteHandlersSpan:function(){return P},AppRouteRouteModuleSpan:function(){return O},BaseServerSpan:function(){return k},DevBundlerServiceSpan:function(){return x},InstrumentationSpan:function(){return A},LoadComponentsSpan:function(){return _},LogSpanAllowList:function(){return z},MiddlewareSpan:function(){return D},NextNodeServerSpan:function(){return S},NextServerSpan:function(){return I},NextVanillaSpanAllowlist:function(){return M},NodeSpan:function(){return N},RenderSpan:function(){return T},ResolveMetadataSpan:function(){return j},RouteModuleSpan:function(){return C},RouterSpan:function(){return E},StartServerSpan:function(){return $}};for(var v in w)Object.defineProperty(r,v,{enumerable:!0,get:w[v]});var k=((n=k||{}).handleRequest="BaseServer.handleRequest",n.run="BaseServer.run",n.pipe="BaseServer.pipe",n.getStaticHTML="BaseServer.getStaticHTML",n.render="BaseServer.render",n.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",n.renderToResponse="BaseServer.renderToResponse",n.renderToHTML="BaseServer.renderToHTML",n.renderError="BaseServer.renderError",n.renderErrorToResponse="BaseServer.renderErrorToResponse",n.renderErrorToHTML="BaseServer.renderErrorToHTML",n.render404="BaseServer.render404",n),_=((a=_||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",a.loadComponents="LoadComponents.loadComponents",a.loadRouteModule="LoadComponents.loadRouteModule",a),A=((i=A||{}).loadModule="Instrumentation.loadModule",i.register="Instrumentation.register",i),I=((o=I||{}).getRequestHandler="NextServer.getRequestHandler",o.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",o.getServer="NextServer.getServer",o.getServerRequestHandler="NextServer.getServerRequestHandler",o.createServer="createServer.createServer",o),S=((s=S||{}).compression="NextNodeServer.compression",s.getBuildId="NextNodeServer.getBuildId",s.createComponentTree="NextNodeServer.createComponentTree",s.clientComponentLoading="NextNodeServer.clientComponentLoading",s.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",s.generateStaticRoutes="NextNodeServer.generateStaticRoutes",s.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",s.generatePublicRoutes="NextNodeServer.generatePublicRoutes",s.generateImageRoutes="NextNodeServer.generateImageRoutes.route",s.sendRenderResult="NextNodeServer.sendRenderResult",s.proxyRequest="NextNodeServer.proxyRequest",s.runApi="NextNodeServer.runApi",s.render="NextNodeServer.render",s.renderHTML="NextNodeServer.renderHTML",s.imageOptimizer="NextNodeServer.imageOptimizer",s.getPagePath="NextNodeServer.getPagePath",s.getRoutesManifest="NextNodeServer.getRoutesManifest",s.findPageComponents="NextNodeServer.findPageComponents",s.getFontManifest="NextNodeServer.getFontManifest",s.getServerComponentManifest="NextNodeServer.getServerComponentManifest",s.getRequestHandler="NextNodeServer.getRequestHandler",s.renderToHTML="NextNodeServer.renderToHTML",s.renderError="NextNodeServer.renderError",s.renderErrorToHTML="NextNodeServer.renderErrorToHTML",s.render404="NextNodeServer.render404",s.startResponse="NextNodeServer.startResponse",s.route="route",s.onProxyReq="onProxyReq",s.apiResolver="apiResolver",s.internalFetch="internalFetch",s),$=((l=$||{}).startServer="startServer.startServer",l),T=((u=T||{}).getServerSideProps="Render.getServerSideProps",u.getStaticProps="Render.getStaticProps",u.renderToString="Render.renderToString",u.renderDocument="Render.renderDocument",u.createBodyResult="Render.createBodyResult",u),R=((d=R||{}).renderToString="AppRender.renderToString",d.renderToReadableStream="AppRender.renderToReadableStream",d.getBodyResult="AppRender.getBodyResult",d.fetch="AppRender.fetch",d.waitShellReady="AppRender.waitShellReady",d.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",d.instantInsights="AppRender.instantInsights",d.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",d.instantInsightsRunValidation="AppRender.instantInsights.runValidation",d),x=((c=x||{}).ensurePage="DevBundlerService.ensurePage",c),E=((p=E||{}).executeRoute="Router.executeRoute",p),N=((f=N||{}).runHandler="Node.runHandler",f),P=((m=P||{}).runHandler="AppRouteRouteHandlers.runHandler",m),O=((h=O||{}).loadUserland="AppRouteRouteModule.loadUserland",h),C=((g=C||{}).prepare="RouteModule.prepare",g.loadManifests="RouteModule.loadManifests",g),j=((y=j||{}).generateMetadata="ResolveMetadata.generateMetadata",y.generateViewport="ResolveMetadata.generateViewport",y),D=((b=D||{}).execute="Middleware.execute",b);let M=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","LoadComponents.loadRouteModule","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","AppRouteRouteModule.loadUserland","RouteModule.prepare","Instrumentation.loadModule","Instrumentation.register","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),z=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},640007,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getRequestInsightsIdentity:function(){return l},runWithRequestInsightsIdentity:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(403559);function o(){return(0,i.getOrCreateGlobalAsyncLocalStorage)("request-insights-identity-storage")}function s(e,t){return o().run(e,t)}function l(){return o().getStore()}},631653,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={clearRequestInsightsForTest:function(){return h},getRequestInsightsSnapshot:function(){return f},isRequestInsightsEnabled:function(){return o.isRequestInsightsEnabled},recordRequestInsightFetch:function(){return p},recordRequestInsightSpan:function(){return c},subscribeRequestInsights:function(){return m}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(438924),o=e.r(55507),s=Symbol.for("@next/request-insights-store"),l=new Set(["http.method","http.route","http.status_code","http.url","net.peer.name","net.peer.port","next.fetch.cache_reason","next.fetch.cache_status","next.fetch.idx","next.route","next.rsc","next.segment","next.span_category","next.span_name","next.span_type"]),u=/(?:^|[_-])(?:access[_-]?token|api[_-]?key|auth|authorization|code|cookie|credential|id[_-]?token|jwt|key|password|secret|session|signature|sig|token)(?:$|[_-])/i;class d{recordSpan(e){var t,r,n,a;let i;if(!e.requestId)return;let o=this.getOrCreateRequest({requestId:e.requestId,kind:e.requestInsightKind,htmlRequestId:e.htmlRequestId,route:e.route,url:e.url},e.startTime??e.timestamp),s=e.startTime??e.timestamp;o.htmlRequestId=e.htmlRequestId??o.htmlRequestId,o.route=o.route??e.route,o.url=o.url??w(e.url),this.updateTiming(o,s,e.durationMs,(null==(t=e.attributes)?void 0:t["next.span_type"])==="BaseServer.handleRequest"),o.status="error"===o.status||"error"===e.status?"error":"ok"===e.status?"ok":o.status,o.spans.push({name:e.name,startTime:s,durationMs:e.durationMs,status:e.status,traceId:e.traceId,spanId:e.spanId,parentSpanId:e.parentSpanId,attributes:b(e.attributes),links:null==(r=e.links)?void 0:r.map(e=>({...e,attributes:b(e.attributes)})),events:null==(n=e.events)?void 0:n.map(e=>({...e,attributes:b(e.attributes)})),error:e.error});let l=(i=(a=e).attributes)&&"AppRender.fetch"===i["next.span_type"]?{url:w(v(i["http.url"])??a.url),method:v(i["http.method"]),statusCode:k(i["http.status_code"]),startTime:a.startTime??a.timestamp,durationMs:a.durationMs,cacheStatus:v(i["next.fetch.cache_status"]),cacheReason:v(i["next.fetch.cache_reason"]),index:k(i["next.fetch.idx"])}:null;l&&this.recordFetchForInsight(o,l),this.notify(o)}recordFetch(e,t){if(!e.requestId)return;let r=t.startTime??performance.timeOrigin+performance.now(),n=this.getOrCreateRequest(e,r);this.updateTiming(n,r,t.durationMs,!1),this.recordFetchForInsight(n,y(t)),this.notify(n)}getSnapshot(){return{requests:this.requestOrder.map(e=>this.requests.get(e)).filter(e=>void 0!==e)}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}clear(){this.requests.clear(),this.requestTimings.clear(),this.requestOrder.length=0}updateTiming(e,t,r,n){let a=(0,i.getRequestInsightKey)(e);if(n&&void 0!==r){let n={startTime:t,durationMs:r};this.requestTimings.set(a,n),e.startTime=n.startTime,e.durationMs=n.durationMs;return}let o=this.requestTimings.get(a);if(o){e.startTime=o.startTime,e.durationMs=o.durationMs;return}let s=t+(r??0),l=e.startTime+(e.durationMs??0);e.startTime=Math.min(e.startTime,t),e.durationMs=Math.max(l,s)-e.startTime}notify(e){for(let t of this.listeners)t(e)}getOrCreateRequest(e,t){let r=e.requestId,n=(0,i.getRequestInsightKey)({requestId:r,kind:e.kind}),a=this.requests.get(n);return a||(a={requestId:r,kind:(0,i.getRequestInsightKind)(e),htmlRequestId:e.htmlRequestId??r,route:e.route,url:w(e.url),startTime:t,status:"pending",spans:[],fetches:[]},this.requests.set(n,a),this.requestOrder.push(n),this.trim()),a.htmlRequestId=e.htmlRequestId??a.htmlRequestId,a.route=a.route??e.route,a.url=a.url??w(e.url),a.startTime=Math.min(a.startTime,t),a}recordFetchForInsight(e,t){e.fetches.some(e=>e.url===t.url&&(void 0!==e.index&&void 0!==t.index?e.index===t.index:e.startTime===t.startTime))||e.fetches.push(y(t))}trim(){for(;this.requestOrder.length>100;){let e=this.requestOrder.shift();e&&(this.requests.delete(e),this.requestTimings.delete(e))}}constructor(){this.requests=new Map,this.requestTimings=new Map,this.requestOrder=[],this.listeners=new Set}}function c(e){var t;(null==(t=e.attributes)?void 0:t["next.span_type"])!=="NextNodeServer.clientComponentLoading"&&g().recordSpan(e)}function p(e,t){g().recordFetch(e,t)}function f(){return g().getSnapshot()}function m(e){return g().subscribe(e)}function h(){g().clear()}function g(){let e=globalThis;return e[s]??=new d}function y(e){return{...e,url:w(e.url)}}function b(e){if(!e)return;let t={};for(let[n,a]of Object.entries(e)){var r;l.has(n)&&(t[n]="http.url"===n?"string"==typeof(r=a)?w(r)??"":r:a)}return Object.keys(t).length>0?t:void 0}function w(e){if(!e)return e;let t=e.startsWith("/");try{let r=t?new URL(e,"http://n"):new URL(e);for(let e of(r.username="",r.password="",Array.from(r.searchParams.keys())))u.test(e)&&r.searchParams.set(e,"redacted");return t?`${r.pathname}${r.search}${r.hash}`:r.href}catch{return e}}function v(e){return"string"==typeof e?e:void 0}function k(e){return"number"==typeof e?e:void 0}},55507,(e,t,r)=>{let n;Object.defineProperty(r,"__esModule",{value:!0});var a={isLocalSpanRecordingEnabled:function(){return l},isRequestInsightsEnabled:function(){return u},recordSpan:function(){return o},setSpanRecorderForTest:function(){return s}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});function o(e){1}function s(e){n=e}function l(){return!1}function u(){return!1}},166541,(e,t,r)=>{let n,a;Object.defineProperty(r,"__esModule",{value:!0});var i={BubbledError:function(){return y},SpanKind:function(){return h},SpanStatusCode:function(){return m},getTracer:function(){return I},isBubbledError:function(){return b}};for(var o in i)Object.defineProperty(r,o,{enumerable:!0,get:i[o]});let s=e.r(387064),l=e.r(983782),u=process.env.NEXT_OTEL_PERFORMANCE_PREFIX;function d(){}Symbol.for("@next/local-span-recorder");try{n=e.r(270406)}catch(t){n=e.r(371039)}let{context:c,propagation:p,trace:f,SpanStatusCode:m,SpanKind:h,ROOT_CONTEXT:g}=n;class y extends Error{constructor(e,t){super(),this.bubble=e,this.result=t}}function b(e){return"object"==typeof e&&null!==e&&e instanceof y}let w=(e,t,r)=>{b(t)&&t.bubble?e.setAttribute("next.bubble",!0):(t&&(e.recordException(t),e.setAttribute("error.type",t.name)),e.setStatus({code:m.ERROR,message:null==t?void 0:t.message})),e.end(r)},v=new Map,k=n.createContextKey("next.rootSpanId"),_=0,A={set(e,t,r){e.push({key:t,value:r})}},I=(a=new class e{getTracerInstance(){return f.getTracer("next.js","16.4.2")}isOpenTelemetryEnabled(){var e,t;let r=f.getSpan(c.active());if(null==r?void 0:r.isRecording())return!0;let n=f.getTracerProvider();return!("getDelegate"in n)||(null==n.getDelegate||null==(t=n.getDelegate.call(n))||null==(e=t.constructor)?void 0:e.name)!=="NoopTracerProvider"}getContext(){return c}getTracePropagationData(){let e=c.active(),t=[];return p.inject(e,t,A),t}getActiveScopeSpan(){let e=d(),t=null==e?void 0:e.getActiveLocalSpan();return t&&(null==e?void 0:e.isOpenTelemetryIsolatedSpan(t))?t:f.getSpan(c.active())}runWithDetachedContext(e){return u||this.isOpenTelemetryEnabled()?c.with(g,e):e()}withPropagatedContext(e,t,r,n=!1){let a=c.active();if(!u&&!this.isOpenTelemetryEnabled()&&!f.getSpanContext(a))return t();if(n){let n=p.extract(g,e,r);if(f.getSpanContext(n))return c.with(n,t);let i=p.extract(a,e,r);return c.with(i,t)}if(f.getSpanContext(a))return t();let i=p.extract(a,e,r);return c.with(i,t)}trace(...e){let[t,r,n]=e,a=!!u||this.isOpenTelemetryEnabled(),i=d(),o=(null==i?void 0:i.isLocalSpanRecordingEnabled())??!1;if(!a&&!o)return"function"==typeof r?r():n();let{fn:p,options:f}="function"==typeof r?{fn:r,options:{}}:{fn:n,options:{...r}},m=f.spanName??t,h=f.parentSpan??this.getActiveScopeSpan(),y=h&&(null==i?void 0:i.isOpenTelemetryIsolatedSpan(h))?h:void 0,b=!y&&(s.NextVanillaSpanAllowlist.has(t)||"1"===process.env.NEXT_OTEL_VERBOSE);if(!(b||(null==i?void 0:i.isRequestInsightsEnabled()))||f.hideSpan)return p();let A=y?c.active():this.getSpanContext(h);A||(A=(null==c?void 0:c.active())??g);let I=A.getValue(k),S="number"!=typeof I||!v.has(I),$=_++;return f.attributes={"next.span_category":"nextjs","next.span_name":m,"next.span_type":t,...f.attributes},c.with(A.setValue(k,$),()=>this.runWithActiveSpan(m,f,A,a&&b,o,y,e=>{let r;u&&t&&s.LogSpanAllowList.has(t)&&(r="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0);let n=!1,a=()=>{!n&&(n=!0,v.delete($),r&&performance.measure(`${u}:next-${(t.split(".").pop()||"").replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}`,{start:r,end:performance.now()}))};if(S&&v.set($,new Map(Object.entries(f.attributes??{}))),p.length>1)try{return p(e,t=>{t?w(e,t,f.endTime):e.end(f.endTime)})}catch(t){throw w(e,t,f.endTime),t}finally{a()}try{let t=p(e);if((0,l.isThenable)(t))return t.then(t=>(e.end(f.endTime),t)).catch(t=>{throw w(e,t,f.endTime),t}).finally(a);return e.end(f.endTime),a(),t}catch(t){throw w(e,t,f.endTime),a(),t}}))}runWithActiveSpan(e,t,r,n,a,i,o){if(n)return this.getTracerInstance().startActiveSpan(e,t,n=>o(a?this.createLocalRecordingSpan(e,t,r,n,i):n));let s=this.createLocalRecordingSpan(e,t,r,void 0,i),l=d();return l.withLocalSpan(s,()=>l.isOpenTelemetryIsolatedSpan(s)?o(s):c.with(f.setSpan(c.active(),s),o,void 0,s))}createLocalRecordingSpan(e,t,r,n,a){let i=(null==a?void 0:a.spanContext())??f.getSpanContext(r),o=null==n?void 0:n.spanContext();return d().createLocalSpan({name:e,attributes:t.attributes,links:t.links,startTime:t.startTime,delegateSpan:n,traceId:(null==o?void 0:o.traceId)??(null==i?void 0:i.traceId),spanId:null==o?void 0:o.spanId,parentSpanId:null==i?void 0:i.spanId,isolateOpenTelemetry:void 0!==a})}wrap(...e){let t=this,[r,n,a]=3===e.length?e:[e[0],{},e[1]];return s.NextVanillaSpanAllowlist.has(r)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let e=n;"function"==typeof e&&"function"==typeof a&&(e=e.apply(this,arguments));let i=arguments.length-1,o=arguments[i];if("function"!=typeof o)return t.trace(r,e,()=>a.apply(this,arguments));{let n=t.getContext().bind(c.active(),o);return t.trace(r,e,(e,t)=>(arguments[i]=function(e){return null==t||t(e),n.apply(this,arguments)},a.apply(this,arguments)))}}:a}startSpan(...e){let[t,r]=e,n=r?{...r,attributes:{"next.span_category":"nextjs",...r.attributes}}:{attributes:{"next.span_category":"nextjs"}},a=d(),i=n.parentSpan??this.getActiveScopeSpan(),o=i&&(null==a?void 0:a.isOpenTelemetryIsolatedSpan(i))?i:void 0,s=(o?void 0:this.getSpanContext(i))??c.active();if(!(null==a?void 0:a.isLocalSpanRecordingEnabled()))return this.getTracerInstance().startSpan(t,n,s);let l=!o&&this.isOpenTelemetryEnabled()?this.getTracerInstance().startSpan(t,n,s):void 0;return this.createLocalRecordingSpan(t,n,s,l,o)}getSpanContext(e){return e?f.setSpan(c.active(),e):void 0}getRootSpanAttributes(){let e=c.active().getValue(k);return v.get(e)}setRootSpanAttribute(e,t){let r=c.active().getValue(k),n=v.get(r);n&&!n.has(e)&&n.set(e,t)}withSpan(e,t){let r=d();return(null==r?void 0:r.isLocalRecordingSpan(e))?r.withLocalSpan(e,()=>r.isOpenTelemetryIsolatedSpan(e)?t():c.with(f.setSpan(c.active(),e),t)):c.with(f.setSpan(c.active(),e),t)}},()=>a)},74049,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={isAbortError:function(){return u},pipeNodeReadableToNodeResponse:function(){return p},pipeToNodeResponse:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(647573),o=e.r(900338),s=e.r(166541),l=e.r(387064);function u(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===i.ResponseAbortedName}let d="performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX;async function c(e,t,r,n){try{let{errored:a,destroyed:u}=t;if(a||u)return;let c=(0,i.createAbortController)(t),p=function(e,t,r){let n=!1,a=(0,o.createPromiseWithResolvers)();function i(){a.resolve()}e.on("drain",i),e.once("close",()=>{e.off("drain",i),a.resolve()});let u=(0,o.createPromiseWithResolvers)();return e.once("finish",()=>{u.resolve()}),new WritableStream({write:async t=>{if(!n){if(n=!0,d){let e=null==r?void 0:r.snapshot();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,s.getTracer)().trace(l.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await a.promise,a=(0,o.createPromiseWithResolvers)())}catch(t){throw e.end(),Error("failed to write chunk to response",{cause:t})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),u.promise}})}(t,r,n);await e.pipeTo(p,{signal:c.signal})}catch(e){if(u(e))return;throw Error("failed to pipe response",{cause:e})}}async function p(e,t,r,n){try{let{errored:a,destroyed:i}=t;if(a||i)return;let d=!1,c=(0,o.createPromiseWithResolvers)(),p=!1,f=()=>{p&&!e.destroyed&&(p=!1,e.resume())};t.on("drain",f),t.once("close",()=>{t.off("drain",f),e.destroy(),c.resolve()}),e.on("data",r=>{if(!d){if(d=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=null==n?void 0:n.snapshot();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}t.flushHeaders(),(0,s.getTracer)().trace(l.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}let a=t.write(r);"flush"in t&&"function"==typeof t.flush&&t.flush(),a||(p=!0,e.pause())}),e.on("end",async()=>{r&&await r,t.writableFinished||t.end(),c.resolve()}),e.on("error",e=>{u(e)||t.destroy(e),c.resolve()}),await c.promise}catch(e){if(u(e))return;throw Error("failed to pipe response",{cause:e})}}},374617,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(831963),a=e.r(74049),i=e.r(585346);function o(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe&&"function"==typeof e.on&&!(e instanceof ReadableStream)}class s{static #e=this.EMPTY=new s(null,{metadata:{},contentType:null});static fromStatic(e,t){return new s(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw new i.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js");return(0,n.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?(0,n.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,n.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,n.chainStreams)(...this.response):o(this.response)?e.r(81111).Readable.toWeb(this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,n.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,n.streamFromBuffer)(this.response)]:o(this.response)?[e.r(81111).Readable.toWeb(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if((0,a.isAbortError)(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){null!==this.response&&"string"!=typeof this.response&&!Buffer.isBuffer(this.response)&&!Array.isArray(this.response)&&o(this.response)?await (0,a.pipeNodeReadableToNodeResponse)(this.response,e,this.waitUntil,this.metadata.clientComponentLoadTracker):await (0,a.pipeToNodeResponse)(this.readable,e,this.waitUntil,this.metadata.clientComponentLoadTracker)}}},255841,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={NEXT_REQUEST_META:function(){return i},addRequestMeta:function(){return l},getRequestMeta:function(){return o},removeRequestMeta:function(){return u},setRequestMeta:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=Symbol.for("NextInternalRequestMeta");function o(e,t){let r=e[i]||{};return"string"==typeof t?r[t]:r}function s(e,t){return e[i]=t,t}function l(e,t,r){let n=o(e);return n[t]=r,s(e,n)}function u(e,t){let r=o(e);return delete r[t],s(e,r)}},883969,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={navigation:function(){return l},prefetch:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(556704),o=e.r(832319);function s(){let e=i.workAsyncStorage.getStore(),t=o.workUnitAsyncStorage.getStore();throw e&&t||(0,o.throwForMissingRequestStore)("prefetch"),Error(`Route ${e.route} used \`prefetch()\`, which requires Cache Components to be enabled. Learn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents`)}function l(){let e=i.workAsyncStorage.getStore(),t=o.workUnitAsyncStorage.getStore();throw e&&t||(0,o.throwForMissingRequestStore)("navigation"),Error(`Route ${e.route} used \`navigation()\`, which requires Cache Components to be enabled. Learn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents`)}e.r(225176),e.r(679847),e.r(585346),e.r(865832)},601623,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"io",{enumerable:!0,get:function(){return l}});let n=e.r(556704),a=e.r(832319),i=e.r(225176);e.r(865832);let o=e.r(679847),s=Promise.resolve(void 0);function l(){let e=n.workAsyncStorage.getStore(),t=a.workUnitAsyncStorage.getStore();if(e&&t){if(t&&!(0,o.isRequestApiAllowedInCurrentPhase)(t))throw Error(`Route ${e.route} used \`io()\` inside \`after()\` while rendering. The \`io()\` function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`);switch(t.type){case"request":if(t.asyncApiPromises)return t.asyncApiPromises.io;break;case"prerender":case"prerender-client":case"prerender-runtime":return(0,i.makeDynamicHangingPromise)(t.renderSignal,e.route,"`io()`")}}return s}s.status="fulfilled",s.value=void 0},153960,(e,t,r)=>{var n,a;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return y}});let i=(n=e.r(4909),a=r,Object.keys(n).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(a,e)||Object.defineProperty(a,e,{enumerable:!0,get:function(){return n[e]}})}),n),o=e.r(585346),s=e.r(165356),l=e.r(899509),u=e.r(889593),d=e.r(609975),c=e.r(643507);function p(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let f=p(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=p(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),h="__ttl_sentinel__";function g(e,t){return`${e}\0${t??h}`}class y{constructor({minimalMode:e,route:t,maxSize:r=m,ttl:n=f}){if(this.getBatcher=s.Batcher.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:d.scheduleOnNextTick}),this.revalidateBatcher=s.Batcher.create({schedulerFn:d.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,!t)throw new o.InvariantError("Response cache requires a source route");this.route=t,this.minimal_mode=e,this.maxSize=r,this.ttl=n,this.cache=new l.LRUCache(r,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===h?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=g(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return null!==n.entry&&"error"in n.entry?n.entry:(0,c.toResponseCacheEntry)(n.entry);let e=Date.now();if((null===n.entry||!("error"in n.entry))&&n.expiresAt>e)return(0,c.toResponseCacheEntry)(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&(0,u.warnOnce)(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:o=!1,isPrefetch:s=!1,waitUntil:l,invocationID:d}=r,p=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let u=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:o,isPrefetch:s,invocationID:d},r);return l&&l(u),u});if(this.minimal_mode&&p&&("error"in p?void 0!==d:p.cacheControl)){let t=g(e,d);this.cache.set(t,{entry:p,expiresAt:Date.now()+this.ttl})}return null!==p&&"error"in p?p:(0,c.toResponseCacheEntry)(p)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,this.getCacheContext(r.isRoutePPREnabled,r.isFallback)))&&!r.isOnDemandRevalidate&&-1!==a.isStale&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let o=r.isPrefetch&&null===a?await this.handleRevalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,i):await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,i);if(null!==o&&"error"in o&&i)return console.error(o.error),null;if(!o){if(this.minimal_mode){let t=g(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,o}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,o,s){return this.revalidateBatcher.batch(e,()=>{let l=this.handleRevalidate(e,t,r,n,a,i,o);return s&&s(l),l})}async handleRevalidate(e,t,r,n,a,i,o){let s;try{let l=await a({hasResolved:o,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;if("error"in l)s=l;else{let a=await (0,c.fromResponseCacheEntry)({...l,isMiss:!i});return a.cacheControl&&!this.minimal_mode&&await t.set(e,a.value,{...this.getCacheContext(r,n),cacheControl:a.cacheControl}),a}}catch(a){throw await this.retainPreviousCacheEntry(e,t,r,n,i),a}return await this.retainPreviousCacheEntry(e,t,r,n,i),s}async retainPreviousCacheEntry(e,t,r,n,a){if(null==a?void 0:a.cacheControl){let i=Math.min(Math.max(a.cacheControl.revalidate||3,3),30),o=void 0===a.cacheControl.expire?void 0:Math.max(i+3,a.cacheControl.expire);await t.set(e,a.value,{...this.getCacheContext(r,n),cacheControl:{revalidate:i,expire:o}})}}getCacheContext(e,t){if("image"===this.route)return{kind:i.IncrementalCacheKind.IMAGE,isFallback:!1};let r=(0,c.routeKindToIncrementalCacheKind)(this.route.kind);if(r===i.IncrementalCacheKind.IMAGE)throw new o.InvariantError("Images must use the image response cache");return{route:this.route,kind:r,isRoutePPREnabled:e,isFallback:t}}}},4909,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a,i={CachedRouteKind:function(){return s},IncrementalCacheKind:function(){return l}};for(var o in i)Object.defineProperty(r,o,{enumerable:!0,get:i[o]});var s=((n={}).APP_PAGE="APP_PAGE",n.APP_ROUTE="APP_ROUTE",n.PAGES="PAGES",n.FETCH="FETCH",n.REDIRECT="REDIRECT",n.IMAGE="IMAGE",n),l=((a={}).APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.IMAGE="IMAGE",a)},643507,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a={fromResponseCacheEntry:function(){return d},routeKindToIncrementalCacheKind:function(){return p},toResponseCacheEntry:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e.r(4909),s=(n=e.r(374617))&&n.__esModule?n:{default:n},l=e.r(601762),u=e.r(419372);async function d(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===o.CachedRouteKind.PAGES?{kind:o.CachedRouteKind.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===o.CachedRouteKind.APP_PAGE?{kind:o.CachedRouteKind.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function c(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===o.CachedRouteKind.PAGES?{kind:o.CachedRouteKind.PAGES,html:s.default.fromStatic(e.value.html,u.HTML_CONTENT_TYPE_HEADER),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===o.CachedRouteKind.APP_PAGE?{kind:o.CachedRouteKind.APP_PAGE,html:s.default.fromStatic(e.value.html,u.HTML_CONTENT_TYPE_HEADER),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function p(e){switch(e){case l.RouteKind.PAGES:return o.IncrementalCacheKind.PAGES;case l.RouteKind.APP_PAGE:return o.IncrementalCacheKind.APP_PAGE;case l.RouteKind.IMAGE:return o.IncrementalCacheKind.IMAGE;case l.RouteKind.APP_ROUTE:return o.IncrementalCacheKind.APP_ROUTE;case l.RouteKind.PAGES_API:throw Error(`Unexpected route kind ${e}`);default:return e}}},601762,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouteKind",{enumerable:!0,get:function(){return a}});var n,a=((n={}).PAGES="PAGES",n.PAGES_API="PAGES_API",n.APP_PAGE="APP_PAGE",n.APP_ROUTE="APP_ROUTE",n.IMAGE="IMAGE",n)},878325,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ENCODED_TAGS",{enumerable:!0,get:function(){return n}});let n={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),HEAD:new Uint8Array([60,104,101,97,100]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}}},831963,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={CLOSE_TAG:function(){return P},chainStreams:function(){return g},chainTransformers:function(){return D},continueDynamicHTMLResume:function(){return U},continueDynamicPrerender:function(){return z},continueFizzStream:function(){return M},continueStaticFallbackPrerender:function(){return L},continueStaticPrerender:function(){return q},createBufferedTransformStream:function(){return S},createDeferredSuffixStream:function(){return E},createDocumentClosingStream:function(){return H},createFlightDataInjectionTransformStream:function(){return N},createHeadInsertionTransformStream:function(){return R},createHtmlDataDplIdTransformStream:function(){return C},createMetadataTransformStream:function(){return T},createMoveSuffixStream:function(){return O},createRootLayoutValidatorStream:function(){return j},createRuntimePrefetchTransformStream:function(){return B},nodestreamToUint8Array:function(){return k},renderToInitialFizzStream:function(){return $},streamFromBuffer:function(){return b},streamFromString:function(){return y},streamToBuffer:function(){return A},streamToString:function(){return I},streamToUint8Array:function(){return _},webstreamToUint8Array:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(166541),o=e.r(387064),s=e.r(900338),l=e.r(609975),u=e.r(878325),d=e.r(103193),c=e.r(452369),p=e.r(973697),f=e.r(231679);function m(){}let h=new TextEncoder;function g(...e){if(0===e.length)return new ReadableStream({start(e){e.close()}});if(1===e.length)return e[0];let{readable:t,writable:r}=new TransformStream,n=e[0].pipeTo(r,{preventClose:!0}),a=1;for(;a<e.length-1;a++){let t=e[a];n=n.then(()=>t.pipeTo(r,{preventClose:!0}))}let i=e[a];return(n=n.then(()=>i.pipeTo(r))).catch(m),t}function y(e){return new ReadableStream({start(t){t.enqueue(h.encode(e)),t.close()}})}function b(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function w(e){let t=e.getReader(),r=[];for(;;){let{done:e,value:n}=await t.read();if(e)break;r.push(n)}return r}async function v(e){var t=await w(e);let r=new Uint8Array(t.reduce((e,t)=>e+t.length,0)),n=0;for(let e of t)r.set(e,n),n+=e.length;return r}async function k(t){let r,n=[];for await(let a of t instanceof(r=e.r(81111).Readable)?t:r.fromWeb(t))n.push("string"==typeof a?Buffer.from(a):a);return Buffer.concat(n)}async function _(t){return t instanceof e.r(81111).Readable?k(t):v(t)}async function A(e){return Buffer.concat(await w(e))}async function I(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n="";for await(let a of e){if(null==t?void 0:t.aborted)return n;n+=r.decode(a,{stream:!0})}return n+r.decode()}function S(e={}){let t,{maxBufferByteLength:r=1/0}=e,n=[],a=0,i=e=>{try{if(0===n.length)return;let t=new Uint8Array(a),r=0;for(let e=0;e<n.length;e++){let a=n[e];t.set(a,r),r+=a.byteLength}n.length=0,a=0,e.enqueue(t)}catch{}};return new TransformStream({transform(e,o){n.push(e),(a+=e.byteLength)>=r?i(o):(e=>{if(t)return;let r=(0,s.createPromiseWithResolvers)();t=r,(0,l.scheduleImmediate)(()=>{try{i(e)}finally{t=void 0,r.resolve()}})})(o)},flush:()=>null==t?void 0:t.promise})}function $({ReactDOMServer:e,element:t,streamOptions:r}){return(0,i.getTracer)().trace(o.AppRenderSpan.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}function T(e){let t=-1,r=!1;return new TransformStream({async transform(n,a){let i=-1,o=-1;if(t++,r)return void a.enqueue(n);let s=0;if(-1===i){if(-1===(i=(0,d.indexOfUint8Array)(n,u.ENCODED_TAGS.META.ICON_MARK)))return void a.enqueue(n);47===n[i+(s=u.ENCODED_TAGS.META.ICON_MARK.length)]?s+=2:s++}if(0===t){if(o=(0,d.indexOfUint8Array)(n,u.ENCODED_TAGS.CLOSED.HEAD),-1!==i){if(i<o){let e=new Uint8Array(n.length-s);e.set(n.subarray(0,i)),e.set(n.subarray(i+s),i),n=e}else{let t=await e(),r=h.encode(t),a=r.length,o=new Uint8Array(n.length-s+a);o.set(n.subarray(0,i)),o.set(r,i),o.set(n.subarray(i+s),i+a),n=o}r=!0}}else{let t=await e(),a=h.encode(t),o=a.length,l=new Uint8Array(n.length-s+o);l.set(n.subarray(0,i)),l.set(a,i),l.set(n.subarray(i+s),i+o),n=l,r=!0}a.enqueue(n)}})}function R(e){let t=!1,r=!1;return new TransformStream({async transform(n,a){r=!0;let i=await e();if(t){if(i){let e=h.encode(i);a.enqueue(e)}a.enqueue(n)}else{let e=(0,d.indexOfUint8Array)(n,u.ENCODED_TAGS.CLOSED.HEAD);if(-1!==e){if(i){let t=h.encode(i),r=new Uint8Array(n.length+t.length);r.set(n.slice(0,e)),r.set(t,e),r.set(n.slice(e),e+t.length),a.enqueue(r)}else a.enqueue(n);t=!0}else i&&a.enqueue(h.encode(i)),a.enqueue(n),t=!0}},async flush(t){if(r){let r=await e();r&&t.enqueue(h.encode(r))}}})}async function x(){let e=await (0,f.computeCacheBustingSearchParam)("1","/_full",void 0,void 0),t=`${p.NEXT_RSC_UNION_QUERY}=${e}`,r=`<script>__NEXT_CLIENT_RESUME=fetch(location.pathname+'?${t}',{credentials:'same-origin',headers:{'${p.RSC_HEADER}': '1','${p.NEXT_ROUTER_PREFETCH_HEADER}': '1','${p.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER}': '/_full'}})</script>`,n=!1;return new TransformStream({transform(e,t){if(n)return void t.enqueue(e);let a=(0,d.indexOfUint8Array)(e,u.ENCODED_TAGS.CLOSED.HEAD);if(-1===a)return void t.enqueue(e);let i=h.encode(r),o=new Uint8Array(e.length+i.length);o.set(e.slice(0,a)),o.set(i,a),o.set(e.slice(a),a+i.length),t.enqueue(o),n=!0}})}function E(e){let t,r=!1;return new TransformStream({transform(n,a){if(a.enqueue(n),!r){let n;r=!0,t=n=(0,s.createPromiseWithResolvers)(),(0,l.scheduleImmediate)(()=>{try{a.enqueue(h.encode(e))}catch{}finally{t=void 0,n.resolve()}})}},flush(n){if(t)return t.promise;r||n.enqueue(h.encode(e))}})}function N(e,t){let r=!1,n=null,a=!1;function i(e){return n||(n=o(e)),n}async function o(n){let i=e.getReader();t&&await (0,l.atLeastOneTask)();try{for(;;){let{done:e,value:o}=await i.read();if(e){a=!0;return}t||r||await (0,l.atLeastOneTask)(),n.enqueue(o)}}catch(e){n.error(e)}}return new TransformStream({start(e){t||i(e)},transform(e,r){r.enqueue(e),t&&i(r)},flush(e){if(r=!0,!a)return i(e)}})}let P="</body></html>";function O(){let e=!1;return new TransformStream({transform(t,r){if(e)return r.enqueue(t);let n=(0,d.indexOfUint8Array)(t,u.ENCODED_TAGS.CLOSED.BODY_AND_HTML);if(n>-1){if(e=!0,t.length===u.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length)return;let a=t.slice(0,n);if(r.enqueue(a),t.length>u.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length+n){let e=t.slice(n+u.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);r.enqueue(e)}}else r.enqueue(t)},flush(e){e.enqueue(u.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function C(e){let t=!1;return new TransformStream({transform(r,n){if(t)return void n.enqueue(r);let a=(0,d.indexOfUint8Array)(r,u.ENCODED_TAGS.OPENING.HTML);if(-1===a)return void n.enqueue(r);let i=a+u.ENCODED_TAGS.OPENING.HTML.length,o=` data-dpl-id="${e}"`,s=h.encode(o),l=new Uint8Array(r.length+s.length);l.set(r.subarray(0,i)),l.set(s,i),l.set(r.subarray(i),i+s.length),n.enqueue(l),t=!0}})}function j(){let e=!1,t=!1;return new TransformStream({async transform(r,n){!e&&(0,d.indexOfUint8Array)(r,u.ENCODED_TAGS.OPENING.HTML)>-1&&(e=!0),!t&&(0,d.indexOfUint8Array)(r,u.ENCODED_TAGS.OPENING.BODY)>-1&&(t=!0),n.enqueue(r)},flush(r){let n=[];e||n.push("html"),t||n.push("body"),n.length&&r.enqueue(h.encode(`<html id="__next_error__">
|
|
2
|
+
<template
|
|
3
|
+
data-next-error-message="Missing ${n.map(e=>`<${e}>`).join(n.length>1?" and ":"")} tags in the root layout.
|
|
4
|
+
Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
|
|
5
|
+
data-next-error-digest="${c.MISSING_ROOT_TAGS_ERROR}"
|
|
6
|
+
data-next-error-stack=""
|
|
7
|
+
></template>
|
|
8
|
+
`))}})}function D(e,t){let r=e;for(let e of t)e&&(r=r.pipeThrough(e));return r}async function M(e,{suffix:t,inlinedDataStream:r,waitForAllReady:n,deploymentId:a,getServerInsertedHTML:i,getServerInsertedMetadata:o,validateRootLayout:s}){let u=t?t.split(P,1)[0]:null;return n?await e.allReady:await (0,l.waitAtLeastOneReactRenderTask)(),D(e,[S(),a?C(a):null,T(o),null!=u&&u.length>0?E(u):null,r?N(r,!0):null,s?j():null,O(),R(i)])}async function z(e,{getServerInsertedHTML:t,getServerInsertedMetadata:r,deploymentId:n}){return D(e,[S(),new TransformStream({transform(e,t){(0,d.isEquivalentUint8Arrays)(e,u.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,d.isEquivalentUint8Arrays)(e,u.ENCODED_TAGS.CLOSED.BODY)||(0,d.isEquivalentUint8Arrays)(e,u.ENCODED_TAGS.CLOSED.HTML)||(e=(0,d.removeFromUint8Array)(e,u.ENCODED_TAGS.CLOSED.BODY),e=(0,d.removeFromUint8Array)(e,u.ENCODED_TAGS.CLOSED.HTML),t.enqueue(e))}}),n?C(n):null,R(t),T(r)])}async function q(e,{inlinedDataStream:t,getServerInsertedHTML:r,getServerInsertedMetadata:n,deploymentId:a}){return D(e,[S(),a?C(a):null,R(r),T(n),N(t,!0),O()])}async function L(e,{inlinedDataStream:t,getServerInsertedHTML:r,getServerInsertedMetadata:n,deploymentId:a}){return D(e,[S(),a?C(a):null,R(r),await x(),T(n),N(t,!0),O()])}async function U(e,{delayDataUntilFirstHtmlChunk:t,inlinedDataStream:r,getServerInsertedHTML:n,getServerInsertedMetadata:a,deploymentId:i}){return D(e,[S(),i?C(i):null,R(n),T(a),N(r,t),O()])}function H(){return y(P)}function B(e,t,r){let n=new TextEncoder,a=n.encode(`[${e}]`),i=a[0],o=n.encode(`[${t},${r}]`),s=a.length,l=null,u=!1;function d(e,t){if(u){t&&e.enqueue(t);return}if(l){let r=l.length-(s-1);if(t&&(r+=Math.min(t.length,s-1)),r<1){e.enqueue(l),l=t;return}let n=l.indexOf(i);e:for(;-1<n&&n<r;){let r=1;for(;r<s;){let e=n+r;if((e<l.length?l[e]:t[e-l.length])!==a[r]){n=l.indexOf(i,n+1);continue e}r++}if(u=!0,e.enqueue(l.subarray(0,n)),e.enqueue(o),n+s<l.length&&e.enqueue(l.slice(n+s)),t){let r=n+s-l.length,a=r>0?t.subarray(r):t;e.enqueue(a)}l=null;return}e.enqueue(l)}l=t}return new TransformStream({transform(e,t){d(t,e)},flush(e){d(e,null)}})}},103193,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={indexOfUint8Array:function(){return i},isEquivalentUint8Arrays:function(){return o},removeFromUint8Array:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function i(e,t){if(0===t.length)return 0;if(0===e.length||t.length>e.length)return -1;if("u">typeof Buffer)return(Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)).indexOf(t);for(let r=0;r<=e.length-t.length;r++){let n=!0;for(let a=0;a<t.length;a++)if(e[r+a]!==t[a]){n=!1;break}if(n)return r}return -1}function o(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function s(e,t){let r=i(e,t);if(0===r)return e.subarray(t.length);if(!(r>-1))return e;{let n=new Uint8Array(e.length-t.length);return n.set(e.subarray(0,r)),n.set(e.subarray(r+t.length),r),n}}},540678,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"validateAndNormalizeCacheLifeProfile",{enumerable:!0,get:function(){return a}});let n=e.r(419372);function a(e,t){let r={...e};for(let a of["stale","revalidate","expire"]){let i=function(e,t,r){if(void 0!==t){if(!1===t)if("stale"===e)throw Error("Pass `Infinity` instead of `false` if you want to cache on the client forever without checking with the server.");else if("revalidate"===e)throw Error("Pass `Infinity` instead of `false` if you do not want to revalidate by time.");else throw Error("Pass `Infinity` instead of `false` if you want to cache on the server forever without checking with the origin.");if("number"!=typeof t)throw Error(`The ${e} option must be a number of seconds.`);if(1/0===t)return n.INFINITE_CACHE;if(!Number.isFinite(t))throw Error("config"===r.kind?`Invalid "cacheLife.${r.profileName}.${e}" provided, expected a finite number of seconds or Infinity, received ${t}`:`Invalid \`cacheLife()\` option "${e}" provided, expected a finite number of seconds or Infinity, received ${t}.`);return t}}(a,e[a],t);void 0!==i&&(r[a]=i)}if(void 0!==r.revalidate&&void 0!==r.expire&&r.revalidate>r.expire)throw Error("If providing both the revalidate and expire options, the expire option must be greater than the revalidate option. The expire option indicates how many seconds from the start until it can no longer be used.");return r}},825183,(e,t,r)=>{function n(e){throw Error("`cacheLife()` is only available with the `cacheComponents` config.")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"cacheLife",{enumerable:!0,get:function(){return n}}),e.r(556704),e.r(832319),e.r(748448),e.r(540678)},246130,(e,t,r)=>{function n(){throw Error("`cacheTag()` is only available with the `cacheComponents` config.")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"cacheTag",{enumerable:!0,get:function(){return n}}),e.r(556704),e.r(832319),e.r(188232),e.r(748448)},560659,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={PageSignatureError:function(){return i},RemovedPageError:function(){return o},RemovedUAError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});class i extends Error{constructor({page:e}){super(`The middleware "${e}" accepts an async API directly with the form:
|
|
9
|
+
|
|
10
|
+
export function middleware(request, event) {
|
|
11
|
+
return NextResponse.redirect('/new-location')
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
Read more: https://nextjs.org/docs/messages/middleware-new-signature
|
|
15
|
+
`)}}class o extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n ")}}class s extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n ")}}},723866,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextURL",{enumerable:!0,get:function(){return d}});let n=e.r(522846),a=e.r(202116),i=e.r(770517),o=e.r(454122),s=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function l(e,t){let r=new URL(String(e),t&&String(t));return s.test(r.hostname)&&(r.hostname="localhost"),r}let u=Symbol("NextURLInternal");class d{constructor(e,t,r){let n,a;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,a=r||{}):a=r||t||{},this[u]={url:l(e,n??a.base),options:a,basePath:""},this.analyze()}analyze(){var e,t,r,a,s;let l=(0,o.getNextPathnameInfo)(this[u].url.pathname,{nextConfig:this[u].options.nextConfig,parseData:!0,i18nProvider:this[u].options.i18nProvider}),d=(0,i.getHostname)(this[u].url,this[u].options.headers);this[u].domainLocale=this[u].options.i18nProvider?this[u].options.i18nProvider.detectDomainLocale(d):(0,n.detectDomainLocale)(null==(t=this[u].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,d);let c=(null==(r=this[u].domainLocale)?void 0:r.defaultLocale)||(null==(s=this[u].options.nextConfig)||null==(a=s.i18n)?void 0:a.defaultLocale);this[u].url.pathname=l.pathname,this[u].defaultLocale=c,this[u].basePath=l.basePath??"",this[u].buildId=l.buildId,this[u].locale=l.locale??c,this[u].trailingSlash=l.trailingSlash}formatPathname(){return(0,a.formatNextPathnameInfo)({basePath:this[u].basePath,buildId:this[u].buildId,defaultLocale:this[u].options.forceLocale?void 0:this[u].defaultLocale,locale:this[u].locale,pathname:this[u].url.pathname,trailingSlash:this[u].trailingSlash})}formatSearch(){return this[u].url.search}get buildId(){return this[u].buildId}set buildId(e){this[u].buildId=e}get locale(){return this[u].locale??""}set locale(e){var t,r;if(!this[u].locale||!(null==(r=this[u].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw TypeError(`The NextURL configuration includes no locale "${e}"`);this[u].locale=e}get defaultLocale(){return this[u].defaultLocale}get domainLocale(){return this[u].domainLocale}get searchParams(){return this[u].url.searchParams}get host(){return this[u].url.host}set host(e){this[u].url.host=e}get hostname(){return this[u].url.hostname}set hostname(e){this[u].url.hostname=e}get port(){return this[u].url.port}set port(e){this[u].url.port=e}get protocol(){return this[u].url.protocol}set protocol(e){this[u].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[u].url=l(e),this.analyze()}get origin(){return this[u].url.origin}get pathname(){return this[u].url.pathname}set pathname(e){this[u].url.pathname=e}get hash(){return this[u].url.hash}set hash(e){this[u].url.hash=e}get search(){return this[u].url.search}set search(e){this[u].url.search=e}get password(){return this[u].url.password}set password(e){this[u].url.password=e}get username(){return this[u].url.username}set username(e){this[u].url.username=e}get basePath(){return this[u].basePath}set basePath(e){this[u].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new d(String(this),this[u].options)}}},647573,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={NextRequestAdapter:function(){return f},ResponseAborted:function(){return d},ResponseAbortedName:function(){return u},createAbortController:function(){return c},signalFromNodeResponse:function(){return p}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(255841),o=e.r(287790),s=e.r(641165),l=e.r(110118),u="ResponseAborted";class d extends Error{constructor(...e){super(...e),this.name=u}}function c(e){let t=new AbortController;return e.once("close",()=>{e.writableFinished||t.abort(new d)}),t}function p(e){let{errored:t,destroyed:r}=e;if(t||r)return AbortSignal.abort(t??new d);let{signal:n}=c(e);return n}class f{static fromBaseNextRequest(e,t){if((0,l.isNodeNextRequest)(e))return f.fromNodeNextRequest(e,t);throw Error("Invariant: Unsupported NextRequest type")}static fromNodeNextRequest(e,t){let r,n=null;if("GET"!==e.method&&"HEAD"!==e.method&&e.body&&(n=e.body),e.url.startsWith("http"))r=new URL(e.url);else{let t=(0,i.getRequestMeta)(e,"initURL");r=t&&t.startsWith("http")?new URL(e.url,t):new URL(e.url,"http://n")}return new s.NextRequest(r,{method:e.method,headers:(0,o.fromNodeOutgoingHttpHeaders)(e.headers),duplex:"half",signal:t,...t.aborted?{}:{body:n}})}static fromWebNextRequest(e){let t=null;return"GET"!==e.method&&"HEAD"!==e.method&&(t=e.body),new s.NextRequest(e.url,{method:e.method,headers:(0,o.fromNodeOutgoingHttpHeaders)(e.headers),duplex:"half",signal:e.request.signal,...e.request.signal.aborted?{}:{body:t}})}}},641165,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={INTERNALS:function(){return u},NextRequest:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(723866),o=e.r(287790),s=e.r(560659),l=e.r(86547),u=Symbol("internal request");class d extends Request{constructor(e,t={}){let r="string"!=typeof e&&"url"in e?e.url:String(e);(0,o.validateURL)(r),t.body&&"half"!==t.duplex&&(t.duplex="half"),e instanceof Request?super(e,t):super(r,t);let n=new i.NextURL(r,{headers:(0,o.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:t.nextConfig});this[u]={cookies:new l.RequestCookies(this.headers),nextUrl:n,url:n.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[u].cookies}get nextUrl(){return this[u].nextUrl}get page(){throw new s.RemovedPageError}get ua(){throw new s.RemovedUAError}get url(){return this[u].url}}},199300,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={refresh:function(){return w},revalidatePath:function(){return v},revalidateTag:function(){return y},updateTag:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(258200),o=e.r(274391),s=e.r(419372),l=e.r(556704),u=e.r(832319),d=e.r(243727),c=e.r(585346),p=e.r(203982),f=e.r(341682),m=e.r(387637),h=e.r(748448),g=e.r(540678);function y(e,t){return t?"object"==typeof t&&(t=(0,g.validateAndNormalizeCacheLifeProfile)(t,{kind:"inline"})):console.warn('"revalidateTag" without the second argument is now deprecated, add second argument of "max" or use "updateTag". See more info here: https://nextjs.org/docs/messages/revalidate-tag-single-arg'),k([(0,m.encodeHeaderSafe)(e)],`revalidateTag(${JSON.stringify(e)})`,t)}function b(e){let t=l.workAsyncStorage.getStore();if(!t||t.page.endsWith("/route"))throw Error("updateTag can only be called from within a Server Action. To invalidate cache tags in Route Handlers or other contexts, use revalidateTag instead. See more info here: https://nextjs.org/docs/app/api-reference/functions/updateTag");return k([(0,m.encodeHeaderSafe)(e)],`updateTag(${JSON.stringify(e)})`,void 0)}function w(){let e=l.workAsyncStorage.getStore(),t=u.workUnitAsyncStorage.getStore();if(!e||e.page.endsWith("/route")||(null==t?void 0:t.phase)!=="action")throw Error("refresh can only be called from within a Server Action. See more info here: https://nextjs.org/docs/app/api-reference/functions/refresh");e&&(e.pathWasRevalidated=p.ActionDidRevalidateDynamicOnly)}function v(e,t){if(e.length>s.NEXT_CACHE_SOFT_TAG_MAX_LENGTH)return void console.warn(`Warning: revalidatePath received "${e}" which exceeded max length of ${s.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let r=`${s.NEXT_CACHE_IMPLICIT_TAG_ID}${(0,m.encodeHeaderSafe)((0,f.removeTrailingSlash)(e))}`;t?r+=`${r.endsWith("/")?"":"/"}${t}`:(0,o.isDynamicRoute)(e)&&console.warn(`Warning: a dynamic page path "${e}" was passed to "revalidatePath", but the "type" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let n=[r];return r===`${s.NEXT_CACHE_IMPLICIT_TAG_ID}/`?n.push(`${s.NEXT_CACHE_IMPLICIT_TAG_ID}/index`):r===`${s.NEXT_CACHE_IMPLICIT_TAG_ID}/index`&&n.push(`${s.NEXT_CACHE_IMPLICIT_TAG_ID}/`),k(n,`revalidatePath(${JSON.stringify(e)})`)}function k(e,t,r){let n=l.workAsyncStorage.getStore();if(!n||!n.incrementalCache)throw Error(`Invariant: static generation store missing in ${t}`);let a=u.workUnitAsyncStorage.getStore();if(a){switch(a.type){case"build-time-generator":throw(0,h.createRevalidateInBuildTimeGeneratorError)(n.route,t,a.functionName);case"cache":case"private-cache":case"unstable-cache":throw(0,h.createRevalidateInCachedFunctionError)(n.route,t)}if("render"===a.phase)throw(0,h.createRevalidateDuringRenderError)(n.route,t);switch(a.type){case"prerender":case"prerender-runtime":let e=Error(`Route ${n.route} used ${t} without first calling \`await connection()\`.`);return(0,i.abortAndThrowOnSynchronousRequestDataAccess)(n.route,t,e,a);case"prerender-client":case"validation-client":throw new c.InvariantError(`${t} must not be used within a client component. Next.js should be preventing ${t} from being included in client components statically, but did not in this case.`);case"prerender-legacy":a.revalidate=0;let r=new d.DynamicServerError(`Route ${n.route} couldn't be rendered statically because it used \`${t}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);throw n.dynamicUsageDescription=t,n.dynamicUsageStack=r.stack,r}}n.pendingRevalidatedTags||(n.pendingRevalidatedTags=[]);let o=performance.timeOrigin+performance.now();for(let t of e){let e=n.pendingRevalidatedTags.findIndex(e=>e.tag===t&&("string"==typeof e.profile&&"string"==typeof r?e.profile===r:"object"==typeof e.profile&&"object"==typeof r?JSON.stringify(e.profile)===JSON.stringify(r):e.profile===r));-1===e?n.pendingRevalidatedTags.push({tag:t,profile:r,revalidatedAt:o}):n.pendingRevalidatedTags[e].revalidatedAt=o}let s=r&&"object"==typeof r?r:r&&"string"==typeof r&&(null==n?void 0:n.cacheLifeProfiles[r])?n.cacheLifeProfiles[r]:void 0;r&&(null==s?void 0:s.expire)!==0||(n.pathWasRevalidated=p.ActionDidRevalidateStaticAndDynamic)}},255706,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_cache",{enumerable:!0,get:function(){return c}});let n=e.r(419372),a=e.r(188232),i=e.r(387637),o=e.r(556704),s=e.r(832319),l=e.r(153960),u=0;async function d(e,t,r,a,i,o,s){await t.set(r,{kind:l.CachedRouteKind.FETCH,data:{headers:{},body:JSON.stringify(e),status:200,url:""},revalidate:"number"!=typeof i?n.CACHE_ONE_YEAR_SECONDS:i},{fetchCache:!0,tags:a,fetchIdx:o,fetchUrl:s})}function c(e,t,r={}){if(0===r.revalidate)throw Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be "false" or "> 0" ${e.toString()}`);let n=r.tags?(0,a.validateTags)(r.tags,`unstable_cache ${e.toString()}`):[],p=(0,a.validateRevalidate)(r.revalidate,`unstable_cache ${e.name||e.toString()}`),f=`${e.toString()}-${Array.isArray(t)&&t.join(",")}`;return async(...t)=>{let r=o.workAsyncStorage.getStore(),a=s.workUnitAsyncStorage.getStore(),c=(null==r?void 0:r.incrementalCache)||globalThis.__incrementalCache;if(!c)throw Error(`Invariant: incrementalCache missing in unstable_cache ${e.toString()}`);let m=a?(0,s.getCacheSignal)(a):null;m&&m.beginRead();try{let o=r&&a?function(e,t){switch(t.type){case"request":let r=t.url.pathname,n=new URLSearchParams(t.url.search),a=[...n.keys()].sort((e,t)=>e.localeCompare(t)).map(e=>`${e}=${n.get(e)}`).join("&");return`${r}${a.length?"?":""}${a}`;case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"build-time-generator":return e.route;default:return t}}(r,a):"",m=`${f}-${JSON.stringify(t)}`,h=await c.generateSimpleCacheKey(m),g=(0,i.encodeHeaderSafe)(`unstable_cache ${o} ${e.name?` ${e.name}`:h}`.toWellFormed()),y=(r?r.nextFetchId:u)??1,b=null==a?void 0:a.implicitTags,w={type:"unstable-cache",phase:"render",consumerWillServerCache:!0,implicitTags:b,draftMode:a&&r&&(0,s.getDraftModeProviderForCacheScope)(r,a),rootParams:void 0};if(r){r.nextFetchId=y+1;let i=!1;if(a)switch(a.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":case"prerender-legacy":"number"==typeof p&&(a.revalidate<p||(a.revalidate=p));let o=a.tags;if(null===o)a.tags=n.slice();else for(let e of n)o.includes(e)||o.push(e);break;case"unstable-cache":i=!0}if(!i&&"force-no-store"!==r.fetchCache&&!r.isOnDemandRevalidate&&!c.isOnDemandRevalidate&&!r.isDraftMode){let i=await c.get(h,{kind:l.IncrementalCacheKind.FETCH,revalidate:p,tags:n,softTags:null==b?void 0:b.tags,fetchIdx:y,fetchUrl:g});if(i&&i.value)if(i.value.kind!==l.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${m}`);else{let o=void 0!==i.value.data.body?JSON.parse(i.value.data.body):void 0;if(i.isStale){if(r.pendingRevalidates||(r.pendingRevalidates={}),!r.pendingRevalidates[m]){let i=s.workUnitAsyncStorage.run(w,e,...t).then(async e=>(await d(e,c,h,n,p,y,g),e)).catch(e=>(console.error(`revalidating cache with key: ${m}`,e),o));(0,s.willConsumerServerCache)(a)&&i.catch(()=>{}),r.pendingRevalidates[m]=i}if((0,s.willConsumerServerCache)(a))return await r.pendingRevalidates[m]}return o}}let u=await s.workUnitAsyncStorage.run(w,e,...t);return r.isDraftMode||(r.pendingRevalidates||(r.pendingRevalidates={}),r.pendingRevalidates[m]=d(u,c,h,n,p,y,g)),u}{if(u+=1,!c.isOnDemandRevalidate){let e=await c.get(h,{kind:l.IncrementalCacheKind.FETCH,revalidate:p,tags:n,fetchIdx:y,fetchUrl:g,softTags:null==b?void 0:b.tags});if(e&&e.value){if(e.value.kind!==l.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${m}`);else if(!e.isStale)return void 0!==e.value.data.body?JSON.parse(e.value.data.body):void 0}}let r=await s.workUnitAsyncStorage.run(w,e,...t);return await d(r,c,h,n,p,y,g),r}}finally{m&&m.endRead()}}}},910582,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_noStore",{enumerable:!0,get:function(){return o}});let n=e.r(556704),a=e.r(832319),i=e.r(258200);function o(){let e=n.workAsyncStorage.getStore(),t=a.workUnitAsyncStorage.getStore();if(e){if(!e.forceStatic){if(e.isUnstableNoStore=!0,t)switch(t.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return}(0,i.markCurrentScopeAsDynamic)(e,t,"unstable_noStore()")}}}},287790,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={fromNodeOutgoingHttpHeaders:function(){return o},normalizeNextQueryParam:function(){return d},splitCookiesString:function(){return s},toNodeOutgoingHttpHeaders:function(){return l},validateURL:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(419372);function o(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}function s(e){var t,r,n,a,i,o=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,i=!1;l();)if(","===(r=e.charAt(s))){for(n=s,s+=1,l(),a=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(i=!0,s=a,o.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!i||s>=e.length)&&o.push(e.substring(t,e.length))}return o}function l(e){let t={},r=[];if(e)for(let[n,a]of e.entries())"set-cookie"===n.toLowerCase()?(r.push(...s(a)),t[n]=1===r.length?r[0]:r):t[n]=a;return t}function u(e){try{return String(new URL(String(e)))}catch(t){throw Error(`URL is malformed "${String(e)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:t})}}function d(e){for(let t of[i.NEXT_QUERY_PARAM_PREFIX,i.NEXT_INTERCEPTION_MARKER_PREFIX])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}},452369,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return n}});let n="NEXT_MISSING_ROOT_TAGS";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},770517,(e,t,r)=>{function n(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getHostname",{enumerable:!0,get:function(){return n}})},593249,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return i},hexHash:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function i(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r)|0;return t>>>0}function o(e){return i(e).toString(36).slice(0,5)}},522846,(e,t,r)=>{function n(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"detectDomainLocale",{enumerable:!0,get:function(){return n}})},385630,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let o=i[1].toLowerCase(),s=a.indexOf(o);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},983782,(e,t,r)=>{function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},151417,(e,t,r)=>{function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},438924,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getRequestInsightKey:function(){return o},getRequestInsightKind:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function i(e){return e.kind??"request"}function o(e){return`${i(e)}:${e.requestId}`}},997602,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(455454),a=e.r(667138);function i(e,t,r,i){if(!t||t===r)return e;let o=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(o,"/api")||(0,a.pathHasPrefix)(o,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},455454,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(49454);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${t}${r}${a}${i}`}},447990,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(49454);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},537433,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={compareAppPaths:function(){return l},normalizeAppPath:function(){return s},normalizeRscURL:function(){return c},selectAppPageEntry:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(151417),o=e.r(483655);function s(e){return(0,i.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,o.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function u(e){return s(e).replace(/%5F/g,"_")}function d(e,t,r=u){let n;for(let a of t)r(a)===e&&(void 0===n||0>l(n,a))&&(n=a);if(void 0===n)throw Error(`Invariant: no direct app page entry found for ${e}`);return n}function c(e){return e.replace(/\.rsc($|\?)/,"$1")}},231679,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={computeCacheBustingSearchParam:function(){return d},computeLegacyCacheBustingSearchParam:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(593249),o=new TextEncoder;function s(e){return void 0===e?"0":Array.isArray(e)?e.join(","):e}function l(e,t,r,n){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===n?null:[e??"0",s(t),s(r),s(n)].join(",")}async function u(e){var t=new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",o.encode(e))).subarray(0,12);let r="";for(let e=0;e<t.length;e++)r+=String.fromCharCode(t[e]);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function d(e,t,r,n){let a=l(e,t,r,n);return null===a?"":u(a)}function c(e,t,r,n){let a=l(e,t,r,n);return null===a?"":(0,i.hexHash)(a)}},202116,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(341682),a=e.r(455454),i=e.r(447990),o=e.r(997602);function s(e){let t=(0,o.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},454122,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(385630),a=e.r(472389),i=e.r(667138);function o(e,t){let{basePath:r,i18n:o,trailingSlash:s}=t.nextConfig??{},l={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};r&&(0,i.pathHasPrefix)(l.pathname,r)&&(l.pathname=(0,a.removePathPrefix)(l.pathname,r),l.basePath=r);let u=l.pathname;if(l.pathname.startsWith("/_next/data/")&&l.pathname.endsWith(".json")){let e=l.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");l.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(l.pathname=u)}if(o){let e=t.i18nProvider?t.i18nProvider.analyze(l.pathname):(0,n.normalizeLocalePath)(l.pathname,o.locales);l.locale=e.detectedLocale,l.pathname=e.pathname??l.pathname,!e.detectedLocale&&l.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,o.locales)).detectedLocale&&(l.locale=e.detectedLocale)}return l}},274391,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getSortedRouteObjects:function(){return i.getSortedRouteObjects},getSortedRoutes:function(){return i.getSortedRoutes},isDynamicRoute:function(){return o.isDynamicRoute}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(684109),o=e.r(97764)},265710,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return o},extractInterceptionRouteInformation:function(){return p},findMissingCanonicalInterceptionRoutes:function(){return f},isInterceptionRouteAppPath:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(537433),o=["(..)(..)","(.)","(..)","(...)"];function s(e){let t=e.split("/").filter(Boolean),r=t.at(-1),n=void 0!==r&&r.startsWith("[[...")&&r.endsWith("]]"),a=void 0!==r&&r.startsWith("[...")&&r.endsWith("]"),i=n||a,o=i?t.slice(0,-1):t;return{prefix:o.map(e=>e.startsWith("[")&&e.endsWith("]")?null:e),minLength:o.length+(a&&!n?1:0),unbounded:i}}function l(e,t){return e.unbounded?t>=e.minLength:t===e.minLength}function u(e,t){return e.prefix.every((e,r)=>{if(null===e)return!0;let n=t.prefix[r];return null!=n&&e===n})}function d(e,t,r){return l(e,r)&&l(t,r)&&u(e,t)}function c(e){return void 0!==e.split("/").find(e=>o.find(t=>e.startsWith(t)))}function p(e){let t,r,n;for(let a of e.split("/"))if(r=o.find(e=>a.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Error(`Invalid interception route: ${e}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);switch(t=(0,i.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`);n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let a=t.split("/");if(a.length<=2)throw Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`);n=a.slice(0,-2).concat(n).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:t,interceptedRoute:n}}function f(e){let t=Object.keys(e).filter(e=>!c(e)).map(s);return Object.keys(e).filter(c).map(e=>({interceptionRoute:e,canonicalRoute:p(e).interceptedRoute})).filter(({canonicalRoute:e})=>!function(e,t){let r=s(e);if(!r.unbounded)return t.some(e=>d(e,r,r.minLength));let n=1/0;for(let e of t)e.unbounded&&u(e,r)&&(n=Math.min(n,Math.max(r.minLength,e.minLength)));if(1/0===n)return!1;for(let e=r.minLength;e<n;e++)if(!t.some(t=>d(t,r,e)))return!1;return!0}(e,t)).sort((e,t)=>e.interceptionRoute.localeCompare(t.interceptionRoute))}},97764,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isDynamicRoute",{enumerable:!0,get:function(){return o}});let n=e.r(265710),a=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,i=/\/\[[^/]+\](?=\/|$)/;function o(e,t=!0){return((0,n.isInterceptionRouteAppPath)(e)&&(e=(0,n.extractInterceptionRouteInformation)(e).interceptedRoute),t)?i.test(e):a.test(e)}},49454,(e,t,r)=>{function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},667138,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(49454);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},472389,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(667138);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},341682,(e,t,r)=>{function n(e){return 47===e.charCodeAt(e.length-1)&&e.length>1?e.slice(0,-1):e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},684109,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getSortedRouteObjects:function(){return s},getSortedRoutes:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});class i{insert(e){this._insert(e.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(e="/"){let t=[...this.children.keys()].sort();null!==this.slugName&&t.splice(t.indexOf("[]"),1),null!==this.restSlugName&&t.splice(t.indexOf("[...]"),1),null!==this.optionalRestSlugName&&t.splice(t.indexOf("[[...]]"),1);let r=t.map(t=>this.children.get(t)._smoosh(`${e}${t}/`)).reduce((e,t)=>[...e,...t],[]);if(null!==this.slugName&&r.push(...this.children.get("[]")._smoosh(`${e}[${this.slugName}]/`)),!this.placeholder){let t="/"===e?"/":e.slice(0,-1);if(null!=this.optionalRestSlugName)throw Error(`You cannot define a route with the same specificity as a optional catch-all route ("${t}" and "${t}[[...${this.optionalRestSlugName}]]").`);r.unshift(t)}return null!==this.restSlugName&&r.push(...this.children.get("[...]")._smoosh(`${e}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&r.push(...this.children.get("[[...]]")._smoosh(`${e}[[...${this.optionalRestSlugName}]]/`)),r}_insert(e,t,r){if(0===e.length){this.placeholder=!1;return}if(r)throw Error("Catch-all must be the last part of the URL.");let n=e[0];if(n.startsWith("[")&&n.endsWith("]")){let i=n.slice(1,-1),o=!1;if(i.startsWith("[")&&i.endsWith("]")&&(i=i.slice(1,-1),o=!0),i.startsWith("…"))throw Error(`Detected a three-dot character ('…') at ('${i}'). Did you mean ('...')?`);if(i.startsWith("...")&&(i=i.substring(3),r=!0),i.startsWith("[")||i.endsWith("]"))throw Error(`Segment names may not start or end with extra brackets ('${i}').`);if(i.startsWith("."))throw Error(`Segment names may not start with erroneous periods ('${i}').`);function a(e,r){if(null!==e&&e!==r)throw Error(`You cannot use different slug names for the same dynamic path ('${e}' !== '${r}').`);t.forEach(e=>{if(e===r)throw Error(`You cannot have the same slug name "${r}" repeat within a single dynamic path`);if(e.replace(/\W/g,"")===n.replace(/\W/g,""))throw Error(`You cannot have the slug names "${e}" and "${r}" differ only by non-word symbols within a single dynamic path`)}),t.push(r)}if(r)if(o){if(null!=this.restSlugName)throw Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${e[0]}" ).`);a(this.optionalRestSlugName,i),this.optionalRestSlugName=i,n="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${e[0]}").`);a(this.restSlugName,i),this.restSlugName=i,n="[...]"}else{if(o)throw Error(`Optional route parameters are not yet supported ("${e[0]}").`);a(this.slugName,i),this.slugName=i,n="[]"}}this.children.has(n)||this.children.set(n,new i),this.children.get(n)._insert(e.slice(1),t,r)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function o(e){let t=new i;return e.forEach(e=>t.insert(e)),t.smoosh()}function s(e,t){let r={},n=[];for(let a=0;a<e.length;a++){let i=t(e[a]);r[i]=a,n[a]=i}return o(n).map(t=>e[r[t]])}},684330,e=>{var t=e.i(794588);e.s(["z",0,t])},691313,e=>{var t=e.i(794588);e.s(["z",0,t])},112515,753535,e=>{e.s(["A",0,function(e){return null===e?"Can't read the stored credential. The encryption key changed. Replace the credential.":null},"E",0,function(e){return e.ok?{status:"ok",lastError:null}:"auth"===e.kind?{status:"error",lastError:e.error}:null}],112515);var t=e.i(336763),r=e.i(533102),n=e.i(406212),a=e.i(530298);async function i(e,t,i){await (0,n.db)().insert(a.snapshots).values({resourceId:e,data:t,collectedAt:i,stateSince:i}).onConflictDoUpdate({target:a.snapshots.resourceId,set:{data:r.sql`${a.snapshots.data} || ${JSON.stringify(t)}::jsonb`,collectedAt:i}})}async function o(e,r,i){await (0,n.db)().update(a.snapshots).set({state:r,stateSince:i}).where((0,t.eq)(a.snapshots.resourceId,e))}e.s(["r",0,i,"a",0,o],753535)},484745,853190,e=>{var t=e.i(728335);let r=e=>`${e} hari`,n=(e,t)=>0>Number(e)?`${t} udah habis.`:`${t} habis dalam ${r(e)}.`,a={"the job reported a failure":"job-nya lapor gagal","started but didn't finish":"udah mulai tapi nggak selesai","never pinged":"belum pernah ping","no ping in time":"nggak ada ping tepat waktu"},i={critical:"kritis",high:"tinggi",moderate:"sedang",low:"rendah",unknown:"nggak diketahui"},o={MonitorDown:[[/^(.+): no ping for (\d+ (?:min|h|days?))\.$/,(e,t,r)=>`${t}: nggak ada ping selama ${r.replace(/^(\d+) min$/,"$1 menit").replace(/^(\d+) h$/,"$1 jam").replace(/^(\d+) days?$/,"$1 hari")}.`],[/^(.+): (the job reported a failure|started but didn't finish|never pinged|no ping in time)\.$/,(e,t,r)=>`${t}: ${a[r]}.`],[/^(.+) failed its check \((.*)\) on (\d+) consecutive checks\.$/,(e,t,r,n)=>`${t}: ${n} cek gagal berturut-turut (${r}).`],[/^(.+) returned no answer on (\d+) consecutive checks\.$/,(e,t,r)=>`${t}: ${r} cek gagal berturut-turut (nggak ada jawaban).`],[/^(.+) returned (HTTP \d+) on (\d+) consecutive checks\.$/,(e,t,r,n)=>`${t}: ${n} cek gagal berturut-turut (${r}).`],[/^(.+) answers again\.$/,(e,t)=>`${t} udah jawab lagi.`],[/^(\S+) moved to (\S+); MonitorDomainMoved takes over\.$/,(e,t,r)=>`${t} pindah ke ${r}; MonitorDomainMoved yang ambil alih.`]],MonitorDomainMoved:[[/^(\S+) is no longer a domain of (.+); production is on (\S+)\.$/,(e,t,r,n)=>`${t} udah bukan domain ${r}; production sekarang di ${n}.`],[/^The monitor checks (\S+), a domain of (.+)\.$/,(e,t,r)=>`Monitor ngecek ${t}, domain ${r}.`]],CollectorStale:[[/^The collector hasn't finished a run yet\.$/,()=>"Collector belum pernah selesai jalan."],[/^The last minute run finished ([\d,]+) min ago\.$/,(e,t)=>`Collector terakhir selesai jalan ${t} menit lalu.`]],HighLatency:[[/^p95 ([\d,]+) ms over the last 10 minutes \(limit ([\d,]+) ms\)\.$/,(e,t,r)=>`p95 ${t} ms selama 10 menit terakhir (batas ${r} ms).`]],DeploymentFailed:[[/^Production deployment \(no commit\) failed\.$/,()=>"Deploy production (tanpa commit) gagal."],[/^Production deployment (\S+) failed\.$/,(e,t)=>`Deploy production ${t} gagal.`]],DatabasePaused:[[/^Supabase project (.+) is paused\.$/,(e,t)=>`Project Supabase ${t} lagi di-pause.`]],CertExpiringSoon:[[/^The TLS certificate of (.+) expires in (-?\d+) days?\.$/,(e,t,r)=>n(r,`Sertifikat TLS ${t}`)]],DomainExpiringSoon:[[/^(.+) expires in (-?\d+) days?\.$/,(e,t,r)=>n(r,t)]],StorageAlmostFull:[[/^(.+) uses ([\d,]+) MB of ([\d,]+) MB \(([\d,]+)%\)\.$/,(e,t,r,n,a)=>`${t} pakai ${r} MB dari ${n} MB (${a}%).`]],NeonComputeHigh:[[/^(.+) used ([\d,]+) of ([\d,]+) CU-hours this month\.$/,(e,t,r,n)=>`${t} udah pakai ${r} dari ${n} CU-hours bulan ini.`]],FirestoreQuotaHigh:[[/^(.+) hit a Firestore quota \(RESOURCE_EXHAUSTED\)\.$/,(e,t)=>`${t} kena kuota Firestore (RESOURCE_EXHAUSTED).`],[/^(.+) read ([\d,]+) of ([\d,]+) documents today \(([\d,]+)%\)\.$/,(e,t,r,n,a)=>`${t} udah baca ${r} dari ${n} dokumen hari ini (${a}%).`]],AutoPauseRisk:[[/^No API traffic for (\d+) days?\. Supabase pauses free projects after about 7 days\.$/,(e,t)=>`Nggak ada traffic API selama ${r(t)}. Supabase nge-pause project free setelah sekitar 7 hari.`]],DnsProxiedToVercel:[[/^(.+) points to Vercel through the Cloudflare proxy\. Vercel recommends DNS only\.$/,(e,t)=>`${t} ngarah ke Vercel lewat proxy Cloudflare. Vercel nyaranin DNS only.`]],DbQuotaHigh:[[/^(.+): (.+) at ([\d,]+)% of the free plan\.$/,(e,t,r,n)=>`${t}: ${r.replace(/^Rows read/,"baris dibaca").replace(/^Rows written/,"baris ditulis").replace(/^Commands/,"command").replace(/^usage$/,"pemakaian").replace(/ today\b/," hari ini").replace(/\bof ([^ ]+(?: [A-Z]+)?)\b/,"dari $1").replace(/ this month\b/," bulan ini").replace(/\(account\)/,"(akun)")} udah ${n}% dari kuota gratis.`]],ComputeHigh:[[/^(.+) compute is back under the limits\.$/,(e,t)=>`Compute ${t} udah balik di bawah batas.`],[/^(.+): ((?:CPU|RAM|disk|connections) .+)\.$/,(e,t,r)=>`${t}: ${r.replace(/ for (\d+) min/g," selama $1 menit").replace(/\(limit /g,"(batas ").replace(/\bconnections (\d+) of (\d+)/g,"koneksi $1 dari $2")}.`]],CredentialExpiring:[[/^Google Drive access was removed \(invalid_grant\)\. Reconnect it\.$/,()=>"Akses Google Drive dicabut (invalid_grant). Sambungin lagi ya."],[/^The (\S+) credential (.+) has expired\.$/,(e,t,r)=>`Credential ${t} ${r} udah kedaluwarsa.`],[/^The (\S+) credential (.+) expires in (-?\d+) days?\.$/,(e,t,r,a)=>n(a,`Credential ${t} ${r}`)]],VulnerableDependency:[[/^(.+) has no moderate, high or critical dependency advisories\.$/,(e,t)=>`${t} nggak punya advisory dependency sedang, tinggi atau kritis.`],[/^(.+) has no high or critical dependency advisories\.$/,(e,t)=>`${t} nggak punya advisory dependency tinggi atau kritis.`],[/^(\d+) vulnerable packages? \(([^)]*)\): (.*)$/,(e,t,r,n)=>`${t} paket rentan (${r.replace(/\b(critical|high|moderate|low|unknown)\b/g,e=>i[e])}): ${n.replace(/ \(no fix yet\)/g," (belum ada fix)").replace(/, \+(\d+) more\.$/,", +$1 lagi.")}`]],FrameworkVulnerable:[[/^(.+) runs Next\.js (.+) with no known advisories\.$/,(e,t,r)=>`${t} pakai Next.js ${r} tanpa advisory yang diketahui.`],[/^Next\.js (.+) has (\d+) known vulnerabilit(?:y|ies) \((critical|high|moderate|low|unknown)\), (?:fixed in (\S+)(?: \((one fix needs|some fixes need) Next\.js (\d+)\))?|no fix yet)\.$/,(e,t,r,n,a,o,s)=>`Next.js ${t} punya ${r} kerentanan yang diketahui (${i[n]}), ${a?`udah di-fix di ${a}${o?` (${"one fix needs"===o?"satu fix":"sebagian fix"} butuh Next.js ${s})`:""}`:"belum ada fix"}.`]]};function s(e,t){for(let[r,n]of Object.hasOwn(o,e)?o[e]:[]){let e=r.exec(t);if(e)return n(...e)}return t}e.s(["f",0,s],853190);let l={en:{open:"FIRING",repeat:"REPEAT",resolve:"RESOLVED"},id:{open:"MUNCUL",repeat:"ULANG",resolve:"PULIH"}},u={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},d={en:{firing:"firing",resolved:"resolved",since:"since",open:"Open alerts",more:"more on the Alerts page",causedBy:"caused by",incident:"reports an incident",step:"Next step"},id:{firing:"aktif",resolved:"pulih",since:"sejak",open:"Buka Alerts",more:"lagi di halaman Alerts",causedBy:"gara-gara",incident:"lagi ada insiden",step:"Langkah"}},c=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),p={critical:0,warning:1,info:2};function f(e,t){let r=e.filter(e=>"resolve"!==e.kind).length,n=e.length-r;return[r?`${r} ${d[t].firing}`:"",n?`${n} ${d[t].resolved}`:""].filter(Boolean).join(", ")}function m(e,t,r,n,a,i){let o=[...e].sort((e,t)=>("resolve"===e.kind)-("resolve"===t.kind)||p[e.severity]-p[t.severity]),s=[n],l=n.length+a.length+40;for(let e=0;e<o.length;e++){let n=r(o[e]);if(l+n.length+1>t){s.push(i(o.length-e));break}s.push(n),l+=n.length+1}return s.push(a),s.join("\n").slice(0,t)}let h={en:{CollectorStale:"the watchdog already runs the collector itself every 5 minutes. Check the job on cron-job.org and the latest Vercel deploy.",DomainExpiringSoon:"renew the domain at its registrar; Watchbell can't pay for it.",StorageAlmostFull:"delete old data or shorten retention in that database; the free tier can't add storage.",NeonComputeHigh:"cut queries or make Neon auto-suspend sooner; the quota resets at the start of the month.",FirestoreQuotaHigh:"cut Firestore reads (cache in the app); the quota resets daily.",DbQuotaHigh:"cut queries to that database until its quota resets.",ComputeHigh:"check the Pool card on the Supabase page (idle connections close automatically at 10 of 15); for CPU or disk, look for heavy queries.",DnsProxiedToVercel:"turn off the proxy (orange cloud) for that record in Cloudflare; Vercel needs DNS only.",CredentialExpiring:"create a new token and replace it in Settings → Connections before it expires.",FrameworkVulnerable:"if the app's GitHub repository isn't linked yet, link it on the app page to get an update PR from the office; or update next yourself.",MonitorDomainMoved:"press Update monitor on the Uptime page (or approve the proposal) so the monitor checks the new domain; the app itself is fine."},id:{CollectorStale:"watchdog udah jalanin collector sendiri tiap 5 menit. Cek job di cron-job.org dan deploy terakhir di Vercel.",DomainExpiringSoon:"perpanjang domain di registrar-nya, Watchbell nggak bisa bayar.",StorageAlmostFull:"hapus data lama atau pendekin retensi di database itu, free tier nggak bisa nambah storage.",NeonComputeHigh:"kurangin query atau percepat auto-suspend Neon, kuota reset awal bulan.",FirestoreQuotaHigh:"kurangin read Firestore (cache di app), kuota reset tiap hari.",DbQuotaHigh:"kurangin query ke database itu sampai kuotanya reset.",ComputeHigh:"cek kartu Pool di halaman Supabase (koneksi nganggur ditutup otomatis di 10 dari 15), kalau CPU/disk cari query yang berat.",DnsProxiedToVercel:"matiin proxy (awan oranye) record itu di Cloudflare, Vercel butuh DNS only.",CredentialExpiring:"bikin token baru dan ganti di Settings → Connections sebelum habis.",FrameworkVulnerable:"kalau repo GitHub app-nya belum di-link, link di halaman app biar office bikinin PR update; atau update next sendiri.",MonitorDomainMoved:"pencet Update monitor di halaman Uptime (atau approve usulannya) biar monitor ngecek domain baru; app-nya sendiri aman."}};e.s(["Z",0,u,"l",0,function(e,r,n,a="en"){let i=`${n.replace(/\/+$/,"")}/alerts`,o=d[a],p=e=>`${l[a][e.kind]} \xb7 ${u[a][e.severity]} \xb7 `,g=e=>"id"===a?s(e.ruleKey,e.message):e.message,y=e=>"resolve"===e.kind?null:((e,t="en")=>{let r=Object.hasOwn(h[t],e)?h[t][e]:void 0;return r?`${d[t].step}: ${r}`:null})(e.ruleKey,a),b=e=>[e.causedBy?`${o.causedBy} ${e.causedBy}`:"",e.provider?`${e.provider} ${o.incident}`:""].filter(Boolean).join(" · "),w=e=>`
|
|
16
|
+
+${e} ${o.more}`;return{telegram:m(e,4096,e=>`
|
|
17
|
+
<b>${p(e)}${c(e.ruleKey)} \xb7 ${c(e.title)}</b>
|
|
18
|
+
${c(g(e))}${b(e)?`
|
|
19
|
+
<i>${c(b(e))}</i>`:""}${y(e)?`
|
|
20
|
+
👉 ${c(y(e))}`:""}
|
|
21
|
+
${o.since} ${(0,t.clock)(e.startedAt)} ${(0,t.zoneLabel)(e.startedAt)}`,`<b>Watchbell</b>: ${f(e,a)} \xb7 ${(0,t.clock)(r)} ${(0,t.zoneLabel)(r)}`,`
|
|
22
|
+
<a href="${c(i)}">${o.open}</a>`,w),discord:m(e,2e3,e=>`
|
|
23
|
+
**${p(e)}${e.ruleKey} \xb7 ${e.title.replace(/[*_`~|\[\]<>]/g,"")}**
|
|
24
|
+
${g(e).replace(/[*_`~|\[\]<>]/g,"")}${b(e)?`
|
|
25
|
+
_${b(e)}_`:""}${y(e)?`
|
|
26
|
+
👉 ${y(e)}`:""}`,`**Watchbell**: ${f(e,a)} \xb7 ${(0,t.clock)(r)} ${(0,t.zoneLabel)(r)}`,`
|
|
27
|
+
${i}`,w)}},"H",0,c],484745)},511394,665870,944097,e=>{var t=e.i(516506),r=e.i(164617),n=e.i(887103),a=e.i(819263),i=e.i(631065),o=e.i(663948),s=e.i(79068),l=e.i(461315);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 r=t.map(e=>e.fixed).filter(t=>!!t&&(0,l.C)(t)&&(0,o.f)(t,e)>0);if(!r.length)return null;let n=r.filter(t=>(0,s.J)(e,t));return(n.length?n:r).reduce((e,t)=>(0,o.f)(t,e)>0?t:e)}function p(e,t){let r=c(e,t),n=r?t.map(e=>e.fixed).filter(e=>!!e&&(0,l.C)(e)&&(0,o.f)(e,r)>0):[],a=n.reduce((e,t)=>null===e||(0,o.f)(t,e)>0?t:e,null),s=a?` (${1===n.length?"one fix needs":"some fixes need"} Next.js ${a.split(".")[0]})`:"";return`Next.js ${e??"(unknown version)"} has ${(0,i.q)(t.length)} (${(0,i.N)(t).toLowerCase()}), ${r?`fixed in ${r}${s}`:"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 r=d[(0,i.N)(e.findings)],n=[...new Set(e.findings.map(e=>e.id))],a=[...new Set(e.findings.flatMap(e=>e.cve?[e.cve]:[]))];return{from:e.version,to:t,upgrades:[{package:"next",to:t,vulnIds:n,cves:a,severity:r},{package:"eslint-config-next",to:t,vulnIds:[],cves:[],severity:r,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"}]}],665870);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}},b=e=>{try{return new URL(e).pathname}catch{return"/"}},w="Down · ",v=(e,t,r)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...r}),k=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,_=new Set(["turso","upstash","d1"]),A={MonitorDown:(e,t)=>e.monitors.map(e=>{let n=v("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:b(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=t??3;if("heartbeat"===e.kind){let t;return{...n,status:"err"===e.state?"firing":"ok"===e.state?"ok":"unknown",message:`${e.appName} \xb7 ${e.url}: ${t=e.lastError,t?.startsWith(w)?t.slice(w.length):"no ping in time"}.`}}return e.movedTo?{...n,status:"ok",message:`${y(e.url)} moved to ${e.movedTo}; MonitorDomainMoved takes over.`}:e.failStreak>=a?{...n,status:"firing",message:(0,r.H)(e)?`${g(e.url)} failed its check (${(0,r.H)(e)}) on ${a} consecutive checks.`:`${g(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...n,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=v("MonitorDomainMoved",e.id,{resourceId:e.appId,title:`${e.appName} ${b(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 r=e.lastMinuteRunAt;return[v("CollectorStale","collector",{status:!r||e.now.getTime()-r.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:r?`The last minute run finished ${f((e.now.getTime()-r.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 r=v("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${b(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt});if(e.checksLast10<5||null===e.p95Last10)return r;let n=t??1500;return{...r,status:e.p95Last10>n?"firing":"ok",message:`p95 ${f(e.p95Last10)} ms over the last 10 minutes (limit ${f(n)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=v("DeploymentFailed",e.id,{resourceId:e.id,title:e.name,provider:"vercel"}),r=e.latestProduction;return r?"error"===r.state?{...t,status:"firing",message:`Production deployment ${r.sha?r.sha.slice(0,7):"(no commit)"} failed.`}:{...t,status:"building"===r.state?"unknown":"ok"}:{...t,status:"ok"}}),DatabasePaused:e=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(e=>v("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(r=>{let n=v("CertExpiringSoon",r.id,{resourceId:r.id,title:r.name,provider:"cloudflare"});if(!r.tlsNotAfter)return n;let a=m(r.tlsNotAfter,e.now);return{...n,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${r.name} expires in ${h(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(r=>{let n=v("DomainExpiringSoon",r.id,{resourceId:r.id,title:r.name,provider:"cloudflare"});if(!r.expiresAt)return n;let a=m(r.expiresAt,e.now);return{...n,status:a<(t??30)?"firing":"ok",message:`${r.name} expires in ${h(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let r=v("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:k(e)});if(null===e.sizeBytes||!e.sizeLimitBytes)return r;let n=e.sizeBytes/e.sizeLimitBytes*100;return{...r,status:n>(t??80)?"firing":"ok",message:`${e.name} uses ${f(e.sizeBytes/1e6)} MB of ${f(e.sizeLimitBytes/1e6)} MB (${f(n)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let r=v("NeonComputeHigh",e.id,{resourceId:e.id,title:e.name,provider:"neon"});return null===e.cuHours?r:{...r,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 r=v("FirestoreQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:"firebase"});if(e.quotaExhausted)return{...r,status:"firing",message:`${e.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===e.readsToday||!e.readsLimit)return!1===e.quotaExhausted?{...r,status:"ok"}:r;let n=e.readsToday/e.readsLimit*100;return{...r,status:n>(t??80)?"firing":"ok",message:`${e.name} read ${f(e.readsToday)} of ${f(e.readsLimit)} documents today (${f(n)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(r=>{let n=v("AutoPauseRisk",r.id,{resourceId:r.id,title:r.name,provider:"supabase"});if("paused"===r.state)return{...n,status:"ok"};if(!r.lastApiAt)return n;let a=Math.floor((e.now.getTime()-r.lastApiAt.getTime())/864e5);return{...n,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${h(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>v("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=>_.has(e.provider)).map(e=>{let r=v("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:k(e)});return null==e.quotaPct?r:{...r,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(r=>{let a=v("ComputeHigh",r.id,{resourceId:r.id,title:r.name,provider:"supabase",sampleAt:r.latest?new Date(r.latest.at):null}),i=(0,n.B)(r.latest,(0,n.V)(t),e.now);return null===i?a:{...a,status:i.length?"firing":"ok",message:i.length?`${r.name}: ${i.join(", ")}.`:`${r.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(r=>{let n=v("CredentialExpiring",r.id,{accountId:r.id,title:`${r.provider} \xb7 ${r.label}`,provider:r.provider});if("drive"===r.provider&&"error"===r.status&&r.lastError?.includes("invalid_grant"))return{...n,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!r.expiresAt)return{...n,status:"ok"};let a=m(r.expiresAt,e.now);return{...n,status:a<(t??14)?"firing":"ok",message:a<0?`The ${r.provider} credential ${r.label} has expired.`:`The ${r.provider} credential ${r.label} expires in ${h(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let r=e.apps.find(e=>e.id===t.appId);if(!r)return[];let n=v("VulnerableDependency",t.appId,{resourceId:t.appId,title:r.name,provider:"github"});if(t.error)return[n];let i=(0,a.g)(t.vulns);return i?[{...n,status:"firing",message:(0,a.L)(t.vulns),..."critical"===i?{severity:"critical"}:{}}]:[{...n,status:"ok",message:`${r.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:e=>e.frameworks?e.frameworks.flatMap(t=>{let r=e.apps.find(e=>e.id===t.appId);if(!r)return[];let n=v("FrameworkVulnerable",t.appId,{resourceId:t.appId,title:r.name});return"ok"===t.status?[{...n,status:"ok",message:`${r.name} runs Next.js ${t.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===t.status&&t.findings.length?[{...n,status:"firing",message:p(t.version,t.findings),..."CRITICAL"===(0,i.N)(t.findings)?{severity:"critical"}:{}}]:[n]}):null};e.s(["f",0,function(e,r,n){let a=[],i=new Set;for(let o of r){if(!o.enabled||n&&!n.includes(o.key)||!t._[o.key])continue;let r=A[o.key](e,o.threshold);r&&(i.add(o.key),a.push(...r))}return{observations:a,evaluated:i}}],511394);let I=["MonitorDown","HighLatency"],S=["telegram","discord","webhook","smtp"],$=e=>e.channels.some(e=>S.includes(e));function T(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&I.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let R=(e,t)=>"critical"===t&&"warning"===e?"critical":e,x=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),E=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,r,n,a,i){let o={open:[],touch:[],resolve:[]},s=new Map(a.map(e=>[e.key,e])),l=new Map(r.map(e=>[E(e.rule,e.subject),e])),u=new Set(e.map(e=>E(e.ruleKey,e.subject))),d=e=>o.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let r of e){let e=s.get(r.ruleKey),a=l.get(E(r.ruleKey,r.subject));if(!e||!e.enabled){o.resolve.push({id:r.id,pending:null});continue}if(!n.has(r.ruleKey))continue;if(!a){o.resolve.push({id:r.id,pending:null});continue}if("unknown"===a.status)continue;let u=a.provider?i.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=T(a,i),n=r.notifiedOpen&&null!==r.lastNotifiedAt&&i.now.getTime()-r.lastNotifiedAt.getTime()>=216e5,s={id:r.id,okStreak:0,lastSampleAt:a.sampleAt??r.lastSampleAt,lastSeenAt:i.now,message:a.message,causedBy:t,providerIncident:u},l=!r.notifiedOpen&&(!r.pendingSince||i.now.getTime()-r.pendingSince.getTime()>=216e5);(n||l)&&!x(r,i.now)&&!t&&null===r.pending&&$(e)&&(s.pending=n?"repeat":"open"),o.touch.push(s);continue}if(!t._[r.ruleKey].sampled||null===a.sampleAt){d(r);continue}if(!(null===r.lastSampleAt||a.sampleAt.getTime()>r.lastSampleAt.getTime()))continue;let c=r.okStreak+1;c>=2?d(r):o.touch.push({id:r.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of r){if("firing"!==e.status||u.has(E(e.rule,e.subject))||i.maintenance.has(e.subject)||e.resourceId&&i.maintenance.has(e.resourceId))continue;let t=s.get(e.rule);if(!t)continue;let r=T(e,i);o.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:i.now,lastSeenAt:i.now,lastSampleAt:e.sampleAt,causedBy:r,providerIncident:e.provider?i.incidents.get(e.provider)??null:null,pending:r||!$(t)?null:"open"})}return o}],944097)},129080,247714,e=>{var t=e.i(707866),r=e.i(35048),n=e.i(516464),a=e.i(788264),i=e.i(88316),o=e.i(549889),s=e.i(292178);e.s(["d",0,function(e,o){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,a.k)(a.B,e.data),r=(0,s.Z)(t.lastTrafficAt),n=(0,s.Z)(t.trafficAt),o=r??(n&&!t.trafficError?new Date(n.getTime()-6048e5):null);return{...l,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:i.R,lastApiAt:o}}if("neon_project"===e.kind){let t=(0,a.k)(a.s,e.data),r=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...l,provider:"neon",cuHours:null==t.computeSeconds?null:t.computeSeconds/3600,cuLimit:n.a.cuHours,sizeBytes:r.length?r.reduce((e,t)=>e+t,0):null,sizeLimitBytes:n.a.storageBytes}}if("firestore"===e.kind){let t=(0,a.k)(a.w,e.data),n=(0,s.Z)(t.opsAt),i=null!=t.reads&&n&&n.getTime()>=(0,r.a)(o).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...l,provider:"firestore",readsToday:i,readsLimit:r.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let r=(0,a.k)(a.N,e.data),n=(0,t.u)((0,t.G)(r,o));return{...l,provider:"turso",sizeBytes:r.orgStorageBytes??null,sizeLimitBytes:t.g.storageBytes,quotaPct:n?.pct??null,quotaLabel:n?`${n.label} ${n.text}`:null}}if("upstash_redis"===e.kind){let r=(0,a.k)(a.e,e.data),n=(0,t.u)((0,t.$)(r,o));return{...l,provider:"upstash",sizeBytes:r.storageBytes??null,sizeLimitBytes:t.W.storageBytes,quotaPct:n?.pct??null,quotaLabel:n?`${n.label} ${n.text}`:null}}if("d1_database"===e.kind){let r=(0,a.k)(a.x,e.data),n=(0,t.u)((0,t.I)(r,o));return{...l,provider:"d1",sizeBytes:r.sizeBytes??null,sizeLimitBytes:t.M.dbBytes,quotaPct:n?.pct??null,quotaLabel:n?`${n.label} ${n.text}`:null}}return null},"S",0,function(e,t){let r=e.filter(e=>Array.isArray(e.data.records));if(!r.length)return null;let n=e.map(e=>e.name),a=[];for(let e of r){let r=t.filter(t=>(0,s.J)(t.name,n)===e.name.toLowerCase().replace(/\.$/,"")),i=[...new Set(r.flatMap(e=>(0,o.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,o.q)(e.data).records){if(!(0,s.l)(t,i))continue;let n=t.name.toLowerCase().replace(/\.$/,""),o=r.find(e=>e.name.toLowerCase().replace(/\.$/,"")===n);a.push({id:`${e.id}:${t.id}`,resourceId:o?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,s.Z)((0,o.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,s.Z)((0,o.q)(e.data).tls?.notAfter),expiresAt:null}))]:null}],129080);var l=e.i(336763),u=e.i(396918),d=e.i(406212),c=e.i(530298);async function p(){let[e]=await (0,d.db)().select({at:c.collectorRuns.finishedAt}).from(c.collectorRuns).where((0,l.and)((0,l.isNotNull)(c.collectorRuns.finishedAt),(0,l.inArray)(c.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,u.desc)(c.collectorRuns.finishedAt)).limit(1);return e?.at??null}async function f(){let[e]=await (0,d.db)().select({at:c.collectorRuns.finishedAt}).from(c.collectorRuns).where((0,l.and)((0,l.isNotNull)(c.collectorRuns.finishedAt),(0,l.inArray)(c.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,u.desc)(c.collectorRuns.finishedAt)).limit(1);return e?.at??null}e.s(["D",0,p,"d",0,f],247714)},188477,e=>{let t=/^[A-Za-z0-9_.-]{1,64}$/,r={supabase:"db:supabase",neon:"db:neon",firebase:"db:firebase",extraDbs:"db:extra",zones:"net:zones",domains:"net:domains",status:"status"},n=Object.values(r),a={supabase_project:r.supabase,neon_project:r.neon,firestore:r.firebase,turso_database:r.extraDbs,upstash_redis:r.extraDbs,d1_database:r.extraDbs},i={supabase:[r.supabase],supabaseUsage:[r.supabase],neon:[r.neon],firebase:[r.firebase],firebaseUsage:[r.firebase],extraDbs:[r.extraDbs],cloudflare:[r.zones,r.domains],domains:[r.zones,r.domains],tls:[r.zones,r.domains],rdap:[r.zones,r.domains],eol:[r.zones,r.domains],status:[r.status]},o="__ocDate",s="__ocMap";e.s(["t",0,n,"k",0,300,"G",0,a,"m",0,r,"l",0,function(e){let r=[e.VERCEL_DEPLOYMENT_ID,e.VERCEL_GIT_COMMIT_SHA,e.NEXT_DEPLOYMENT_ID].find(e=>void 0!==e&&""!==e);return`${void 0!==r&&t.test(r)?r:"local"}.v5`},"Q",0,function e(t){return t instanceof Date?{[o]:t.toISOString()}:t instanceof Map?{[s]:[...t.entries()].map(([t,r])=>[e(t),e(r)])}:Array.isArray(t)?t.map(e):t&&"object"==typeof t?Object.fromEntries(Object.entries(t).filter(([,e])=>void 0!==e).map(([t,r])=>[t,e(r)])):void 0===t?null:t},"o",0,function(e){return[...new Set(e.flatMap(e=>i[e]??[]))]},"z",0,function(e){let t=e=>Array.isArray(e)?e.map(t):e&&"object"==typeof e?"string"==typeof e[o]&&1===Object.keys(e).length?new Date(e[o]):Array.isArray(e[s])&&1===Object.keys(e).length?new Map(e[s].map(([e,r])=>[t(e),t(r)])):Object.fromEntries(Object.entries(e).map(([e,r])=>[e,t(r)])):e;return t(e)}])},599040,e=>{var t=e.i(75064),r=e.i(492973),n=e.i(978071),a=e.i(542746),i=e.i(90879);let o=t.z.object({COLLECTOR_SECRET:r.z.string().min(32),CRON_SECRET:r.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:r.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:r.z.string().min(10)}),s=o.extend({QSTASH_CURRENT_SIGNING_KEY:n.z.union([a.z.literal(""),r.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:n.z.union([a.z.literal(""),r.z.string().min(10)]).default("")}),l=!1;e.s(["f",0,function(){try{var e=process.env;let t=("selfhost"===(0,i.mode)(e)?s:o).safeParse(e);if(!t.success)throw Error(`Missing or invalid scheduler settings: ${t.error.issues.map(e=>e.path.join(".")).join(", ")}`);return t.data}catch(e){return l||(l=!0,console.warn(e instanceof Error?e.message:"Missing or invalid scheduler settings")),null}}])},122603,149398,809816,e=>{var t=e.i(300794);let r=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),a=e=>e.length>40?`${e.slice(0,39)}…`:e;function i(e,t,i){let o;if("contains"===e.kind)return t.includes(e.text)?null:i?"Keyword not found in the first 256 KB":"Keyword not found";try{o=JSON.parse(t)}catch{return i?"Response is larger than 256 KB":"Response isn't JSON"}let s=function(e){if(!r.test(e))return null;let t=[];for(let r of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))t.push(void 0!==r[1]?r[1]:Number(r[2]));return t.some(e=>"string"==typeof e&&n.has(e))?null:t}(e.path);if(!s)return`JSON ${e.path} is missing`;let l=function(e,t){let r=e;for(let e of t)if("number"==typeof e){if(!Array.isArray(r)||e>=r.length)return{found:!1};r=r[e]}else{if(!r||"object"!=typeof r||Array.isArray(r)||!Object.hasOwn(r,e))return{found:!1};r=r[e]}return{found:!0,value:r}}(o,s);return l.found?("string"==typeof l.value?l.value:JSON.stringify(l.value))===e.equals?null:`JSON ${e.path} is ${a(JSON.stringify(l.value)??"undefined")}, expected "${a(e.equals)}"`:`JSON ${e.path} is missing`}e.s(["Q",0,262144,"$",0,i,"C",0,function(e){return e.bodyContains?{kind:"contains",text:e.bodyContains}:e.jsonPath&&null!==e.jsonEquals?{kind:"json",path:e.jsonPath,equals:e.jsonEquals}:null}],149398);let o=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function s(e){let t=o.exec(e);if(!t)return null;let r=t.slice(1).map(Number);return r.every(e=>e<=255)?r:null}function l([e,t,r]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===r||192===e&&168===t||198===e&&(18===t||19===t)}function u(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),r=s(t.slice(e+1));if(!r)return null;t=`${t.slice(0,e+1)}${(r[0]<<8|r[1]).toString(16)}:${(r[2]<<8|r[3]).toString(16)}`}let r=t.split("::");if(r.length>2)return null;let n=e=>""===e?[]:e.split(":"),a=n(r[0]),i=2===r.length?n(r[1]):[],o=8-a.length-i.length;if(1===r.length?0!==o:o<1)return null;let l=[...a,...Array(2===r.length?o:0).fill("0"),...i];return 8===l.length&&l.every(e=>/^[0-9a-f]{1,4}$/.test(e))?l.map(e=>parseInt(e,16)):null}function d(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,r;return l([(t=e[1])>>8,255&t,(r=e[2])>>8,255&r])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}function c(e){let t=s(e);if(t)return l(t);let r=u(e);return!r||d(r)}function p(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=u(t.slice(1,-1));return!e||d(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let r=s(t);if(r)return l(r);let n=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(n)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}function f(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port||p(e.hostname)?"blocked":null}e.s(["N",0,p,"W",0,c,"_",0,f],809816);let m=new Set([301,302,303,307,308]),h={ok:!1,statusCode:null,latencyMs:null,error:"Blocked address"};async function g(e){return(await (0,t.lookup)(e,{all:!0,verbatim:!0})).map(e=>e.address)}let y=e=>e.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(e),b=e=>e.toLowerCase().replace(/^www\./,"");async function w(e,t,r,n){let a,i=t.lookup??g;try{a=new URL(e)}catch{return{refused:"blocked"}}let o=a;for(let e=0;;e++){var s,l;if(f(a))return{refused:"blocked"};if(t.sameOrigin&&(s=a,l="www"===t.sameOrigin,s.origin!==o.origin&&(!l||s.protocol!==o.protocol||s.port!==o.port||b(s.hostname)!==b(o.hostname))))return{refused:"origin"};if(!y(a.hostname)){let e=await Promise.race([i(a.hostname),n]);if(!e.length)throw Error("no address");if(e.some(c))return{refused:"blocked"}}r.throwIfAborted();let u=await (t.fetch??fetch)(a.toString(),{method:"GET",redirect:"manual",cache:"no-store",headers:{...t.headers,"User-Agent":t.userAgent??"OpsConsole-Uptime/1.0 (+https://watchbell.west-solutions.web.id)"},signal:r}),d=m.has(u.status)?u.headers.get("location"):null;if(null===d)return{res:u,url:a};if(await u.body?.cancel().catch(()=>void 0),e>=20)return{refused:"redirects"};try{a=new URL(d,a)}catch{return{refused:"blocked"}}}}function v(e){let t=new Promise((t,r)=>{e.aborted?r(e.reason):e.addEventListener("abort",()=>r(e.reason),{once:!0})});return t.catch(()=>void 0),t}function k(e,t){if(e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name))return`No answer within ${_(t)}`;let r=e instanceof TypeError&&e.cause instanceof Error?e.cause.message:"";return/redirect/i.test(r)?"Too many redirects":"Couldn't connect"}let _=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`,A="Redirected to another site",I={blocked:"Blocked address",redirects:"Too many redirects",origin:A},S="DEPLOYMENT_NOT_FOUND";async function $(e,t={}){let r=t.timeoutMs??5e3,n=t.clock??(()=>performance.now()),a=n(),o=AbortSignal.timeout(r);try{let s,l=await w(e,t,o,v(o));if("refused"in l)return"blocked"===l.refused?h:{ok:!1,statusCode:null,latencyMs:null,error:I[l.refused]};let u=Math.round(n()-a),d=l.res.status===(t.expectedStatus??200);if(!d||!t.body){let e;return await l.res.body?.cancel().catch(()=>void 0),{ok:d,statusCode:l.res.status,latencyMs:u,error:d?null:`HTTP ${l.res.status}${(e=l.res,/^vercel$/i.test(e.headers.get("server")?.trim()??"")&&e.headers.get("x-vercel-error")?.trim()===S)?` \xb7 ${S}`:""}`}}try{s=await R(l.res,262144,v(o))}catch(e){return{ok:!1,statusCode:l.res.status,latencyMs:u,error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`Body not read within ${_(r)}`:"Body couldn't be read"}}let c=i(t.body,new TextDecoder().decode(s.bytes),s.truncated);return{ok:null===c,statusCode:l.res.status,latencyMs:u,error:c}}catch(e){return{ok:!1,statusCode:null,latencyMs:null,error:k(e,r)}}}async function T(e,t={}){let r=t.timeoutMs??1e4,n=t.maxBytes??3145728,a=t.signal?AbortSignal.any([AbortSignal.timeout(r),t.signal]):AbortSignal.timeout(r),i=v(a);try{let r=await w(e,t,a,i);if("refused"in r)return{ok:!1,error:I[r.refused]};let{bytes:o,truncated:s}=await R(r.res,n,i),l=new TextDecoder().decode(o);return{ok:!0,status:r.res.status,url:r.url.toString(),body:l,truncated:s}}catch(e){return{ok:!1,error:k(e,r)}}}async function R(e,t,r){let n=e.body?.getReader(),a=[],i=0,o=!1;if(n)try{for(;;){let{done:e,value:s}=await Promise.race([n.read(),r]);if(e)break;let l=t-i;if(s.byteLength>l){a.push(s.subarray(0,l)),o=!0;break}if(a.push(s),(i+=s.byteLength)===t){o=!(await Promise.race([n.read(),r])).done;break}}}finally{n.cancel().catch(()=>void 0)}return{bytes:Buffer.concat(a),truncated:o}}async function x(e,t,r){let n=Array(e.length),a=0;async function i(){for(;a<e.length;){let t=a++;n[t]=await r(e[t])}}return await Promise.all(Array.from({length:Math.min(Math.max(1,t),e.length)},i)),n}e.s(["l",0,A,"X",0,v,"b",0,$,"P",0,x,"z",0,R,"K",0,T],122603)},467404,628852,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(530298),a=e.i(816173);let i=(e,r)=>null===r?(0,t.isNull)(e):(0,t.eq)(e,r);async function o(e,o,s){let l=(0,a.G)(e.failStreak,o);return(await (0,r.db)().update(n.monitors).set({state:l.state,failStreak:l.failStreak,lastCheckedAt:s,lastStatus:o.statusCode,lastLatencyMs:o.latencyMs,lastError:o.error,...l.state!==e.state?{stateSince:s}:{},updatedAt:s}).where((0,t.and)((0,t.eq)(n.monitors.id,e.id),null===e.lastCheckedAt?(0,t.isNull)(n.monitors.lastCheckedAt):(0,t.eq)(n.monitors.lastCheckedAt,e.lastCheckedAt),(0,t.eq)(n.monitors.state,e.state),(0,t.eq)(n.monitors.failStreak,e.failStreak),(0,t.eq)(n.monitors.url,e.url),(0,t.eq)(n.monitors.expectedStatus,e.expectedStatus),i(n.monitors.bodyContains,e.bodyContains),i(n.monitors.jsonPath,e.jsonPath),i(n.monitors.jsonEquals,e.jsonEquals))).returning({id:n.monitors.id})).length>0}e.s(["T",0,i,"j",0,o],467404);let s={heartbeats:60,checks:60,vercel:60,supabase:300,supabaseUsage:3600,neon:300,firebase:300,firebaseUsage:3600,extraDbs:3600,cloudflare:3600,domains:21600,tls:3600,rdap:3600,eol:86400,status:300,logs:300,pageviews:1800,node:43200,security:21600,alerts:60,digest:300},l={supabase:0,digest:0,neon:60,firebase:120,status:180,logs:240,pageviews:1620,supabaseUsage:660,extraDbs:960,firebaseUsage:1320,cloudflare:1980,tls:2460,rdap:3120,domains:5280,eol:13560,node:13380,security:16560};function u(e,t){let r=1e3*s[e],n=(l[e]??0)*1e3;return Math.floor((t.getTime()+5e3-n)/r)*r+n}let d={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,node:6e3,security:11e3},c={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,node:null,status:null,alerts:null,digest:null,security:null},p={security:["hosting","devops"]},f=["supabase"];function m(e,t){return e.filter(e=>{let r=p[e];if(r)return r.some(e=>!t.has(e));let n=c[e];return null===n||!t.has(n)||f.includes(e)})}e.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"P",0,function(e,t,r){let n=Math.min(e,t-r);return n<1e3?null:n},"S",0,function(e,t,r,n=new Set){let a=0;return m(Object.keys(s),n).filter(n=>{let i=e[n]?new Date(e[n]).getTime():null;if(s[n]<=60)return null===i||!!r||t.getTime()-i>=1e3*s[n]-1e4;let o=u(n,t);return(null===i||!(i>=o-5e3))&&(!(null===i||t.getTime()+5e3-o>=6e4)||!(a>=2)&&(a++,!0))})},"$",0,(e,t)=>{let r=c[e];return null!==r&&t.has(r)&&f.includes(e)},"B",0,function(e,t,r){return!r||!e||t.getTime()-e.getTime()>=5e4},"G",0,u,"z",0,function(e,t,r){return t-r>=(d[e]??0)},"_",0,function(e,t,r=new Set){if(!t||e.includes("security")||!m(["security"],r).length)return{due:[...e],early:!1};let n=Object.keys(s),a=e.findIndex(e=>n.indexOf(e)>n.indexOf("security")),i=[...e];return i.splice(a<0?i.length:a,0,"security"),{due:i,early:!0}}],628852)},732077,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(530298),a=e.i(483324),i=e.i(348657);let o="deps.lockfileDispatched";async function s(){let[e]=await (0,r.db)().select({value:n.settings.value}).from(n.settings).where((0,t.eq)(n.settings.key,a.h)).limit(1);return(0,a.g)(e?.value).repo}async function l(e,u,d=new Date){try{let l=await s();if(!l)return{sent:!1,why:"no actions repository"};let c=(0,a.C)(u);if(!c)return{sent:!1,why:"invalid"};let p=await (0,i.B)(e,l,c);if(!p.ok)return{sent:!1,why:p.error};let[f]=await (0,r.db)().select({value:n.settings.value}).from(n.settings).where((0,t.eq)(n.settings.key,o)).limit(1),m=f?.value&&"object"==typeof f.value?f.value:{},h={...Object.fromEntries(Object.entries(m).filter(([,e])=>d.getTime()-Date.parse(e)<864e5)),[`${u.repo}#${u.branch}`]:d.toISOString()};return await (0,r.db)().insert(n.settings).values({key:o,value:h}).onConflictDoUpdate({target:n.settings.key,set:{value:h,updatedAt:d}}),{sent:!0}}catch(e){return console.warn("deps: lockfile dispatch failed:",e instanceof Error?e.name:"error"),{sent:!1,why:"error"}}}async function u(e,i,s=new Date){try{let[l]=await (0,r.db)().select({value:n.settings.value}).from(n.settings).where((0,t.eq)(n.settings.key,o)).limit(1),u=l?.value?.[`${e}#${i}`];return!!u&&s.getTime()-Date.parse(u)<a.w}catch{return!1}}e.s(["W",0,u,"U",0,l])},123603,e=>{var t=e.i(336763),r=e.i(396918),n=e.i(533102),a=e.i(406212),i=e.i(530298),o=e.i(129080),s=e.i(247714),l=e.i(366171),u=e.i(978196),d=e.i(889234),c=e.i(584820);async function p(){return(0,a.db)().select({appId:i.links.fromResourceId,dbId:i.links.toResourceId}).from(i.links).where((0,t.eq)(i.links.kind,"uses_db")).limit(500)}async function f(e){let f=(0,t.and)((0,t.eq)(i.resources.monitored,!0),(0,t.isNull)(i.resources.goneAt)),[m,h,g,y,b]=await Promise.all([(0,s.d)(),(0,s.D)(),(0,a.db)().select({m:i.monitors,appName:i.resources.name,appMeta:i.resources.meta}).from(i.monitors).innerJoin(i.resources,(0,t.eq)(i.resources.id,i.monitors.resourceId)).where((0,t.and)(f,(0,t.eq)(i.monitors.paused,!1),(0,t.eq)(i.monitors.ownerPaused,!1))),(0,a.db)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta}).from(i.resources).where((0,t.and)(f,(0,t.eq)(i.resources.kind,"app"))),(0,a.db)().select({id:i.accounts.id,provider:i.accounts.provider,label:i.accounts.label,expiresAt:i.accounts.expiresAt,status:i.accounts.status,lastError:i.accounts.lastError}).from(i.accounts)]),w=g.map(e=>e.m.id),v=w.length?await (0,a.db)().select({id:i.checks.monitorId,n:n.sql`count(*)::int`,p95:n.sql`percentile_cont(0.95) within group (order by ${i.checks.latencyMs})::float8`}).from(i.checks).where((0,t.and)((0,t.inArray)(i.checks.monitorId,w),(0,t.gte)(i.checks.at,new Date(e.getTime()-6e5)),(0,t.eq)(i.checks.inMaintenance,!1))).groupBy(i.checks.monitorId):[],k=y.map(e=>e.id),_=k.length?await (0,a.db)().selectDistinctOn([i.deployments.resourceId],{appId:i.deployments.resourceId,state:i.deployments.state,sha:i.deployments.commitSha,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,t.and)((0,t.inArray)(i.deployments.resourceId,k),(0,t.eq)(i.deployments.target,"production"))).orderBy(i.deployments.resourceId,(0,r.desc)(i.deployments.createdAtProvider)):[],A=await (0,a.db)().select({id:i.resources.id,name:i.resources.name,kind:i.resources.kind,state:i.snapshots.state,data:i.snapshots.data}).from(i.resources).innerJoin(i.snapshots,(0,t.eq)(i.snapshots.resourceId,i.resources.id)).where((0,t.and)(f,(0,t.inArray)(i.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),I=e=>A.filter(t=>t.kind===e),S=A.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),$=I("zone"),T=I("domain"),R=await p(),x=await (0,l.Y)().catch(()=>null),E=k.length?await (0,d.a)(k).catch(()=>null):null,N=k.length?await (0,c.F)(k).catch(()=>null):null;return{now:e,lastMinuteRunAt:m,lastAnyRunAt:h,monitors:g.map(({m:e,appName:t,appMeta:r})=>{let n=v.find(t=>t.id===e.id),a="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:a?e.name??"heartbeat":e.url,kind:a?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:n?.p95??null,checksLast10:n?.n??0,movedTo:a?null:(0,u.u)(e.url,{name:t,meta:r},y.filter(t=>t.id!==e.resourceId),{lastError:e.lastError})?.to??null}}),apps:y.map(e=>{let t=_.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:S.length?S.map(t=>(0,o.d)(t,e)).filter(e=>null!==e):null,domains:(0,o.r)($,T),dns:(0,o.S)($,T),links:R,compute:x,deps:E&&E.length?E:null,frameworks:N&&N.length?N:null}}e.s(["f",0,f])},234195,e=>{var t=e.i(336763),r=e.i(396918),n=e.i(533102),a=e.i(406212),i=e.i(530298),o=e.i(516506),s=e.i(511394),l=e.i(944097),u=e.i(764266),d=e.i(873083),c=e.i(123603),p=e.i(706959),f=e.i(638809);let m={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function h(){return(await (0,a.db)().select().from(i.alertRules)).filter(e=>(0,o.h)(e.key)).map(e=>({key:e.key,severity:e.severity,threshold:e.threshold,enabled:e.enabled,channels:e.channels}))}async function g(e,r={}){let[n,y,b,w,v,k]=await Promise.all([(0,c.f)(e),h(),(0,a.db)().select().from(i.alerts).where((0,t.isNull)(i.alerts.resolvedAt)),(0,a.db)().select({provider:i.providerStatus.provider,state:i.providerStatus.state}).from(i.providerStatus),(0,p.f)(),(0,f.I)()]),_=new Map(n.accounts.map(e=>[e.id,e.provider])),A=b.filter(e=>!(0,d.O)(k,e.ruleKey,e.accountId?_.get(e.accountId):null)),I=(0,s.f)(n,y,r.only),S=I.evaluated,$=I.observations.filter(e=>!(0,d.O)(k,e.rule,e.provider)),T=y.find(e=>"CollectorStale"===e.key),R=void 0===n.lastAnyRunAt?n.lastMinuteRunAt:n.lastAnyRunAt,x=!!T?.enabled&&(!R||e.getTime()-R.getTime()>(T.threshold??5)*6e4),E=new Map((n.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),N=new Map(n.links.filter(e=>E.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${E.get(e.dbId)}`])),P=new Map(w.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,m[e.provider]??e.provider])),O=(0,u.u)(v,n.monitors.map(e=>({id:e.id,appId:e.appId})),e,n.apps.map(e=>e.id)),C=A.filter(e=>(0,o.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})),j=(0,l.f)(C,$,S,y,{now:e,collectorStale:x,mutedApps:N,incidents:P,maintenance:O});return j.open.length||j.touch.length||j.resolve.length?(await (0,a.db)().transaction(async r=>{for(let t of j.open)await r.insert(i.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let n of j.touch){let{id:a,pending:o,...s}=n;await r.update(i.alerts).set({...s,...o?{pending:o,pendingSince:e}:{}}).where((0,t.and)((0,t.eq)(i.alerts.id,a),(0,t.isNull)(i.alerts.resolvedAt)))}for(let n of j.resolve)await r.update(i.alerts).set({resolvedAt:e,pending:n.pending,pendingSince:n.pending?e:null}).where((0,t.and)((0,t.eq)(i.alerts.id,n.id),(0,t.isNull)(i.alerts.resolvedAt)))}),{opened:j.open.length,resolved:j.resolve.length}):{opened:0,resolved:0}}let y=n.sql`case ${i.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function b(e=new Set){return(await (0,a.db)().select({a:i.alerts,name:i.resources.name,kind:i.resources.kind}).from(i.alerts).leftJoin(i.resources,(0,t.eq)(i.resources.id,i.alerts.resourceId)).where((0,t.and)((0,t.isNull)(i.alerts.resolvedAt),(0,f.s)(e))).orderBy(y,(0,r.desc)(i.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:r})=>({...e,resourceName:t??null,resourceKind:r??null}))}async function w(){return b(await (0,f.I)())}e.s(["$",0,g,"q",0,b,"i",0,w])},503313,e=>{var t=e.i(396918),r=e.i(336763),n=e.i(533102),a=e.i(406212),i=e.i(530298),o=e.i(760859);async function s(){let[e,s]=await Promise.all([(0,a.db)().select({id:i.resources.id,kind:i.resources.kind,name:i.resources.name,firstSeenAt:i.resources.firstSeenAt,parentId:i.resources.parentId,team:n.sql`${i.resources.meta}->>'teamSlug'`}).from(i.resources).where((0,r.inArray)(i.resources.kind,["app","supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"])).orderBy((0,t.asc)(i.resources.firstSeenAt),(0,t.asc)(i.resources.id)).limit(2e3),(0,a.db)().select({id:i.accounts.id,label:i.accounts.label,createdAt:i.accounts.createdAt}).from(i.accounts).orderBy((0,t.asc)(i.accounts.createdAt),(0,t.asc)(i.accounts.id)).limit(200)]);return(0,o.n)(e,s)}e.s(["f",0,s])},595262,e=>{var t=e.i(333407);async function r(e){await (0,t.f)([{type:"action",kind:e.kind,message:e.message,detail:e.detail??null,resourceId:e.resourceId,actorUserId:e.actorUserId,at:new Date}])}e.s(["f",0,r])},589878,e=>{var t=e.i(668304),r=e.i(188477),n=e.i(90879),a=e.i(503313),i=e.i(586307),o=e.i(827439),s=e.i(147100);let l=(0,r.l)(process.env);function u(e,a,i){let o=(0,t.unstable_cache)(async(...e)=>(0,r.Q)(await a(...e)),["ops",l,...e],{revalidate:r.k,tags:i});return async(...e)=>(0,n.isCloud)()?(0,r.z)(await o(...e)):a(...e)}Object.fromEntries(Object.keys(r.G).map(e=>[e,u(["listDatabases",e],()=>i.R(e),[r.G[e]])])),u(["supabaseSlotInputs"],()=>i.V(),[r.m.supabase]),u(["databaseOptions"],()=>i.S(),[r.m.supabase,r.m.neon,r.m.firebase,r.m.extraDbs]),u(["listDomains"],()=>o.p(),[r.m.domains,r.m.zones]),u(["listZoneOptions"],()=>o.c(),[r.m.zones]),u(["getZoneView"],e=>o.j(e),[r.m.zones]);let d=u(["aliasBook"],()=>a.f(),[r.m.supabase,r.m.neon,r.m.firebase,r.m.extraDbs,r.m.zones,r.m.domains]);u(["providerStatus"],()=>s.B(),[r.m.status]),e.s(["f",0,d])},586307,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(530298),a=e.i(203868),i=e.i(788264),o=e.i(857799),s=e.i(70377);async function l(e){let a=await (0,r.db)().select({r:n.resources,s:n.snapshots,account:n.accounts.label}).from(n.resources).innerJoin(n.accounts,(0,t.eq)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.eq)(n.snapshots.resourceId,n.resources.id)).where((0,t.and)((0,t.eq)(n.resources.kind,e),(0,t.eq)(n.resources.monitored,!0),(0,t.isNull)(n.resources.goneAt))).orderBy(n.resources.name).limit(s.O.databases);if(!a.length)return[];let i=await (0,r.db)().select({dbId:n.links.toResourceId,id:n.resources.id,name:n.resources.name}).from(n.links).innerJoin(n.resources,(0,t.eq)(n.resources.id,n.links.fromResourceId)).where((0,t.and)((0,t.eq)(n.links.kind,"uses_db"),(0,t.inArray)(n.links.toResourceId,a.map(e=>e.r.id)))).orderBy(n.resources.name).limit(s.O.apps);return a.map(({r:t,s:r,account:n})=>({id:t.id,name:t.name,externalId:t.externalId,kind:e,account:n,state:r?.state??"unknown",stateSince:r?.stateSince??null,collectedAt:r?.collectedAt??null,data:r?.data??{},usedBy:i.filter(e=>e.dbId===t.id).map(({id:e,name:t})=>({id:e,name:t}))}))}async function u(){let e=await (0,r.db)().select({r:n.resources,s:n.snapshots,account:n.accounts.label}).from(n.resources).innerJoin(n.accounts,(0,t.eq)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.eq)(n.snapshots.resourceId,n.resources.id)).where((0,t.and)((0,t.eq)(n.resources.kind,"supabase_project"),(0,t.isNull)(n.resources.goneAt))).limit(s.O.databases),a=new Map;for(let{s:t}of e){let e=(0,i.k)(i.B,t?.data);e.orgSlug&&void 0!==e.freeOrg&&a.set(e.orgSlug,e.freeOrg)}return e.map(({r:e,s:t,account:r})=>{let n=(0,i.k)(i.B,t?.data),o=n.orgSlug??("string"==typeof e.meta.orgSlug?e.meta.orgSlug:null);return{id:e.id,account:r,name:e.name,status:n.status??("string"==typeof e.meta.status?e.meta.status:"UNKNOWN"),freeOrg:n.freeOrg??(o?a.get(o)??null:null)}})}async function d(){return(await (0,r.db)().select({id:n.resources.id,name:n.resources.name,kind:n.resources.kind,externalId:n.resources.externalId,account:n.accounts.label,data:n.snapshots.data}).from(n.resources).innerJoin(n.accounts,(0,t.eq)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.eq)(n.snapshots.resourceId,n.resources.id)).where((0,t.and)((0,t.inArray)(n.resources.kind,[...o.H]),(0,t.eq)(n.resources.monitored,!0),(0,t.isNull)(n.resources.goneAt))).orderBy(n.resources.name).limit(s.O.databases)).map(e=>(0,a.f)({...e,kind:e.kind}))}async function c(e){return e.length?new Map((await (0,r.db)().select({app:n.links.fromResourceId,id:n.resources.id,externalId:n.resources.externalId,name:n.resources.name,kind:n.resources.kind,account:n.accounts.label,state:n.snapshots.state}).from(n.links).innerJoin(n.resources,(0,t.eq)(n.resources.id,n.links.toResourceId)).innerJoin(n.accounts,(0,t.eq)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.eq)(n.snapshots.resourceId,n.resources.id)).where((0,t.and)((0,t.eq)(n.links.kind,"uses_db"),(0,t.inArray)(n.links.fromResourceId,e),(0,t.eq)(n.resources.monitored,!0),(0,t.isNull)(n.resources.goneAt))).limit(s.O.apps)).map(e=>[e.app,{id:e.id,externalId:e.externalId,name:e.name,kind:e.kind,account:e.account,state:e.state??"unknown"}])):new Map}e.i(595262),e.s(["S",0,d,"F",0,c,"R",0,l,"V",0,u])},889234,e=>{var t=e.i(79068),r=e.i(336763),n=e.i(396918),a=e.i(533102),i=e.i(406212),o=e.i(530298),s=e.i(803237),l=e.i(93387),u=e.i(802641),d=e.i(461315),c=e.i(382966),p=e.i(618664),f=e.i(974034),m=e.i(819263),h=e.i(38607),g=e.i(736337),y=e.i(958948);async function b(){let[e]=await (0,i.db)().select().from(o.accounts).where((0,r.eq)(o.accounts.provider,"github")).orderBy((0,n.asc)(o.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,s.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,l.serverEnv)().OPS_ENCRYPTION_KEY);return t?{token:t,accountId:e.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function w(){let[e]=await (0,i.db)().select({value:o.settings.value}).from(o.settings).where((0,r.eq)(o.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}let v=e=>{let t=(0,g.w)(e);return{dir:(0,f.Q)((e??{}).rootDirectory),unsupported:(0,f.l)((e??{}).rootDirectoryUnsupported),branch:(0,g.i)((0,g.V)(e),null),...t?{fallback:t}:{}}};async function k(e){let t=[...new Set(e.filter(u.f))],n=new Map;if(!t.length)return n;let a=await (0,i.db)().select({repoId:o.appRepos.repoId,name:o.resources.name,monitored:o.resources.monitored,meta:o.resources.meta}).from(o.appRepos).innerJoin(o.resources,(0,r.eq)(o.resources.id,o.appRepos.appId)).where((0,r.and)((0,r.inArray)(o.appRepos.repoId,t),(0,r.isNull)(o.resources.goneAt))).limit(1e3);for(let e of(a.sort((e,t)=>Number(!!t.monitored)-Number(!!e.monitored)||(e.name<t.name?-1:+(e.name>t.name))),a))n.has(e.repoId)||n.set(e.repoId,v(e.meta));return n}async function _(){let e={id:o.githubRepos.id,fullName:o.githubRepos.fullName,defaultBranch:o.githubRepos.defaultBranch,scannedAt:o.dependencyScans.scannedAt},t=(0,r.and)((0,r.isNull)(o.githubRepos.goneAt),(0,r.eq)(o.githubRepos.archived,!1)),n=await w()?await (0,i.db)().select(e).from(o.githubRepos).leftJoin(o.dependencyScans,(0,r.eq)(o.dependencyScans.repoId,o.githubRepos.id)).where(t).limit(500):await (0,i.db)().selectDistinct(e).from(o.appRepos).innerJoin(o.githubRepos,(0,r.eq)(o.githubRepos.id,o.appRepos.repoId)).leftJoin(o.dependencyScans,(0,r.eq)(o.dependencyScans.repoId,o.githubRepos.id)).where(t).limit(500),a=n.length?await k(n.map(e=>e.id)):new Map;return(0,m.M)(n.map(e=>{let t=a.get(e.id);return{...e,rootDir:t?.dir??null,rootDirUnsupported:t?.unsupported??null,prodBranch:t?.branch??null,...t?.fallback?{prodFallback:t.fallback}:{}}}))}let A=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function I(e,t){let r=new Date;await (0,i.db)().insert(o.dependencyScans).values({repoId:e,...t,updatedAt:r}).onConflictDoUpdate({target:o.dependencyScans.repoId,set:{...t,updatedAt:r}})}async function S(e){return(0,i.db)().select({id:o.dependencyVulns.id,package:o.dependencyVulns.package,installedVersion:o.dependencyVulns.installedVersion,vulnId:o.dependencyVulns.vulnId,severity:o.dependencyVulns.severity,fixedVersion:o.dependencyVulns.fixedVersion,summary:o.dependencyVulns.summary,aliases:o.dependencyVulns.aliases,dev:o.dependencyVulns.dev,direct:o.dependencyVulns.direct,source:o.dependencyVulns.source}).from(o.dependencyVulns).where((0,r.and)((0,r.eq)(o.dependencyVulns.repoId,e),(0,r.isNull)(o.dependencyVulns.resolvedAt))).limit(2e3)}function $(e,t){for(let r of d.a){let n=e.find(e=>e.name===r.path);if(n)return{path:(0,f.H)(t,r.path),kind:r.kind,sha:n.sha}}return null}async function T(e,n,a,s={}){let l=()=>({...s,timeoutMs:Math.max(1e3,Math.min(a-Date.now(),1e4))}),u=async e=>(await I(n.id,{error:A(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),b=n.defaultBranch??"HEAD",w=null;for(let t of[n.prodBranch,n.prodFallback]){if(t&&t===n.defaultBranch)break;let r=(0,g.i)(t,n.defaultBranch);if(!r)continue;let a=await (0,h.V)(e,n.fullName,r,l());if(!a.ok)return u(a.error);if(a.data){w=r;break}}let v=null!==w;w&&(b=w);let k=v?`Scanned ${w}, the branch production is built from.`:null,_=(0,f.Q)(n.rootDir),R=_?null:(0,f.l)(n.rootDirUnsupported),x=R?`The Vercel Root Directory "${R}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,E=await (0,h.W)(e,n.fullName,b,l(),_);if(!E.ok)return u(_&&"missing"===E.kind?`The folder ${(0,f.x)(_)} isn't in ${n.fullName} on ${b}.`:E.error);let N=$(E.data,_),P=E.data.find(e=>"package.json"===e.name)??null,O=!1,C=null;if(_&&P&&!N){let t=await (0,h.W)(e,n.fullName,b,l());if(!t.ok)return u(t.error);O=null!==(N=$(C=t.data,null))}let j=N?N.sha:P?`pkg:${P.sha}`:null,D=j&&_?`${_}:${j}${O&&P?`+${P.sha}`:""}`:j&&R?`odd:${j}`:j,M=D&&v?`br:${w}:${D}`:D,[z]=await (0,i.db)().select().from(o.dependencyScans).where((0,r.eq)(o.dependencyScans.repoId,n.id)).limit(1),q=new Date;if(!(0,m.U)(z??null,M,q,s.force))return{status:"unchanged"};if(!M){let e=await S(n.id);return e.length&&await (0,i.db)().update(o.dependencyVulns).set({resolvedAt:q}).where((0,r.inArray)(o.dependencyVulns.id,e.map(e=>e.id))),await I(n.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:q,queriedAt:q,error:null,note:A([k,x,`No package.json or lockfile ${_?"in":"at"} ${(0,f.x)(_)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let L=(0,f.H)(_,"package.json"),U=P?await (0,h.Z)(e,n.fullName,L,b,y.$,l()):null;if(U&&!U.ok)return u(U.error);let H=U?.ok&&U.data?(0,d.b)(U.data):null,B=null,V="package-json",G=O&&N?`Scanned ${(0,f.x)(_)} with the repository root's ${N.path} (workspaces).`:null;if(N){if(2e3>a-Date.now())return u("Time budget used before the lockfile was read; the next run tries again.");let t=await (0,h.Z)(e,n.fullName,N.path,b,h.y,{...s,timeoutMs:Math.max(1e3,Math.min(a-Date.now(),2e4))});if(!t.ok)return u(t.error);let r=!0;if(O&&_&&t.data&&!(0,f.p)(N.kind,t.data,_)){let t=C?.some(e=>"package.json"===e.name)?await (0,h.Z)(e,n.fullName,"package.json",b,y.$,l()):null;if(t&&!t.ok)return u(t.error);r=(0,f.F)(t?.data??null,_)}r?(B=t.data?(0,d.D)(N.kind,t.data):null,V=N.kind,B||(G=[G,`${N.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(G=`The repository root's ${N.path} isn't a workspace that includes ${_}, so the versions come from ${L} ranges (approximate).`,N=null)}if(B){let e=(0,t.m)(B,H);B=e.deps,e.stale.length&&(G=[G,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else B=H?(0,d.e)(H):[],V="package-json",G??=N?null:"No lockfile: the versions come from package.json ranges (approximate).";let K=await S(n.id),F=[];if(B.length){let e=await (0,p.K)(B,{fetch:s.fetch,deadline:a});if(!e.ok)return u(e.error);let t=(0,m.A)(K,!0===s.force),r=await (0,p.J)((0,m.z)(B,e.ids,t),{fetch:s.fetch,deadline:a});if(!r.ok)return u(r.error);F=(0,c.i)(B,e.ids,r.map,t)}if(a-Date.now()>1500){let t=await (0,h.t)(e,n.fullName,l());t.ok&&"alerts"in t.data?F=(0,m.R)(F,t.data.alerts,B):t.ok&&(G=[G,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let W=(0,m.h)(K,F,(0,d.K)(H));G=[k,x,G].filter(Boolean).join(" ")||null;let X=new Date;return await (0,i.db)().transaction(async e=>{for(let t of(W.insert.length&&await e.insert(o.dependencyVulns).values(W.insert.map(e=>({repoId:n.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:X,lastSeenAt:X}))).onConflictDoNothing(),W.update))await e.update(o.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:X}).where((0,r.eq)(o.dependencyVulns.id,t.id));W.resolve.length&&await e.update(o.dependencyVulns).set({resolvedAt:X}).where((0,r.and)((0,r.inArray)(o.dependencyVulns.id,W.resolve),(0,r.isNull)(o.dependencyVulns.resolvedAt))),await e.insert(o.dependencyScans).values({repoId:n.id,lockfilePath:N?.path??(P?L:null),lockfileSha:M,packageCount:B.length,scannedAt:X,queriedAt:X,error:null,note:G?A(G,300):null,updatedAt:X}).onConflictDoUpdate({target:o.dependencyScans.repoId,set:{lockfilePath:N?.path??(P?L:null),lockfileSha:M,packageCount:B.length,scannedAt:X,queriedAt:X,error:null,note:G?A(G,300):null,updatedAt:X}})}),{status:"scanned",vulns:W.insert.length+W.update.length,packages:B.length,note:"package-json"===V?G:null}}async function R(e,t={}){var n,a;let s,l,u,d,c=await b();if("error"in c)return{error:c.error};let{first:p,only:f,skip:m,...h}=t,g=(n=await _(),s=(a={first:p,only:f,skip:m}).only?new Set(a.only):null,l=new Set(a.skip??[]),u=(s?n.filter(e=>s.has(e.id)):n).filter(e=>!l.has(e.id)),d=new Set(a.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,r]of g.entries()){if(e-Date.now()<4e3){y.left=g.length-t;break}y.done.push(r.id);try{let t=await T(c.token,r,e,h);"scanned"===t.status?y.scanned++:"unchanged"===t.status?y.unchanged++:y.failed.push(`${r.fullName}: ${t.error}`)}catch(e){y.failed.push(`${r.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,i.db)().delete(o.dependencyVulns).where((0,r.and)((0,r.isNotNull)(o.dependencyVulns.resolvedAt),(0,r.lt)(o.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),y}let x=async()=>(await (0,i.db)().select({id:o.accounts.id}).from(o.accounts).where((0,r.eq)(o.accounts.provider,"github")).limit(1)).length>0;function E(e){let t=e.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),r=e.failed.length-t.length+(e.left??0);r&&console.info(`deps: ${r} repositor${1===r?"y":"ies"} wait for the next run`);let n=t.slice(0,3);return t.length>3&&n.push(`+${t.length-3} more`),n.length?n.join("; "):null}async function N(e){if(!await x())return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let t=await R(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 E(t)}async function P(e,t,n={}){let{marked:a,onlyMarked:s}=t;if(!await x())return{problem:null,settled:[...a],done:[],complete:!0};let l=a.filter(u.f),d=l.length?await (0,i.db)().select({appId:o.appRepos.appId,repoId:o.appRepos.repoId}).from(o.appRepos).where((0,r.inArray)(o.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=a.filter(e=>!p(e).length);if(s&&!c.length)return{problem:null,settled:[...a],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 R(e,{...n,first:c,...s?{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:[...a],done:[],complete:!0}}let g=new Set([...h.done,...c.filter(e=>!h.listed.includes(e))]);return{problem:E(h),settled:a.filter(e=>p(e).every(e=>g.has(e))),done:h.done,complete:0===h.left}}async function O(e){let t=e.filter(u.f);if(!t.length)return[];let n=await (0,i.db)().select({appId:o.appRepos.appId,repoId:o.appRepos.repoId,error:o.dependencyScans.error}).from(o.appRepos).innerJoin(o.dependencyScans,(0,r.eq)(o.dependencyScans.repoId,o.appRepos.repoId)).where((0,r.and)((0,r.inArray)(o.appRepos.appId,t),(0,r.isNotNull)(o.dependencyScans.scannedAt)));if(!n.length)return[];let a=await (0,i.db)().select({repoId:o.dependencyVulns.repoId,package:o.dependencyVulns.package,installedVersion:o.dependencyVulns.installedVersion,fixedVersion:o.dependencyVulns.fixedVersion,severity:o.dependencyVulns.severity,summary:o.dependencyVulns.summary,dev:o.dependencyVulns.dev,direct:o.dependencyVulns.direct}).from(o.dependencyVulns).where((0,r.and)((0,r.inArray)(o.dependencyVulns.repoId,[...new Set(n.map(e=>e.repoId))]),(0,r.isNull)(o.dependencyVulns.resolvedAt))).limit(1e4);return n.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:a.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 C(e,t=new Set){let n=e.filter(u.f),s=new Map;if(!n.length)return s;let l=await (0,i.db)().select({appId:o.appRepos.appId,repoId:o.appRepos.repoId}).from(o.appRepos).where((0,r.inArray)(o.appRepos.appId,n));if(!l.length)return s;let d=await (0,i.db)().select({repoId:o.dependencyVulns.repoId,package:o.dependencyVulns.package,installedVersion:o.dependencyVulns.installedVersion,fixedVersion:o.dependencyVulns.fixedVersion,vulnId:o.dependencyVulns.vulnId,aliases:o.dependencyVulns.aliases,severity:o.dependencyVulns.severity,direct:o.dependencyVulns.direct}).from(o.dependencyVulns).where((0,r.and)((0,r.inArray)(o.dependencyVulns.repoId,[...new Set(l.map(e=>e.repoId))]),(0,r.isNull)(o.dependencyVulns.resolvedAt),(0,r.eq)(o.dependencyVulns.direct,!0),(0,r.isNotNull)(o.dependencyVulns.fixedVersion))).limit(2e3),c=d.some(e=>"next"===e.package)?new Set((await (0,i.db)().selectDistinct({appId:o.dependencyPrs.appId}).from(o.dependencyPrs).where((0,r.and)((0,r.inArray)(o.dependencyPrs.appId,n),(0,r.notInArray)(o.dependencyPrs.stage,["merged","closed"]),(0,r.gte)(o.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),a.sql`${o.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(n.length)).map(e=>e.appId)):new Set;for(let e of l){let r=t.has(e.appId)||c.has(e.appId);(0,m.B)(d.filter(t=>t.repoId===e.repoId&&!(r&&"next"===t.package))).length&&s.set(e.appId,e.repoId)}return s}e.s(["R",0,4e4,"o",0,12e3,"d",0,4e3,"e",0,N,"O",0,P,"C",0,C,"a",0,O])},908223,e=>{var t=e.i(336763),r=e.i(396918),n=e.i(406212),a=e.i(530298),i=e.i(803237),o=e.i(79068),s=e.i(821342),l=e.i(665870),u=e.i(974034),d=e.i(461315),c=e.i(964964),p=e.i(819263),f=e.i(93387),m=e.i(802641),h=e.i(736337),g=e.i(348657),y=e.i(934152),b=e.i(406197),w=e.i(732077);let v=e=>({done:!1,message:e});async function k(){let[e]=await (0,n.db)().select().from(a.accounts).where((0,t.eq)(a.accounts.provider,"github_write")).orderBy((0,r.asc)(a.accounts.createdAt)).limit(1);if(!e)return null;let o=(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,f.serverEnv)().OPS_ENCRYPTION_KEY);return o?{id:e.id,token:o}:"unreadable"}let _={severity:"no package at the selected severity",major:"an update jumps a major version",nothing:"nothing can be updated"};async function A(e){let[r]=await (0,n.db)().select({version:a.appSecurity.version,status:a.appSecurity.status,findings:a.appSecurity.findings}).from(a.appSecurity).where((0,t.eq)(a.appSecurity.resourceId,e)).limit(1);return r?(0,l.p)({version:r.version,status:r.status,findings:Array.isArray(r.findings)?r.findings:[]}):null}async function I(e){let r=await (0,n.db)().select({package:a.dependencyVulns.package,installedVersion:a.dependencyVulns.installedVersion,fixedVersion:a.dependencyVulns.fixedVersion,vulnId:a.dependencyVulns.vulnId,aliases:a.dependencyVulns.aliases,severity:a.dependencyVulns.severity,direct:a.dependencyVulns.direct,dev:a.dependencyVulns.dev}).from(a.dependencyVulns).where((0,t.and)((0,t.eq)(a.dependencyVulns.repoId,e),(0,t.isNull)(a.dependencyVulns.resolvedAt))).limit(2e3);return{upgrades:(0,p.B)(r),installed:(0,o.D)(r)}}async function S(e,t,r,n,a){for(let i of(0,h.a)(n,r)){if(i===r)break;let n=await (0,g.M)(e,t,i,a);if(!n.ok)return n;if(n.data)return{ok:!0,data:{base:i,head:n}}}return{ok:!0,data:{base:r,head:await (0,g.M)(e,t,r,a)}}}async function $(r,i,p,f=b.W,T={}){let R;if(!(0,m.f)(i)||!(0,m.f)(p))return f(v("Something in that request wasn't valid."),r,"");let x=await (0,b.q)(r.id,"github_bump_pr",i);if(x)return f(v(x),r,"");let E=await k();if(null===E)return f(v('A GitHub PR-write token is needed: connect "GitHub (PR write)" on Connections (fine-grained, this repository only, Contents and Pull requests: Read and write; Commit statuses: Read for automatic merges), then ask again.'),r,"");if("unreadable"===E)return f(v("Can't read the stored GitHub PR-write credential. Replace it on Connections."),r,"");let[N]=await (0,n.db)().select({app:a.resources.name,meta:a.resources.meta,fullName:a.githubRepos.fullName,owner:a.githubRepos.owner,goneAt:a.githubRepos.goneAt,lockfilePath:a.dependencyScans.lockfilePath,lockfileSha:a.dependencyScans.lockfileSha}).from(a.appRepos).innerJoin(a.githubRepos,(0,t.eq)(a.githubRepos.id,a.appRepos.repoId)).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.appRepos.appId)).leftJoin(a.dependencyScans,(0,t.eq)(a.dependencyScans.repoId,a.appRepos.repoId)).where((0,t.and)((0,t.eq)(a.appRepos.appId,i),(0,t.eq)(a.appRepos.repoId,p))).limit(1);if(!N||N.goneAt)return f(v(y.G),r,E.id);let P=N.meta??{},O=(0,u.l)(P.rootDirectoryUnsupported);if(O)return f(v(`The Vercel Root Directory "${O}" of ${N.app} couldn't be used (Watchbell reads plain folder names, at most 4 deep). Update its package.json yourself.`),r,E.id);let C=(0,u.Q)(P.rootDirectory),j=(0,u.H)(C,"package.json"),D=C?`in ${C}`:"at the repository root";if(T.framework){let e=await A(i);if(!e)return f(v(`Nothing to update in ${N.app}: its Next.js check shows no advisory with a fixed version.`),r,E.id);R=e}else if(!(R=await I(p)).upgrades.length)return f(v(`Nothing to update in ${N.app}: no direct package has a fixed version for its open advisories.`),r,E.id);let M=R.upgrades;if(T.auto){let e=(0,o.a)(M,R.installed,T.auto.severities);if(!e.ok)return f(v(`Automatic PR not opened: ${_[e.why]}. The proposal waits for your approval.`),r,E.id);M=e.upgrades}M=(0,l.F)(M);let{auto:z,proposalId:q,framework:L,...U}=T,H={timeoutMs:8e3,...U},B=await (0,g.H)(E.token,N.fullName,H);if(!B.ok)return f({done:!1,failed:B,audit:{message:`Package update PR failed \xb7 ${N.app}`,resourceId:i}},r,E.id);let V=await S(E.token,N.fullName,B.data.defaultBranch,P,H);if(!V.ok)return f({done:!1,failed:V,audit:{message:`Package update PR failed \xb7 ${N.app}`,resourceId:i}},r,E.id);let G=V.data.base,K=(0,h.B)(P.productionSource,G,new Date);if(K&&z)return f(v(`Automatic PR not opened: ${K} The proposal waits for your approval.`),r,E.id);let F=L?null:(0,h.y)(N.lockfileSha,B.data.defaultBranch,C);if(F&&F!==G)return f(v(`The dependency scan of ${N.app} read ${F}, but this pull request would go to ${G}. Scan again (Dependencies › Scan now on the app page), then ask again.`),r,E.id);let W=V.data.head;if(!W.ok)return f({done:!1,failed:W,audit:{message:`Package update PR failed \xb7 ${N.app}`,resourceId:i}},r,E.id);if(!W.data)return f(v(`The default branch ${G} wasn't found.`),r,E.id);let X=await (0,g.E)(E.token,N.fullName,W.data,H,j);if(!X.ok)return f({done:!1,failed:X,audit:{message:`Package update PR failed \xb7 ${N.app}`,resourceId:i}},r,E.id);if(!X.data)return f(v(`There is no package.json ${D}.`),r,E.id);let J=(0,s.k)(X.data.text,M);if(!J?.length||L&&!J.some(e=>"next"===e.package))return f(v(`${j} in ${N.app} already allows the fixed versions (or its ranges can't be rewritten). Run npm install there.`),r,E.id);if(z){let e=J.find(e=>{let t=(0,d.Y)(e.from);return!t||!(0,o.J)(t,e.fixed)});if(e)return f(v(`Automatic PR not opened: ${e.package} ${e.from} → ${e.to} jumps a major version. The proposal waits for your approval.`),r,E.id)}let Y=(0,s.M)(X.data.text,J);if(!Y)return f(v("package.json couldn't be edited safely."),r,E.id);let Z=(0,s.U)(J,C);if(!(0,s.c)(Z,G))return f(v("Refused: the PR branch would be the default branch."),r,E.id);let Q=await (0,g.x)(E.token,N.fullName,N.owner,Z,G,H);if(Q.ok&&Q.data)return{ok:!0,message:`Pull request #${Q.data.number} for these updates is already open.`};let ee=await (0,g.e)(E.token,N.fullName,H);if(!ee.ok)return f({done:!1,failed:ee,audit:{message:`Package update PR failed \xb7 ${N.app}`,resourceId:i}},r,E.id);if(ee.data.length){let e=new Map((await (0,n.db)().select({number:a.dependencyPrs.number,packages:a.dependencyPrs.packages}).from(a.dependencyPrs).where((0,t.and)((0,t.eq)(a.dependencyPrs.repoId,p),(0,t.inArray)(a.dependencyPrs.number,ee.data.map(e=>e.number))))).map(e=>[e.number,e.packages])),i=(0,o.U)(J.map(e=>e.package),ee.data.map(t=>({number:t.number,branch:t.branch,title:t.title,packages:e.get(t.number)??null})),C);if(i)return f(v(`Pull request #${i.number} for the same package is already open in ${N.app}. Merge or close it first.`),r,E.id)}let et=await (0,g.M)(E.token,N.fullName,Z,H);if(et.ok&&et.data)return f(v(`Branch ${Z} already exists without an open pull request. Delete it on GitHub, then ask again.`),r,E.id);let er=N.lockfilePath??(C?(0,u.H)(C,"package-lock.json"):null),en=d.a.find(e=>e.path===er?.split("/").pop())?.kind??null,ea=e=>f({done:!1,failed:e,audit:{message:`Package update PR failed \xb7 ${N.app} \xb7 ${Z}`,resourceId:i}},r,E.id),ei=await (0,g.k)(E.token,N.fullName,Z,W.data,G,H);if(!ei.ok)return ea(ei);let eo=await (0,g.D)(E.token,N.fullName,Z,G,Y,X.data.sha,(0,s.G)(J),H,j);if(!eo.ok)return ea(eo);let es=(0,s.f)(J,C),el=(K?`> [!WARNING]
|
|
28
|
+
> ${K} Check where production is built from before you merge; Watchbell won't merge this pull request itself.
|
|
29
|
+
|
|
30
|
+
`:"")+(0,s.y)(J,en,!!z,C),eu=await (0,g.y)(E.token,N.fullName,Z,G,es,el,H,{draft:!!K}),ed=!!K;if(K&&!eu.ok&&422===eu.status&&(eu=await (0,g.y)(E.token,N.fullName,Z,G,es,el,H),ed=!1),!eu.ok)return ea(eu);let ec=K?ed?` Opened as a draft: ${K}`:` Opened as a normal pull request (this repository can't have drafts), with the warning on top: ${K}`:"",ep=J.map(e=>`${e.package} ${e.from} → ${e.to}`).join(", "),ef=await (0,g.M)(E.token,N.fullName,Z,H).catch(()=>null),em=!1;if(ef?.ok&&ef.data){await (0,n.db)().insert(a.dependencyPrs).values({repoId:p,appId:i,proposalId:q??null,number:eu.data.number,branch:Z,baseBranch:G,headSha:ef.data,title:es.slice(0,200),packages:J.map(e=>e.package),auto:!!z,stage:"checks",stageText:(0,c.m)(eu.data.number,"checks")}).onConflictDoNothing().catch(()=>console.warn("deps: recording the PR failed"));let{extensions:t}=await e.A(27505),r=await t.runner?.queueLockfileJob({repoId:p,branch:Z,headSha:ef.data,prNumber:eu.data.number,lockfilePath:er,targets:J.map(e=>({name:e.package,version:e.fixed}))}).catch(()=>(console.warn("deps: queueing the lockfile job failed"),null)),o=await (0,w.U)(E.token,{repo:N.fullName,branch:Z,lockfilePath:er,prNumber:eu.data.number});em=r?.queued===!0||o.sent}return f({done:!0,message:`Pull request #${eu.data.number} opened for ${N.app}: ${ep}.${em?"":` Run npm install${C?` in ${C}`:""} on the branch before merging.`}${ec}`,audit:{message:`Package update PR opened \xb7 ${N.app} \xb7 #${eu.data.number}`,resourceId:i,detail:ep}},r,E.id)}async function T(e,t,r){if(!(0,m.f)(e)||r&&!(0,m.f)(r.appId))return{ok:!1,why:"target"};let n=await k();if(!n||"unreadable"===n)return{ok:!1,why:"no write token"};let a=r?await A(r.appId):await I(e);if(!a)return{ok:!1,why:"nothing"};let i=(0,o.a)(a.upgrades,a.installed,t);return i.ok?{ok:!0}:{ok:!1,why:i.why}}async function R(e,r){let i=e.filter(e=>(0,m.f)(e.appId)&&(0,m.f)(e.repoId)),o=new Map;if(!i.length)return o;let s=await (0,n.db)().select({appId:a.appRepos.appId,repoId:a.appRepos.repoId,meta:a.resources.meta,defaultBranch:a.githubRepos.defaultBranch}).from(a.appRepos).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.appRepos.appId)).innerJoin(a.githubRepos,(0,t.eq)(a.githubRepos.id,a.appRepos.repoId)).where((0,t.inArray)(a.appRepos.appId,[...new Set(i.map(e=>e.appId))])).limit(4*i.length);for(let e of i){let t=s.find(t=>t.appId===e.appId&&t.repoId===e.repoId),n=t?.meta??{},a=t?(0,h.B)(n.productionSource,(0,h.q)(n,t.defaultBranch??null),r):null;a&&o.set(e.appId,a)}return o}async function x(e,r=[]){let i=e.filter(m.f),o=new Map;if(!i.length)return o;let s=await (0,n.db)().select({appId:a.appRepos.appId,repoId:a.appRepos.repoId,version:a.appSecurity.version,status:a.appSecurity.status,findings:a.appSecurity.findings}).from(a.appRepos).innerJoin(a.githubRepos,(0,t.eq)(a.githubRepos.id,a.appRepos.repoId)).innerJoin(a.appSecurity,(0,t.eq)(a.appSecurity.resourceId,a.appRepos.appId)).where((0,t.and)((0,t.inArray)(a.appRepos.appId,i),(0,t.isNull)(a.githubRepos.goneAt),(0,t.eq)(a.appSecurity.status,"vulnerable"))).limit(i.length),u=new Set(r),d=s.filter(e=>u.has(e.appId)),c=d.length?new Set((await (0,n.db)().selectDistinct({repoId:a.dependencyVulns.repoId}).from(a.dependencyVulns).where((0,t.and)((0,t.inArray)(a.dependencyVulns.repoId,[...new Set(d.map(e=>e.repoId))]),(0,t.isNull)(a.dependencyVulns.resolvedAt),(0,t.eq)(a.dependencyVulns.package,"next"),(0,t.eq)(a.dependencyVulns.direct,!0),(0,t.isNotNull)(a.dependencyVulns.fixedVersion))).limit(d.length)).map(e=>e.repoId)):new Set;for(let e of s){if(u.has(e.appId)&&c.has(e.repoId))continue;let t=(0,l.p)({version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[]});t&&o.set(e.appId,{repoId:e.repoId,from:t.from,to:t.to})}return o}e.s(["J",0,T,"W",0,$,"h",0,x,"H",0,R,"G",0,k])},333407,e=>{var t=e.i(533102),r=e.i(406212),n=e.i(530298);let a={monitor:{"Monitor down":"MonitorDown","Monitor degraded":"MonitorDegraded","Monitor recovered":"MonitorRecovered"},deployment:{"Deployment started":"DeployStarted","Deployment ready":"DeployReady","Deployment failed":"DeployFailed","Deployment canceled":"DeployCanceled"},system:{"Collector stopped":"CollectorStopped","Daily jobs finished":"DailyFinished","Daily jobs finished with problems":"DailyProblems"}};async function i(e,o=(0,r.db)()){for(let r of e){if(!r)continue;let e=r.at??new Date,i=r.reason?r.reason:"action"===r.type?"Action":a[r.type]?.[r.message]??null;if(null!==i&&"Action"!==i){let a=new Date(e.getTime()-36e5);if((await o.update(n.events).set({count:t.sql`${n.events.count} + 1`,lastAt:t.sql`greatest(coalesce(${n.events.lastAt}, ${n.events.at}), ${e.toISOString()}::timestamptz)`,detail:r.detail,kind:r.kind}).where(t.sql`${n.events.id} = (select id from ops.events where reason = ${i} and resource_id is not distinct from ${r.resourceId}::uuid
|
|
31
|
+
and message = ${r.message}
|
|
32
|
+
and coalesce(last_at, at) >= ${a.toISOString()}::timestamptz order by coalesce(last_at, at) desc limit 1)`).returning({id:n.events.id})).length)continue}await o.insert(n.events).values({at:e,resourceId:r.resourceId,type:r.type,kind:r.kind,message:r.message,detail:r.detail,actorUserId:r.actorUserId??null,reason:i,count:1})}}e.s(["f",0,i],333407)},459702,355620,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(530298),a=e.i(816173),i=e.i(628852),o=e.i(333407),s=e.i(368230),l=e.i(58992),u=e.i(659916),d=e.i(533102);async function c(e,a){let[i]=await (0,r.db)().insert(n.rateLimits).values({key:e,windowStart:a,count:1}).onConflictDoUpdate({target:[n.rateLimits.key,n.rateLimits.windowStart],set:{count:d.sql`${n.rateLimits.count} + 1`}}).returning({count:n.rateLimits.count});if(1===i.count)try{await (0,r.db)().delete(n.rateLimits).where((0,t.lt)(n.rateLimits.windowStart,new Date(Date.now()-864e5)))}catch{console.warn("rate limit sweep failed")}return i.count}function p(e,t){return(0,u.A)(e,t,{hit:c})}async function f(e,a,i){let o=(0,l.f)(e),[s]=await (0,r.db)().select({id:n.monitors.id}).from(n.monitors).where((0,t.and)((0,t.eq)(n.monitors.tokenHash,o),(0,t.eq)(n.monitors.kind,"heartbeat"))).limit(1);if(!s)return{status:"unknown"};let d=await p(u.t.ping,o);return d.allowed?(await (0,r.db)().update(n.monitors).set({lastPingAt:i,lastPingKind:a,updatedAt:i}).where((0,t.eq)(n.monitors.id,s.id)),{status:"ok"}):{status:"limited",retryAfter:d.retryAfter}}async function m(e,l=()=>!1,u=!1,d){let c=(await (0,r.db)().select({m:n.monitors}).from(n.monitors).innerJoin(n.resources,(0,t.eq)(n.resources.id,n.monitors.resourceId)).where((0,t.and)((0,t.eq)(n.monitors.kind,"heartbeat"),(0,t.eq)(n.monitors.paused,!1),(0,t.eq)(n.monitors.ownerPaused,!1),(0,t.eq)(n.resources.monitored,!0),(0,t.isNull)(n.resources.goneAt),...d?[(0,t.eq)(n.monitors.id,d)]:[]))).filter(({m:t})=>void 0!==d||(0,i.B)(t.lastCheckedAt,e,u)),p=[],f=[];for(let{m:o}of c){let u=o.periodS??3600,c=o.graceS??600,m=(0,s.C)({lastPingAt:o.lastPingAt,lastPingKind:o.lastPingKind,periodS:u,graceS:c,createdAt:o.createdAt},e);if("unknown"===m.state)continue;let h=m.state!==o.state;(await (0,r.db)().update(n.monitors).set({state:m.state,failStreak:m.failStreak,lastCheckedAt:e,lastError:"ok"===m.state?null:m.text,...h?{stateSince:e}:{},updatedAt:e}).where((0,t.and)((0,t.eq)(n.monitors.id,o.id),(0,t.eq)(n.monitors.state,o.state),(0,t.eq)(n.monitors.ownerPaused,!1),(0,t.eq)(n.monitors.paused,!1),null===o.lastPingAt?(0,t.isNull)(n.monitors.lastPingAt):(0,t.eq)(n.monitors.lastPingAt,o.lastPingAt),null===o.periodS?(0,t.isNull)(n.monitors.periodS):(0,t.eq)(n.monitors.periodS,o.periodS),null===o.graceS?(0,t.isNull)(n.monitors.graceS):(0,t.eq)(n.monitors.graceS,o.graceS))).returning({id:n.monitors.id})).length&&((void 0===d||(0,i.B)(o.lastCheckedAt,e,!0))&&f.push({monitorId:o.id,at:e,ok:"err"!==m.state,statusCode:null,latencyMs:null,error:"ok"===m.state?null:m.text,inMaintenance:l(o.id,o.resourceId)}),p.push((0,a.F)({resourceId:o.resourceId,path:o.name??"heartbeat",prev:o.state,next:m.state,code:null,error:m.text,at:e,heartbeat:!0})))}return f.length&&await (0,r.db)().insert(n.checks).values(f),await (0,o.f)(p),f.length}e.s(["f",0,p],355620),e.s(["_",0,f,"r",0,m],459702)},200346,655704,e=>{var t=e.i(336763),r=e.i(396918),n=e.i(406212),a=e.i(530298),i=e.i(803237),o=e.i(333407),s=e.i(406197);let l="Pause requested · ";function u(e,t){if(!e.keep||"ACTIVE_HEALTHY"!==e.status)return!1;let r=e.lastTraffic??e.trackedSince;return t.getTime()-r.getTime()>=432e6}function d(e,t){return e.autoRestore?"INACTIVE"!==e.status?{act:!1,reason:"not-paused"}:e.accessDenied?{act:!1,reason:"denied"}:e.lastAutoRestoreAt&&t.getTime()-e.lastAutoRestoreAt.getTime()<216e5?{act:!1,reason:"too-soon"}:e.slotsLeft<=0?{act:!1,reason:"no-slot"}:{act:!0}:{act:!1,reason:"off"}}e.s(["B",0,l,"F",0,d,"v",0,u],655704);var c=e.i(788264),p=e.i(88316),f=e.i(93387),m=e.i(934152),h=e.i(686454);async function g(e){let r=await (0,n.db)().select({data:a.snapshots.data}).from(a.resources).innerJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.accountId,e),(0,t.eq)(a.resources.kind,"supabase_project"))),i=new Map;for(let{data:e}of r){let t=(0,c.k)(c.B,e);t.orgSlug&&void 0!==t.freeOrg&&i.set(t.orgSlug,t.freeOrg)}return i}let y=e=>`${e} day${1===e?"":"s"}`,b=e=>e instanceof Error?e.name:"unknown";async function w(e,r,i){try{let o=await (0,n.db)().select({k:a.keepActive,r:a.resources,s:a.snapshots,a:a.accounts}).from(a.keepActive).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.keepActive.resourceId)).innerJoin(a.accounts,(0,t.eq)(a.accounts.id,a.resources.accountId)).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.keepActive.keep,!0),(0,t.eq)(a.resources.kind,"supabase_project"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt),(0,t.eq)(a.accounts.status,"ok"))).limit(100),s=(0,f.serverEnv)().OPS_ENCRYPTION_KEY;for(let[t,{k:n,r:a,s:l,a:u}]of o.entries()){let d=r-Date.now()-500;if(d<250)return void i.push(`keep-active: ${o.length-t} left for the next run, time budget used`);if(!(n.lastKeepAliveAt&&e.getTime()-n.lastKeepAliveAt.getTime()<72e6))try{await v(a,l,u,e,s,d,i)}catch(e){console.warn("keep-active failed:",b(e)),i.push(`keep-active/${a.name}: ${b(e)}`)}}}catch(e){console.warn("keep-active failed:",b(e)),i.push(`keep-active: ${b(e)}`)}}async function v(e,r,s,l,d,f,g){let b=(0,c.k)(c.B,r?.data),w=b.lastTrafficAt?new Date(b.lastTrafficAt):b.trafficAt?new Date(new Date(b.trafficAt).getTime()-6048e5):null;if(!u({status:b.status??"",keep:!0,lastTraffic:w,trackedSince:e.firstSeenAt},l))return;let v=Math.floor((l.getTime()-(w??e.firstSeenAt).getTime())/864e5),k=(0,i.V)({ciphertext:s.credentialCiphertext,iv:s.credentialIv},d);if(!k)return void g.push(`keep-active/${s.label}: credential can't be read`);let _=await (0,h.i)(k,e.externalId,{timeoutMs:Math.min(5e3,f)});if(_.ok)await (0,n.db)().update(a.keepActive).set({lastKeepAliveAt:l}).where((0,t.eq)(a.keepActive.resourceId,e.id)),await (0,o.f)([{at:l,type:"action",kind:"ok",resourceId:e.id,actorUserId:null,message:`Keep-alive: sent to ${e.name} (no API traffic for ${y(v)})`,detail:null}]);else{let t=Math.max(1,p.e-v);await (0,o.f)([{at:l,type:"action",kind:"warn",resourceId:e.id,actorUserId:null,reason:"KeepAliveFailed",message:`Keep-alive failed for ${e.name}; it may pause in about ${y(t)}`,detail:"scope"===_.kind?"This token can't run the read-only query (Database read).":(0,m.S)(_.error)}]),g.push(`keep-active/${e.name}: ${_.error}`)}}async function k(e){let[i]=await (0,n.db)().select({at:a.events.at}).from(a.events).where((0,t.and)((0,t.eq)(a.events.reason,"Action"),(0,t.eq)(a.events.resourceId,e),(0,t.eq)(a.events.type,"action"),(0,t.inArray)(a.events.kind,["ok","err"]),(0,t.isNotNull)(a.events.actorUserId),(0,t.like)(a.events.message,`${l}%`))).orderBy((0,r.desc)(a.events.at)).limit(1);return i?.at??null}async function _(){return(await (0,n.db)().select({id:a.keepActive.resourceId}).from(a.keepActive).where((0,t.eq)(a.keepActive.autoRestore,!0)).limit(1)).length>0}async function A(e,r,l=1/0){let u=r.filter(e=>!!e.resourceId&&"INACTIVE"===e.status),c=()=>l-Date.now()-500;if(!u.length||250>c())return;let y=await (0,n.db)().select({k:a.keepActive,id:a.resources.id,name:a.resources.name,ref:a.resources.externalId,accountId:a.resources.accountId,label:a.accounts.label,lastTestAt:a.accounts.lastTestAt,ciphertext:a.accounts.credentialCiphertext,iv:a.accounts.credentialIv}).from(a.keepActive).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.keepActive.resourceId)).innerJoin(a.accounts,(0,t.eq)(a.accounts.id,a.resources.accountId)).where((0,t.and)((0,t.eq)(a.keepActive.autoRestore,!0),(0,t.inArray)(a.keepActive.resourceId,u.map(e=>e.resourceId)),(0,t.eq)(a.resources.kind,"supabase_project"),(0,t.isNull)(a.resources.goneAt)));if(!y.length)return;let w=await (0,s.f)([...new Set(y.map(e=>e.accountId))]),v=new Map,_=new Map;for(let l of y)try{let u=r.filter(e=>e.accountId===l.accountId),y=u.find(e=>e.resourceId===l.id)?.orgSlug??"";if(!v.has(l.accountId)){let e=await g(l.accountId);v.set(l.accountId,e),_.set(l.accountId,(0,p._)(u.map(t=>({status:t.status,freeOrg:e.get(t.orgSlug??"")??null}))).left)}let b=!1===v.get(l.accountId).get(y),A=b?1/0:_.get(l.accountId),I=w.get(l.accountId),S=Math.max(l.k.updatedAt.getTime(),l.lastTestAt?.getTime()??0),$=I?.write==="denied"&&new Date(I.at).getTime()>S,T=d({status:"INACTIVE",autoRestore:!0,lastAutoRestoreAt:l.k.lastAutoRestoreAt,slotsLeft:A,accessDenied:$},e);if(!T.act){"no-slot"===T.reason&&await (0,o.f)([{at:e,type:"action",kind:"info",resourceId:l.id,actorUserId:null,reason:"AutoRestoreWaits",message:`Auto-restore: ${l.name} waits, account ${l.label} has no free slot`,detail:"Pause another project in this account, or restore it by hand once a slot is free."}]);continue}let R=await k(l.id);if(R&&R.getTime()>l.k.updatedAt.getTime())continue;let x=c();if(x<250)return;await (0,n.db)().update(a.keepActive).set({lastAutoRestoreAt:e}).where((0,t.eq)(a.keepActive.resourceId,l.id));let E=(0,i.V)({ciphertext:l.ciphertext,iv:l.iv},(0,f.serverEnv)().OPS_ENCRYPTION_KEY);if(!E)continue;let N=await (0,h.G)(E,l.ref,{timeoutMs:Math.min(5e3,x)});N.ok?(b||_.set(l.accountId,_.get(l.accountId)-1),await (0,s.y)(l.accountId,"ok"),await (0,o.f)([{at:e,type:"action",kind:"ok",resourceId:l.id,actorUserId:null,message:`Auto-restore: restoring ${l.name}`,detail:null}])):("scope"===N.kind&&await (0,s.y)(l.accountId,"denied"),await (0,o.f)([{at:e,type:"action",kind:"err",resourceId:l.id,actorUserId:null,message:`Auto-restore: ${l.name} couldn't be restored`,detail:"scope"===N.kind?`${(0,m.b)("supabase",{})} Auto-restore stops until then.`:(0,m.S)(N.error)}]))}catch(e){console.warn("auto-restore failed:",b(e))}}async function I(e,r,i=s.W,o=new Date){let l=await (0,s.q)(e.id,"keep-alive",r);if(l)return{ok:!1,error:l};let u=await (0,s.p)(r,"supabase_project");if(!u)return{ok:!1,error:"This project isn't watched any more, or its credential can't be read."};let[d]=await (0,n.db)().select({last:a.keepActive.lastKeepAliveAt}).from(a.keepActive).where((0,t.eq)(a.keepActive.resourceId,r)).limit(1);if(d?.last&&o.getTime()-d.last.getTime()<72e6)return i({done:!1,message:"A keep-alive was already sent in the last 20 hours."},e,u.account.id);let c=u.resource.name,p=await (0,h.i)(u.token,u.resource.externalId,{timeoutMs:5e3});return p.ok&&await (0,n.db)().insert(a.keepActive).values({resourceId:r,lastKeepAliveAt:o}).onConflictDoUpdate({target:a.keepActive.resourceId,set:{lastKeepAliveAt:o}}),i(p.ok?{done:!0,message:`Keep-alive sent to ${c}.`,audit:{message:`Keep-alive sent \xb7 ${c}`,resourceId:r}}:{done:!1,failed:{ok:!1,kind:p.kind,error:"scope"===p.kind?"This token can't run the read-only query (Database read).":p.error,...p.status?{status:p.status}:{}},audit:{message:`Keep-alive failed \xb7 ${c}`,resourceId:r}},e,u.account.id)}e.s(["m",0,g,"z",0,A,"g",0,_,"v",0,I,"V",0,w,"G",0,function(e,t,r){return!1===t.get(r)?1/0:(0,p._)(e.map(e=>({status:e.status,freeOrg:t.get(e.orgSlug)??null}))).left}],200346)},706959,e=>{var t,r=e.i(396918),n=e.i(533102),a=e.i(100261),i=e.i(406212),o=e.i(530298);e.i(27479);var s=e.i(764266);s.J;let l=e=>({id:e.id,scope:e.scope,appId:e.resourceId,monitorId:e.monitorId,startsAt:e.startsAt,durationMin:e.durationMin,weekly:e.weekly,note:e.note}),u=n.sql`(${o.maintenanceWindows.weekly} or ${o.maintenanceWindows.startsAt} + ${o.maintenanceWindows.durationMin} * interval '1 minute' > now())`;async function d(){return(await (0,i.db)().select().from(o.maintenanceWindows).where(u).orderBy((0,r.asc)(o.maintenanceWindows.startsAt),(0,r.asc)(o.maintenanceWindows.id)).limit(s.J)).map(l)}t=o.resources,new Proxy(t,new a.TableAliasProxyHandler("mon_app",!1)),e.s(["f",0,d],706959)},827439,706539,380719,668141,242960,991219,e=>{var t=e.i(336763),r=e.i(396918),n=e.i(406212),a=e.i(530298),i=e.i(533102),o=e.i(112515),s=e.i(803237),l=e.i(333407),u=e.i(753535),d=e.i(93387),c=e.i(549889),p=e.i(491370),f=e.i(292178),m=e.i(377323),h=e.i(259246),g=e.i(198552),y=e.i(228516),b=e.i(437122),w=e.i(319718),v=e.i(941536),k=e.i(686454),_=e.i(582888),A=e.i(811539),I=e.i(978196),S=e.i(736337),$=e.i(149398),T=e.i(27479),R=e.i(122603),x=e.i(105464),E=e.i(467404),N=e.i(816173),P=e.i(628852);e.i(58992);var O=e.i(764266),C=e.i(90879),j=e.i(164617),D=e.i(412948),M=e.i(785194),z=e.i(70377);e.i(459702);var q=e.i(706959),L=e.i(157406),U=e.i(728335);let H=(e,t)=>"string"==typeof t?i.sql`to_char(${e} at time zone ${t}, 'YYYY-MM-DD')`:i.sql`to_char((${e} at time zone 'UTC') + ${i.sql.raw(`interval '${Math.trunc(t.offsetMinutes)} minutes'`)}, 'YYYY-MM-DD')`,B=i.sql.raw("2"),V=i.sql`percentile_cont(0.95) within group (order by ${a.checks.latencyMs})`,G=i.sql`percentile_cont(0.5) within group (order by ${a.checks.latencyMs})`;i.sql`(count(*) filter (where not ${a.checks.ok}))::int`;let K=(0,t.eq)(a.checks.inMaintenance,!1);async function F(){let[e]=await (0,n.db)().select({h:(0,L.max)(a.rollupsHourly.hour)}).from(a.rollupsHourly);return e?.h?new Date(e.h.getTime()+36e5):null}async function W(e,t,r=(0,U.timeZone)()){if(!e.length)return new Map;try{return await X(e,t,r)}catch(a){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}(a))throw a;let n=globalThis;return n.__watchbellPgZoneWarned||(n.__watchbellPgZoneWarned=!0,console.warn(`Watchbell: the database doesn't know the time zone ${r}; uptime days use its current UTC offset instead.`)),X(e,t,{offsetMinutes:(0,U.utcOffsetMinutes)(t)})}}async function X(e,r,o){let s=(0,U.dayStart)((0,M.W)(r,M.F)[0]),l=await F(),u=new Date(Math.max(s.getTime(),l?.getTime()??0,r.getTime()-z.A.rawChecksMs)),d=H(a.rollupsHourly.hour,o),c=H(a.checks.at,o),[p,f]=await Promise.all([l?(0,n.db)().select({monitorId:a.rollupsHourly.monitorId,day:d,checks:i.sql`sum(${a.rollupsHourly.checks})::int`,failures:i.sql`sum(${a.rollupsHourly.failures})::int`,maint:i.sql`sum(${a.rollupsHourly.maintenance})::int`}).from(a.rollupsHourly).where((0,t.and)((0,t.inArray)(a.rollupsHourly.monitorId,e),(0,t.gte)(a.rollupsHourly.hour,s),(0,t.lt)(a.rollupsHourly.hour,l))).groupBy(a.rollupsHourly.monitorId,B):Promise.resolve([]),(0,n.db)().select({monitorId:a.checks.monitorId,day:c,checks:i.sql`(count(*) filter (where not ${a.checks.inMaintenance}))::int`,failures:i.sql`(count(*) filter (where not ${a.checks.ok} and not ${a.checks.inMaintenance}))::int`,maint:i.sql`(count(*) filter (where ${a.checks.inMaintenance}))::int`}).from(a.checks).where((0,t.and)((0,t.inArray)(a.checks.monitorId,e),(0,t.gte)(a.checks.at,u))).groupBy(a.checks.monitorId,B)]);return(0,M.C)([...p,...f])}async function J(e,r){let o;if(!e.length)return new Map;let s=z.A.responseHours,l=(0,M.D)(r,36e5,s),u=(o=a.checks.at,i.sql`(extract(epoch from date_bin(${i.sql.raw("'1 hour'")}::interval, ${o}, timestamptz '2000-01-01 00:00:00+00')) * 1000)::float8`),d=(0,t.and)((0,t.inArray)(a.monitors.resourceId,e),(0,t.gte)(a.checks.at,new Date(l)),K),[c,p]=await Promise.all([(0,n.db)().select({appId:a.monitors.resourceId,t:u,v:V}).from(a.checks).innerJoin(a.monitors,(0,t.eq)(a.monitors.id,a.checks.monitorId)).where(d).groupBy(a.monitors.resourceId,u),(0,n.db)().select({appId:a.monitors.resourceId,v:V,m:G}).from(a.checks).innerJoin(a.monitors,(0,t.eq)(a.monitors.id,a.checks.monitorId)).where(d).groupBy(a.monitors.resourceId)]);return new Map(e.map(e=>[e,{hourly:(0,M.f)(c.filter(t=>t.appId===e),l,36e5,s),p95:p.find(t=>t.appId===e)?.v??null,p50:p.find(t=>t.appId===e)?.m??null}]))}function Y(e){let t="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,url:e.url,path:t?e.name??"heartbeat":(0,T.K)(e.url),state:e.state,lastStatus:e.lastStatus,lastLatencyMs:e.lastLatencyMs,failStreak:e.failStreak,paused:e.paused,ownerPaused:e.ownerPaused,lastCheckedAt:e.lastCheckedAt,expectedStatus:e.expectedStatus,timeoutMs:e.timeoutMs,intervalS:e.intervalS,bodyContains:e.bodyContains,jsonPath:e.jsonPath,jsonEquals:e.jsonEquals,lastError:e.lastError,kind:t?"heartbeat":"http",name:e.name??null,periodS:e.periodS??null,graceS:e.graceS??null,lastPingAt:e.lastPingAt??null,stateSince:e.stateSince??null}}async function Z(e){let i=await (0,n.db)().select({m:a.monitors,appName:a.resources.name,goneAt:a.resources.goneAt,appMeta:a.resources.meta}).from(a.monitors).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.monitors.resourceId)).where((0,t.and)((0,t.eq)(a.resources.kind,"app"),(0,t.eq)(a.resources.monitored,!0))).orderBy(a.resources.name,(0,r.desc)(a.monitors.kind),a.monitors.url).limit(z.O.monitors),o=await W(i.map(e=>e.m.id),e),s=await Q(i.map(e=>({id:e.m.id,kind:e.m.kind,url:e.m.url,appId:e.m.resourceId,appName:e.appName,appMeta:e.appMeta,lastError:e.m.lastError})));return i.map(({m:t,appName:r,goneAt:n})=>({...Y(t),appName:r,appGone:null!==n,days:o.get(t.id),uptime30:(0,M.Y)((0,M.w)(o.get(t.id),e,M.I)),move:s.get(t.id)??null}))}async function Q(e){if(!e.some(e=>null!==(0,I.Y)(e.appMeta)))return new Map;let r=await (0,n.db)().select({id:a.resources.id,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.and)((0,t.eq)(a.resources.kind,"app"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))).limit(500);return(0,I.P)(e,r)}i.sql`(count(*) filter (where ${a.checks.statusCode} >= 500))::int`,i.sql`count(*)::int`,e.s(["P",0,J,"_",0,W],706539);let ee={ok:!1,error:"That monitor no longer exists."},et={ok:!1,error:"This app already has a monitor for that address."},er={ok:!1,error:"That app isn't watched. Tick it in Connections → Sync first."},en="This app no longer exists at Vercel.",ea={ok:!1,error:en},ei={ok:!1,error:"Someone else changed this monitor just now. Reopen it and try again."},eo={ok:!1,error:"That monitor is a heartbeat. Edit it from its own menu."},es={ok:!1,error:"The console doesn't check a heartbeat. It waits for your job's ping."};async function el(e){return(0,n.db)().transaction(async t=>(await t.execute(i.sql`select pg_advisory_xact_lock(hashtext('ops.monitors'))`),e(t)))}async function eu(e=(0,n.db)()){let[r]=await e.select({n:i.sql`count(*)::int`}).from(a.monitors).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.monitors.resourceId)).where((0,t.and)((0,t.eq)(a.monitors.kind,"http"),(0,t.eq)(a.monitors.paused,!1),(0,t.eq)(a.monitors.ownerPaused,!1),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt)));return r?.n??0}async function ed(e){let[r]=await (0,n.db)().select({m:a.monitors,watched:a.resources.monitored,goneAt:a.resources.goneAt}).from(a.monitors).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.monitors.resourceId)).where((0,t.eq)(a.monitors.id,e)).limit(1);return r??null}async function ec(e,r){let i,o=await ed(e);if(!o)return ee;if("heartbeat"===o.m.kind)return eo;if(o.goneAt)return ea;if(!o.watched)return er;let[s]=await (0,n.db)().select({id:a.monitors.id}).from(a.monitors).where((0,t.and)((0,t.eq)(a.monitors.resourceId,o.m.resourceId),(0,t.eq)(a.monitors.url,r.url),(0,t.ne)(a.monitors.id,e))).limit(1);if(s)return et;let l=new Date,u={url:o.m.url,expectedStatus:o.m.expectedStatus,timeoutMs:o.m.timeoutMs,bodyContains:o.m.bodyContains,jsonPath:o.m.jsonPath,jsonEquals:o.m.jsonEquals},d=(0,j.V)(u,r)?{state:"unknown",failStreak:0,stateSince:l,lastCheckedAt:null,lastStatus:null,lastLatencyMs:null,lastError:null}:{};try{i=await (0,n.db)().update(a.monitors).set({url:r.url,expectedStatus:r.expectedStatus,timeoutMs:r.timeoutMs,bodyContains:r.bodyContains,jsonPath:r.jsonPath,jsonEquals:r.jsonEquals,...d,updatedAt:l}).where((0,t.and)((0,t.eq)(a.monitors.id,e),(0,t.eq)(a.monitors.url,o.m.url),(0,t.eq)(a.monitors.expectedStatus,o.m.expectedStatus),(0,E.T)(a.monitors.bodyContains,o.m.bodyContains),(0,E.T)(a.monitors.jsonPath,o.m.jsonPath),(0,E.T)(a.monitors.jsonEquals,o.m.jsonEquals))).returning({id:a.monitors.id})}catch(t){let e;if("23505"===("string"==typeof(e=t?.code??t?.cause?.code)?e:void 0))return et;throw t}if(!i.length)return await ed(e)?ei:ee;let c=u.url!==r.url;return{ok:!0,message:o.m.ownerPaused?`Saved ${(0,D.F)(r.url)}. It's checked again once you resume it.`:`Checking ${(0,D.F)(r.url)} from the next run.`,audit:{message:`Monitor edited: ${(0,D.F)(r.url)}`,...c?{detail:`was ${(0,D.F)(u.url)}`}:{},resourceId:o.m.resourceId}}}function ep(e,t){return!e.lastCheckedAt||t.getTime()-e.lastCheckedAt.getTime()>=P.O?null:{ok:!0,message:(0,j.T)({...e,lastCheckedAt:e.lastCheckedAt},t),passed:e.lastStatus===e.expectedStatus&&!e.lastError}}async function ef(e){let t=await ed(e);if(!t)return ee;if("heartbeat"===t.m.kind)return es;let r=t.goneAt?en:t.watched?(0,j.i)(t.m)?null:"Paused monitors aren't checked. Resume it first.":"Its app isn't watched. Tick it in Connections → Sync first.";if(r)return{ok:!1,error:r};let i=ep(t.m,new Date);if(i)return i;let o=await (0,q.f)(),s=(0,C.isDemo)()?(0,x.M)(t.m.expectedStatus):await (0,R.b)(t.m.url,{expectedStatus:t.m.expectedStatus,timeoutMs:t.m.timeoutMs,body:(0,$.C)(t.m)}),u=new Date;if(!await (0,E.j)(t.m,s,u)){let t=await ed(e);return t?ep(t.m,new Date)??{ok:!1,error:"The monitor changed while it was being checked. Try again."}:ee}let d=null!==(0,O.x)(o,{monitorId:e,appId:t.m.resourceId},u);await (0,n.db)().insert(a.checks).values({monitorId:e,at:u,ok:s.ok,statusCode:s.statusCode,latencyMs:s.latencyMs,error:s.error,inMaintenance:d});let c=(0,N.G)(t.m.failStreak,s),p=(0,N.F)({resourceId:t.m.resourceId,path:(0,T.K)(t.m.url),prev:t.m.state,next:c.state,code:s.statusCode,error:s.error,at:u});return await (0,l.f)([p]),{ok:!0,message:(0,j.X)(s),passed:s.ok,audit:{message:`Check now: ${(0,D.F)(t.m.url)}`,resourceId:t.m.resourceId}}}e.s(["Q",0,eu,"X",0,ef,"d",0,Z,"J",0,Q,"M",0,Y,"q",0,ec,"e",0,el],380719);var em=e.i(88316);function eh(e,t,r){let n=new Map(e.map(e=>[e.externalId,e])),a=new Set(t.map(e=>e.externalId)),i=new Set(r.keepTeamIds??[]);return{update:t.filter(e=>n.has(e.externalId)).map(e=>({id:n.get(e.externalId).id,name:e.name,meta:e.meta})),insert:t.filter(e=>!n.has(e.externalId)).map(e=>({...e,monitored:r.watchNew})),gone:e.filter(e=>!a.has(e.externalId)&&!(null!==e.teamId&&i.has(e.teamId))).map(e=>e.id)}}function eg(e,t){return!e.monitored&&t.getTime()-e.firstSeenAt.getTime()<864e5}let ey={vercel:"app",supabase:"supabase_project",neon:"neon_project",firebase:"firestore",cloudflare:"zone",turso:"turso_database",upstash:"upstash_redis"},eb=Object.keys(ey),ew=e=>Object.hasOwn(ey,e)?ey[e]:null,ev=e=>"string"==typeof e&&e?e:null;function ek(e,t){return"app"===e?`Vercel project${ev(t.teamName)?` \xb7 ${t.teamName}`:""}`:"zone"===e?`Cloudflare zone \xb7 ${ev(t.status)??"unknown"}`:"supabase_project"===e?["Supabase project",ev(t.status)?(0,em.P)(String(t.status)).label:null,ev(t.region)].filter(Boolean).join(" · "):"neon_project"===e?["Neon project",ev(t.region)].filter(Boolean).join(" · "):"turso_database"===e?["Turso database",ev(t.group)?`group ${t.group}`:null,ev(t.region)].filter(Boolean).join(" · "):"upstash_redis"===e?["Upstash Redis",ev(t.region)].filter(Boolean).join(" · "):"Firebase project"}let e_=e=>"app"===e?"app":"zone"===e?"dom":"firestore"===e?"fs":"db";async function eA(e){let[r]=await (0,n.db)().select().from(a.accounts).where((0,t.eq)(a.accounts.id,e)).limit(1);if(!r)return null;let i=(0,s.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,d.serverEnv)().OPS_ENCRYPTION_KEY);return{account:r,token:i,problem:(0,o.A)(i)}}async function eI(e,r){let i=new Date;return(await (0,n.db)().select().from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,e),(0,t.eq)(a.resources.kind,r),(0,t.isNull)(a.resources.goneAt))).orderBy(a.resources.name).limit(500)).map(e=>({id:e.id,name:e.name,sub:ek(e.kind,e.meta),monitored:e.monitored,fresh:eg(e,i),badge:e_(e.kind)}))}async function eS(e,r){let i=await (0,n.db)().select().from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,e),(0,t.eq)(a.resources.kind,"app"))),o=i.filter(e=>e.monitored&&!e.goneAt),s=i.filter(e=>!e.monitored||e.goneAt);if(s.length&&await (0,n.db)().update(a.monitors).set({paused:!0,updatedAt:new Date}).where((0,t.inArray)(a.monitors.resourceId,s.map(e=>e.id))),!o.length)return 0;let l=await (0,n.db)().select({id:a.monitors.id,resourceId:a.monitors.resourceId,paused:a.monitors.paused,ownerPaused:a.monitors.ownerPaused,kind:a.monitors.kind}).from(a.monitors).where((0,t.inArray)(a.monitors.resourceId,o.map(e=>e.id))),u=(0,j.Y)(l.filter(e=>"heartbeat"===e.kind));u.length&&await (0,n.db)().update(a.monitors).set({paused:!1,updatedAt:new Date}).where((0,t.inArray)(a.monitors.id,u));let d=l.filter(e=>"heartbeat"!==e.kind),c=(0,j.Y)(d),p=new Set(l.map(e=>e.resourceId)),f=[];for(let e of o.filter(e=>!p.has(e.id))){let t=String(e.meta.teamId??""),n="string"==typeof e.meta.primaryDomain&&e.meta.primaryDomain?e.meta.primaryDomain:null,a=n?{ok:!0,data:n}:r?await (0,g.q)(r,t,e.externalId,e.name):null;f.push({appId:e.id,url:`https://${a?.ok?a.data:`${e.name}.vercel.app`}/`})}return c.length||f.length?el(async e=>{let r=Math.max(0,j.G-await eu(e)),n=new Set,i=c.slice(0,r),o=c.slice(i.length);r-=i.length;let s=new Date;if(i.length&&await e.update(a.monitors).set({paused:!1,updatedAt:s}).where((0,t.inArray)(a.monitors.id,i)),o.length)for(let r of(await e.update(a.monitors).set({paused:!1,ownerPaused:!0,updatedAt:s}).where((0,t.inArray)(a.monitors.id,o)),d.filter(e=>o.includes(e.id))))n.add(r.resourceId);for(let t of f){let i=r>0;i?r-=1:n.add(t.appId),await e.insert(a.monitors).values({resourceId:t.appId,url:t.url,ownerPaused:!i}).onConflictDoNothing()}return n.size}):0}async function e$(e,r,o,s){let l=Array.isArray(o.productionAliases)?o.productionAliases.filter(e=>"string"==typeof e):[],u=(0,I.Q)(s,r,l,o);await (0,n.db)().update(a.resources).set({meta:i.sql`${a.resources.meta} || ${JSON.stringify(u)}::jsonb`}).where((0,t.eq)(a.resources.id,e))}async function eT(e,r){for(let i of(await (0,n.db)().select({id:a.resources.id,name:a.resources.name,externalId:a.resources.externalId,meta:a.resources.meta,monitored:a.resources.monitored,goneAt:a.resources.goneAt}).from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,e),(0,t.eq)(a.resources.kind,"app")))).filter(e=>e.monitored&&!e.goneAt)){let e=await (0,g.M)(r,String(i.meta.teamId??""),i.externalId);if(e.ok)await e$(i.id,i.name,i.meta,e.data);else if("auth"===e.kind||429===e.status)return}}async function eR(e,r,i,o){let s=eh((await (0,n.db)().select({id:a.resources.id,externalId:a.resources.externalId,monitored:a.resources.monitored}).from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,e),(0,t.eq)(a.resources.kind,"zone")))).map(e=>({...e,teamId:null})),i.map(e=>({externalId:e.id,name:e.name,meta:{status:e.status,accountId:e.accountId,accountName:e.accountName}})),{watchNew:r});await (0,n.db)().transaction(async r=>{for(let e of s.update)await r.update(a.resources).set({name:e.name,meta:e.meta,lastSeenAt:o,goneAt:null,updatedAt:o}).where((0,t.eq)(a.resources.id,e.id));s.insert.length&&await r.insert(a.resources).values(s.insert.map(t=>({accountId:e,kind:"zone",externalId:t.externalId,name:t.name,meta:t.meta,monitored:t.monitored}))).onConflictDoNothing({target:[a.resources.accountId,a.resources.kind,a.resources.externalId]}),s.gone.length&&await r.update(a.resources).set({goneAt:o,updatedAt:o}).where((0,t.and)((0,t.inArray)(a.resources.id,s.gone),(0,t.isNull)(a.resources.goneAt)))})}async function ex(e,r,i){let s=await (0,h.F)(r);if(!s.ok){let r=(0,o.E)({ok:!1,kind:"scope"===s.kind?"auth":s.kind,error:s.error});return r&&await (0,n.db)().update(a.accounts).set({...r,updatedAt:new Date}).where((0,t.eq)(a.accounts.id,e)),{ok:!1,error:s.error}}let l=new Date;await eR(e,i,s.data,l);let u=await (0,h.d)(r);return await (0,n.db)().update(a.accounts).set({lastSyncAt:l,status:"ok",lastError:null,updatedAt:l,...u.ok?{expiresAt:u.data.expiresAt}:{}}).where((0,t.eq)(a.accounts.id,e)),{ok:!0}}async function eE(e,t){let r=e=>({ok:!1,kind:"auth"===e.kind||"scope"===e.kind?"auth":"format"===e.kind?"format":"transient",error:e.error});if("vercel"===e){let e=await (0,g.G)(t);return e.ok?{ok:!0,found:e.data.apps,skippedTeams:e.data.skippedTeams,skippedTeamIds:e.data.skippedTeamIds}:{ok:!1,kind:e.kind,error:e.error}}if("supabase"===e){let e=await (0,k.W)(t);return e.ok?{ok:!0,skippedTeams:[],skippedTeamIds:[],found:e.data.filter(e=>"REMOVED"!==e.status).map(e=>({externalId:e.ref,name:e.name,meta:{orgSlug:e.orgSlug,region:e.region,pgVersion:e.pgVersion,createdAt:e.createdAt,status:e.status}}))}:r(e)}if("neon"===e){let e=await (0,v.m)(t);return e.ok?{ok:!0,skippedTeams:[],skippedTeamIds:[],found:e.data.map(e=>({externalId:e.id,name:e.name,meta:{orgId:e.orgId,region:e.region,pgVersion:e.pgVersion,createdAt:e.createdAt}}))}:r(e)}if("turso"===e){let e=await (0,_.t)(t);return e.ok?{ok:!0,skippedTeams:[],skippedTeamIds:[],found:e.data.map(e=>({externalId:e.id,name:e.name,meta:{org:e.org,group:e.group,region:e.primaryRegion}}))}:r(e)}if("upstash"===e){let e=(0,A.L)(t);if(!e)return{ok:!1,kind:"format",error:"The stored Upstash credential can't be read. Replace it."};let n=await (0,A.M)(e);return n.ok?{ok:!0,skippedTeams:[],skippedTeamIds:[],found:n.data.map(e=>({externalId:e.id,name:e.name,meta:{region:e.region,type:e.type}}))}:r(n)}let n=(0,w.p)(t);if(!n)return{ok:!1,kind:"format",error:"The stored service account can't be read. Replace the credential."};let a=await (0,w.X)(n);if(!a.ok)return r(a);let i=await (0,b.z)(n,a.data);return i.ok?{ok:!0,skippedTeams:[],skippedTeamIds:[],found:i.data.map(e=>({externalId:e.projectId,name:e.displayName,meta:{projectId:e.projectId}}))}:r(i)}async function eN(e){let r=await eA(e);if(!r)return{ok:!1,error:"That account no longer exists."};let{account:i,token:s,problem:l}=r,u=ew(i.provider);if(!u)return{ok:!1,error:"Sync for this provider arrives in a later stage."};if(l||!s)return{ok:!1,error:l??"The credential can't be read."};if("cloudflare"===i.provider){let t=await ex(e,s,i.watchNew);return t.ok?{ok:!0,rows:await eI(e,u),skippedTeams:[],overLimit:null}:t}let d=await eE(i.provider,s);if(!d.ok){let r=(0,o.E)({ok:!1,kind:d.kind,error:d.error});return r&&await (0,n.db)().update(a.accounts).set({...r,updatedAt:new Date}).where((0,t.eq)(a.accounts.id,e)),{ok:!1,error:d.error}}let c=(await (0,n.db)().select({id:a.resources.id,externalId:a.resources.externalId,monitored:a.resources.monitored,meta:a.resources.meta}).from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,e),(0,t.eq)(a.resources.kind,u)))).map(e=>({id:e.id,externalId:e.externalId,monitored:e.monitored,teamId:"string"==typeof e.meta.teamId?e.meta.teamId:null,meta:e.meta})),p=new Map(c.map(e=>[e.id,e.meta])),f=eh(c,d.found,{watchNew:i.watchNew,keepTeamIds:d.skippedTeamIds}),m="vercel"===i.provider?await (0,g.o)(s):null,h=new Date;await (0,n.db)().transaction(async r=>{for(let e of f.update){var n;await r.update(a.resources).set({name:e.name,meta:{...e.meta,...(n=p.get(e.id))&&"string"==typeof n.primaryDomain?{domains:n.domains,primaryDomain:n.primaryDomain,pastDomains:n.pastDomains??[]}:{},...(0,S.K)(p.get(e.id))},lastSeenAt:h,goneAt:null,updatedAt:h}).where((0,t.eq)(a.resources.id,e.id))}f.insert.length&&await r.insert(a.resources).values(f.insert.map(t=>({accountId:e,kind:u,externalId:t.externalId,name:t.name,meta:t.meta,monitored:t.monitored}))).onConflictDoNothing({target:[a.resources.accountId,a.resources.kind,a.resources.externalId]}),f.gone.length&&await r.update(a.resources).set({goneAt:h,updatedAt:h}).where((0,t.and)((0,t.inArray)(a.resources.id,f.gone),(0,t.isNull)(a.resources.goneAt))),await r.update(a.accounts).set({lastSyncAt:h,status:"ok",lastError:null,updatedAt:h,...m?.ok?{expiresAt:m.data}:{}}).where((0,t.eq)(a.accounts.id,e))}),"vercel"===i.provider&&await eT(e,s);let y="vercel"===i.provider?await eS(e,s):0;return{ok:!0,rows:await eI(e,u),skippedTeams:d.skippedTeams,overLimit:(0,j.S)(y)}}e.s(["I",0,eb,"d",0,e_,"T",0,eg,"J",0,eh,"K",0,ew,"S",0,ek],668141),e.s(["F",0,e$,"k",0,eN,"s",0,eR],242960);let eP=i.sql`excluded.meta`;async function eO(e){let r=(0,d.serverEnv)().OPS_ENCRYPTION_KEY;return(await (0,n.db)().select().from(a.accounts).where((0,t.and)((0,t.eq)(a.accounts.provider,e),(0,t.eq)(a.accounts.status,"ok")))).map(e=>{let t=(0,s.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},r);return{acc:e,token:(0,o.A)(t)?null:t}})}async function eC(e,r,i){for(let{acc:s,token:l}of(await eO("cloudflare"))){if(!l){i.push(`cloudflare/${s.label}: credential can't be read`);continue}let d=await (0,h.F)(l);if(!d.ok){let r=(0,o.E)({ok:!1,kind:"scope"===d.kind?"auth":d.kind,error:d.error});if(r&&await (0,n.db)().update(a.accounts).set({...r,updatedAt:e}).where((0,t.eq)(a.accounts.id,s.id)),i.push(`cloudflare/${s.label}: ${d.error}`),429===d.status)return;continue}for(let o of(await eR(s.id,s.watchNew,d.data,e),await (0,n.db)().select().from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,s.id),(0,t.eq)(a.resources.kind,"zone"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))))){if(r-Date.now()<6e3)return void i.push("cloudflare: skipped remaining zones, time budget used");let t=d.data.find(e=>e.id===o.externalId),[n,a,s]=await Promise.all([(0,h.p)(l,o.externalId),(0,h.v)(l,o.externalId),(0,h.w)(l,o.externalId)]),c=[n,a,s].flatMap(e=>e.ok?[]:[e]),p={zone:{status:t?.status??null,paused:t?.paused??!1,nameServers:t?.nameServers??[],accountId:t?.accountId??null,checkedAt:e.toISOString()},ssl:a.ok?{mode:a.data,error:null}:{mode:null,error:a.error},cfErrors:c.map(e=>e.error)};for(let t of(n.ok?Object.assign(p,{records:n.data.records,recordsTruncated:n.data.truncated}):"scope"===n.kind&&Object.assign(p,{records:[],recordsTruncated:!1}),s.ok?p.certs=s.data:"scope"===s.kind&&(p.certs=[]),await (0,u.r)(o.id,p,e),c))"scope"!==t.kind&&i.push(`cloudflare/${o.name}: ${t.error}`);if(c.some(e=>429===e.status))return}}}async function ej(e,r,i){for(let{acc:o,token:s}of(await eO("vercel"))){if(!s)continue;let l=await (0,n.db)().select().from(a.resources).where((0,t.and)((0,t.eq)(a.resources.accountId,o.id),(0,t.eq)(a.resources.kind,"app"))),d=l.filter(e=>e.monitored&&!e.goneAt),c=l.filter(e=>!e.monitored||e.goneAt).map(e=>e.id);for(let l of(c.length&&await (0,n.db)().update(a.resources).set({monitored:!1,updatedAt:e}).where((0,t.and)((0,t.eq)(a.resources.kind,"domain"),(0,t.inArray)(a.resources.parentId,c))),d)){if(Date.now()>r)return void i.push("domains: skipped remaining apps, time budget used");let d=String(l.meta.teamId??""),c=await (0,g.M)(s,d,l.externalId);if(!c.ok){if(i.push(`domains/${l.name}: ${c.error}`),429===c.status)return;if("auth"===c.kind)break;continue}await e$(l.id,l.name,l.meta,c.data);let p=c.data.filter(e=>!e.gitBranch),m=p.length?await (0,n.db)().insert(a.resources).values(p.map(t=>({accountId:o.id,kind:"domain",externalId:t.name,name:t.name,parentId:l.id,monitored:!0,meta:{redirect:t.redirect,verified:t.verified,projectId:l.externalId},lastSeenAt:e}))).onConflictDoUpdate({target:[a.resources.accountId,a.resources.kind,a.resources.externalId],set:{parentId:l.id,monitored:!0,goneAt:null,lastSeenAt:e,updatedAt:e,meta:eP}}).returning({id:a.resources.id,name:a.resources.name}):[];for(let o of(await (0,n.db)().update(a.resources).set({goneAt:e,updatedAt:e}).where((0,t.and)((0,t.eq)(a.resources.kind,"domain"),(0,t.eq)(a.resources.parentId,l.id),(0,t.isNull)(a.resources.goneAt),p.length?(0,t.notInArray)(a.resources.externalId,p.map(e=>e.name)):void 0)),m.filter(e=>!(0,f.e)(e.name)))){if(Date.now()>r)return;let t=await (0,g.Q)(s,d,o.name);t.ok?await (0,u.r)(o.id,{vercel:{...t.data,checkedAt:e.toISOString()}},e):"transient"===t.kind&&i.push(`domains/${o.name}: ${t.error}`)}}}}async function eD(){return(0,n.db)().select({r:a.resources,s:a.snapshots}).from(a.resources).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"domain"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt)))}async function eM(){return(0,n.db)().select({r:a.resources,s:a.snapshots}).from(a.resources).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"zone"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt)))}let ez=(e,t)=>((0,f.Z)(e)?.getTime()??0)-((0,f.Z)(t)?.getTime()??0);async function eq(e,r,i){let[o]=await (0,n.db)().select({data:a.snapshots.data}).from(a.snapshots).where((0,t.eq)(a.snapshots.resourceId,e)).limit(1),s=await (0,m.f)(r,{timeoutMs:5e3});await (0,u.r)(e,{tls:(0,c.o)(s,(0,c.q)(o?.data).tls,i)},i)}async function eL(e,t,r){let n=(await eD()).filter(({r:t,s:r})=>!(0,f.e)(t.name)&&(0,f.Y)((0,c.q)(r?.data).tls?.checkedAt,e)).sort((e,t)=>ez((0,c.q)(e.s?.data).tls?.checkedAt,(0,c.q)(t.s?.data).tls?.checkedAt)).slice(0,f.H);await (0,R.P)(n,4,async({r:n})=>{if(!(t-Date.now()<6e3))try{await eq(n.id,n.name,e)}catch{r.push(`tls/${n.name}: couldn't save the result`)}})}async function eU(e,r,i,o){let[s]=await (0,n.db)().select({data:a.snapshots.data}).from(a.snapshots).where((0,t.eq)(a.snapshots.resourceId,e)).limit(1),l=(0,c.q)(s?.data).rdap,d=o;if(!d){let e=await (0,p.Y)();if(!e.ok)return e.error;d=e.services}let f=(0,p.T)(d,r),m=f?await (0,p.u)(r,f):{ok:!1,error:"The registry has no RDAP server"};return await (0,u.r)(e,{rdap:(0,c.n)(m,l,i)},i),m.ok?null:m.error}async function eH(e,t,r){let n=(await eM()).filter(({r:t,s:r})=>t.monitored&&(0,f.Y)((0,c.q)(r?.data).rdap?.checkedAt,e)).sort((e,t)=>ez((0,c.q)(e.s?.data).rdap?.checkedAt,(0,c.q)(t.s?.data).rdap?.checkedAt)).slice(0,f.H);if(!n.length)return;let a=await (0,p.Y)();if(!a.ok)return void r.push(`rdap: ${a.error}`);for(let{r:i}of n){if(t-Date.now()<6e3)return;let n=await eU(i.id,i.name,e,a.services);n&&"The registry has no RDAP server"!==n&&r.push(`rdap/${i.name}: ${n}`)}}async function eB(e,t,r){let i=t-Date.now();if(i<1e3)throw Error("skipped, time budget used");let o=await (0,y.z)({timeoutMs:Math.min(8e3,i)});if(!o.ok)return void r.push(`eol: ${o.error}`);let s={cycles:o.cycles,checkedAt:e.toISOString()};await (0,n.db)().insert(a.settings).values({key:y.T,value:s}).onConflictDoUpdate({target:a.settings.key,set:{value:s,updatedAt:e}})}async function eV(e){let t=await eM(),r=[];for(let{r:n,s:a}of t.filter(e=>e.s)){let t=(0,c.q)(a.data),i=(0,f.G)({status:t.zone?.status??null,paused:t.zone?.paused??!1,rdap:t.rdap},e);(i.state!==a.state||JSON.stringify(i.reasons)!==JSON.stringify(t.reasons))&&(await (0,u.r)(n.id,{reasons:i.reasons},e),i.state!==a.state&&await (0,u.a)(n.id,i.state,e),r.push((0,f.n)({resourceId:n.id,name:n.name,prev:a.state,next:i.state,reasons:i.reasons,at:e})))}let n=t.filter(e=>e.r.monitored).map(e=>e.r.name);for(let{r:a,s:i}of(await eD())){let o=(0,c.q)(i?.data),s=(0,f.J)(a.name,n),l=s?(0,c.q)(t.find(e=>e.r.name===s)?.s?.data):null,d=(0,f.k)({host:a.name,tls:o.tls,vercel:o.vercel,records:l?(0,f.Q)(a.name,l.records):[],zoneRdap:l?.rdap??null},e),p=i?.state??null;(d.state!==p||JSON.stringify(d.reasons)!==JSON.stringify(o.reasons))&&(await (0,u.r)(a.id,{reasons:d.reasons},e),d.state!==p&&await (0,u.a)(a.id,d.state,e),r.push((0,f.n)({resourceId:a.id,name:a.name,prev:p,next:d.state,reasons:d.reasons,at:e})))}await (0,l.f)(r)}async function eG(){return(0,n.db)().select({r:a.resources,s:a.snapshots,label:a.accounts.label}).from(a.resources).innerJoin(a.accounts,(0,t.eq)(a.accounts.id,a.resources.accountId)).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"zone"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))).orderBy((0,r.asc)(a.resources.name)).limit(200)}async function eK(){let e=await (0,n.db)().select({r:a.resources,s:a.snapshots}).from(a.resources).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"domain"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))).orderBy((0,r.asc)(a.resources.name)).limit(200);if(!e.length)return[];let i=[...new Set(e.map(e=>e.r.parentId).filter(e=>!!e))],o=i.length?await (0,n.db)().select({id:a.resources.id,name:a.resources.name,monitored:a.resources.monitored,goneAt:a.resources.goneAt}).from(a.resources).where((0,t.inArray)(a.resources.id,i)):[],s=new Set(o.filter(e=>e.monitored&&!e.goneAt).map(e=>e.id)),l=await eG(),u=l.map(e=>e.r.name);return e.filter(({r:e})=>!e.parentId||s.has(e.parentId)).map(({r:e,s:t})=>{let r=(0,c.q)(t?.data),n=(0,f.J)(e.name,u),a=l.find(e=>e.r.name===n),i=(0,c.q)(a?.s?.data);return{id:e.id,name:e.name,appId:e.parentId,appName:o.find(t=>t.id===e.parentId)?.name??null,zoneId:a?.r.id??null,zoneName:n,isVercel:(0,f.e)(e.name),state:t?.state??"unknown",reasons:r.reasons,tls:r.tls,vercel:r.vercel,records:a?(0,f.Q)(e.name,i.records):[],rdap:a?i.rdap:null,cfAccountId:a?i.zone?.accountId??null:null}})}async function eF(){return(await eG()).map(e=>({id:e.r.id,name:e.r.name}))}async function eW(e){let t=await eG(),r=(e?t.find(t=>t.r.id===e):null)??t[0];if(!r)return null;let n=(0,c.q)(r.s?.data);return{id:r.r.id,name:r.r.name,accountId:r.r.accountId,accountLabel:r.label,state:r.s?.state??"unknown",reasons:n.reasons,facts:n}}async function eX(){let[e]=await (0,n.db)().select({value:a.settings.value}).from(a.settings).where((0,t.eq)(a.settings.key,y.T)).limit(1),r=e?.value,i=r?(0,y.b)({result:{releases:r.cycles?.map(e=>({name:e.name,isEol:e.isEol,eolFrom:e.eolFrom,latest:e.latest?{name:e.latest}:null}))}}):null;return i&&"string"==typeof r?.checkedAt?{cycles:i,checkedAt:r.checkedAt}:null}async function eJ(e){let[r]=await (0,n.db)().select().from(a.resources).where((0,t.and)((0,t.eq)(a.resources.id,e),(0,t.eq)(a.resources.kind,"domain"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))).limit(1);if(!r)return{ok:!1,error:"That domain is no longer watched."};if((0,f.e)(r.name))return{ok:!1,error:"vercel.app domains are Vercel's own. There is nothing to check."};let i=new Date;await eq(r.id,r.name,i);let o=await eG(),s=(0,f.J)(r.name,o.map(e=>e.r.name)),l=o.find(e=>e.r.name===s),u=l?await eU(l.r.id,l.r.name,i):null;return await eV(i),{ok:!0,message:u?`Checked ${r.name}. Domain expiry: ${u}.`:`Checked ${r.name}.`,audit:{message:`Re-check: ${r.name}`,resourceId:r.id}}}e.s(["p",0,["cloudflare","domains","tls","rdap","eol"],"r",0,eU,"x",0,eV,"h",0,eC,"H",0,ej,"i",0,eB,"W",0,eH,"V",0,eL,"j",0,eq],991219),e.s(["j",0,eW,"p",0,eK,"c",0,eF,"P",0,eX,"_",0,eJ],827439)},373200,e=>{var t=e.i(336763),r=e.i(396918),n=e.i(533102),a=e.i(406212),i=e.i(530298),o=e.i(484745),s=e.i(803237),l=e.i(333407),u=e.i(503313),d=e.i(638809),c=e.i(147100),p=e.i(93387),f=e.i(262412),m=e.i(416041),h=e.i(313302),g=e.i(896478),y=e.i(96658),b=e.i(908480),w=e.i(717614),v=e.i(601225),k=e.i(583319),_=e.i(760859),A=e.i(728335),I=e.i(70377);let S="digest.lastSentDay",$="digest.state";async function T(e){let[r]=await (0,a.db)().select().from(i.channels).where((0,t.eq)(i.channels.kind,e)).limit(1);if(!r)return null;try{return{row:r,config:JSON.parse((0,s.K)({ciphertext:r.configCiphertext,iv:r.configIv},(0,p.serverEnv)().OPS_ENCRYPTION_KEY))}}catch{return null}}async function R(){let e=(0,y.notifyEnv)(),[t,r,n,a]=await Promise.all([T("telegram"),T("discord"),T("webhook"),T("smtp")]),i=new Set;e.telegramToken&&t?.row.enabled&&t.config?.chatId&&i.add("telegram"),r?.row.enabled&&r.config?.url&&i.add("discord"),n?.row.enabled&&n.config?.url&&i.add("webhook"),a?.row.enabled&&a.config?.host&&i.add("smtp");let o=`${(0,p.serverEnv)().SITE_URL.replace(/\/+$/,"")}/alerts`;return{send:(i,s,l)=>"telegram"===i?(0,v.I)(e.telegramToken,t.config.chatId,s):"webhook"===i?(0,m.E)(n.config,(0,m.J)(s,l??[],new Date,o)):"smtp"===i?(0,h.f)(a.config,(s.split("\n")[0]??"").replace(/[*_`~]/g,"").slice(0,150)||"Watchbell alert",`${s}
|
|
33
|
+
|
|
34
|
+
${o}`):(0,f.f)(r.config.url,s),configured:i}}async function x(){let e=(0,y.notifyEnv)().telegramToken;if(!e)return null;let t=await T("telegram");return t?.row.enabled&&t.config?.chatId?{token:e,chatId:t.config.chatId}:null}async function E(){let e=await T("discord");return e?.row.enabled&&e.config?.url?{url:e.config.url}:null}let N="notify.telegramThreads",P=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function O(e,t,r){let o=e.filter(e=>P.test(e));if(!o.length||!Number.isSafeInteger(t)||t<=0)return;let s=Object.fromEntries(o.map(e=>[e,{m:t,at:r.getTime()}])),l=r.getTime()-6048e5,u=n.sql`case when jsonb_typeof(${i.settings.value}) = 'object' then ${i.settings.value} else '{}'::jsonb end`;await (0,a.db)().insert(i.settings).values({key:N,value:s}).onConflictDoUpdate({target:i.settings.key,set:{value:n.sql`(select coalesce(jsonb_object_agg(e.key, e.value), '{}'::jsonb) from jsonb_each(${JSON.stringify(s)}::jsonb || ${u}) as e
|
|
35
|
+
where jsonb_typeof(e.value) = 'object' and (e.value->>'at') ~ '^[0-9]{1,15}$' and (e.value->>'at')::bigint > ${l})`,updatedAt:r}})}async function C(e){if(!e||!P.test(e))return null;try{let[r]=await (0,a.db)().select({value:i.settings.value}).from(i.settings).where((0,t.eq)(i.settings.key,N)).limit(1),n=r?.value&&"object"==typeof r.value?r.value[e]:null;return"number"==typeof n?.m&&Number.isSafeInteger(n.m)&&n.m>0?n.m:null}catch{return null}}let j=()=>(0,u.f)().catch(()=>_.a);async function D(e,s,l={}){var u;if(s-Date.now()<6e3)return{sent:0,dropped:0};let c=await (0,d.I)(),f=await (0,a.db)().select({a:i.alerts,channels:i.alertRules.channels}).from(i.alerts).innerJoin(i.alertRules,(0,t.eq)(i.alertRules.key,i.alerts.ruleKey)).where((0,t.and)((0,t.isNotNull)(i.alerts.pending),n.sql`(${i.alerts.pending} = 'resolve') = (${i.alerts.resolvedAt} is not null)`,(0,d.s)(c))).orderBy((0,r.asc)(i.alerts.pendingSince)).limit(50);if(!f.length)return{sent:0,dropped:0};let m=new Set((await (0,a.db)().update(i.alerts).set({claimedAt:e}).where((u=f.map(e=>e.a.id),(0,t.and)((0,t.inArray)(i.alerts.id,u),(0,t.isNotNull)(i.alerts.pending),(0,t.or)((0,t.isNull)(i.alerts.claimedAt),(0,t.lt)(i.alerts.claimedAt,new Date(e.getTime()-12e4)))))).returning({id:i.alerts.id})).map(e=>e.id)),h=f.filter(e=>m.has(e.a.id));if(!h.length)return{sent:0,dropped:0};let{send:g,configured:y}=l.sender??await R(),w=new Set(h.filter(({a:t})=>"resolve"!==t.pending&&(t.silencedUntilResolved||null!==t.silencedUntil&&t.silencedUntil.getTime()>e.getTime())).map(({a:e})=>e.id)),[v,k]=await Promise.all([j(),(0,b.B)()]),A=new Set;for(let r of["telegram","discord","webhook","smtp"]){if(!y.has(r))continue;let n=h.filter(e=>e.channels.includes(r)&&!w.has(e.a.id));if(!n.length)continue;let s=n.map(({a:e})=>{let t="telegram"===r?e:(0,_.o)(e,v);return{kind:e.pending,ruleKey:e.ruleKey,severity:e.severity,title:t.title,message:t.message,startedAt:e.startedAt,causedBy:t.causedBy,provider:e.providerIncident}}),l=(0,o.l)(s,e,(0,p.serverEnv)().SITE_URL,"webhook"===r?"en":"smtp"===r?k.email:k[r]),u=await g(r,(0,_.G)("telegram"===r?l.telegram:l.discord),"webhook"===r?s.map(e=>({...e,title:(0,_.G)(e.title),message:(0,_.G)(e.message)})):void 0);await (0,a.db)().update(i.channels).set(u.ok?{lastSentAt:e,lastError:null}:{lastError:u.error}).where((0,t.eq)(i.channels.kind,r)),u.ok&&n.forEach(({a:e})=>A.add(e.id)),u.ok&&"telegram"===r&&u.messageId&&await O(n.filter(({a:e})=>"open"===e.pending).map(({a:e})=>e.id),u.messageId,e).catch(()=>console.warn("notify: remembering the Telegram message failed"))}let I=0,S=0,$=[];for(let{a:r,channels:n}of h){let o=n.some(e=>y.has(e)),s=null!==r.pendingSince&&e.getTime()-r.pendingSince.getTime()>18e5;A.has(r.id)?(I++,await (0,a.db)().update(i.alerts).set({pending:null,pendingSince:null,lastNotifiedAt:e,claimedAt:null,..."open"===r.pending?{notifiedOpen:!0}:{}}).where((0,t.eq)(i.alerts.id,r.id))):w.has(r.id)||!o||s?(S++,await (0,a.db)().update(i.alerts).set({pending:null,claimedAt:null}).where((0,t.eq)(i.alerts.id,r.id))):$.push(r.id)}return $.length&&await (0,a.db)().update(i.alerts).set({claimedAt:null}).where((0,t.inArray)(i.alerts.id,$)),{sent:I,dropped:S}}async function M(e){let o=new Date(e.getTime()-864e5),s=await (0,d.I)(),l=n.sql`case ${i.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`,[u,p,f,m,h]=await Promise.all([(0,a.db)().select({ruleKey:i.alerts.ruleKey,severity:i.alerts.severity,title:i.alerts.title,message:i.alerts.message,resourceId:i.alerts.resourceId,startedAt:i.alerts.startedAt}).from(i.alerts).where((0,t.and)((0,t.isNull)(i.alerts.resolvedAt),(0,d.s)(s))).orderBy(l,(0,r.desc)(i.alerts.startedAt)).limit(50),(0,a.db)().select({n:n.sql`count(*)::int`}).from(i.alerts).where((0,t.gte)(i.alerts.startedAt,o)),(0,a.db)().select({ruleKey:i.alerts.ruleKey,title:i.alerts.title,resourceId:i.alerts.resourceId,startedAt:i.alerts.startedAt,resolvedAt:i.alerts.resolvedAt}).from(i.alerts).where((0,t.and)((0,t.isNotNull)(i.alerts.resolvedAt),(0,t.gte)(i.alerts.resolvedAt,o))).orderBy((0,r.desc)(i.alerts.resolvedAt)).limit(20),(0,a.db)().select({id:i.resources.id,name:i.resources.name}).from(i.resources).where((0,t.and)((0,t.eq)(i.resources.kind,"app"),(0,t.eq)(i.resources.monitored,!0),(0,t.isNull)(i.resources.goneAt))).orderBy(i.resources.name).limit(I.O.apps),(0,c.h)(e)]),g=m.map(e=>e.id),[y,b]=g.length?await Promise.all([(0,a.db)().select({id:i.monitors.resourceId,total:n.sql`count(*)::int`,bad:n.sql`(count(*) filter (where not ${i.checks.ok}))::int`}).from(i.checks).innerJoin(i.monitors,(0,t.eq)(i.monitors.id,i.checks.monitorId)).where((0,t.and)((0,t.inArray)(i.monitors.resourceId,g),(0,t.gte)(i.checks.at,o),(0,t.eq)(i.checks.inMaintenance,!1))).groupBy(i.monitors.resourceId),(0,a.db)().select({id:i.storedLogs.resourceId,n:n.sql`count(*)::int`}).from(i.storedLogs).where((0,t.and)((0,t.inArray)(i.storedLogs.resourceId,g),(0,t.gte)(i.storedLogs.at,o))).groupBy(i.storedLogs.resourceId)]):[[],[]],w=new Map(y.map(e=>[e.id,e])),v=new Map(b.map(e=>[e.id,e.n])),A=await j();return{now:e,opened:p[0]?.n??0,firing:u.map(({resourceId:e,...t})=>{let r=(0,_.o)({...t,resourceId:e,causedBy:null},A);return{...t,title:r.title,message:r.message}}),resolved:f.flatMap(e=>e.resolvedAt?[{ruleKey:e.ruleKey,title:(0,_.o)({title:e.title,message:"",causedBy:null,resourceId:e.resourceId},A).title,took:(0,k.f)(e.startedAt,e.resolvedAt)}]:[]),apps:m.map(e=>{let t=w.get(e.id);return{name:e.name,uptime:t&&t.total>0?(t.total-t.bad)/t.total*100:null,errors:v.get(e.id)??0}}),providers:h.filter(e=>"ok"!==e.state).map(e=>({label:e.label,text:e.text}))}}async function z(e,r,n){await (0,a.db)().update(i.channels).set(r.ok?{lastSentAt:n,lastError:null}:{lastError:r.error}).where((0,t.eq)(i.channels.kind,e))}async function q(e){let[t,r]=await Promise.all([M(e),(0,b.H)("email")]);return(0,g.J)({...t,siteUrl:(0,p.serverEnv)().SITE_URL},r)}async function L(e,r={}){let n=await (0,a.db)().select().from(i.settings).where((0,t.inArray)(i.settings.key,[S,$])),o=n.find(e=>e.key===S)?.value,s="string"==typeof o?o:null;if(!(0,g.A)(e,s))return;let u=(0,y.notifyEnv)(),d=await T("email_digest");if(!u.resendKey||!u.digestFrom||!d?.row.enabled||!d.config?.to)return;let{resendKey:c,digestFrom:p}=u,f=d.config.to,m=(0,A.dayKey)(e),h=await (0,g.K)(e,{lastSentDay:s,state:n.find(e=>e.key===$)?.value??null,build:r.build??(()=>q(e)),send:r.send??(e=>(0,w.f)(c,{from:p,to:f,...e,idempotencyKey:`digest-${m}`}))});h.acted&&(h.result&&await z("email_digest",h.result,e),h.state?await (0,a.db)().insert(i.settings).values({key:$,value:h.state}).onConflictDoUpdate({target:i.settings.key,set:{value:h.state,updatedAt:e}}):await (0,a.db)().delete(i.settings).where((0,t.eq)(i.settings.key,$)),h.sentDay&&await (0,a.db)().insert(i.settings).values({key:S,value:h.sentDay}).onConflictDoUpdate({target:i.settings.key,set:{value:h.sentDay,updatedAt:e}}),h.event&&await (0,l.f)([{type:"system",kind:"warn",message:h.event.message,detail:h.event.detail,resourceId:null,reason:"DigestFailed",at:e}]))}e.s(["q",0,D,"G",0,E,"P",0,z,"J",0,L,"Q",0,x,"M",0,C])},406197,934152,e=>{var t=e.i(336763),r=e.i(668304),n=e.i(406212),a=e.i(530298),i=e.i(803237),o=e.i(595262),s=e.i(93387),l=e.i(802641),u=e.i(659916);function d(e,t){return"member"===e?`Too many actions. Try again in ${(0,u.H)(t)}.`:"That was just done. Wait a minute before trying again."}function c(e){let t=e.replace(/\s+/g," ").trim();return t.length>200?`${t.slice(0,199)}…`:t}e.s(["G",0,"This changed since you opened it. Reload and try again.","z",0,d,"b",0,function(e,t){return"supabase"===e?"This token is read-only; replace it with one that has Project admin write.":"cloudflare"===e?'This Cloudflare token can\'t edit DNS; add "Zone → DNS → Edit" to it, or replace it with a token that has it.':"vercel"===e?`This token can't change projects in team ${t.team||"this team"}; replace it with one whose scope includes that team.`:`This API key can't manage project ${t.project||"this project"}; replace it with a personal or organization key, or a key for this project.`},"S",0,c],934152);var p=e.i(355620);let f="access.";async function m(e,r){if(!(0,l.f)(e))return null;let[o]=await (0,n.db)().select({r:a.resources,a:a.accounts}).from(a.resources).innerJoin(a.accounts,(0,t.eq)(a.accounts.id,a.resources.accountId)).where((0,t.and)((0,t.eq)(a.resources.id,e),(0,t.eq)(a.resources.kind,r),(0,t.isNull)(a.resources.goneAt))).limit(1);if(!o)return null;let u=(0,i.V)({ciphertext:o.a.credentialCiphertext,iv:o.a.credentialIv},(0,s.serverEnv)().OPS_ENCRYPTION_KEY);return u?{resource:o.r,account:{id:o.a.id,label:o.a.label,provider:o.a.provider,scopeNote:o.a.scopeNote},token:u}:null}async function h(e,t,r){let n=await (0,p.f)(u.t.providerAction,e);if(!n.allowed)return d("member",n.retryAfter);let a=await (0,p.f)(u.t.actionTarget,`${t}:${r}`);return a.allowed?null:d("target",a.retryAfter)}async function g(e,t,r){let i={write:t,at:new Date().toISOString(),...r?{scope:r}:{}};await (0,n.db)().insert(a.settings).values({key:`${f}${e}`,value:i}).onConflictDoUpdate({target:a.settings.key,set:{value:i,updatedAt:new Date}})}async function y(e){let r=new Map,i=e.filter(l.f);if(0===i.length)return r;for(let e of(await (0,n.db)().select().from(a.settings).where((0,t.inArray)(a.settings.key,i.map(e=>`${f}${e}`))))){let t=e.value;t&&("ok"===t.write||"denied"===t.write)&&"string"==typeof t.at&&r.set(e.key.slice(f.length),{write:t.write,at:t.at,..."string"==typeof t.scope?{scope:t.scope}:{}})}return r}async function b(e,t,n,a={}){if(!("audit"in e))return{ok:!1,error:e.message};let i="failed"in e?e.failed:null,s="failed"in e?"":e.message,l=i?i.error:"failed"in e?void 0:e.audit.detail;try{await (0,o.f)({kind:i?"err":"ok",message:`${a.auditPrefix??""}${e.audit.message}`,resourceId:e.audit.resourceId,actorUserId:t.userId,...l?{detail:c(l)}:{}})}catch{console.warn("audit event failed")}if(!i||"scope"===i.kind)try{await g(n,i?"denied":"ok")}catch{console.warn("access write failed")}return!1!==a.refresh&&(0,r.refresh)(),i?{ok:!1,error:i.error}:{ok:!0,message:s}}e.s(["W",0,b,"p",0,m,"y",0,g,"q",0,h,"f",0,y],406197)},147100,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(530298),a=e.i(333407),i=e.i(122603);let o={vercel:{label:"Vercel",feedText:"vercel-status.com · Statuspage",page:"https://www.vercel-status.com"},supabase:{label:"Supabase",feedText:"status.supabase.com · summary.json",page:"https://status.supabase.com"},neon:{label:"Neon",feedText:"neonstatus.com · Status.io API",page:"https://neonstatus.com"},cloudflare:{label:"Cloudflare",feedText:"cloudflarestatus.com · Statuspage",page:"https://www.cloudflarestatus.com"},firebase:{label:"Firebase",feedText:"status.firebase.google.com · incidents.json",page:"https://status.firebase.google.com"},gcp:{label:"Google Cloud",feedText:"status.cloud.google.com · incidents.json",page:"https://status.cloud.google.com"}},s=["vercel","supabase","neon","cloudflare","firebase","gcp"],l=e=>e&&"object"==typeof e&&!Array.isArray(e)?e:null,u=e=>"string"==typeof e?e:null,d=e=>Array.isArray(e)?e.map(l).filter(e=>null!==e):[],c=(e,t=160)=>e.length>t?`${e.slice(0,t-1)}…`:e,p=["stspg.io","vercel-status.com","cloudflarestatus.com","supabase.com","neonstatus.com","status.io","status.firebase.google.com","status.cloud.google.com"];function f(e){if("string"!=typeof e)return null;try{let t=new URL(e);return"https:"===t.protocol&&!t.username&&!t.password&&p.some(e=>t.hostname===e||t.hostname.endsWith(`.${e}`))?t.toString():null}catch{return null}}let m={none:"ok",minor:"warn",major:"err",critical:"err",maintenance:"info"},h=["none","minor","major","critical"],g={none:"warn",minor:"warn",major:"err",critical:"err"},y={none:"Open incident",minor:"Minor incident",major:"Major incident",critical:"Critical incident"},b=/firestore|authentication|hosting/i,w=/management api|mgmt api|dashboard|billing|support|docs|marketplace|branching|^cli\b|analytics/i,v=e=>e.slice(0,3).join(", ");function k(e,t={}){let r=l(e.status),n=u(r?.indicator);if(!r||!n||!(n in m))return null;let a=d(e.incidents),i=a.slice(0,5).map(e=>{let r=d(e.components).map(e=>u(e.name)).filter(e=>!!e).map(e=>c(e,60));return{name:c(u(e.name)??"Incident"),impact:u(e.impact)??"unknown",startedAt:u(e.started_at)??u(e.created_at),url:f(e.shortlink),...r.length?{products:r}:{},...u(e.updated_at)?{updatedAt:u(e.updated_at)}:{},...t.controlPlane?{relevant:r.length?!r.every(e=>t.controlPlane.test(e)):!t.controlPlane.test(u(e.name)??"")}:{}}});if(t.controlPlane&&i.length&&i.every(e=>!1===e.relevant)){let e=i[0],t=e.products?.length?`${v(e.products)}: `:"",r=" (projects and databases aren't affected)";return{state:"info",indicator:"info",description:`${c(`${t}${e.name}`,160-r.length)}${r}`,incidents:i}}let o=(t.colos??[]).map(e=>e.replace(/\W/g,"")).filter(Boolean),s=o.length?RegExp(`\\b(${o.join("|")})\\b`):null,p=d(e.maintenances).filter(e=>["in_progress","verifying"].includes(u(e.status)??"")&&(!s||s.test(u(e.name)??""))),b=c(u(r.description)??""),w=()=>{let e=p[0];return{state:"info",indicator:"maintenance",description:c(`Scheduled maintenance \xb7 ${u(e.name)??""}`),incidents:p.slice(0,5).map(e=>({name:c(u(e.name)??"Maintenance"),impact:"maintenance",startedAt:u(e.scheduled_for),url:f(e.shortlink)}))}};if(a.length){let e=(t.controlPlane?a.filter((e,t)=>i[t]?.relevant!==!1):a).map(e=>u(e.impact)??"").filter(e=>h.includes(e)).sort((e,t)=>h.indexOf(t)-h.indexOf(e))[0]??"minor",r=g[e],o=t.controlPlane?i.find(e=>!1!==e.relevant&&e.products?.length):void 0,s=o?c(`${v(o.products)}: ${o.name}`):r===m[n]&&"none"!==n?b:y[e];return{state:r,indicator:e,description:s,incidents:i}}let _=Array.isArray(e.components)?d(e.components):null;if(o.length&&_){let e=RegExp(`\\((${o.join("|")})\\)\\s*$`),t=_.filter(t=>e.test(u(t.name)??"")&&(u(t.status)??"operational")!=="operational");if(t.length){let r=t.find(e=>"major_outage"===u(e.status))??t[0],n="major_outage"===u(r.status);return{state:n?"err":"warn",indicator:n?"major":"minor",description:c(`${e.exec(u(r.name)??"")?.[1]} data centre: ${(u(r.status)??"").replace(/_/g," ")}`),incidents:i}}return p.length?w():{state:"ok",indicator:"none",description:`No open incidents near ${o.join(", ")}`,incidents:i}}return"none"===n&&p.length?w():{state:m[n],indicator:n,description:b,incidents:i}}let _=[[500,"err"],[300,"warn"],[200,"info"],[100,"ok"]];async function A(e,t){let r,n=AbortSignal.timeout(5e3);try{r=await t(e,{headers:{Accept:"application/json","User-Agent":"OpsConsole-Status/1.0"},signal:n,cache:"no-store"})}catch{return{ok:!1}}if(!r.ok)return await r.body?.cancel().catch(()=>void 0),{ok:!1,status:r.status};try{let{bytes:e,truncated:t}=await (0,i.z)(r,1048576,(0,i.X)(n));if(t)return{ok:!1,format:!0};return{ok:!0,json:JSON.parse(new TextDecoder().decode(e))}}catch{return{ok:!1,format:!0}}}let I=e=>`https://${e}/api/v2`;async function S(e,t,r={}){let n=r.fetch??fetch,a=o[e].label,i=e=>({ok:!1,error:e.format?`The ${a} status feed answered in a format the console doesn't recognise.`:e.status?`The ${a} status feed answered ${e.status}.`:`The ${a} status feed didn't answer.`}),s=null;if("vercel"===e||"supabase"===e){let t=await A(`${I("vercel"===e?"www.vercel-status.com":"status.supabase.com")}/summary.json`,n);if(!t.ok)return i(t);let r=l(t.json);s=r&&k({status:r.status,incidents:r.incidents,maintenances:r.scheduled_maintenances},"supabase"===e?{controlPlane:w}:{})}else if("cloudflare"===e){let e=I("www.cloudflarestatus.com"),[t,a,o,u]=await Promise.all([A(`${e}/status.json`,n),A(`${e}/incidents/unresolved.json`,n),A(`${e}/scheduled-maintenances/active.json`,n),A(`${e}/components.json`,n)]);if(!t.ok)return i(t);s=k({status:l(t.json)?.status,incidents:a.ok?l(a.json)?.incidents:[],maintenances:o.ok?l(o.json)?.scheduled_maintenances:[],components:u.ok?l(u.json)?.components:void 0},{colos:r.colos??["SIN","CGK"]})}else if("neon"===e){let e=await A("https://api.status.io/1.0/status/6878fc85709daa75be6c7e3c",n);if(!e.ok)return i(e);s=function(e){let t=l(l(l(e)?.result)?.status_overall),r="number"==typeof t?.status_code?t.status_code:null;if(!t||null===r)return null;let n=_.find(([e])=>r>=e)?.[1]??"ok",a=d(l(l(e)?.result)?.incidents).slice(0,5).map(e=>({name:c(u(e.name)??"Incident"),impact:"incident",startedAt:u(e.datetime_open),url:"https://neonstatus.com"}));return{state:n,indicator:String(r),description:c(u(t.status)??""),incidents:a}}(e.json)}else{let r="firebase"===e?"status.firebase.google.com":"status.cloud.google.com",a=await A(`https://${r}/incidents.json`,n);if(!a.ok)return i(a);s=function(e,t,r={}){if(!Array.isArray(e))return null;let n=r.host??"status.cloud.google.com",a=d(e).filter(e=>{let r=u(e.end);return null!==u(e.begin)&&(!r||new Date(r).getTime()>t.getTime())}),i=a.filter(e=>!r.relevant||d(e.affected_products).some(e=>r.relevant.test(u(e.title)??"")));if(!i.length){let e=a.length;return{state:"ok",indicator:"none",description:e&&r.relevant?`No incidents affecting Firebase (${e} elsewhere)`:"No open incidents",incidents:[]}}let o=e=>d(e.affected_products).map(e=>u(e.title)).filter(e=>!!e).map(e=>c(e,60)),s=e=>!r.used||o(e).some(e=>r.used.test(e)),l=i.slice(0,5).map(e=>{let t=o(e);return{name:c(u(e.external_desc)??"Incident"),impact:u(e.status_impact)??"unknown",startedAt:u(e.begin),url:u(e.uri)?f(`https://${n}/${u(e.uri)}`):null,...t.length?{products:t}:{},...u(e.modified)?{updatedAt:u(e.modified)}:{},...r.used?{relevant:s(e)}:{}}}),p=i.filter(s),m=e=>{let t=o(e),n=u(e.external_desc)??"Incident";return r.used&&t.length?`${v(t)}: ${n}`:n};if(!p.length){let e=" (not Firestore, Authentication or Hosting)";return{state:"info",indicator:"info",description:`${c(m(i[0]),160-e.length)}${e}`,incidents:l}}let h=p.some(e=>"SERVICE_OUTAGE"===e.status_impact),g=p.every(e=>"SERVICE_INFORMATION"===e.status_impact);return{state:h?"err":g?"info":"warn",indicator:h?"major":g?"info":"minor",description:c(m(p[0])),incidents:l}}(a.json,t,"gcp"===e?{relevant:/firestore|firebase|identity|monitoring/i,host:r}:{host:r,used:b})}return s?{ok:!0,reading:{provider:e,...s}}:i({format:!0})}var $=e.i(728335);async function T(e){let[i]=await (0,r.db)().select().from(n.settings).where((0,t.eq)(n.settings.key,"status.cloudflareColos")).limit(1),l=Array.isArray(i?.value)?i.value.filter(e=>"string"==typeof e):void 0,u=new Map((await (0,r.db)().select().from(n.providerStatus)).map(e=>[e.provider,e])),d=await Promise.all(s.map(t=>S(t,e,{colos:l}))),c=[];for(let[t,a]of s.entries()){let i=d[t],s=u.get(a);if(i.ok){let{state:t,indicator:l,description:u,incidents:d}=i.reading;await (0,r.db)().insert(n.providerStatus).values({provider:a,state:t,indicator:l,description:u,incidents:d,checkedAt:e,lastOkAt:e,error:null}).onConflictDoUpdate({target:n.providerStatus.provider,set:{state:t,indicator:l,description:u,incidents:d,checkedAt:e,lastOkAt:e,error:null}});let p=s?.state??"unknown",f=e=>"warn"===e||"err"===e;f(t)&&!f(p)&&c.push({type:"system",kind:t,message:`${o[a].label} reports an incident`,detail:u,resourceId:null,reason:"ProviderIncident"}),!f(t)&&f(p)&&c.push({type:"system",kind:"ok",message:`${o[a].label} incident resolved`,detail:u,resourceId:null,reason:"ProviderRecovered"})}else{let t=!s?.lastOkAt||e.getTime()-s.lastOkAt.getTime()>18e5;await (0,r.db)().insert(n.providerStatus).values({provider:a,state:"unknown",checkedAt:e,error:i.error}).onConflictDoUpdate({target:n.providerStatus.provider,set:{checkedAt:e,error:i.error,...t?{state:"unknown"}:{}}})}}await (0,a.f)(c)}async function R(){return(0,r.db)().select().from(n.providerStatus)}async function x(e){var t,r;let n;return t=await R(),r=e,n=new Map(t.map(e=>[e.provider,e])),s.map(e=>{let t=n.get(e),a={provider:e,...o[e]};if(!t)return{...a,state:"unknown",text:"Not read yet",incidents:[],checked:"—"};let i=null!==t.error,s="unknown"===t.state?`Feed didn't answer \xb7 last read ${t.lastOkAt?(0,$.ago)(t.lastOkAt,r):"never"}`:t.description||("ok"===t.state?"No open incidents":"Incident");return{...a,state:t.state,text:s,incidents:t.incidents,checked:(0,$.ago)(i&&t.lastOkAt?t.lastOkAt:t.checkedAt,r)}})}e.s(["h",0,x,"B",0,R,"i",0,T],147100)},638809,e=>{var t=e.i(336763),r=e.i(533102),n=e.i(910931),a=e.i(406212),i=e.i(200123),o=e.i(530298);let s=["vercel","supabase","neon","firebase","turso","upstash","cloudflare","github","github_write"];var l=e.i(873083),u=e.i(476866);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,n.cache)(async()=>{let e=r.sql.join(d.map(e=>r.sql`${e}`),r.sql`, `),t=await (0,a.db)().execute(r.sql`select
|
|
36
|
+
(select coalesce(jsonb_agg(distinct ${o.accounts.provider}::text), '[]'::jsonb) from ${o.accounts}) as providers,
|
|
37
|
+
exists(select 1 from ${o.resources} where ${o.resources.kind}::text in (${e}) and ${o.resources.goneAt} is null) as databases,
|
|
38
|
+
${(0,u.W)()} as off`),[n]=(0,i.f)(t),p=c(n?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>s.includes(e)),databases:n?.databases===!0||n?.databases==="t",off:(0,l.N)(c(n?.off))}});async function f(){try{return(0,l.I)((await p()).off)}catch{return new Set}}e.s(["s",0,function(e){let n=function(e){if(!e.size)return;let{ruleKeys:n,providers:a}=(0,l.s)(e),i=[];if(n.length&&i.push(r.sql`${o.alerts.ruleKey} in (${r.sql.join(n.map(e=>r.sql`${e}`),r.sql`, `)})`),a.length){let e=r.sql.join(a.map(e=>r.sql`${e}`),r.sql`, `);i.push(r.sql`(${o.alerts.ruleKey} = 'CredentialExpiring' and ${o.alerts.accountId} in (select ${o.accounts.id} from ${o.accounts} where ${o.accounts.provider}::text in (${e})))`)}return i.length?(0,t.or)(...i):void 0}(e);return n?(0,t.not)(n):void 0},"I",0,f],638809)},584820,e=>{var t=e.i(336763),r=e.i(533102),n=e.i(406212),a=e.i(530298),i=e.i(122603),o=e.i(541211),s=e.i(333407),l=e.i(902509),u=e.i(631065),d=e.i(802641),c=e.i(978196),p=e.i(412948),f=e.i(70377);function m(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function h(e={}){let i=e.only;if(i&&!i.length)return[];let o=e.first??[],s=e.skip??[],l=await (0,n.db)().select({id:a.resources.id,name:a.resources.name,meta:a.resources.meta,sec:a.appSecurity}).from(a.resources).leftJoin(a.appSecurity,(0,t.eq)(a.appSecurity.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"app"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt),i?(0,t.inArray)(a.resources.id,i):void 0,s.length?(0,t.notInArray)(a.resources.id,[...s]):void 0)).orderBy(...o.length?[r.sql`case when ${(0,t.inArray)(a.resources.id,o)} then 0 else 1 end`]:[],r.sql`${a.appSecurity.checkedAt} asc nulls first`,a.resources.name).limit(f.O.apps);if(!l.length)return[];o.length&&l.sort((e,t)=>Number(!o.includes(e.id))-Number(!o.includes(t.id)));let u=await (0,n.db)().select({resourceId:a.monitors.resourceId,url:a.monitors.url}).from(a.monitors).where((0,t.inArray)(a.monitors.resourceId,l.map(e=>e.id))).orderBy(a.monitors.createdAt).limit(f.O.monitors);return l.map(e=>({id:e.id,name:e.name,prev:e.sec?m(e.sec):null,host:(0,c.Y)(e.meta)?.primaryDomain??(0,p.m)(e.name,u.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function g(e,i){await (0,n.db)().transaction(async n=>{await n.execute(r.sql`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[o]=await n.select().from(a.appSecurity).where((0,t.eq)(a.appSecurity.resourceId,e.id)).limit(1),l=o?m(o):null;if(l&&l.checkedAt.getTime()>=i.checkedAt.getTime())return;let d="unknown"===i.status||"error"===i.status?{...i,version:l?l.version:i.version,findings:l?l.findings:i.findings}:i,c={framework:"next",version:d.version,status:d.status,findings:d.findings,reason:d.reason,checkedAt:d.checkedAt};await n.insert(a.appSecurity).values({resourceId:e.id,...c}).onConflictDoUpdate({target:a.appSecurity.resourceId,set:c,setWhere:r.sql`${a.appSecurity.checkedAt} < excluded.checked_at`});let p=(0,u.t)(e.name,l,d);p&&await (0,s.f)([{type:"system",kind:p.kind,message:p.message,detail:p.detail,resourceId:e.id,at:d.checkedAt,reason:"ok"===p.kind?"NextClean":"NextVulnerable"}],n)})}async function y(e,t={}){let r=await h(t),n=0,a=0,s=[],u=[],d=[];return await (0,i.P)(r,3,async t=>{if(e-Date.now()<3e3)return void a++;d.push(t.id);try{let r=await (0,l.P)(t.host,t.prev,{deadline:e});if(!r)return void a++;await g(t,r),n++,u.push(t.id)}catch(e){s.push(`${t.name}: ${(0,o.safeError)(e)}`),u.push(t.id)}}),{checked:n,skipped:a,failed:s,done:u,listed:r.map(e=>e.id),started:d}}async function b(e){let r=e.filter(d.f);return r.length?(await (0,n.db)().select().from(a.appSecurity).where((0,t.inArray)(a.appSecurity.resourceId,r)).limit(r.length)).map(e=>{let t=m(e);return{appId:e.resourceId,version:t.version,status:t.status,findings:t.findings}}):[]}e.s(["F",0,b,"h",0,y,"Z",0,m])},366171,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(295017),a=e.i(530298),i=e.i(803237),o=e.i(887103),s=e.i(93387);let l="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,r,n={}){let a;if(!("string"==typeof t&&/^[a-z0-9]{8,40}$/.test(t)))return{ok:!1,kind:"format",error:"That isn't a Supabase project ref."};let i=n.timeoutMs??8e3;try{a=await (n.fetch??fetch)(`https://${t}.supabase.co/customer/v1/privileged/metrics`,{headers:{Authorization:`Basic ${Buffer.from(`service_role:${r}`).toString("base64")}`,Accept:"text/plain"},signal:AbortSignal.timeout(i),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(i/1e3)} seconds.`:`Couldn't reach the ${l}.`}}if(401===a.status||403===a.status)return{ok:!1,kind:"auth",status:a.status,error:`Supabase rejected the metrics key (${a.status}). Replace it with a current Secret API key.`};if(404===a.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===a.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${l} says there were too many requests.`};if(!a.ok)return{ok:!1,kind:"transient",status:a.status,error:`${l} returned an error (${a.status}).`};let o=await a.text().catch(()=>null);return null===o||o.length>4e6||!/^(#|[A-Za-z_:])/m.test(o)?{ok:!1,kind:"format",error:`${l} answered in a format the console doesn't recognise.`}:{ok:!0,data:o}},key:()=>(0,s.serverEnv)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,i,s=d){if(!(0,o.T)(e,u))return null;u=e.getTime();let l=0,f=0;try{for(let{k:o,ref:u,state:d}of(await (0,r.db)().select({k:n.A,ref:a.resources.externalId,state:a.snapshots.state}).from(n.A).innerJoin(a.resources,(0,t.eq)(a.resources.id,n.A.resourceId)).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"supabase_project"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))).limit(20))){let t=i-Date.now()-500;if(t<1e3)break;try{await m(o,u,d,e,Math.min(8e3,t),s)?l++:f++}catch(e){f++,console.warn("supabase-metrics: one project failed:",c(e))}}await (0,r.db)().delete(n.l).where((0,t.lt)(n.l.hour,new Date(e.getTime()-24*o.x*36e5)))}catch(e){console.warn("supabase-metrics failed:",c(e))}return{scraped:l,failed:f}}async function f(e,a,i){return await (0,r.db)().update(n.A).set({lastTryAt:a,lastError:i.slice(0,300)}).where((0,t.eq)(n.A.resourceId,e)),!1}async function m(e,a,s,l,u,d){if("paused"===s)return f(e.resourceId,l,"The project is paused.");let c=(0,i.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(a,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,l,p.error);let m=(0,o.E)(e.latest??null,(0,o.c)((0,o.a)(p.data),a),l);await (0,r.db)().update(n.A).set({latest:m,lastTryAt:l,lastOkAt:l,lastError:null}).where((0,t.eq)(n.A.resourceId,e.resourceId));let h=(0,o.b)(l),[g]=await (0,r.db)().select().from(n.l).where((0,t.and)((0,t.eq)(n.l.resourceId,e.resourceId),(0,t.eq)(n.l.hour,h))).limit(1),y=(0,o.n)(g??null,m);return await (0,r.db)().insert(n.l).values({resourceId:e.resourceId,hour:h,...y}).onConflictDoUpdate({target:[n.l.resourceId,n.l.hour],set:y}),!0}async function h(){let e=await (0,r.db)().select({id:a.resources.id,name:a.resources.name,latest:n.A.latest}).from(n.A).innerJoin(a.resources,(0,t.eq)(a.resources.id,n.A.resourceId)).where((0,t.and)((0,t.eq)(a.resources.kind,"supabase_project"),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt))).limit(20);return e.length?e.map(e=>({id:e.id,name:e.name,latest:e.latest??null})):null}e.s(["Y",0,h,"E",0,p],366171)},707866,e=>{let t={databases:100,storageBytes:0x140000000,rowsRead:5e8,rowsWritten:1e7},r={storageBytes:262144e3,monthlyCommands:5e5,monthlyBandwidthBytes:0x280000000},n={databases:10,dbBytes:524288e3,accountBytes:0x140000000,rowsReadPerDay:5e6,rowsWrittenPerDay:1e5},a=(e,t)=>Math.round(e/t*1e3)/10,i=(e,t)=>!!e&&e.slice(0,7)===t.toISOString().slice(0,7);e.s(["M",0,n,"g",0,t,"W",0,r,"I",0,function(e,t){let r=e.usageDay===t.toISOString().slice(0,10);return[...r&&null!=e.accountRowsRead?[{label:"Rows read today",pct:a(e.accountRowsRead,n.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...r&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:a(e.accountRowsWritten,n.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:a(e.sizeBytes,n.dbBytes),text:"of 500 MB",kind:"storage"}]:[]]},"c",0,function(e){return(e.accountRowsRead??0)>=n.rowsReadPerDay?{state:"err",label:"Daily rows-read limit reached"}:(e.accountRowsWritten??0)>=n.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,r){return i(e.usageAt,r)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:a(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:a(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:a(e.orgStorageBytes,t.storageBytes),text:"of 5 GB (org)",kind:"storage"}]:[]]:[]},"h",0,function(e){return e.blockReads||e.orgBlockedReads?{state:"err",label:"Reads blocked"}:e.blockWrites||e.orgBlockedWrites?{state:"err",label:"Writes blocked"}:{state:"ok",label:"Available"}},"$",0,function(e,t){let n=i(e.statsAt,t);return[...n&&null!=e.monthlyRequests?[{label:"Commands",pct:a(e.monthlyRequests,r.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...n&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:a(e.monthlyBandwidthBytes,r.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:a(e.storageBytes,r.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"}}])},35048,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),r=e=>Number(t.find(t=>t.type===e)?.value??0),n=(3600*r("hour")+60*r("minute")+r("second"))*1e3+e.getUTCMilliseconds();return new Date(e.getTime()-n)}])},203868,e=>{var t=e.i(788264);e.s(["f",0,function(e){let r={id:e.id,name:e.name,kind:e.kind,account:e.account};if("supabase_project"===e.kind)return{...r,region:(0,t.k)(t.B,e.data).region??null,ident:`ref ${e.externalId}`};if("neon_project"===e.kind){let n=(0,t.k)(t.s,e.data),a=n.branches?.find(e=>e.isDefault)?.id,i=n.endpoints?.find(e=>e.branchId===a)??n.endpoints?.[0];return{...r,region:n.region??null,ident:i?`${i.id} \xb7 project ${e.externalId}`:`project ${e.externalId}`}}if("turso_database"===e.kind){let n=(0,t.k)(t.N,e.data);return{...r,region:n.primaryRegion??null,ident:n.org?`org ${n.org}`:null}}return"upstash_redis"===e.kind?{...r,region:(0,t.k)(t.e,e.data).region??null,ident:`id ${e.externalId}`}:"d1_database"===e.kind?{...r,region:null,ident:`id ${e.externalId}`}:{...r,region:null,ident:`project ${e.externalId}`}}])},483324,e=>{let t=/^[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}$/,r=/^watchpost\/deps-[0-9a-f]{8}$/,n=/^(?:[A-Za-z0-9._-]+\/){0,4}package-lock\.json$/,a=e=>"string"==typeof e&&t.test(e)&&!e.includes("..");e.s(["h",0,"deps.lockfileActions","w",0,6e5,"C",0,function(e){let t=e.lockfilePath??"package-lock.json";return!a(e.repo)||!r.test(e.branch)||!n.test(t)||t.includes("..")||!Number.isInteger(e.prNumber)||e.prNumber<1?null:{repo:e.repo,branch:e.branch,lockfile:t,pr:e.prNumber}},"g",0,function(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e.repo:null;return{repo:a(t)?t:null}}])},79068,e=>{var t=e.i(663948),r=e.i(461315);let n=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function a(e,r){let a=n.exec(e.trim()),i=n.exec(r.trim());return!!a&&!!i&&a[1]===i[1]&&("0"!==a[1]||a[2]===i[2])&&(0,t.f)(r,e)>=0}let i=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,o=e=>i.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,r){if(!e.length)return{ok:!1,why:"nothing"};let n=e.filter(e=>r.includes(e.severity)&&!("moderate"===e.severity&&e.dev));if(!n.length)return{ok:!1,why:"severity"};for(let e of n){let r=t.get(e.package);if(!r||!a(r,e.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:n}},"m",0,function(e,n){if(!n)return{deps:e,stale:[]};let a=[...Object.entries(n.dependencies).map(([e,t])=>[e,t,!1]),...Object.entries(n.optionalDependencies).map(([e,t])=>[e,t,!1]),...Object.entries(n.devDependencies).map(([e,t])=>[e,t,!0])],i=[...e],o=[];for(let[e,n,s]of a){let a=(0,r.Y)(n);if(!a||!(0,r.C)(a))continue;let l=i.filter(t=>t.name===e);!l.length||l.some(e=>(0,t.f)(e.version,a)>=0)||((i=i.filter(t=>t.name!==e)).push({name:e,version:a,dev:l.every(e=>e.dev)&&s}),o.push(e))}return{deps:i,stale:o}},"D",0,function(e){let r=new Map;for(let n of e){if(!n.direct)continue;let e=r.get(n.package);(!e||0>(0,t.f)(n.installedVersion,e))&&r.set(n.package,n.installedVersion)}return r},"U",0,function(e,t,r=null){for(let n of t){if(o(n.title)!==r)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"}(n);if("all"===t||e.some(e=>t.includes(e)))return n}return null},"J",0,a])},736337,e=>{var t=e.i(958948);function r(e,r){return"string"==typeof e&&e!==r&&(0,t.c)(e)?e:null}let n=/^[0-9a-f]{7,40}$/i;function a(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let r="string"==typeof e.ref&&(0,t.c)(e.ref)?e.ref:null;if("string"==typeof e.ref&&!r)return null;let a="string"==typeof e.sha&&n.test(e.sha)?e.sha:null,i="string"==typeof e.at&&Number.isFinite(Date.parse(e.at))?e.at:null,o="string"==typeof e.id&&/^[A-Za-z0-9_-]{1,80}$/.test(e.id)?e.id:null,s={...a?{sha:a}:{},...i?{at:i}:{},...o?{id:o}:{}};return"git"===e.kind&&r?{kind:"git",ref:r,...s}:"cli"===e.kind?{kind:"cli",...r?{ref:r}:{},...s}:null}function i(e){let t=a(e?.productionSource);return t?.kind==="git"?t.ref:e?.productionBranch}e.s(["u",0,6e5,"a",0,function(e,r){let n=a(e?.productionSource),i=[];for(let a of[n?.kind==="git"?n.ref:null,e?.productionBranch,r])if(!("string"!=typeof a||!(0,t.c)(a)||i.includes(a))&&(i.push(a),a===r))break;return i},"q",0,function(e,n){let i=a(e?.productionSource);return i?.kind==="git"?i.ref:r(e?.productionBranch,n)??n??("string"==typeof e?.productionBranch&&(0,t.c)(e.productionBranch)?e.productionBranch:null)},"K",0,function(e){let t=a(e?.productionSource);return t?{productionSource:t}:{}},"i",0,r,"B",0,function(e,t,r){let n=a(e);if(!n)return null;let i=t??"a stale branch";return!n.at||r.getTime()-Date.parse(n.at)>18e5?`Watchbell can't confirm what production is built from (no reading in the last 30 minutes). Merging this PR could deploy ${i} to production and replace what is live.`:"cli"===n.kind?`Production was deployed from the CLI${t?`, not built from ${t}`:""}. Merging this PR would deploy ${i} to production and replace what is live.`:t&&n.ref!==t?`Production was built from ${n.ref}, not ${t}. Merging this PR would deploy ${t} to production and replace what is live.`:null},"s",0,function(e){let r=e.branch&&(0,t.c)(e.branch)?e.branch:null,a=e.sha&&n.test(e.sha)?e.sha:null;return"cli"===e.source||!0===e.gitDirty||"cli"===e.branchFrom&&"git"!==e.source?{kind:"cli",...r?{ref:r}:{},...r&&a?{sha:a}:{}}:r?{kind:"git",ref:r,...a?{sha:a}:{}}:null},"O",0,a,"v",0,(e,t)=>(e?.kind??null)===(t?.kind??null)&&(e?.ref??null)===(t?.ref??null)&&(e?.sha??null)===(t?.sha??null)&&(e?.id??null)===(t?.id??null),"V",0,i,"w",0,function(e){let r=i(e),n=e?.productionBranch;return"string"==typeof n&&n!==r&&(0,t.c)(n)?n:null},"y",0,function(e,r,n=null){if(!e||"br"===n)return null;let a=/^br:([^:]+):/.exec(e);return a?(0,t.c)(a[1])?a[1]:null:r}])},821342,e=>{var t=e.i(663948),r=e.i(461315),n=e.i(547963);let a=["dependencies","devDependencies","optionalDependencies"],i="watchpost/deps-",o=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),s=e=>{let t=e.filter(e=>!e.companionOf);return t.length?t:e},l={npm:"npm install",pnpm:"pnpm install",yarn:"yarn install",bun:"bun install","package-json":"npm install"};e.s(["M",0,function(e,t){let r;try{r=JSON.parse(e)}catch{return null}if(!o(r))return null;for(let e of t){let t=r[e.group];if(!o(t)||t[e.package]!==e.from)return null;t[e.package]=e.to}let n=/^[{[]\r?\n([ \t]+)\S/.exec(e),a=n?n[1]:" ",i=e.includes("\r\n")?"\r\n":"\n",s=JSON.stringify(r,null,a);return"\r\n"===i&&(s=s.replace(/\n/g,"\r\n")),/\r?\n$/.test(e)?s+i:s},"U",0,function(e,t=null){let r=e.map(e=>`${e.package}@${e.to}`).sort().join(",");return`${i}${function(e){let t=0x811c9dc5;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,0x1000193)>>>0;return t.toString(16).padStart(8,"0")}(t?`${t}|${r}`:r)}`},"G",0,function(e){let t=s(e);return 1===t.length?`chore(deps): update ${t[0].package} to ${t[0].fixed} (security fix)`:`chore(deps): update ${t.length} packages for security fixes`},"c",0,(e,t)=>e.startsWith(i)&&/^watchpost\/deps-[0-9a-f]{8}$/.test(e)&&e!==t,"k",0,function(e,n){let i;try{i=JSON.parse(e)}catch{return null}if(!o(i))return null;let s=[];for(let e of n)if((0,r.L)(e.package)&&(0,r.C)(e.to))for(let n of a){let a=i[n];if(!o(a)||"string"!=typeof a[e.package])continue;let l=a[e.package],u=(0,r.Y)(l),d=function(e,t){let n=/^\s*(\^|~|>=|=)?\s*v?\d+(?:\.(?:\d+|x|\*))?(?:\.(?:\d+|x|\*))?(?:-[0-9A-Za-z.-]+)?\s*$/.exec(e);return n&&(0,r.C)(t)?`${n[1]??""}${t}`:null}(l,e.to);!u||!d||(0,t.f)(u,e.to)>=0||s.push({package:e.package,group:n,from:l,to:d,fixed:e.to,vulnIds:e.vulnIds,cves:e.cves,...e.companionOf?{companionOf:e.companionOf}:{}})}return s},"y",0,function(e,t,r=!1,a=null){let i=l[t??"npm"]??"npm install",o=`run \`${i}\`${a?` in \`${a}\``:""}`,s=e.filter(e=>!e.companionOf),u=e.filter(e=>e.companionOf),d=s.map(e=>{let t=[...e.cves,...e.vulnIds.filter(t=>!e.cves.includes(t))].slice(0,4).map(e=>`[${e}](https://osv.dev/vulnerability/${encodeURIComponent(e)})`).join(", ");return`| \`${e.package}\` | \`${e.from}\` | \`${e.to}\` | ${t||"-"} |`});return[r?"This PR was opened **automatically** by Watchbell (Automatic security fixes). Watchbell merges it itself when CI is green, the Vercel preview is READY and passes the smoke test, and auto-rollback is on; if anything fails, the PR stays open for you to check.":n.J.prApproved,"","These packages have known vulnerabilities (source: OSV.dev / GitHub Advisory) and a fixed version exists:","","| Package | Current version | New version | Advisory |","| --- | --- | --- | --- |",...d,"",...u.map(e=>`Updated to match ${e.companionOf} (no advisory of its own): \`${e.package}\` \`${e.from}\` → \`${e.to}\`.`),...u.length?[""]:[],"### Important: the lockfile is not updated","",r?`Watchbell only changes \`package.json\`; it can't regenerate the lockfile on the server. Vercel installs the new version at build time, so production is safe after the merge. Afterwards ${o} on the main branch and commit the lockfile to bring it up to date.`:`Watchbell only changes \`package.json\`; it can't regenerate the lockfile on the server. Before merging, check out this branch, ${o}, then commit the changed lockfile. Then make sure the build and tests still pass.`,"","Vulnerable packages that are only installed through other packages (transitive) are not changed here; check with `npm audit` after installing.","","_Nothing is pushed to the main branch: all changes are on this PR branch._"].join("\n")},"f",0,function(e,t=null){let r=s(e),n=t?` in ${t}`:"",a=1===r.length?`Watchbell: update ${r[0].package} to ${r[0].fixed}${n} (security fix)`:`Watchbell: update ${r.length} vulnerable packages${n} (${r.slice(0,2).map(e=>e.package).join(", ")}${r.length>2?", …":""})`;return a.length>200?`${a.slice(0,199)}…`:a}])},461315,e=>{let t=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,r=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,n=e=>e.length<=214&&t.test(e),a=e=>e.length<=100&&r.test(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function o(e){let t=new Map;for(let r of e){if(!n(r.name)||!a(r.version))continue;let e=`${r.name}@${r.version}`,i=t.get(e);if(i?i.dev=i.dev&&r.dev:t.set(e,{...r}),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 s(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=>i(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 r=e=>e&&/^\d+$/.test(e)?e:"0";return`${t[1]}.${r(t[2])}.${r(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=[],r=(e,r)=>{for(let[n,a]of Object.entries(e)){let e=c(a);e&&t.push({name:n,version:e,dev:r})}};return r(e.dependencies,!1),r(e.optionalDependencies,!1),r(e.devDependencies,!0),o(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,n,"C",0,a,"Y",0,c,"D",0,function(e,t){switch(e){case"npm":let r=s(t);if(!i(r))return null;let a=[];if(i(r.packages)){for(let[e,t]of Object.entries(r.packages)){if(!e||!i(t)||!0===t.link||"string"!=typeof t.version)continue;let r="string"==typeof t.name&&e.includes("node_modules/")?t.name:l(e);r&&a.push({name:r,version:t.version,dev:!0===t.dev})}return o(a)}if(i(r.dependencies)){let e=(t,r)=>{if(!(r>40))for(let[n,o]of Object.entries(t))i(o)&&("string"==typeof o.version&&a.push({name:n,version:o.version,dev:!0===o.dev}),i(o.dependencies)&&e(o.dependencies,r+1))};return e(r.dependencies,0),o(a)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let r=[],a=!1,i=null;for(let e of t){if(/^\S/.test(e)){a=/^packages:\s*$/.test(e),i=null;continue}if(!a)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=u(e).replace(/^\//,""),r=t.indexOf("(");r>0&&(t=t.slice(0,r));let a=t.lastIndexOf("@");if(a>0&&!t.slice(a+1).includes("/")&&n(t.slice(0,a)))return{name:t.slice(0,a),version:t.slice(a+1).split("_")[0]};let i=t.lastIndexOf("/");return i<=0?null:{name:t.slice(0,i),version:t.slice(i+1).split("_")[0]}}(t[1]);(i=e?{...e,dev:!1}:null)&&r.push(i);continue}i&&/^ {4}dev: true\s*$/.test(e)&&(i.dev=!0)}return o(r)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),r=[],n=null,a=!1;for(let e of t){if(!e.trim()||e.trimStart().startsWith("#"))continue;if(/^\S/.test(e)){let t=e.replace(/:\s*$/,"");n=t.startsWith("__metadata")||/@(?:workspace|link|portal|file):/.test(t)?null:function(e){let t=u(e),r=t.indexOf("@",+!!t.startsWith("@"));return r>0?t.slice(0,r):null}(t.split(/,\s*/)[0]),a=!0;continue}let t=/^ {2}version:?\s+"?([^"\s]+)"?\s*$/.exec(e);t&&n&&(r.push({name:n,version:t[1],dev:!1}),n=null)}return a?o(r):null}(t);case"bun":let d=s(t.replace(/,(\s*[}\]])/g,"$1"));if(!i(d)||!i(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],r=t.lastIndexOf("@");r<=0||c.push({name:t.slice(0,r),version:t.slice(r+1),dev:!1})}return o(c)}},"b",0,function(e){let t=s(e);return i(t)?{dependencies:d(t.dependencies),devDependencies:d(t.devDependencies),optionalDependencies:d(t.optionalDependencies)}:null}])},618664,52535,e=>{var t=e.i(122603),r=e.i(631065),n=e.i(663948);let a=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),o=e=>Array.isArray(e)?e:[],s=e=>"string"==typeof e&&e?e:null,l=e=>i(e.package)&&"next"===e.package.name&&"npm"===e.package.ecosystem,u="OSV.dev sent an answer we couldn't read";async function d(e,f={}){let m=f.timeoutMs??1e4,h=f.maxBytes??2097152,g=AbortSignal.timeout(m),y=(0,t.X)(g),b=`OSV.dev didn't answer within ${p(m)}`,w=[],v=null;for(let r=0;r<3;r++){var k;let r,n;try{r=await (f.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,...v?{page_token:v}:{}}),redirect:"error",cache:"no-store",signal:g})}catch(e){return{ok:!1,error:c(e)?b:"Couldn't reach OSV.dev"}}if(!r.ok)return await r.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${r.status}`};try{let{bytes:e,truncated:a}=await (0,t.z)(r,h,y);if(a)return{ok:!1,error:"OSV.dev sent too large an answer"};n=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:c(e)?b:u}}let a=i(k=n)?void 0===k.vulns?[]:Array.isArray(k.vulns)?k.vulns:null:null;if(null===a)return{ok:!1,error:u};if(w.push(...a),!(v=i(n)?s(n.next_page_token):null))break}let _=function(e,t){let u=[],d=0;for(let r of e){if(!i(r))continue;let e=s(r.id);e&&(d++,r.withdrawn||u.push({id:e.slice(0,64),cve:o(r.aliases).map(s).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(s(r.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=i(e.database_specific)?s(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":a.includes(t??"")?t:"UNKNOWN"}(r),fixed:function(e,t){let r=null;for(let a of o(e))if(i(a)&&l(a))for(let e of o(a.ranges)){if(!i(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let a=null;for(let l of o(e.events)){if(!i(l))continue;let e=s(l.introduced),o=s(l.fixed);e?a=e:o&&null!==a?((0,n.f)(t,a)>=0&&0>(0,n.f)(t,o)&&(null===r||0>(0,n.f)(o,r))&&(r=o),a=null):(s(l.last_affected)||s(l.limit))&&(a=null)}}return r}(r.affected,t)}))}return e.length>0&&0===d?null:(0,r.I)(u).slice(0,50)}(w,e);return null===_?{ok:!1,error:u}:{ok:!0,findings:_}}let c=e=>e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name),p=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`;e.s(["y",0,d,"t",0,c],52535);var f=e.i(382966);let m="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function h(e,t,r,n){let a=n.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let i=AbortSignal.timeout(a);return y(e,{method:"POST",headers:{"content-type":"application/json","user-agent":m},body:JSON.stringify(t),signal:i},r,i,n)}async function g(e,t,r){let n=r.deadline-Date.now();if(n<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(n,8e3));return y(e,{method:"GET",headers:{"user-agent":m},signal:a},t,a,r)}async function y(e,r,n,a,i){let o;try{o=await (i.fetch??fetch)(e,{...r,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:c(e)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!o.ok)return await o.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${o.status}`};try{let{bytes:e,truncated:r}=await (0,t.z)(o,n,(0,t.X)(a));if(r)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:c(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function b(e,t){let r=[];for(let n of(0,f.f)(e)){let e=await h(f.n,n,4194304,t);if(!e.ok)return e;let a=(0,f.j)(e.body,n.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 w(e,t){let r=[...new Set(e)].filter(f.G);if(r.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${r.length})`};let n=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(`${f.W}${encodeURIComponent(e)}`,1048576,t),i=r.ok?(0,f.O)(r.body):null;i?n.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:n}}e.s(["J",0,w,"K",0,b],618664)},382966,e=>{var t=e.i(663948);let r=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),n=e=>Array.isArray(e)?e:[],a=e=>"string"==typeof e&&e?e:null,i=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),o={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"},s=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",l=(e,t)=>r(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 r=0;r<e.length;r+=1e3)t.push({queries:e.slice(r,r+1e3).map(e=>({package:{name:e.name,ecosystem:"npm"},version:e.version}))});return t},"i",0,function(e,i,o,s=new Map){let u=[];return e.forEach((e,d)=>{for(let c of i[d]??[]){let i=s.get(`${e.name}@${e.version}|${c}`);if(i){u.push({...i,dev:e.dev});continue}let d=o.get(c);d&&!d.withdrawn&&u.push({package:e.name,installedVersion:e.version,vulnId:d.id,aliases:d.aliases,severity:d.severity,fixedVersion:function(e,i,o){let s=null;for(let u of n(e))if(r(u)&&l(u,i))for(let e of n(u.ranges)){if(!r(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let i=null;for(let l of n(e.events)){if(!r(l))continue;let e=a(l.introduced),n=a(l.fixed);e?i=e:n&&null!==i?((0,t.f)(o,i)>=0&&0>(0,t.f)(o,n)&&(null===s||0>(0,t.f)(n,s))&&(s=n),i=null):(a(l.last_affected)||a(l.limit))&&(i=null)}}return s}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),u},"G",0,i,"O",0,function(e){if(!r(e))return null;let t=a(e.id);return t&&i(t)?{id:t,aliases:[...new Set(n(e.aliases).map(a).filter(e=>!!e&&i(e)))].slice(0,20),summary:(a(e.summary)??a(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=r(e.database_specific)?a(e.database_specific.severity)?.toUpperCase():null;if(t&&o[t])return o[t];for(let t of n(e.severity)){if(!r(t)||"CVSS_V3"!==t.type&&"CVSS_V31"!==t.type)continue;let e=a(t.score)?function(e){let t,r=/^CVSS:3\.[01]\/(.+)$/.exec(e.trim());if(!r)return null;let n={};for(let e of r[1].split("/")){let[t,r]=e.split(":");t&&r&&(n[t]=r)}let a={N:.85,A:.62,L:.55,P:.2},i={L:.77,H:.44},o={N:.85,R:.62},s={H:.56,L:.22,N:0},l="C"===n.S,u=l?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![a[n.AV],i[n.AC],u[n.PR],o[n.UI],s[n.C],s[n.I],s[n.A]].every(e=>"number"==typeof e)||"U"!==n.S&&"C"!==n.S)return null;let d=1-(1-s[n.C])*(1-s[n.I])*(1-s[n.A]),c=l?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*a[n.AV]*i[n.AC]*u[n.PR]*o[n.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}(a(t.score)):null;if(null!==e)return s(e)}return(a(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!a(e.withdrawn),affected:e.affected}:null},"j",0,function(e,t){return r(e)&&Array.isArray(e.results)&&e.results.length===t?e.results.map(e=>r(e)?n(e.vulns).map(e=>r(e)?a(e.id):null).filter(e=>!!e&&i(e)):[]):null}])},819263,e=>{var t=e.i(663948),r=e.i(461315),n=e.i(382966);let a=["critical","high","moderate","low","unknown"],i=e=>a.indexOf(e),o=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),s=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&&(i(e.severity)<=i("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),r=[...t].sort((e,t)=>i(e.severity)-i(t.severity)||(e.package<t.package?-1:1)),n=[];for(let e of r){let t=`${e.package} ${e.installedVersion}${e.fixedVersion?` → ${e.fixedVersion}`:" (no fix yet)"}`;n.includes(t)||n.push(t)}let a=new Set(t.map(e=>e.package)).size,o=function(e){let t={critical:0,high:0,moderate:0,low:0,unknown:0};for(let r of e)t[r.severity]++;return t}(t),s=["critical","high","moderate","low","unknown"].filter(e=>o[e]>0).map(e=>`${o[e]} ${e}`).join(", "),l=`${a} vulnerable package${1===a?"":"s"} (${s}): ${n.slice(0,4).join(", ")}${n.length>4?`, +${n.length-4} more`:""}.`;return l.length>300?`${l.slice(0,299)}…`:l},"z",0,function(e,t,r){let n=new Set;return e.forEach((e,a)=>{for(let i of t[a]??[])r.has(`${e.name}@${e.version}|${i}`)||n.add(i)}),[...n]},"A",0,function(e,t){let r=new Map;if(t)return r;for(let t of e)t.fixedVersion&&"dependabot"!==t.source&&r.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 r},"R",0,function(e,r,n){let a=[...e];for(let e of r)if(!a.some(t=>t.package===e.package&&(t.vulnId===e.ghsaId||t.aliases.includes(e.ghsaId)||null!==e.cveId&&t.aliases.includes(e.cveId)))&&e.range)for(let r of n)r.name===e.package&&function(e,r){let n=r.split(",").map(e=>e.trim()).filter(Boolean);return!!n.length&&n.every(r=>{let n=/^(<=|>=|<|>|=)\s*v?(\S+)$/.exec(r);if(!n)return!1;let a=(0,t.f)(e,n[2]);return"<"===n[1]?a<0:"<="===n[1]?a<=0:">"===n[1]?a>0:">="===n[1]?a>=0:0===a})}(r.version,e.range)&&a.push({package:e.package,installedVersion:r.version,vulnId:e.ghsaId,aliases:e.cveId?[e.cveId]:[],severity:e.severity,fixedVersion:e.fixed,summary:e.summary,dev:e.dev||r.dev,source:"dependabot"});return a},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let a of e){if(!o(a)||"open"!==a.state||!o(a.dependency)||!o(a.security_advisory))continue;let e=o(a.dependency.package)&&"npm"===a.dependency.package.ecosystem?s(a.dependency.package.name):null,i=s(a.security_advisory.ghsa_id);if(!e||!(0,r.L)(e)||!i||!(0,n.G)(i))continue;let u=o(a.security_vulnerability)?a.security_vulnerability:{},d=o(u.first_patched_version)?s(u.first_patched_version.identifier):null,c=s(a.security_advisory.cve_id);t.push({package:e,ghsaId:i,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(s(a.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,n.h),severity:l[(s(u.severity)??s(a.security_advisory.severity)??"").toLowerCase()]??"unknown",range:s(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===a.dependency.scope})}return t},"h",0,function(e,t,r){let a=new Map(e.map(e=>[u(e),e])),i=new Set,o={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(i.has(t))continue;i.add(t);let s={...e,aliases:e.aliases.slice(0,n.S),summary:e.summary.slice(0,n.h),direct:r.has(e.package)},l=a.get(t);l?o.update.push({id:l.id,severity:s.severity,fixedVersion:s.fixedVersion,summary:s.summary,aliases:s.aliases,dev:s.dev,direct:s.direct}):o.insert.push(s)}return o.resolve=e.filter(e=>!i.has(u(e))).map(e=>e.id),o},"U",0,function(e,t,r,n=!1){return!!n||!e||!e.scannedAt||(e.error?r.getTime()-e.scannedAt.getTime()>=72e6||e.lockfileSha!==t:e.lockfileSha!==t||!e.queriedAt||r.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 r=new Map,n=new Set;for(let a of e){if(!a.direct||!a.fixedVersion||0>=(0,t.f)(a.fixedVersion,a.installedVersion))continue;!0!==a.dev&&n.add(a.package);let e=r.get(a.package)??{package:a.package,to:a.fixedVersion,vulnIds:[],cves:[],severity:a.severity};for(let r of((0,t.f)(a.fixedVersion,e.to)>0&&(e.to=a.fixedVersion),e.vulnIds.includes(a.vulnId)||e.vulnIds.push(a.vulnId),a.aliases))/^CVE-/.test(r)&&!e.cves.includes(r)&&e.cves.push(r);i(a.severity)<i(e.severity)&&(e.severity=a.severity),r.set(a.package,e)}for(let e of r.values())n.has(e.package)||(e.dev=!0);return[...r.values()].sort((e,t)=>i(e.severity)-i(t.severity)||(e.package<t.package?-1:1))}])},964964,e=>{let t={checks:"waiting for CI",preview:"waiting for preview",smoke:"smoke test",merging:"merging…",merged:"merged ✅","ready-manual":"ready to merge (manual)",failed:"needs a look ⚠️",timeout:"needs a look ⚠️",closed:"closed"},r=new Set(["success","neutral","skipped"]),n=e=>"completed"!==e.status?"pending":r.has(e.conclusion??"")?"success":"failure",a={name:"watchbell[bot]",email:"watchbell-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchbell)"},i={name:"watchpost[bot]",email:"watchpost-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchpost)"},o=e=>[a,i].some(t=>e.name===t.name&&e.email.toLowerCase()===t.email&&e.message.trim()===t.message),s=/^[\^~]?[0-9][0-9A-Za-z.+-]*$/,l=e=>Array.isArray(e)?e.map(l):e&&"object"==typeof e?Object.fromEntries(Object.keys(e).sort().map(t=>[t,l(e[t])])):e,u=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,d=/^sha512-[A-Za-z0-9+/]{86}==$/,c="(?:@[a-z0-9][a-z0-9._~-]*/)?[a-z0-9][a-z0-9._~-]*",p=RegExp(`^(?:[A-Za-z0-9_-][A-Za-z0-9._-]*/)*?node_modules/${c}(?:/node_modules/${c})*$`,"i"),f=new Set(["dev","optional","devOptional","peer"]),m=e=>!!e&&"object"==typeof e&&!Array.isArray(e),h=e=>e.slice(e.lastIndexOf("node_modules/")+13),g=(e,t,r)=>`${e}/${t}/-/${t.split("/").pop()}-${r}.tgz`,y=(e,t)=>JSON.stringify(l(e))===JSON.stringify(l(t)),b=e=>Object.fromEntries(Object.entries(e).filter(([e])=>!f.has(e))),w=e=>{try{let t=JSON.parse(e);return m(t)&&m(t.packages)?t:null}catch{return null}};e.s(["y",0,20,"X",0,["checks","preview","smoke","merging"],"w",0,15e3,"R",0,27e5,"j",0,function(e){let t=(e.checkRuns??e.actionRuns??[]).map(n);return(e.combined&&e.combined.total>0&&t.push("success"===e.combined.state?"success":"pending"===e.combined.state?"pending":"failure"),t.includes("failure"))?"failure":t.includes("pending")?"pending":"success"},"L",0,function(e){if(!e.length||e.some(e=>e.authWall))return null;let t=e.find(e=>null===e.status||e.status<200||e.status>399);return t?{mode:"http",result:"fail",reason:null===t.status?`${t.path} didn't answer within 15 seconds`:`${t.path} answered ${t.status}`}:{mode:"http",result:"pass",reason:null}},"S",0,function(e,t,r){return(401===e||403===e)&&(/vercel\.com\/(sso|login)|Authentication Required|_vercel_sso|vercel-authentication/i.test(t)||/_vercel_sso/i.test(r.get("set-cookie")??"")||"vercel"===(r.get("server")??"").toLowerCase())},"T",0,function(e,t,r){if([e,t].some(e=>null!==e&&(e=>{if(e.length>0x1900000)return!0;if(3*e.length<=0x1900000)return!1;let t=0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);n<128?t+=1:n<2048?t+=2:n>=55296&&n<56320&&(64512&e.charCodeAt(r+1))==56320?(t+=4,r++):t+=3}return t>0x1900000})(e)))return`lockfile too large to check (over 25 MB): ${r}`.slice(0,150);try{return function(e,t,r){let n=e=>`unexpected lockfile change ${e}`.slice(0,150),a=null===t?null:w(t),i=null===e?{packages:{}}:w(e);if(!a||!i)return n(r);if(2!==a.lockfileVersion&&3!==a.lockfileVersion||null!==e&&a.lockfileVersion!==i.lockfileVersion)return n("lockfileVersion");let o=new Set;for(let[e,t]of Object.entries(i.packages)){if(!p.test(e)||!m(t)||"string"!=typeof t.resolved||"string"!=typeof t.version)continue;let r=g("","string"==typeof t.name?t.name:h(e),t.version);t.resolved.startsWith("https://")&&t.resolved.endsWith(r)&&o.add(t.resolved.slice(0,-r.length))}for(let[e,t]of(o.size||o.add("https://registry.npmjs.org"),Object.entries(a.packages))){let a=Object.hasOwn(i.packages,e)?i.packages[e]:void 0;if(void 0!==a&&y(a,t))continue;let s=m(a)?a:null;if(""===e||!e.includes("node_modules/")){let a=""===e?m(t)&&"string"==typeof t.name?t.name:r:e;if(!m(t)||""!==e&&!s||"resolved"in t||"link"in t)return n(a);continue}if(!p.test(e)||!m(t))return n(p.test(e)?h(e):e);let l=h(e);if(void 0!==t.name&&t.name!==l&&(!s||s.name!==t.name))return n(l);let c="string"==typeof t.name?t.name:l,f=t.version;if(void 0!==t.link||"string"!=typeof f||!u.test(f)||"string"!=typeof t.integrity||!d.test(t.integrity)||"string"!=typeof t.resolved||![...o].some(e=>t.resolved===g(e,c,f))||s&&s.version===f&&!y(b(s),b(t)))return n(l)}return null}(e,t,r)}catch{return`unexpected lockfile change ${r} (couldn't be checked)`.slice(0,150)}},"H",0,e=>!!e.lockfileRequired&&!!e.lockfile&&!e.files.some(t=>t.filename===e.lockfile),"n",0,function(e,t,r){return null!==r&&r>0?{mode:"logs",result:"fail",reason:`${r} errors in the preview logs`}:t.getTime()-e.getTime()<18e4||null===r?{mode:"logs",result:"wait",reason:null}:{mode:"logs",result:"pass",reason:null}},"C",0,function(e,t,r){let n,a;try{n=JSON.parse(e),a=JSON.parse(t)}catch{return"unexpected change: package.json isn't valid JSON"}if(!n||!a||"object"!=typeof n||"object"!=typeof a)return"unexpected change: package.json isn't an object";let i=e=>{let t=structuredClone(e);for(let e of["dependencies","devDependencies"]){let n=t[e];if(n&&"object"==typeof n)for(let e of r)delete n[e]}return t};if(JSON.stringify(l(i(n)))!==JSON.stringify(l(i(a))))return"unexpected change in package.json beyond the bumped versions";for(let e of["dependencies","devDependencies"]){let t=n[e]??{},i=a[e]??{};for(let e of r){if(e in t!=e in i)return`unexpected change in package.json: ${e} added or removed`;if(e in i&&i[e]!==t[e]&&("string"!=typeof i[e]||!s.test(i[e])))return`unexpected change in package.json: ${e} isn't a plain version`}}return null},"E",0,function(e){let t=["/"];for(let r of e){let e;try{e=new URL(r).pathname||"/"}catch{continue}!t.includes(e)&&t.length<4&&t.push(e)}return t},"m",0,(e,r,n)=>{let a=`PR #${e}: ${t[r]}${n?` — ${n}`:""}`;return a.length>200?`${a.slice(0,199)}…`:a},"k",0,function(e){let t=new Set([e.manifest,...e.lockfile?[e.lockfile]:[]]);for(let r of e.files)for(let e of[r.filename,r.previous])if(e&&!t.has(e))return`unexpected change in ${e}`.slice(0,150);if(!e.files.some(t=>t.filename===e.manifest))return`unexpected change: ${e.manifest} isn't changed`.slice(0,150);if(e.manifestProblem)return e.manifestProblem.slice(0,150);if(e.lockfileProblem)return e.lockfileProblem.slice(0,150);if(!e.tokenLogin||!e.commits.length||e.commits.length>20)return"couldn't confirm who wrote the PR's commits";if(e.headSha&&e.commits[e.commits.length-1].sha!==e.headSha)return"the PR's head moved while it was checked";for(let t of e.commits){if(null!==t.login&&t.login.toLowerCase()===e.tokenLogin.toLowerCase())continue;let r=t.sha.slice(0,7);if(!o(t)||!t.files||!e.lockfile)return`unexpected commit ${r} by ${t.login??t.name}`.slice(0,150);let n=t.files.find(t=>t!==e.lockfile);if(n)return`unexpected change in ${n} by commit ${r}`.slice(0,150)}return null},"f",0,function(e,t){let r=e.getTime();return(null===t||!(r-t<1e5))&&(Math.floor(r/6e4)%2==0||null!==t&&r-t>=24e4)},"M",0,function(e){if(e.pr.merged)return{kind:"done",stage:"merged"};if("closed"===e.pr.state)return{kind:"done",stage:"closed"};if(void 0!==e.pr.base&&void 0!==e.recordedBase&&e.pr.base!==e.recordedBase)return{kind:"stop",stage:"failed",reason:`the PR's base changed to ${e.pr.base}`};if(e.pr.headSha!==e.recordedSha)return{kind:"wait",stage:"checks",reason:"new commit on the PR branch, checking again",resetSha:e.pr.headSha};let t=e.now.getTime()-e.openedAt.getTime()>27e5;return"failure"===e.checks?{kind:"stop",stage:"failed",reason:"CI failed"}:!1===e.pr.mergeable?{kind:"stop",stage:"failed",reason:"conflicts with the main branch"}:"error"===e.preview.state?{kind:"stop",stage:"failed",reason:"Vercel preview failed"}:"canceled"===e.preview.state?{kind:"stop",stage:"failed",reason:"Vercel canceled the preview (an Ignored Build Step that skips previews does this), so the update wasn't smoke-tested; check it and merge by hand"}:"pending"===e.checks||null===e.pr.mergeable?t?{kind:"stop",stage:"timeout",reason:"CI not finished within 45 minutes"}:{kind:"wait",stage:"checks",reason:null}:"ready"!==e.preview.state?t?{kind:"stop",stage:"timeout",reason:"preview not ready within 45 minutes"}:{kind:"wait",stage:"preview",reason:null}:e.smoke&&"wait"!==e.smoke.result?"fail"===e.smoke.result?{kind:"stop",stage:"failed",reason:`preview smoke test failed: ${e.smoke.reason??"?"}`}:e.autoRollbackOn?{kind:"merge"}:{kind:"stop",stage:"ready-manual",reason:"PR is ready to merge, but auto-rollback is off; merge it manually"}:t?{kind:"stop",stage:"timeout",reason:"preview smoke test not finished within 45 minutes"}:{kind:"wait",stage:"smoke",reason:null}}])},978196,e=>{var t=e.i(198552);let r=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0).map(e=>e.toLowerCase()):[];function n(e){let t="string"==typeof e?.primaryDomain&&e.primaryDomain?e.primaryDomain.toLowerCase():null;return t?{primaryDomain:t,domains:r(e?.domains),pastDomains:r(e?.pastDomains)}:null}function a(e){try{let t=new URL(e);return"https:"===t.protocol||"http:"===t.protocol?t.hostname.toLowerCase():null}catch{return null}}let i=e=>/ · DEPLOYMENT_NOT_FOUND$/.test(e.lastError??"");function o(e,t,r=[],s={}){let l=a(e),u=n(t.meta);return!(!l||!u||function(e,t,r=[]){let a=n(t.meta);if(!a)return!0;let i=e.toLowerCase();if(i===a.primaryDomain||a.domains.includes(i))return!0;let o=t.name.toLowerCase();return!!(!(i.endsWith(".vercel.app")&&r.some(e=>{let t=e.name.toLowerCase();return t!==o&&t.startsWith(`${o}-`)&&(i===`${t}.vercel.app`||i.startsWith(`${t}-`))}))&&(i===`${o}.vercel.app`||i.endsWith(".vercel.app")&&i.startsWith(`${o}-`)))||r.some(e=>{let t=n(e.meta);return null!==t&&(t.primaryDomain===i||t.domains.includes(i))})}(l,t,r))&&(u.pastDomains.includes(l)||i(s))?{from:l,to:u.primaryDomain}:null}e.s(["Q",0,function(e,n,a=[],i){let o=[...new Set(e.map(e=>e.name.toLowerCase()))],s=new Set(o),l=[...new Set([...r(i?.pastDomains),...r(i?.domains)])].filter(e=>!s.has(e)).slice(-20);return{domains:o,primaryDomain:(0,t.n)(e,n,a).toLowerCase(),pastDomains:l}},"u",0,o,"P",0,function(e,t){let r=new Map;for(let n of e){if("heartbeat"===n.kind)continue;let e=o(n.url,{name:n.appName,meta:n.appMeta},t.filter(e=>e.id!==n.appId),{lastError:n.lastError});e&&r.set(n.id,e)}return r},"w",0,function(e,t){let r=new URL(e);if(r.protocol="https:",r.hostname=t,r.port="",r.hostname!==t.toLowerCase())throw Error("The new domain isn't a valid host name.");return r.toString()},"R",0,function(e,t){let r=new Map;for(let s of e){if("heartbeat"===s.kind||!i({lastError:s.lastError}))continue;let e=n(s.appMeta),l=a(s.url);if(!e||!l)continue;let u=r.get(s.appId)??e.pastDomains;!u.includes(l)&&o(s.url,{name:s.appName,meta:s.appMeta},t.filter(e=>e.id!==s.appId),{lastError:s.lastError})&&r.set(s.appId,[...u,l].slice(-20))}return r},"Y",0,n])},58992,e=>{var t=e.i(666680);e.s(["f",0,function(e){return(0,t.createHash)("sha256").update(e).digest("hex")}])},368230,e=>{var t=e.i(816173);let r=e=>{let t=Math.max(1,Math.floor(e/6e4));if(t<60)return`${t} min`;let r=Math.floor(t/60);return r<48?`${r} h`:`${Math.floor(r/24)} days`};e.s(["C",0,function(e,n){let a=e=>({state:"err",text:`Down \xb7 ${e}`,failStreak:t.I}),i=1e3*e.periodS,o=1e3*e.graceS;if(!e.lastPingAt)return n.getTime()-e.createdAt.getTime()<=i+o?{state:"unknown",text:"Waiting for the first ping",failStreak:0}:a("never pinged");let s=n.getTime()-e.lastPingAt.getTime();return"fail"===e.lastPingKind?a("the job reported a failure"):"start"===e.lastPingKind&&s>o?a("started but didn't finish"):s<=i?{state:"ok",text:`Up \xb7 pinged ${r(s)} ago`,failStreak:0}:s<=i+o?{state:"warn",text:`Late \xb7 last ping ${r(s)} ago`,failStreak:1}:a(`no ping for ${r(s)}`)},"i",0,function(e){let t=String(e??"").match(/(?<![0-9a-z_])hb_[0-9a-f]{32}(?![0-9a-zA-Z])/g)??[];return 1===t.length?t[0]:null}])},802641,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)])},857799,e=>{let t={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"};e.s(["H",0,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"],"N",0,e=>`/${t[e]}`,"Z",0,e=>t[e]])},765503,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 r(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}e.s(["l",0,r,"n",0,function(e){return null===e?null:r(e.split(/[?#]/)[0]||"/",512)},"h",0,function(e){return t.reduce((e,[t,r])=>e.replace(t,r),e)}])},764266,e=>{var t=e.i(728335);let r=(e,r)=>0===r?e.startsAt.getTime():(0,t.addLocalDays)(e.startsAt,7*r).getTime();function n(e,t){let n,a=t.getTime(),i=e.startsAt.getTime();if(a<i)return null;let o=(n=e.weekly?function(e,t){let n=Math.floor((t-e.startsAt.getTime())/6048e5),a=r(e,n);for(;n>0&&a>t;)a=r(e,--n);for(let i=r(e,n+1);i<=t;i=r(e,n+1))n++,a=i;return{k:n,start:a}}(e,a).start:i,{start:new Date(n),end:new Date(n+6e4*e.durationMin)});return a<o.end.getTime()?o:null}function a(e,t){return"all"===e.scope||"app"===e.scope&&e.appId===t.appId||"monitor"===e.scope&&e.monitorId===t.monitorId}e.s(["J",0,20,"x",0,function(e,t,r){let i=null;for(let o of e){let e=a(o,t)?n(o,r):null;e&&(!i||e.end>i.end)&&(i={window:o,end:e.end})}return i},"u",0,function(e,t,r,i=[]){let o=new Set,s=e.filter(e=>null!==n(e,r));for(let e of s)if("app"===e.scope&&e.appId&&o.add(e.appId),"all"===e.scope)for(let e of i)o.add(e);for(let e of t)for(let t of s)a(t,{monitorId:e.id,appId:e.appId})&&(o.add(e.id),"monitor"!==t.scope&&o.add(e.appId));return o}])},549889,e=>{var t=e.i(75064),r=e.i(492973),n=e.i(246517),a=e.i(909592),i=e.i(260417);let o=t.z.object({notAfter:r.z.string().nullable(),issuer:r.z.string().nullable(),authorized:n.z.boolean().nullable(),error:r.z.string().nullable(),checkedAt:r.z.string()}),s=t.z.object({misconfigured:n.z.boolean(),configuredBy:r.z.string().nullable(),recommendedIps:a.z.array(r.z.string()).default([]),checkedAt:r.z.string()}),l=t.z.object({expiresAt:r.z.string().nullable(),registrar:r.z.string().nullable(),error:r.z.string().nullable(),checkedAt:r.z.string()}),u=t.z.object({id:r.z.string(),type:r.z.string(),name:r.z.string(),content:r.z.string(),proxied:n.z.boolean(),ttl:i.z.number(),comment:r.z.string().nullable()}),d=t.z.object({status:r.z.string().nullable(),paused:n.z.boolean(),nameServers:a.z.array(r.z.string()),accountId:r.z.string().nullable(),checkedAt:r.z.string().nullable()}),c=t.z.object({mode:r.z.string().nullable(),error:r.z.string().nullable()}),p=t.z.object({type:r.z.string(),status:r.z.string(),hosts:a.z.array(r.z.string()),expiresOn:r.z.string().nullable()}),f=(e,t)=>{let r=e.safeParse(t);return r.success?r.data:null},m=(e,t)=>Array.isArray(t)?t.flatMap(t=>{let r=e.safeParse(t);return r.success?[r.data]:[]}):[],h=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[];e.s(["q",0,function(e){let t=e??{};return{tls:f(o,t.tls),vercel:f(s,t.vercel),rdap:f(l,t.rdap),records:m(u,t.records),recordsTruncated:!0===t.recordsTruncated,zone:f(d,t.zone),ssl:f(c,t.ssl),certs:m(p,t.certs),cfErrors:h(t.cfErrors),reasons:h(t.reasons)}},"n",0,function(e,t,r){let n=r.toISOString();return e.ok?{expiresAt:e.expiresAt,registrar:e.registrar,error:null,checkedAt:n}:{expiresAt:t?.expiresAt??null,registrar:t?.registrar??null,error:e.error,checkedAt:n}},"o",0,function(e,t,r){let n=r.toISOString();return e.ok?{notAfter:e.notAfter.toISOString(),issuer:e.issuer,authorized:e.authorized,error:null,checkedAt:n}:{notAfter:t?.notAfter??null,issuer:t?.issuer??null,authorized:null,error:e.error,checkedAt:n}}])},491370,377323,259246,e=>{var t=e.i(75064),r=e.i(542746),n=e.i(909592),a=e.i(492973),i=e.i(932378),o=e.i(691313),s=e.i(761095),l=e.i(122603),u=e.i(809816);let d=e=>e.toLowerCase().replace(/\.$/,"");function c(e){try{let t=new URL(e);return null===(0,u._)(t)&&!(0,s.isIP)(t.hostname.replace(/^[|]$/g,""))}catch{return!1}}let p=t.z.object({objectClassName:r.z.literal("domain"),events:n.z.array(t.z.object({eventAction:a.z.string(),eventDate:a.z.string()})).default([]),entities:n.z.array(t.z.object({roles:n.z.array(a.z.string()).default([]),vcardArray:i.z.unknown().optional()})).default([])});async function f(e,t,r){let n=await (0,l.K)(e,{fetch:r.fetch,lookup:r.lookup,timeoutMs:r.timeoutMs??8e3,maxBytes:524288,headers:{Accept:t},userAgent:"OpsConsole-Network/1.0 (+https://watchbell.west-solutions.web.id)"});if(!n.ok)return{ok:!1,error:"Blocked address"===n.error?"The registry's RDAP address isn't a public https address":"Couldn't reach the registry's RDAP server"};if(n.truncated)return{ok:!1,error:"The answer was too large"};if(200!==n.status)return{ok:!0,status:n.status,body:null};try{return{ok:!0,status:n.status,body:JSON.parse(n.body)}}catch{return{ok:!1,error:"The registry answered in a format the console doesn't recognise"}}}let m=t.z.object({services:n.z.array(o.z.tuple([n.z.array(a.z.string()),n.z.array(a.z.string())]))});async function h(e={}){let t=await f("https://data.iana.org/rdap/dns.json","application/json",e);if(!t.ok)return{ok:!1,error:"Couldn't read IANA's RDAP list"};if(200!==t.status)return{ok:!1,error:`IANA's RDAP list returned an error (${t.status})`};let r=m.safeParse(t.body);return r.success?{ok:!0,services:r.data.services}:{ok:!1,error:"IANA's RDAP list is in a format the console doesn't recognise"}}async function g(e,t,r={}){let n=`${t.endsWith("/")?t:`${t}/`}domain/${encodeURIComponent(d(e))}`,a=await f(n,"application/rdap+json, application/json",r);if(!a.ok)return a;if(404===a.status)return{ok:!1,error:"The registry doesn't know this domain"};if(200!==a.status)return{ok:!1,error:`The registry's RDAP server returned an error (${a.status})`};let i=function(e){let t=p.safeParse(e);if(!t.success)return null;let r=t.data.events.find(e=>"expiration"===e.eventAction),n=r?new Date(r.eventDate):null,a=t.data.entities.find(e=>e.roles.includes("registrar"));return{expiresAt:n&&!Number.isNaN(n.getTime())?n.toISOString():null,registrar:a?function(e){if(!Array.isArray(e)||!Array.isArray(e[1]))return null;let t=e[1].find(e=>Array.isArray(e)&&"fn"===e[0]);return"string"==typeof t?.[3]&&t[3]?t[3]:null}(a.vcardArray):null}}(a.body);return i?{ok:!0,...i}:{ok:!1,error:"The registry answered in a format the console doesn't recognise"}}e.s(["Y",0,h,"u",0,g,"T",0,function(e,t){let r=d(t).split(".");for(let t=0;t<r.length;t++){let n=r.slice(t).join("."),a=e.find(([e])=>e.map(d).includes(n));if(a)return a[1].find(c)??null}return null}],491370);var y=e.i(300794),b=e.i(685560);let w={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};async function v(e,t={}){let r,n=t.timeoutMs??5e3,a=e.toLowerCase().replace(/\.$/,"");if((0,s.isIP)(a)||(0,u.N)(a))return{ok:!1,error:"Blocked address"};try{r=await (t.lookup??(async e=>(await (0,y.lookup)(e,{all:!0,verbatim:!0})).map(e=>e.address)))(a)}catch{return{ok:!1,error:"The name doesn't resolve"}}if(!r.length)return{ok:!1,error:"The name doesn't resolve"};if(r.some(u.W))return{ok:!1,error:"Blocked address"};let i=t.connect??b.connect,o=r.find(e=>4===(0,s.isIP)(e))??r[0];return new Promise(e=>{let t,r=!1,s=(t,n)=>{r||(r=!0,clearTimeout(l),n?.destroy(),e(t))},l=setTimeout(()=>s({ok:!1,error:`No answer within ${Math.round(n/1e3)} s`},t),n);try{t=i({host:o,port:443,servername:a,rejectUnauthorized:!1,timeout:n,ALPNProtocols:["http/1.1"]})}catch{return s({ok:!1,error:"Couldn't connect"})}let u=t;u.on("secureConnect",()=>{let e,t,r=u.getPeerCertificate(),n=function(e){if("string"!=typeof e)return null;let t=/^([A-Z][a-z]{2})\s+(\d{1,2})\s+(\d{2}):(\d{2}):(\d{2})\s+(\d{4})\s+GMT$/.exec(e.trim());return t&&void 0!==w[t[1]]?new Date(Date.UTC(Number(t[6]),w[t[1]],Number(t[2]),Number(t[3]),Number(t[4]),Number(t[5]))):null}(r.valid_to);if(!n)return s({ok:!1,error:"The certificate has no readable expiry date"},u);let a=u.authorized?null:String(u.authorizationError??"untrusted");s({ok:!0,notAfter:n,issuer:(e=r.issuer,"string"==typeof(t=e?.O??e?.CN)&&t?t:null),authorized:u.authorized,authError:a},u)}),u.on("timeout",()=>s({ok:!1,error:`No answer within ${Math.round(n/1e3)} s`},u)),u.on("error",()=>s({ok:!1,error:"Couldn't connect"},u))})}e.s(["f",0,v],377323);var k=e.i(246517),_=e.i(260417);let A=t.z.object({success:k.z.boolean(),result:i.z.unknown(),result_info:t.z.object({page:_.z.number().optional(),total_pages:_.z.number().optional()}).nullish()});async function I(e,t,r,n){let a;try{a=await (r.fetch??fetch)(`https://api.cloudflare.com/client/v4${e}`,{method:"GET",headers:{Authorization:`Bearer ${t}`,Accept:"application/json"},signal:AbortSignal.timeout(r.timeoutMs??5e3),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?"Cloudflare didn't answer within 5 seconds.":"Couldn't reach Cloudflare."}}if(403===a.status&&n)return await a.body?.cancel().catch(()=>void 0),{ok:!1,kind:"scope",status:403,error:`The token can't read this. Add "${n}" to the Cloudflare token.`};if(401===a.status||403===a.status)return await a.body?.cancel().catch(()=>void 0),{ok:!1,kind:"auth",status:a.status,error:`Cloudflare rejected this credential (${a.status}).`};if(429===a.status){let e=Number(a.headers.get("Retry-After"));return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60,error:"Cloudflare says there were too many requests."}}if(!a.ok)return{ok:!1,kind:"transient",status:a.status,error:`Cloudflare returned an error (${a.status}).`};let i=A.safeParse(await a.json().catch(()=>null));return i.success&&i.data.success?{ok:!0,data:{result:i.data.result,totalPages:i.data.result_info?.total_pages??null}}:S("its answer")}let S=e=>({ok:!1,kind:"format",error:`Cloudflare answered ${e} in a format the console doesn't recognise.`}),$=e=>encodeURIComponent(e),T=t.z.object({id:a.z.string(),name:a.z.string(),status:a.z.string(),paused:k.z.boolean().default(!1),name_servers:n.z.array(a.z.string()).default([]),account:t.z.object({id:a.z.string(),name:a.z.string().nullish()}).nullish()});async function R(e,t={}){let r=[];for(let a=1;a<=10;a++){let i=await I(`/zones?per_page=50&page=${a}`,e,t,null);if(!i.ok)return i;let o=n.z.array(T).safeParse(i.data.result);if(!o.success)return S("the zone list");for(let e of o.data)r.push({id:e.id,name:e.name,status:e.status,paused:e.paused,nameServers:e.name_servers,accountId:e.account?.id??null,accountName:e.account?.name??null});if(!i.data.totalPages||a>=i.data.totalPages)break}return{ok:!0,data:r}}let x=t.z.object({id:a.z.string(),type:a.z.string(),name:a.z.string(),content:a.z.string().default(""),proxied:k.z.boolean().default(!1),ttl:_.z.number().default(1),comment:a.z.string().nullish()});async function E(e,t,r={}){let a=[];for(let i=1;i<=4;i++){let o=await I(`/zones/${$(t)}/dns_records?per_page=500&page=${i}`,e,r,"DNS Read");if(!o.ok)return o;let s=n.z.array(x).safeParse(o.data.result);if(!s.success)return S("the DNS records");if(a.push(...s.data.map(e=>({id:e.id,type:e.type,name:e.name,content:e.content,proxied:e.proxied,ttl:e.ttl,comment:e.comment??null}))),!o.data.totalPages||i>=o.data.totalPages)return{ok:!0,data:{records:a,truncated:!1}}}return{ok:!0,data:{records:a,truncated:!0}}}async function N(e,r,n={}){let i=await I(`/zones/${$(r)}/settings/ssl`,e,n,"Zone Settings Read");if(!i.ok)return i;let o=t.z.object({value:a.z.string()}).safeParse(i.data.result);return o.success?{ok:!0,data:o.data.value}:S("the SSL/TLS mode")}t.z.object({errors:n.z.array(t.z.object({code:_.z.number().int()})).min(1)});let P=t.z.object({type:a.z.string(),status:a.z.string(),hosts:n.z.array(a.z.string()).default([]),certificates:n.z.array(t.z.object({expires_on:a.z.string().nullish()})).default([])});async function O(e,t,r={}){let a=await I(`/zones/${$(t)}/ssl/certificate_packs?status=all&per_page=50`,e,r,"SSL and Certificates Read");if(!a.ok)return a;let i=n.z.array(P).safeParse(a.data.result);return i.success?{ok:!0,data:i.data.map(e=>{let t=e.certificates.map(e=>e.expires_on).filter(e=>!!e).sort();return{type:e.type,status:e.status,hosts:e.hosts,expiresOn:t[0]??null}})}:S("the edge certificates")}async function C(e,r={}){let n=await I("/user/tokens/verify",e,r,null);if(!n.ok)return n;let i=t.z.object({status:a.z.string(),expires_on:a.z.string().nullish()}).safeParse(n.data.result);if(!i.success)return S("the token details");let o=i.data.expires_on?new Date(i.data.expires_on):null;return{ok:!0,data:{status:i.data.status,expiresAt:o&&!Number.isNaN(o.getTime())?o:null}}}e.s(["w",0,O,"p",0,E,"F",0,R,"v",0,N,"d",0,C],259246)},262412,416041,313302,896478,717614,583319,e=>{var t=e.i(105464),r=e.i(90879);let n=/^https:\/\/(?:(?:canary|ptb)\.)?discord(?:app)?\.com\/api\/webhooks\/\d{5,25}\/[\w-]{20,}$/;async function a(e,i,o={}){let s;if((0,r.isDemo)())return{ok:!1,kind:"config",error:t.Y};if(n.test(e.trim())?null:"Paste the whole webhook URL from Discord.")return{ok:!1,kind:"config",error:"The saved Discord webhook URL isn't valid."};try{s=await (o.fetch??fetch)(e,{method:"POST",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(o.timeoutMs??5e3),cache:"no-store",body:JSON.stringify({content:i.slice(0,2e3),username:"Watchbell",allowed_mentions:{parse:[]}})})}catch{return{ok:!1,kind:"transient",error:"Discord didn't answer."}}if(204===s.status||s.ok)return{ok:!0};if(429===s.status){let e=await s.json().catch(()=>null),t=Math.ceil(e?.retry_after??5);return{ok:!1,kind:"transient",retryAfterS:t,error:`Discord asked us to wait ${t} s.`}}return 404===s.status||401===s.status?{ok:!1,kind:"config",error:"Discord says this webhook no longer exists."}:{ok:!1,kind:s.status>=500?"transient":"config",error:`Discord returned an error (${s.status}).`}}e.s(["f",0,a],262412);var i=e.i(666680),o=e.i(300794),s=e.i(809816);let l={open:"firing",repeat:"repeat",resolve:"resolved"};async function u(e){return(await (0,o.lookup)(e,{all:!0})).map(e=>e.address)}async function d(e,n,a={}){let o,l;if((0,r.isDemo)())return{ok:!1,kind:"config",error:t.Y};if(function(e){let t;try{t=new URL(e.trim())}catch{return"Paste the whole address, starting with https://."}let r=(0,s._)(t);return"scheme"===r?"Use an https:// address without a user name or password in it.":"blocked"===r?"Use an address on the public internet, on port 443. Watchbell doesn't post into private networks.":null}(e.url))return{ok:!1,kind:"config",error:"The saved webhook address isn't allowed any more."};let c=new URL(e.url.trim());try{let e=await (a.lookup??u)(c.hostname);if(!e.length||e.some(s.W))return{ok:!1,kind:"config",error:"The webhook host resolves to a private address; Watchbell won't post there."}}catch{return{ok:!1,kind:"transient",error:"The webhook host didn't resolve."}}let p=JSON.stringify(n),f=String(Math.floor(Date.parse(n.sentAt)/1e3)),m={"Content-Type":"application/json","User-Agent":"Watchbell-Webhook/1.0","X-Watchbell-Timestamp":f};e.secret&&(m["X-Watchbell-Signature"]=(l=e.secret,`sha256=${(0,i.createHmac)("sha256",l).update(`${f}.${p}`).digest("hex")}`));try{o=await (a.fetch??fetch)(c.toString(),{method:"POST",headers:m,body:p,redirect:"manual",cache:"no-store",signal:AbortSignal.timeout(a.timeoutMs??5e3)})}catch{return{ok:!1,kind:"transient",error:"The webhook didn't answer."}}if(await o.body?.cancel().catch(()=>void 0),o.ok)return{ok:!0};if(o.status>=300&&o.status<400)return{ok:!1,kind:"config",error:"The webhook answered with a redirect; Watchbell doesn't follow them. Use the final address."};if(429===o.status){let e=Math.min(600,Math.max(1,Number(o.headers.get("retry-after"))||30));return{ok:!1,kind:"transient",retryAfterS:e,error:`The webhook asked to wait ${e} s.`}}return{ok:!1,kind:o.status>=500?"transient":"config",error:`The webhook returned an error (${o.status}).`}}e.s(["E",0,d,"J",0,function(e,t,r,n){return{source:"watchbell",event:t.length?"alerts":"test",sentAt:r.toISOString(),text:e.slice(0,4e3),link:n,alerts:t.slice(0,20).map(e=>({status:l[e.kind],rule:e.ruleKey,severity:e.severity,title:e.title,message:e.message,startedAt:e.startedAt.toISOString(),causedBy:e.causedBy,provider:e.provider}))}}],416041);var c=e.i(761095),p=e.i(685560),f=e.i(291815);let m=[465,587,2525],h=f.z.email();class g{socket;buf;lines;ready;waiters;onData;constructor(e){this.socket=e,this.buf="",this.lines=[],this.ready=[],this.waiters=[],this.onData=e=>this.read(e),e.on("data",this.onData)}attach(e){this.socket.off("data",this.onData),this.socket=e,e.on("data",this.onData)}read(e){let t;for(this.buf+=e.toString("utf8");(t=this.buf.indexOf("\n"))>=0;){let e=this.buf.slice(0,t).replace(/\r$/,"");if(this.buf=this.buf.slice(t+1),this.lines.push(e),/^\d{3}( |$)/.test(e)){let t={code:Number(e.slice(0,3)),text:this.lines.join("\n")};this.lines=[];let r=this.waiters.shift();r?r(t):this.ready.push(t)}}}next(){let e=this.ready.shift();return e?Promise.resolve(e):new Promise(e=>this.waiters.push(e))}send(e){this.socket.write(`${e}\r
|
|
39
|
+
`)}}class y extends Error{kind;constructor(e,t){super(e),this.kind=t}}async function b(e,n,a,l={}){let u,d,f;if((0,r.isDemo)())return{ok:!1,kind:"config",error:t.Y};if(Object.keys((d={},f=e.host.trim().toLowerCase(),/^[a-z0-9.-]{3,253}$/.test(f)&&f.includes(".")?(0,s.N)(f)&&(d.host="Use a mail server on the public internet. Watchbell doesn't connect into private networks."):d.host="Enter the server name, for example smtp.office365.com.",!m.includes(e.port)&&(d.port="Use port 587 (STARTTLS), 465 (TLS) or 2525."),(!e.user.trim()||e.user.length>200)&&(d.user="Enter the user name the server expects (often the whole address)."),(!e.pass||e.pass.length>500)&&(d.pass="Enter the password or app password."),!h.safeParse(e.from.trim()).success&&(d.from="Enter the address the mail comes from."),!h.safeParse(e.to.trim()).success&&(d.to="Enter the address that gets the alerts."),d)).length)return{ok:!1,kind:"config",error:"The saved mail server settings aren't valid any more."};let w=e.host.trim().toLowerCase();try{let e=await (l.lookup??(async e=>(await (0,o.lookup)(e,{all:!0})).map(e=>e.address)))(w);if(!e.length||e.some(s.W))return{ok:!1,kind:"config",error:"The mail server resolves to a private address; Watchbell won't connect there."};u=e[0]}catch{return{ok:!1,kind:"transient",error:"The mail server's name didn't resolve."}}let v=465===e.port,k=null,_=new Promise((e,t)=>setTimeout(()=>t(new y("The mail server took too long to answer.","transient")),l.timeoutMs??15e3).unref?.()),A=async()=>{var t,r,o,s;let d,f;try{k=await (l.connect??((e,t,r,n)=>new Promise((a,i)=>{let o=n?p.default.connect({host:e,port:t,servername:r}):c.default.connect({host:e,port:t});o.once(n?"secureConnect":"connect",()=>a(o)),o.once("error",i)})))(u,e.port,w,v)}catch{throw new y(`Couldn't connect to ${w}:${e.port}.`,"transient")}let m=new g(k),h=async(e,t,r="config")=>{let n=await m.next();if(!e.includes(n.code))throw new y(`The mail server refused ${t} (${n.code}).`,n.code>=400&&n.code<500?"transient":r);return n};await h([220],"the connection","transient"),m.send("EHLO watchbell");let b=await h([250],"EHLO");if(!v){if(!/^250[- ]STARTTLS\b/im.test(b.text))throw new y("The mail server doesn't offer STARTTLS on this port, so the password would go in clear. Use port 465 or a server with STARTTLS.","config");m.send("STARTTLS"),await h([220],"STARTTLS"),k=await (l.upgrade??((e,t)=>new Promise((r,n)=>{let a=p.default.connect({socket:e,servername:t});a.once("secureConnect",()=>r(a)),a.once("error",n)})))(k,w),m.attach(k),m.send("EHLO watchbell"),b=await h([250],"EHLO after STARTTLS")}m.send(`AUTH PLAIN ${Buffer.from(`\0${e.user}\0${e.pass}`,"utf8").toString("base64")}`),await h([235],"the user name or password"),m.send(`MAIL FROM:<${e.from.trim()}>`),await h([250],"the sender address"),m.send(`RCPT TO:<${e.to.trim()}>`),await h([250,251],"the recipient address"),m.send("DATA"),await h([354],"the message"),k.write(`${(t=e,r=n,o=a,s=new Date,f=Buffer.from(o.replace(/\r?\n/g,"\r\n"),"utf8").toString("base64").replace(/.{1,76}/g,"$&\r\n"),[`From: Watchbell <${t.from.trim()}>`,`To: <${t.to.trim()}>`,`Subject: ${(d=r.replace(/[\r\n]+/g," ").slice(0,200),/^[\x20-\x7e]*$/.test(d)?d:`=?UTF-8?B?${Buffer.from(d,"utf8").toString("base64")}?=`)}`,`Date: ${s.toUTCString()}`,`Message-ID: <${(0,i.randomUUID)()}@watchbell>`,"MIME-Version: 1.0","Content-Type: text/plain; charset=utf-8","Content-Transfer-Encoding: base64","",f].join("\r\n"))}\r
|
|
40
|
+
.\r
|
|
41
|
+
`),await h([250],"the message"),m.send("QUIT"),await Promise.race([m.next(),new Promise(e=>setTimeout(e,2e3))])};try{return await Promise.race([A(),_]),{ok:!0}}catch(e){return e instanceof y?{ok:!1,kind:e.kind,error:e.message}:{ok:!1,kind:"transient",error:"The mail server closed the connection."}}finally{k?.destroy()}}e.s(["f",0,b],313302);var w=e.i(484745),v=e.i(853190),k=e.i(728335),_=e.i(412948),A=e.i(760859);function I(e,t){return(0,k.newDaySince)(e,t)&&(0,k.zonedParts)(e).hour>=7}let S={en:{firing:"firing",opened:"opened",resolved:"resolved",last24:"in the last 24 hours.",stillHead:"Still firing",noFiring:"Nothing is firing.",resolvedHead:"Resolved",noResolved:"Nothing resolved.",appsHead:"Applications (24 h)",providersHead:"Providers",open:"Open alerts",after:"after",up:"up",took:e=>e,noChecks:"no checks",errors:e=>`${e} stored error${1===e?"":"s"}`},id:{firing:"aktif",opened:"baru",resolved:"pulih",last24:"dalam 24 jam terakhir.",stillHead:"Masih aktif",noFiring:"Nggak ada yang aktif.",resolvedHead:"Pulih",noResolved:"Nggak ada yang pulih.",appsHead:"Aplikasi (24 jam)",providersHead:"Provider",open:"Buka Alerts",after:"setelah",up:"aktif",took:e=>e.replace(/\b(\d+) min\b/g,"$1 menit").replace(/\b(\d+) h\b/g,"$1 jam").replace(/\b(\d+) d\b/g,"$1 hari"),noChecks:"belum ada cek",errors:e=>`${e} error tersimpan`}},$={May:"Mei",Aug:"Agu",Oct:"Okt",Dec:"Des"},T=[5,15,30,60];async function R(e,t){let r={acted:!1,state:t.state,sentDay:null,event:null,result:null};if(!I(e,t.lastSentDay))return r;let n=(0,k.dayKey)(e),a=t.state&&t.state.day===n?t.state:null;if(a?.stopped)return{...r,state:a};if(a&&a.attempts>0){let t=(T[a.attempts-1]??T[T.length-1])*6e4;if(a.lastAttemptAt&&e.getTime()-new Date(a.lastAttemptAt).getTime()<t)return{...r,state:a}}a??={day:n,...await t.build(),attempts:0,lastAttemptAt:null,stopped:!1,lastError:null};let i=await t.send({subject:a.subject,html:a.html,text:a.text});if(i.ok)return{acted:!0,state:null,sentDay:n,event:null,result:i};let o=a.attempts+1,s="config"===i.kind||o>=5,l="config"===i.kind?`${i.error}. Fix it and the next digest goes out tomorrow.`:`${i.error} Gave up after ${o} attempts today.`;return{acted:!0,sentDay:null,result:i,state:{...a,attempts:o,lastAttemptAt:e.toISOString(),stopped:s,lastError:i.error},event:s?{message:"Daily digest not sent",detail:l}:null}}async function x(e,n,a={}){let i;if((0,r.isDemo)())return{ok:!1,kind:"config",error:t.Y};try{i=await (a.fetch??fetch)("https://api.resend.com/emails",{method:"POST",signal:AbortSignal.timeout(5e3),cache:"no-store",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","User-Agent":"OpsConsole/1.0","Idempotency-Key":n.idempotencyKey},body:JSON.stringify({from:n.from,to:[n.to],subject:n.subject,html:n.html,text:n.text})})}catch{return{ok:!1,kind:"transient",error:"Resend didn't answer."}}if(i.ok)return{ok:!0};let o=await i.json().catch(()=>null);return 429===i.status||i.status>=500?{ok:!1,kind:"transient",error:`Resend returned an error (${i.status}).`}:{ok:!1,kind:"config",error:`Resend: ${String(o?.message??i.status).slice(0,200)}`}}e.s(["J",0,function(e,t="en"){let r=S[t],n=`${e.siteUrl.replace(/\/+$/,"")}/alerts`,a=((e,t)=>{let{day:r,month:n}=(0,k.calendarDate)(e);return`${r} ${"id"===t?$[n]??n:n}`})(e.now,t),i=`${e.firing.length} ${r.firing}, ${e.opened} ${r.opened}, ${e.resolved.length} ${r.resolved}`,o=`Watchbell \xb7 ${a} \xb7 ${i}`,s=[...e.apps].sort((e,t)=>(e.uptime??101)-(t.uptime??101)||t.errors-e.errors||e.name.localeCompare(t.name)),l=e.firing.map(e=>`${w.Z[t][e.severity]} \xb7 ${e.ruleKey} \xb7 ${e.title}: ${"id"===t?(0,v.f)(e.ruleKey,e.message):e.message}`),u=e.resolved.map(e=>`${e.ruleKey} \xb7 ${e.title} (${r.after} ${r.took(e.took)})`),d=s.map(e=>`${e.name}: ${null===e.uptime?r.noChecks:`${(0,_.C)(e.uptime)} ${r.up}`}, ${r.errors(e.errors)}`),c=e.providers.map(e=>`${e.label}: ${e.text}`),p=[`Watchbell \xb7 ${a}`,`${i} ${r.last24}`,"",r.stillHead,...l.length?l.map(e=>`- ${e}`):[r.noFiring],"",r.resolvedHead,...u.length?u.map(e=>`- ${e}`):[r.noResolved],...d.length?["",r.appsHead,...d.map(e=>`- ${e}`)]:[],...c.length?["",r.providersHead,...c.map(e=>`- ${e}`)]:[],"",`${r.open}: ${n}`].join("\n"),f=e=>`<h3 style="font:600 14px system-ui,sans-serif;margin:18px 0 6px">${(0,w.H)(e)}</h3>`,m=(e,t)=>e.length?`<ul style="margin:0;padding-left:18px">${e.map(e=>`<li style="margin:2px 0">${(0,w.H)(e)}</li>`).join("")}</ul>`:`<p style="margin:0;color:#596170">${(0,w.H)(t)}</p>`,h=['<div style="font:14px/1.5 system-ui,sans-serif;color:#14171f;max-width:560px">',`<h2 style="font:600 16px system-ui,sans-serif;margin:0 0 4px">Watchbell \xb7 ${(0,w.H)(a)}</h2>`,`<p style="margin:0;color:#596170">${(0,w.H)(`${i} ${r.last24}`)}</p>`,f(r.stillHead),m(l,r.noFiring),f(r.resolvedHead),m(u,r.noResolved),...d.length?[f(r.appsHead),m(d,"")]:[],...c.length?[f(r.providersHead),m(c,"")]:[],`<p style="margin:18px 0 0"><a href="${(0,w.H)(n).replace(/"/g,""")}" style="color:#2f4372">${(0,w.H)(r.open)}</a></p>`,"</div>"].join("");return{subject:(0,A.G)(o),html:(0,A.G)(h),text:(0,A.G)(p)}},"A",0,I,"K",0,R],896478),e.s(["f",0,x],717614),e.s(["f",0,function(e,t){let r=Math.max(1,Math.round((t.getTime()-e.getTime())/6e4));if(r<60)return`${r} min`;let n=Math.floor(r/60);return n<24?`${n} h ${r%60} min`:`${Math.floor(n/24)} d ${n%24} h`}],583319)},437122,319718,941536,686454,582888,811539,e=>{var t=e.i(75064),r=e.i(909592),n=e.i(492973),a=e.i(978071),i=e.i(260417),o=e.i(684330),s=e.i(79322);let l=t.z.object({error:t.z.object({status:n.z.string().optional(),message:n.z.string().optional(),details:r.z.array(o.z.looseObject({reason:n.z.string().optional()})).optional()})}),u=t.z.object({message:n.z.string()}),d=t.z.object({missing_permissions:r.z.array(n.z.string()).min(1)}),c=t.z.object({error:s.z.enum(["invalid_grant","invalid_client","unauthorized_client"])});async function p(e,t,r,n={}){let a,i,o=n.timeoutMs??5e3,s={Accept:"application/json"};r.token?s.Authorization=`Bearer ${r.token}`:r.basic&&(s.Authorization=`Basic ${Buffer.from(`${r.basic.user}:${r.basic.pass}`).toString("base64")}`),r.form?a=r.form:void 0!==r.body&&(s["Content-Type"]="application/json",a=JSON.stringify(r.body));try{i=await (n.fetch??fetch)(t,{method:r.method??"GET",headers:s,body:a,signal:AbortSignal.timeout(o),cache:"no-store"})}catch(t){return{ok:!1,kind:"transient",error:t instanceof DOMException&&("TimeoutError"===t.name||"AbortError"===t.name)?`${e} didn't answer within ${Math.round(o/1e3)} seconds.`:`Couldn't reach ${e}.`}}let f=await i.json().catch(()=>null);if(i.ok)return{ok:!0,data:f};let m=l.safeParse(f),h=m.success?m.data.error.details?.find(e=>e.reason)?.reason??m.data.error.status:void 0,g=m.success?void 0:u.safeParse(f),y=m.success?m.data.error.message?.slice(0,300):g?.success?g.data.message.slice(0,600):void 0,b={status:i.status,...h?{reason:h}:{},...y?{message:y}:{}};if(403===i.status){let t=d.safeParse(f);if(t.success){let e=t.data.missing_permissions;return{ok:!1,kind:"scope",...b,missing:e,error:`Missing permission${e.length>1?"s":""}: ${e.join(", ")}.`}}if(m.success)return{ok:!1,kind:"scope",...b,error:`${e} refused this request (${h??"PERMISSION_DENIED"}).`}}if(401===i.status||403===i.status||400===i.status&&c.safeParse(f).success)return{ok:!1,kind:"auth",...b,error:`${e} rejected this credential (${i.status}).`};if(404===i.status)return{ok:!1,kind:"missing",...b,error:`${e} doesn't know this resource (404).`};if(429===i.status){let t=Number(i.headers.get("Retry-After"));return{ok:!1,kind:"transient",...b,retryAfterS:Number.isFinite(t)&&t>0?t:60,error:"RESOURCE_EXHAUSTED"===h?`${e} says a quota is used up.`:`${e} says there were too many requests.`}}return{ok:!1,kind:"transient",...b,error:`${e} returned an error (${i.status}).`}}let f=(e,t)=>({ok:!1,kind:"format",error:`${e} answered ${t} in a format the console doesn't recognise.`});async function m(e,a={}){let i=await p("Firebase","https://firebase.googleapis.com/v1beta1/projects?pageSize=100",{token:e},a);if(!i.ok)return i;let o=t.z.object({results:r.z.array(t.z.object({projectId:n.z.string(),displayName:n.z.string().optional(),state:n.z.string().optional()})).optional()}).safeParse(i.data);return o.success?{ok:!0,data:(o.data.results??[]).filter(e=>"DELETED"!==e.state).map(e=>({projectId:e.projectId,displayName:e.displayName??e.projectId}))}:f("Firebase","the project list")}async function h(e,t,r={}){var n=e,a=await m(t,r);if(!a.ok&&"scope"!==a.kind)return a;let i=a.ok?a.data:[];return{ok:!0,data:i.some(e=>e.projectId===n.project_id)?i:[{projectId:n.project_id,displayName:n.project_id},...i]}}async function g(e,t,r={}){let n=performance.now(),a=await p("Firestore",`https://firestore.googleapis.com/v1/projects/${encodeURIComponent(t)}/databases/(default)/documents/ops/ping`,{token:e},r),i=Math.round(performance.now()-n);if(a.ok)return{ok:!0,data:{reachable:!0,noDatabase:!1,latencyMs:i}};if("missing"===a.kind){let e=/database .*does not exist/i.test(a.message??"");return{ok:!0,data:{reachable:!e,noDatabase:e,latencyMs:i}}}return a}async function y(e,r,o={}){let s=await p("Firebase Auth",`https://identitytoolkit.googleapis.com/v1/projects/${encodeURIComponent(r)}/accounts:query`,{method:"POST",token:e,body:{returnUserInfo:!1}},o);if(!s.ok)return s;let l=t.z.object({recordsCount:a.z.union([n.z.string(),i.z.number()]).optional()}).safeParse(s.data),u=l.success?Number(l.data.recordsCount??0):0/0;return Number.isFinite(u)?{ok:!0,data:u}:f("Firebase Auth","the user count")}let b=t.z.object({timeSeries:r.z.array(t.z.object({points:r.z.array(t.z.object({value:t.z.object({int64Value:a.z.union([n.z.string(),i.z.number()]).optional()})})).optional()})).optional()});async function w(e,t,r,n,a,i){let o=new URLSearchParams({filter:`metric.type="firestore.googleapis.com/document/${r}_ops_count"`,"interval.startTime":n.toISOString(),"interval.endTime":a.toISOString(),"aggregation.alignmentPeriod":`${Math.max(60,Math.ceil((a.getTime()-n.getTime())/1e3))}s`,"aggregation.perSeriesAligner":"ALIGN_SUM","aggregation.crossSeriesReducer":"REDUCE_SUM"}),s=await p("Cloud Monitoring",`https://monitoring.googleapis.com/v3/projects/${encodeURIComponent(t)}/timeSeries?${o}`,{token:e},i);if(!s.ok)return s;let l=b.safeParse(s.data);return l.success?{ok:!0,data:(l.data.timeSeries??[]).flatMap(e=>e.points??[]).reduce((e,t)=>e+Number(t.value.int64Value??0),0)}:f("Cloud Monitoring","the Firestore usage")}async function v(e,t,r,n,a={}){let[i,o,s]=await Promise.all(["read","write","delete"].map(i=>w(e,t,i,r,n,a)));for(let e of[i,o,s])if(!e.ok)return e;return{ok:!0,data:{reads:i.data,writes:o.data,deletes:s.data}}}e.s(["q",0,y,"z",0,h,"W",0,v,"G",0,g],437122);var k=e.i(666680),_=e.i(542746),A=e.i(291815);let I=t.z.object({type:_.z.literal("service_account"),project_id:n.z.string().min(1),client_email:A.z.email(),private_key:n.z.string().includes("PRIVATE KEY"),private_key_id:n.z.string().optional()}),S="https://oauth2.googleapis.com/token",$=["https://www.googleapis.com/auth/datastore","https://www.googleapis.com/auth/identitytoolkit","https://www.googleapis.com/auth/monitoring.read","https://www.googleapis.com/auth/firebase.readonly"],T=e=>Buffer.from(e).toString("base64url");async function R(e,r={}){let a;try{var i;let t,n,o;i=Math.floor((r.now??new Date).getTime()/1e3),t=T(JSON.stringify({alg:"RS256",typ:"JWT",...e.private_key_id?{kid:e.private_key_id}:{}})),n=T(JSON.stringify({iss:e.client_email,scope:$.join(" "),aud:S,iat:i,exp:i+3600})),o=(0,k.createSign)("RSA-SHA256").update(`${t}.${n}`).sign(e.private_key),a=`${t}.${n}.${T(o)}`}catch{return{ok:!1,kind:"auth",error:"The private key in this service account can't be used. Paste the whole JSON file again."}}let o=new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:a}),s=await p("Google",S,{method:"POST",form:o},r);if(!s.ok)return"auth"===s.kind?{...s,error:"Google rejected this service account (its key was deleted or disabled). Create a new key."}:s;let l=t.z.object({access_token:n.z.string().min(1)}).safeParse(s.data);return l.success?{ok:!0,data:l.data.access_token}:f("Google","the access token")}e.s(["X",0,R,"p",0,function(e){try{let t=I.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}],319718);var x=e.i(246517);let E="https://console.neon.tech/api/v2",N="Neon";async function P(e,a={}){let i=await p(N,`${E}/users/me/organizations`,{token:e},a);if(!i.ok)return i;let o=t.z.object({organizations:r.z.array(t.z.object({id:n.z.string(),name:n.z.string()}))}).safeParse(i.data);return o.success?{ok:!0,data:o.data.organizations}:f(N,"the organization list")}let O=t.z.object({id:n.z.string(),name:n.z.string(),region_id:n.z.string(),pg_version:i.z.number().nullish(),created_at:n.z.string(),org_id:n.z.string().nullish()});async function C(e,a,i={}){let o,s=[];for(let l=0;l<5;l++){let l=new URLSearchParams({limit:String(100)});a&&l.set("org_id",a),o&&l.set("cursor",o);let u=await p(N,`${E}/projects?${l}`,{token:e},i);if(!u.ok)return u;let d=t.z.object({projects:r.z.array(O),pagination:t.z.object({cursor:n.z.string().nullish()}).nullish()}).safeParse(u.data);if(!d.success)return f(N,"the project list");for(let e of d.data.projects)s.push({id:e.id,name:e.name,region:e.region_id,pgVersion:e.pg_version??null,orgId:e.org_id??a,createdAt:e.created_at});if(o=d.data.pagination?.cursor??void 0,d.data.projects.length<100||!o)break}return{ok:!0,data:s}}async function j(e,t={}){let r=await P(e,t);if(!r.ok&&"missing"!==r.kind&&"scope"!==r.kind)return r;let n=r.ok&&r.data.length?r.data.map(e=>e.id):[null],a=[];for(let r of n){let n=await C(e,r,t);if(!n.ok)return n;a.push(...n.data)}return{ok:!0,data:a}}let D=t.z.object({project:t.z.object({region_id:n.z.string(),pg_version:i.z.number().nullish(),compute_time_seconds:i.z.number().nullish(),data_transfer_bytes:i.z.number().nullish(),active_time_seconds:i.z.number().nullish(),consumption_period_start:n.z.string().nullish(),consumption_period_end:n.z.string().nullish(),compute_last_active_at:n.z.string().nullish()})});async function M(e,t,r={}){let n=await p(N,`${E}/projects/${encodeURIComponent(t)}`,{token:e},r);if(!n.ok)return n;let a=D.safeParse(n.data);if(!a.success)return f(N,"the project");let i=a.data.project;return{ok:!0,data:{computeSeconds:i.compute_time_seconds??0,transferBytes:i.data_transfer_bytes??0,activeSeconds:i.active_time_seconds??null,periodStart:i.consumption_period_start??null,periodEnd:i.consumption_period_end??null,region:i.region_id,pgVersion:i.pg_version??null,lastActive:i.compute_last_active_at??null}}}let z=t.z.object({id:n.z.string(),branch_id:n.z.string(),current_state:n.z.string(),pending_state:n.z.string().nullish(),disabled:x.z.boolean().nullish(),autoscaling_limit_min_cu:i.z.number(),autoscaling_limit_max_cu:i.z.number(),last_active:n.z.string().nullish()}),q=e=>({id:e.id,branchId:e.branch_id,state:e.current_state,pendingState:e.pending_state??null,disabled:e.disabled??!1,minCu:e.autoscaling_limit_min_cu,maxCu:e.autoscaling_limit_max_cu,lastActive:e.last_active??null});async function L(e,n,a={}){let i=await p(N,`${E}/projects/${encodeURIComponent(n)}/endpoints`,{token:e},a);if(!i.ok)return i;let o=t.z.object({endpoints:r.z.array(z)}).safeParse(i.data);return o.success?{ok:!0,data:o.data.endpoints.map(q)}:f(N,"the compute list")}async function U(e,r,n,a={}){let i=await p(N,`${E}/projects/${encodeURIComponent(r)}/endpoints/${encodeURIComponent(n)}`,{token:e},a);if(!i.ok)return i;let o=t.z.object({endpoint:z}).safeParse(i.data);return o.success?{ok:!0,data:q(o.data.endpoint)}:f(N,"the compute")}async function H(e,t,r,n={}){let a=await p(N,`${E}/projects/${encodeURIComponent(t)}/endpoints/${encodeURIComponent(r)}/start`,{method:"POST",token:e},n);return a.ok?{ok:!0,data:null}:423===a.status?{ok:!1,kind:"busy",status:423,error:"Neon is busy with another operation. Try again in a minute."}:403===a.status?{ok:!1,kind:"scope",status:403,error:`${N} refused this request (403).`}:a}let B=t.z.object({id:n.z.string(),name:n.z.string(),default:x.z.boolean().nullish(),primary:x.z.boolean().nullish(),logical_size:i.z.number().nullish()});async function V(e,n,a={}){let i=await p(N,`${E}/projects/${encodeURIComponent(n)}/branches`,{token:e},a);if(!i.ok)return i;let o=t.z.object({branches:r.z.array(B)}).safeParse(i.data);return o.success?{ok:!0,data:o.data.branches.map(e=>({id:e.id,name:e.name,isDefault:e.default??e.primary??!1,logicalSize:e.logical_size??null}))}:f(N,"the branch list")}e.s(["m",0,j,"c",0,U,"Z",0,M,"e",0,V,"k",0,L,"d",0,H],941536);var G=e.i(932378);let K="https://api.supabase.com",F="Supabase",W=["auth","rest","realtime","storage","db"],X=t.z.object({ref:n.z.string(),name:n.z.string(),region:n.z.string(),created_at:n.z.string(),status:n.z.string(),organization_slug:n.z.string().optional(),organization_id:n.z.string().optional(),database:t.z.object({version:n.z.string().optional()}).nullish()}),J=e=>({ref:e.ref,name:e.name,orgSlug:e.organization_slug??e.organization_id??"",region:e.region,createdAt:e.created_at,status:e.status,pgVersion:e.database?.version??null});async function Y(e,t={}){let n=await p(F,`${K}/v1/projects`,{token:e},t);if(!n.ok)return n;let a=r.z.array(X).safeParse(n.data);return a.success?{ok:!0,data:a.data.map(J)}:f(F,"the project list")}async function Z(e,t,r={}){let n=await p(F,`${K}/v1/projects/${encodeURIComponent(t)}`,{token:e},r);if(!n.ok)return n;let a=X.safeParse(n.data);return a.success?{ok:!0,data:J(a.data)}:f(F,"the project")}async function Q(e,t,r,n){let a=await p(F,`${K}/v1/projects/${encodeURIComponent(e)}/${t}`,{method:"POST",token:r},n);return a.ok?{ok:!0,data:null}:403===a.status&&"scope"!==a.kind?{...a,kind:"scope",error:"Missing permission: project_admin_write."}:a}async function ee(e,t,r={}){let n=await p(F,`${K}/v1/projects/${encodeURIComponent(t)}/database/query/read-only`,{method:"POST",token:e,body:{query:"select 1"}},r);return n.ok?{ok:!0,data:null}:n}async function et(e,r,a={}){let i=await p(F,`${K}/v1/organizations/${encodeURIComponent(r)}`,{token:e},a);if(!i.ok)return i;let o=t.z.object({plan:n.z.string().optional()}).safeParse(i.data);return o.success?{ok:!0,data:o.data.plan??null}:f(F,"the organization")}async function er(e,a,i={}){let o=new URLSearchParams(W.map(e=>["services",e])),s=await p(F,`${K}/v1/projects/${encodeURIComponent(a)}/health?${o}`,{token:e},i);if(!s.ok)return s;let l=r.z.array(t.z.object({name:n.z.string(),status:n.z.string(),error:n.z.string().optional()})).safeParse(s.data);return l.success?{ok:!0,data:l.data.map(e=>({name:e.name,status:e.status,error:e.error??null}))}:f(F,"service health")}let en=t.z.object({result:r.z.array(t.z.object({timestamp:n.z.string(),total_auth_requests:i.z.number(),total_realtime_requests:i.z.number(),total_rest_requests:i.z.number(),total_storage_requests:i.z.number()})).optional(),error:G.z.unknown().optional()});async function ea(e,t,r={}){let n=await p(F,`${K}/v1/projects/${encodeURIComponent(t)}/analytics/endpoints/usage.api-counts?interval=7day`,{token:e},r);if(!n.ok)return n;let a=en.safeParse(n.data);return a.success?a.data.error?{ok:!1,kind:"transient",error:"Supabase couldn't read the API request counts this time."}:{ok:!0,data:(a.data.result??[]).map(e=>({at:new Date(e.timestamp),total:e.total_auth_requests+e.total_realtime_requests+e.total_rest_requests+e.total_storage_requests}))}:f(F,"the API request counts")}async function ei(e,o,s={}){let l=await p(F,`${K}/v1/projects/${encodeURIComponent(o)}/database/query/read-only`,{method:"POST",token:e,body:{query:"select pg_database_size(current_database())::bigint as bytes"}},s);if(!l.ok)return l;let u=r.z.array(t.z.object({bytes:a.z.union([i.z.number(),n.z.string()])})).min(1).safeParse(l.data),d=u.success?Number(u.data[0].bytes):0/0;return Number.isFinite(d)?{ok:!0,data:d}:f(F,"the database size")}e.s(["Z",0,ea,"r",0,ei,"e",0,Z,"i",0,ee,"W",0,Y,"K",0,et,"c",0,(e,t,r={})=>Q(t,"pause",e,r),"G",0,(e,t,r={})=>Q(t,"restore",e,r),"F",0,er],686454);let eo="https://api.turso.tech/v1",es="Turso",el=t.z.object({slug:n.z.string(),name:n.z.string().default(""),plan_id:n.z.string().nullish(),blocked_reads:x.z.boolean().nullish(),blocked_writes:x.z.boolean().nullish()});async function eu(e,t={}){let n=await p(es,`${eo}/organizations`,{token:e},t);if(!n.ok)return n;let a=r.z.array(el).safeParse(n.data);return a.success?{ok:!0,data:a.data.map(e=>({slug:e.slug,name:e.name||e.slug,plan:e.plan_id??null,blockedReads:e.blocked_reads??!1,blockedWrites:e.blocked_writes??!1}))}:f(es,"the organization list")}let ed=t.z.object({Name:n.z.string(),DbId:n.z.string(),group:n.z.string().nullish(),primaryRegion:n.z.string().nullish(),block_reads:x.z.boolean().nullish(),block_writes:x.z.boolean().nullish()});async function ec(e,n,a={}){let i=await p(es,`${eo}/organizations/${encodeURIComponent(n)}/databases`,{token:e},a);if(!i.ok)return i;let o=t.z.object({databases:r.z.array(ed)}).safeParse(i.data);return o.success?{ok:!0,data:o.data.databases.map(e=>({id:e.DbId,name:e.Name,org:n,group:e.group??null,primaryRegion:e.primaryRegion??null,blockReads:e.block_reads??!1,blockWrites:e.block_writes??!1}))}:f(es,"the database list")}async function ep(e,t={}){let r=await eu(e,t);if(!r.ok)return r;let n=[];for(let a of r.data.slice(0,10)){let r=await ec(e,a.slug,t);if(!r.ok)return r;n.push(...r.data)}return{ok:!0,data:n}}let ef=t.z.object({rows_read:i.z.number().default(0),rows_written:i.z.number().default(0),storage_bytes:i.z.number().default(0)}),em=t.z.object({organization:t.z.object({usage:ef.extend({databases:i.z.number().nullish()})}),databases:r.z.array(t.z.object({uuid:n.z.string(),total:ef.nullish()})).nullish()}),eh=e=>({rowsRead:e.rows_read,rowsWritten:e.rows_written,storageBytes:e.storage_bytes});async function eg(e,t,r={}){let n=await p(es,`${eo}/organizations/${encodeURIComponent(t)}/usage`,{token:e},r);return n.ok?function(e){let t=em.safeParse(e);if(!t.success)return f(es,"the usage");let r=new Map;for(let e of t.data.databases??[])e.total&&r.set(e.uuid,eh(e.total));return{ok:!0,data:{org:{...eh(t.data.organization.usage),databases:t.data.organization.usage.databases??null},byDb:r}}}(n.data):n}e.s(["t",0,ep,"X",0,ec,"u",0,eu,"d",0,eg],582888);let ey="https://api.upstash.com/v2",eb="Upstash",ew=e=>({basic:{user:e.email,pass:e.apiKey}}),ev=t.z.object({database_id:n.z.string(),database_name:n.z.string(),region:n.z.string().nullish(),primary_region:n.z.string().nullish(),state:n.z.string().nullish(),type:n.z.string().nullish()});async function ek(e,t={}){let n=await p(eb,`${ey}/redis/databases`,ew(e),t);if(!n.ok)return n;let a=r.z.array(ev).safeParse(n.data??[]);return a.success?{ok:!0,data:a.data.map(e=>({id:e.database_id,name:e.database_name,region:"global"===e.region&&e.primary_region?`global \xb7 ${e.primary_region}`:e.region??e.primary_region??null,state:e.state??null,type:e.type??null}))}:f(eb,"the database list")}let e_=i.z.number().nullish(),eA=t.z.object({daily_net_commands:e_,total_monthly_requests:e_,current_storage:e_,total_monthly_bandwidth:e_});async function eI(e,t,r={}){var n;let a,i=await p(eb,`${ey}/redis/stats/${encodeURIComponent(t)}`,ew(e),r);return i.ok?(n=i.data,(a=eA.safeParse(n)).success?{ok:!0,data:{dailyCommands:a.data.daily_net_commands??null,monthlyRequests:a.data.total_monthly_requests??null,storageBytes:a.data.current_storage??null,monthlyBandwidthBytes:a.data.total_monthly_bandwidth??null}}:f(eb,"the database stats")):i}e.s(["M",0,ek,"L",0,function(e){let t=e.trim(),r=t.search(/[:\s]/);if(r<=0)return null;let n=t.slice(0,r).trim(),a=t.slice(r+1).trim();return!/^[^@\s:]+@[^@\s:]+\.[^@\s:]+$/.test(n)||a.length<20||/\s/.test(a)?null:{email:n,apiKey:a}},"Z",0,eI],811539)},38607,e=>{var t=e.i(909592),r=e.i(75064),n=e.i(492973),a=e.i(260417),i=e.i(819263),o=e.i(974034),s=e.i(958948);let l=t.z.array(r.z.object({name:n.z.string(),type:n.z.string(),sha:n.z.string(),size:a.z.number().optional()}));async function u(e,t,r,n={},a=null){if(!(0,s.M)(t)||!(0,s.c)(r))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==a&&(0,o.Q)(a)!==a)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let i=a?a.split("/").map(encodeURIComponent).join("/"):"",d=await (0,s.j)(`/repos/${(0,s.f)(t)}/contents/${i}?ref=${encodeURIComponent(r)}`,e,n);if(!d.ok)return d;let c=l.safeParse(d.data);return c.success?{ok:!0,data:c.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 d(e,t,r,n={}){if(!(0,s.M)(t)||!(0,s.c)(r))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let a=await (0,s.j)(`/repos/${(0,s.f)(t)}/git/ref/heads/${r.split("/").map(encodeURIComponent).join("/")}`,e,n);return a.ok?{ok:!0,data:!0}:"missing"===a.kind?{ok:!0,data:!1}:a}async function c(e,t,r={}){if(!(0,s.M)(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let n=await (0,s.j)(`/repos/${(0,s.f)(t)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,e,r);if(!n.ok)return"scope"===n.kind||"missing"===n.kind?{ok:!0,data:{denied:!0}}:n;let a=(0,i.E)(n.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}e.s(["y",0,0xf00000,"V",0,d,"t",0,c,"Z",0,function(e,t,r,n,a,i={}){return(0,s.V)(e,t,r,n,a,i)},"W",0,u])},348657,e=>{var t=e.i(75064),r=e.i(492973),n=e.i(246517),a=e.i(542746),i=e.i(260417),o=e.i(909592),s=e.i(79322),l=e.i(821342),u=e.i(958948);async function d(e,t,r,n,a,i=!1){let o,s=a.timeoutMs??8e3;try{o=await (a.fetch??fetch)(`https://api.github.com${t}`,{method:e,headers:{Authorization:`Bearer ${r}`,Accept:i?"application/vnd.github.raw+json":"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell",...void 0!==n?{"Content-Type":"application/json"}:{}},body:void 0!==n?JSON.stringify(n):void 0,signal:AbortSignal.timeout(s),cache:"no-store",redirect:"error"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`GitHub didn't answer within ${Math.round(s/1e3)} seconds.`:"Couldn't reach GitHub."}}let l=await o.text().catch(()=>"");if(i&&o.ok)return{ok:!0,status:o.status,data:l};let u=null;try{u=l?JSON.parse(l):null}catch{u=null}if(o.ok)return{ok:!0,status:o.status,data:u};let c=o.status;return 401===c?{ok:!1,kind:"auth",status:c,error:"GitHub rejected the PR-write token (401). It may have expired or been revoked."}:429===c||403===c&&"0"===o.headers.get("x-ratelimit-remaining")?{ok:!1,kind:"transient",status:c,error:"GitHub's rate limit is used up for now. Try again later."}:403===c?{ok:!1,kind:"scope",status:c,error:"The GitHub PR-write token can't do this (403). It needs Contents and Pull requests: Read and write on this repository."}:404===c?{ok:!1,kind:"missing",status:c,error:"The PR-write token doesn't see this repository (404). Give it access to the repository."}:409===c||422===c?{ok:!1,kind:"format",status:c,error:`GitHub refused the change (${c}).`}:{ok:!1,kind:"transient",status:c,error:`GitHub returned an error (${c}).`}}let c=e=>({ok:!1,kind:"format",error:`GitHub answered ${e} in a format the console doesn't recognise.`}),p={ok:!1,kind:"format",error:"That isn't a repository or branch the console may write."};async function f(e,a,i={}){if(!(0,u.M)(a))return p;let o=await d("GET",`/repos/${(0,u.f)(a)}`,e,void 0,i);if(!o.ok)return o;let s=t.z.object({default_branch:r.z.string(),permissions:t.z.object({push:n.z.boolean()}).partial().optional()}).safeParse(o.data);return s.success&&(0,u.c)(s.data.default_branch)?{ok:!0,data:{defaultBranch:s.data.default_branch,canPush:s.data.permissions?.push??null}}:c("the repository")}async function m(e,n,a,i={}){if(!(0,u.M)(n)||!(0,u.c)(a))return p;let o=await d("GET",`/repos/${(0,u.f)(n)}/git/ref/heads/${a.split("/").map(encodeURIComponent).join("/")}`,e,void 0,i);if(!o.ok)return"missing"===o.kind?{ok:!0,data:null}:o;let s=t.z.object({object:t.z.object({sha:r.z.string().regex(/^[0-9a-f]{40}$/)})}).safeParse(o.data);return s.success?{ok:!0,data:s.data.object.sha}:c("the branch")}let h=/^(?:[A-Za-z0-9._-]{1,100}\/){0,6}package\.json$/,g=e=>h.test(e)&&!e.split("/").some(e=>"."===e||".."===e),y=(e,t)=>`/repos/${(0,u.f)(e)}/contents/${t.split("/").map(encodeURIComponent).join("/")}`;async function b(e,n,i,o={},s="package.json"){if(!(0,u.M)(n)||!(0,u.c)(i)||!g(s))return p;let l=await d("GET",`${y(n,s)}?ref=${encodeURIComponent(i)}`,e,void 0,o);if(!l.ok)return"missing"===l.kind?{ok:!0,data:null}:l;let f=t.z.object({sha:r.z.string(),encoding:a.z.literal("base64"),content:r.z.string()}).safeParse(l.data);return f.success?{ok:!0,data:{sha:f.data.sha,text:Buffer.from(f.data.content.replace(/\s/g,""),"base64").toString("utf8")}}:c("package.json")}let w=/^(?:[A-Za-z0-9._-]{1,100}\/){0,6}(?:package-lock|npm-shrinkwrap)\.json$/,v=e=>w.test(e)&&!e.split("/").some(e=>"."===e||".."===e);async function k(e,t,r,n,a={}){if(!(0,u.M)(t)||!(0,u.c)(r)||!v(n))return p;let i=await d("GET",`${y(t,n)}?ref=${encodeURIComponent(r)}`,e,void 0,{timeoutMs:2e4,...a},!0);return i.ok?"string"==typeof i.data?{ok:!0,data:i.data}:c("the lockfile"):"missing"===i.kind?{ok:!0,data:null}:i}async function _(e,t,r,n,a,i={}){if(!(0,u.M)(t)||!(0,l.c)(r,a)||!/^[0-9a-f]{40}$/.test(n))return p;let o=await d("POST",`/repos/${(0,u.f)(t)}/git/refs`,e,{ref:`refs/heads/${r}`,sha:n},i);return o.ok?{ok:!0,data:!0}:o}async function A(e,t,r,n,a,i,o,s={},c="package.json"){if(!(0,u.M)(t)||!(0,l.c)(r,n)||!g(c))return p;let f=await d("PUT",y(t,c),e,{message:o,content:Buffer.from(a,"utf8").toString("base64"),sha:i,branch:r},s);return f.ok?{ok:!0,data:!0}:f}let I=t.z.object({number:i.z.number(),html_url:r.z.string().startsWith("https://github.com/")});async function S(e,t,r,n,a,i={}){if(!(0,u.M)(t)||!(0,l.c)(n,a))return p;let s=new URLSearchParams({state:"open",head:`${r}:${n}`,per_page:"1"}),f=await d("GET",`/repos/${(0,u.f)(t)}/pulls?${s}`,e,void 0,i);if(!f.ok)return f;let m=o.z.array(I).safeParse(f.data);if(!m.success)return c("the pull requests");let h=m.data[0];return{ok:!0,data:h?{number:h.number,url:h.html_url}:null}}async function $(e,t,r,n,a,i,o={},s={}){if(!(0,u.M)(t)||!(0,l.c)(r,n)||!(0,u.c)(n))return p;let f=await d("POST",`/repos/${(0,u.f)(t)}/pulls`,e,{title:a,head:r,base:n,body:i,maintainer_can_modify:!0,...s.draft?{draft:!0}:{}},o);if(!f.ok)return f;let m=I.safeParse(f.data);return m.success?{ok:!0,data:{number:m.data.number,url:m.data.html_url}}:c("the new pull request")}let T=o.z.array(t.z.object({number:i.z.number(),title:r.z.string(),head:t.z.object({ref:r.z.string(),sha:r.z.string(),repo:t.z.object({full_name:r.z.string()}).nullable()}),base:t.z.object({ref:r.z.string()})}));async function R(e,t,r={}){if(!(0,u.M)(t))return p;let n=await d("GET",`/repos/${(0,u.f)(t)}/pulls?state=open&per_page=100`,e,void 0,r);if(!n.ok)return n;let a=T.safeParse(n.data);return a.success?{ok:!0,data:a.data.filter(e=>/^watchpost\/deps-[0-9a-f]{8}$/.test(e.head.ref)&&e.head.repo?.full_name===t).map(e=>({number:e.number,branch:e.head.ref,title:e.title,headSha:e.head.sha,base:e.base.ref}))}:c("the pull requests")}async function x(e,a,i,o={}){if(!(0,u.M)(a)||!Number.isInteger(i)||i<=0)return p;let l=await d("GET",`/repos/${(0,u.f)(a)}/pulls/${i}`,e,void 0,o);if(!l.ok)return l;let f=t.z.object({state:s.z.enum(["open","closed"]),merged:n.z.boolean().optional(),mergeable:n.z.boolean().nullable().optional(),head:t.z.object({ref:r.z.string(),sha:r.z.string().regex(/^[0-9a-f]{40}$/)}),base:t.z.object({ref:r.z.string()})}).safeParse(l.data);return f.success?{ok:!0,data:{state:f.data.state,merged:!0===f.data.merged,mergeable:f.data.mergeable??null,headSha:f.data.head.sha,branch:f.data.head.ref,base:f.data.base.ref}}:c("the pull request")}async function E(e,n,a,s={}){if(!(0,u.M)(n)||!/^[0-9a-f]{40}$/.test(a))return p;let[l,c]=await Promise.all([d("GET",`/repos/${(0,u.f)(n)}/commits/${a}/check-runs?per_page=100`,e,void 0,s),d("GET",`/repos/${(0,u.f)(n)}/commits/${a}/status`,e,void 0,s)]),f=e=>!e.ok&&("scope"===e.kind||"missing"===e.kind);if(!l.ok&&!f(l))return l;if(!c.ok&&!f(c))return c;let m=l.ok?t.z.object({check_runs:o.z.array(t.z.object({status:r.z.string(),conclusion:r.z.string().nullable()}))}).safeParse(l.data):null,h=c.ok?t.z.object({state:r.z.string(),total_count:i.z.number()}).safeParse(c.data):null;return{ok:!0,data:{checkRuns:m?.success?m.data.check_runs.map(e=>({status:e.status,conclusion:e.conclusion})):null,combined:h?.success?{state:h.data.state,total:h.data.total_count}:null}}}async function N(e,a,i,o,s,f,m,h={}){if(!(0,u.M)(a)||!(0,l.c)(o,s)||!/^[0-9a-f]{40}$/.test(f)||!Number.isInteger(i)||i<=0)return p;let g=await d("PUT",`/repos/${(0,u.f)(a)}/pulls/${i}/merge`,e,{merge_method:"squash",sha:f,commit_title:`Watchbell: ${m.replace(/^Watch(?:bell|post):\s*/,"")}`.slice(0,250)},h);if(!g.ok)return 405===g.status?{ok:!1,kind:"format",status:405,error:"GitHub says the PR can't be merged now (405)."}:409===g.status?{ok:!1,kind:"format",status:409,error:"The PR's head moved since the checks were read (409)."}:g;let y=t.z.object({merged:n.z.boolean(),sha:r.z.string()}).safeParse(g.data);return y.success&&y.data.merged?{ok:!0,data:{sha:y.data.sha}}:c("the merge")}async function P(e,n,a,i={}){if(!(0,u.M)(n)||!Number.isInteger(a)||a<=0)return p;let s=await d("GET",`/repos/${(0,u.f)(n)}/pulls/${a}/files?per_page=100`,e,void 0,i);if(!s.ok)return s;let l=o.z.array(t.z.object({filename:r.z.string(),previous_filename:r.z.string().optional()})).safeParse(s.data);return l.success?{ok:!0,data:l.data.map(e=>({filename:e.filename,previous:e.previous_filename??null}))}:c("the PR's files")}let O=t.z.object({name:r.z.string().optional(),email:r.z.string().optional()}).nullable().optional();async function C(e,n,a,i={}){if(!(0,u.M)(n)||!Number.isInteger(a)||a<=0)return p;let s=await d("GET",`/repos/${(0,u.f)(n)}/pulls/${a}/commits?per_page=100`,e,void 0,i);if(!s.ok)return s;let l=o.z.array(t.z.object({sha:r.z.string().regex(/^[0-9a-f]{40}$/),author:t.z.object({login:r.z.string()}).nullable().optional(),commit:t.z.object({message:r.z.string(),author:O})})).safeParse(s.data);return l.success?{ok:!0,data:l.data.map(e=>({sha:e.sha,login:e.author?.login??null,name:e.commit.author?.name??"",email:e.commit.author?.email??"",message:e.commit.message}))}:c("the PR's commits")}async function j(e,n,a,i={}){if(!(0,u.M)(n)||!/^[0-9a-f]{40}$/.test(a))return p;let s=await d("GET",`/repos/${(0,u.f)(n)}/commits/${a}`,e,void 0,i);if(!s.ok)return s;let l=t.z.object({files:o.z.array(t.z.object({filename:r.z.string(),previous_filename:r.z.string().optional()}))}).safeParse(s.data);return l.success?{ok:!0,data:l.data.files.flatMap(e=>[e.filename,...e.previous_filename?[e.previous_filename]:[]])}:c("the commit")}async function D(e,n={}){let a=await d("GET","/user",e,void 0,n);if(!a.ok)return a;let i=t.z.object({login:r.z.string().min(1)}).safeParse(a.data);return i.success?{ok:!0,data:i.data.login}:c("the token's user")}async function M(e,t,r,n={}){if(!/^[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}$/.test(t))return p;let a=await d("POST",`/repos/${t}/dispatches`,e,{event_type:"watchpost-lockfile",client_payload:r},n);return a.ok?{ok:!0,data:!0}:a}e.s(["M",0,m,"s",0,E,"h",0,j,"k",0,_,"y",0,$,"B",0,M,"$",0,v,"l",0,k,"E",0,b,"C",0,N,"x",0,S,"e",0,R,"P",0,C,"O",0,P,"b",0,x,"D",0,A,"H",0,f,"z",0,D])},958948,e=>{var t=e.i(75064),r=e.i(260417),n=e.i(492973),a=e.i(246517),i=e.i(909592);let o=e=>/^[A-Za-z0-9_.-]{1,100}\/[A-Za-z0-9_.-]{1,100}$/.test(e)&&!e.includes(".."),s=e=>e.split("/").map(encodeURIComponent).join("/");async function l(e,t,r,n="application/vnd.github+json"){let a,i=r.timeoutMs??5e3;try{a=await (r.fetch??fetch)(`https://api.github.com${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:n,"X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell"},signal:AbortSignal.timeout(i),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`GitHub didn't answer within ${Math.round(i/1e3)} seconds.`:"Couldn't reach GitHub."}}let o=await a.text().catch(()=>"");if(a.ok){let e=null;if(n.endsWith("+json")&&!n.includes(".raw"))try{e=JSON.parse(o)}catch{e=null}return{ok:!0,data:e,text:o,headers:a.headers}}let s=a.status;if(401===s)return{ok:!1,kind:"auth",status:s,error:"GitHub rejected this token (401). It may have expired or been revoked."};if((403===s||429===s)&&("0"===a.headers.get("x-ratelimit-remaining")||429===s)){let e=Number(a.headers.get("x-ratelimit-reset"));return{ok:!1,kind:"transient",status:s,retryAfterS:Number.isFinite(e)&&e>0?Math.max(1,e-Math.floor(Date.now()/1e3)):60,error:"GitHub's rate limit is used up for now. The next run tries again."}}return 403===s?{ok:!1,kind:"scope",status:s,error:"This token can't read that (403). It needs Metadata, Contents and Actions read on the repository."}:404===s?{ok:!1,kind:"missing",status:s,error:"GitHub doesn't show this to the token (404)."}:{ok:!1,kind:"transient",status:s,error:`GitHub returned an error (${s}).`}}let u=t.z.object({id:r.z.number(),name:n.z.string(),full_name:n.z.string(),owner:t.z.object({login:n.z.string()}),default_branch:n.z.string().nullish(),private:a.z.boolean(),archived:a.z.boolean().optional(),html_url:n.z.string().nullish(),pushed_at:n.z.string().nullish()}),d=e=>({ok:!1,kind:"format",error:`GitHub answered ${e} in a format the console doesn't recognise.`});async function c(e,r={}){let a=await l("/user",e,r);return a.ok?t.z.object({login:n.z.string()}).safeParse(a.data).success?{ok:!0,data:{expiresAt:function(e){let t=e.get("github-authentication-token-expiration")?.trim();if(!t)return null;let r=/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})\s*(UTC|Z|[+-]\d{2}:?\d{2})?$/.exec(t);if(!r)return null;let n=r[3]&&"UTC"!==r[3]&&"Z"!==r[3]?r[3].includes(":")?r[3]:`${r[3].slice(0,3)}:${r[3].slice(3)}`:"Z",a=new Date(`${r[1]}T${r[2]}${n}`);return Number.isNaN(a.getTime())?null:a}(a.headers)}}:d("the token check"):a}async function p(e,t={}){let r=[];for(let n=1;n<=3;n++){let a=await l(`/user/repos?per_page=100&page=${n}&sort=pushed&affiliation=owner,collaborator,organization_member`,e,t);if(!a.ok)return a;let s=i.z.array(u).safeParse(a.data);if(!s.success)return d("the repository list");for(let e of s.data){if(!o(e.full_name))continue;let t=e.pushed_at?new Date(e.pushed_at):null;r.push({id:String(e.id),owner:e.owner.login,name:e.name,fullName:e.full_name,defaultBranch:e.default_branch??null,private:e.private,archived:e.archived??!1,htmlUrl:e.html_url??null,pushedAt:t&&!Number.isNaN(t.getTime())?t:null})}if(s.data.length<100)return{ok:!0,data:{repos:r,truncated:!1}}}return{ok:!0,data:{repos:r,truncated:!0}}}async function f(e,t,r={}){if(!o(t))return{ok:!0,data:null};let n=await l(`/repos/${s(t)}/contents/package.json`,e,r,"application/vnd.github.raw+json");if(!n.ok)return"missing"===n.kind?{ok:!0,data:null}:n;if(n.text.length>262144)return{ok:!0,data:null};try{let e=JSON.parse(n.text).name;return{ok:!0,data:"string"==typeof e&&e.trim()&&e.length<=214?e.trim():null}}catch{return{ok:!0,data:null}}}let m=t.z.object({total_count:r.z.number(),workflow_runs:i.z.array(t.z.object({status:n.z.string().nullish(),conclusion:n.z.string().nullish(),name:n.z.string().nullish(),display_title:n.z.string().nullish(),head_branch:n.z.string().nullish(),head_sha:n.z.string().nullish(),html_url:n.z.string().nullish(),run_number:r.z.number().nullish(),updated_at:n.z.string().nullish(),created_at:n.z.string().nullish()}))});async function h(e,t,r,n={}){if(!o(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let a=new URLSearchParams({per_page:"1",exclude_pull_requests:"true",...r?{branch:r}:{}}),i=await l(`/repos/${s(t)}/actions/runs?${a}`,e,n);if(!i.ok)return i;let u=m.safeParse(i.data);if(!u.success)return d("the Actions runs");let c=u.data.workflow_runs[0];return c?{ok:!0,data:{status:c.status??"unknown",conclusion:c.conclusion??null,name:c.name??c.display_title??null,branch:c.head_branch??null,sha:c.head_sha??null,url:c.html_url?.startsWith("https://github.com/")?c.html_url:null,at:c.updated_at??c.created_at??null,runNumber:c.run_number??null}}:{ok:!0,data:{none:!0}}}let g=e=>/^[A-Za-z0-9._\/-]{1,200}$/.test(e)&&!e.includes("..")&&!e.startsWith("/")&&!e.endsWith("/");async function y(e,t,r,n,a,i={}){if(!o(t)||!g(n)||!r||r.split("/").includes("..")||r.startsWith("/"))return{ok:!1,kind:"format",error:"That isn't a file in a repository."};let u=r.split("/").map(encodeURIComponent).join("/"),d=await l(`/repos/${s(t)}/contents/${u}?ref=${encodeURIComponent(n)}`,e,i,"application/vnd.github.raw+json");return d.ok?Buffer.byteLength(d.text,"utf8")>a||d.text.includes("\0")||(d.text.match(/�/g)?.length??0)>8?{ok:!0,data:null}:{ok:!0,data:d.text}:d}async function b(e,r,a,u={}){if(!o(r)||!/^[0-9a-f]{40}$/.test(a))return{ok:!1,kind:"format",error:"That isn't a repository or commit."};let c=await l(`/repos/${s(r)}/actions/runs?head_sha=${a}&per_page=50`,e,u);if(!c.ok)return c;let p=t.z.object({workflow_runs:i.z.array(t.z.object({status:n.z.string().nullish(),conclusion:n.z.string().nullish()}))}).safeParse(c.data);return p.success?{ok:!0,data:p.data.workflow_runs.map(e=>({status:e.status??"queued",conclusion:e.conclusion??null}))}:d("the Actions runs")}t.z.object({sha:n.z.string().optional(),truncated:a.z.boolean().optional(),tree:i.z.array(t.z.object({path:n.z.string(),type:n.z.string(),size:r.z.number().optional()}))}),e.s(["$",0,262144,"V",0,y,"j",0,l,"k",0,c,"M",0,o,"c",0,g,"W",0,h,"o",0,p,"q",0,f,"f",0,s,"L",0,b])},198552,974034,e=>{var t=e.i(75064),r=e.i(492973),n=e.i(909592),a=e.i(260417),i=e.i(710075),o=e.i(932378),s=e.i(246517);let l=/^[A-Za-z0-9._-]{1,100}$/,u=e=>e.trim().replace(/^\.\//,"").split("/").filter(e=>""!==e&&"."!==e);function d(e){if("string"!=typeof e)return null;let t=u(e);if(!t.length||t.length>4||t.some(e=>".."===e||!l.test(e)))return null;let r=t.join("/");return r.length<=150?r:null}function c(e){if("string"!=typeof e||!u(e).length||null!==d(e))return null;let t=e.replace(/[\u0000-\u001f\u007f-\u009f]/g,"").trim();return t?t.length>80?`${t.slice(0,79)}…`:t:null}function p(e){let t=e.trim().replace(/^\.\//,"").replace(/\/+$/,"").split("**").map(e=>e.split("*").map(e=>e.replace(/[.+?^${}()|[\]\\]/g,"\\$&")).join("[^/]*")).join(".*");return RegExp(`^${t}$`)}e.s(["Q",0,d,"x",0,e=>e?`${e} (the Vercel project's Root Directory)`:"the repository root","H",0,(e,t)=>e?`${e}/${t}`:t,"p",0,function(e,t,r){if("npm"===e)try{let e=JSON.parse(t);return!!e.packages&&"object"==typeof e.packages&&Object.hasOwn(e.packages,r)}catch{return!1}if("pnpm"===e){let e=t.search(/^importers:\s*$/m);if(e<0)return!1;let n=t.slice(e).split(/\n(?=\S)/)[0],a=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&");return RegExp(`^ {2}['"]?${a}['"]?:\\s*$`,"m").test(n)}return!1},"l",0,c,"F",0,function(e,t){let r;if(!e)return!1;try{r=JSON.parse(e)}catch{return!1}let n=r&&"object"==typeof r&&!Array.isArray(r)?r.workspaces:void 0,a=(Array.isArray(n)?n:n&&"object"==typeof n&&Array.isArray(n.packages)?n.packages:[]).filter(e=>"string"==typeof e&&""!==e.trim()),i=a.filter(e=>e.trim().startsWith("!")).map(e=>e.trim().slice(1));return a.some(e=>!e.trim().startsWith("!")&&p(e).test(t))&&!i.some(e=>p(e).test(t))}],974034);let f="https://api.vercel.com";async function m(e,t,r){let n;try{n=await (r.fetch??fetch)(`${f}${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:"application/json"},signal:AbortSignal.timeout(r.timeoutMs??5e3),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?"Vercel didn't answer within 5 seconds.":"Couldn't reach Vercel."}}if(401===n.status||403===n.status)return{ok:!1,kind:"auth",status:n.status,error:`Vercel rejected this credential (${n.status}).`};if(429===n.status){let e=Number(n.headers.get("Retry-After"));return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60,error:"Vercel says there were too many requests."}}return n.ok?{ok:!0,data:await n.json().catch(()=>null)}:{ok:!1,kind:"transient",status:n.status,error:`Vercel returned an error (${n.status}).`}}async function h(e,n,a,i,o){let s;try{s=await (o.fetch??fetch)(`${f}${n}`,{method:e,headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...void 0===i?{}:{"Content-Type":"application/json"}},...void 0===i?{}:{body:JSON.stringify(i)},signal:AbortSignal.timeout(o.timeoutMs??5e3),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?"Vercel didn't answer within 5 seconds; the action may still have happened. Check the deployments in a minute.":"Couldn't reach Vercel."}}if(401===s.status)return{ok:!1,kind:"auth",status:401,error:"Vercel rejected this credential (401)."};if(403===s.status)return{ok:!1,kind:"scope",status:403,error:"Vercel refused this token for that project (403)."};if(429===s.status){let e;return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(e=Number(s.headers.get("Retry-After")))&&e>0?e:60,error:"Vercel says there were too many requests."}}let l=await s.json().catch(()=>null);if(!s.ok){let e=t.z.object({error:t.z.object({code:r.z.string().regex(/^[A-Za-z0-9_-]{1,60}$/)})}).safeParse(l);return{ok:!1,kind:"transient",status:s.status,error:`Vercel refused this (${s.status}${e.success?`, ${e.data.error.code}`:""}).`}}return{ok:!0,data:l}}let g=e=>`teamId=${encodeURIComponent(e)}`,y=encodeURIComponent,b=e=>({ok:!1,kind:"format",error:`Vercel answered ${e} in a format the console doesn't recognise.`});function w(e,t,r=[]){let n=e.filter(e=>!1!==e.verified&&!e.redirect&&!e.gitBranch&&!e.customEnvironmentId),a=new Set(r.map(e=>e.toLowerCase())),i=n.map((t,r)=>{let n;return{name:t.name,key:[...(n=t.name,[+!e.some(e=>e.redirect?.toLowerCase()===n.toLowerCase()),+!!n.endsWith(".vercel.app"),+!a.has(n.toLowerCase()),n.length]),r]}}).sort((e,t)=>{for(let r=0;r<e.key.length;r++)if(e.key[r]!==t.key[r])return e.key[r]-t.key[r];return 0});return i[0]?.name??`${t}.vercel.app`}let v=t.z.object({teams:n.z.array(t.z.object({id:r.z.string(),slug:r.z.string(),name:r.z.string().nullish()}))});async function k(e,t={}){let r=await m("/v2/teams?limit=100",e,t);if(!r.ok)return r;let n=v.safeParse(r.data);return n.success?{ok:!0,data:n.data.teams.map(e=>({id:e.id,slug:e.slug,name:e.name??e.slug}))}:b("the team list")}async function _(e,r={}){let n=await m("/v5/user/tokens/current",e,r);if(!n.ok)return n;let i=t.z.object({token:t.z.object({expiresAt:a.z.number().nullish()})}).safeParse(n.data);return i.success?{ok:!0,data:i.data.token.expiresAt?new Date(i.data.token.expiresAt):null}:b("the token details")}let A=t.z.object({id:r.z.string(),readyState:r.z.string().nullish(),createdAt:a.z.number().nullish().catch(null),alias:n.z.array(r.z.string()).nullish().catch(null)}).nullish(),I=t.z.object({type:r.z.string(),jobStatus:r.z.string(),toDeploymentId:r.z.string(),requestedAt:a.z.number()}).nullish().catch(null);function S(e,t){let r=e?.readyState==="READY"?e.id:null;return t&&"succeeded"===t.jobStatus&&("rollback"===t.type||"promote"===t.type&&"number"==typeof e?.createdAt&&e.createdAt<=t.requestedAt)?t.toDeploymentId:r}let $=t.z.object({id:r.z.string(),name:r.z.string(),framework:r.z.string().nullish(),createdAt:a.z.number(),link:t.z.object({productionBranch:r.z.string().nullish(),type:r.z.string().nullish(),org:r.z.string().nullish(),repo:r.z.string().nullish()}).nullish(),resourceConfig:t.z.object({functionDefaultRegions:n.z.array(r.z.string()).nullish()}).nullish(),targets:t.z.object({production:A}).nullish(),lastAliasRequest:I,rootDirectory:r.z.string().nullish().catch(null)}),T=t.z.object({projects:n.z.array($),pagination:t.z.object({next:a.z.number().nullish()}).nullish()});async function R(e,t,r={}){let n,a=[];for(let i=0;i<10;i++){let i=await m(`/v10/projects?teamId=${encodeURIComponent(t.id)}&limit=100${n?`&until=${n}`:""}`,e,r);if(!i.ok)return i;let o=T.safeParse(i.data);if(!o.success)return b("the project list");for(let e of o.data.projects)a.push({id:e.id,name:e.name,team:t,framework:e.framework??null,createdAt:new Date(e.createdAt),productionBranch:e.link?.productionBranch??null,currentDeploymentId:S(e.targets?.production,e.lastAliasRequest),repo:e.link?.type&&e.link.org&&e.link.repo?{type:e.link.type,org:e.link.org,repo:e.link.repo}:null,functionRegions:e.resourceConfig?.functionDefaultRegions??[],rootDirectory:d(e.rootDirectory),rootDirectoryUnsupported:c(e.rootDirectory),productionAliases:e.targets?.production?.alias??[]});if(!(n=o.data.pagination?.next))break}return{ok:!0,data:a}}let x=t.z.object({uid:r.z.string(),projectId:r.z.string(),state:r.z.string().nullish(),readyState:r.z.string().nullish(),target:r.z.string().nullish(),source:r.z.string().nullish(),url:r.z.string().nullish(),createdAt:a.z.number().nullish(),created:a.z.number().nullish(),buildingAt:a.z.number().nullish(),ready:a.z.number().nullish(),meta:i.z.record(r.z.string(),o.z.unknown()).nullish(),gitSource:t.z.object({ref:r.z.string().nullish(),sha:r.z.string().nullish()}).nullish().catch(null)}),E=e=>"string"==typeof e&&e.length?e:null,N=e=>e?new Date(e):null;function P(e,t){var r,n;let a,i,o=e.readyState??e.state??"BUILDING",s=e.meta??{};return{id:t,projectId:e.projectId,state:"READY"===o?"ready":"ERROR"===o?"error":"CANCELED"===o?"canceled":"building",rawState:o,target:"production"===e.target?"production":"preview",branch:E(s.githubCommitRef)??E(s.gitCommitRef)??E(s.gitlabCommitRef)??E(s.bitbucketCommitRef)??E(e.gitSource?.ref),sha:E(s.githubCommitSha)??E(s.gitCommitSha)??E(s.gitlabCommitSha)??E(s.bitbucketCommitSha)??E(e.gitSource?.sha),message:E(s.githubCommitMessage)??E(s.gitCommitMessage)??E(s.gitlabCommitMessage)??E(s.bitbucketCommitMessage),source:e.source??null,url:e.url??null,createdAt:new Date(e.createdAt??e.created??0),buildingAt:N(e.buildingAt),readyAt:N(e.ready),...(r=s,n=e.gitSource?.ref,a=E(r.githubCommitRef)?"github":E(r.gitlabCommitRef)?"gitlab":E(r.bitbucketCommitRef)?"bitbucket":E(n)?"gitSource":E(r.gitCommitRef)?"cli":null,i="1"===r.gitDirty||1===r.gitDirty||!0===r.gitDirty,{...a?{branchFrom:a}:{},...i?{gitDirty:!0}:{}})}}async function O(e,r,a,i={}){let o=await m(`/v7/deployments?teamId=${encodeURIComponent(r.id)}&limit=${a.limit??100}${a.since?`&since=${a.since}`:""}`,e,i);if(!o.ok)return o;let s=t.z.object({deployments:n.z.array(x)}).safeParse(o.data);return s.success?{ok:!0,data:s.data.deployments.map(e=>P(e,e.uid))}:b("the deployment list")}let C=x.omit({uid:!0,projectId:!0}).extend({id:r.z.string(),projectId:r.z.string().nullish()});async function j(e,t,r,n={}){let a=await m(`/v13/deployments/${encodeURIComponent(r)}?teamId=${encodeURIComponent(t.id)}`,e,n);if(!a.ok)return a;let i=C.safeParse(a.data);return i.success?{ok:!0,data:P({...i.data,uid:i.data.id,projectId:i.data.projectId??""},i.data.id)}:b("the deployment")}let D=t.z.object({name:r.z.string(),targets:t.z.object({production:A}).nullish(),lastAliasRequest:I});async function M(e,t,r,n={}){let a=await m(`/v9/projects/${y(r)}?${g(t)}`,e,n);if(!a.ok)return a;let i=D.safeParse(a.data);return i.success?{ok:!0,data:{name:i.data.name,currentId:S(i.data.targets?.production,i.data.lastAliasRequest)}}:b("the project")}let z=t.z.object({deployments:n.z.array(x.extend({projectId:r.z.string().nullish()}))});async function q(e,t,r,n,a,i){let o=`projectId=${y(r)}&target=production&state=${n}&limit=${a}&${g(t)}`,s=await m(`/v6/deployments?${o}`,e,i);if(!s.ok)return s;let l=z.safeParse(s.data);return l.success?{ok:!0,data:l.data.deployments.map(e=>P({...e,projectId:e.projectId??r},e.uid))}:b("the deployment list")}async function L(e,t,r,n={}){return q(e,t,r,"READY",5,n)}async function U(e,t,r,n={}){let a=await q(e,t,r,"BUILDING,QUEUED,INITIALIZING",1,n);return a.ok?{ok:!0,data:a.data[0]??null}:a}async function H(e,n,a,i={}){let o=await h("POST",`/v13/deployments?${g(n)}`,e,{name:a.name,project:a.projectId,deploymentId:a.deploymentId,target:"production"},i);if(!o.ok)return o;let s=t.z.object({id:r.z.string()}).safeParse(o.data);return{ok:!0,data:{id:s.success?s.data.id:""}}}async function B(e,t,r,n,a={}){let i=await h("POST",`/v1/projects/${y(r)}/rollback/${y(n)}?${g(t)}`,e,void 0,a);return i.ok?{ok:!0,data:null}:i}let V=t.z.object({domains:n.z.array(t.z.object({name:r.z.string(),redirect:r.z.string().nullish(),verified:s.z.boolean().optional(),gitBranch:r.z.string().nullish(),customEnvironmentId:r.z.string().nullish().catch(null)})),pagination:t.z.object({next:a.z.number().nullish()}).nullish()});async function G(e,t,r,n={}){let a,i=[];for(let o=0;o<10;o++){let o=await m(`/v9/projects/${encodeURIComponent(r)}/domains?teamId=${encodeURIComponent(t)}&limit=100${a?`&until=${a}`:""}`,e,n);if(!o.ok)return o;let s=V.safeParse(o.data);if(!s.success)return b("the domain list");for(let e of s.data.domains)i.push({name:e.name,redirect:e.redirect??null,verified:!1!==e.verified,gitBranch:e.gitBranch??null,customEnvironmentId:e.customEnvironmentId??null});if(!(a=s.data.pagination?.next))return{ok:!0,data:i}}return{ok:!1,kind:"transient",error:"The project has more than 1000 domains; Watchbell kept the domains it had."}}async function K(e,t,r,n,a={},i=[]){let o=await G(e,t,r,a);return o.ok?{ok:!0,data:w(o.data,n,i)}:o}let F=t.z.object({misconfigured:s.z.boolean(),configuredBy:r.z.string().nullish(),recommendedIPv4:n.z.array(t.z.object({value:n.z.array(r.z.string())})).default([])});async function W(e,t,r,n={}){let a=await m(`/v6/domains/${encodeURIComponent(r)}/config?teamId=${encodeURIComponent(t)}`,e,n);if(!a.ok)return a;let i=F.safeParse(a.data);return i.success?{ok:!0,data:{misconfigured:i.data.misconfigured,configuredBy:i.data.configuredBy??null,recommendedIps:i.data.recommendedIPv4.flatMap(e=>e.value)}}:b("the domain configuration")}async function X(e,t={}){let r=await k(e,t);if(!r.ok)return r;let n=[],a=[],i=[];for(let o of r.data){let r=await R(e,o,t);if(!r.ok){if(403===r.status){a.push(o.name),i.push(o.id);continue}return r}for(let e of r.data)n.push({externalId:e.id,name:e.name,meta:{teamId:o.id,teamSlug:o.slug,teamName:o.name,framework:e.framework,productionBranch:e.productionBranch,createdAt:e.createdAt.toISOString(),repo:e.repo?`${e.repo.org}/${e.repo.repo}`:null,repoType:e.repo?.type??null,functionRegions:e.functionRegions,rootDirectory:e.rootDirectory,...e.rootDirectoryUnsupported?{rootDirectoryUnsupported:e.rootDirectoryUnsupported}:{},...e.productionAliases.length?{productionAliases:e.productionAliases}:{}}})}return a.length===r.data.length?{ok:!1,kind:"auth",error:"This token can't read any of your Vercel teams. Create a token with access to them."}:{ok:!0,data:{apps:n,skippedTeams:a,skippedTeamIds:i}}}async function J(e,r,a,i,o={}){if(!/^[0-9a-f]{40}$/.test(i))return b("the commit");let s=new URLSearchParams({teamId:r,projectId:a,sha:i,limit:"10"}),l=await m(`/v6/deployments?${s}`,e,o);if(!l.ok)return l;let u=t.z.object({deployments:n.z.array(x)}).safeParse(l.data);return u.success?{ok:!0,data:u.data.deployments.map(e=>P(e,e.uid)).filter(e=>e.projectId===a&&(null===e.sha||e.sha===i)).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())}:b("the deployment list")}async function Y(e,t,r,n={}){let a=await m(`/v9/projects/${y(r)}?${g(t)}`,e,n);if(!a.ok)return a;let i=D.safeParse(a.data);if(!i.success)return b("the project");let o=i.data.targets?.production??null,s=i.data.lastAliasRequest??null;return{ok:!0,data:{currentId:S(o,s),latest:o?{id:o.id,readyState:o.readyState??null,createdAt:o.createdAt??null}:null,promote:s&&"promote"===s.type&&"succeeded"===s.jobStatus?{toDeploymentId:s.toDeploymentId,requestedAt:s.requestedAt}:null}}}e.s(["n",0,w,"c",0,M,"C",0,J,"G",0,X,"Q",0,W,"S",0,j,"K",0,O,"M",0,G,"W",0,R,"X",0,k,"r",0,L,"q",0,K,"k",0,Y,"L",0,H,"E",0,B,"N",0,U,"o",0,_],198552)},902509,e=>{var t=e.i(122603);let r=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,n="[\"'`]";function a(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let i={"&":"&",""":'"',"'":"'","'":"'","/":"/","/":"/"},o=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>i[e]??i[e.toLowerCase()]??e),s=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${n}(${r})${n}`,"g"),l=RegExp(String.raw`version\s*:\s*${n}(${r})${n}\s*,\s*appDir\s*:`,"g"),u=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${n}(${r})${n}`,"g"),d=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,c=e=>e.replace(/[$]/g,"\\$");var p=e.i(52535);async function f(e,i,m={}){let h=m.deadline??1/0,g=m.now??(()=>new Date),y=e=>Math.floor(Math.min(e,h)-Date.now()),b=Date.now()+15e3;if(0>=y(b))return null;let w=(e,t)=>({version:i?.version??null,status:e,findings:i?.findings??[],reason:t,checkedAt:g()}),v=(e,r)=>(0,t.K)(e,{maxBytes:3145728,timeoutMs:y(b),lookup:m.lookup,fetch:m.fetch,userAgent:"OpsConsole-Security/1.0 (+https://watchbell.west-solutions.web.id)",sameOrigin:r}),k=await v(`https://${e}/`,"www");if(!k.ok&&k.error===t.l)return w("unknown","the site redirects to another host");if(!k.ok||200!==k.status)return Date.now()>=h?null:w("error",`Couldn't load the site: ${k.ok?`HTTP ${k.status}`:k.error}`);let _=(function(e,t){let r;try{r=new URL(t)}catch{return[]}let n=new Set,a=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(o(t[2].trim()),r)}catch{continue}if("https:"===e.protocol&&e.origin===r.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!n.has(e.href))){var i;n.add(e.href),a.push({href:e.href,rank:(i=e.pathname,/\/main-app[-.]/.test(i)?0:/\/(main|app-index)[-.]/.test(i)?1:/\/(webpack|polyfills|framework)[-.]/.test(i)?3:2),i:a.length})}}return a.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})(k.body,k.url).slice(0,12);if(0===_.length)return w("unknown",k.body.includes("/_next/")?"version not exposed":"not a Next.js site");let A=null,I=0,S=!1;for(let e of _){if(0>=y(b)){S=!0;break}let t=await v(e,!0);if(t.ok&&200===t.status&&(I++,A=function(e){for(let t of e.matchAll(s))if(a(t[1]))return t[1];for(let t of[l,u])for(let r of e.matchAll(t))if(a(r[1]))return r[1];for(let t of e.matchAll(d)){let i=t[1]??"version",o=RegExp(String.raw`(?:^|[^\w$.])${c(i)}\s*=\s*${n}(${r})${n}`,"g"),s=null;for(let r of e.matchAll(o)){if((r.index??0)>=(t.index??0))break;s=r[1]}if(s&&a(s))return s}return null}(t.body)))break}if(!A)return Date.now()>=h?null:S||0>=y(b)?w("error","Reading the site's scripts took longer than 15 s"):0===I?w("error","Couldn't load the site's scripts"):w("unknown","version not exposed");let $=y(Date.now()+1e4);if($<=0)return null;let T=await (0,p.y)(A,{timeoutMs:$,fetch:m.fetch});return T.ok?{version:A,status:T.findings.length?"vulnerable":"ok",findings:T.findings,reason:null,checkedAt:g()}:Date.now()>=h?null:w("error",T.error)}e.s(["y",0,35e3,"P",0,f,"F",0,function(e,t){return Math.min(t+35e3,e+55e3)}],902509)},228516,e=>{var t=e.i(75064),r=e.i(909592),n=e.i(492973),a=e.i(246517);let i=t.z.object({result:t.z.object({releases:r.z.array(t.z.object({name:n.z.string(),isEol:a.z.boolean(),eolFrom:n.z.string().nullish(),latest:t.z.object({name:n.z.string()}).nullish()})).min(1)})});function o(e){let t=i.safeParse(e);return t.success?t.data.result.releases.map(e=>({name:e.name,isEol:e.isEol,eolFrom:e.eolFrom??null,latest:e.latest?.name??null})):null}async function s(e={}){let t;try{t=await (e.fetch??fetch)("https://endoflife.date/api/v1/products/nextjs/",{method:"GET",headers:{Accept:"application/json"},signal:AbortSignal.timeout(e.timeoutMs??8e3),cache:"no-store"})}catch{return{ok:!1,error:"Couldn't reach endoflife.date"}}if(!t.ok)return{ok:!1,error:`endoflife.date returned an error (${t.status})`};let r=o(await t.json().catch(()=>null));return r?{ok:!0,cycles:r}:{ok:!1,error:"endoflife.date answered in a format the console doesn't recognise"}}e.s(["T",0,"eol.nextjs","z",0,s,"b",0,o])},631065,e=>{let t={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function r(e){return e.reduce((e,r)=>t[r.severity]>t[e]?r.severity:e,"UNKNOWN")}let n=e=>`${e} known vulnerabilit${1===e?"y":"ies"}`;e.s(["t",0,function(e,a,i){let o=new Set((a?.findings??[]).map(e=>e.id));if("vulnerable"===i.status&&i.findings.length>0){if(i.findings.every(e=>o.has(e.id)))return null;let a=r(i.findings);return{kind:t[a]>=t.HIGH?"err":"warn",message:`${e} runs Next.js ${i.version} with ${n(i.findings.length)} (${a.toLowerCase()})`,detail:i.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===i.status&&o.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${i.version})`,detail:null}:null},"I",0,function(e){return[...e].sort((e,r)=>t[r.severity]-t[e.severity]||(e.id<r.id?-1:+(e.id>r.id)))},"q",0,n,"N",0,r])},663948,e=>{function t(e){let[t,...r]=e.trim().split("-"),n=t.split(".").map(e=>Number.parseInt(e,10)||0);return{nums:[n[0]??0,n[1]??0,n[2]??0],pre:r.length?r.join("-").split("."):[]}}e.s(["f",0,function(e,r){let n=t(e),a=t(r);for(let e=0;e<3;e++)if(n.nums[e]!==a.nums[e])return n.nums[e]-a.nums[e];return function(e,t){if(!e.length||!t.length)return e.length?-1:+!!t.length;for(let r=0;r<Math.max(e.length,t.length);r++){if(void 0===e[r])return -1;if(void 0===t[r])return 1;let n=/^\d+$/.test(e[r])?Number(e[r]):null,a=/^\d+$/.test(t[r])?Number(t[r]):null;if(null!==n&&null!==a){if(n!==a)return n-a}else if(null!==n||null!==a)return null!==n?-1:1;else if(e[r]!==t[r])return e[r]<t[r]?-1:1}return 0}(n.pre,a.pre)}])},760859,e=>{let t=new Set(["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","db","fs"]);function r(e){let t=e+1,r="";for(;t>0;)r=String.fromCharCode(97+(t-1)%26)+r,t=Math.floor((t-1)/26);return r}let n=e=>(e instanceof Date?e:new Date(e)).getTime(),a=(e,t)=>n(e.firstSeenAt)-n(t.firstSeenAt)||(e.id<t.id?-1:+(e.id>t.id));function i(e,t){return[...e].sort(a).map((e,n)=>({id:e.id,name:e.name,alias:`${t}-${r(n)}`}))}function o(e,t){return e.db.find(e=>e.id===t)?.alias??"db-?"}let s=/[\p{L}\p{N}._%+-]+@[\p{L}\p{N}-]+(?:\.[\p{L}\p{N}-]+)*\.[\p{L}]{2,}/gu;function l(e){return e.replace(s,"[email hidden]")}let u=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d="[\\p{L}\\p{N}_-]",c=new WeakMap;function p(e,t,r){let n;if(!e)return e;let a=r?t.db.find(e=>e.id===r):void 0,i=a&&a.name.trim().length>=2?e.replace((n=a.name,RegExp(`(?<!${d})${u(n)}(?!${d})`,"giu")),a.alias):e,o=function(e){if(c.has(e))return c.get(e);let t=new Set(e.app.map(e=>e.name.toLowerCase())),r=[...new Set(e.db.map(e=>e.name).filter(e=>e.trim().length>=2&&!t.has(e.toLowerCase())))].sort((e,t)=>t.length-e.length),n=new Map;for(let t of e.db)n.has(t.name.toLowerCase())||n.set(t.name.toLowerCase(),t.alias);let a=r.length?{re:RegExp(`(?<!${d})(?:${r.map(u).join("|")})(?!${d})`,"giu"),alias:n}:null;return c.set(e,a),a}(t);return o&&(i=i.replace(o.re,e=>o.alias.get(e.toLowerCase())??e)),l(i)}let f=String.raw`[\p{L}\p{N}_.-]`,m=String.raw`(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])`;new WeakMap;let h=new WeakMap;e.s(["a",0,{db:[],app:[]},"r",0,(e,t)=>e.app.find(e=>e.name===t)?.alias??"app-?","n",0,function(e,o=[]){let s=e.filter(e=>"app"===e.kind),l=i(s,"app"),u=[...o].sort((e,t)=>n(e.createdAt)-n(t.createdAt)||(e.id<t.id?-1:+(e.id>t.id))).map((e,t)=>({id:e.id,name:e.label,alias:`account-${t+1}`}));return{db:i(e.filter(e=>{let r;return null!=(r=e.kind)&&t.has(r)}),"db"),app:l,account:u,host:function(e,t){let n=[],i=new Set,o=(e,t,r)=>{let a=t.toLowerCase();i.has(a)||(i.add(a),n.push({id:e,name:a,alias:r}))},s=new Map(t.map(e=>[e.id,e])),l=e.filter(e=>"domain"===e.kind).sort(a),u=new Map;for(let e of l){let t=e.parentId?s.get(e.parentId):void 0;if(!t)continue;let r=(u.get(t.id)??0)+1;u.set(t.id,r),o(e.id,e.name,`${t.alias}${r>1?`-${r}`:""}.example`)}for(let e of t)o(`${e.id}:vercel`,`${e.name}.vercel.app`,`${e.alias}${u.has(e.id)?"-vercel":""}.example`);return e.filter(e=>"zone"===e.kind||"domain"===e.kind&&!(e.parentId&&s.has(e.parentId))).sort(a).filter(e=>!i.has(e.name.toLowerCase())).forEach((e,t)=>o(e.id,e.name,`site-${r(t)}.example`)),n}(e,l),team:function(e){let t=[];for(let r of[...e].sort(a)){let e=r.team?.trim();e&&!t.some(t=>t.name===e)&&t.push({id:`team:${e}`,name:e,alias:`team-${t.length+1}`})}return t}(s)}},"X",0,o,"o",0,function(e,t){let r;return{...e,title:(r=e.resourceId)&&t.db.some(e=>e.id===r)?o(t,e.resourceId):p(e.title,t,e.resourceId),message:p(e.message,t,e.resourceId),causedBy:p(e.causedBy,t)}},"G",0,l,"J",0,p,"d",0,function(e,t){let r=/^db-unlinked:(.+)$/.exec(e.key)?.[1];return{...e,subject:r?o(t,r):p(e.subject,t),title:p(e.title,t,r),why:p(e.why,t,r),fix:p(e.fix,t,r)}},"q",0,function(e,t){if(!e)return e;let r=function(e){let t=h.get(e);if(t)return t;let r=new Map((e.host??[]).map(e=>[e.alias.toLowerCase(),e.name])),n=new Map;for(let t of[...e.app,...e.db])t.name.trim()&&!n.has(t.alias.toLowerCase())&&n.set(t.alias.toLowerCase(),t.name);let a=e=>[...e].sort((e,t)=>t.length-e.length).map(u).join("|"),i={host:r.size?RegExp(String.raw`(?<![\p{L}\p{N}_-])(?:${a(r.keys())})${m}`,"giu"):null,hostName:r,names:n.size?RegExp(`(?<!${f})(?:${a(n.keys())})${m}`,"giu"):null,realName:n};return h.set(e,i),i}(t),n=e;return r.host&&(n=n.replace(r.host,e=>r.hostName.get(e.toLowerCase())??e)),r.names&&(n=n.replace(r.names,e=>r.realName.get(e.toLowerCase())??e)),l(n)}])},785194,e=>{var t=e.i(728335);function r(e,r){let[n,a,i]=(0,t.dayKey)(e).split("-").map(Number);return Array.from({length:r},(e,t)=>new Date(Date.UTC(n,a-1,i-(r-1-t))).toISOString().slice(0,10))}let n=Date.UTC(2e3,0,1);e.s(["F",0,90,"I",0,30,"W",0,r,"D",0,function(e,t,r){return n+Math.floor((e.getTime()-n)/t)*t-(r-1)*t},"w",0,function(e,t,n){return r(t,n).map(t=>e?.get(t))},"C",0,function(e){let t=new Map;for(let r of e){let e=t.get(r.monitorId);e||(e=new Map,t.set(r.monitorId,e));let n=e.get(r.day);e.set(r.day,{day:r.day,checks:(n?.checks??0)+r.checks,failures:(n?.failures??0)+r.failures,maint:(n?.maint??0)+(r.maint??0)})}return t},"f",0,function(e,t,r,n,a=null){let i=Array.from({length:n},()=>a);for(let a of e){let e=Math.round((a.t-t)/r);e>=0&&e<n&&(i[e]=a.v)}return i},"Y",0,function(e){let t=0,r=0;for(let n of e)n&&(t+=n.checks,r+=n.failures);return t?(t-r)/t*100:null}])},70377,e=>{e.s(["O",0,{events:200,deployments:200,apps:200,monitors:200,domains:200,databases:200,recentEvents:5,ongoingBuilds:5},"A",0,{rawChecksMs:6048e5,healthBuckets:30,metricBuckets:48,responseHours:24}])},549556,e=>{var t=e.i(516506),r=e.i(547963);let n={workloads:"Workloads",databases:"Databases",network:"Network",observe:"Observe",ai:"AI & API",admin:"Administration"},a={MonitorDown:"workloads",HighLatency:"workloads",DeploymentFailed:"workloads",DatabasePaused:"databases",StorageAlmostFull:"databases",NeonComputeHigh:"databases",FirestoreQuotaHigh:"databases",AutoPauseRisk:"databases",ComputeHigh:"databases",DbQuotaHigh:"databases",CertExpiringSoon:"network",DomainExpiringSoon:"network",DnsProxiedToVercel:"network",CollectorStale:"observe",CredentialExpiring:"admin",VulnerableDependency:"workloads",FrameworkVulnerable:"workloads",MonitorDomainMoved:"workloads"},i=new Set(["MonitorDown","HighLatency","DeploymentFailed","VulnerableDependency","FrameworkVulnerable","MonitorDomainMoved"]);e.s(["p",0,function(e){if((0,t.h)(e.ruleKey))return i.has(e.ruleKey)&&null!==e.resourceKind&&"app"!==e.resourceKind?"observe":a[e.ruleKey];let r=new Set(e.ruleKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),n=(...e)=>e.some(e=>r.has(e));return n("ai","router","gateway","model","models","provider","quota","llm","gemini")?"ai":n("key","keys","member","members","security","audit","credential","credentials","mfa","token")?"admin":n("database","db","storage","compute","neon","supabase","firestore","firebase")?"databases":n("domain","domains","dns","cert","certificate","tls","zone")?"network":"app"===e.resourceKind?"workloads":"observe"},"y",0,e=>r.X.proposedBy(n[e])])},756652,11339,e=>{var t=e.i(989578),r=e.i(633075),n=e.i(549556),a=e.i(564769),i=e.i(92748);let o=["LogErrorSpike","LogErrors","LogDbErrors"],s="timeout|ECONNREFUSED|too many connections|terminating connection|connection terminated|endpoint is disabled|compute.*suspend";RegExp(s,"i");let l=/^dpl_[A-Za-z0-9]{8,40}$/,u=/^ep-[a-z0-9-]{3,60}$/,d=/^[a-z0-9]{8,40}$/;function c(e,n,a){let i=n?(0,t.g)(n,a,120):"";return(0,r.l)((0,t.g)(i?`${e}. Most common: ${i}`:e,a,r.j)||e,r.j)}let p=e=>`${e.ruleKey}:${e.resourceId??""}:${e.action}`,f=new Set(["pending","approved","running"]);e.s(["s",0,864e5,"b",0,72e5,"V",0,3,"N",0,s,"G",0,20,"T",0,o,"v",0,72e5,"H",0,18e5,"w",0,10,"I",0,72e5,"x",0,function(e,t,r){let n=new Set(t.filter(e=>f.has(e.status)||null!==e.closedAt&&r.getTime()-e.closedAt.getTime()<72e5).map(p)),a=new Set;return e.filter(e=>{let t=p(e);return!(n.has(t)||a.has(t))&&(a.add(t),!0)})},"t",0,function(e,t,o){return(function(e,t,n){let a=[],o=n.getTime(),s=null!==e.liveAt&&o-e.liveAt.getTime()<72e5&&e.liveAt.getTime()<=o,p=e.previousNext?.status??"unknown";if(s&&e.errorsSinceLive>=Math.max(10,Math.ceil(5*e.baselineErrors/24))&&e.currentId&&e.previousId&&l.test(e.previousId)&&e.previousId!==e.currentId&&"vulnerable"!==p){let n=c(`${e.errorsSinceLive} errors since the deploy went live ${Math.max(1,Math.round((o-e.liveAt.getTime())/6e4))} min ago (${e.baselineErrors} in the 24 h before)`,e.topSinceLive,t);a.push({ruleKey:"LogErrorSpike",room:"workloads",action:"vercel_rollback",resourceKind:"app",resourceId:e.appId,targetRef:e.previousId,reason:"ok"===p?n:(0,r.l)(`${i.B} ${n}`)})}let f=null!==e.lastDeployAt&&o-e.lastDeployAt.getTime()<72e5;if(e.errors30>=20&&!f&&e.httpMonitorId&&a.push({ruleKey:"LogErrors",room:"workloads",action:"recheck",resourceKind:"app",resourceId:e.appId,targetRef:e.httpMonitorId,reason:c(`${e.errors30} errors in the last 30 min`,e.top30,t)}),e.dbErrors30>=3&&e.db){let r=c(`${e.dbErrors30} database connection errors in the last 30 min`,e.topDb,t),n=e.db;("neon_project"===n.kind||"neon_branch"===n.kind)&&n.wakeEndpoint&&u.test(n.wakeEndpoint)?a.push({ruleKey:"LogDbErrors",room:"databases",action:"neon_wake",resourceKind:n.kind,resourceId:n.resourceId,targetRef:n.wakeEndpoint,reason:r}):"supabase_project"===n.kind&&n.supabasePaused&&n.supabaseRef&&d.test(n.supabaseRef)&&a.push({ruleKey:"LogDbErrors",room:"databases",action:"supabase_restore",resourceKind:n.kind,resourceId:n.resourceId,targetRef:n.supabaseRef,reason:r})}return a})(e,t,o).map(i=>{let s="app"===i.resourceKind?(0,r.J)("app",e.appId,e.appName,t):(0,r.J)(i.resourceKind,i.resourceId,null,t);return{alertId:null,ruleKey:i.ruleKey,room:i.room,action:i.action,risk:a.H[i.action].risk,title:(0,r.M)(i.action,s),reason:i.reason,resourceKind:i.resourceKind,resourceId:i.resourceId,resourceName:s,targetRef:i.targetRef,proposedBy:(0,n.y)(i.room),expiresAt:new Date(o.getTime()+a.V)}})},"D",0,function(e,t){let r=e.getTime();return(null===t||!(r-t<27e4))&&(Math.floor(r/6e4)%5==0||null!==t&&r-t>=6e5)},"W",0,function(e,t){let r=new Set(t.map(p));return e.filter(e=>{let t;return"pending"===e.status&&(t=e.ruleKey,o.includes(t))&&!r.has(p(e))}).map(e=>e.id)}],756652);let m=new Set(["MonitorDown","LogErrorSpike"]);e.s(["r",0,72e5,"M",0,m,"s",0,function(e,t){let r=e=>({ok:!1,why:e});if(!e.setting.enabled)return r("off");if(!e.ruleKey||!m.has(e.ruleKey))return r("rule");let n=e.deploy;if(!n||!n.liveAt)return r("no live deploy");let a=t.getTime()-n.liveAt.getTime();return a<0||a>6e4*e.setting.windowMin?r("outside the window"):n.previousId&&e.targetRef===n.previousId&&n.previousId!==n.currentId?n.newestProdCreatedAt&&n.currentCreatedAt.getTime()<n.newestProdCreatedAt.getTime()?r("live deploy is a rollback"):e.rolledOrPromotedLately?r("live deploy came from a rollback or promote"):"ready"!==(n.previousState??"").toLowerCase()?r("previous not ready"):!n.previousCreatedAt||t.getTime()-n.previousCreatedAt.getTime()>2592e6?r("previous too old"):"vulnerable"===e.previousNext?r("previous Next.js has advisories"):"ok"!==e.previousNext?r("previous Next.js unknown"):e.autoLately?r("auto-rollback within 2 h"):e.sameDeployBefore?r("already rolled back once"):e.inFlight?r("another auto-rollback is running"):{ok:!0}:r("target changed")},"u",0,(e,t,n)=>(0,r.l)(`Automatic: the new deploy ${e} errored in the first ${t} minutes. ${n}`),"E",0,e=>e.currentSha&&/^[0-9a-f]{7,40}$/i.test(e.currentSha)?e.currentSha.slice(0,7):e.currentId.slice(0,16)],11339)},108621,e=>{var t=e.i(547963),r=e.i(589878),n=e.i(373200),a=e.i(262412),i=e.i(484745),o=e.i(93387),s=e.i(908480),l=e.i(601225),u=e.i(760859),d=e.i(989578),c=e.i(809303),p=e.i(564769);let f={target:n.Q,book:()=>(0,r.f)(),siteUrl:()=>(0,o.serverEnv)().SITE_URL,autoRun:()=>(0,c.I)(),send:(e,t,r,n,a)=>(0,l.I)(e,t,r,{...n?{replyMarkup:n}:{},...a?{replyTo:a}:{}}),record:(e,t)=>(0,n.P)("telegram",e,t),lang:()=>(0,s.H)("telegram"),discord:()=>(0,n.G)(),sendDiscord:(e,t)=>(0,a.f)(e,t,{timeoutMs:_}),recordDiscord:(e,t)=>(0,n.P)("discord",e,t),discordLang:()=>(0,s.H)("discord"),buttons:()=>e.A(176751).then(e=>e.approvalButtons()),thread:e=>(0,n.M)(e)},m={en:{pending:"Status: ⏳ waiting",dev:"🧑💻 Dev is checking the code",proposer:t.X.notifyFallback.en,app:"app",safe:"safe",risky:"needs care",proposes:"proposes",why:"Why",risk:"Risk",open:"Open in Auto-actions",waitingN:"new proposals waiting for approval:",moreN:"more proposals",automatic:"Automatic",rollbackWhy:"the app errored after the new deploy",succeeded:"Succeeded",failed:"Failed",stopFallback:"something failed"},id:{pending:"Status: ⏳ menunggu",dev:"🧑💻 Dev lagi cek kodenya",proposer:t.X.notifyFallback.id,app:"aplikasi",safe:"aman",risky:"perlu hati-hati",proposes:"usul",why:"Kenapa",risk:"Risiko",open:"Buka di Auto-actions",waitingN:"usulan baru menunggu persetujuan:",moreN:"usulan lagi",automatic:"Otomatis",rollbackWhy:"app-nya error setelah deploy baru",succeeded:"Berhasil",failed:"Gagal",stopFallback:"ada yang gagal"}},h={recheck:"Cek ulang sekarang",neon_wake:"Bangunin Neon",supabase_keepalive:"Kirim keep-alive Supabase",supabase_restore:"Restore project Supabase",vercel_redeploy:"Redeploy production",vercel_rollback:"Rollback ke deploy sebelumnya",github_bump_pr:"Bikin PR update paket",domain_recheck:"Cek ulang sertifikat domain",daily_rerun:"Jalanin ulang daily job",monitor_update_url:"Arahin monitor ke domain baru"},g=(e="en")=>(0,s.t)(m,e,"dev"),y=(e,t)=>("id"===t?h[e.action]:void 0)??p.H[e.action]?.label??e.actionLabel,b=(e,t)=>(0,s.t)(m,t,"risky"===e.risk||p.H[e.action]?.risk==="risky"?"risky":"safe"),w=(e,t)=>`${e.replace(/\/+$/,"")}/auto-actions${t?`?proposal=${encodeURIComponent(t)}`:""}`;function v(e,t,r,n=!1,a="en"){let o=e=>(0,s.t)(m,a,e),l=(0,d.R)(e.proposedBy,t,60)||o("proposer"),u=(0,d.R)(e.title,t,120),c=(0,d.R)(e.reason,t,200)||"-";return[`🧑✈️ ${(0,i.H)(l)} ${o("proposes")}: ${(0,i.H)(y(e,a))} — ${(0,i.H)(u)}`,`${o("why")}: ${(0,i.H)(c)}`,`${o("risk")}: ${b(e,a)}`,...n?[g(a)]:[],`${o("open")}: ${(0,i.H)(w(r,e.id))}`].join("\n")}let k=new Set(["recheck","domain_recheck"]),_=3e3,A={en:{proposed:"📝 Proposed",approved:"✅ Approved by the owner",rejected:"🚫 Rejected by the owner",done:"⚙️ Ran",failed:"❌ Failed",waiting:"waiting for approval on Telegram.",newN:"new proposals"},id:{proposed:"📝 Usulan",approved:"✅ Disetujui owner",rejected:"🚫 Ditolak owner",done:"⚙️ Dijalankan",failed:"❌ Gagal",waiting:"nunggu persetujuan di Telegram.",newN:"usulan baru"}};function I(e,t,r,n="en"){let a=e=>(0,s.t)(A,n,e);if(Array.isArray(t))return`📝 ${t.length} ${a("newN")} — ${a("waiting")}`;let i=((0,d.g)(t.title,r,120)||y(t,n)).replace(/[*_`~|\[\]<>]/g,"");if("proposed"===e)return`${a("proposed")}: ${i} — ${a("waiting")}`;if("approved"===e||"rejected"===e)return`${a(e)}: ${i}`;let o=t.result?(0,d.g)(t.result,r,200).replace(/[*_`~|\[\]<>]/g,""):"";return`${a(e)}: ${i}${o?` — ${o}`:""}`}async function S(e,r,n){try{let a,i=await r.discord();if(!i)return;let o=await r.book().catch(()=>u.a),s=await r.discordLang().catch(()=>"en"),l=e(o,s);if(!l.length)return;try{a=await r.sendDiscord(i.url,l.join("\n"))}catch{a={ok:!1,kind:"transient",error:"Discord didn't answer."}}await r.recordDiscord(a,n).catch(()=>console.warn(`${t.X.logTag}/discord: recording the result failed`))}catch{console.warn(`${t.X.logTag}/discord: sending the action history failed`)}}async function $(e,t,r={},n={}){let a={...f,...r};await R(()=>S((r,n)=>[I(e,t,r,n)],a,n.now??new Date),n.timeoutMs??_)}async function T(e,r,n){let a=await r.target();if(!a)return;let i=await r.book().catch(()=>u.a),o=await r.lang().catch(()=>"en");for(let s of(await e(i,o))){let e;try{e="string"==typeof s?await r.send(a.token,a.chatId,s):await r.send(a.token,a.chatId,s.text,s.keyboard,s.replyTo??void 0)}catch{e={ok:!1,kind:"transient",error:"Telegram didn't answer."}}await r.record(e,n).catch(()=>console.warn(`${t.X.logTag}/telegram: recording the result failed`))}}async function R(e,r){try{var n;let t;await (n=e(),Promise.race([n,new Promise((e,n)=>{t=setTimeout(()=>n(Object.assign(Error("timeout"),{name:"TimeoutError"})),r)})]).finally(()=>clearTimeout(t)))}catch(e){console.warn(`${t.X.logTag}/telegram: sending the proposal notice failed:`,e instanceof Error?e.name:"error")}}let x=async(e,t)=>t&&e.thread?e.thread(t).catch(()=>null):null;async function E(e,t={},r={}){if(!e.length)return;let n={...f,...t};await R(async()=>{let t=await n.autoRun().catch(()=>null),a=e.filter(e=>{var r;return r=t??{},"pending"===e.status&&!e.auto&&(p.H[e.action]?.risk!=="safe"||"risky"===e.risk||!r[e.action])});if(!a.length)return;let o=a.length>3||!n.buttons?null:await n.buttons().catch(()=>null),l=r.now??new Date;await Promise.all([T(async(e,t)=>a.length>3?[function(e,t,r,n=new Set,a="en"){let o=e=>(0,s.t)(m,a,e),l=e.slice(0,10).map(e=>{let s=(0,d.R)(e.proposedBy,t,60)||o("proposer");return`• ${(0,i.H)(s)}: ${(0,i.H)(y(e,a))} — ${(0,i.H)((0,d.R)(e.title,t,120))} (${b(e,a)})${n.has(e.id)?` \xb7 ${g(a)}`:""}
|
|
42
|
+
${(0,i.H)(w(r,e.id))}`}),u=e.length>10?[`+${e.length-10} ${o("moreN")}`]:[];return[`🧑✈️ ${e.length} ${o("waitingN")}`,...l,...u,`${o("open")}: ${(0,i.H)(w(r))}`].join("\n")}(a,e,n.siteUrl(),r.devQueued,t)]:Promise.all(a.map(async a=>{let i=v(a,e,n.siteUrl(),r.devQueued?.has(a.id)??!1,t),l=await x(n,r.alertIds?.get(a.id));return o?{text:`${i}
|
|
43
|
+
${((e="en")=>(0,s.t)(m,e,"pending"))(t)}`,keyboard:o(a),replyTo:l}:{text:i,replyTo:l}})),n,l),S((e,t)=>a.length>3?[I("proposed",a,e,t)]:a.map(r=>I("proposed",r,e,t)),n,l)])},r.timeoutMs??8e3)}async function N(e,t={},r={}){if(!e.auto||"done"!==e.status&&"failed"!==e.status)return;let n={...f,...t},a=r.now??new Date;await R(()=>Promise.all([T(async(t,a)=>{let o=function(e,t,r="en"){if(!e.auto||"done"!==e.status&&"failed"!==e.status||e.auto&&"done"===e.status&&k.has(e.action))return null;let n="done"===e.status?"✅":"❌",a=e.result?(0,d.R)(e.result,t,200):"";return`${n} ${(0,s.t)(m,r,"automatic")}: ${(0,i.H)(y(e,r))} — ${(0,i.H)((0,d.R)(e.title,t,120))}${a?`: ${(0,i.H)(a)}`:""}`}(e,t,a);return o?[{text:o,replyTo:await x(n,r.alertId)}]:[]},n,a),S((t,r)=>[I("done"===e.status?"done":"failed",e,t,r)],n,a)]).then(()=>void 0),r.timeoutMs??8e3)}async function P(e,t,r={},n={}){if("done"!==e.status&&"failed"!==e.status)return;let a={...f,...r},o=n.now??new Date;await R(()=>Promise.all([T(async(r,o)=>[{text:function(e,t,r,n="en"){let a=e=>(0,s.t)(m,n,e),o=(0,d.R)(e.resourceName??a("app"),r,60)||a("app"),l=(0,d.R)(t.reason,r,200).replace(/[.!?…]+$/,"")||a("rollbackWhy"),u=e.result?(0,d.R)(e.result,r,200):"";return["id"===n?`⏪ Otomatis rollback ${(0,i.H)(o)}: ${(0,i.H)(l)}. Deploy baru ${(0,i.H)((0,d.R)(t.newRef,r,40))} dibalikin ke deploy sebelumnya. Benerin dulu, terus deploy ulang.`:`⏪ Automatic rollback of ${(0,i.H)(o)}: ${(0,i.H)(l)}. The new deploy ${(0,i.H)((0,d.R)(t.newRef,r,40))} was rolled back to the previous one. Fix it first, then deploy again.`,`${"done"===e.status?"✅":"❌"} ${a("done"===e.status?"succeeded":"failed")}${u?`: ${(0,i.H)(u)}`:""}`].join("\n")}(e,t,r,o),replyTo:await x(a,n.alertId)}],a,o),S((t,r)=>[I("done"===e.status?"done":"failed",e,t,r)],a,o)]).then(()=>void 0),n.timeoutMs??8e3)}async function O(e,t={},r={}){let n={...f,...t};await R(()=>T((t,r)=>[function(e,t,r="en"){let n="id"===r,a=(0,d.R)(e.app,t,60)||(0,s.t)(m,r,"app"),o=e.packages.slice(0,4).join(", ")+(e.packages.length>4?`, +${e.packages.length-4}`:"");if("merged"===e.kind)return n?`✅ PR #${e.number} di ${(0,i.H)(a)} di-merge otomatis (${(0,i.H)(o)}). Deploy production jalan lewat Vercel; auto-rollback jaga ${e.windowMin??30} menit pertama.`:`✅ PR #${e.number} in ${(0,i.H)(a)} was merged automatically (${(0,i.H)(o)}). The production deploy runs through Vercel; auto-rollback watches the first ${e.windowMin??30} minutes.`;if("ready-manual"===e.kind)return n?`🔐 PR #${e.number} di ${(0,i.H)(a)} siap di-merge, tapi auto-rollback mati — merge manual ya.`:`🔐 PR #${e.number} in ${(0,i.H)(a)} is ready to merge, but auto-rollback is off — please merge it manually.`;let l=(0,d.R)(e.reason??"",t,200)||(0,s.t)(m,r,"stopFallback");return n?`⚠️ PR #${e.number} di ${(0,i.H)(a)} butuh dicek: ${(0,i.H)(l)}. PR-nya dibiarin terbuka.`:`⚠️ PR #${e.number} in ${(0,i.H)(a)} needs a look: ${(0,i.H)(l)}. The PR was left open.`}(e,t,r)],n,r.now??new Date),r.timeoutMs??8e3)}e.s(["h",0,_,"q",0,P,"y",0,O,"v",0,$,"i",0,E,"b",0,N,"a",0,v])},809303,e=>{var t=e.i(336763),r=e.i(406212),n=e.i(530298),a=e.i(595262),i=e.i(564769);let o="office.autoRun",s=Object.keys(i.H);s.filter(e=>"safe"===i.H[e].risk),Object.fromEntries(s.map(e=>[e,!1]));let l={read:async()=>{let[e]=await (0,r.db)().select({value:n.settings.value}).from(n.settings).where((0,t.eq)(n.settings.key,o)).limit(1);return e?.value??null},write:async e=>{await (0,r.db)().insert(n.settings).values({key:o,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})},audit:e=>(0,a.f)({kind:"ok",message:e.message,detail:e.detail.slice(0,500),resourceId:null,actorUserId:e.actorUserId})};async function u(e={}){var t;let r;return r=(t=await ({...l,...e}).read())&&"object"==typeof t&&!Array.isArray(t)?t:{},Object.fromEntries(s.map(e=>[e,"safe"===i.H[e].risk&&!0===r[e]]))}let d="office.autoRollback",c={...l,read:async()=>{let[e]=await (0,r.db)().select({value:n.settings.value}).from(n.settings).where((0,t.eq)(n.settings.key,d)).limit(1);return e?.value??null},write:async e=>{await (0,r.db)().insert(n.settings).values({key:d,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}};async function p(e={}){var t;let r,n;return{enabled:!0===(r=(t=await ({...c,...e}).read())&&"object"==typeof t&&!Array.isArray(t)?t:{}).enabled,windowMin:"number"==typeof(n=r.windowMin)&&Number.isInteger(n)&&n>=10&&n<=120?r.windowMin:30}}let f="office.autoSecurity",m=["critical","high","moderate"],h={enabled:!0,severities:["critical","high","moderate"],sameMajorOnly:!0},g={...l,read:async()=>{let[e]=await (0,r.db)().select({value:n.settings.value}).from(n.settings).where((0,t.eq)(n.settings.key,f)).limit(1);return e?.value??null},write:async e=>{await (0,r.db)().insert(n.settings).values({key:f,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}};async function y(e={}){return function(e){let t;if(null==e)return{...h,severities:[...h.severities]};let r="object"!=typeof e||Array.isArray(e)?{}:e,n=(Array.isArray(t=r.severities)&&t.every(e=>m.includes(e))?m.filter(e=>t.includes(e)):null)??["critical","high"],a="boolean"==typeof r.moderate?r.moderate:n.includes("high");return{enabled:!0===r.enabled,severities:m.filter(e=>"moderate"===e?a:n.includes(e)),sameMajorOnly:!0}}(await ({...g,...e}).read())}e.s(["r",0,s,"n",0,120,"l",0,10,"K",0,p,"I",0,u,"X",0,y])},564769,e=>{e.s(["H",0,{recheck:{risk:"safe",label:"Check again now",uses:"monitor-actions checkNow"},neon_wake:{risk:"safe",label:"Wake Neon",uses:"Stage 6 Neon wake"},supabase_keepalive:{risk:"safe",label:"Send Supabase keep-alive",uses:"Stage 6 Keep active"},supabase_restore:{risk:"risky",label:"Restore Supabase project",uses:"Stage 6 Supabase restore"},vercel_redeploy:{risk:"risky",label:"Redeploy production",uses:"vercel-actions redeployAction"},vercel_rollback:{risk:"risky",label:"Roll back to previous deployment",uses:"vercel-actions rollbackAction"},github_bump_pr:{risk:"risky",label:"Open package update PR",uses:"lib/data/deps-pr.ts bumpPrAs (GitHub PR-write token)"},domain_recheck:{risk:"safe",label:"Re-check domain certificate",uses:"domains actions recheck (network-db recheckDomain)"},daily_rerun:{risk:"risky",label:"Rerun daily job",uses:"GET /api/daily with the cron secret (collector runDailyAll)"},monitor_update_url:{risk:"safe",label:"Update monitor",uses:"Uptime Update monitor (monitor-move-db moveMonitorToDomain)"}},"V",0,72e5])},633075,92748,e=>{var t=e.i(760859),r=e.i(549556),n=e.i(547963),a=e.i(989578),i=e.i(564769),o=e.i(461315),s=e.i(663948),l=e.i(728335);let u=new Set(["nextjs","blitzjs"]),d={status:"unknown",version:null},c={status:"ok",version:null},p=/(?:Next\.js|\(now) (\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/,f=e=>!!e&&!u.has(e),m=(e,t)=>null===e.version&&!e.findings.length&&"vulnerable"!==e.status&&("not a Next.js site"===e.reason||f(t));function h(e,t){return"vulnerable"===e.status||e.findings.length?{status:"vulnerable",version:e.version}:"ok"===e.status||e.version?{status:"ok",version:e.version}:m(e,t)?c:d}let g=e=>`${(0,l.dayMonth)(e)} ${(0,l.clock)(e)} ${(0,l.zoneLabel)(e)}`,y=e=>"HighLatency"===e?"Slow":"Down",b=(e,t,r,n=!1)=>{let a;if(!r||t.getTime()<r.getTime())return`${y(e)} since ${g(t)}, not tied to a deploy${r?` (live since ${g(r)})`:""}: check the app.`;let i=(a=Math.max(1,Math.round((t.getTime()-r.getTime())/6e4)))<120?`${a} min`:a<2880?`${Math.round(a/60)} h`:`${Math.round(a/1440)} days`;return n?`${y(e)} since ${g(t)}, ${i} after the deploy went live, outside the rollback window: check the app or roll back by hand.`:`${y(e)} since ${g(t)}, started ${i} after the deploy went live: check the app.`},w=e=>e?`No rollback: the previous deployment runs Next.js ${e}, which has known advisories.`:"No rollback: the previous deployment's Next.js has known advisories.",v="Previous deployment's Next.js version is unknown: check it has no known advisories before approving.";e.s(["A",0,6048e5,"Y",0,["NextVulnerable","NextClean"],"B",0,v,"D",0,b,"Q",0,function(e){let t,r=e.currentLiveAt?.getTime(),n=e.previousLiveAt?.getTime(),a=e.check;if(!a)return f(e.framework)?c:d;if(m(a,e.framework))return c;if(void 0===r||void 0===n||n>=r)return d;let i=a.checkedAt.getTime();if(i>=n&&i<r)return h(a,e.framework);if(i<n||r-n<36e5)return d;let l=e.events.filter(e=>"NextVulnerable"===e.reason||"NextClean"===e.reason),u=l.filter(e=>e.at.getTime()<r).sort((e,t)=>t.at.getTime()-e.at.getTime())[0],g=l.filter(e=>e.at.getTime()>=r).sort((e,t)=>e.at.getTime()-t.at.getTime())[0];if(u){var y;let e;t={status:"NextVulnerable"===u.reason?"vulnerable":"ok",version:u.at.getTime()>=n?(y=u.message,(e=p.exec(y)?.[1]??null)&&(0,o.C)(e)?e:null):null}}else t=g?"NextClean"===g.reason?{status:"vulnerable",version:null}:d:{status:h(a,e.framework).status,version:null};if("ok"===t.status&&"ok"!==a.status&&a.findings.length){let e;if(!t.version)return d;if(e=t.version,a.findings.some(t=>!!t.fixed&&(0,o.C)(t.fixed)&&0>(0,s.f)(e,t.fixed)))return{status:"vulnerable",version:t.version}}return t},"g",0,function(e,t,r={}){let n=e.getTime(),a="MonitorDown"===r.ruleKey;if(a&&!r.liveAt)return e;let i=r.liveAt?r.liveAt.getTime()-9e5:0,o=r.gapMs??864e5;for(let e of[...t].sort((e,t)=>t.startedAt.getTime()-e.startedAt.getTime()))!(e.startedAt.getTime()>=n)&&(a?null===e.resolvedAt||e.resolvedAt.getTime()>=i:null===e.resolvedAt||e.resolvedAt.getTime()>=n-o)&&(n=e.startedAt.getTime());return new Date(n)},"e",0,w],92748);let k=200,_=n.X.auditPrefix,A=/^dpl_[A-Za-z0-9]{8,40}$/,I=/^ep-[a-z0-9-]{3,60}$/,S=/^[a-z0-9]{8,40}$/,$=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,T=(e,t=k)=>e.length>t?`${e.slice(0,t-1).trimEnd()}…`:e,R=e=>/[.!?…]$/.test(e)?e:`${e}.`;function x(e,r,n,i){return"app"===e&&n?(0,t.r)(i,n):("supabase_project"===e||"neon_project"===e||"neon_branch"===e||"firestore"===e)&&r?(0,t.X)(i,r):n&&(0,a.g)(n,i,120)||null}let E={recheck:e=>`Check ${e} again now`,neon_wake:e=>`Wake the Neon compute of ${e}`,supabase_keepalive:e=>`Send a keep-alive to ${e}`,supabase_restore:e=>`Restore Supabase project ${e}`,vercel_redeploy:e=>`Redeploy production ${e}`,vercel_rollback:e=>`Roll ${e} back to the previous deployment`,github_bump_pr:e=>`Open a PR updating vulnerable packages in ${e}`,domain_recheck:e=>`Re-check the certificate of ${e}`,daily_rerun:()=>"Rerun the daily job",monitor_update_url:e=>`Point the ${e} monitor at its new domain`},N=(e,t)=>T(E[e](t??"this resource")),P=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),O={status:"unknown",version:null};e.s(["e",0,"office-auto","v",0,_,"L",0,6e5,"j",0,k,"I",0,(e,t)=>"safe"===i.H[e].risk&&!0===t[e],"l",0,T,"z",0,function(e,t){let r=e.filter(e=>!P(e,t)),n=e=>[...new Set(e.filter(e=>!!e&&$.test(e)))],a=r.filter(e=>("MonitorDown"===e.ruleKey||"HighLatency"===e.ruleKey)&&"app"===e.resourceKind);return{monitorIds:n([...a,...r.filter(e=>"MonitorDomainMoved"===e.ruleKey&&"app"===e.resourceKind)].map(e=>e.subject)),monitorApps:n(a.map(e=>e.resourceId)),deployApps:n(r.filter(e=>("DeploymentFailed"===e.ruleKey||"MonitorDown"===e.ruleKey||"HighLatency"===e.ruleKey)&&"app"===e.resourceKind).map(e=>e.resourceId)),supabaseIds:n(r.filter(e=>("DatabasePaused"===e.ruleKey||"AutoPauseRisk"===e.ruleKey)&&"supabase_project"===e.resourceKind).map(e=>e.resourceId)),depApps:n(r.filter(e=>"VulnerableDependency"===e.ruleKey&&"app"===e.resourceKind).map(e=>e.resourceId)),frameworkApps:n(r.filter(e=>"FrameworkVulnerable"===e.ruleKey&&"app"===e.resourceKind).map(e=>e.resourceId))}},"M",0,N,"t",0,function(e,n,o,s){let l,u,d;if(P(e,s))return[];let c=(l=(0,t.o)(e,o),u=(0,a.g)(l.title,o,80),d=(0,a.g)(l.message,o,k),T([u&&R(u),d&&R(d)].filter(Boolean).join(" ")||`${e.ruleKey}.`));return(function(e,t,r){let n="app"===e.resourceKind&&e.resourceId?e.resourceId:null;switch(e.ruleKey){case"DeploymentFailed":{let e=n?t.deploys.get(n):void 0;if(!n||!e?.currentId||!A.test(e.currentId))return[];let r=[{action:"vercel_redeploy",resourceKind:"app",resourceId:n,targetRef:e.currentId}],a=t.previousNext?.get(n)??O;return e.previousId&&A.test(e.previousId)&&e.previousId!==e.currentId&&("vulnerable"===a.status?r[0].note=w(a.version):r.push({action:"vercel_rollback",resourceKind:"app",resourceId:n,targetRef:e.previousId,..."unknown"===a.status?{note:v}:{}})),r}case"DatabasePaused":case"AutoPauseRisk":{if("supabase_project"!==e.resourceKind||!e.resourceId)return[];let r=t.supabaseRefs.get(e.resourceId);if(!r||!S.test(r))return[];return[{action:"DatabasePaused"===e.ruleKey?"supabase_restore":"supabase_keepalive",resourceKind:"supabase_project",resourceId:e.resourceId,targetRef:r}]}case"VulnerableDependency":{let e=n?t.fixableRepos?.get(n):void 0;return n&&e&&$.test(e)?[{action:"github_bump_pr",resourceKind:"app",resourceId:n,targetRef:e}]:[]}case"FrameworkVulnerable":{let e=n?t.frameworkFixes?.get(n):void 0;return n&&e&&$.test(e.repoId)?[{action:"github_bump_pr",resourceKind:"app",resourceId:n,targetRef:e.repoId}]:[]}case"MonitorDomainMoved":return n&&$.test(e.subject)&&t.monitorMoves?.has(e.subject)?[{action:"monitor_update_url",resourceKind:"app",resourceId:n,targetRef:e.subject}]:[];case"MonitorDown":case"HighLatency":{let a=[];n&&$.test(e.subject)&&"http"===t.monitorKinds.get(e.subject)&&a.push({action:"recheck",resourceKind:"app",resourceId:n,targetRef:e.subject}),"MonitorDown"===e.ruleKey&&e.resourceId&&$.test(e.subject)&&t.dailyHeartbeatId===e.subject&&a.push({action:"daily_rerun",room:"observe",resourceKind:e.resourceKind,resourceId:e.resourceId,targetRef:e.subject});let i=n?t.neonSuspended.get(n):void 0;if(i&&I.test(i.endpointId)&&a.push({action:"neon_wake",room:"databases",resourceKind:i.resourceKind,resourceId:i.resourceId,targetRef:i.endpointId}),t.monitorMoves?.has(e.subject))return a;let o=n?t.deploys.get(n):void 0,s=t.problemSince?.get(e.id)??e.startedAt??null,l=o?.liveAt??null,u=s&&l?s.getTime()>=l.getTime():null,d=n&&t.previousNext?.get(n)||O,c=t.rollbackWindowMs??18e5,p=!!n&&!0===u&&function(e,t,r){if(!e?.currentId||!e.previousId||!e.liveAt||!A.test(e.previousId)||e.previousId===e.currentId)return!1;let n=r.getTime()-e.liveAt.getTime();return n>=0&&n<=t}(o,c,r);if(p&&"vulnerable"!==d.status)return a.push({action:"vercel_rollback",resourceKind:"app",resourceId:n,targetRef:o.previousId,..."unknown"===d.status?{note:v}:{}}),a;let f=p?w(d.version):void 0;if("MonitorDown"===e.ruleKey&&n&&o?.currentId&&A.test(o.currentId)&&"http"===t.monitorKinds.get(e.subject)&&!1!==u)return a.push({action:"vercel_redeploy",resourceKind:"app",resourceId:n,targetRef:o.currentId,...f?{note:f}:{}}),a;let m=!!l&&r.getTime()-l.getTime()>c,h=f??(s&&l&&o?.currentId?b(e.ruleKey,s,l,m):void 0),g=a.find(e=>"recheck"===e.action);return g&&h&&(g.note=h),a}case"CertExpiringSoon":return"domain"===e.resourceKind&&e.resourceId&&$.test(e.resourceId)?[{action:"domain_recheck",resourceKind:"domain",resourceId:e.resourceId,targetRef:e.resourceId}]:[];default:return[]}})(e,n,s).map(l=>{var u;let d,p,f,m,h=l.room??(0,r.p)(e),g="neon_wake"===l.action?x(l.resourceKind,l.resourceId,null,o):x(e.resourceKind,e.resourceId,e.resourceName,o),y="FrameworkVulnerable"===e.ruleKey&&"github_bump_pr"===l.action,b="monitor_update_url"===l.action?n.monitorMoves?.get(l.targetRef):void 0,w=y?(u=l.resourceId?n.frameworkFixes?.get(l.resourceId):void 0,d=g??"this app",T(u?`Next.js ${u.from} in ${d} has known vulnerabilities: the PR updates next (and eslint-config-next when listed) to ${u.to}.`:`Next.js in ${d} has known vulnerabilities with a fixed version.`)):"github_bump_pr"===l.action?(f=(p=(0,a.g)((0,t.o)(e,o).message,o,k)).includes(": ")?p.slice(p.indexOf(": ")+2):"",m=`Vulnerable packages in ${g??"this app"} have a fix`,T(f?`${m}: ${f}`:`${m}.`)):l.note?T(`${l.note} ${c}`):c,v="github_bump_pr"===l.action&&l.resourceId?n.productionMismatch?.get(l.resourceId):void 0;return{alertId:e.id,ruleKey:e.ruleKey,room:h,action:l.action,risk:i.H[l.action].risk,title:y?T(`Open a PR updating Next.js in ${g??"this app"}`):b?T(`Point the ${g??"app's"} monitor at ${b.to}`):N(l.action,g),reason:v?T(`${(0,a.g)(v,o,k)} ${w}`):w,resourceKind:l.resourceKind,resourceId:l.resourceId,resourceName:g,targetRef:l.targetRef,proposedBy:(0,r.y)(h),expiresAt:new Date(s.getTime()+i.V)}})},"x",0,function(e,t){let r=e.ok?e.message||"Done.":e.error||"It didn't run.";return T((0,a.g)(r,t,k)||(e.ok?"Done.":"It didn't run."))},"J",0,x,"E",0,function(e){return{id:e.id,room:e.room,action:e.action,actionLabel:i.H[e.action].label,risk:i.H[e.action].risk,title:e.title,reason:e.reason,resourceName:e.resourceName,proposedBy:e.proposedBy,status:e.status,auto:e.auto,result:e.result,createdAt:e.createdAt.toISOString(),decidedAt:e.decidedAt?e.decidedAt.toISOString():null,expiresAt:e.expiresAt.toISOString()}},"Z",0,function(e,t,r){let n=r??t?.find(e=>e.isDefault)?.id??null,a=(e??[]).find(e=>!n||e.branchId===n);return a&&!a.disabled&&"idle"===a.state&&"active"!==a.pendingState&&I.test(a.id)?a.id:null}],633075)},452475,653587,e=>{let t;var r,n=e.i(666680),a=e.i(336763),i=e.i(406212),o=e.i(484745),s=e.i(547963),l=e.i(595262),u=e.i(503313),d=e.i(692697),c=e.i(93387),p=e.i(908480),f=e.i(760859),m=e.i(518581),h=e.i(989578),g=e.i(633075),y=e.i(396918),b=e.i(533102),w=e.i(530298),v=e.i(234195),k=e.i(889234),_=e.i(638809),A=e.i(873083),I=e.i(368230),S=e.i(58992),$=e.i(978196),T=e.i(788264),R=e.i(756652),x=e.i(11339),E=e.i(108621),N=e.i(599040),P=e.i(908223),O=e.i(200346),C=e.i(380719),j=e.i(412948);async function D(e,t=C.q){let r,[n]=await (0,i.db)().select({m:w.monitors,appName:w.resources.name,appMeta:w.resources.meta}).from(w.monitors).innerJoin(w.resources,(0,a.eq)(w.resources.id,w.monitors.resourceId)).where((0,a.eq)(w.monitors.id,e)).limit(1);if(!n)return{ok:!1,error:"That monitor no longer exists."};if("heartbeat"===n.m.kind)return{ok:!1,error:"That monitor is a heartbeat; it has no address to update."};let o=await (0,i.db)().select({id:w.resources.id,name:w.resources.name,meta:w.resources.meta}).from(w.resources).where((0,a.and)((0,a.eq)(w.resources.kind,"app"),(0,a.eq)(w.resources.monitored,!0),(0,a.isNull)(w.resources.goneAt),(0,a.ne)(w.resources.id,n.m.resourceId))).limit(500),s=(0,$.u)(n.m.url,{name:n.appName,meta:n.appMeta},o,{lastError:n.m.lastError});if(!s)return{ok:!1,error:"Nothing shows this monitor's domain moved (it is still the app's, or never was), so there is nothing to update."};try{r=(0,$.w)(n.m.url,s.to)}catch{return{ok:!1,error:"The app's domain isn't a valid host name, so the monitor was left as it is."}}let l=await t(e,{url:r,expectedStatus:n.m.expectedStatus,timeoutMs:n.m.timeoutMs,bodyContains:n.m.bodyContains,jsonPath:n.m.jsonPath,jsonEquals:n.m.jsonEquals});return l.ok?{ok:!0,message:`Monitor now checks ${r}.`,audit:{message:`Monitor moved to the app's new domain: ${(0,j.F)(r)}`,detail:`was ${(0,j.F)(n.m.url)}`,resourceId:n.m.resourceId}}:l}var M=e.i(827439),z=e.i(802641);async function q(e){if(!(0,z.f)(e))return null;let[t]=await (0,i.db)().select({id:w.resources.id,kind:w.resources.kind,externalId:w.resources.externalId,parentId:w.resources.parentId}).from(w.resources).where((0,a.and)((0,a.eq)(w.resources.id,e),(0,a.inArray)(w.resources.kind,["neon_project","neon_branch"]),(0,a.isNull)(w.resources.goneAt))).limit(1);if(!t)return null;let r="neon_branch"===t.kind?t.parentId:t.id;if(!r)return null;let[n]=await (0,i.db)().select({data:w.snapshots.data}).from(w.snapshots).where((0,a.eq)(w.snapshots.resourceId,r)).limit(1),o=(0,T.k)(T.s,n?.data);return{projectResourceId:r,branchExternalId:"neon_branch"===t.kind?t.externalId:null,computeSeconds:o.computeSeconds??null,periodEnd:o.periodEnd??null}}var L=e.i(406197),U=e.i(516464),H=e.i(934152),B=e.i(941536);let V=`This project used its ${U.a.cuHours} CU-hours; the compute won't start until the quota resets.`;async function G(e,t,r){var n;if(n=new Date,!((t.computeSeconds??0)<3600*U.a.cuHours)&&(!t.periodEnd||new Date(t.periodEnd).getTime()>n.getTime()))return{done:!1,message:V};let a=e.resource.externalId,i=await (0,B.c)(e.token,a,r);if(!i.ok)return{done:!1,message:"missing"===i.kind?H.G:i.error};if(i.data.id!==r||t.branchExternalId&&i.data.branchId!==t.branchExternalId)return{done:!1,message:H.G};if(i.data.disabled)return{done:!1,message:"Neon has disabled this compute, so it can't be started from here."};if("active"===i.data.state)return{done:!1,message:"Already running."};if("init"===i.data.state||"active"===i.data.pendingState)return{done:!1,message:"Already starting."};let o=await (0,B.d)(e.token,a,r);if(o.ok)return{done:!0,message:`Waking ${r}. Ready in a few seconds.`,audit:{message:`Wake requested \xb7 ${r}`,resourceId:e.resource.id}};let s="scope"===o.kind?(0,H.b)("neon",{project:e.resource.name}):"missing"===o.kind?H.G:o.error;return{done:!1,failed:{ok:!1,kind:o.kind,error:s,...o.status?{status:o.status}:{}},audit:{message:`Wake failed \xb7 ${r}`,resourceId:e.resource.id}}}async function K(e,t){let r=t.resource.name;if(e.ok||r.trim().length<2||!e.error.includes(r))return e;let n=await (0,u.f)().catch(()=>null);return{...e,error:n?(0,f.J)(e.error,n,t.resource.id):e.error.split(r).join("db-?")}}async function F(e,t,r,n=L.W){let a=await (0,L.q)(e.id,"wake",r);if(a)return{ok:!1,error:a};let i=await q(t),o=i?await (0,L.p)(i.projectResourceId,"neon_project"):null;return i&&o?K(await n(await G(o,i,r),e,o.account.id),o):{ok:!1,error:H.G}}var W=e.i(655704),X=e.i(88316),J=e.i(686454);let Y=e=>`Supabase is busy with this project (${(0,X.P)(e).label.toLowerCase()}). Try again in a few minutes.`,Z=(e,t,r)=>({done:!1,failed:{ok:!1,kind:e.kind,error:"scope"===e.kind?(0,H.b)("supabase",{}):e.error,...e.status?{status:e.status}:{}},audit:{message:t,resourceId:r}});async function Q(e,t,r,n,a=L.W){let i,o=await (0,L.q)(t.id,e,r);if(o)return{ok:!1,error:o};let s=await (0,L.p)(r,"supabase_project");if(!s)return{ok:!1,error:"This project isn't watched any more, or its credential can't be read."};if(s.resource.externalId!==n)return{ok:!1,error:H.G};let l=s.resource.externalId,u=s.resource.name,d=await (0,J.e)(s.token,l);if(!d.ok)return a({done:!1,message:"scope"===d.kind||"auth"===d.kind?d.error:`Couldn't read this project's status at Supabase: ${d.error}`},t,s.account.id);let c=d.data.status;if("pause"===e){if("INACTIVE"===c||"PAUSING"===c||"GOING_DOWN"===c)return a({done:!1,message:"Already paused."},t,s.account.id);if(!c.startsWith("ACTIVE_"))return a({done:!1,message:Y(c)},t,s.account.id);let e=await (0,J.c)(s.token,l);i=e.ok?{done:!0,message:`Pausing ${u}. It takes about 2 minutes.`,audit:{message:`${W.B}${u}`,resourceId:r}}:"transient"===e.kind&&void 0===e.status?{done:!1,failed:{ok:!1,kind:"transient",error:`${e.error} The pause may still have happened; check the project in a few minutes before restoring it.`},audit:{message:`${W.B}${u}`,resourceId:r}}:Z(e,`Pause failed \xb7 ${u}`,r)}else{if(c.startsWith("ACTIVE_")||"RESTORING"===c||"COMING_UP"===c)return a({done:!1,message:"Already active or restoring."},t,s.account.id);if("INACTIVE"!==c)return a({done:!1,message:Y(c)},t,s.account.id);let e=await (0,J.W)(s.token);if(!e.ok)return a({done:!1,message:`Couldn't count this account's free slots just now: ${e.error}`},t,s.account.id);let n=await (0,O.m)(s.account.id);if(0>=(0,O.G)(e.data,n,d.data.orgSlug))return a({done:!1,message:"This account already uses both free slots. Pause one of its active projects first; Restore stays blocked until it shows Paused."},t,s.account.id);let o=await (0,J.G)(s.token,l);i=o.ok?{done:!0,message:`Restoring ${u}. It takes about 2 minutes.`,audit:{message:`Restore requested \xb7 ${u}`,resourceId:r}}:Z(o,`Restore failed \xb7 ${u}`,r)}return a(i,t,s.account.id)}var ee=e.i(198552);function et(e,t,r){if("building"===e.state)return"building";if(null!==t&&e.id===t)return"current";if("error"===e.state)return"failed";if("preview"===e.target)return"ready"===e.state?"preview":"other";if("ready"!==e.state||null===t)return"other";let n=r.find(e=>e.id===t);if(!n)return"other";if(e.createdAt.getTime()>n.createdAt.getTime())return"staged";let a=r.filter(e=>"ready"===e.state&&e.id!==t&&e.createdAt.getTime()<n.createdAt.getTime()).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())[0];return a?.id===e.id?"previous":"other"}let er=e=>({done:!1,message:e}),en=(e,t)=>e?.sha?e.sha.slice(0,7):t;async function ea(e,t,r){let n=await (0,L.q)(e.id,t,r);if(n)return n;let a=await (0,L.p)(r,"app"),i=a?.resource.meta.teamId;if(!a||"string"!=typeof i||!i||!a.resource.externalId)return"This app or its Vercel credential isn't available any more. Reload the page.";let o=a.resource.meta.teamSlug;return{member:e,t:a,appId:r,app:a.resource.name,teamId:i,teamSlug:"string"==typeof o?o:"",projectId:a.resource.externalId}}async function ei(e){let[t,r]=await Promise.all([(0,ee.c)(e.t.token,e.teamId,e.projectId),(0,ee.r)(e.t.token,e.teamId,e.projectId)]);return t.ok?r.ok?{ok:!0,data:{name:t.data.name,currentId:t.data.currentId??r.data[0]?.id??null,production:r.data}}:r:t}async function eo(e,t,r,n,a=L.W){return a(t.ok?{done:!0,message:r.message,audit:{message:r.audit,resourceId:e.appId}}:{done:!1,failed:"scope"===t.kind?{ok:!1,kind:"scope",status:t.status,error:(0,H.b)("vercel",{team:e.teamSlug})}:404===t.status?{ok:!1,kind:"missing",status:404,error:"Vercel can't find that deployment any more. Reload and try again."}:{ok:!1,kind:"auth"===t.kind?"auth":"format"===t.kind?"format":"transient",...t.status?{status:t.status}:{},error:t.error},audit:{message:n,resourceId:e.appId}},e.member,e.t.account.id)}async function es(e,t,r,n=L.W){{let a=await ea(e,"redeploy",t);if("string"==typeof a)return n(er(a),e,"");let i=await ei(a);if(!i.ok)return n(er(i.error),e,a.t.account.id);if(i.data.currentId!==r)return n(er(H.G),e,a.t.account.id);if(i.data.production.some(e=>"staged"===et(e,i.data.currentId,i.data.production)))return n(er("Rolled back: promote a deployment first. A redeploy would stay staged and not go live."),e,a.t.account.id);let o=await (0,ee.N)(a.t.token,a.teamId,a.projectId);if(!o.ok)return n(er(o.error),e,a.t.account.id);if(o.data)return n(er(`A production build of ${a.app} is already running.`),e,a.t.account.id);let s=en(i.data.production.find(e=>e.id===r),r),l=await (0,ee.L)(a.t.token,a.teamId,{projectId:a.projectId,name:i.data.name,deploymentId:r});return eo(a,l,{message:`Redeploy requested. Vercel is building ${a.app} again.`,audit:`Redeploy requested \xb7 ${a.app} \xb7 ${s}`},`Redeploy failed \xb7 ${a.app} \xb7 ${s}`,n)}}async function el(e,t,r,n=L.W){{let a=await ea(e,"rollback",t);if("string"==typeof a)return n(er(a),e,"");let i=await ei(a);if(!i.ok)return n(er(i.error),e,a.t.account.id);if(i.data.currentId===r)return n(er("Already live."),e,a.t.account.id);let o=i.data.production.find(e=>e.id===r);if(!o||"previous"!==et(o,i.data.currentId,i.data.production))return n(er("Hobby can only roll back to the previous production deployment."),e,a.t.account.id);let s=en(o,r),l=await (0,ee.E)(a.t.token,a.teamId,a.projectId,r);return eo(a,l,{message:`Rolled back ${a.app} to ${s}. New pushes don't go live until you promote one.`,audit:`Rolled back \xb7 ${a.app} → ${s}`},`Roll back failed \xb7 ${a.app} → ${s}`,n)}}var eu=e.i(659916),ed=e.i(355620),ec=e.i(105464),ep=e.i(90879),ef=e.i(809303),em=e.i(564769);let eh={checkMonitorNow:C.X,keepAliveNow:O.v,wakeAs:F,supabaseAct:Q,redeployAs:es,rollbackAs:el,finish:L.W,recordAction:l.f,limit:ed.f,bumpPrAs:P.W,autoSecurity:()=>(0,ef.X)(),recheckDomain:M._,moveMonitorToDomain:D};async function eg(){let[e]=await (0,i.db)().select({at:w.collectorRuns.startedAt}).from(w.collectorRuns).where(b.sql`(${w.collectorRuns.trigger} = 'vercel_cron' or (${w.collectorRuns.trigger} = 'manual' and ${w.collectorRuns.tasks} ? 'rollups'))`).orderBy((0,y.desc)(w.collectorRuns.startedAt)).limit(1);return e?.at??null}async function ey(e){let t=await (e.lastDailyRunAt??eg)(),r=(e.now??(()=>new Date))();if(t&&r.getTime()-t.getTime()<216e5)return{ok:!1,error:"The daily job ran less than 6 hours ago."};let n=(e.dailyTarget??function(){let e=(0,N.f)();return e?{url:`${(0,c.serverEnv)().SITE_URL.replace(/\/+$/,"")}/api/daily`,secret:e.CRON_SECRET}:null})();if(!n)return{ok:!1,error:"The scheduler settings are missing, so the daily job can't be started."};try{let t=await (e.fetch??fetch)(n.url,{headers:{Authorization:`Bearer ${n.secret}`},signal:AbortSignal.timeout(4e4),redirect:"manual"});if(!t.ok||t.status>=300)return{ok:!1,error:`The daily job route answered ${t.status}.`};return{ok:!0,message:`Daily job ran again (${t.status}).`}}catch(e){if(e instanceof Error&&("TimeoutError"===e.name||"AbortError"===e.name))return{ok:!0,message:"Daily job started; it's still running — the heartbeat turns Up when it finishes."};throw e}}let eb="The proposal's target is missing, so it can't run.";async function ew(e,t,r=eh){let n="auto"===t,a=n?{id:g.e,userId:null}:{id:t.id,userId:t.userId},i=(e,t,a)=>r.finish(e,t,a,{refresh:!1,...n?{auditPrefix:g.v}:{}});try{if(!e.resourceId||!e.targetRef)return{ok:!1,error:eb};if((0,ep.isDemo)()&&"recheck"!==e.action)return await r.recordAction({kind:"ok",message:`${n?g.v:""}${em.H[e.action].label} (simulated)`,detail:"Simulated in the demo",resourceId:e.resourceId,actorUserId:a.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:ec.r};switch(e.action){case"recheck":{let t=await r.limit(eu.t.check,a.id);if(!t.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,eu.H)(t.retryAfter)}.`};let i=await r.checkMonitorNow(e.targetRef);if(!i.ok)return{ok:!1,error:i.error};if(i.audit)try{await r.recordAction({kind:!1===i.passed?"err":"ok",...i.audit,message:`${n?g.v:""}${i.audit.message}`,actorUserId:a.userId})}catch{console.warn("audit event failed")}return{ok:!0,message:i.message}}case"domain_recheck":{let t=await r.limit(eu.t.domainCheck,a.id);if(!t.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,eu.H)(t.retryAfter)}.`};let i=await (r.recheckDomain??M._)(e.targetRef);if(!i.ok)return i;return await r.recordAction({kind:"ok",...i.audit,message:`${n?g.v:""}${i.audit.message}`,actorUserId:a.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:i.message}}case"monitor_update_url":{let t=await r.limit(eu.t.monitorWrite,a.id);if(!t.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,eu.H)(t.retryAfter)}.`};let i=await (r.moveMonitorToDomain??D)(e.targetRef);if(!i.ok)return i;return i.audit&&await r.recordAction({kind:"ok",...i.audit,message:`${n?g.v:""}${i.audit.message}`,actorUserId:a.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:i.message}}case"daily_rerun":return await ey(r);case"neon_wake":return await r.wakeAs(a,e.resourceId,e.targetRef,i);case"supabase_keepalive":return await r.keepAliveNow(a,e.resourceId,i);case"supabase_restore":return await r.supabaseAct("restore",a,e.resourceId,e.targetRef,i);case"vercel_redeploy":return await r.redeployAs(a,e.resourceId,e.targetRef,i);case"vercel_rollback":return await r.rollbackAs(a,e.resourceId,e.targetRef,i);case"github_bump_pr":{let t=n?await (r.autoSecurity??ef.X)():null;if(n&&!t?.enabled)return{ok:!1,error:"Automatic security fixes is off."};return await (r.bumpPrAs??P.W)(a,e.resourceId,e.targetRef,i,{proposalId:e.proposalId??null,...t?{auto:{severities:t.severities}}:{},..."FrameworkVulnerable"===e.ruleKey?{framework:!0}:{}})}default:return{ok:!1,error:eb}}}catch(e){return console.warn(`${s.X.logTag}/proposals run failed:`,e instanceof Error?e.name:"error"),{ok:!1,error:"Something went wrong while running it. Check the console page before trying again."}}}var ev=e.i(92748);let ek={id:m.O.id,room:m.O.room,action:m.O.action,risk:m.O.risk,title:m.O.title,reason:m.O.reason,resourceName:m.O.resourceName,proposedBy:m.O.proposedBy,status:m.O.status,auto:m.O.auto,result:m.O.result,createdAt:m.O.createdAt,decidedAt:m.O.decidedAt,expiresAt:m.O.expiresAt},e_={...ek,resourceId:m.O.resourceId,targetRef:m.O.targetRef,ruleKey:m.O.ruleKey,alertId:m.O.alertId};async function eA(e,t,r){let n=(0,g.z)(e,t),o=new Set(n.deployApps),s=e.filter(e=>("MonitorDown"===e.ruleKey||"HighLatency"===e.ruleKey)&&e.resourceId&&o.has(e.resourceId)&&e.startedAt),[l,u,d,c,p,f,m,h,y]=await Promise.all([n.monitorIds.length?(0,i.db)().select({id:w.monitors.id,kind:w.monitors.kind,url:w.monitors.url,lastError:w.monitors.lastError,appId:w.monitors.resourceId,appName:w.resources.name,appMeta:w.resources.meta}).from(w.monitors).innerJoin(w.resources,(0,a.eq)(w.resources.id,w.monitors.resourceId)).where((0,a.inArray)(w.monitors.id,n.monitorIds)):[],n.deployApps.length?(0,i.db)().select({app:w.deployments.resourceId,id:w.deployments.externalId,isCurrent:w.deployments.isCurrent,isPrevious:w.deployments.isPreviousProduction,readyAt:w.deployments.readyAt,createdAt:w.deployments.createdAtProvider}).from(w.deployments).where((0,a.and)((0,a.inArray)(w.deployments.resourceId,n.deployApps),(0,a.or)((0,a.eq)(w.deployments.isCurrent,!0),(0,a.eq)(w.deployments.isPreviousProduction,!0)))):[],n.supabaseIds.length?(0,i.db)().select({id:w.resources.id,ref:w.resources.externalId}).from(w.resources).where((0,a.and)((0,a.inArray)(w.resources.id,n.supabaseIds),(0,a.eq)(w.resources.kind,"supabase_project"),b.sql`${w.resources.goneAt} is null`)):[],n.monitorApps.length?ex(n.monitorApps):new Map,n.depApps.length?eT(e,n.depApps).catch(()=>new Set).then(e=>(0,k.C)(n.depApps,e)).catch(()=>new Map):new Map,n.monitorIds.length?eR(n.monitorIds):null,n.frameworkApps.length?(0,P.h)(n.frameworkApps,n.depApps).catch(()=>new Map):new Map,s.length?eI(s.map(e=>e.subject),t).catch(()=>[]):[],eS(n.deployApps)]),v=l.some(e=>null!==(0,$.Y)(e.appMeta)),_=v?await (0,i.db)().select({id:w.resources.id,name:w.resources.name,meta:w.resources.meta}).from(w.resources).where((0,a.and)((0,a.eq)(w.resources.kind,"app"),(0,a.eq)(w.resources.monitored,!0),(0,a.isNull)(w.resources.goneAt))).limit(500):[],A=v?(0,$.P)(l,_):new Map,I=[...[...p].map(([e,t])=>({appId:e,repoId:t})),...[...m].map(([e,t])=>({appId:e,repoId:t.repoId}))],S=I.length?await Promise.resolve().then(()=>(0,P.H)(I,t)).catch(()=>new Map):new Map,T=new Map,R=new Map;for(let e of u){let t=T.get(e.app)??{currentId:null,previousId:null,liveAt:null};e.isCurrent?(t.currentId=e.id,t.liveAt=e.readyAt??e.createdAt??null):e.isPrevious&&(t.previousId=e.id,R.set(e.app,e.readyAt??e.createdAt??null)),T.set(e.app,t)}let x=new Map;for(let[e,t]of T)t.previousId&&x.set(e,e$(y,e,t.liveAt,R.get(e)??null));let E=new Map(s.map(e=>[e.id,(0,ev.g)(e.startedAt,h.filter(t=>t.ruleKey===e.ruleKey&&t.subject===e.subject),{ruleKey:e.ruleKey,liveAt:T.get(e.resourceId)?.liveAt??null})]));return{monitorKinds:new Map(l.map(e=>[e.id,String(e.kind)])),deploys:T,...void 0!==r?{rollbackWindowMs:r}:{},supabaseRefs:new Map(d.map(e=>[e.id,e.ref])),neonSuspended:c,fixableRepos:p,dailyHeartbeatId:f,frameworkFixes:m,monitorMoves:A,problemSince:E,previousNext:x,...S.size?{productionMismatch:S}:{}}}async function eI(e,t){return(0,i.db)().select({ruleKey:w.alerts.ruleKey,subject:w.alerts.subject,startedAt:w.alerts.startedAt,resolvedAt:w.alerts.resolvedAt}).from(w.alerts).where((0,a.and)((0,a.inArray)(w.alerts.ruleKey,["MonitorDown","HighLatency"]),(0,a.inArray)(w.alerts.subject,[...new Set(e)]),(0,a.isNotNull)(w.alerts.resolvedAt),(0,a.gte)(w.alerts.resolvedAt,new Date(t.getTime()-ev.A)))).orderBy((0,y.desc)(w.alerts.startedAt)).limit(500)}async function eS(e){let t={checks:new Map,events:new Map,frameworks:new Map};if(!e.length)return t;try{let[r,n,o]=await Promise.all([(0,i.db)().select({app:w.appSecurity.resourceId,version:w.appSecurity.version,status:w.appSecurity.status,findings:w.appSecurity.findings,checkedAt:w.appSecurity.checkedAt,reason:w.appSecurity.reason}).from(w.appSecurity).where((0,a.inArray)(w.appSecurity.resourceId,e)).limit(e.length),(0,i.db)().select({app:w.events.resourceId,at:w.events.at,reason:w.events.reason,message:w.events.message}).from(w.events).where((0,a.and)((0,a.inArray)(w.events.reason,[...ev.Y]),(0,a.inArray)(w.events.resourceId,e))).orderBy((0,y.desc)(w.events.at)).limit(Math.min(500,50*e.length)),(0,i.db)().select({app:w.resources.id,meta:w.resources.meta}).from(w.resources).where((0,a.inArray)(w.resources.id,e)).limit(e.length)]);for(let e of r)t.checks.set(e.app,{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],checkedAt:e.checkedAt,reason:e.reason});for(let e of n)e.app&&t.events.set(e.app,[...t.events.get(e.app)??[],{at:e.at,reason:e.reason,message:e.message}]);for(let e of o){let r=e.meta&&"object"==typeof e.meta?e.meta.framework:null;t.frameworks.set(e.app,"string"==typeof r?r:null)}}catch{return{checks:new Map,events:new Map,frameworks:new Map}}return t}let e$=(e,t,r,n)=>(0,ev.Q)({currentLiveAt:r,previousLiveAt:n,check:e.checks.get(t)??null,events:e.events.get(t)??[],framework:e.frameworks.get(t)??null});async function eT(e,t){let r=new Set(t),n=e.filter(e=>"FrameworkVulnerable"===e.ruleKey&&"app"===e.resourceKind&&e.resourceId&&r.has(e.resourceId)).map(e=>e.id);return n.length?new Set((await (0,i.db)().selectDistinct({resourceId:m.O.resourceId}).from(m.O).where((0,a.and)((0,a.eq)(m.O.ruleKey,"FrameworkVulnerable"),(0,a.eq)(m.O.action,"github_bump_pr"),(0,a.inArray)(m.O.status,["pending","approved","running","done"]),(0,a.inArray)(m.O.alertId,n),(0,a.inArray)(m.O.resourceId,[...r]))).limit(n.length)).flatMap(e=>e.resourceId?[e.resourceId]:[])):new Set}async function eR(e){let t=(0,I.i)(process.env.DAILY_HEARTBEAT_TOKEN);if(!t)return null;let[r]=await (0,i.db)().select({id:w.monitors.id}).from(w.monitors).where((0,a.and)((0,a.inArray)(w.monitors.id,e),(0,a.eq)(w.monitors.kind,"heartbeat"),(0,a.eq)(w.monitors.tokenHash,(0,S.f)(t)))).limit(1).catch(()=>[]);return r?.id??null}async function ex(e){let t=await (0,i.db)().select({app:w.links.fromResourceId,id:w.resources.id,kind:w.resources.kind,externalId:w.resources.externalId,parentId:w.resources.parentId}).from(w.links).innerJoin(w.resources,(0,a.eq)(w.resources.id,w.links.toResourceId)).where((0,a.and)((0,a.inArray)(w.links.fromResourceId,e),(0,a.eq)(w.links.kind,"uses_db"),(0,a.inArray)(w.resources.kind,["neon_project","neon_branch"]),b.sql`${w.resources.goneAt} is null`)),r=new Map;if(!t.length)return r;let n=e=>"neon_branch"===e.kind?e.parentId:e.id,o=[...new Set(t.map(n).filter(e=>!!e))];if(!o.length)return r;let s=new Map((await (0,i.db)().select({id:w.snapshots.resourceId,data:w.snapshots.data}).from(w.snapshots).where((0,a.inArray)(w.snapshots.resourceId,o))).map(e=>[e.id,(0,T.k)(T.s,e.data)]));for(let e of t){let t=n(e),a=t?s.get(t):void 0,i=a?(0,g.Z)(a.endpoints,a.branches,"neon_branch"===e.kind?e.externalId:null):null;i&&r.set(e.app,{resourceId:e.id,resourceKind:e.kind,endpointId:i})}return r}async function eE(e){if(!e.length)return[];let t=new Set((await (0,i.db)().select({alertId:m.O.alertId,action:m.O.action}).from(m.O).where((0,a.inArray)(m.O.alertId,[...new Set(e.map(e=>e.alertId))]))).map(e=>`${e.alertId}:${e.action}`)),r=e.filter(e=>!t.has(`${e.alertId}:${e.action}`));return r.length?(0,i.db)().insert(m.O).values(r.map(e=>({...e,status:"pending"}))).onConflictDoNothing().returning(e_):[]}async function eN(e,t,r,n){let[o]=await (0,i.db)().update(m.O).set({status:"approve"===t?"approved":"rejected",decidedBy:r,decidedAt:n}).where((0,a.and)((0,a.eq)(m.O.id,e),(0,a.eq)(m.O.status,"pending"),b.sql`${m.O.expiresAt} > ${n.toISOString()}::timestamptz`)).returning(e_);if(o)return{status:"ok",proposal:(0,g.E)(o),row:o};let[s]=await (0,i.db)().select(ek).from(m.O).where((0,a.eq)(m.O.id,e)).limit(1);return s?{status:"conflict",proposal:(0,g.E)(s)}:{status:"missing"}}async function eP(e,t){let[r]=await (0,i.db)().update(m.O).set({status:"running",claimedAt:t}).where((0,a.and)((0,a.eq)(m.O.id,e),(0,a.eq)(m.O.status,"approved"))).returning(e_);return r??null}async function eO(e,t,r,n){let[o]=await (0,i.db)().update(m.O).set({status:t?"done":"failed",result:r,finishedAt:n}).where((0,a.and)((0,a.eq)(m.O.id,e),(0,a.eq)(m.O.status,"running"))).returning(e_);return o??null}let eC={run:(e,t)=>ew(e,t),book:()=>(0,u.f)()};async function ej(e,t,r,n=eC){let a=await eP(e,r);if(!a)return null;let i=await n.run({action:a.action,resourceId:a.resourceId,targetRef:a.targetRef,proposalId:a.id,ruleKey:a.ruleKey??null},t),o=await n.book().catch(()=>f.a),s=await eO(e,i.ok,(0,g.x)(i,o),new Date);return s?(0,g.E)(s):null}async function eD(e,t){let r=await (0,i.db)().update(m.O).set({status:"expired",result:"Expired: nobody decided in time, or the alert stopped firing."}).where((0,a.and)((0,a.eq)(m.O.status,"pending"),(0,a.or)((0,a.lt)(m.O.expiresAt,new Date(t.getTime()+1)),(0,a.and)((0,a.isNotNull)(m.O.alertId),e.length?(0,a.notInArray)(m.O.alertId,e):b.sql`true`)))).returning({id:m.O.id});return await (0,i.db)().update(m.O).set({status:"failed",result:"The run was interrupted. Check the console page before trying again.",finishedAt:t}).where((0,a.and)((0,a.eq)(m.O.status,"running"),(0,a.lt)(m.O.claimedAt,new Date(t.getTime()-g.L)))),r.length}async function eM(e){await (0,i.db)().delete(m.O).where((0,a.and)((0,a.lt)(m.O.createdAt,new Date(e.getTime()-2592e6)),(0,a.notInArray)(m.O.status,["pending","approved","running"])))}let ez=b.sql`(${w.storedLogs.level} in ('error', 'fatal') or coalesce(${w.storedLogs.statusCode}, 0) >= 500)`,eq=b.sql`coalesce(${w.deployments.readyAt}, ${w.deployments.createdAtProvider})`;async function eL(e){let t=await (0,i.db)().select({app:w.links.fromResourceId,id:w.resources.id,kind:w.resources.kind,externalId:w.resources.externalId,parentId:w.resources.parentId}).from(w.links).innerJoin(w.resources,(0,a.eq)(w.resources.id,w.links.toResourceId)).where((0,a.and)((0,a.inArray)(w.links.fromResourceId,e),(0,a.eq)(w.links.kind,"uses_db"),(0,a.inArray)(w.resources.kind,["neon_project","neon_branch","supabase_project"]),(0,a.isNull)(w.resources.goneAt))),r=new Map;if(!t.length)return r;let n=e=>"neon_branch"===e.kind?e.parentId:e.id,o=[...new Set(t.map(n).filter(e=>!!e))],s=new Map((o.length?await (0,i.db)().select({id:w.snapshots.resourceId,data:w.snapshots.data}).from(w.snapshots).where((0,a.inArray)(w.snapshots.resourceId,o)):[]).map(e=>[e.id,e.data]));for(let e of t){let t=s.get(n(e)??"");if("supabase_project"===e.kind){let n=(0,T.k)(T.B,t);r.set(e.app,{resourceId:e.id,kind:e.kind,wakeEndpoint:null,supabaseRef:e.externalId,supabasePaused:"INACTIVE"===n.status})}else{let n=(0,T.k)(T.s,t);r.set(e.app,{resourceId:e.id,kind:e.kind,wakeEndpoint:(0,g.Z)(n.endpoints,n.branches,"neon_branch"===e.kind?e.externalId:null),supabaseRef:null,supabasePaused:!1})}}return r}let eU={apps:async function(e){let t=new Date(e.getTime()-R.I-R.s),r=b.sql`${w.storedLogs.at} >= ${new Date(e.getTime()-R.H).toISOString()}::timestamptz`,n=b.sql`${w.storedLogs.message} ~* ${R.N}`,o=b.sql`left(${w.storedLogs.message}, 200)`,s=(await (0,i.db)().select({appId:w.storedLogs.resourceId,appName:b.sql`max(${w.resources.name})`,liveAt:b.sql`max(${eq})`.mapWith(w.deployments.readyAt),currentId:b.sql`max(${w.deployments.externalId})`,errorsSinceLive:b.sql`count(*) filter (where ${ez} and ${w.storedLogs.at} >= ${eq})`.mapWith(Number),baselineErrors:b.sql`count(*) filter (where ${ez} and ${w.storedLogs.at} >= ${eq} - interval '24 hours' and ${w.storedLogs.at} < ${eq})`.mapWith(Number),topSinceLive:b.sql`mode() within group (order by ${o}) filter (where ${ez} and ${w.storedLogs.at} >= ${eq})`,errors30:b.sql`count(*) filter (where ${ez} and ${r})`.mapWith(Number),top30:b.sql`mode() within group (order by ${o}) filter (where ${ez} and ${r})`,dbErrors30:b.sql`count(*) filter (where ${r} and ${n})`.mapWith(Number),topDb:b.sql`mode() within group (order by ${o}) filter (where ${r} and ${n})`}).from(w.storedLogs).innerJoin(w.resources,(0,a.eq)(w.resources.id,w.storedLogs.resourceId)).leftJoin(w.deployments,(0,a.and)((0,a.eq)(w.deployments.resourceId,w.storedLogs.resourceId),(0,a.eq)(w.deployments.isCurrent,!0))).where((0,a.and)((0,a.gte)(w.storedLogs.at,t),(0,a.eq)(w.resources.kind,"app"),(0,a.isNull)(w.resources.goneAt))).groupBy(w.storedLogs.resourceId)).filter(e=>e.errorsSinceLive>=R.w||e.errors30>=R.G||e.dbErrors30>=R.V);if(!s.length)return[];let l=s.map(e=>e.appId),[u,d,c]=await Promise.all([(0,i.db)().select({app:w.deployments.resourceId,previousId:b.sql`max(${w.deployments.externalId}) filter (where ${w.deployments.isPreviousProduction})`,previousLiveAt:b.sql`max(${eq}) filter (where ${w.deployments.isPreviousProduction})`.mapWith(w.deployments.readyAt),lastDeployAt:b.sql`max(${w.deployments.createdAtProvider}) filter (where ${w.deployments.target} = 'production')`.mapWith(w.deployments.createdAtProvider)}).from(w.deployments).where((0,a.and)((0,a.inArray)(w.deployments.resourceId,l),(0,a.or)((0,a.eq)(w.deployments.isPreviousProduction,!0),(0,a.gte)(w.deployments.createdAtProvider,new Date(e.getTime()-R.v))))).groupBy(w.deployments.resourceId),(0,i.db)().select({app:w.monitors.resourceId,id:w.monitors.id}).from(w.monitors).where((0,a.and)((0,a.inArray)(w.monitors.resourceId,l),(0,a.eq)(w.monitors.kind,"http"),(0,a.eq)(w.monitors.paused,!1),(0,a.eq)(w.monitors.ownerPaused,!1))).orderBy(w.monitors.createdAt),eL(l)]),p=new Map(u.map(e=>[e.app,e])),f=new Map;for(let e of d)f.has(e.app)||f.set(e.app,e.id);let m=s.filter(e=>e.errorsSinceLive>=R.w&&e.liveAt&&p.get(e.appId)?.previousId).map(e=>e.appId),h=m.length?await eS(m):null;return s.map(e=>({...e,appName:e.appName??"",previousId:p.get(e.appId)?.previousId??null,lastDeployAt:p.get(e.appId)?.lastDeployAt??null,httpMonitorId:f.get(e.appId)??null,db:c.get(e.appId)??null,...h&&m.includes(e.appId)?{previousNext:e$(h,e.appId,e.liveAt,p.get(e.appId)?.previousLiveAt??null)}:{}}))},rows:async function(e){let t=b.sql`coalesce(${m.O.finishedAt}, ${m.O.decidedAt}, ${m.O.expiresAt})`;return(0,i.db)().select({id:m.O.id,ruleKey:m.O.ruleKey,resourceId:m.O.resourceId,action:m.O.action,status:m.O.status,closedAt:t.mapWith(m.O.finishedAt)}).from(m.O).where((0,a.and)((0,a.isNull)(m.O.alertId),(0,a.inArray)(m.O.ruleKey,[...R.T]),(0,a.or)((0,a.inArray)(m.O.status,["pending","approved","running"]),b.sql`${t} > ${new Date(e.getTime()-R.b).toISOString()}::timestamptz`)))}};async function eH(e,t,r=eU){let[n,o]=await Promise.all([r.apps(e),r.rows(e)]),s=n.flatMap(r=>(0,R.t)(r,t,e)),l=(0,R.W)(o,s),u=0;l.length&&(u=(await (0,i.db)().update(m.O).set({status:"expired",result:"Expired: the logs no longer show it.",finishedAt:e}).where((0,a.and)((0,a.inArray)(m.O.id,l),(0,a.eq)(m.O.status,"pending"))).returning({id:m.O.id})).length);let d=(0,R.x)(s,o,e);return d.length?{created:await (0,i.db)().insert(m.O).values(d.map(e=>({...e,status:"pending"}))).onConflictDoNothing().returning(e_),expired:u}:{created:[],expired:u}}let eB=null;async function eV(e,t){return(0,R.D)(e,eB)?(eB=e.getTime(),eH(e,await t())):{created:[],expired:0}}async function eG(e,t){return(await (0,i.db)().update(m.O).set({status:"approved",auto:!0,decidedAt:t}).where((0,a.and)((0,a.eq)(m.O.id,e),(0,a.eq)(m.O.status,"pending"),(0,a.eq)(m.O.risk,"safe"))).returning({id:m.O.id})).length>0}async function eK(e,t){let r=new Date(t.getTime()-x.r),[n,o,s,l,u]=await Promise.all([(0,i.db)().select({app:w.deployments.resourceId,id:w.deployments.externalId,sha:w.deployments.commitSha,state:w.deployments.state,isCurrent:w.deployments.isCurrent,isPrevious:w.deployments.isPreviousProduction,readyAt:w.deployments.readyAt,createdAt:w.deployments.createdAtProvider}).from(w.deployments).where((0,a.and)((0,a.inArray)(w.deployments.resourceId,e),(0,a.or)((0,a.eq)(w.deployments.isCurrent,!0),(0,a.eq)(w.deployments.isPreviousProduction,!0)))),(0,i.db)().select({app:w.deployments.resourceId,at:b.sql`max(${w.deployments.createdAtProvider})`.mapWith(w.deployments.createdAtProvider)}).from(w.deployments).where((0,a.and)((0,a.inArray)(w.deployments.resourceId,e),(0,a.eq)(w.deployments.target,"production"),(0,a.eq)(w.deployments.state,"ready"))).groupBy(w.deployments.resourceId),(0,i.db)().select({app:w.events.resourceId}).from(w.events).where((0,a.and)((0,a.eq)(w.events.type,"action"),(0,a.inArray)(w.events.resourceId,e),(0,a.gte)(w.events.at,r),b.sql`${w.events.message} ~ ${eF}`)),(0,i.db)().select({app:m.O.resourceId,targetRef:m.O.targetRef,status:m.O.status,decidedAt:m.O.decidedAt}).from(m.O).where((0,a.and)((0,a.eq)(m.O.action,"vercel_rollback"),(0,a.eq)(m.O.auto,!0),(0,a.gte)(m.O.createdAt,new Date(t.getTime()-26784e5)))),eS(e)]),d=new Map;for(let t of e){let e=n.find(e=>e.app===t&&e.isCurrent),a=n.find(e=>e.app===t&&e.isPrevious&&!e.isCurrent),i=l.filter(e=>e.app===t);d.set(t,{deploy:e?{currentId:e.id,currentSha:e.sha,liveAt:e.readyAt??e.createdAt,currentCreatedAt:e.createdAt,newestProdCreatedAt:o.find(e=>e.app===t)?.at??null,previousId:a?.id??null,previousState:a?.state??null,previousCreatedAt:a?.createdAt??null}:null,rolledOrPromotedLately:s.some(e=>e.app===t),autoLately:i.some(e=>null!==e.decidedAt&&e.decidedAt.getTime()>=r.getTime()),sameDeployBefore:!!a&&i.some(e=>e.targetRef===a.id),previousNext:e&&a?e$(u,t,e.readyAt??e.createdAt,a.readyAt??a.createdAt).status:"unknown"})}return{apps:d,inFlight:l.some(e=>"approved"===e.status||"running"===e.status)}}let eF="(Rolled back|Promoted|Preview promoted) ·";async function eW(e,t,r){return(await (0,i.db)().update(m.O).set({status:"approved",auto:!0,decidedAt:r,reason:t}).where((0,a.and)((0,a.eq)(m.O.id,e),(0,a.eq)(m.O.status,"pending"),(0,a.eq)(m.O.action,"vercel_rollback"),b.sql`not exists (select 1 from ops.action_proposals x where x.action = 'vercel_rollback' and x.auto and x.status in ('approved', 'running'))`)).returning({id:m.O.id})).length>0}async function eX(e,t,r,n){let a=e.filter(e=>"vercel_rollback"===e.action&&e.ruleKey&&x.M.has(e.ruleKey)&&e.resourceId);if(!a.length||!n.autoRollback||!n.rollbackContext||!n.approveAutoRollback)return[];let i=await n.autoRollback().catch(()=>null);if(!i?.enabled||15e3>r())return[];let o=[];try{let e=await n.rollbackContext([...new Set(a.map(e=>e.resourceId))],t),l=e.inFlight;for(let u of a){let a=e.apps.get(u.resourceId);if(!a||12e3>r())continue;let d=(0,x.s)({setting:i,ruleKey:u.ruleKey??null,targetRef:u.targetRef,inFlight:l,...a},t);if(!d.ok){console.log(`${s.X.logTag}/auto-rollback: skipped (${d.why})`);continue}let c=(0,x.E)(a.deploy);if(!await n.approveAutoRollback(u.id,(0,x.u)(c,i.windowMin,u.reason),new Date))continue;l=!0;let p=await n.execute(u.id,new Date);if(p){o.push(p),await (n.notifyRollback??E.q)(p,{reason:u.reason,newRef:c},{},{alertId:u.alertId??null}).catch(()=>void 0);break}}}catch(e){console.warn(`${s.X.logTag}/auto-rollback failed:`,e instanceof Error?e.name:"error")}return o}async function eJ(e,t){return(await (0,i.db)().update(m.O).set({status:"approved",auto:!0,decidedAt:t}).where((0,a.and)((0,a.eq)(m.O.id,e),(0,a.eq)(m.O.status,"pending"),(0,a.eq)(m.O.action,"github_bump_pr"))).returning({id:m.O.id})).length>0}async function eY(e,t,r){let n=e.filter(e=>"github_bump_pr"===e.action&&e.targetRef);if(!n.length||!r.autoSecurity||!r.bumpReady||!r.approveAutoBump)return[];let a=await r.autoSecurity().catch(()=>null);if(!a?.enabled||!a.severities.length)return[];let i=[];for(let e of n){if(15e3>t())break;try{if(e.resourceId&&r.prodMismatch?await r.prodMismatch(e.resourceId,e.targetRef).catch(()=>"unknown"):null){console.log(`${s.X.logTag}/auto-security: waits for the owner (production source)`);continue}let t="FrameworkVulnerable"===e.ruleKey&&e.resourceId?await r.bumpReady(e.targetRef,a.severities,{appId:e.resourceId}):await r.bumpReady(e.targetRef,a.severities);if(!t.ok){console.log(`${s.X.logTag}/auto-security: waits for the owner (${t.why})`);continue}if(!await r.approveAutoBump(e.id,new Date))continue;let n=await r.execute(e.id,new Date);n&&i.push(n)}catch(e){console.warn(`${s.X.logTag}/auto-security failed:`,e instanceof Error?e.name:"error")}}return i}async function eZ(e,t){return(await (0,P.H)([{appId:e,repoId:t}],new Date)).get(e)??null}async function eQ(e){return new Map((await (0,i.db)().select({id:w.accounts.id,provider:w.accounts.provider}).from(w.accounts).where((0,a.inArray)(w.accounts.id,e))).map(e=>[e.id,e.provider]))}let e0={firing:()=>(0,v.q)(),book:()=>(0,u.f)(),facts:eA,create:eE,expire:eD,autoRun:ef.I,approveAuto:eG,execute:(e,t)=>ej(e,"auto",t),notifyNew:E.i,notifyResult:E.b,logs:eV,autoRollback:()=>(0,ef.K)(),rollbackContext:eK,approveAutoRollback:eW,notifyRollback:E.q,autoSecurity:()=>(0,ef.X)(),bumpReady:P.J,approveAutoBump:eJ,paused:_.I,providers:eQ,prodMismatch:eZ};async function e1(e,t={},r=e0){let n={created:0,expired:0,autoRan:0},a=()=>(t.deadline??1/0)-Date.now(),i=await r.firing();n.expired=await r.expire(i.map(e=>e.id),e);let o=r.paused?await r.paused().catch(()=>new Set):new Set,l=[...new Set(i.flatMap(e=>e.accountId?[e.accountId]:[]))],u=o.size&&l.length&&r.providers?await r.providers(l).catch(()=>new Map):new Map,d=i.filter(e=>!(0,A.O)(o,e.ruleKey,e.accountId?u.get(e.accountId):null)),c=null,p=()=>c??=r.book().catch(()=>f.a),m=[],h=(0,g.z)(d,e);if(Object.values(h).some(e=>e.length>0)){let t=h.deployApps.length&&r.autoRollback?await r.autoRollback().catch(()=>null):null,n=await r.facts(d,e,t?6e4*t.windowMin:void 0),a=await p(),i=d.flatMap(t=>(0,g.t)(t,n,a,e)).filter(e=>!("github_bump_pr"===e.action&&o.has("devops")));m.push(...await r.create(i))}if(a()>1e4&&!o.has("hosting"))try{let t=await r.logs(e,p);m.push(...t.created),n.expired+=t.expired}catch(e){console.warn(`${s.X.logTag}/proposals logs failed:`,e instanceof Error?e.name:"error")}if(n.created=m.length,!m.length)return n;let y=await r.autoRun().catch(()=>null),b=await eX(m,e,a,r);n.autoRan+=b.length;let w=await eY(m.filter(e=>!b.some(t=>t.id===e.id)),a,r),v=new Set(b.map(e=>e.id)),k=[...w];for(let e of(n.autoRan+=w.length,w))v.add(e.id);for(let e of m){if(v.has(e.id)||!y||!(0,g.I)(e.action,y)||8e3>a()||!await r.approveAuto(e.id,new Date))continue;let t=await r.execute(e.id,new Date);t&&(k.push(t),n.autoRan++)}let _=new Set([...k.map(e=>e.id),...v]),I=m.filter(e=>"LogErrorSpike"===e.ruleKey&&e.resourceId).map(e=>({proposalId:e.id,appId:e.resourceId})),S=I.length&&r.queueDev?await r.queueDev(I,e).catch(()=>new Set):new Set,$=new Map(m.map(e=>[e.id,e.alertId??null]));for(let e of(await r.notifyNew(m.filter(e=>!_.has(e.id)).map(g.E),{},{devQueued:S,alertIds:$}).catch(()=>void 0),k))await r.notifyResult(e,{},{alertId:$.get(e.id)??null}).catch(()=>void 0);return n}let e3=(r={},t={...e0,queueDev:r.queueDev},async(e,r)=>{try{let n=await e1(e,r??{},t);(n.created||n.expired||n.autoRan)&&console.log(`${s.X.logTag}/proposals: ${n.created} new, ${n.expired} expired, ${n.autoRan} auto-ran`)}catch(e){console.warn(`${s.X.logTag}/proposals failed:`,e instanceof Error?e.name:"error")}});e.s(["V",0,eN,"N",0,ej,"Z",0,e3,"t",0,eM],653587);let e2={decide:eN,execute:(e,t,r)=>ej(e,t,r),history:(e,t)=>(0,E.v)(e,t)},e4=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,e6={en:{approve:"✅ Approve",reject:"❌ Reject",sure:"⚠️ Sure? Approve",cancel:"Cancel",invalid:"This button is not valid.",gone:"This proposal is already decided / expired",confirmFirst:"This action is risky. Tap ⚠️ Sure? Approve within 2 minutes.",confirmLate:"The confirmation expired. Tap ✅ Approve again.",cancelled:"Cancelled. The proposal is still waiting.",running:"Approved. Running…",rejected:"Rejected.",failed:"Could not process it. Try again from Auto-actions."},id:{approve:"✅ Setujui",reject:"❌ Tolak",sure:"⚠️ Yakin? Setujui",cancel:"Batal",invalid:"Tombol ini nggak valid.",gone:"Usulan ini udah diputuskan / kedaluwarsa",confirmFirst:"Aksi ini berisiko. Tap ⚠️ Yakin? Setujui dalam 2 menit.",confirmLate:"Konfirmasinya kedaluwarsa. Tap ✅ Setujui lagi.",cancelled:"Dibatalkan. Usulannya masih menunggu.",running:"Disetujui. Lagi jalan…",rejected:"Ditolak.",failed:"Gagal memproses. Coba lagi dari Auto-actions."}},e5=e=>(0,n.createHmac)("sha256",Buffer.from(e,"base64")).update("watchpost:telegram-callback:v1").digest(),e9=(e,t)=>(0,n.createHmac)("sha256",e).update(t,"utf8").digest("base64url").slice(0,16);function e8(e,t,r,n=null){let a=`p:${t}:${r}${"c"===r?`:${(n??0).toString(36)}`:""}`;return`${a}:${e9(e,a)}`}function e7(e,t){if("string"!=typeof t||t.length>64)return null;let r=t.lastIndexOf(":");if(r<0)return null;let a=t.slice(0,r),i=Buffer.from(t.slice(r+1),"utf8"),o=Buffer.from(e9(e,a),"utf8");if(i.length!==o.length||!(0,n.timingSafeEqual)(i,o))return null;let s=a.split(":");if("p"!==s[0]||!e4.test(s[1]??""))return null;let l=s[2];return"c"===l?4===s.length&&/^[0-9a-z]{1,10}$/.test(s[3])?{id:s[1],op:l,exp:parseInt(s[3],36)}:null:3===s.length&&["a","r","x"].includes(l)?{id:s[1],op:l,exp:null}:null}let te=(e,t,r="en")=>({inline_keyboard:[[{text:e6[r].approve,callback_data:e8(e,t,"a")},{text:e6[r].reject,callback_data:e8(e,t,"r")}]]}),tt=(e,t,r,n="en")=>({inline_keyboard:[[{text:e6[n].sure,callback_data:e8(e,t,"c",r)},{text:e6[n].cancel,callback_data:e8(e,t,"x")}]]}),tr={en:{pending:"⏳ waiting",approved:"⚙️ running",running:"⚙️ running",done:"✅ done",failed:"❌ failed",rejected:"🚫 rejected",expired:"⌛ expired"},id:{pending:"⏳ menunggu",approved:"⚙️ jalan",running:"⚙️ jalan",done:"✅ selesai",failed:"❌ gagal",rejected:"🚫 ditolak",expired:"⌛ kedaluwarsa"}};function tn(e,t,r="en"){let n=e.result&&("done"===e.status||"failed"===e.status||"expired"===e.status)?(0,h.R)(e.result,t,200):"";return`Status: ${tr[r][e.status]}${n?` — ${(0,o.H)(n)}`:""}`}let ta=(e,t,r,n="en")=>`${(0,E.a)(e,t,r,!1,n)}
|
|
44
|
+
${tn(e,t,n)}`,ti={key:()=>e5((0,c.serverEnv)().OPS_ENCRYPTION_KEY),get:async function(e){let[t]=await (0,i.db)().select({id:m.O.id,room:m.O.room,action:m.O.action,risk:m.O.risk,title:m.O.title,reason:m.O.reason,resourceName:m.O.resourceName,proposedBy:m.O.proposedBy,status:m.O.status,auto:m.O.auto,result:m.O.result,createdAt:m.O.createdAt,decidedAt:m.O.decidedAt,expiresAt:m.O.expiresAt}).from(m.O).where((0,a.eq)(m.O.id,e)).limit(1);return t?(0,g.E)(t):null},decide:async function e(t,r,n,a,i={},o=e2){let s=await o.decide(t,r,n.id,a);if("ok"!==s.status)return"missing"===s.status?{status:"missing"}:{status:"conflict",proposal:s.proposal};let l=[],u=async()=>{let e,t=o.history;if(!t||!l.length)return;let r=l.splice(0),n=new Promise(t=>{e=setTimeout(t,E.h)}),a=(async()=>{for(let[e,n]of r)await t(e,n).catch(()=>void 0)})();await Promise.race([a,n]).finally(()=>clearTimeout(e))};if("reject"===r)return l.push(["rejected",s.proposal]),{status:"ok",proposal:s.proposal,flushHistory:u};l.push(["approved",s.proposal]),i.onApproved&&await i.onApproved(s.proposal).catch(()=>void 0);let d=await o.execute(t,{id:n.id,userId:n.userId},new Date);return d&&("done"===d.status||"failed"===d.status)&&l.push([d.status,d]),{status:"ok",proposal:d??s.proposal,flushHistory:u}},book:()=>(0,u.f)(),siteUrl:()=>(0,c.serverEnv)().SITE_URL,lang:()=>(0,p.H)("telegram"),audit:e=>(0,l.f)({...e,resourceId:null})};async function to(e,t,r=ti){let{client:n,owner:a,now:i}=t,o=r.key(),l=await r.lang().catch(()=>"en"),u=e6[l],d=e7(o,e.data);if(!d)return void await n.answer(e.queryId,u.invalid);let c=null,p=async(t,a)=>n.editText(e.chatId,e.messageId,ta(t,await (c??=r.book().catch(()=>f.a)),r.siteUrl(),l),a),m=async t=>{await n.answer(e.queryId,u.gone),t?await p(t,null):await n.editKeyboard(e.chatId,e.messageId,{inline_keyboard:[]})},h=await r.get(d.id);if(!h||!("pending"===h.status&&Date.parse(h.expiresAt)>i.getTime()))return m(h);if("x"===d.op){await n.editKeyboard(e.chatId,e.messageId,te(o,h.id,l)),await n.answer(e.queryId,u.cancelled);return}if("a"===d.op&&("risky"===h.risk||em.H[h.action]?.risk==="risky")){await n.editKeyboard(e.chatId,e.messageId,tt(o,h.id,Math.floor((i.getTime()+12e4)/1e3),l)),await n.answer(e.queryId,u.confirmFirst);return}if("c"===d.op&&(d.exp??0)*1e3<i.getTime()){await n.editKeyboard(e.chatId,e.messageId,te(o,h.id,l)),await n.answer(e.queryId,u.confirmLate);return}let g="r"===d.op?"reject":"approve",y=!1;try{let t=await r.decide(h.id,g,{id:a.memberId,userId:a.userId},i,{onApproved:async t=>{y=!0,await n.answer(e.queryId,u.running),await p(t,null)}});if("missing"===t.status)return m(null);if("conflict"===t.status)return m(t.proposal);await r.audit({kind:"ok",message:s.X.telegramDecided("approve"===g?"approved":"rejected",t.proposal.title.slice(0,120)),actorUserId:a.userId}).catch(()=>console.warn("audit event failed")),y||await n.answer(e.queryId,"reject"===g?u.rejected:u.running),await p(t.proposal,null),await t.flushHistory?.()}catch(t){console.warn("telegram approvals: deciding failed:",t instanceof Error?t.name:"error"),y||await n.answer(e.queryId,u.failed)}}async function ts(){if(!await (0,d.webhookOn)()||!await (0,d.ownerLinked)())return null;let e=e5((0,c.serverEnv)().OPS_ENCRYPTION_KEY),t=await (0,p.H)("telegram");return r=>te(e,r.id,t)}e.s(["CONFIRM_MS",0,12e4,"TEXT",0,e6,"approvalButtons",0,ts,"approvalKeyboard",0,te,"callbackKey",0,e5,"confirmKeyboard",0,tt,"noticeText",0,ta,"proposalCallback",0,to,"signCallback",0,e8,"statusLine",0,tn,"verifyCallback",0,e7],452475)},898757,e=>{let t=["gemini","antigravity","@cf/google/gemma","claude"];function r(e,n=t){if(!e)return!1;let a=e.toLowerCase();return n.some(e=>e.length>0&&a.startsWith(e.toLowerCase()))}let n=/^[A-Za-z0-9@._:/+ ()[\]-]{1,120}$/,a=/^[a-z0-9@._:/+-]{1,120}$/;function i(e){if("string"!=typeof e)return null;let t=e.trim();if(!n.test(t))return null;let r=t.toLowerCase().replace(/[\s()[\]]+/g,"-").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");return a.test(r)?r:null}function o(e){let t=e.trim();if(t.startsWith("@"))return t;let r=t.indexOf("/");return r<0?t:t.slice(r+1)}e.s(["_",0,t,"L",0,"ai.defaultModel","e",0,a,"h",0,function(e,n=t){let a=i(e);return a&&r(o(a),n)?a:null},"S",0,r,"R",0,i,"M",0,o])},989578,e=>{var t=e.i(760859),r=e.i(756371),n=e.i(765503),a=e.i(898757);let i=/\b([a-z][a-z0-9+.-]{1,20}):\/\/[^\s"'<>`]*/gi,o=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,s=/\b(?:w[bp]_[A-Za-z0-9]{6,}|hb_[A-Za-z0-9[\]]{2,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{10,}|AQ\.[A-Za-z0-9_-]{10,})/g,l=/(?<![\p{L}\p{N}_.-])[a-z0-9-]+\.vercel\.app(?![\p{L}\p{N}_-])/giu,u=/@/g,d=new WeakMap;function c(e,t){return/^https?$/i.test(t)?"[link]":"[hidden]"}a._;let p="[\\p{L}\\p{N}_./-]",f=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),m=/(?<![\p{L}\p{N}_.@-])(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,24}(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])/giu,h=new WeakMap;function g(e,a){return String(e??"").replace(/\r\n?/g,"\n").split("\n").map(e=>{var g,y;let b,w,v,k=(g=(0,r.f)(e,a),b=g.replace(i,c),b=(0,t.J)(b,a),b=(b=(0,n.h)(b)).replace(s,"[hidden]"),(w=function(e){if(d.has(e))return d.get(e);let t=[...e.host??[]].filter(e=>e.name.includes(".")).sort((e,t)=>t.name.length-e.name.length),r=t.length?{re:RegExp(`(?<![\\p{L}\\p{N}_-])((?:[a-z0-9-]+\\.)*?)(${t.map(e=>e.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")})(?![\\p{L}\\p{N}_-]|\\.[\\p{L}\\p{N}])`,"giu"),alias:new Map(t.map(e=>[e.name.toLowerCase(),e.alias]))}:null;return d.set(e,r),r}(a))&&(b=b.replace(w.re,(e,t,r)=>`${t}${w.alias.get(r.toLowerCase())??"site.example"}`)),b=b.replace(l,"preview.example").replace(o,"[ip]").replace(u," at "));return k=k.replace(m,e=>/\.example$/i.test(e)?e:"site.example"),(0,t.G)((y=k,(v=function(e){if(h.has(e))return h.get(e);let t=new Map(e.app.filter(e=>e.name.trim().length>=2).map(e=>[e.name.toLowerCase(),e.alias])),r=[...t.keys()].sort((e,t)=>t.length-e.length),n=r.length?{re:RegExp(`(?<!${p})(?:${r.map(f).join("|")})(?!${p})`,"giu"),alias:t}:null;return h.set(e,n),n}(a))?y.replace(v.re,e=>v.alias.get(e.toLowerCase())??e):y))}).join("\n")}let y=(e,t)=>e.length>t?`${e.slice(0,t-1).trimEnd()}…`:e;e.s(["g",0,(e,t,r)=>y(g(String(e??"").replace(/\s+/g," "),t).replace(/\s+/g," ").trim(),r),"R",0,(e,r,n)=>{let a;return y((a=String(e??"").replace(/\s+/g," "),(0,t.q)(g(a,r),r)).replace(/\s+/g," ").trim(),n)}],989578)},756371,e=>{var t=e.i(765503),r=e.i(760859);let n=/(?<![\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,a=/\b[a-z][a-z0-9+.-]*:\/\/[^\s/?#"'<>)]*(\/[^\s?#"'<>)]*)?(?:[?#][^\s"'<>)]*)?/gi,i="[\\p{L}\\p{N}_-]",o=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=new WeakMap;RegExp(n.source,"u"),e.s(["f",0,function(e,l){let u=(0,t.h)(e);u=(0,r.J)(u,l);let d=function(e){if(s.has(e))return s.get(e);let t=new Map((e.account??[]).filter(e=>e.name.trim().length>=2).map(e=>[e.name.toLowerCase(),e.alias])),r=[...t.keys()].sort((e,t)=>t.length-e.length),n=r.length?{re:RegExp(`(?<!${i})(?:${r.map(o).join("|")})(?!${i})`,"giu"),alias:t}:null;return s.set(e,n),n}(l);return d&&(u=u.replace(d.re,e=>d.alias.get(e.toLowerCase())??e)),(u=(u=(u=u.replace(n,"[hidden]")).replace(/hb_\[hidden\]/g,"[hidden]")).replace(a,(e,t)=>t??"[url]")).replace(/@/g,"(at)")}])},518581,e=>{var t=e.i(533102),r=e.i(69659),n=e.i(748031),a=e.i(745644),i=e.i(723235),o=e.i(511302),s=e.i(553184),l=e.i(741630),u=e.i(370705),d=e.i(141757),c=e.i(10566),p=e.i(45115),f=e.i(530298);let m=f.ops.table("api_keys",{id:(0,p.q)("id").primaryKey().defaultRandom(),name:(0,d.f)("name").notNull(),prefix:(0,d.f)("prefix").notNull(),keyHash:(0,d.f)("key_hash").notNull(),scopes:(0,d.f)("scopes").array().notNull(),ratePerMin:(0,s.f)("rate_per_min").notNull().default(20),providerId:(0,p.q)("provider_id").references(()=>h.id,{onDelete:"set null"}),model:(0,d.f)("model"),expiresAt:(0,c._)("expires_at",{withTimezone:!0}),revokedAt:(0,c._)("revoked_at",{withTimezone:!0}),lastUsedAt:(0,c._)("last_used_at",{withTimezone:!0}),createdBy:(0,p.q)("created_by").notNull(),createdAt:(0,c._)("created_at",{withTimezone:!0}).notNull().defaultNow()},e=>[(0,o.v)("api_keys_hash_key").on(e.keyHash)]),h=f.ops.table("ai_providers",{id:(0,p.q)("id").primaryKey().defaultRandom(),kind:(0,d.f)("kind").$type().notNull(),name:(0,d.f)("name").notNull(),baseUrl:(0,d.f)("base_url").notNull(),ciphertext:(0,d.f)("ciphertext").notNull(),iv:(0,d.f)("iv").notNull(),keyVersion:(0,s.f)("key_version").notNull().default(1),keyHint:(0,d.f)("key_hint").notNull(),enabled:(0,a.f)("enabled").notNull().default(!0),isDefault:(0,a.f)("is_default").notNull().default(!1),models:(0,l.y)("models").$type().notNull().default([]),limits:(0,l.y)("limits").$type().notNull().default([]),lastTestAt:(0,c._)("last_test_at",{withTimezone:!0}),lastTestStatus:(0,s.f)("last_test_status"),lastError:(0,d.f)("last_error"),createdAt:(0,c._)("created_at",{withTimezone:!0}).notNull().defaultNow(),updatedAt:(0,c._)("updated_at",{withTimezone:!0}).notNull().defaultNow()});f.ops.table("ai_agents",{id:(0,p.q)("id").primaryKey().defaultRandom(),keyId:(0,p.q)("key_id").references(()=>m.id,{onDelete:"cascade"}),clientName:(0,d.f)("client_name").notNull(),clientVersion:(0,d.f)("client_version").notNull().default(""),via:(0,d.f)("via").notNull(),userAgent:(0,d.f)("user_agent").notNull().default(""),displayName:(0,d.f)("display_name"),firstSeenAt:(0,c._)("first_seen_at",{withTimezone:!0}).notNull().defaultNow(),lastSeenAt:(0,c._)("last_seen_at",{withTimezone:!0}).notNull().defaultNow(),requests:(0,r.f)("requests",{mode:"number"}).notNull().default(0),tokensIn:(0,r.f)("tokens_in",{mode:"number"}).notNull().default(0),tokensOut:(0,r.f)("tokens_out",{mode:"number"}).notNull().default(0),recent:(0,d.f)("recent").array().notNull().default([])}),f.ops.table("ai_usage",{id:(0,n.f)("id",{mode:"number"}).primaryKey(),at:(0,c._)("at",{withTimezone:!0}).notNull().defaultNow(),keyId:(0,p.q)("key_id"),agentId:(0,p.q)("agent_id"),providerId:(0,p.q)("provider_id"),model:(0,d.f)("model"),kind:(0,d.f)("kind").notNull(),tool:(0,d.f)("tool"),tokensIn:(0,s.f)("tokens_in"),tokensOut:(0,s.f)("tokens_out"),latencyMs:(0,s.f)("latency_ms").notNull(),status:(0,s.f)("status").notNull(),errorClass:(0,d.f)("error_class"),stream:(0,a.f)("stream").notNull().default(!1),tokensCached:(0,s.f)("tokens_cached"),tokensThinking:(0,s.f)("tokens_thinking")},e=>[(0,o.y)("ai_usage_at_idx").on(e.at),(0,o.y)("ai_usage_key_at_idx").on(e.keyId,e.at)]),f.ops.table("ai_quota",{providerId:(0,p.q)("provider_id").notNull().references(()=>h.id,{onDelete:"cascade"}),scope:(0,d.f)("scope").notNull(),metric:(0,d.f)("metric").notNull(),windowStart:(0,c._)("window_start",{withTimezone:!0}),used:(0,s.f)("used"),limit:(0,s.f)("limit"),remaining:(0,s.f)("remaining"),resetAt:(0,c._)("reset_at",{withTimezone:!0}),source:(0,d.f)("source").notNull(),updatedAt:(0,c._)("updated_at",{withTimezone:!0}).notNull().defaultNow()},e=>[(0,u._)({columns:[e.providerId,e.scope,e.metric]})]);let g=f.ops.table("ai_notes",{id:(0,p.q)("id").primaryKey().defaultRandom(),keyId:(0,p.q)("key_id").references(()=>m.id,{onDelete:"set null"}),source:(0,d.f)("source").notNull(),appId:(0,d.f)("app_id"),severity:(0,d.f)("severity").$type().notNull(),title:(0,d.f)("title").notNull(),body:(0,d.f)("body").notNull(),model:(0,d.f)("model"),client:(0,d.f)("client"),createdAt:(0,c._)("created_at",{withTimezone:!0}).notNull().defaultNow(),dismissedAt:(0,c._)("dismissed_at",{withTimezone:!0}),dismissedBy:(0,p.q)("dismissed_by")},e=>[(0,o.y)("ai_notes_created_idx").on(e.createdAt)]),y=f.ops.table("ai_questions",{id:(0,p.q)("id").primaryKey().defaultRandom(),contextKind:(0,d.f)("context_kind").$type().notNull(),contextId:(0,p.q)("context_id"),question:(0,d.f)("question").notNull(),status:(0,d.f)("status").$type().notNull().default("pending"),answer:(0,d.f)("answer"),answeredByClient:(0,d.f)("answered_by_client"),answeredByModel:(0,d.f)("answered_by_model"),createdBy:(0,p.q)("created_by"),createdAt:(0,c._)("created_at",{withTimezone:!0}).notNull().defaultNow(),answeredAt:(0,c._)("answered_at",{withTimezone:!0}),requestedModel:(0,d.f)("requested_model"),purpose:(0,d.f)("purpose").$type().notNull().default("ask")},e=>[(0,o.y)("ai_questions_status_created_idx").on(e.status,e.createdAt)]);f.ops.table("office_events",{id:(0,n.f)("id",{mode:"number"}).primaryKey(),at:(0,c._)("at",{withTimezone:!0}).notNull().defaultNow(),session:(0,d.f)("session").notNull(),project:(0,d.f)("project"),agent:(0,d.f)("agent"),agentType:(0,d.f)("agent_type"),ev:(0,d.f)("ev").$type().notNull(),tool:(0,d.f)("tool"),summary:(0,d.f)("summary"),kind:(0,d.f)("kind"),spawn:(0,l.y)("spawn").$type(),usage:(0,l.y)("usage").$type(),keyId:(0,p.q)("key_id")},e=>[(0,o.y)("office_events_at_idx").on(e.at)]),f.ops.table("office_reports",{id:(0,p.q)("id").primaryKey().defaultRandom(),at:(0,c._)("at",{withTimezone:!0}).notNull().defaultNow(),source:(0,d.f)("source").$type().notNull(),title:(0,d.f)("title").notNull(),body:(0,d.f)("body").notNull(),rooms:(0,l.y)("rooms").$type(),model:(0,d.f)("model"),via:(0,d.f)("via").$type(),usage:(0,l.y)("usage").$type(),keyId:(0,p.q)("key_id"),readAt:(0,c._)("read_at",{withTimezone:!0})},e=>[(0,o.y)("office_reports_at_idx").on(e.at)]);let b=f.ops.table("action_proposals",{id:(0,p.q)("id").primaryKey().defaultRandom(),alertId:(0,p.q)("alert_id"),ruleKey:(0,d.f)("rule_key").notNull(),room:(0,d.f)("room").$type().notNull(),action:(0,d.f)("action").$type().notNull(),risk:(0,d.f)("risk").$type().notNull(),title:(0,d.f)("title").notNull(),reason:(0,d.f)("reason").notNull(),resourceKind:(0,d.f)("resource_kind"),resourceId:(0,p.q)("resource_id"),resourceName:(0,d.f)("resource_name"),targetRef:(0,d.f)("target_ref"),proposedBy:(0,d.f)("proposed_by").notNull(),status:(0,d.f)("status").$type().notNull().default("pending"),auto:(0,a.f)("auto").notNull().default(!1),result:(0,d.f)("result"),decidedBy:(0,p.q)("decided_by"),createdAt:(0,c._)("created_at",{withTimezone:!0}).notNull().defaultNow(),decidedAt:(0,c._)("decided_at",{withTimezone:!0}),expiresAt:(0,c._)("expires_at",{withTimezone:!0}).notNull(),claimedAt:(0,c._)("claimed_at",{withTimezone:!0}),finishedAt:(0,c._)("finished_at",{withTimezone:!0})},e=>[(0,o.v)("action_proposals_open_alert_action").on(e.alertId,e.action).where(t.sql`status in ('pending', 'approved', 'running')`),(0,o.y)("action_proposals_status_created_idx").on(e.status,e.createdAt)]);f.ops.table("dev_notes",{id:(0,p.q)("id").primaryKey().defaultRandom(),appId:(0,p.q)("app_id").notNull(),proposalId:(0,p.q)("proposal_id"),trigger:(0,d.f)("trigger").$type().notNull(),status:(0,d.f)("status").$type().notNull().default("queued"),repo:(0,d.f)("repo"),ref:(0,d.f)("ref"),question:(0,d.f)("question").notNull(),summary:(0,d.f)("summary"),cause:(0,d.f)("cause"),files:(0,l.y)("files").$type().notNull().default([]),patch:(0,d.f)("patch"),confidence:(0,d.f)("confidence").$type(),model:(0,d.f)("model"),error:(0,d.f)("error"),requestedBy:(0,p.q)("requested_by"),createdAt:(0,c._)("created_at",{withTimezone:!0}).notNull().defaultNow(),startedAt:(0,c._)("started_at",{withTimezone:!0}),finishedAt:(0,c._)("finished_at",{withTimezone:!0})},e=>[(0,o.v)("dev_notes_proposal_one").on(e.proposalId).where(t.sql`proposal_id is not null`),(0,o.y)("dev_notes_created_idx").on(e.createdAt),(0,o.y)("dev_notes_app_status_idx").on(e.appId,e.status)]),f.ops.table("news_items",{id:(0,p.q)("id").primaryKey().defaultRandom(),day:(0,i.c)("day",{mode:"string"}).notNull(),topic:(0,d.f)("topic").$type().notNull(),title:(0,d.f)("title").notNull(),url:(0,d.f)("url").notNull(),source:(0,d.f)("source"),publishedAt:(0,c._)("published_at",{withTimezone:!0}),fetchedAt:(0,c._)("fetched_at",{withTimezone:!0}).notNull().defaultNow()},e=>[(0,o.v)("news_items_url_day").on(e.url,e.day),(0,o.y)("news_items_day_topic_idx").on(e.day,e.topic)]),e.s(["O",0,b,"c",0,g,"f",0,h,"S",0,y])}],668304,(e,t,r)=>{let n;n={unstable_cache:e.r(255706).unstable_cache,updateTag:e.r(199300).updateTag,revalidateTag:e.r(199300).revalidateTag,revalidatePath:e.r(199300).revalidatePath,refresh:e.r(199300).refresh,unstable_noStore:e.r(910582).unstable_noStore,io:e.r(601623).io,cacheLife:e.r(825183).cacheLife,cacheTag:e.r(246130).cacheTag,navigation:e.r(883969).navigation,prefetch:e.r(883969).prefetch};let a=!1,i=!1;n.unstable_cacheLife=function(){return a||(a=!0,console.error(Error("`unstable_cacheLife` was recently stabilized and should be imported as `cacheLife`. The `unstable` prefixed form will be removed in a future version of Next.js."))),n.cacheLife.apply(this,arguments)},n.unstable_cacheTag=function(){return i||(i=!0,console.error(Error("`unstable_cacheTag` was recently stabilized and should be imported as `cacheTag`. The `unstable` prefixed form will be removed in a future version of Next.js."))),n.cacheTag.apply(this,arguments)},t.exports=n,r.unstable_cache=n.unstable_cache,r.revalidatePath=n.revalidatePath,r.revalidateTag=n.revalidateTag,r.updateTag=n.updateTag,r.unstable_noStore=n.unstable_noStore,r.cacheLife=n.cacheLife,r.unstable_cacheLife=n.unstable_cacheLife,r.cacheTag=n.cacheTag,r.unstable_cacheTag=n.unstable_cacheTag,r.refresh=n.refresh,r.io=n.io,r.navigation=n.navigation,r.prefetch=n.prefetch},371039,(e,t,r)=>{(()=>{"use strict";let r,n,a,i,o;var s,l,u,d,c,p,f,m,h,g,y,b,w,v,k,_,A={912:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ContextAPI=void 0;let n=r(108),a=r(221),i=r(44),o="context",s=new n.NoopContextManager;t.ContextAPI=class e{static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(o,e,i.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(o)||s}disable(){this._getContextManager().disable(),(0,a.unregisterGlobal)(o,i.DiagAPI.instance())}}},44:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagAPI=void 0;let n=r(757),a=r(412),i=r(711),o=r(221);t.DiagAPI=class e{constructor(){function e(e){return function(...t){let r=(0,o.getGlobal)("diag");if(r)return r[e](...t)}}let t=this;t.setLogger=(e,r={logLevel:i.DiagLogLevel.INFO})=>{var n,s,l;if(e===t){let e=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!=(n=e.stack)?n:e.message),!1}"number"==typeof r&&(r={logLevel:r});let u=(0,o.getGlobal)("diag"),d=(0,a.createLogLevelDiagLogger)(null!=(s=r.logLevel)?s:i.DiagLogLevel.INFO,e);if(u&&!r.suppressOverrideMessage){let e=null!=(l=Error().stack)?l:"<failed to generate stacktrace>";u.warn(`Current logger will be overwritten from ${e}`),d.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,o.registerGlobal)("diag",d,t,!0)},t.disable=()=>{(0,o.unregisterGlobal)("diag",t)},t.createComponentLogger=e=>new n.DiagComponentLogger(e),t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}static instance(){return this._instance||(this._instance=new e),this._instance}}},262:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MetricsAPI=void 0;let n=r(586),a=r(221),i=r(44),o="metrics";t.MetricsAPI=class e{static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(o,e,i.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(o)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(o,i.DiagAPI.instance())}}},25:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PropagationAPI=void 0;let n=r(221),a=r(19),i=r(92),o=r(398),s=r(504),l=r(44),u="propagation",d=new a.NoopTextMapPropagator;t.PropagationAPI=class e{constructor(){this.createBaggage=s.createBaggage,this.getBaggage=o.getBaggage,this.getActiveBaggage=o.getActiveBaggage,this.setBaggage=o.setBaggage,this.deleteBaggage=o.deleteBaggage}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,l.DiagAPI.instance())}inject(e,t,r=i.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=i.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,l.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||d}}},397:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceAPI=void 0;let n=r(221),a=r(498),i=r(477),o=r(793),s=r(44),l="trace";t.TraceAPI=class e{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider,this.wrapSpanContext=i.wrapSpanContext,this.isSpanContextValid=i.isSpanContextValid,this.deleteSpan=o.deleteSpan,this.getSpan=o.getSpan,this.getActiveSpan=o.getActiveSpan,this.getSpanContext=o.getSpanContext,this.setSpan=o.setSpan,this.setSpanContext=o.setSpanContext}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(e){let t=(0,n.registerGlobal)(l,this._proxyTracerProvider,s.DiagAPI.instance());return t&&this._proxyTracerProvider.setDelegate(e),t}getTracerProvider(){return(0,n.getGlobal)(l)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(l,s.DiagAPI.instance()),this._proxyTracerProvider=new a.ProxyTracerProvider}}},398:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;let n=r(912),a=(0,r(23).createContextKey)("OpenTelemetry Baggage Key");function i(e){return e.getValue(a)||void 0}t.getBaggage=i,t.getActiveBaggage=function(){return i(n.ContextAPI.getInstance().active())},t.setBaggage=function(e,t){return e.setValue(a,t)},t.deleteBaggage=function(e){return e.deleteValue(a)}},152:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaggageImpl=void 0,t.BaggageImpl=class e{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){let t=this._entries.get(e);if(t)return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map(([e,t])=>[e,t])}setEntry(t,r){let n=new e(this._entries);return n._entries.set(t,r),n}removeEntry(t){let r=new e(this._entries);return r._entries.delete(t),r}removeEntries(...t){let r=new e(this._entries);for(let e of t)r._entries.delete(e);return r}clear(){return new e}}},647:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.baggageEntryMetadataSymbol=void 0,t.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},504:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.baggageEntryMetadataFromString=t.createBaggage=void 0;let n=r(44),a=r(152),i=r(647),o=n.DiagAPI.instance();t.createBaggage=function(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))},t.baggageEntryMetadataFromString=function(e){return"string"!=typeof e&&(o.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:i.baggageEntryMetadataSymbol,toString:()=>e}}},778:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.context=void 0,t.context=r(912).ContextAPI.getInstance()},108:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopContextManager=void 0;let n=r(23);t.NoopContextManager=class{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}},23:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ROOT_CONTEXT=t.createContextKey=void 0,t.createContextKey=function(e){return Symbol.for(e)},t.ROOT_CONTEXT=new class e{constructor(t){let r=this;r._currentContext=t?new Map(t):new Map,r.getValue=e=>r._currentContext.get(e),r.setValue=(t,n)=>{let a=new e(r._currentContext);return a._currentContext.set(t,n),a},r.deleteValue=t=>{let n=new e(r._currentContext);return n._currentContext.delete(t),n}}}},304:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.diag=void 0,t.diag=r(44).DiagAPI.instance()},757:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagComponentLogger=void 0;let n=r(221);function a(e,t,r){let a=(0,n.getGlobal)("diag");if(a)return r.unshift(t),a[e](...r)}t.DiagComponentLogger=class{constructor(e){this._namespace=e.namespace||"DiagComponentLogger"}debug(...e){return a("debug",this._namespace,e)}error(...e){return a("error",this._namespace,e)}info(...e){return a("info",this._namespace,e)}warn(...e){return a("warn",this._namespace,e)}verbose(...e){return a("verbose",this._namespace,e)}}},83:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagConsoleLogger=void 0;let r=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];t.DiagConsoleLogger=class{constructor(){for(let e=0;e<r.length;e++)this[r[e].n]=function(e){return function(...t){if(console){let r=console[e];if("function"!=typeof r&&(r=console.log),"function"==typeof r)return r.apply(console,t)}}}(r[e].c)}}},412:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createLogLevelDiagLogger=void 0;let n=r(711);t.createLogLevelDiagLogger=function(e,t){function r(r,n){let a=t[r];return"function"==typeof a&&e>=n?a.bind(t):function(){}}return e<n.DiagLogLevel.NONE?e=n.DiagLogLevel.NONE:e>n.DiagLogLevel.ALL&&(e=n.DiagLogLevel.ALL),t=t||{},{error:r("error",n.DiagLogLevel.ERROR),warn:r("warn",n.DiagLogLevel.WARN),info:r("info",n.DiagLogLevel.INFO),debug:r("debug",n.DiagLogLevel.DEBUG),verbose:r("verbose",n.DiagLogLevel.VERBOSE)}}},711:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.DiagLogLevel=void 0,(r=t.DiagLogLevel||(t.DiagLogLevel={}))[r.NONE=0]="NONE",r[r.ERROR=30]="ERROR",r[r.WARN=50]="WARN",r[r.INFO=60]="INFO",r[r.DEBUG=70]="DEBUG",r[r.VERBOSE=80]="VERBOSE",r[r.ALL=9999]="ALL"},221:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;let n=r(678),a=r(652),i=r(662),o=a.VERSION.split(".")[0],s=Symbol.for(`opentelemetry.js.api.${o}`),l=n._globalThis;t.registerGlobal=function(e,t,r,n=!1){var i;let o=l[s]=null!=(i=l[s])?i:{version:a.VERSION};if(!n&&o[e]){let t=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return r.error(t.stack||t.message),!1}if(o.version!==a.VERSION){let t=Error(`@opentelemetry/api: Registration of version v${o.version} for ${e} does not match previously registered API v${a.VERSION}`);return r.error(t.stack||t.message),!1}return o[e]=t,r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`),!0},t.getGlobal=function(e){var t,r;let n=null==(t=l[s])?void 0:t.version;if(n&&(0,i.isCompatible)(n))return null==(r=l[s])?void 0:r[e]},t.unregisterGlobal=function(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);let r=l[s];r&&delete r[e]}},662:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCompatible=t._makeCompatibilityCheck=void 0;let n=r(652),a=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function i(e){let t=new Set([e]),r=new Set,n=e.match(a);if(!n)return()=>!1;let i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(null!=i.prerelease)return function(t){return t===e};function o(e){return r.add(e),!1}return function(e){if(t.has(e))return!0;if(r.has(e))return!1;let n=e.match(a);if(!n)return o(e);let s={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(null!=s.prerelease||i.major!==s.major)return o(e);if(0===i.major)return i.minor===s.minor&&i.patch<=s.patch?(t.add(e),!0):o(e);return i.minor<=s.minor?(t.add(e),!0):o(e)}}t._makeCompatibilityCheck=i,t.isCompatible=i(n.VERSION)},120:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.metrics=void 0,t.metrics=r(262).MetricsAPI.getInstance()},532:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ValueType=void 0,(r=t.ValueType||(t.ValueType={}))[r.INT=0]="INT",r[r.DOUBLE=1]="DOUBLE"},440:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class r{createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=r;class n{}t.NoopMetric=n;class a extends n{add(e,t){}}t.NoopCounterMetric=a;class i extends n{add(e,t){}}t.NoopUpDownCounterMetric=i;class o extends n{record(e,t){}}t.NoopHistogramMetric=o;class s{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=s;class l extends s{}t.NoopObservableCounterMetric=l;class u extends s{}t.NoopObservableGaugeMetric=u;class d extends s{}t.NoopObservableUpDownCounterMetric=d,t.NOOP_METER=new r,t.NOOP_COUNTER_METRIC=new a,t.NOOP_HISTOGRAM_METRIC=new o,t.NOOP_UP_DOWN_COUNTER_METRIC=new i,t.NOOP_OBSERVABLE_COUNTER_METRIC=new l,t.NOOP_OBSERVABLE_GAUGE_METRIC=new u,t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new d,t.createNoopMeter=function(){return t.NOOP_METER}},586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;let n=r(440);class a{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=a,t.NOOP_METER_PROVIDER=new a},678:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),a(r(59),t)},460:(t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r._globalThis=void 0,r._globalThis="object"==typeof globalThis?globalThis:e.g},59:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),a(r(460),t)},27:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.propagation=void 0,t.propagation=r(25).PropagationAPI.getInstance()},19:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTextMapPropagator=void 0,t.NoopTextMapPropagator=class{inject(e,t){}extract(e,t){return e}fields(){return[]}}},92:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.defaultTextMapSetter=t.defaultTextMapGetter=void 0,t.defaultTextMapGetter={get(e,t){if(null!=e)return e[t]},keys:e=>null==e?[]:Object.keys(e)},t.defaultTextMapSetter={set(e,t,r){null!=e&&(e[t]=r)}}},816:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.trace=void 0,t.trace=r(397).TraceAPI.getInstance()},374:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NonRecordingSpan=void 0;let n=r(546);t.NonRecordingSpan=class{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return!1}recordException(e,t){}}},637:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTracer=void 0;let n=r(912),a=r(793),i=r(374),o=r(477),s=n.ContextAPI.getInstance();t.NoopTracer=class{startSpan(e,t,r=s.active()){var n;if(null==t?void 0:t.root)return new i.NonRecordingSpan;let l=r&&(0,a.getSpanContext)(r);return"object"==typeof(n=l)&&"string"==typeof n.spanId&&"string"==typeof n.traceId&&"number"==typeof n.traceFlags&&(0,o.isSpanContextValid)(l)?new i.NonRecordingSpan(l):new i.NonRecordingSpan}startActiveSpan(e,t,r,n){let i,o,l;if(arguments.length<2)return;2==arguments.length?l=t:3==arguments.length?(i=t,l=r):(i=t,o=r,l=n);let u=null!=o?o:s.active(),d=this.startSpan(e,i,u),c=(0,a.setSpan)(u,d);return s.with(c,l,void 0,d)}}},76:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NoopTracerProvider=void 0;let n=r(637);t.NoopTracerProvider=class{getTracer(e,t,r){return new n.NoopTracer}}},779:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyTracer=void 0;let n=new(r(637)).NoopTracer;t.ProxyTracer=class{constructor(e,t,r,n){this._provider=e,this.name=t,this.version=r,this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){let a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate)return this._delegate;let e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):n}}},498:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProxyTracerProvider=void 0;let n=r(779),a=new(r(76)).NoopTracerProvider;t.ProxyTracerProvider=class{getTracer(e,t,r){var a;return null!=(a=this.getDelegateTracer(e,t,r))?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return null!=(e=this._delegate)?e:a}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return null==(n=this._delegate)?void 0:n.getTracer(e,t,r)}}},312:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SamplingDecision=void 0,(r=t.SamplingDecision||(t.SamplingDecision={}))[r.NOT_RECORD=0]="NOT_RECORD",r[r.RECORD=1]="RECORD",r[r.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},793:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;let n=r(23),a=r(374),i=r(912),o=(0,n.createContextKey)("OpenTelemetry Context Key SPAN");function s(e){return e.getValue(o)||void 0}function l(e,t){return e.setValue(o,t)}t.getSpan=s,t.getActiveSpan=function(){return s(i.ContextAPI.getInstance().active())},t.setSpan=l,t.deleteSpan=function(e){return e.deleteValue(o)},t.setSpanContext=function(e,t){return l(e,new a.NonRecordingSpan(t))},t.getSpanContext=function(e){var t;return null==(t=s(e))?void 0:t.spanContext()}},285:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TraceStateImpl=void 0;let n=r(240);t.TraceStateImpl=class e{constructor(e){this._internalState=new Map,e&&this._parse(e)}set(e,t){let r=this._clone();return r._internalState.has(e)&&r._internalState.delete(e),r._internalState.set(e,t),r}unset(e){let t=this._clone();return t._internalState.delete(e),t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce((e,t)=>(e.push(t+"="+this.get(t)),e),[]).join(",")}_parse(e){!(e.length>512)&&(this._internalState=e.split(",").reverse().reduce((e,t)=>{let r=t.trim(),a=r.indexOf("=");if(-1!==a){let i=r.slice(0,a),o=r.slice(a+1,t.length);(0,n.validateKey)(i)&&(0,n.validateValue)(o)&&e.set(i,o)}return e},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}},240:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateValue=t.validateKey=void 0;let r="[_0-9a-z-*/]",n=`[a-z]${r}{0,255}`,a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`,i=RegExp(`^(?:${n}|${a})$`),o=/^[ -~]{0,255}[!-~]$/,s=/,|=/;t.validateKey=function(e){return i.test(e)},t.validateValue=function(e){return o.test(e)&&!s.test(e)}},87:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createTraceState=void 0;let n=r(285);t.createTraceState=function(e){return new n.TraceStateImpl(e)}},546:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;let n=r(731);t.INVALID_SPANID="0000000000000000",t.INVALID_TRACEID="00000000000000000000000000000000",t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},613:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SpanKind=void 0,(r=t.SpanKind||(t.SpanKind={}))[r.INTERNAL=0]="INTERNAL",r[r.SERVER=1]="SERVER",r[r.CLIENT=2]="CLIENT",r[r.PRODUCER=3]="PRODUCER",r[r.CONSUMER=4]="CONSUMER"},477:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;let n=r(546),a=r(374),i=/^([0-9a-f]{32})$/i,o=/^[0-9a-f]{16}$/i;function s(e){return i.test(e)&&e!==n.INVALID_TRACEID}function l(e){return o.test(e)&&e!==n.INVALID_SPANID}t.isValidTraceId=s,t.isValidSpanId=l,t.isSpanContextValid=function(e){return s(e.traceId)&&l(e.spanId)},t.wrapSpanContext=function(e){return new a.NonRecordingSpan(e)}},854:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SpanStatusCode=void 0,(r=t.SpanStatusCode||(t.SpanStatusCode={}))[r.UNSET=0]="UNSET",r[r.OK=1]="OK",r[r.ERROR=2]="ERROR"},731:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.TraceFlags=void 0,(r=t.TraceFlags||(t.TraceFlags={}))[r.NONE=0]="NONE",r[r.SAMPLED=1]="SAMPLED"},652:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,t.VERSION="1.6.0"}},I={};function S(e){var t=I[e];if(void 0!==t)return t.exports;var r=I[e]={exports:{}},n=!0;try{A[e].call(r.exports,r,r.exports,S),n=!1}finally{n&&delete I[e]}return r.exports}S.ab="/ROOT/node_modules/next/dist/compiled/@opentelemetry/api/";var $={};Object.defineProperty($,"__esModule",{value:!0}),$.trace=$.propagation=$.metrics=$.diag=$.context=$.INVALID_SPAN_CONTEXT=$.INVALID_TRACEID=$.INVALID_SPANID=$.isValidSpanId=$.isValidTraceId=$.isSpanContextValid=$.createTraceState=$.TraceFlags=$.SpanStatusCode=$.SpanKind=$.SamplingDecision=$.ProxyTracerProvider=$.ProxyTracer=$.defaultTextMapSetter=$.defaultTextMapGetter=$.ValueType=$.createNoopMeter=$.DiagLogLevel=$.DiagConsoleLogger=$.ROOT_CONTEXT=$.createContextKey=$.baggageEntryMetadataFromString=void 0,s=S(504),Object.defineProperty($,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return s.baggageEntryMetadataFromString}}),l=S(23),Object.defineProperty($,"createContextKey",{enumerable:!0,get:function(){return l.createContextKey}}),Object.defineProperty($,"ROOT_CONTEXT",{enumerable:!0,get:function(){return l.ROOT_CONTEXT}}),u=S(83),Object.defineProperty($,"DiagConsoleLogger",{enumerable:!0,get:function(){return u.DiagConsoleLogger}}),d=S(711),Object.defineProperty($,"DiagLogLevel",{enumerable:!0,get:function(){return d.DiagLogLevel}}),c=S(440),Object.defineProperty($,"createNoopMeter",{enumerable:!0,get:function(){return c.createNoopMeter}}),p=S(532),Object.defineProperty($,"ValueType",{enumerable:!0,get:function(){return p.ValueType}}),f=S(92),Object.defineProperty($,"defaultTextMapGetter",{enumerable:!0,get:function(){return f.defaultTextMapGetter}}),Object.defineProperty($,"defaultTextMapSetter",{enumerable:!0,get:function(){return f.defaultTextMapSetter}}),m=S(779),Object.defineProperty($,"ProxyTracer",{enumerable:!0,get:function(){return m.ProxyTracer}}),h=S(498),Object.defineProperty($,"ProxyTracerProvider",{enumerable:!0,get:function(){return h.ProxyTracerProvider}}),g=S(312),Object.defineProperty($,"SamplingDecision",{enumerable:!0,get:function(){return g.SamplingDecision}}),y=S(613),Object.defineProperty($,"SpanKind",{enumerable:!0,get:function(){return y.SpanKind}}),b=S(854),Object.defineProperty($,"SpanStatusCode",{enumerable:!0,get:function(){return b.SpanStatusCode}}),w=S(731),Object.defineProperty($,"TraceFlags",{enumerable:!0,get:function(){return w.TraceFlags}}),v=S(87),Object.defineProperty($,"createTraceState",{enumerable:!0,get:function(){return v.createTraceState}}),k=S(477),Object.defineProperty($,"isSpanContextValid",{enumerable:!0,get:function(){return k.isSpanContextValid}}),Object.defineProperty($,"isValidTraceId",{enumerable:!0,get:function(){return k.isValidTraceId}}),Object.defineProperty($,"isValidSpanId",{enumerable:!0,get:function(){return k.isValidSpanId}}),_=S(546),Object.defineProperty($,"INVALID_SPANID",{enumerable:!0,get:function(){return _.INVALID_SPANID}}),Object.defineProperty($,"INVALID_TRACEID",{enumerable:!0,get:function(){return _.INVALID_TRACEID}}),Object.defineProperty($,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return _.INVALID_SPAN_CONTEXT}}),r=S(778),Object.defineProperty($,"context",{enumerable:!0,get:function(){return r.context}}),n=S(304),Object.defineProperty($,"diag",{enumerable:!0,get:function(){return n.diag}}),a=S(120),Object.defineProperty($,"metrics",{enumerable:!0,get:function(){return a.metrics}}),i=S(27),Object.defineProperty($,"propagation",{enumerable:!0,get:function(){return i.propagation}}),o=S(816),Object.defineProperty($,"trace",{enumerable:!0,get:function(){return o.trace}}),$.default={context:r.context,diag:n.diag,metrics:a.metrics,propagation:i.propagation,trace:o.trace},t.exports=$})()}];
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=_0duxuj4kmjibl._.js.map
|