watchbell 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/app-path-routes-manifest.json +1 -0
- package/server/.next/build-manifest.json +116 -105
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/routes-manifest.json +6 -0
- package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/[...slug]/page.js +55 -53
- package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/alerts/page.js +54 -52
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +23 -23
- package/server/.next/server/app/(console)/apps/[id]/page.js +54 -52
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/apps/page.js +54 -52
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/backups/page.js +54 -52
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/catalog/page.js +54 -52
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +54 -54
- package/server/.next/server/app/(console)/connections/page.js +60 -58
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/d1/page.js +54 -52
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/deployments/page.js +54 -52
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/dns/page.js +54 -52
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/domains/page.js +54 -52
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/events/page.js +54 -52
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/firebase/page.js +55 -53
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/logs/page.js +54 -52
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
- package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
- package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
- package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
- package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/neon/page.js +54 -52
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/overview/page.js +54 -52
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/repos/[id]/page.js +54 -52
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/repos/page.js +54 -52
- package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/settings/page.js +54 -52
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/sql/page.js +54 -52
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/status/page.js +54 -52
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +29 -29
- package/server/.next/server/app/(console)/supabase/page.js +54 -52
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/topology/page.js +54 -52
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/turso/page.js +54 -52
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/upstash/page.js +54 -52
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/uptime/page.js +54 -52
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/welcome/page.js +55 -53
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/collect/route.js +74 -71
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/daily/route.js +66 -63
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/health/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +71 -68
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +4 -4
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +2 -2
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +2 -2
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +5 -5
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js +5 -5
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +4 -4
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +4 -4
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +19 -18
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/build-manifest.json +3 -3
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/page/build-manifest.json +3 -3
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/setup/page/build-manifest.json +3 -3
- package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/signin/page/build-manifest.json +3 -3
- package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app-paths-manifest.json +1 -0
- package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0hju4mctdmvz9._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0rak0ce6prxwp._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-q6_msattgcu._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0vctt_0kj1gz4._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14zpwd7xntffk._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__15tt645jfx-br._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11kfkk5yxz4ge._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0hpdrg-m0n6ty._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0i3n8l6ecdb4u._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0v1kcolrxwmob._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__0t8d8b4qkw3y-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0m7_0rarf_x86._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0z-07azr3zk8s._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0x0x6v75re5_e._.js → [root-of-the-server]__0zxyfd7u67hmv._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1rf3slum5swk2._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1flvcyht5uk7h._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0alnp_0qkhzze._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1objhlwwrjfjk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vi0u2vkv3tk0._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1hw6s0e7p2-6g._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1qzor1nqajuyp._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
- package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
- package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
- package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
- package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
- package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
- package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
- package/server/.next/server/chunks/_0ejcrge5k4quv._.js +1 -1
- package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
- package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
- package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
- package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
- package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +1 -1
- package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
- package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
- package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
- package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
- package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
- package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
- package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
- package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
- package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
- package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
- package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
- package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
- package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +1 -1
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +1 -1
- package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
- package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
- package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
- package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
- package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
- package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
- package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
- package/server/.next/server/chunks/{src_08bzavsfds295._.js → src_0kwnhwi77unm7._.js} +2 -2
- package/server/.next/server/chunks/src_0xqorb3-ef3ub._.js +1 -1
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
- package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
- package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
- package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
- package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
- package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
- package/server/.next/server/chunks/{src_0k78ifotuztod._.js → src_1no_yh953mran._.js} +2 -2
- package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +6 -0
- package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
- package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
- package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
- package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
- package/server/.next/server/chunks/{src_lib_0vl2-zp4wzw7n._.js → src_lib_1p21oczr6lh5a._.js} +1 -1
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
- package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
- package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
- package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
- package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
- package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
- package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0vbbz7arebnub._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__13rgl1h4g39l-._.js → [root-of-the-server]__052_cprs0alpy._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18b1wk6-2gq4x._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__168ahi_n-kf90._.js → [root-of-the-server]__08479d23kb1xv._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1drr27jyyhw7p._.js → [root-of-the-server]__08fqg76puqdfr._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__07n1hb3mk44lt._.js → [root-of-the-server]__0acmauri7z1sg._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryl_hnreck66._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xa91qls2i3j4._.js → [root-of-the-server]__0h9gtpapca7i_._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hbk3gqja86zp._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11y6b96ofb-c5._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1n1pq5j5p4_qn._.js → [root-of-the-server]__1owrn7crnsybx._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
- package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
- package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
- package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
- package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
- package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
- package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
- package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
- package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
- package/server/.next/server/chunks/ssr/{_08u2qnetu4ghm._.js → _0ooh0hh-r_12s._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/{_06sp8cllu_ljh._.js → _0pn3dn9s9es51._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
- package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
- package/server/.next/server/chunks/ssr/{_12348a3ug1-wo._.js → _0r04c1-snv6jw._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
- package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
- package/server/.next/server/chunks/ssr/{_216rrmkts392q._.js → _0tnfblwwlyvq2._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1exwj9ou5yh71._.js → _0x1vi7mal3bqd._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1ibagew7zj8y6._.js → _11w5w9dpxcf1w._.js} +2 -2
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
- package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
- package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
- package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
- package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
- package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
- package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
- package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
- package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
- package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
- package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
- package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/src_11iuy79j_finh._.js +3 -0
- package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
- package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
- package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
- package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_11_hakxhnybdd._.js → src_1ottjkdvhje3g._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
- package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_1olpa0osy74mq._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_neon_1ubea__gt06o0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_16-sh45tpob8n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_1y1xla7bcc5a1._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_0vl2-zp4wzw7n._.js → src_lib_1p21oczr6lh5a._.js} +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
- package/server/.next/server/chunks/ssr/src_lib_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
- package/server/.next/server/chunks/ssr/{src_lib_demo_20zjotuzm1lm8._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +116 -105
- package/server/.next/server/next-font-manifest.js +1 -1
- package/server/.next/server/next-font-manifest.json +4 -0
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +212 -166
- package/server/.next/static/chunks/{3w445wy3mpp2f.js → 08dak2kh1c6_7.js} +1 -1
- package/server/.next/static/chunks/{2-8ra6gmaw_pb.js → 0b9slopuz4e8a.js} +1 -1
- package/server/.next/static/chunks/{3col9buetdxvh.js → 0dp-tuwkw7xf8.js} +2 -2
- package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
- package/server/.next/static/chunks/{010bc8dzhxd_0.js → 0h9i512dn01kj.js} +1 -1
- package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
- package/server/.next/static/chunks/{3s7hj7g12rmuh.js → 0icohez16w-ei.js} +1 -1
- package/server/.next/static/chunks/{08w0t5q93_9mu.js → 0j1wzqg4ukm70.js} +1 -1
- package/server/.next/static/chunks/{2cmw27buw9oce.js → 0kscmnb071fci.js} +1 -1
- package/server/.next/static/chunks/0ld78j1d4j201.js +1 -0
- package/server/.next/static/chunks/{1yb4_s_96v9tf.js → 0qlb-l1uyqku5.js} +1 -1
- package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
- package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
- package/server/.next/static/chunks/{0dhgqjjm0zj6_.js → 1-oetq3mwlhds.js} +1 -1
- package/server/.next/static/chunks/{3uujo4bht1tqo.js → 11ywzwmfd_pt0.js} +1 -1
- package/server/.next/static/chunks/{1aoqsoecu-fy_.js → 1jaozq01v9r6e.js} +1 -1
- package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
- package/server/.next/static/chunks/{3o7se0ypyiqmz.js → 1lsu_fxiyaeiz.js} +1 -1
- package/server/.next/static/chunks/{1endj3d7bewa1.js → 1o3_amrh-sxr3.js} +1 -1
- package/server/.next/static/chunks/{1vi8tyc1ou2o3.js → 1w9o_jo_pejc5.js} +1 -1
- package/server/.next/static/chunks/{0nx0h-723nd_u.js → 1yvbs41m8_4nc.js} +2 -2
- package/server/.next/static/chunks/{0unx038_2rfsp.js → 22alexnun_rdm.js} +1 -1
- package/server/.next/static/chunks/{06lmwdlx-fkr8.js → 27qwmt1w6-iri.js} +1 -1
- package/server/.next/static/chunks/{02uvde7i-78p5.js → 29humkd2-_1oo.js} +1 -1
- package/server/.next/static/chunks/{0-7by9f00qb4d.js → 29j96yfhxsf41.js} +1 -1
- package/server/.next/static/chunks/{1483hxa9hair1.js → 29qnnsjsgsia6.js} +1 -1
- package/server/.next/static/chunks/{2pbnh717ldzfl.js → 2ii8j9xuvv604.js} +1 -1
- package/server/.next/static/chunks/{2ufr23d_eyosj.js → 2m0ftj__ody0m.js} +1 -1
- package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
- package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
- package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
- package/server/.next/static/chunks/{1o4mdgq5lu1g_.js → 2toeyr9b_nk0e.js} +1 -1
- package/server/.next/static/chunks/{2zdjxqgm-44u1.js → 2w7qxt7ux-m1-.js} +1 -1
- package/server/.next/static/chunks/{18gwem_5y9wnt.js → 2zc1osymeruya.js} +1 -1
- package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
- package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
- package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
- package/server/.next/static/chunks/{2z6a725ntvlr6.js → 3gl2k6v182lli.js} +2 -2
- package/server/.next/static/chunks/{2lv5qmgi8nm4h.js → 3gurl_36kr7sg.js} +1 -1
- package/server/.next/static/chunks/{2n-h6_0i3mpxo.js → 3h-i_hcaaf7vs.js} +1 -1
- package/server/.next/static/chunks/{0dnjs3de2e_d1.js → 3kznplgmzot89.js} +1 -1
- package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
- package/server/.next/static/chunks/{1t2iu6ufyxecz.js → 3n_n6yeienmn-.js} +1 -1
- package/server/.next/static/chunks/{01oee9tptcjdb.js → 3nqciag05fif0.js} +1 -1
- package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
- package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
- package/server/.next/static/chunks/{03fjh6klyhqv4.js → 3shbvizselyoq.js} +1 -1
- package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
- package/server/.next/static/chunks/{3alfhqlczff2s.js → 3yv-enyk37whg.js} +1 -1
- package/server/node_modules/@next/env/package.json +1 -1
- package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
- package/server/node_modules/next/dist/build/index.js +3 -3
- package/server/node_modules/next/dist/build/swc/index.js +1 -1
- package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
- package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
- package/server/node_modules/next/dist/build/webpack-config.js +3 -3
- package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
- package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
- package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
- package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
- package/server/node_modules/next/dist/server/config.js +1 -1
- package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
- package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
- package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
- package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
- package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
- package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/server/node_modules/next/package.json +11 -11
- package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0abdjgj-muln9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0rxrv00e5e6fj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zd61mh-juh2i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__13scfgchwlitx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__15zbj_ehkvv-n._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16sp8qurcwsnf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_1-jgxiadvs0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_2akhn6c9eqq._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c2u-bg524-_w._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c8_e0jqh_8na._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1g-be2zoiz2tf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1h96ebyza_vlh._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ldcwvd42rpuz._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1sj7uwyq1gpet._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__202r0hxhr5bnu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__2196hxm-s7u6e._.js +0 -3
- package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
- package/server/.next/server/chunks/_061mqfu1rkl7g._.js +0 -34
- package/server/.next/server/chunks/_0c_vrxu6rin-k._.js +0 -3
- package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
- package/server/.next/server/chunks/_0qrn1v02iivm8._.js +0 -3
- package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
- package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
- package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
- package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
- package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
- package/server/.next/server/chunks/_1b63jfweu0o04._.js +0 -3
- package/server/.next/server/chunks/_1i57ar6zvd7yb._.js +0 -34
- package/server/.next/server/chunks/_1k2cwp1_wt6qm._.js +0 -3
- package/server/.next/server/chunks/_1kj2yv4-wk2kp._.js +0 -34
- package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
- package/server/.next/server/chunks/_1ozrnl_on86u7._.js +0 -34
- package/server/.next/server/chunks/_1xeuk6g48m3_1._.js +0 -3
- package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
- package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
- package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
- package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
- package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
- package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
- package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
- package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
- package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
- package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
- package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
- package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
- package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04a21b9fkrqs3._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wf8q7-o-4n8y._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1e-xqsuqsd4ub._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__204_t7bzma353._.js +0 -3
- package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
- package/server/.next/server/chunks/ssr/_11o43qq2eyx_r._.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
- package/server/.next/server/chunks/ssr/src_0qu78tivj78-x._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
- package/server/.next/static/chunks/0anet8wttkax1.js +0 -1
- package/server/.next/static/chunks/0ao7kjrp6bp3l.js +0 -1
- package/server/.next/static/chunks/0b0rwd99q942r.js +0 -1
- package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
- package/server/.next/static/chunks/0ilml-p3iktnr.js +0 -1
- package/server/.next/static/chunks/0y_0w1ek5fakj.js +0 -1
- package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
- package/server/.next/static/chunks/1k01h6men2hvb.js +0 -1
- package/server/.next/static/chunks/1mdaf7mwcfafr.js +0 -1
- package/server/.next/static/chunks/2mj8z5a9dz7bh.js +0 -1
- package/server/.next/static/chunks/2qltilq3pn4ia.js +0 -1
- package/server/.next/static/chunks/2wqgz94tksucm.js +0 -1
- package/server/.next/static/chunks/3ypdfkwyovory.js +0 -1
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[984890,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LimitsForm() from the server but LimitsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/(private)/ai/usage/limits-form.tsx","LimitsForm");a.s(["LimitsForm",0,b])},500762,a=>{var b=a.i(984890);a.n(b)},258291,a=>{var b=a.i(907997);let c=(0,a.i(377269).f)("outline","activity","Activity",[["path",{d:"M3 12h4l3 8l4 -16l3 8h4",key:"svg-0"}]]);var d=a.i(735453),e=a.i(395936),f=a.i(252302),g=a.i(803681),h=a.i(685865),i=a.i(75148),j=a.i(109307),k=a.i(462820),l=a.i(139138),m=a.i(690041),n=a.i(849423),o=a.i(484458),p=a.i(916056),q=a.i(912459),r=a.i(955996),s=a.i(500762);let t=new Intl.NumberFormat("en");function u({n:a}){let c="hub"===a.kind?132:150,d="hub"===a.kind?46:40,e=(a.chips??[]).slice(0,4);return(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y-d/2,width:c,height:d,rx:7,className:"hub"===a.kind?"fill-ink stroke-ink":"fill-surface stroke-line-strong",strokeWidth:1}),(0,b.jsx)("text",{x:a.x,y:a.y-3,textAnchor:"middle",className:"hub"===a.kind?"fill-surface text-[13px] font-semibold":"fill-ink text-[12.5px] font-medium",children:a.label.length>22?`${a.label.slice(0,21)}…`:a.label}),(0,b.jsx)("text",{x:a.x,y:a.y+12,textAnchor:"middle",className:"hub"===a.kind?"fill-surface font-mono text-[10.5px] opacity-80":"fill-ink-soft font-mono text-[10.5px]",children:"hub"===a.kind?a.sub:`${a.sub} \xb7 ${t.format(a.requests)} req`}),e.map((e,f)=>(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y+d/2+4+17*f,width:c,height:14,rx:3,className:e.active?"fill-brand-soft stroke-brand":"fill-surface-2 stroke-line",strokeWidth:.75}),(0,b.jsx)("text",{x:a.x,y:a.y+d/2+14+17*f,textAnchor:"middle",className:e.active?"fill-brand font-mono text-[9.5px]":"fill-ink-faint font-mono text-[9.5px]",children:e.id.length>26?`${e.id.slice(0,25)}…`:e.id})]},e.id)),(a.chips?.length??0)>e.length&&(0,b.jsxs)("text",{x:a.x,y:a.y+d/2+14+17*e.length,textAnchor:"middle",className:"fill-ink-faint text-[10px]",children:["+",(a.chips?.length??0)-e.length," more"]})]})}function v({graph:a}){let c=a.nodes[0],d=new Map(a.nodes.map(a=>[a.id,a])),e=a.edges.map(a=>`${d.get(a.to)?.label}: ${a.running?"running":a.active?"traffic":"no traffic"}`).join("; ");return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("svg",{viewBox:`0 0 ${a.width} ${a.height+40}`,className:"block h-auto w-full min-w-[560px]",role:"img","aria-label":`Sources of AI traffic. ${e}`,children:[a.edges.map(a=>{let e=d.get(a.to);return e?(0,b.jsxs)("g",{children:[(0,b.jsx)("line",{x1:c.x,y1:c.y,x2:e.x,y2:e.y,className:a.active?"stroke-brand":"stroke-line-strong",strokeWidth:a.running?3.5:a.active?1.75:1,strokeDasharray:a.active?void 0:"4 4"}),a.running&&(0,b.jsx)("text",{x:(c.x+e.x)/2,y:(c.y+e.y)/2-7,textAnchor:"middle",className:"fill-brand font-mono text-[11px] font-medium",children:"running"})]},a.to):null}),a.nodes.map(a=>(0,b.jsx)(u,{n:a},a.id))]})})}let w=new Intl.NumberFormat("en"),x=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}),y="font-mono text-[24px] font-semibold tracking-tight",z="text-[11.5px] font-medium uppercase tracking-wide text-ink-soft",A="mt-1 text-[12px] text-ink-soft",B="px-3 py-2 text-left text-[12px] font-medium text-ink-soft",C="border-t border-line px-3 py-2";async function D({searchParams:a}){let t=await (0,j.B)("owner");if(!t.ok)return(0,b.jsx)(i.f,{role:t.member.role});let u=await a,E=(0,r.D)(u.range),F="1"===u.api,G=new Date,H=(0,r.q)(E,G),[{rows:I,capped:J},K,L,M,N,O,P,Q,R]=await Promise.all([(0,n.v)(H.since),(0,n.c)(F?[...r.b,...r.X]:[...r.b],50),(0,n.e)(G),(0,n.q)(H.since),(0,n.S)(),(0,n.m)(G),(0,n.a)(G).catch(()=>({activity:null,limits:{...m.m}})),(0,o.y)(G).catch(()=>null),(0,o.V)().catch(()=>null)]),S=Q?.report?Q.report.models.filter(a=>(0,o._)(Q.report,Q.prefs,Q.allowed).includes(a.id)):[],T=P.activity?.running??null,U=(0,r.L)(I),V=(0,r.V)(I,H),W=!!Q?.report&&(0,o.U)(Q.report,G),X=(0,r.K)({agModels:S,providers:N,clients:O,rows:I,byAgent:M,running:T,agConnected:W}),Y=L.reduce((a,b)=>!a||b.at>a?b.at:a,null),Z=(0,r.z)(T,Y,Q?.report?.models??[],G),$=(0,m.X)(L,P.limits,G),_="requests"===u.chart?"requests":"tokens",aa=a=>{let b=new URLSearchParams;return b.set("range",a.range??E),(a.api??F)&&b.set("api","1"),(a.chart??_)==="requests"&&b.set("chart","requests"),`/ai/usage?${b.toString()}`},ab=a=>(0,l.f)("rounded-md px-2.5 py-1 text-[13px] hover:no-underline",a?"bg-nav-active font-medium text-nav-active-text":"text-ink-soft hover:bg-hover hover:text-ink");return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.AutoRefresh,{at:G.getTime(),everyMs:Z.running?5e3:void 0}),(0,b.jsx)(g.L,{crumbs:[{label:"AI & API"},{label:"AI Gateway",href:"/ai"},{label:"Usage"}],title:"Usage & Analytics",sub:k.V.sub}),(0,b.jsxs)("nav",{"aria-label":"Range",className:"flex flex-wrap items-center gap-1",children:[r.d.map(a=>(0,b.jsx)(e.default,{href:aa({range:a.key}),"aria-current":a.key===E?"page":void 0,className:ab(a.key===E),children:a.label},a.key)),"all"===E&&(0,b.jsx)("span",{className:"ml-2 text-[12px] text-ink-faint",children:"Watchbell keeps 30 days."})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-5",children:[(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Total requests"}),(0,b.jsx)("div",{className:y,children:w.format(U.requests)}),(0,b.jsxs)("div",{className:A,children:[w.format(U.agentRequests)," ",k.V.agentRequests," · ",w.format(U.providerRequests)," providers",U.errors?` \xb7 ${U.errors} failed`:""]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Input tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.input),children:x.format(U.input)}),(0,b.jsx)("div",{className:A,children:"New input, not from cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Cached tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.cached),children:x.format(U.cached)}),(0,b.jsx)("div",{className:A,children:"Read from the prompt cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Output tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.output),children:x.format(U.output)}),(0,b.jsxs)("div",{className:A,children:["incl. ",(0,b.jsx)("span",{className:"font-mono",children:x.format(U.thinking)})," thinking"]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Est. cost"}),(0,b.jsx)("div",{className:y,children:"$0.00"}),(0,b.jsxs)("div",{className:A,children:[k.V.costAgents," · providers: ",(0,b.jsx)("span",{title:"No prices are known for your own keys",children:"—"})]})]})]}),(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[minmax(0,1fr)_320px]",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)(g.N,{title:"Sources",meta:(0,b.jsx)("span",{className:"font-mono",children:r.d.find(a=>a.key===E)?.label}),children:[(0,b.jsxs)("div",{className:(0,l.f)("mb-2 flex items-center gap-2 rounded-md border px-3 py-2 text-[13px]",Z.running?"border-brand bg-brand-soft text-ink":"border-line text-ink-soft"),role:"status",children:[Z.running?(0,b.jsx)(c,{size:16,className:"text-brand","aria-hidden":!0}):(0,b.jsx)(d.f,{size:16,"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:Z.text})]}),(0,b.jsx)(v,{graph:X})]}),(0,b.jsxs)(g.N,{title:"tokens"===_?"Tokens":"Requests",meta:(0,b.jsxs)("span",{className:"flex gap-1",children:[(0,b.jsx)(e.default,{href:aa({chart:"tokens"}),className:ab("tokens"===_),children:"Tokens"}),(0,b.jsx)(e.default,{href:aa({chart:"requests"}),className:ab("requests"===_),children:"Requests"})]}),children:[(0,b.jsx)(f.T,{height:140,label:"tokens"===_?`Tokens per ${H.bucket}: new input, cached, output`:`Requests per ${H.bucket}`,parts:"tokens"===_?["New input","Cached","Output"]:["Requests"],bars:V.map(a=>({key:a.t.toISOString(),title:"tokens"===_?`${a.label}: ${w.format(a.fresh)} new \xb7 ${w.format(a.cached)} cached \xb7 ${w.format(a.output)} out`:`${a.label}: ${w.format(a.requests)} requests`,values:"tokens"===_?[a.fresh,a.cached,a.output]:[a.requests]}))}),(0,b.jsxs)("div",{className:"mt-1 flex justify-between font-mono text-[11px] text-ink-faint",children:[(0,b.jsx)("span",{children:V[0]?.label}),(0,b.jsx)("span",{children:V.at(-1)?.label})]}),J&&(0,b.jsx)("p",{className:"m-0 mt-2 text-[12px] text-warn",children:"Only the newest 20,000 requests are counted in this range."})]})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsx)(p.V,{report:R,now:G}),W&&(0,b.jsxs)(g.N,{title:k.V.quotaTitle,meta:(0,b.jsx)(s.LimitsForm,{values:P.limits}),children:[(0,b.jsx)("ul",{className:"m-0 flex list-none flex-col gap-3 p-0",children:$.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)("span",{className:"ml-auto font-mono text-[12px] text-ink-soft",children:null===a.limit?`${x.format(a.used)} used`:`${x.format(a.remaining??0)} left of ${x.format(a.limit)}`})]}),null!==a.limit&&null!==a.pct&&(0,b.jsx)(g.e,{pct:a.pct,tone:a.pct>=100?"err":a.pct>=80?"warn":void 0}),(0,b.jsxs)("div",{className:"mt-1 text-[12px] text-ink-faint",children:[null===a.limit?"No limit entered · ":"",a.runs," runs in ",a.window,a.resetsAt?` \xb7 resets as the oldest run leaves the window (~${(0,q.X)(a.resetsAt,G)})`:""]})]},a.key))}),(0,b.jsxs)("p",{className:"m-0 mt-3 text-[12px] text-ink-faint",children:[k.V.quotaNote," ","Counted: new input + output + thinking; cached input excluded."]})]})]})]}),(0,b.jsx)(g.N,{title:"Recent requests",meta:(0,b.jsx)(e.default,{href:aa({api:!F}),className:"text-[12.5px]","aria-pressed":F,children:F?"Hide API calls":"Include API calls"}),flush:!0,children:0===K.length?(0,b.jsx)(g.k,{title:"No requests yet",children:k.V.emptyRecent}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse text-[13px]",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:B,children:"Model"}),(0,b.jsx)("th",{className:B,children:"Purpose"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"New ↑"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Cached"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Out ↓"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Duration"}),(0,b.jsx)("th",{className:B,children:"Status"}),(0,b.jsx)("th",{className:B,children:"When"})]})}),(0,b.jsx)("tbody",{children:K.map((a,b)=>(0,r.I)(a,G,b)).map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:`${C} max-w-[260px] truncate font-mono text-[12.5px]`,children:a.model}),(0,b.jsx)("td",{className:`${C} text-ink-soft`,children:a.purpose}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.fresh?"–":w.format(a.fresh)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.cached?"–":w.format(a.cached)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.out?"–":w.format(a.out)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:a.durationMs<1e3?`${a.durationMs} ms`:(0,q._)(a.durationMs)}),(0,b.jsx)("td",{className:C,children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-mono text-[12px]",children:[(0,b.jsx)("i",{className:(0,l.f)("inline-block size-2 rounded-full","ok"===a.tone?"bg-ok":"warn"===a.tone?"bg-warn-icon":"bg-err"),"aria-hidden":!0}),a.status]})}),(0,b.jsx)("td",{className:`${C} whitespace-nowrap text-ink-soft`,title:a.whenTitle,children:a.when})]},a.key))})]})})})]})}a.s(["default",0,D],258291)}],91185,function(a){a.n(a.i(258291))}];
|
|
1
|
+
module.exports=[[984890,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LimitsForm() from the server but LimitsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/(private)/ai/usage/limits-form.tsx","LimitsForm");a.s(["LimitsForm",0,b])},500762,a=>{var b=a.i(984890);a.n(b)},258291,a=>{var b=a.i(907997);let c=(0,a.i(377269).f)("outline","activity","Activity",[["path",{d:"M3 12h4l3 8l4 -16l3 8h4",key:"svg-0"}]]);var d=a.i(735453),e=a.i(395936),f=a.i(252302),g=a.i(803681),h=a.i(685865),i=a.i(75148),j=a.i(109307),k=a.i(462820),l=a.i(139138),m=a.i(690041),n=a.i(849423),o=a.i(484458),p=a.i(916056),q=a.i(912459),r=a.i(955996),s=a.i(500762);let t=new Intl.NumberFormat("en");function u({n:a}){let c="hub"===a.kind?132:150,d="hub"===a.kind?46:40,e=(a.chips??[]).slice(0,4);return(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y-d/2,width:c,height:d,rx:7,className:"hub"===a.kind?"fill-ink stroke-ink":"fill-surface stroke-line-strong",strokeWidth:1}),(0,b.jsx)("text",{x:a.x,y:a.y-3,textAnchor:"middle",className:"hub"===a.kind?"fill-surface text-[13px] font-semibold":"fill-ink text-[12.5px] font-medium",children:a.label.length>22?`${a.label.slice(0,21)}…`:a.label}),(0,b.jsx)("text",{x:a.x,y:a.y+12,textAnchor:"middle",className:"hub"===a.kind?"fill-surface font-mono text-[10.5px] opacity-80":"fill-ink-soft font-mono text-[10.5px]",children:"hub"===a.kind?a.sub:`${a.sub} \xb7 ${t.format(a.requests)} req`}),e.map((e,f)=>(0,b.jsxs)("g",{children:[(0,b.jsx)("rect",{x:a.x-c/2,y:a.y+d/2+4+17*f,width:c,height:14,rx:3,className:e.active?"fill-brand-soft stroke-brand":"fill-surface-2 stroke-line",strokeWidth:.75}),(0,b.jsx)("text",{x:a.x,y:a.y+d/2+14+17*f,textAnchor:"middle",className:e.active?"fill-brand font-mono text-[9.5px]":"fill-ink-faint font-mono text-[9.5px]",children:e.id.length>26?`${e.id.slice(0,25)}…`:e.id})]},e.id)),(a.chips?.length??0)>e.length&&(0,b.jsxs)("text",{x:a.x,y:a.y+d/2+14+17*e.length,textAnchor:"middle",className:"fill-ink-faint text-[10px]",children:["+",(a.chips?.length??0)-e.length," more"]})]})}function v({graph:a}){let c=a.nodes[0],d=new Map(a.nodes.map(a=>[a.id,a])),e=a.edges.map(a=>`${d.get(a.to)?.label}: ${a.running?"running":a.active?"traffic":"no traffic"}`).join("; ");return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("svg",{viewBox:`0 0 ${a.width} ${a.height+40}`,className:"block h-auto w-full min-w-[560px]",role:"img","aria-label":`Sources of AI traffic. ${e}`,children:[a.edges.map(a=>{let e=d.get(a.to);return e?(0,b.jsxs)("g",{children:[(0,b.jsx)("line",{x1:c.x,y1:c.y,x2:e.x,y2:e.y,className:a.active?"stroke-brand":"stroke-line-strong",strokeWidth:a.running?3.5:a.active?1.75:1,strokeDasharray:a.active?void 0:"4 4"}),a.running&&(0,b.jsx)("text",{x:(c.x+e.x)/2,y:(c.y+e.y)/2-7,textAnchor:"middle",className:"fill-brand font-mono text-[11px] font-medium",children:"running"})]},a.to):null}),a.nodes.map(a=>(0,b.jsx)(u,{n:a},a.id))]})})}let w=new Intl.NumberFormat("en"),x=new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}),y="font-mono text-[24px] font-semibold tracking-tight",z="text-[11.5px] font-medium uppercase tracking-wide text-ink-soft",A="mt-1 text-[12px] text-ink-soft",B="px-3 py-2 text-left text-[12px] font-medium text-ink-soft",C="border-t border-line px-3 py-2";async function D({searchParams:a}){let t=await (0,j.B)("owner");if(!t.ok)return(0,b.jsx)(i.f,{role:t.member.role});let u=await a,E=(0,r.D)(u.range),F="1"===u.api,G=new Date,H=(0,r.q)(E,G),[{rows:I,capped:J},K,L,M,N,O,P,Q,R]=await Promise.all([(0,n.v)(H.since),(0,n.c)(F?[...r.b,...r.X]:[...r.b],50),(0,n.e)(G),(0,n.q)(H.since),(0,n.S)(),(0,n.m)(G),(0,n.a)(G).catch(()=>({activity:null,limits:{...m.m}})),(0,o.y)(G).catch(()=>null),(0,o.V)().catch(()=>null)]),S=Q?.report?Q.report.models.filter(a=>(0,o._)(Q.report,Q.prefs,Q.allowed).includes(a.id)):[],T=P.activity?.running??null,U=(0,r.L)(I),V=(0,r.V)(I,H),W=!!Q?.report&&(0,o.U)(Q.report,G),X=(0,r.K)({agModels:S,providers:N,clients:O,rows:I,byAgent:M,running:T,agConnected:W}),Y=L.reduce((a,b)=>!a||b.at>a?b.at:a,null),Z=(0,r.z)(T,Y,Q?.report?.models??[],G),$=(0,m.X)(L,P.limits,G),_="requests"===u.chart?"requests":"tokens",aa=a=>{let b=new URLSearchParams;return b.set("range",a.range??E),(a.api??F)&&b.set("api","1"),(a.chart??_)==="requests"&&b.set("chart","requests"),`/ai/usage?${b.toString()}`},ab=a=>(0,l.f)("rounded-md px-2.5 py-1 text-[13px] hover:no-underline",a?"bg-nav-active font-medium text-nav-active-text":"text-ink-soft hover:bg-hover hover:text-ink");return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.AutoRefresh,{at:G.getTime(),everyMs:Z.running?5e3:void 0}),(0,b.jsx)(g.L,{crumbs:[{label:"Manage"},{label:"AI Gateway",href:"/ai"},{label:"Usage"}],title:"Usage & Analytics",sub:k.V.sub}),(0,b.jsxs)("nav",{"aria-label":"Range",className:"flex flex-wrap items-center gap-1",children:[r.d.map(a=>(0,b.jsx)(e.default,{href:aa({range:a.key}),"aria-current":a.key===E?"page":void 0,className:ab(a.key===E),children:a.label},a.key)),"all"===E&&(0,b.jsx)("span",{className:"ml-2 text-[12px] text-ink-faint",children:"Watchbell keeps 30 days."})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-3 xl:grid-cols-5",children:[(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Total requests"}),(0,b.jsx)("div",{className:y,children:w.format(U.requests)}),(0,b.jsxs)("div",{className:A,children:[w.format(U.agentRequests)," ",k.V.agentRequests," · ",w.format(U.providerRequests)," providers",U.errors?` \xb7 ${U.errors} failed`:""]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Input tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.input),children:x.format(U.input)}),(0,b.jsx)("div",{className:A,children:"New input, not from cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Cached tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.cached),children:x.format(U.cached)}),(0,b.jsx)("div",{className:A,children:"Read from the prompt cache"})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Output tokens"}),(0,b.jsx)("div",{className:y,title:w.format(U.output),children:x.format(U.output)}),(0,b.jsxs)("div",{className:A,children:["incl. ",(0,b.jsx)("span",{className:"font-mono",children:x.format(U.thinking)})," thinking"]})]}),(0,b.jsxs)(g.N,{children:[(0,b.jsx)("div",{className:z,children:"Est. cost"}),(0,b.jsx)("div",{className:y,children:"$0.00"}),(0,b.jsxs)("div",{className:A,children:[k.V.costAgents," · providers: ",(0,b.jsx)("span",{title:"No prices are known for your own keys",children:"—"})]})]})]}),(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[minmax(0,1fr)_320px]",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsxs)(g.N,{title:"Sources",meta:(0,b.jsx)("span",{className:"font-mono",children:r.d.find(a=>a.key===E)?.label}),children:[(0,b.jsxs)("div",{className:(0,l.f)("mb-2 flex items-center gap-2 rounded-md border px-3 py-2 text-[13px]",Z.running?"border-brand bg-brand-soft text-ink":"border-line text-ink-soft"),role:"status",children:[Z.running?(0,b.jsx)(c,{size:16,className:"text-brand","aria-hidden":!0}):(0,b.jsx)(d.f,{size:16,"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:Z.text})]}),(0,b.jsx)(v,{graph:X})]}),(0,b.jsxs)(g.N,{title:"tokens"===_?"Tokens":"Requests",meta:(0,b.jsxs)("span",{className:"flex gap-1",children:[(0,b.jsx)(e.default,{href:aa({chart:"tokens"}),className:ab("tokens"===_),children:"Tokens"}),(0,b.jsx)(e.default,{href:aa({chart:"requests"}),className:ab("requests"===_),children:"Requests"})]}),children:[(0,b.jsx)(f.T,{height:140,label:"tokens"===_?`Tokens per ${H.bucket}: new input, cached, output`:`Requests per ${H.bucket}`,parts:"tokens"===_?["New input","Cached","Output"]:["Requests"],bars:V.map(a=>({key:a.t.toISOString(),title:"tokens"===_?`${a.label}: ${w.format(a.fresh)} new \xb7 ${w.format(a.cached)} cached \xb7 ${w.format(a.output)} out`:`${a.label}: ${w.format(a.requests)} requests`,values:"tokens"===_?[a.fresh,a.cached,a.output]:[a.requests]}))}),(0,b.jsxs)("div",{className:"mt-1 flex justify-between font-mono text-[11px] text-ink-faint",children:[(0,b.jsx)("span",{children:V[0]?.label}),(0,b.jsx)("span",{children:V.at(-1)?.label})]}),J&&(0,b.jsx)("p",{className:"m-0 mt-2 text-[12px] text-warn",children:"Only the newest 20,000 requests are counted in this range."})]})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[(0,b.jsx)(p.V,{report:R,now:G}),W&&(0,b.jsxs)(g.N,{title:k.V.quotaTitle,meta:(0,b.jsx)(s.LimitsForm,{values:P.limits}),children:[(0,b.jsx)("ul",{className:"m-0 flex list-none flex-col gap-3 p-0",children:$.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)("span",{className:"ml-auto font-mono text-[12px] text-ink-soft",children:null===a.limit?`${x.format(a.used)} used`:`${x.format(a.remaining??0)} left of ${x.format(a.limit)}`})]}),null!==a.limit&&null!==a.pct&&(0,b.jsx)(g.e,{pct:a.pct,tone:a.pct>=100?"err":a.pct>=80?"warn":void 0}),(0,b.jsxs)("div",{className:"mt-1 text-[12px] text-ink-faint",children:[null===a.limit?"No limit entered · ":"",a.runs," runs in ",a.window,a.resetsAt?` \xb7 resets as the oldest run leaves the window (~${(0,q.X)(a.resetsAt,G)})`:""]})]},a.key))}),(0,b.jsxs)("p",{className:"m-0 mt-3 text-[12px] text-ink-faint",children:[k.V.quotaNote," ","Counted: new input + output + thinking; cached input excluded."]})]})]})]}),(0,b.jsx)(g.N,{title:"Recent requests",meta:(0,b.jsx)(e.default,{href:aa({api:!F}),className:"text-[12.5px]","aria-pressed":F,children:F?"Hide API calls":"Include API calls"}),flush:!0,children:0===K.length?(0,b.jsx)(g.k,{title:"No requests yet",children:k.V.emptyRecent}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse text-[13px]",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:B,children:"Model"}),(0,b.jsx)("th",{className:B,children:"Purpose"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"New ↑"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Cached"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Out ↓"}),(0,b.jsx)("th",{className:`${B} text-right`,children:"Duration"}),(0,b.jsx)("th",{className:B,children:"Status"}),(0,b.jsx)("th",{className:B,children:"When"})]})}),(0,b.jsx)("tbody",{children:K.map((a,b)=>(0,r.I)(a,G,b)).map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:`${C} max-w-[260px] truncate font-mono text-[12.5px]`,children:a.model}),(0,b.jsx)("td",{className:`${C} text-ink-soft`,children:a.purpose}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.fresh?"–":w.format(a.fresh)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.cached?"–":w.format(a.cached)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:null===a.out?"–":w.format(a.out)}),(0,b.jsx)("td",{className:`${C} text-right font-mono`,children:a.durationMs<1e3?`${a.durationMs} ms`:(0,q._)(a.durationMs)}),(0,b.jsx)("td",{className:C,children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-mono text-[12px]",children:[(0,b.jsx)("i",{className:(0,l.f)("inline-block size-2 rounded-full","ok"===a.tone?"bg-ok":"warn"===a.tone?"bg-warn-icon":"bg-err"),"aria-hidden":!0}),a.status]})}),(0,b.jsx)("td",{className:`${C} whitespace-nowrap text-ink-soft`,title:a.whenTitle,children:a.when})]},a.key))})]})})})]})}a.s(["default",0,D],258291)}],91185,function(a){a.n(a.i(258291))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_1v003vrkwk19w._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[348021,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114);let g=[{key:"gemini5h",label:"Gemini · 5 h",family:"gemini",windowMs:18e6,window:"5 h"},{key:"geminiWeek",label:"Gemini · week",family:"gemini",windowMs:6048e5,window:"7 days"},{key:"claude5h",label:"Claude · 5 h",family:"claude",windowMs:18e6,window:"5 h"},{key:"claudeWeek",label:"Claude · week",family:"claude",windowMs:6048e5,window:"7 days"}];var h=a.i(405050);let i=(0,h.createServerReference)("
|
|
1
|
+
module.exports=[348021,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(368114);let g=[{key:"gemini5h",label:"Gemini · 5 h",family:"gemini",windowMs:18e6,window:"5 h"},{key:"geminiWeek",label:"Gemini · week",family:"gemini",windowMs:6048e5,window:"7 days"},{key:"claude5h",label:"Claude · 5 h",family:"claude",windowMs:18e6,window:"5 h"},{key:"claudeWeek",label:"Claude · week",family:"claude",windowMs:6048e5,window:"7 days"}];var h=a.i(405050);let i=(0,h.createServerReference)("40df3302cde9b50afe80f610c5ed6bfeba94c63242",h.callServer,void 0,h.findSourceMapURL,"saveAgLimits");a.s(["LimitsForm",0,function({values:a}){let[h,j]=(0,c.useTransition)(),[k,l]=(0,c.useState)(!1);return k?(0,b.jsxs)("form",{className:"flex flex-col gap-2",action:a=>j(async()=>{try{let b=await i(a);b.ok?(d.c.success(b.message??"Saved."),l(!1)):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}}),children:[g.map(c=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("span",{className:"w-28 shrink-0 text-ink-soft",children:c.label}),(0,b.jsx)("input",{name:c.key,inputMode:"numeric",autoComplete:"off",placeholder:"No limit",defaultValue:a[c.key]??"",className:(0,f.f)(e.S,"min-w-0 flex-1 py-1 text-right font-mono text-[12.5px]"),"aria-label":`${c.label} limit in tokens`})]},c.key)),(0,b.jsx)("p",{className:"m-0 text-[12px] text-ink-faint",children:"Tokens per window: new input + output + thinking. Cached input isn't counted."}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(e.K,{size:"sm",variant:"primary",type:"submit",disabled:h,children:h?"Saving…":"Save"}),(0,b.jsx)(e.K,{size:"sm",type:"button",disabled:h,onClick:()=>l(!1),children:"Cancel"})]})]}):(0,b.jsx)(e.K,{size:"sm",onClick:()=>l(!0),children:"Edit limits"})}],348021)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[748121,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["
|
|
1
|
+
module.exports=[748121,a=>{"use strict";var b=a.i(907997),c=a.i(411182);a.s(["default",0,function(){return(0,b.jsx)(c.F,{crumbs:["Manage","AI Gateway"],children:(0,b.jsx)(c.G,{rows:8,cols:8})})}])},461708,function(a){a.n(a.i(748121))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%28private%29_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(742680),g=a.i(
|
|
1
|
+
(()=>{"use strict";module.exports=[217897,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(742680),g=a.i(224766),h=a.i(752818);a.s(["AppMenu",0,function({app:a}){let[,i]=(0,c.useTransition)(),j=(0,h.f)(),k=[{label:"Redeploy",later:6},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[],{label:"View logs",later:5}];return a.monitorCount>0&&k.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>j(()=>new Promise(b=>i(async()=>{try{let b=await (0,g.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}finally{b()}})))}),(0,b.jsx)(e.RowMenu,{items:k,label:(0,f.J)(a.name)})}])},224766,752818,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60859733a4976da0b21f1b15bd4bbb739bade49c9d",b.callServer,void 0,b.findSourceMapURL,"pauseAppMonitors");a.s(["f",0,c],224766);var d=a.i(572131);a.s(["f",0,function(){let a=(0,d.useRef)(!1);return b=>!a.current&&(a.current=!0,b().catch(()=>void 0).finally(()=>{a.current=!1}),!0)}],752818)}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=src_app_%28console%
|
|
3
|
+
//# sourceMappingURL=src_app_%28console%29_1l7irblrb5fae._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[177727,a=>{"use strict";var b=a.i(907997);let c=(0,a.i(377269).f)("outline","tools","Tools",[["path",{d:"M3 21h4l13 -13a1.5 1.5 0 0 0 -4 -4l-13 13v4",key:"svg-0"}],["path",{d:"M14.5 5.5l4 4",key:"svg-1"}],["path",{d:"M12 8l-5 -5l-4 4l5 5",key:"svg-2"}],["path",{d:"M7 8l-1.5 1.5",key:"svg-3"}],["path",{d:"M16 12l5 5l-4 4l-5 -5",key:"svg-4"}],["path",{d:"M16 17l-1.5 1.5",key:"svg-5"}]]);a.i(570396);var d=a.i(673727),e=a.i(803681),f=a.i(75148),g=a.i(109307),h=a.i(534908);let
|
|
1
|
+
module.exports=[177727,a=>{"use strict";var b=a.i(907997);let c=(0,a.i(377269).f)("outline","tools","Tools",[["path",{d:"M3 21h4l13 -13a1.5 1.5 0 0 0 -4 -4l-13 13v4",key:"svg-0"}],["path",{d:"M14.5 5.5l4 4",key:"svg-1"}],["path",{d:"M12 8l-5 -5l-4 4l5 5",key:"svg-2"}],["path",{d:"M7 8l-1.5 1.5",key:"svg-3"}],["path",{d:"M16 12l5 5l-4 4l-5 -5",key:"svg-4"}],["path",{d:"M16 17l-1.5 1.5",key:"svg-5"}]]);a.i(570396);var d=a.i(673727),e=a.i(803681),f=a.i(75148),g=a.i(109307),h=a.i(534908),i=a.i(160147);let j={home:[{key:"overview",label:"Overview",href:"/overview",icon:"dashboard",stage:2},{key:"topology",label:"Topology",href:"/topology",icon:"topology",stage:4},{key:"events",label:"Events",href:"/events",icon:"activity",stage:2},{key:"status",label:"Provider status",href:"/status",icon:"broadcast",stage:5}],hosting:[{key:"apps",label:"Applications",href:"/apps",icon:"apps",stage:2},{key:"deployments",label:"Deployments",href:"/deployments",icon:"rocket",stage:2},{key:"domains",label:"Domains",href:"/domains",icon:"world",stage:4},{key:"dns",label:"DNS records",href:"/dns",icon:"sitemap",stage:4},{key:"uptime",label:"Uptime",href:"/uptime",icon:"heartbeat",stage:2},{key:"logs",label:"Logs",href:"/logs",icon:"file",stage:5,hideForViewer:!0}],database:[{key:"supabase",label:"Supabase",href:"/supabase",icon:"bolt",stage:3},{key:"neon",label:"Neon",href:"/neon",icon:"database",stage:3},{key:"firebase",label:"Firebase",href:"/firebase",icon:"flame",stage:3},{key:"turso",label:"Turso",href:"/turso",icon:"database",stage:8},{key:"upstash",label:"Upstash Redis",href:"/upstash",icon:"bolt",stage:8},{key:"d1",label:"Cloudflare D1",href:"/d1",icon:"cloud",stage:8},{key:"sql",label:"SQL console",href:"/sql",icon:"terminal",stage:9,ownerOnly:!0},{key:"catalog",label:"Free databases",href:"/catalog",icon:"books",stage:7}],devops:[{key:"repos",label:"Repositories",href:"/repos",icon:"github",stage:9,sub:"Automation"}],manage:[{key:"connections",label:"Connections",href:"/connections",icon:"plug",stage:1,ownerOnly:!0},{key:"alerts",label:"Alerts",href:"/alerts",icon:"bell",stage:5},{key:"sections",label:"Sections",href:"/manage/sections",icon:"layout",stage:12,ownerOnly:!0},{key:"settings",label:"Settings",href:"/settings",icon:"settings",stage:1,ownerOnly:!0},{key:"backups",label:"Backups",href:"/backups",icon:"cloud-upload",stage:7,ownerOnly:!0},{key:"status-page",label:"Status page",href:"/settings?tab=status-page",icon:"page",stage:7,ownerOnly:!0}]},k=i.I.map(a=>({section:a,group:i.Z[a].label,items:j[a]})),l={nav:[]};function m(a=l){let b=k.map(a=>({...a,items:[...a.items]}));for(let c of a.nav){let a=b.find(a=>a.section===c.section)??b.find(a=>"manage"===a.section),d=c.after?a.items.findIndex(a=>a.key===c.after):-1;d<0?a.items.push(...c.items):a.items.splice(d+1,0,...c.items)}return b}let n=a=>a.split("?")[0];async function o({params:a}){var i;let{slug:j}=await a,k=function(a,b=l){let[c,d]=a.split("?"),e=c.replace(/\/+$/,"")||"/",f=void 0!==d?new URLSearchParams(d):null,g=null;for(let a of m(b).flatMap(a=>a.items)){let b=n(a.href);if(e!==b&&!e.startsWith(`${b}/`))continue;let c=a.href.includes("?");if(c&&(e!==b||!function(a,b){let c=a.split("?")[1];return!c||!!b&&[...new URLSearchParams(c)].every(([a,c])=>b.get(a)===c)}(a.href,f)))continue;let d=g?n(g.href).length:-1;(!g||b.length>d||b.length===d&&c&&!g.href.includes("?"))&&(g=a)}return g}("/"+j.join("/"),h.extensions);k||(0,d.notFound)();let p=await (0,g.I)();return(i=p.role,k.ownerOnly?"owner"!==i:k.hideForViewer&&"viewer"===i)?(0,b.jsx)(f.f,{role:p.role}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:function(a,b=l){return m(b).find(b=>b.items.some(b=>b.key===a))?.group??""}(k.key,h.extensions)},{label:k.label}],title:k.label}),(0,b.jsx)(e.N,{children:(0,b.jsxs)(e.k,{icon:c,title:`${k.label} arrives in stage ${k.stage}`,children:["This page is in the mockup and gets built in stage ",k.stage,". Connections and Settings work now."]})})]})}a.s(["default",0,o],177727)},68867,function(a){a.n(a.i(177727))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_%5B___slug%5D_page_tsx_0b007i3c1v_vg._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[34282,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(405050);let g=(0,f.createServerReference)("60ac9c8b39206712412afa6c5f898cd973f1781c34",f.callServer,void 0,f.findSourceMapURL,"silence");a.s(["AlertMenu",0,function({id:a,label:f,silenced:h,resourceHref:i}){let[,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=b=>{k.current||(k.current=!0,j(async()=>{try{let c=await g(a,b);c.ok?d.c.success(c.message??""):d.c.error(c.error)}catch{d.c.error("Something went wrong. Try again.")}finally{k.current=!1}}))},m=i?[{label:"View resource",href:i}]:[];return(0,b.jsx)(e.RowMenu,{label:`Actions for ${f}`,items:h?[{label:"Unsilence",onSelect:()=>l("off")},...m]:[{label:"Silence 1 hour",onSelect:()=>l("1h")},{label:"Silence until resolved",onSelect:()=>l("resolved")},...m]})}],34282)},264420,a=>{var b=a.i(187924),c=a.i(449862);let d=(0,c.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),e=(0,c.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),f=(0,c.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]);var g=a.i(901615),h=a.i(572131),i=a.i(823292),j=a.i(619089),k=a.i(507504),l=a.i(814574),m=a.i(405050);let n=(0,m.createServerReference)("405b53688d089665f9989e723990962b52d251dbec",m.callServer,void 0,m.findSourceMapURL,"saveDigest"),o=(0,m.createServerReference)("40353aa46e2a1cdd29ebcb97d68428146a5395c6bd",m.callServer,void 0,m.findSourceMapURL,"saveDiscord"),p=(0,m.createServerReference)("60073270259508c0c7afbd74fd2fc0e35db01fa234",m.callServer,void 0,m.findSourceMapURL,"saveTelegram"),q=(0,m.createServerReference)("40c1f8dd982f249d96c661a8d3affbd20ef13d790b",m.callServer,void 0,m.findSourceMapURL,"sendTest"),r=(0,m.createServerReference)("6052a735020180c9717b5d0603398bd3d7618a0c65",m.callServer,void 0,m.findSourceMapURL,"setChannelEnabled"),s=(0,m.createServerReference)("00bf8ae8756d938d63ba8a6b3ee87a16d071d13ffc",m.callServer,void 0,m.findSourceMapURL,"telegramChats"),t={telegram:{icon:e,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${g.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:d,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},email_digest:{icon:f,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${g.n.setting} (RESEND_API_KEY).`}},u={telegram:"Telegram",discord:"Discord",email_digest:"Daily email digest"};a.s(["ChannelControls",0,function({kind:a,connected:c,enabled:d,envMissing:e}){let[f,g]=(0,h.useState)(!1),[m,v]=(0,h.useState)([]),[w,x]=(0,h.useState)(""),[y,z]=(0,h.useState)(""),[A,B]=(0,h.useState)(""),[C,D]=(0,h.useState)({}),[E,F]=(0,h.useTransition)(),[G,H]=(0,h.useTransition)(),[I,J]=(0,h.useTransition)();(0,k.useHoldRefresh)(f);let K=t[a],L=K.icon;function M(a){a&&(v([]),x(""),z(""),B(""),D({})),g(a)}function N(a,b){J(async()=>{try{let c=await a();c.ok?i.c.success(b,{description:c.message}):i.c.error(c.error)}catch{i.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(l.N,{open:f,onOpenChange:a=>{E||M(a)},children:[(0,b.jsx)(l.a,{render:(0,b.jsx)(j.K,{size:"sm",disabled:null!==e,children:c?"Change":"Connect"})}),(0,b.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(L,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(l.F,{className:"text-base",children:K.title}),(0,b.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:K.about})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c;b.preventDefault(),c={},"telegram"!==a||w||(c.chat="Press Find chats, then pick one."),"discord"!==a||y.trim()||(c.url="Paste the whole webhook URL from Discord."),"email_digest"!==a||A.trim()||(c.to="Enter a valid email address."),D(c),Object.keys(c).length||F(async()=>{try{let b=m.find(a=>a.id===w)?.label??"",c="telegram"===a?await p(w,b):"discord"===a?await o(y):await n(A);if(!c.ok){D(c.fieldErrors??{}),c.fieldErrors||i.c.error(c.error);return}i.c.success("Channel saved",{description:c.message}),g(!1)}catch{i.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:C.chat,children:(0,b.jsxs)("select",{id:"ch-chat",className:j.S,value:w,onChange:a=>x(a.target.value),children:[0===m.length&&(0,b.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),m.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})}),(0,b.jsx)("p",{className:"mb-3",children:(0,b.jsx)(j.K,{size:"sm",onClick:function(){H(async()=>{try{let a=await s();if(!a.ok)return void i.c.error(a.error);let b=a.data?.chats??[];v(b),x(b[0]?.id??""),D({}),b.length?i.c.success(`Found ${b.length} chat${1===b.length?"":"s"}: ${b.map(a=>a.label).join(", ")}.`):i.c.info("No chats yet",{description:a.message??"Send /start to your bot in Telegram, then try again."})}catch{i.c.error("Something went wrong. Try again.")}})},disabled:G,children:G?"Looking…":"Find chats"})})]}),"discord"===a&&(0,b.jsx)(j.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:C.url,children:(0,b.jsx)("input",{id:"ch-hook",className:j.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:y,onChange:a=>z(a.target.value)})}),"email_digest"===a&&(0,b.jsx)(j.O,{id:"ch-to",label:"Send to",error:C.to,children:(0,b.jsx)("input",{id:"ch-to",className:j.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:A,onChange:a=>B(a.target.value)})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(j.K,{onClick:()=>M(!1),disabled:E,children:"Cancel"}),(0,b.jsx)(j.K,{type:"submit",variant:"primary",disabled:E,children:E?"Saving…":"Save"})]})]})]})]}),c&&d&&null===e&&(0,b.jsx)(j.K,{size:"sm",disabled:I,onClick:()=>N(()=>q(a),`${u[a]} test`),children:I?"Sending…":"Send test"}),c&&(0,b.jsx)(j.K,{size:"sm",variant:"ghost",disabled:I,onClick:()=>N(()=>r(a,!d),u[a]),children:d?"Turn off":"Turn on"})]})}],264420)},153508,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("606623ad3b9e82960a4672e757680d21dea478483e",f.callServer,void 0,f.findSourceMapURL,"setNotifyLanguage");a.s(["LanguageSelect",0,function({channel:a,label:f,saved:h}){let[i,j]=(0,c.useState)(h),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("select",{"aria-label":`${f} language`,className:`${e.S} w-auto min-w-[160px]`,value:i,disabled:k,onChange:b=>{var c;j(c="id"===b.target.value?"id":"en"),l(async()=>{try{let b=await g(a,c);b.ok?d.c.success(`${f} language saved`,{description:b.message}):(j(i),d.c.error(b.error))}catch{j(i),d.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsx)("option",{value:"en",children:"English"}),(0,b.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],153508)},621765,a=>{var b=a.i(187924),c=a.i(896293),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574);let i=a=>(a??0).toLocaleString("en-US"),j={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:a=>`${i(a)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:a=>`No collector run for ${i(a)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:a=>`p95 > ${i(a)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"Production deployment state = ERROR"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase status = INACTIVE"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:a=>`TLS certificate expires in < ${i(a)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:a=>`Domain expires in < ${i(a)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Database size > ${i(a)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:a=>`> ${i(a)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:a=>`Daily reads > ${i(a)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase project without API traffic for ${i(a)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase CPU > ${i(a)}% for 15 min, RAM > ${i(Math.min(99,(a??80)+10))}%, disk > ${i(a)}% or connections > ${i(a)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Turso, Upstash or D1 usage > ${i(a)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:a=>`Account credential expires in < ${i(a)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a high or critical advisory (OSV.dev)"}};Object.keys(j);let k=[["critical","Critical"],["warning","Warning"],["info","Info"]];var l=a.i(405050);let m=(0,l.createServerReference)("603c21bee30dd2622aca66e7fa808e889ca66fc14b",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=[["telegram","Telegram"],["discord","Discord"],["email_digest","Daily email digest"]],o=a=>({severity:a.severity,threshold:null===a.threshold?"":a.threshold.toLocaleString("en-US"),channels:[...a.channels],enabled:a.enabled});a.s(["RuleActions",0,function({rule:a,condition:i}){let[l,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(()=>o(a)),[s,t]=(0,d.useState)({}),[u,v]=(0,d.useTransition)();(0,g.useHoldRefresh)(l);let w=j[a.key].bounds;function x(b){b&&(r(o(a)),t({})),p(b)}function y(b,c){v(async()=>{try{let d=await m(a.key,b);if(!d.ok){t(d.fieldErrors??{}),e.c.error(d.error);return}c(d.message??""),p(!1)}catch{e.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsxs)(h.N,{open:l,onOpenChange:a=>{u||x(a)},children:[(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{size:"sm",children:"Edit"})}),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Edit ",a.key]}),(0,b.jsx)(h.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:i})]})]}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),y(q,a=>e.c.success("Rule saved",{description:a}))},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"rule-sev",label:"Severity",error:s.severity,children:(0,b.jsx)("select",{id:"rule-sev",className:f.S,value:q.severity,onChange:a=>r({...q,severity:a.target.value}),children:k.map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))})}),w&&(0,b.jsx)(f.O,{id:"rule-num",label:"Threshold",help:`Replaces ${a.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:s.threshold,children:(0,b.jsx)("input",{id:"rule-num",className:f.S,inputMode:"numeric",autoComplete:"off",value:q.threshold,onChange:a=>r({...q,threshold:a.target.value})})})]}),(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Send to"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:n.map(([a,c])=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.channels.includes(a),onChange:b=>{let c;return c=b.target.checked,r({...q,channels:c?[...q.channels,a]:q.channels.filter(b=>b!==a)})}}),c]},a))}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Opens and resolves are sent once; a still-firing alert repeats every 6 hours unless silenced."}),s.channels&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:s.channels})]}),(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.enabled,onChange:a=>r({...q,enabled:a.target.checked})}),"Rule is on"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>x(!1),disabled:u,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:u,children:u?"Saving…":"Save rule"})]})]})]})]}),(0,b.jsx)(f.K,{size:"sm",disabled:u,onClick:()=>y({...o(a),enabled:!a.enabled},b=>a.enabled?e.c.success(`${a.key} disabled. It won't fire until you enable it again.`):e.c.success(`${a.key} enabled.`,{description:b})),children:a.enabled?"Disable":"Enable"})]})}],621765)},869347,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(147474),g=a.i(405050);let h=(0,g.createServerReference)("001d64465511d64cc9e1ee50cbf53a55a6b7c9df7c",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("00ae9175539483246313f84132eef61722bc293dc3",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("009817eed7c54f4fc4d9aa82014009e356351a8ae1",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("00791d4c40d6bd34c548cd41ff267ea17d9b41fbfb",g.callServer,void 0,g.findSourceMapURL,"telegramLinkCode");a.s(["TelegramApprovals",0,function(){let[a,g]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useTransition)();function r(a,b){q(async()=>{try{let c=await a();if(!c.ok)return void d.c.error(c.error??"Something went wrong. Try again.");c.data&&g(c.data),b?.(),c.message&&d.c.success("Approval buttons",{description:c.message})}catch{d.c.error("Something went wrong. Try again.")}})}(0,c.useEffect)(()=>{let a=!0;return h().then(b=>{a&&(b.ok&&b.data?g(b.data):m(b.ok?null:b.error))}).catch(()=>a&&m("Couldn't read the status.")),()=>{a=!1}},[]);let s=a?a.on?a.linked?"On · linked to your Telegram account":"On · not linked yet":"Off":l??"Checking…",t=n?(0,f.U)(new Date(n.expiresAt)):"";return(0,b.jsxs)("div",{className:"mt-1 basis-full rounded-md border border-line px-3 py-2 text-[13px]",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Approval buttons"}),(0,b.jsx)("span",{className:"text-ink-soft",children:s}),(0,b.jsxs)("span",{className:"ml-auto inline-flex flex-wrap gap-2",children:[a&&!a.on&&(0,b.jsx)(e.K,{size:"sm",disabled:p,onClick:()=>r(j),children:p?"Working…":"Turn on"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",disabled:p,onClick:function(){q(async()=>{try{let a=await k();a.ok&&a.data?o(a.data):d.c.error(a.ok?"Something went wrong. Try again.":a.error)}catch{d.c.error("Something went wrong. Try again.")}})},children:a.linked?"Link again":"Show link code"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",variant:"ghost",disabled:p,onClick:()=>r(i,()=>o(null)),children:"Turn off"})]})]}),(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:"Proposal notices get ✅ Approve / ❌ Reject buttons that only your linked Telegram account can use; risky actions ask twice. While this is on, Telegram sends updates to the console instead of holding them, so Find chats lists the chats the bot has seen since then."}),a?.problem&&(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-err",children:a.problem}),n&&(0,b.jsxs)("p",{className:"mt-1 text-[12.5px]",children:["Send ",(0,b.jsxs)("code",{className:"rounded bg-sunken px-1 font-mono",children:["/link ",n.code]})," in the connected chat before ",t,". The code works once."]})]})}],869347)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[34282,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(188406),f=a.i(405050);let g=(0,f.createServerReference)("60bf355ee9384b20152567835463097c145a74905a",f.callServer,void 0,f.findSourceMapURL,"silence");a.s(["AlertMenu",0,function({id:a,label:f,silenced:h,resourceHref:i}){let[,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=b=>{k.current||(k.current=!0,j(async()=>{try{let c=await g(a,b);c.ok?d.c.success(c.message??""):d.c.error(c.error)}catch{d.c.error("Something went wrong. Try again.")}finally{k.current=!1}}))},m=i?[{label:"View resource",href:i}]:[];return(0,b.jsx)(e.RowMenu,{label:`Actions for ${f}`,items:h?[{label:"Unsilence",onSelect:()=>l("off")},...m]:[{label:"Silence 1 hour",onSelect:()=>l("1h")},{label:"Silence until resolved",onSelect:()=>l("resolved")},...m]})}],34282)},264420,a=>{var b=a.i(187924),c=a.i(449862);let d=(0,c.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),e=(0,c.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),f=(0,c.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]);var g=a.i(901615),h=a.i(572131),i=a.i(823292),j=a.i(619089),k=a.i(507504),l=a.i(814574),m=a.i(405050);let n=(0,m.createServerReference)("40f2fd9075ff6faca842fc490ec436efe65477829a",m.callServer,void 0,m.findSourceMapURL,"saveDigest"),o=(0,m.createServerReference)("4059b0b8cf288c78655fbf12915d34ac87a47167a2",m.callServer,void 0,m.findSourceMapURL,"saveDiscord"),p=(0,m.createServerReference)("60268d70e88a1dc303740bfaf43478a5e4c62e7d46",m.callServer,void 0,m.findSourceMapURL,"saveTelegram"),q=(0,m.createServerReference)("4048bfc25d4971638b6fd0d2cc03ca4f468ea47a35",m.callServer,void 0,m.findSourceMapURL,"sendTest"),r=(0,m.createServerReference)("602b237330040f45f92d805a8845d808ff238f46d4",m.callServer,void 0,m.findSourceMapURL,"setChannelEnabled"),s=(0,m.createServerReference)("00c07a513c2ff8e8d19dc024bce40dea0f3caeea17",m.callServer,void 0,m.findSourceMapURL,"telegramChats"),t={telegram:{icon:e,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${g.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:d,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},email_digest:{icon:f,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${g.n.setting} (RESEND_API_KEY).`}},u={telegram:"Telegram",discord:"Discord",email_digest:"Daily email digest"};a.s(["ChannelControls",0,function({kind:a,connected:c,enabled:d,envMissing:e}){let[f,g]=(0,h.useState)(!1),[m,v]=(0,h.useState)([]),[w,x]=(0,h.useState)(""),[y,z]=(0,h.useState)(""),[A,B]=(0,h.useState)(""),[C,D]=(0,h.useState)({}),[E,F]=(0,h.useTransition)(),[G,H]=(0,h.useTransition)(),[I,J]=(0,h.useTransition)();(0,k.useHoldRefresh)(f);let K=t[a],L=K.icon;function M(a){a&&(v([]),x(""),z(""),B(""),D({})),g(a)}function N(a,b){J(async()=>{try{let c=await a();c.ok?i.c.success(b,{description:c.message}):i.c.error(c.error)}catch{i.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(l.N,{open:f,onOpenChange:a=>{E||M(a)},children:[(0,b.jsx)(l.a,{render:(0,b.jsx)(j.K,{size:"sm",disabled:null!==e,children:c?"Change":"Connect"})}),(0,b.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(L,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(l.F,{className:"text-base",children:K.title}),(0,b.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:K.about})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c;b.preventDefault(),c={},"telegram"!==a||w||(c.chat="Press Find chats, then pick one."),"discord"!==a||y.trim()||(c.url="Paste the whole webhook URL from Discord."),"email_digest"!==a||A.trim()||(c.to="Enter a valid email address."),D(c),Object.keys(c).length||F(async()=>{try{let b=m.find(a=>a.id===w)?.label??"",c="telegram"===a?await p(w,b):"discord"===a?await o(y):await n(A);if(!c.ok){D(c.fieldErrors??{}),c.fieldErrors||i.c.error(c.error);return}i.c.success("Channel saved",{description:c.message}),g(!1)}catch{i.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:C.chat,children:(0,b.jsxs)("select",{id:"ch-chat",className:j.S,value:w,onChange:a=>x(a.target.value),children:[0===m.length&&(0,b.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),m.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))]})}),(0,b.jsx)("p",{className:"mb-3",children:(0,b.jsx)(j.K,{size:"sm",onClick:function(){H(async()=>{try{let a=await s();if(!a.ok)return void i.c.error(a.error);let b=a.data?.chats??[];v(b),x(b[0]?.id??""),D({}),b.length?i.c.success(`Found ${b.length} chat${1===b.length?"":"s"}: ${b.map(a=>a.label).join(", ")}.`):i.c.info("No chats yet",{description:a.message??"Send /start to your bot in Telegram, then try again."})}catch{i.c.error("Something went wrong. Try again.")}})},disabled:G,children:G?"Looking…":"Find chats"})})]}),"discord"===a&&(0,b.jsx)(j.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:C.url,children:(0,b.jsx)("input",{id:"ch-hook",className:j.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:y,onChange:a=>z(a.target.value)})}),"email_digest"===a&&(0,b.jsx)(j.O,{id:"ch-to",label:"Send to",error:C.to,children:(0,b.jsx)("input",{id:"ch-to",className:j.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:A,onChange:a=>B(a.target.value)})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(j.K,{onClick:()=>M(!1),disabled:E,children:"Cancel"}),(0,b.jsx)(j.K,{type:"submit",variant:"primary",disabled:E,children:E?"Saving…":"Save"})]})]})]})]}),c&&d&&null===e&&(0,b.jsx)(j.K,{size:"sm",disabled:I,onClick:()=>N(()=>q(a),`${u[a]} test`),children:I?"Sending…":"Send test"}),c&&(0,b.jsx)(j.K,{size:"sm",variant:"ghost",disabled:I,onClick:()=>N(()=>r(a,!d),u[a]),children:d?"Turn off":"Turn on"})]})}],264420)},153508,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(405050);let g=(0,f.createServerReference)("603e479458fcddf905783e26721fd06fb0e382f0d5",f.callServer,void 0,f.findSourceMapURL,"setNotifyLanguage");a.s(["LanguageSelect",0,function({channel:a,label:f,saved:h}){let[i,j]=(0,c.useState)(h),[k,l]=(0,c.useTransition)();return(0,b.jsxs)("select",{"aria-label":`${f} language`,className:`${e.S} w-auto min-w-[160px]`,value:i,disabled:k,onChange:b=>{var c;j(c="id"===b.target.value?"id":"en"),l(async()=>{try{let b=await g(a,c);b.ok?d.c.success(`${f} language saved`,{description:b.message}):(j(i),d.c.error(b.error))}catch{j(i),d.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsx)("option",{value:"en",children:"English"}),(0,b.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],153508)},621765,a=>{var b=a.i(187924),c=a.i(896293),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574);let i=a=>(a??0).toLocaleString("en-US"),j={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:a=>`${i(a)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:a=>`No collector run for ${i(a)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:a=>`p95 > ${i(a)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"Production deployment state = ERROR"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase status = INACTIVE"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:a=>`TLS certificate expires in < ${i(a)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:a=>`Domain expires in < ${i(a)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Database size > ${i(a)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:a=>`> ${i(a)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:a=>`Daily reads > ${i(a)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase project without API traffic for ${i(a)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:a=>`Supabase CPU > ${i(a)}% for 15 min, RAM > ${i(Math.min(99,(a??80)+10))}%, disk > ${i(a)}% or connections > ${i(a)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:a=>`Turso, Upstash or D1 usage > ${i(a)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:a=>`Account credential expires in < ${i(a)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a high or critical advisory (OSV.dev)"}};Object.keys(j);let k=[["critical","Critical"],["warning","Warning"],["info","Info"]];var l=a.i(405050);let m=(0,l.createServerReference)("60c8b655dddaa634d573a230acc932fe87b84952b7",l.callServer,void 0,l.findSourceMapURL,"editRule"),n=[["telegram","Telegram"],["discord","Discord"],["email_digest","Daily email digest"]],o=a=>({severity:a.severity,threshold:null===a.threshold?"":a.threshold.toLocaleString("en-US"),channels:[...a.channels],enabled:a.enabled});a.s(["RuleActions",0,function({rule:a,condition:i}){let[l,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(()=>o(a)),[s,t]=(0,d.useState)({}),[u,v]=(0,d.useTransition)();(0,g.useHoldRefresh)(l);let w=j[a.key].bounds;function x(b){b&&(r(o(a)),t({})),p(b)}function y(b,c){v(async()=>{try{let d=await m(a.key,b);if(!d.ok){t(d.fieldErrors??{}),e.c.error(d.error);return}c(d.message??""),p(!1)}catch{e.c.error("Something went wrong. Try again.")}})}return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsxs)(h.N,{open:l,onOpenChange:a=>{u||x(a)},children:[(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{size:"sm",children:"Edit"})}),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Edit ",a.key]}),(0,b.jsx)(h.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:i})]})]}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),y(q,a=>e.c.success("Rule saved",{description:a}))},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"rule-sev",label:"Severity",error:s.severity,children:(0,b.jsx)("select",{id:"rule-sev",className:f.S,value:q.severity,onChange:a=>r({...q,severity:a.target.value}),children:k.map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))})}),w&&(0,b.jsx)(f.O,{id:"rule-num",label:"Threshold",help:`Replaces ${a.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:s.threshold,children:(0,b.jsx)("input",{id:"rule-num",className:f.S,inputMode:"numeric",autoComplete:"off",value:q.threshold,onChange:a=>r({...q,threshold:a.target.value})})})]}),(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Send to"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:n.map(([a,c])=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.channels.includes(a),onChange:b=>{let c;return c=b.target.checked,r({...q,channels:c?[...q.channels,a]:q.channels.filter(b=>b!==a)})}}),c]},a))}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Opens and resolves are sent once; a still-firing alert repeats every 6 hours unless silenced."}),s.channels&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:s.channels})]}),(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:q.enabled,onChange:a=>r({...q,enabled:a.target.checked})}),"Rule is on"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>x(!1),disabled:u,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:u,children:u?"Saving…":"Save rule"})]})]})]})]}),(0,b.jsx)(f.K,{size:"sm",disabled:u,onClick:()=>y({...o(a),enabled:!a.enabled},b=>a.enabled?e.c.success(`${a.key} disabled. It won't fire until you enable it again.`):e.c.success(`${a.key} enabled.`,{description:b})),children:a.enabled?"Disable":"Enable"})]})}],621765)},869347,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(147474),g=a.i(405050);let h=(0,g.createServerReference)("00699c1a457a9effe94986c3c8230c9d489c647870",g.callServer,void 0,g.findSourceMapURL,"approvalsStatus"),i=(0,g.createServerReference)("00e036b4457f4e4b79d48019fd09e0f02f0cd866ed",g.callServer,void 0,g.findSourceMapURL,"disableApprovals"),j=(0,g.createServerReference)("00a1f0d4c0f79c7683bbf45b5a104358863ed13816",g.callServer,void 0,g.findSourceMapURL,"enableApprovals"),k=(0,g.createServerReference)("000d463d73f6c64b4bf896fde39a464412827be6b6",g.callServer,void 0,g.findSourceMapURL,"telegramLinkCode");a.s(["TelegramApprovals",0,function(){let[a,g]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useTransition)();function r(a,b){q(async()=>{try{let c=await a();if(!c.ok)return void d.c.error(c.error??"Something went wrong. Try again.");c.data&&g(c.data),b?.(),c.message&&d.c.success("Approval buttons",{description:c.message})}catch{d.c.error("Something went wrong. Try again.")}})}(0,c.useEffect)(()=>{let a=!0;return h().then(b=>{a&&(b.ok&&b.data?g(b.data):m(b.ok?null:b.error))}).catch(()=>a&&m("Couldn't read the status.")),()=>{a=!1}},[]);let s=a?a.on?a.linked?"On · linked to your Telegram account":"On · not linked yet":"Off":l??"Checking…",t=n?(0,f.U)(new Date(n.expiresAt)):"";return(0,b.jsxs)("div",{className:"mt-1 basis-full rounded-md border border-line px-3 py-2 text-[13px]",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Approval buttons"}),(0,b.jsx)("span",{className:"text-ink-soft",children:s}),(0,b.jsxs)("span",{className:"ml-auto inline-flex flex-wrap gap-2",children:[a&&!a.on&&(0,b.jsx)(e.K,{size:"sm",disabled:p,onClick:()=>r(j),children:p?"Working…":"Turn on"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",disabled:p,onClick:function(){q(async()=>{try{let a=await k();a.ok&&a.data?o(a.data):d.c.error(a.ok?"Something went wrong. Try again.":a.error)}catch{d.c.error("Something went wrong. Try again.")}})},children:a.linked?"Link again":"Show link code"}),a?.on&&(0,b.jsx)(e.K,{size:"sm",variant:"ghost",disabled:p,onClick:()=>r(i,()=>o(null)),children:"Turn off"})]})]}),(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:"Proposal notices get ✅ Approve / ❌ Reject buttons that only your linked Telegram account can use; risky actions ask twice. While this is on, Telegram sends updates to the console instead of holding them, so Find chats lists the chats the bot has seen since then."}),a?.problem&&(0,b.jsx)("p",{className:"mt-1 text-[12.5px] text-err",children:a.problem}),n&&(0,b.jsxs)("p",{className:"mt-1 text-[12.5px]",children:["Send ",(0,b.jsxs)("code",{className:"rounded bg-sunken px-1 font-mono",children:["/link ",n.code]})," in the connected chat before ",t,". The code works once."]})]})}],869347)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_alerts_0j5xlt68kwg8x._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[892055,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AlertMenu() from the server but AlertMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/alert-menu.tsx","AlertMenu");a.s(["AlertMenu",0,b])},387413,a=>{var b=a.i(892055);a.n(b)},552573,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ChannelControls() from the server but ChannelControls is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/channel-dialog.tsx","ChannelControls");a.s(["ChannelControls",0,b])},655454,a=>{var b=a.i(552573);a.n(b)},728301,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LanguageSelect() from the server but LanguageSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/language-select.tsx","LanguageSelect");a.s(["LanguageSelect",0,b])},579853,a=>{var b=a.i(728301);a.n(b)},198154,a=>{var b=a.i(907997),c=a.i(803681),d=a.i(685865),e=a.i(473083),f=a.i(109307),g=a.i(455317),h=a.i(532620),i=a.i(49146),j=a.i(552543),k=a.i(534908),l=a.i(556987),m=a.i(505237),n=a.i(701702),o=a.i(686251),p=a.i(245710),q=a.i(655454),r=a.i(579853),s=a.i(674118);let t=[{kind:"telegram",label:"Telegram bot",help:"Free. One message per collector run, listing every alert that opened, repeated (every 6 h) or resolved."},{kind:"discord",label:"Discord webhook",help:"Free. Same messages as Telegram."},{kind:"email_digest",label:"Daily email digest",help:"Sent through Resend at 07:00 {zone}: what fired, what resolved, uptime and stored errors of the last 24 h. Free plan: 100 emails a day, we send 1."}],u="grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",v={telegram:"en",discord:"en",email:"en"},w={telegram:"telegram",discord:"discord",email_digest:"email"},x={en:"English",id:"Bahasa Indonesia"};function y({views:a,owner:d,now:e,approvals:f=!1,langs:g=v}){return(0,b.jsx)(c.N,{title:"Channels",children:(0,b.jsxs)("div",{children:[t.map(c=>{let h=a.find(a=>a.kind===c.kind),i=function(a,b){if(a.envMissing)return{state:"unknown",text:a.envMissing,shot:a.envMissing};if(!a.connected)return{state:"off",text:"Not connected",shot:"Not connected"};if(!a.enabled)return{state:"off",text:`Off \xb7 ${a.hint}`,shot:"Off"};let c=a.lastSentAt?`last sent ${(0,p.$)(a.lastSentAt,b)}`:"never sent",d=b=>"email_digest"===a.kind?`Every day at 07:00 \xb7 to ${b} \xb7 ${c}`:`Connected \xb7 ${b} \xb7 ${c}`;return{state:a.lastError?"warn":"ok",text:d(a.hint??""),shot:d("email_digest"===a.kind?"[email hidden]":"hidden")}}(h,e);return(0,b.jsxs)("div",{className:u,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:c.label}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:c.help.replace("{zone}",(0,p.D)())})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(o.F,{state:i.state,children:(0,b.jsx)(n.Masked,{kind:"text",real:i.text,masked:i.shot})}),d?(0,b.jsx)(r.LanguageSelect,{channel:w[h.kind],label:c.label,saved:g[w[h.kind]]}):(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:x[g[w[h.kind]]]}),d&&(0,b.jsx)(q.ChannelControls,{kind:h.kind,connected:h.connected,enabled:h.enabled,envMissing:h.envMissing}),h.lastError&&(0,b.jsxs)("span",{className:"basis-full text-[12.5px] text-err",children:["The last send failed: ",(0,b.jsx)(n.Masked,{kind:"text",real:h.lastError})]}),d&&f&&"telegram"===h.kind&&h.connected&&null===h.envMissing&&(0,b.jsx)(s.TelegramApprovals,{})]})]},c.kind)}),(0,b.jsxs)("div",{className:u,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:"Quiet rules"}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:"Built in, not editable."})]}),(0,b.jsxs)("ul",{className:"m-0 list-disc pl-[18px] text-[13px] text-ink-soft",children:[(0,b.jsx)("li",{children:"While CollectorStale fires, no other alert is sent: the data is stale."}),(0,b.jsx)("li",{children:"A paused database mutes MonitorDown and HighLatency of the apps linked to it."}),(0,b.jsx)("li",{children:"An alert resolves after 2 good evaluations in a row, so a flapping site doesn't page twice."})]})]})]})})}var z=a.i(395936),A=a.i(959581),B=a.i(605826),C=a.i(293167),D=a.i(791444),E=a.i(139138),F=a.i(469762),G=a.i(71575),H=a.i(387413);let I=["Severity","Alert","Resource","Since","Notified",""],J=["Severity","Alert","Resource","Started","Outcome"];function K({rows:a,now:d,act:e}){if(0===a.length)return(0,b.jsx)(c.k,{title:"No alerts firing",children:"Everything the rules watch looks fine."});let f=a.map(a=>{let f=(0,G.O)(a,d),g=a.resourceId&&"app"===a.resourceKind?`/apps/${a.resourceId}`:null,h=a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>d.getTime();return{key:a.id,state:a.severity,text:[a.severity,a.ruleKey,a.title,a.message,a.title,a.providerIncident??"",a.search??""].join(" "),row:(0,b.jsxs)("tr",{className:D.C,children:[(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(C.e,{severity:a.severity})}),(0,b.jsxs)("td",{className:(0,E.f)(D.z,D.M),children:[(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey}),a.providerIncident&&(0,b.jsx)("span",{className:"ml-1.5",children:(0,b.jsxs)(c.E,{children:["Provider incident · ",a.providerIncident]})}),(0,b.jsx)("div",{className:"text-ink-soft",children:(0,b.jsx)(n.MaskedText,{text:a.message})}),a.causedBy&&(0,b.jsxs)("div",{className:"text-[12.5px] text-ink-faint",children:["Caused by ",(0,b.jsx)(n.MaskedText,{text:a.causedBy})," · notifications muted"]})]}),(0,b.jsx)("td",{className:D.z,children:g?(0,b.jsx)(z.default,{href:g,children:(0,b.jsx)(n.MaskedText,{text:a.title,inLink:!0})}):(0,b.jsx)(n.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,E.f)(D.z,"text-ink-soft"),children:(0,F.v)(a.startedAt,d)}),(0,b.jsx)("td",{className:(0,E.f)(D.z,"text-ink-soft"),children:"ok"===f.state?f.text:(0,b.jsx)(o.F,{state:f.state,children:f.text})}),(0,b.jsx)("td",{className:D.z,children:e&&(0,b.jsx)(H.AlertMenu,{id:a.id,label:`${a.ruleKey} ${a.title}`,silenced:h,resourceHref:g})})]})}});return(0,b.jsx)(A.ListFilter,{placeholder:"Filter alerts",states:G._,head:I,rows:f})}function L({rows:a,now:c}){let d=a.map(a=>({key:a.id,state:"ok",text:"",row:(0,b.jsxs)("tr",{className:D.C,children:[(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(C.e,{severity:a.severity})}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey})}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(n.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,E.f)(D.z,"text-ink-soft"),children:(0,F.v)(a.startedAt,c)}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsxs)(o.F,{state:"ok",children:["Resolved after ",(0,G.M)(a.startedAt,a.resolvedAt)]})})]})}));return(0,b.jsx)(B.PlainTable,{head:J,rows:d})}var M=a.i(954296),N=a.i(927262),O=a.i(390566);let P=["Rule","Severity","Condition","State",""];function Q({rules:a,owner:c}){let d=a.map(({rule:a,firing:d,hasData:e})=>{let f=N._[a.key],g=(0,G.G)({enabled:a.enabled,firing:d,hasData:e});return{key:a.key,state:a.severity,text:a.key,row:(0,b.jsxs)("tr",{className:D.C,children:[(0,b.jsxs)("td",{className:D.z,children:[(0,b.jsx)("b",{className:"font-medium",children:a.key}),(0,b.jsx)(M.Src,{kind:f.source})]}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(C.e,{severity:a.severity})}),(0,b.jsx)("td",{className:`${D.z} text-ink-soft`,children:f.condition(a.threshold)}),(0,b.jsx)("td",{className:D.z,children:(0,b.jsx)(o.F,{state:g.state,children:g.text})}),(0,b.jsx)("td",{className:D.z,children:c&&(0,b.jsx)(O.RuleActions,{rule:a,condition:f.condition(a.threshold)})})]})}});return(0,b.jsx)(B.PlainTable,{head:P,rows:d})}async function R(){let a=await (0,f.I)(),n=new Date,[o,p,q,r,s,t]=await Promise.all([(0,g.q)(),(0,g.I)(n),(0,g.y)(),(0,i.k)(),(0,h.e)(),(0,j.B)()]),u=o.map(a=>({...(0,l.o)(a,s),search:[a.title,a.message].join(" ")})),v=p.map(a=>({...a,title:(0,l.o)({...a,message:"",causedBy:null},s).title})),w="owner"===a.role;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.AutoRefresh,{at:n.getTime()}),(0,b.jsx)(c.L,{crumbs:[{label:"Observe"},{label:"Alerts"}],title:"Alerts",sub:"Rules run after every collector run. Unknown data never opens or resolves an alert."}),(0,b.jsxs)(e.Tabs,{defaultValue:"firing",className:"gap-4",children:[(0,b.jsxs)(e.TabsList,{variant:"line",children:[(0,b.jsx)(e.TabsTrigger,{value:"firing",children:"Firing"}),(0,b.jsx)(e.TabsTrigger,{value:"rules",children:"Rules"}),(0,b.jsx)(e.TabsTrigger,{value:"notifications",children:"Notifications"})]}),(0,b.jsxs)(e.TabsContent,{value:"firing",className:"flex flex-col gap-4",children:[(0,b.jsx)(c.N,{flush:!0,children:(0,b.jsx)(K,{rows:u,now:n,act:(0,m.z)(a.role)})}),v.length>0&&(0,b.jsx)(c.N,{title:"Resolved in the last 7 days",flush:!0,children:(0,b.jsx)(L,{rows:v,now:n})})]}),(0,b.jsx)(e.TabsContent,{value:"rules",children:(0,b.jsx)(c.N,{flush:!0,children:(0,b.jsx)(Q,{rules:q,owner:w})})}),(0,b.jsx)(e.TabsContent,{value:"notifications",children:(0,b.jsx)(y,{views:r,owner:w,now:n,approvals:!!k.extensions.telegramCallback,langs:t})})]})]})}a.s(["default",0,R],198154)},100113,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RuleActions() from the server but RuleActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/rule-dialog.tsx","RuleActions");a.s(["RuleActions",0,b])},390566,a=>{var b=a.i(100113);a.n(b)},356435,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call TelegramApprovals() from the server but TelegramApprovals is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/telegram-approvals.tsx","TelegramApprovals");a.s(["TelegramApprovals",0,b])},674118,a=>{var b=a.i(356435);a.n(b)}],181361,function(a){a.n(a.i(198154))}];
|
|
1
|
+
module.exports=[[892055,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AlertMenu() from the server but AlertMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/alert-menu.tsx","AlertMenu");a.s(["AlertMenu",0,b])},387413,a=>{var b=a.i(892055);a.n(b)},552573,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ChannelControls() from the server but ChannelControls is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/channel-dialog.tsx","ChannelControls");a.s(["ChannelControls",0,b])},655454,a=>{var b=a.i(552573);a.n(b)},728301,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LanguageSelect() from the server but LanguageSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/language-select.tsx","LanguageSelect");a.s(["LanguageSelect",0,b])},579853,a=>{var b=a.i(728301);a.n(b)},198154,a=>{var b=a.i(907997),c=a.i(395936),d=a.i(803681),e=a.i(685865),f=a.i(473083),g=a.i(109307),h=a.i(455317),i=a.i(532620),j=a.i(49146),k=a.i(396667),l=a.i(552543),m=a.i(534908),n=a.i(160147),o=a.i(556987),p=a.i(505237),q=a.i(701702),r=a.i(686251),s=a.i(245710),t=a.i(655454),u=a.i(579853),v=a.i(674118);let w=[{kind:"telegram",label:"Telegram bot",help:"Free. One message per collector run, listing every alert that opened, repeated (every 6 h) or resolved."},{kind:"discord",label:"Discord webhook",help:"Free. Same messages as Telegram."},{kind:"email_digest",label:"Daily email digest",help:"Sent through Resend at 07:00 {zone}: what fired, what resolved, uptime and stored errors of the last 24 h. Free plan: 100 emails a day, we send 1."}],x="grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",y={telegram:"en",discord:"en",email:"en"},z={telegram:"telegram",discord:"discord",email_digest:"email"},A={en:"English",id:"Bahasa Indonesia"};function B({views:a,owner:c,now:e,approvals:f=!1,langs:g=y}){return(0,b.jsx)(d.N,{title:"Channels",children:(0,b.jsxs)("div",{children:[w.map(d=>{let h=a.find(a=>a.kind===d.kind),i=function(a,b){if(a.envMissing)return{state:"unknown",text:a.envMissing,shot:a.envMissing};if(!a.connected)return{state:"off",text:"Not connected",shot:"Not connected"};if(!a.enabled)return{state:"off",text:`Off \xb7 ${a.hint}`,shot:"Off"};let c=a.lastSentAt?`last sent ${(0,s.$)(a.lastSentAt,b)}`:"never sent",d=b=>"email_digest"===a.kind?`Every day at 07:00 \xb7 to ${b} \xb7 ${c}`:`Connected \xb7 ${b} \xb7 ${c}`;return{state:a.lastError?"warn":"ok",text:d(a.hint??""),shot:d("email_digest"===a.kind?"[email hidden]":"hidden")}}(h,e);return(0,b.jsxs)("div",{className:x,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:d.label}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:d.help.replace("{zone}",(0,s.D)())})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(r.F,{state:i.state,children:(0,b.jsx)(q.Masked,{kind:"text",real:i.text,masked:i.shot})}),c?(0,b.jsx)(u.LanguageSelect,{channel:z[h.kind],label:d.label,saved:g[z[h.kind]]}):(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:A[g[z[h.kind]]]}),c&&(0,b.jsx)(t.ChannelControls,{kind:h.kind,connected:h.connected,enabled:h.enabled,envMissing:h.envMissing}),h.lastError&&(0,b.jsxs)("span",{className:"basis-full text-[12.5px] text-err",children:["The last send failed: ",(0,b.jsx)(q.Masked,{kind:"text",real:h.lastError})]}),c&&f&&"telegram"===h.kind&&h.connected&&null===h.envMissing&&(0,b.jsx)(v.TelegramApprovals,{})]})]},d.kind)}),(0,b.jsxs)("div",{className:x,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:"Quiet rules"}),(0,b.jsx)("div",{className:"text-[12.5px] text-ink-soft",children:"Built in, not editable."})]}),(0,b.jsxs)("ul",{className:"m-0 list-disc pl-[18px] text-[13px] text-ink-soft",children:[(0,b.jsx)("li",{children:"While CollectorStale fires, no other alert is sent: the data is stale."}),(0,b.jsx)("li",{children:"A paused database mutes MonitorDown and HighLatency of the apps linked to it."}),(0,b.jsx)("li",{children:"An alert resolves after 2 good evaluations in a row, so a flapping site doesn't page twice."})]})]})]})})}var C=a.i(959581),D=a.i(605826),E=a.i(293167),F=a.i(791444),G=a.i(139138),H=a.i(469762),I=a.i(71575),J=a.i(387413);let K=["Severity","Alert","Resource","Since","Notified",""],L=["Severity","Alert","Resource","Started","Outcome"];function M({rows:a,now:e,act:f}){if(0===a.length)return(0,b.jsx)(d.k,{title:"No alerts firing",children:"Everything the rules watch looks fine."});let g=a.map(a=>{let g=(0,I.O)(a,e),h=a.resourceId&&"app"===a.resourceKind?`/apps/${a.resourceId}`:null,i=a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>e.getTime();return{key:a.id,state:a.severity,text:[a.severity,a.ruleKey,a.title,a.message,a.title,a.providerIncident??"",a.search??""].join(" "),row:(0,b.jsxs)("tr",{className:F.C,children:[(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(E.e,{severity:a.severity})}),(0,b.jsxs)("td",{className:(0,G.f)(F.z,F.M),children:[(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey}),a.providerIncident&&(0,b.jsx)("span",{className:"ml-1.5",children:(0,b.jsxs)(d.E,{children:["Provider incident · ",a.providerIncident]})}),(0,b.jsx)("div",{className:"text-ink-soft",children:(0,b.jsx)(q.MaskedText,{text:a.message})}),a.causedBy&&(0,b.jsxs)("div",{className:"text-[12.5px] text-ink-faint",children:["Caused by ",(0,b.jsx)(q.MaskedText,{text:a.causedBy})," · notifications muted"]})]}),(0,b.jsx)("td",{className:F.z,children:h?(0,b.jsx)(c.default,{href:h,children:(0,b.jsx)(q.MaskedText,{text:a.title,inLink:!0})}):(0,b.jsx)(q.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,G.f)(F.z,"text-ink-soft"),children:(0,H.v)(a.startedAt,e)}),(0,b.jsx)("td",{className:(0,G.f)(F.z,"text-ink-soft"),children:"ok"===g.state?g.text:(0,b.jsx)(r.F,{state:g.state,children:g.text})}),(0,b.jsx)("td",{className:F.z,children:f&&(0,b.jsx)(J.AlertMenu,{id:a.id,label:`${a.ruleKey} ${a.title}`,silenced:i,resourceHref:h})})]})}});return(0,b.jsx)(C.ListFilter,{placeholder:"Filter alerts",states:I._,head:K,rows:g})}function N({rows:a,now:c}){let d=a.map(a=>({key:a.id,state:"ok",text:"",row:(0,b.jsxs)("tr",{className:F.C,children:[(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(E.e,{severity:a.severity})}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.ruleKey})}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(q.MaskedText,{text:a.title})}),(0,b.jsx)("td",{className:(0,G.f)(F.z,"text-ink-soft"),children:(0,H.v)(a.startedAt,c)}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsxs)(r.F,{state:"ok",children:["Resolved after ",(0,I.M)(a.startedAt,a.resolvedAt)]})})]})}));return(0,b.jsx)(D.PlainTable,{head:L,rows:d})}var O=a.i(954296),P=a.i(927262),Q=a.i(390566);let R=["Rule","Severity","Condition","State",""];function S({rules:a,owner:c}){let d=a.map(({rule:a,firing:d,hasData:e})=>{let f=P._[a.key],g=(0,I.G)({enabled:a.enabled,firing:d,hasData:e});return{key:a.key,state:a.severity,text:a.key,row:(0,b.jsxs)("tr",{className:F.C,children:[(0,b.jsxs)("td",{className:F.z,children:[(0,b.jsx)("b",{className:"font-medium",children:a.key}),(0,b.jsx)(O.Src,{kind:f.source})]}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(E.e,{severity:a.severity})}),(0,b.jsx)("td",{className:`${F.z} text-ink-soft`,children:f.condition(a.threshold)}),(0,b.jsx)("td",{className:F.z,children:(0,b.jsx)(r.F,{state:g.state,children:g.text})}),(0,b.jsx)("td",{className:F.z,children:c&&(0,b.jsx)(Q.RuleActions,{rule:a,condition:f.condition(a.threshold)})})]})}});return(0,b.jsx)(D.PlainTable,{head:R,rows:d})}async function T(){let a=await (0,g.I)(),q=new Date,r=await (0,k.I)(),[s,t,u,v,w,x]=await Promise.all([(0,h.q)(r),(0,h.I)(q),(0,h.y)(),(0,j.k)(),(0,i.e)(),(0,l.B)()]),y=n.I.filter(a=>r.has(a)).map(a=>n.Z[a].label),z=s.map(a=>({...(0,o.o)(a,w),search:[a.title,a.message].join(" ")})),A=t.map(a=>({...a,title:(0,o.o)({...a,message:"",causedBy:null},w).title})),C="owner"===a.role;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.AutoRefresh,{at:q.getTime()}),(0,b.jsx)(d.L,{crumbs:[{label:"Manage"},{label:"Alerts"}],title:"Alerts",sub:"Rules run after every collector run. Unknown data never opens or resolves an alert."}),(0,b.jsxs)(f.Tabs,{defaultValue:"firing",className:"gap-4",children:[(0,b.jsxs)(f.TabsList,{variant:"line",children:[(0,b.jsx)(f.TabsTrigger,{value:"firing",children:"Firing"}),(0,b.jsx)(f.TabsTrigger,{value:"rules",children:"Rules"}),(0,b.jsx)(f.TabsTrigger,{value:"notifications",children:"Notifications"})]}),(0,b.jsxs)(f.TabsContent,{value:"firing",className:"flex flex-col gap-4",children:[y.length>0&&(0,b.jsx)(d.M,{tone:"info",title:`Paused: ${y.join(", ")}`,action:C?(0,b.jsx)(c.default,{href:"/manage/sections",children:"Sections"}):void 0,children:"The alerts of a section that is turned off are kept but not shown, evaluated or sent until it is turned on again."}),(0,b.jsx)(d.N,{flush:!0,children:(0,b.jsx)(M,{rows:z,now:q,act:(0,p.z)(a.role)})}),A.length>0&&(0,b.jsx)(d.N,{title:"Resolved in the last 7 days",flush:!0,children:(0,b.jsx)(N,{rows:A,now:q})})]}),(0,b.jsx)(f.TabsContent,{value:"rules",children:(0,b.jsx)(d.N,{flush:!0,children:(0,b.jsx)(S,{rules:u,owner:C})})}),(0,b.jsx)(f.TabsContent,{value:"notifications",children:(0,b.jsx)(B,{views:v,owner:C,now:q,approvals:!!m.extensions.telegramCallback,langs:x})})]})]})}a.s(["default",0,T],198154)},100113,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RuleActions() from the server but RuleActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/rule-dialog.tsx","RuleActions");a.s(["RuleActions",0,b])},390566,a=>{var b=a.i(100113);a.n(b)},356435,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call TelegramApprovals() from the server but TelegramApprovals is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/alerts/telegram-approvals.tsx","TelegramApprovals");a.s(["TelegramApprovals",0,b])},674118,a=>{var b=a.i(356435);a.n(b)}],181361,function(a){a.n(a.i(198154))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_alerts_1t61z2wktki-v._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[340855,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(405174),k=a.i(114033),l=a.i(269197),m=a.i(98291),n=a.i(405050);let o=(0,n.createServerReference)("40492a79af44c862182feb4df6c0c65a584d3f0fbc",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}finally{b()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},685194,a=>{var b=a.i(187924);let c=(0,a.i(449862).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(814574);let j={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},k={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function l(a){return a.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var m=a.i(405050);let n=(0,m.createServerReference)("604ac838264545022dd18ed1949d39a6b50a678596",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},605761,a=>{var b=a.i(187924),c=a.i(36600),d=a.i(147909),e=a.i(572131),f=a.i(823292),g=a.i(771378),h=a.i(619089),i=a.i(507504),j=a.i(814574),k=a.i(368114),l=a.i(405050);let m=(0,l.createServerReference)("60f3c32020bbb3108fb38f27ae146ad46a069b1feb",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("4022d6cb09d5a7cc5bbb0268ef1be3017545801da3",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Something went wrong. Try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("408510eb7d2f351fb97444442371ead7f12d1d408e",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Something went wrong. Try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[340855,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(224766),k=a.i(92303),l=a.i(43442),m=a.i(60432),n=a.i(405050);let o=(0,n.createServerReference)("40522065208dd7a1f9ebfe9a6bb7cde19fdbffb2ec",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Something went wrong. Try again.")}finally{b()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},685194,a=>{var b=a.i(187924);let c=(0,a.i(449862).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(814574);let j={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},k={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function l(a){return a.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var m=a.i(405050);let n=(0,m.createServerReference)("607edaf3c689f59ccca3a12be1c959c7888e19ef22",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},605761,a=>{var b=a.i(187924),c=a.i(36600),d=a.i(147909),e=a.i(572131),f=a.i(823292),g=a.i(771378),h=a.i(619089),i=a.i(507504),j=a.i(814574),k=a.i(368114),l=a.i(405050);let m=(0,l.createServerReference)("60ee58e6feea3b2c9fe1464e4788b0ec162cda012a",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("408b9edcc766af51648a1d8cc1272cfb9fcb6755c2",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Something went wrong. Try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4099d583898021d87baedfcf879c5e652ccdc88a1b",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Something went wrong. Try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_apps_%5Bid%5D_1sfvku9ui1le-._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[459296,a=>{"use strict";var b=a.i(137936),c=a.i(905246),d=a.i(118558),e=a.i(600079),f=a.i(109307),g=a.i(544854),h=a.i(21096),i=a.i(77608),j=a.i(966425),k=a.i(447681);class l extends Error{kind;constructor(a,b){super(b),this.kind=a}}async function m(a){let{month:b,partial:c,now:d}=a,e=(0,i.p)();if(!e)return{ok:!1,month:b,kind:"env",error:i.S};let f=await j.N();if(!f)return{ok:!1,month:b,kind:"not-connected",error:"Google Drive isn't connected."};if(!f.refreshToken){let a="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await j.s(f.id,{status:"error",lastError:a}),{ok:!1,month:b,kind:"failed",error:a}}let h=await j.z(b),m={sheetFileId:h?.sheetFileId??null,csvFileId:h?.csvFileId??null,driveFolderId:h?.driveFolderId??null},o=h?.status??"error";await j.W(b,{status:o,attempts:(h?.attempts??0)+1,startedAt:d});let p=a=>(m={...m,...a},j.W(b,{status:o,...a})),q={fetch:a.fetch},r=()=>{if(Date.now()>a.deadline)throw new l("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},s=a=>{if(!a.ok)throw new l("failed",a.error);return a.data};try{let h=await (0,i.B)(e,f.refreshToken,q);if(!h.ok){if("revoked"===h.kind)throw await j.s(f.id,{status:"error",lastError:i.L}),new l("revoked",i.L);throw new l("failed",h.error)}"error"===f.status&&await j.s(f.id,{status:"ok",lastError:null});let o=h.accessToken;r();let t=await j.M(),u=t?.id??null;if(t){let a=s(await k.f(o,t.id,q));a.usable?a.name&&a.name!==t.name&&await j.t(t.id,a.name):u=null}if(!u){r();let a=s(await k.T(o,g.R,q)),b=a?null:s(await k.T(o,g.C,q));u=a??b??s(await k.B(o,g.R,q)),await j.t(u,b?g.C:g.R)}let v=await j.f(b,c,d);r(),m.sheetFileId||await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r();let w=await k.A(o,m.sheetFileId,g.O,q);w.ok||"missing"!==w.kind||(await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r(),w=await k.A(o,m.sheetFileId,g.O,q)),s(w),r(),s(await k.c(o,m.sheetFileId,(0,g.m)(v),q)),r();let x=(0,g.b)((0,g.E)(v)),y=s(await k.G(o,{name:(0,g.V)(b),mimeType:"application/gzip",folderId:u,content:x,fileId:m.csvFileId},q));await p({csvFileId:y.id}),await j.W(b,{status:c?"partial":"ok",sizeBytes:y.size,error:null,finishedAt:new Date});let z=c?null:await n(o,d,a.deadline,q);return{ok:!0,month:b,retention:z,message:`${(0,g.n)(b)}${c?" so far":""} saved to Google Drive.`}}catch(e){let a=e instanceof l?e:new l("failed","The backup failed. The next daily run tries again.");e instanceof l||console.error("backup failed:",e instanceof Error?e.name:"unknown");let d=c&&"partial"===o?"partial":"error";return await j.W(b,{status:d,error:a.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:b,kind:a.kind,error:a.message}}}async function n(a,b,c,d){let e=(0,g.c)(await j.e(),b),f=[];for(let h of e){if(Date.now()>c)break;let e=!0;for(let b of[h.sheetFileId,h.csvFileId])b&&((await k.$(a,b,d)).ok||(e=!1));e&&(await j.W(h.month,{status:h.status,trashedAt:b}),f.push((0,g.n)(h.month)))}return f.length?`Moved to Drive trash: ${f.join(", ")}.`:null}var o=a.i(221084),p=a.i(492665),q=a.i(312573),r=a.i(323878),s=a.i(713095);let t={requireActionMember:f.g};async function u(){return(0,e.F)("owner",async a=>{let b=(0,i.p)();if(!b)return{ok:!1,error:i.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,p.f)(),f=(0,i.C)(),{verifier:g,challenge:j}=(0,i.U)();return(await (0,c.cookies)()).set(h.a,(0,h.G)({state:f,verifier:g,memberId:a.id,exp:Date.now()+1e3*h.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:h.Y,maxAge:h.N}),{ok:!0,data:{url:(0,i.a)(b,{state:f,challenge:j,redirectUri:(0,i.I)(d)})}}},t)}async function v(){return(0,e.F)("owner",async a=>{let b=await (0,j.g)();return((0,d.revalidatePath)("/backups"),(0,d.revalidatePath)("/connections"),b)?(await (0,o.f)({kind:"ok",message:"Google Drive disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),{ok:!0,message:"Google Drive disconnected. The backups already in your Drive stay; remove Watchbell's access in your Google Account if you want."}):{ok:!1,error:"Google Drive isn't connected."}},t)}async function w(){return(0,e.F)("owner",async a=>{let b=await (0,r.C)(q.t.backupNow,a.id);if(!b.allowed)return{ok:!1,error:`Too many backups. Try again in ${(0,q.H)(b.retryAfter)}.`};let c=new Date,e=(0,g.L)(c),f=await m({month:e,partial:!0,now:c,deadline:Date.now()+45e3});return f.ok||"env"!==f.kind&&"not-connected"!==f.kind?(await (0,o.f)({kind:f.ok?"ok":"err",message:`Back up now \xb7 ${(0,g.n)(e)}`,resourceId:null,actorUserId:a.userId,...f.ok?{}:{detail:f.error.slice(0,200)}}).catch(()=>void 0),(0,d.revalidatePath)("/backups"),f.ok?{ok:!0,message:f.message}:{ok:!1,error:f.error}):{ok:!1,error:f.error}},t)}(0,s.ensureServerEntryExports)([u,v,w]),(0,b.registerServerReference)(u,"
|
|
1
|
+
module.exports=[459296,a=>{"use strict";var b=a.i(137936),c=a.i(905246),d=a.i(118558),e=a.i(600079),f=a.i(109307),g=a.i(544854),h=a.i(21096),i=a.i(77608),j=a.i(966425),k=a.i(447681);class l extends Error{kind;constructor(a,b){super(b),this.kind=a}}async function m(a){let{month:b,partial:c,now:d}=a,e=(0,i.p)();if(!e)return{ok:!1,month:b,kind:"env",error:i.S};let f=await j.N();if(!f)return{ok:!1,month:b,kind:"not-connected",error:"Google Drive isn't connected."};if(!f.refreshToken){let a="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await j.s(f.id,{status:"error",lastError:a}),{ok:!1,month:b,kind:"failed",error:a}}let h=await j.z(b),m={sheetFileId:h?.sheetFileId??null,csvFileId:h?.csvFileId??null,driveFolderId:h?.driveFolderId??null},o=h?.status??"error";await j.W(b,{status:o,attempts:(h?.attempts??0)+1,startedAt:d});let p=a=>(m={...m,...a},j.W(b,{status:o,...a})),q={fetch:a.fetch},r=()=>{if(Date.now()>a.deadline)throw new l("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},s=a=>{if(!a.ok)throw new l("failed",a.error);return a.data};try{let h=await (0,i.B)(e,f.refreshToken,q);if(!h.ok){if("revoked"===h.kind)throw await j.s(f.id,{status:"error",lastError:i.L}),new l("revoked",i.L);throw new l("failed",h.error)}"error"===f.status&&await j.s(f.id,{status:"ok",lastError:null});let o=h.accessToken;r();let t=await j.M(),u=t?.id??null;if(t){let a=s(await k.f(o,t.id,q));a.usable?a.name&&a.name!==t.name&&await j.t(t.id,a.name):u=null}if(!u){r();let a=s(await k.T(o,g.R,q)),b=a?null:s(await k.T(o,g.C,q));u=a??b??s(await k.B(o,g.R,q)),await j.t(u,b?g.C:g.R)}let v=await j.f(b,c,d);r(),m.sheetFileId||await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r();let w=await k.A(o,m.sheetFileId,g.O,q);w.ok||"missing"!==w.kind||(await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r(),w=await k.A(o,m.sheetFileId,g.O,q)),s(w),r(),s(await k.c(o,m.sheetFileId,(0,g.m)(v),q)),r();let x=(0,g.b)((0,g.E)(v)),y=s(await k.G(o,{name:(0,g.V)(b),mimeType:"application/gzip",folderId:u,content:x,fileId:m.csvFileId},q));await p({csvFileId:y.id}),await j.W(b,{status:c?"partial":"ok",sizeBytes:y.size,error:null,finishedAt:new Date});let z=c?null:await n(o,d,a.deadline,q);return{ok:!0,month:b,retention:z,message:`${(0,g.n)(b)}${c?" so far":""} saved to Google Drive.`}}catch(e){let a=e instanceof l?e:new l("failed","The backup failed. The next daily run tries again.");e instanceof l||console.error("backup failed:",e instanceof Error?e.name:"unknown");let d=c&&"partial"===o?"partial":"error";return await j.W(b,{status:d,error:a.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:b,kind:a.kind,error:a.message}}}async function n(a,b,c,d){let e=(0,g.c)(await j.e(),b),f=[];for(let h of e){if(Date.now()>c)break;let e=!0;for(let b of[h.sheetFileId,h.csvFileId])b&&((await k.$(a,b,d)).ok||(e=!1));e&&(await j.W(h.month,{status:h.status,trashedAt:b}),f.push((0,g.n)(h.month)))}return f.length?`Moved to Drive trash: ${f.join(", ")}.`:null}var o=a.i(221084),p=a.i(492665),q=a.i(312573),r=a.i(323878),s=a.i(713095);let t={requireActionMember:f.g};async function u(){return(0,e.F)("owner",async a=>{let b=(0,i.p)();if(!b)return{ok:!1,error:i.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,p.f)(),f=(0,i.C)(),{verifier:g,challenge:j}=(0,i.U)();return(await (0,c.cookies)()).set(h.a,(0,h.G)({state:f,verifier:g,memberId:a.id,exp:Date.now()+1e3*h.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:h.Y,maxAge:h.N}),{ok:!0,data:{url:(0,i.a)(b,{state:f,challenge:j,redirectUri:(0,i.I)(d)})}}},t)}async function v(){return(0,e.F)("owner",async a=>{let b=await (0,j.g)();return((0,d.revalidatePath)("/backups"),(0,d.revalidatePath)("/connections"),b)?(await (0,o.f)({kind:"ok",message:"Google Drive disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),{ok:!0,message:"Google Drive disconnected. The backups already in your Drive stay; remove Watchbell's access in your Google Account if you want."}):{ok:!1,error:"Google Drive isn't connected."}},t)}async function w(){return(0,e.F)("owner",async a=>{let b=await (0,r.C)(q.t.backupNow,a.id);if(!b.allowed)return{ok:!1,error:`Too many backups. Try again in ${(0,q.H)(b.retryAfter)}.`};let c=new Date,e=(0,g.L)(c),f=await m({month:e,partial:!0,now:c,deadline:Date.now()+45e3});return f.ok||"env"!==f.kind&&"not-connected"!==f.kind?(await (0,o.f)({kind:f.ok?"ok":"err",message:`Back up now \xb7 ${(0,g.n)(e)}`,resourceId:null,actorUserId:a.userId,...f.ok?{}:{detail:f.error.slice(0,200)}}).catch(()=>void 0),(0,d.revalidatePath)("/backups"),f.ok?{ok:!0,message:f.message}:{ok:!1,error:f.error}):{ok:!1,error:f.error}},t)}(0,s.ensureServerEntryExports)([u,v,w]),(0,b.registerServerReference)(u,"000f79190f543f603cbe0742a4eefc932fd6510c96",null),(0,b.registerServerReference)(v,"001480233435117c8e7b88e080de1f41c43890dceb",null),(0,b.registerServerReference)(w,"009adc24952bddb2c1fbc1e35807db0e21bf29f915",null),a.s(["p",0,w,"C",0,v,"A",0,u],459296)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_backups_actions_ts_1vpytsdh0wc1f._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[43963,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("
|
|
1
|
+
module.exports=[43963,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("009adc24952bddb2c1fbc1e35807db0e21bf29f915",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("001480233435117c8e7b88e080de1f41c43890dceb",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("000f79190f543f603cbe0742a4eefc932fd6510c96",g.callServer,void 0,g.findSourceMapURL,"startDriveConnect");a.s(["BackUpNowButton",0,function({monthLabel:a,disabled:e}){let[g,i]=(0,c.useTransition)(),j=(0,c.useRef)(!1);return(0,b.jsx)(f.K,{onClick:()=>{if(j.current)return;j.current=!0;let b=d.c.loading(`Backing up ${a} so far. It will appear here in a few seconds.`);i(async()=>{try{let a=await h();a.ok?d.c.success(a.message??"Saved to Google Drive.",{id:b}):d.c.error(a.error,{id:b})}catch{d.c.error("Something went wrong. Try again.",{id:b})}finally{j.current=!1}})},disabled:g||e,children:g?"Backing up…":"Back up now"})},"DisconnectDriveButton",0,function(){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Disconnect"}),title:"Disconnect Google Drive?",body:"The console forgets its access and stops the monthly backups. The backups already in your Drive stay where they are.",cta:"Disconnect",danger:!0,onConfirm:async()=>{let a=await i();return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})},"DriveConnectButton",0,function({reconnect:a=!1,quiet:c=!1,size:d="md"}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:d,variant:c?"secondary":"primary",children:c?"Reconnect":a?"Reconnect Google Drive":"Connect Google Drive"}),title:a?"Reconnect Google Drive":"Connect Google Drive",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, create, and delete only the specific Google Drive files you use with this app."}),(0,b.jsxs)("ul",{className:"list-disc space-y-0.5 pl-5 text-ink-soft",children:[(0,b.jsx)("li",{children:"The console can't see any of your other files."}),(0,b.jsx)("li",{children:"It uses one folder: the backups folder it made before, or a new one named Watchbell backups."}),(0,b.jsx)("li",{children:"You can remove access any time in your Google Account settings."})]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await j();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Something went wrong. Try again.":a.error}}})}],43963)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_backups_drive-buttons_tsx_00cku5r_z3jkg._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[927079,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(803681),e=a.i(75148),f=a.i(686251),g=a.i(791444),h=a.i(109307),i=a.i(544854),j=a.i(21096),k=a.i(447681),l=a.i(77608),m=a.i(966425),n=a.i(139138),o=a.i(564371),p=a.i(846590),q=a.i(993835);let r="text-[20px] font-semibold tracking-[-0.02em]",s="mt-1 text-[12.5px] text-ink-soft";async function t({searchParams:a}){let u=await (0,h.B)("owner");if(!u.ok)return(0,b.jsx)(e.f,{role:u.member.role});let v=new Date,[{drive:w},x,y,z]=await Promise.all([a,(0,m.r)(),(0,m.e)(),(0,m.M)()]),A=(0,o.O)(null!==(0,l.p)(),x),B=(0,o.$)(y),C=(0,i.o)(y,v),D=(0,j.F)(w)?j.L[w]:null,E="ok"===A.kind||"problem"===A.kind;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.L,{crumbs:[{label:"
|
|
1
|
+
module.exports=[927079,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(803681),e=a.i(75148),f=a.i(686251),g=a.i(791444),h=a.i(109307),i=a.i(544854),j=a.i(21096),k=a.i(447681),l=a.i(77608),m=a.i(966425),n=a.i(139138),o=a.i(564371),p=a.i(846590),q=a.i(993835);let r="text-[20px] font-semibold tracking-[-0.02em]",s="mt-1 text-[12.5px] text-ink-soft";async function t({searchParams:a}){let u=await (0,h.B)("owner");if(!u.ok)return(0,b.jsx)(e.f,{role:u.member.role});let v=new Date,[{drive:w},x,y,z]=await Promise.all([a,(0,m.r)(),(0,m.e)(),(0,m.M)()]),A=(0,o.O)(null!==(0,l.p)(),x),B=(0,o.$)(y),C=(0,i.o)(y,v),D=(0,j.F)(w)?j.L[w]:null,E="ok"===A.kind||"problem"===A.kind;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.L,{crumbs:[{label:"Manage"},{label:"Backups"}],title:"Backups",sub:"A summary of every month is saved to your Google Drive automatically. Backups older than 3 months are moved to Drive trash, and Drive deletes them for good 30 days later.",actions:(0,b.jsx)(p.BackUpNowButton,{monthLabel:(0,i.n)((0,i.L)(v)).split(" ")[0],disabled:!E})}),D&&(0,b.jsx)(d.M,{tone:"ok"===D.tone?"info":"danger",title:D.text}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:[(0,b.jsx)(d.N,{title:"Google Drive",children:(0,b.jsx)(q.f,{state:A,folderName:(0,i.A)(z)})}),(0,b.jsxs)(d.N,{title:"Next backup",children:[(0,b.jsx)("span",{className:r,children:C.date??C.runsOn}),(0,b.jsxs)("p",{className:s,children:["Covers ",C.covers," · ",C.at,", with the daily job"]})]}),(0,b.jsxs)(d.N,{title:"Keep",children:[(0,b.jsx)("span",{className:r,children:o.U}),(0,b.jsx)("p",{className:s,children:"Then moved to trash"})]}),(0,b.jsxs)(d.N,{title:"Drive access",children:[(0,b.jsx)("span",{className:(0,n.f)(r,"font-mono text-[18px]"),children:"drive.file"}),(0,b.jsx)("p",{className:s,children:"Can't see your other files"})]})]}),(0,b.jsx)(d.N,{title:"Monthly backups",flush:!0,meta:z&&E?(0,b.jsxs)("a",{href:(0,k.V)(z.id),target:"_blank",rel:"noopener",className:"inline-flex items-center gap-1",children:["Open folder ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}):void 0,children:0===B.length?(0,b.jsx)("div",{className:"border-t border-line",children:(0,b.jsx)(d.k,{title:"No backups yet",children:E?"The first one is written on the 1st, or press Back up now.":"Connect Google Drive to start."})}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:g.o,children:[(0,b.jsx)(g.U,{head:["Month","Files","Size","Created","Status",""]}),(0,b.jsx)("tbody",{children:B.map(a=>(0,b.jsxs)("tr",{className:"hover:bg-hover",children:[(0,b.jsx)("td",{className:g.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.label})}),(0,b.jsxs)("td",{className:g.z,children:[(0,b.jsx)("span",{className:"mr-1.5 rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Summary sheet"}),(0,b.jsx)("span",{className:"rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Raw data .csv.gz"})]}),(0,b.jsx)("td",{className:`${g.z} font-mono text-[12.5px]`,children:a.size}),(0,b.jsx)("td",{className:`${g.z} text-ink-soft`,children:a.created}),(0,b.jsxs)("td",{className:(0,n.f)(g.z,g.M),children:[(0,b.jsx)(f.F,{state:a.state,children:a.status}),a.note&&(0,b.jsx)("div",{className:"mt-0.5 text-[12px] text-ink-soft",children:a.note})]}),(0,b.jsx)("td",{className:g.z,children:(0,b.jsxs)("div",{className:"flex gap-1.5",children:[a.sheet&&(0,b.jsx)("a",{className:(0,d.R)({size:"sm"}),href:a.sheet,target:"_blank",rel:"noopener",children:"Open in Drive"}),a.download&&(0,b.jsx)("a",{className:(0,d.R)({size:"sm"}),href:a.download,target:"_blank",rel:"noopener",children:"Download"})]})})]},a.month))})]})})}),(0,b.jsxs)(d.N,{title:"What's in each backup",children:[o.c.map(([a,c])=>(0,b.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:a}),(0,b.jsx)("span",{className:"text-ink-soft",children:c})]},a)),(0,b.jsx)("p",{className:"pt-2.5 text-[12.5px] text-ink-soft",children:"Databases appear by their alias (db-a, db-b…) and emails are hidden, as everywhere in the console."})]})]})}a.s(["default",0,t,"maxDuration",0,60])},26924,function(a){a.n(a.i(927079))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_backups_page_tsx_0o082iagq_14b._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[317422,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(395936),e=a.i(803681),f=a.i(959581),g=a.i(686251),h=a.i(791444);let i="16 Oct 2026",j="11 Oct 2026",k=[["Vercel Hobby","https://vercel.com/docs/functions/usage-and-pricing"],["Vercel Web Analytics","https://vercel.com/docs/analytics/limits-and-pricing"],["Supabase Free","https://supabase.com/pricing"],["Neon Free","https://neon.com/docs/introduction/plans"],["Firebase Spark (Firestore)","https://firebase.google.com/docs/firestore/quotas"],["Cloudflare D1","https://developers.cloudflare.com/d1/platform/limits/"],["Cloudflare Workers","https://developers.cloudflare.com/workers/platform/pricing/"],["Upstash Redis","https://upstash.com/docs/redis/overall/pricing"],["Upstash QStash","https://upstash.com/docs/qstash/overall/pricing"],["Turso","https://turso.tech/pricing"],["cron-job.org","https://cron-job.org/en/faq/"]],l=[{name:"Supabase",type:"Postgres + auth, storage, realtime",limits:"500 MB per DB, 2 active projects per user (paused ones don't count), 5 GB egress + 5 GB cached egress, 1 GB files, 50k MAU",sleep:"Pauses after 7 days without activity",card:"No",asia:"Singapore, Tokyo, Seoul",drizzle:"Yes",monitor:"Status, health, API traffic, pause and restore",adapter:"built",pick:"Full backend",url:"https://supabase.com/pricing"},{name:"Neon",type:"Postgres (serverless)",limits:"1 GB per project (20 GB total), 100 CU-hours per project a month, 100 projects, 5 GB egress per project a month",sleep:"Scales to zero after 5 min, cold start on next query",card:"No",asia:"Singapore",drizzle:"Yes",monitor:"Compute state, CU-hours, size, wake",adapter:"built",pick:"Best Postgres for Vercel",url:"https://neon.com/pricing"},{name:"Firebase Firestore",type:"Document + realtime",limits:"1 GiB, 50k reads, 20k writes, 20k deletes a day (reset at midnight Pacific), 10 GiB egress a month",sleep:"Never sleeps, stops at the daily cap",card:"No",asia:"Jakarta, Singapore, Tokyo",drizzle:"No",monitor:"Health check, Auth users, daily ops (needs test)",adapter:"built",pick:"Realtime documents",url:"https://firebase.google.com/pricing"},{name:"Turso",type:"SQLite (libSQL)",limits:"100 DBs, 5 GB, 500M rows read and 10M rows written a month, 3 GB syncs",sleep:"No pausing documented",card:"No",asia:"Unverified (US and EU listed)",drizzle:"Yes",monitor:"Databases, rows read and written, storage (per organization)",adapter:"built",pick:"Most generous SQL",url:"https://turso.tech/pricing"},{name:"Upstash Redis",type:"Key-value",limits:"256 MB data (the card says 250 MB), 500k commands a month, 10 GB bandwidth, 10k commands/s; 1 free DB (its FAQ says 10)",sleep:"No pausing documented",card:"No",asia:"Unverified",drizzle:"n/a",monitor:"Databases, commands this month, data size, bandwidth",adapter:"built",pick:"Cache, rate limits, queues",url:"https://upstash.com/pricing/redis"},{name:"Cloudflare D1",type:"SQLite",limits:"10 DBs, 500 MB each, 5 GB per account, 5M rows read and 100k rows written a day",sleep:"Never sleeps, errors until 00:00 UTC at the cap",card:"No",asia:"Automatic placement",drizzle:"Only via HTTP, awkward from Vercel",monitor:"Size; rows read and written today (needs Account Analytics read)",adapter:"built",pick:"Apps on Cloudflare Workers",url:"https://developers.cloudflare.com/d1/platform/pricing/"},{name:"TiDB Cloud Starter",type:"MySQL-compatible",limits:"5 instances, 5 GiB rows + 5 GiB columnar, 50M request units a month each",sleep:"No pausing, rejects connections at the cap",card:"No",asia:"Unverified",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"Best free MySQL",url:"https://www.pingcap.com/pricing/",checked:j},{name:"MongoDB Atlas",type:"Document",limits:"512 MB, 100 ops/s, 1 free cluster per project",sleep:"Pauses after 30 days with no connections",card:"Unverified",asia:"Region support unverified",drizzle:"No",monitor:"Free cluster metrics unverified",adapter:"none",pick:"Standard document DB",url:"https://www.mongodb.com/pricing",checked:j},{name:"Prisma Postgres",type:"Postgres",limits:"50 DBs, 1 GB, 200k operations a month",sleep:"Unverified",card:"No",asia:"Singapore, Tokyo",drizzle:"Yes",monitor:"No usage API",adapter:"none",pick:"Small apps (ops cap is tight)",url:"https://www.prisma.io/pricing",checked:j},{name:"Convex",type:"Reactive TypeScript backend",limits:"1M function calls, 0.5 GB DB, 1 GB egress",sleep:"No pausing, writes fail at the cap",card:"Unverified",asia:"Sydney only",drizzle:"No",monitor:"No usage API",adapter:"none",pick:"Realtime apps",url:"https://www.convex.dev/pricing",checked:j},{name:"Aiven",type:"Postgres, MySQL, Valkey",limits:"Postgres: 1 GB storage, 1 GB RAM, 1 CPU",sleep:"May power off when unused (emails first)",card:"No",asia:"Region picked for you",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"A real small VM",url:"https://aiven.io/pricing",checked:j},{name:"Nile",type:"Postgres (multi-tenant)",limits:"1 GB, 50M query tokens, 500 connections",sleep:"Never pauses",card:"Unverified",asia:"Unverified",drizzle:"Unverified",monitor:"API unverified",adapter:"none",pick:"B2B SaaS tenants",url:"https://www.thenile.dev/pricing",checked:j}],m=[["CockroachDB","Free Basic plan ended September 2026. Now a 30-day trial."],["PlanetScale","No free plan. Cheapest is $5 a month."],["Xata","14-day trial only (self-hosting is free)."],["Fauna","Shut down in 2025."],["Render Postgres","Free DB expires after 30 days."],["Railway","$5 trial, then $1 a month in credit."],["Appwrite Cloud","Free, but pauses after 7 days without console activity and deletes 90 days later."],["Couchbase Capella","Turns off after 72 h idle and deletes after 30 days."],["Redis Cloud","Free, but only 30 MB."]],n=[["Relational SQL","Neon","Turso or TiDB"],["Document","Firestore","MongoDB Atlas"],["Cache and queues","Upstash Redis","none needed"],["Realtime backend","Supabase","Convex"]];var o=a.i(109307),p=a.i(139138),q=a.i(154756),r=a.i(954296),s=a.i(532620),t=a.i(367247),u=a.i(179806);let v={metrics:{kind:"api",text:"Metrics API"},api:{kind:"api",text:"API"},monitoring:{kind:"api",text:"Cloud Monitoring"},graphql:{kind:"api",text:"GraphQL analytics"}};async function w(){let a=new Date,[c,f,i,j,k,l,m]=await Promise.all([(0,s.R)("supabase_project"),(0,s.R)("neon_project"),(0,s.R)("firestore"),(0,s.R)("turso_database"),(0,s.R)("upstash_redis"),(0,s.R)("d1_database"),(0,s.e)()]);if(![c,f,i,j,k,l].some(a=>a.length))return null;let n=await (0,t.d)(c.map(a=>a.id),a),o=(0,u.Y)({supabase:c,neon:f,firestore:i,compute:n,turso:j,upstash:k,d1:l},a,m);return(0,b.jsx)(e.N,{title:"Your databases",meta:"Highest share of the free plan used",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Database","Provider","Most used","Source","As of","Other"]}),(0,b.jsx)("tbody",{children:o.map(a=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(q.F,{kind:"Firestore"===a.provider?"fs":"db",name:a.name,dbId:a.id})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(d.default,{href:a.href,className:"text-brand hover:underline",children:a.provider})}),(0,b.jsx)("td",{className:h.z,children:a.main?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-[13px]",children:a.main.label})," ",(0,b.jsxs)("span",{className:"font-mono",children:[Math.round(a.main.pct??0),"%"]})," ",(0,b.jsx)("span",{className:"text-ink-faint",children:a.main.text}),(0,b.jsx)(e.e,{pct:a.main.pct??0,tone:(a.main.pct??0)>=95?"err":(a.main.pct??0)>=80?"warn":void 0})]}):(0,b.jsx)(g.F,{state:"unknown",children:"Not read"})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(r.Src,{kind:v[a.source].kind,children:v[a.source].text})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,"text-ink-soft"),children:a.asOf??"—"}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[12.5px] text-ink-soft"),children:[a.extra.length>0&&(0,b.jsx)("div",{children:a.extra.join(" · ")}),a.note&&(0,b.jsx)("div",{className:"text-[12px] text-ink-faint",children:a.note})]})]},a.id))})]})})})}async function x(){let a="owner"===(await (0,o.I)()).role,j="text-[12px] text-ink-faint";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:"Databases"},{label:"Free databases"}],title:"Free databases",sub:`Hosted databases you can use for free today (checked ${i} against official pricing pages), and what the console can monitor for each.`}),(0,b.jsx)(w,{}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:n.map(([a,c,d])=>(0,b.jsxs)(e.N,{title:a,children:[(0,b.jsx)("span",{className:"text-[20px] font-semibold tracking-[-0.02em]",children:c}),(0,b.jsxs)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:["Also good: ",d]})]},a))}),(0,b.jsx)(e.N,{flush:!0,children:(0,b.jsx)(f.ListFilter,{placeholder:"Filter by name or type",states:[["yes","Console can monitor"],["no","Pricing link only"]],head:["Provider","Type","Free limits","Sleeps or expires","Fit","Console can monitor",""],rows:l.map(f=>({key:f.name,state:"none"!==f.adapter?"yes":"no",text:[f.name,f.type,f.pick,f.limits].join(" "),row:(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsxs)("td",{className:h.z,children:[(0,b.jsx)("b",{className:"font-medium",children:f.name}),(0,b.jsx)("div",{className:j,children:f.pick})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.type}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:[f.limits,f.checked&&(0,b.jsxs)("div",{className:j,children:["checked ",f.checked]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.sleep}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[13px]"),children:[(0,b.jsxs)("div",{children:["Card: ",f.card]}),(0,b.jsxs)("div",{children:["Asia: ",f.asia]}),(0,b.jsxs)("div",{children:["Drizzle: ",f.drizzle]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:(0,b.jsx)(g.F,{state:"none"!==f.adapter?"ok":"off",children:f.monitor})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:["built"===f.adapter&&a&&(0,b.jsx)(d.default,{href:"/connections",className:(0,e.R)({size:"sm"}),children:"Connect"}),"built"===f.adapter&&!a&&(0,b.jsx)(e.E,{children:"Supported"}),"planned"===f.adapter&&(0,b.jsx)(e.E,{children:"Adapter planned"}),"built"!==f.adapter&&(0,b.jsxs)("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:(0,e.R)({size:"sm"}),children:["Pricing ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})]})})]})}))})}),(0,b.jsx)(e.N,{title:`As checked on ${i}`,meta:"Official pages",children:(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:k.map(([a,c],d)=>(0,b.jsxs)("span",{children:[d>0&&" · ",(0,b.jsx)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",children:a})]},a))})}),(0,b.jsx)(e.N,{title:"No longer free, or not worth it",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Provider","Why"]}),(0,b.jsx)("tbody",{children:m.map(([a,c])=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)("b",{className:"font-medium",children:a})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:c})]},a))})]})})})]})}a.s(["default",0,x],317422)},526903,function(a){a.n(a.i(317422))}];
|
|
1
|
+
module.exports=[317422,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(395936),e=a.i(803681),f=a.i(959581),g=a.i(686251),h=a.i(791444);let i="16 Oct 2026",j="11 Oct 2026",k=[["Vercel Hobby","https://vercel.com/docs/functions/usage-and-pricing"],["Vercel Web Analytics","https://vercel.com/docs/analytics/limits-and-pricing"],["Supabase Free","https://supabase.com/pricing"],["Neon Free","https://neon.com/docs/introduction/plans"],["Firebase Spark (Firestore)","https://firebase.google.com/docs/firestore/quotas"],["Cloudflare D1","https://developers.cloudflare.com/d1/platform/limits/"],["Cloudflare Workers","https://developers.cloudflare.com/workers/platform/pricing/"],["Upstash Redis","https://upstash.com/docs/redis/overall/pricing"],["Upstash QStash","https://upstash.com/docs/qstash/overall/pricing"],["Turso","https://turso.tech/pricing"],["cron-job.org","https://cron-job.org/en/faq/"]],l=[{name:"Supabase",type:"Postgres + auth, storage, realtime",limits:"500 MB per DB, 2 active projects per user (paused ones don't count), 5 GB egress + 5 GB cached egress, 1 GB files, 50k MAU",sleep:"Pauses after 7 days without activity",card:"No",asia:"Singapore, Tokyo, Seoul",drizzle:"Yes",monitor:"Status, health, API traffic, pause and restore",adapter:"built",pick:"Full backend",url:"https://supabase.com/pricing"},{name:"Neon",type:"Postgres (serverless)",limits:"1 GB per project (20 GB total), 100 CU-hours per project a month, 100 projects, 5 GB egress per project a month",sleep:"Scales to zero after 5 min, cold start on next query",card:"No",asia:"Singapore",drizzle:"Yes",monitor:"Compute state, CU-hours, size, wake",adapter:"built",pick:"Best Postgres for Vercel",url:"https://neon.com/pricing"},{name:"Firebase Firestore",type:"Document + realtime",limits:"1 GiB, 50k reads, 20k writes, 20k deletes a day (reset at midnight Pacific), 10 GiB egress a month",sleep:"Never sleeps, stops at the daily cap",card:"No",asia:"Jakarta, Singapore, Tokyo",drizzle:"No",monitor:"Health check, Auth users, daily ops (needs test)",adapter:"built",pick:"Realtime documents",url:"https://firebase.google.com/pricing"},{name:"Turso",type:"SQLite (libSQL)",limits:"100 DBs, 5 GB, 500M rows read and 10M rows written a month, 3 GB syncs",sleep:"No pausing documented",card:"No",asia:"Unverified (US and EU listed)",drizzle:"Yes",monitor:"Databases, rows read and written, storage (per organization)",adapter:"built",pick:"Most generous SQL",url:"https://turso.tech/pricing"},{name:"Upstash Redis",type:"Key-value",limits:"256 MB data (the card says 250 MB), 500k commands a month, 10 GB bandwidth, 10k commands/s; 1 free DB (its FAQ says 10)",sleep:"No pausing documented",card:"No",asia:"Unverified",drizzle:"n/a",monitor:"Databases, commands this month, data size, bandwidth",adapter:"built",pick:"Cache, rate limits, queues",url:"https://upstash.com/pricing/redis"},{name:"Cloudflare D1",type:"SQLite",limits:"10 DBs, 500 MB each, 5 GB per account, 5M rows read and 100k rows written a day",sleep:"Never sleeps, errors until 00:00 UTC at the cap",card:"No",asia:"Automatic placement",drizzle:"Only via HTTP, awkward from Vercel",monitor:"Size; rows read and written today (needs Account Analytics read)",adapter:"built",pick:"Apps on Cloudflare Workers",url:"https://developers.cloudflare.com/d1/platform/pricing/"},{name:"TiDB Cloud Starter",type:"MySQL-compatible",limits:"5 instances, 5 GiB rows + 5 GiB columnar, 50M request units a month each",sleep:"No pausing, rejects connections at the cap",card:"No",asia:"Unverified",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"Best free MySQL",url:"https://www.pingcap.com/pricing/",checked:j},{name:"MongoDB Atlas",type:"Document",limits:"512 MB, 100 ops/s, 1 free cluster per project",sleep:"Pauses after 30 days with no connections",card:"Unverified",asia:"Region support unverified",drizzle:"No",monitor:"Free cluster metrics unverified",adapter:"none",pick:"Standard document DB",url:"https://www.mongodb.com/pricing",checked:j},{name:"Prisma Postgres",type:"Postgres",limits:"50 DBs, 1 GB, 200k operations a month",sleep:"Unverified",card:"No",asia:"Singapore, Tokyo",drizzle:"Yes",monitor:"No usage API",adapter:"none",pick:"Small apps (ops cap is tight)",url:"https://www.prisma.io/pricing",checked:j},{name:"Convex",type:"Reactive TypeScript backend",limits:"1M function calls, 0.5 GB DB, 1 GB egress",sleep:"No pausing, writes fail at the cap",card:"Unverified",asia:"Sydney only",drizzle:"No",monitor:"No usage API",adapter:"none",pick:"Realtime apps",url:"https://www.convex.dev/pricing",checked:j},{name:"Aiven",type:"Postgres, MySQL, Valkey",limits:"Postgres: 1 GB storage, 1 GB RAM, 1 CPU",sleep:"May power off when unused (emails first)",card:"No",asia:"Region picked for you",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"A real small VM",url:"https://aiven.io/pricing",checked:j},{name:"Nile",type:"Postgres (multi-tenant)",limits:"1 GB, 50M query tokens, 500 connections",sleep:"Never pauses",card:"Unverified",asia:"Unverified",drizzle:"Unverified",monitor:"API unverified",adapter:"none",pick:"B2B SaaS tenants",url:"https://www.thenile.dev/pricing",checked:j}],m=[["CockroachDB","Free Basic plan ended September 2026. Now a 30-day trial."],["PlanetScale","No free plan. Cheapest is $5 a month."],["Xata","14-day trial only (self-hosting is free)."],["Fauna","Shut down in 2025."],["Render Postgres","Free DB expires after 30 days."],["Railway","$5 trial, then $1 a month in credit."],["Appwrite Cloud","Free, but pauses after 7 days without console activity and deletes 90 days later."],["Couchbase Capella","Turns off after 72 h idle and deletes after 30 days."],["Redis Cloud","Free, but only 30 MB."]],n=[["Relational SQL","Neon","Turso or TiDB"],["Document","Firestore","MongoDB Atlas"],["Cache and queues","Upstash Redis","none needed"],["Realtime backend","Supabase","Convex"]];var o=a.i(109307),p=a.i(139138),q=a.i(154756),r=a.i(954296),s=a.i(532620),t=a.i(367247),u=a.i(179806);let v={metrics:{kind:"api",text:"Metrics API"},api:{kind:"api",text:"API"},monitoring:{kind:"api",text:"Cloud Monitoring"},graphql:{kind:"api",text:"GraphQL analytics"}};async function w(){let a=new Date,[c,f,i,j,k,l,m]=await Promise.all([(0,s.R)("supabase_project"),(0,s.R)("neon_project"),(0,s.R)("firestore"),(0,s.R)("turso_database"),(0,s.R)("upstash_redis"),(0,s.R)("d1_database"),(0,s.e)()]);if(![c,f,i,j,k,l].some(a=>a.length))return null;let n=await (0,t.d)(c.map(a=>a.id),a),o=(0,u.Y)({supabase:c,neon:f,firestore:i,compute:n,turso:j,upstash:k,d1:l},a,m);return(0,b.jsx)(e.N,{title:"Your databases",meta:"Highest share of the free plan used",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Database","Provider","Most used","Source","As of","Other"]}),(0,b.jsx)("tbody",{children:o.map(a=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(q.F,{kind:"Firestore"===a.provider?"fs":"db",name:a.name,dbId:a.id})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(d.default,{href:a.href,className:"text-brand hover:underline",children:a.provider})}),(0,b.jsx)("td",{className:h.z,children:a.main?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-[13px]",children:a.main.label})," ",(0,b.jsxs)("span",{className:"font-mono",children:[Math.round(a.main.pct??0),"%"]})," ",(0,b.jsx)("span",{className:"text-ink-faint",children:a.main.text}),(0,b.jsx)(e.e,{pct:a.main.pct??0,tone:(a.main.pct??0)>=95?"err":(a.main.pct??0)>=80?"warn":void 0})]}):(0,b.jsx)(g.F,{state:"unknown",children:"Not read"})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(r.Src,{kind:v[a.source].kind,children:v[a.source].text})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,"text-ink-soft"),children:a.asOf??"—"}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[12.5px] text-ink-soft"),children:[a.extra.length>0&&(0,b.jsx)("div",{children:a.extra.join(" · ")}),a.note&&(0,b.jsx)("div",{className:"text-[12px] text-ink-faint",children:a.note})]})]},a.id))})]})})})}async function x(){let a="owner"===(await (0,o.I)()).role,j="text-[12px] text-ink-faint";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:"Database"},{label:"Free databases"}],title:"Free databases",sub:`Hosted databases you can use for free today (checked ${i} against official pricing pages), and what the console can monitor for each.`}),(0,b.jsx)(w,{}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:n.map(([a,c,d])=>(0,b.jsxs)(e.N,{title:a,children:[(0,b.jsx)("span",{className:"text-[20px] font-semibold tracking-[-0.02em]",children:c}),(0,b.jsxs)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:["Also good: ",d]})]},a))}),(0,b.jsx)(e.N,{flush:!0,children:(0,b.jsx)(f.ListFilter,{placeholder:"Filter by name or type",states:[["yes","Console can monitor"],["no","Pricing link only"]],head:["Provider","Type","Free limits","Sleeps or expires","Fit","Console can monitor",""],rows:l.map(f=>({key:f.name,state:"none"!==f.adapter?"yes":"no",text:[f.name,f.type,f.pick,f.limits].join(" "),row:(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsxs)("td",{className:h.z,children:[(0,b.jsx)("b",{className:"font-medium",children:f.name}),(0,b.jsx)("div",{className:j,children:f.pick})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.type}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:[f.limits,f.checked&&(0,b.jsxs)("div",{className:j,children:["checked ",f.checked]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.sleep}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[13px]"),children:[(0,b.jsxs)("div",{children:["Card: ",f.card]}),(0,b.jsxs)("div",{children:["Asia: ",f.asia]}),(0,b.jsxs)("div",{children:["Drizzle: ",f.drizzle]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:(0,b.jsx)(g.F,{state:"none"!==f.adapter?"ok":"off",children:f.monitor})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:["built"===f.adapter&&a&&(0,b.jsx)(d.default,{href:"/connections",className:(0,e.R)({size:"sm"}),children:"Connect"}),"built"===f.adapter&&!a&&(0,b.jsx)(e.E,{children:"Supported"}),"planned"===f.adapter&&(0,b.jsx)(e.E,{children:"Adapter planned"}),"built"!==f.adapter&&(0,b.jsxs)("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:(0,e.R)({size:"sm"}),children:["Pricing ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})]})})]})}))})}),(0,b.jsx)(e.N,{title:`As checked on ${i}`,meta:"Official pages",children:(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:k.map(([a,c],d)=>(0,b.jsxs)("span",{children:[d>0&&" · ",(0,b.jsx)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",children:a})]},a))})}),(0,b.jsx)(e.N,{title:"No longer free, or not worth it",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Provider","Why"]}),(0,b.jsx)("tbody",{children:m.map(([a,c])=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)("b",{className:"font-medium",children:a})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:c})]},a))})]})})})]})}a.s(["default",0,x],317422)},526903,function(a){a.n(a.i(317422))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_catalog_page_tsx_1u2_-bv4yi5oo._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[[863333,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RemoveAccountButton() from the server but RemoveAccountButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/account-actions.tsx","RemoveAccountButton"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RetestButton() from the server but RetestButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/account-actions.tsx","RetestButton");a.s(["RemoveAccountButton",0,c,"RetestButton",0,d])},207179,a=>{var b=a.i(863333);a.n(b)},273981,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call GithubSyncButton() from the server but GithubSyncButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/github-sync-button.tsx","GithubSyncButton");a.s(["GithubSyncButton",0,b])},412159,a=>{var b=a.i(273981);a.n(b)},157372,a=>{var b=a.i(907997),c=a.i(530385),d=a.i(93321),e=a.i(395936),f=a.i(803681),g=a.i(75148),h=a.i(548734),i=a.i(837137),j=a.i(109068),k=a.i(109307),l=a.i(544854),m=a.i(77608),n=a.i(462820),o=a.i(358179),p=a.i(966425),q=a.i(944571),r=a.i(322145),s=a.i(492665),t=a.i(371289),u=a.i(686921),v=a.i(45468),w=a.i(245710),x=a.i(646322),y=a.i(564371),z=a.i(160147);let A=["hosting","database","devops"].map(a=>({id:a,title:z.Z[a].label}));var B=a.i(556987),C=a.i(993835),D=a.i(362990),E=a.i(154756),F=a.i(686251),G=a.i(207179),H=a.i(801168),I=a.i(412159),J=a.i(532380);let K={ok:"ok",off:"warn",faint:"off"};function L({hint:a}){return(0,b.jsxs)("div",{className:`mt-0.5 flex items-start gap-1.5 text-[12px] ${"faint"===a.tone?"text-ink-faint":""}`,children:[(0,b.jsx)("span",{className:"mt-px",children:(0,b.jsx)(F.Z,{state:K[a.tone],size:14})}),(0,b.jsx)("span",{children:a.text})]})}function M({m:a}){return a?"repos"in a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.repos}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" repos · ",a.linked," linked"]})]}):0===a.total?(0,b.jsx)("span",{className:"text-ink-faint",children:"—"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.on}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" of ",a.total]}),a.fresh>0&&(0,b.jsxs)("span",{className:"ml-1.5 rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:[a.fresh," new"]})]}):(0,b.jsx)("span",{className:"text-ink-faint",children:"—"})}function N({term:a,children:c}){return(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("dt",{className:"text-[12px] text-ink-faint",children:a}),(0,b.jsx)("dd",{className:"text-[13px]",children:c})]})}let O="px-[18px] pb-1 pt-4 text-[13px] font-medium text-ink-soft";function P({provider:a,accounts:c,demo:d}){let e=u.m[a],f=e.multiAccount||0===c.length;return(0,b.jsxs)(b.Fragment,{children:[c.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h3",{className:O,children:1===c.length?"Account":`Accounts (${c.length})`}),(0,b.jsx)("ul",{className:"border-b border-line",children:c.map(c=>{let f=`${e.name} \xb7 ${(0,B.G)(c.label)}`;return(0,b.jsxs)("li",{className:"border-t border-line px-[18px] py-3 first:border-t-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(E.c,{name:c.label}),(0,b.jsx)("span",{className:"ml-auto",children:c.problem?(0,b.jsx)(F.F,{state:"err",children:(0,B.G)(c.problem)}):(0,b.jsx)(F.F,{state:"ok",children:d?"Demo account":"Connected"})})]}),(0,b.jsxs)("dl",{className:"mt-2 grid grid-cols-2 gap-x-4 gap-y-2 max-[520px]:grid-cols-1",children:[(0,b.jsx)(N,{term:"Credential",children:c.credentialKind}),(0,b.jsx)(N,{term:"Expires",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.expires})}),(0,b.jsxs)(N,{term:"Access",children:[(0,b.jsx)("span",{className:"text-ink-soft",children:c.scopeNote}),c.hint&&(0,b.jsx)(L,{hint:c.hint})]}),(0,b.jsx)(N,{term:"Monitored",children:(0,b.jsx)(M,{m:c.monitored})}),(0,b.jsx)(N,{term:"Last sync",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.lastSync})})]}),(0,b.jsxs)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:[!c.problem&&"github_write"!==a&&("github"===a?(0,b.jsx)(I.GithubSyncButton,{accountId:c.id}):(0,b.jsx)(J.SyncButton,{accountId:c.id,title:f,watchNew:c.watchNew,kind:v.f[a]})),!c.unreadable&&(0,b.jsx)(G.RetestButton,{accountId:c.id}),(0,b.jsx)(H.AccountDialog,{provider:a,replace:{id:c.id,label:c.label},primary:null!==c.problem}),(0,b.jsx)(G.RemoveAccountButton,{accountId:c.id,title:f})]})]},c.id)})})]}),f?(0,b.jsxs)("section",{"aria-label":0===c.length?`Connect ${e.name}`:"Add another account",children:[(0,b.jsx)("h3",{className:O,children:0===c.length?`Connect ${e.name}`:"Add another account"}),(0,b.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft",children:"The credential is encrypted before it's saved and never shown again."}),(0,b.jsx)(H.AccountForm,{provider:a})]}):(0,b.jsxs)("p",{className:"px-[18px] py-4 text-[12.5px] text-ink-soft",children:["One ",e.name," account per Watchbell. Replace its credential above, or remove it to connect a different one."]})]})}var Q=a.i(103493);let R={env:{state:"off",text:"Not set up"},none:{state:"off",text:"Not connected"},ok:{state:"ok",text:"Connected"},reconnect:{state:"err",text:"Reconnect needed"},problem:{state:"warn",text:"Connected · last run failed"}};async function S({searchParams:a}={}){var E,F;let G,H=await (0,k.B)("owner");if(!H.ok)return(0,b.jsx)(g.f,{role:H.member.role});let I="drive"===(G=Array.isArray(E=(await a)?.provider)?E[0]:E)?"drive":G&&u.L.includes(G)?G:null,J=(0,s.f)().OPS_ENCRYPTION_KEY,[K,L]=await Promise.all([(0,h.f)().select().from(i.accounts).orderBy((0,c.M)(i.accounts.createdAt)),(0,h.f)().select({accountId:i.resources.accountId,kind:i.resources.kind,monitored:i.resources.monitored,firstSeenAt:i.resources.firstSeenAt,goneAt:i.resources.goneAt}).from(i.resources).where((0,d.y)(i.resources.kind,Object.values(v.f)))]),[M,N,O]=await Promise.all([(0,r.f)(K.map(a=>a.id)),(0,q.w)(),(0,p.M)()]),T=(0,t.W)(),U=K.map(a=>{let b="drive"===a.provider||T?null:(0,j.A)((0,o.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},J));return{...a,unreadable:null!==b,problem:b??("error"===a.status?a.lastError:null)}}),V=new Date,W=U.filter(a=>a.problem),X=(0,y.O)(null!==(0,m.p)(),U.find(a=>"drive"===a.provider)??null),Y=(F=U.filter(a=>"drive"!==a.provider),A.map(({id:a,title:b})=>({section:a,title:b,tiles:u.L.filter(b=>z.D[b]===a).map(a=>{let b=F.filter(b=>b.provider===a);return{provider:a,accounts:b.length,attention:b.filter(a=>a.problem).length}})})).filter(a=>a.tiles.length>0)),Z="grid grid-cols-[repeat(auto-fill,minmax(230px,1fr))] gap-2.5",$="mb-2 text-[13px] font-medium text-ink-soft";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.L,{crumbs:[{label:"Manage"},{label:"Connections"}],title:"Connections",sub:`Credentials are encrypted (AES-256-GCM) before they're stored. The key lives in ${n.n.keyHome}, and credentials never reach the browser. Sync lists everything in an account, and you choose what the console watches.`}),W.length>0&&(0,b.jsxs)(f.M,{tone:"danger",title:`${W.length} connection${W.length>1?"s need":" needs"} attention`,children:[W.map(a=>`${a.provider} \xb7 ${(0,B.G)(a.label)}`).join(", "),". Data from ",W.length>1?"these accounts is":"this account is"," not being updated."]}),Y.map(a=>(0,b.jsxs)("section",{"aria-labelledby":`sec-${a.section}`,"data-section":a.section,children:[(0,b.jsx)("h2",{id:`sec-${a.section}`,className:$,children:a.title}),(0,b.jsx)("div",{className:Z,children:a.tiles.map(a=>{let c,d=u.m[a.provider];return(0,b.jsx)(D.ProviderDrawer,{name:d.name,note:d.note,icon:d.icon,line:0===a.accounts?{state:"off",text:"Not connected"}:a.attention>0?{state:"err",text:1===a.attention&&1===a.accounts?"Needs attention":`${a.attention} of ${a.accounts} ${1===a.attention?"needs":"need"} attention`}:{state:"ok",text:1===a.accounts?"Connected":`${a.accounts} accounts connected`},defaultOpen:I===a.provider,children:(0,b.jsx)(P,{provider:a.provider,accounts:(c=a.provider,U.filter(a=>a.provider===c).map(a=>{let b=(0,v.K)(c);return{id:a.id,label:a.label,credentialKind:a.credentialKind,scopeNote:a.scopeNote,hint:(0,x.f)(a.provider,M.get(a.id),a.scopeNote),expires:(0,w.A)(a.expiresAt,V),lastSync:(0,w.K)(a.lastSyncAt,V),problem:a.problem,unreadable:a.unreadable,watchNew:a.watchNew,monitored:"github"===c?N.get(a.id)??null:b?(0,v.D)(L.filter(b=>b.accountId===a.id),V,b):null}})),demo:T})},a.provider)})})]},a.section)),(0,b.jsxs)("section",{"aria-labelledby":"sec-manage","data-section":"manage",children:[(0,b.jsx)("h2",{id:"sec-manage",className:$,children:"Manage"}),(0,b.jsx)("div",{className:Z,children:(0,b.jsx)(D.ProviderDrawer,{name:"Google Drive",note:"Monthly backups. The app can only see the files it creates (drive.file).",icon:"drive",line:R[X.kind],defaultOpen:"drive"===I,children:(0,b.jsxs)("div",{className:"px-[18px] py-4",children:[(0,b.jsx)(C.f,{state:X,folderName:(0,l.A)(O),showDisconnect:!0}),(0,b.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:["Schedule, history and restore are on ",(0,b.jsx)(e.default,{href:"/backups",children:"Backups"}),"."]})]})})})]}),(0,b.jsx)(Q.f,{})]})}a.s(["default",0,S],157372)},19251,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ProviderDrawer() from the server but ProviderDrawer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/provider-drawer.tsx","ProviderDrawer");a.s(["ProviderDrawer",0,b])},362990,a=>{var b=a.i(19251);a.n(b)}],476227,function(a){a.n(a.i(157372))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_app_%28console%29_connections_02upf_c41dauw._.js.map
|