watchbell 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +3 -3
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/required-server-files.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +52 -51
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
- package/server/.next/server/app/(console)/alerts/page.js +52 -51
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +34 -34
- package/server/.next/server/app/(console)/apps/[id]/page.js +52 -51
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/apps/page.js +52 -51
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/backups/page.js +52 -51
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/catalog/page.js +52 -51
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/connections/page.js +52 -51
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/containers/page.js +52 -51
- package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/d1/page.js +52 -51
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/deploy/page.js +52 -51
- package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/deployments/page.js +52 -51
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/dns/page.js +52 -51
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/domains/page.js +52 -51
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/events/page.js +52 -51
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/firebase/page.js +52 -51
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/logs/page.js +52 -51
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/manage/sections/page.js +52 -51
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/neon/page.js +52 -51
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/os/page.js +52 -51
- package/server/.next/server/app/(console)/os/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/overview/page.js +52 -51
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/reports/[id]/pdf/route.js +5 -5
- package/server/.next/server/app/(console)/reports/[id]/pdf/route.js.nft.json +1 -1
- package/server/.next/server/app/(console)/reports/page/server-reference-manifest.json +35 -15
- package/server/.next/server/app/(console)/reports/page.js +52 -51
- package/server/.next/server/app/(console)/reports/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/reports/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/repos/[id]/page.js +52 -51
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/repos/page.js +52 -51
- package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +23 -23
- package/server/.next/server/app/(console)/settings/page.js +52 -51
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/sql/page.js +52 -51
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/status/page.js +52 -51
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
- package/server/.next/server/app/(console)/supabase/page.js +52 -51
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/topology/page.js +52 -51
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/turso/page.js +52 -51
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/upstash/page.js +52 -51
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
- package/server/.next/server/app/(console)/uptime/page.js +52 -51
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/welcome/page.js +52 -51
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.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 +2 -2
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/collect/route.js +59 -59
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/daily/route.js +66 -66
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js +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 +8 -8
- package/server/.next/server/app/api/telegram/webhook/route.js +50 -49
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +9 -9
- 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.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +8 -8
- 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 +7 -7
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +10 -10
- 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 +10 -10
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +4 -4
- 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/brand-icon/route.js +6 -6
- package/server/.next/server/app/brand-icon/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js +27 -26
- package/server/.next/server/app/mfa/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js +27 -26
- package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js +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/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/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js +25 -24
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/chunks/{[externals]__0oqc6ym5k457v._.js → [externals]__0ws552tlu2170._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1aervsuoo1qe_._.js → [externals]__14rgrk9t-kxa1._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1oag9t_9gex2-._.js → [externals]__1pdwh-htbnox8._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0-amtx67pqi56._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0_2fr1g7uby1m._.js → [root-of-the-server]__01nlh4ps9u-65._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__016wnct3b5iby._.js → [root-of-the-server]__01ur0kf75ampv._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ra_bw8zg6kmk._.js → [root-of-the-server]__028m_6oqyqmyy._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1hcn00gn9mapd._.js → [root-of-the-server]__02wzui3ksepqf._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0326wv5xmnp48._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0tsly874_mafr._.js → [root-of-the-server]__03537tx7cun49._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1p1e6x-mb7ro2._.js → [root-of-the-server]__0400g-0wvq3uf._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__04htuwoulmp21._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ux78ppoct5b_._.js → [root-of-the-server]__06bn4cfh-g8-d._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1ia-rts7ilt7c._.js → [root-of-the-server]__06ty1ktg427pm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0afpn-tk2qlu0._.js → [root-of-the-server]__076yrld-lo25r._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0xnag1k7mnvoh._.js → [root-of-the-server]__081k4lp976vd7._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__08i6b8tzxads4._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__09oipjf2ew_pn._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1-bbb_srnbm5x._.js → [root-of-the-server]__0_c_c1bv7sopk._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mg6rmq22tf26._.js → [root-of-the-server]__0a34twsor45ml._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__07gjmfv5mi33j._.js → [root-of-the-server]__0bjh2kw90a-m_._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0pm83e1a3wwlw._.js → [root-of-the-server]__0c41pzboxtjvz._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ng-t81zeeipc._.js → [root-of-the-server]__0dahxh87cvyn2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0dd4hulw1w-4i._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0nyxfjn368366._.js → [root-of-the-server]__0dfkxg4ax2hqz._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0e3hcgbyb09-p._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0gv3v5775wfmw._.js → [root-of-the-server]__0fk1609_5zg7g._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0fl1uspuemkzr._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0jz91oppmwtiq._.js → [root-of-the-server]__0hm5-0_rh9r6m._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1qelr0qe50xap._.js → [root-of-the-server]__0hwm4j4o2v8nc._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0k73a-s2lcpoz._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0jevd1p5unnre._.js → [root-of-the-server]__0kzgu06ee59vd._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0mrbo2p5fy4ji._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0nw8jgr3bsi8b._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0g0-q56cumuup._.js → [root-of-the-server]__0o4e39mvq8_el._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1le7r_1_00km1._.js → [root-of-the-server]__0opds07bp1fnb._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__070v8547b4qpa._.js → [root-of-the-server]__0pfcnbr0br6li._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-9vvc9y0qqhf._.js → [root-of-the-server]__0pi9id-ywuq6g._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0aazgg7203ez1._.js → [root-of-the-server]__0s3zxs-_ayd-6._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0eyd4kffoz9ex._.js → [root-of-the-server]__0sgy49rgsxyvy._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0sp5xoed3-994._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__03y8yvaulshnn._.js → [root-of-the-server]__0swji6flwxtbv._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0p_rkszoindlf._.js → [root-of-the-server]__0tyilr06jn8nb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0uss50b85q1j1._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0w1iqt-rpp_3h._.js → [root-of-the-server]__0vco1v37du1ez._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__05s9-538s47_e._.js → [root-of-the-server]__0w_hiz5nrm8-4._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0xzl28izr2tiq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0xzreqng-t2g8._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0b7xflnrk4amk._.js → [root-of-the-server]__0z9of310ruzug._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0zu1odpvrptrt._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__14cb1pomeg0x7._.js → [root-of-the-server]__1-3u16rnk101p._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1-pe9ipc3y6rn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-tqm3jzny4zd._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1mqv7anx5l3yq._.js → [root-of-the-server]__108g59p2fl8tw._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__12_wmn5mkj9v7._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0vuirlylhcyzm._.js → [root-of-the-server]__12bo9op0qkw9d._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0p955ekgdwy_c._.js → [root-of-the-server]__12tontjm90s-j._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__13-qqkdecmwba._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1qxm3lqqdbyy7._.js → [root-of-the-server]__140ixflf83vxj._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1qqdsrhuw0z-w._.js → [root-of-the-server]__152e1b97gc8hw._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__153lxhkj8-_vf._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1rusbj8ktmzj0._.js → [root-of-the-server]__15tr3yx8k9lyt._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__029099rqwqwff._.js → [root-of-the-server]__16-0nul8mfe2m._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0qhyj1r9qcxp3._.js → [root-of-the-server]__172vz80sdr5ny._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0u4o6oo428rvf._.js → [root-of-the-server]__17bz0jxsns742._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1gl0-1oziw-g0._.js → [root-of-the-server]__17jjm80vttqmq._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1pu84qy7loc8o._.js → [root-of-the-server]__18eqxi2vwpdjm._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__194y_mcnn0zs3._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_iy7tzpesarf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1_vfu21n1zq17._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1cy1k8jbwoull._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1d4wmw2wohveb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__02ctwy1u4z3fj._.js → [root-of-the-server]__1dp_mz2p02ze6._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11yn1ky7yixd7._.js → [root-of-the-server]__1eng6c6q52y-6._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1etg41llk7f09._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1f-rkijnm8me7._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0t6rge6laz89-._.js → [root-of-the-server]__1gfuhug61s-qy._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1ywvdsk_bmws0._.js → [root-of-the-server]__1git7o20yf9nn._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1h496oc8wu4s6._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hertcbqi_w97._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1j-nkcwy3w6sy._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1jcr8cc_tlvfc._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1l3uz57-1a35s._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1l9pn8y-o6xyp._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1lp_rypkkdjp9._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1m-z1ne4p7pi5._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__12w6gylk59cym._.js → [root-of-the-server]__1ma2tpf6wh9p6._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1nohrxjajgm5c._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1o2km61kftkj1._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1pn773t93gvn-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1q0h-x-7ob6cu._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1q2e13halne9s._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1q7xy_u4inf4h._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1qtorf4s2dfeg._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1sm4p209f_yie._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1uhgqik99k1y6._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1uq4f0bdphqs2._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1gufo2kz88z04._.js → [root-of-the-server]__1usilhckla3wj._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1v_8mu8mt1n5i._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1yk1psrx0yy4n._.js → [root-of-the-server]__1vtlx_63lj4tg._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1wxj0f-l93gkh._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1x4u0cdsl_81t._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1lvf4tk_1td0a._.js → [root-of-the-server]__1x7en4waq21dd._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1xzg_370-w-6t._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
- package/server/.next/server/chunks/_01epotkqa90nv._.js +1 -1
- package/server/.next/server/chunks/_03wces6vk33l0._.js +3 -0
- package/server/.next/server/chunks/_08q7x7rdbiaql._.js +9 -9
- package/server/.next/server/chunks/_09iin0yvuppj0._.js +3 -0
- package/server/.next/server/chunks/{_1w9di5m91vtjk._.js → _0buibatfr6-k_._.js} +3 -3
- package/server/.next/server/chunks/_0d29nzne5jrwy._.js +9 -9
- package/server/.next/server/chunks/{_1txqs5b7jg9so._.js → _0hekve2tk2eyv._.js} +3 -3
- package/server/.next/server/chunks/_0huryxihjw6tl._.js +9 -9
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0ou2tylxx1ltw._.js +2 -2
- package/server/.next/server/chunks/{_0lboyl6w4kfx4._.js → _0s_2fgaxby9fy._.js} +3 -3
- package/server/.next/server/chunks/_0z4b07-oa6ms9._.js +3 -0
- package/server/.next/server/chunks/_10mj3f1wis1ld._.js +1 -1
- package/server/.next/server/chunks/_139_9h76gakgh._.js +3 -0
- package/server/.next/server/chunks/_14jiq00zwwqdl._.js +3 -0
- package/server/.next/server/chunks/_15f0c7f46zkh3._.js +1 -1
- package/server/.next/server/chunks/_1e4rch26scbhq._.js +9 -9
- package/server/.next/server/chunks/_1iunyzyr-tfdj._.js +9 -9
- package/server/.next/server/chunks/_1jor4_sz1x8mt._.js +3 -0
- package/server/.next/server/chunks/_1m3zrm9-rc926._.js +3 -0
- package/server/.next/server/chunks/_1mwwg18ni-phb._.js +3 -0
- package/server/.next/server/chunks/_1ohb_bmawpjlz._.js +2 -2
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/src_0071b0w5aco6_._.js +3 -0
- package/server/.next/server/chunks/src_1-6a00bmwlymu._.js +3 -0
- package/server/.next/server/chunks/src_1-dy6ie3_ezvm._.js +3 -0
- package/server/.next/server/chunks/{src_1s913pql1_n-f._.js → src_13ij0feyzy7me._.js} +2 -2
- package/server/.next/server/chunks/{src_1_y0pxtbr6e04._.js → src_14vh1kj98t0xu._.js} +2 -2
- package/server/.next/server/chunks/src_1_s_jyur8tzy3._.js +3 -0
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1dio7z4_so000._.js +3 -0
- package/server/.next/server/chunks/src_1hpbxjbqlnuob._.js +3 -0
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/{src_1mwttl5ainte0._.js → src_20eae99bkrgpt._.js} +2 -2
- package/server/.next/server/chunks/src_lib_0-fln6xaazo-9._.js +12 -0
- package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +1 -1
- package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +1 -1
- package/server/.next/server/chunks/src_lib_1jlvdx5ho171c._.js +12 -0
- package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/src_lib_branding_ts_03ns4y_8z0-6e._.js +1 -1
- package/server/.next/server/chunks/src_lib_branding_ts_0jfv9nur5alvy._.js +1 -1
- package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
- package/server/.next/server/chunks/src_lib_data_report-db_ts_0b5f4dpxn08gk._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +4 -4
- package/server/.next/server/chunks/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
- package/server/.next/server/chunks/src_lib_data_settings-db_ts_2060-w9nbvitr._.js +3 -0
- package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +8 -8
- package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +1 -1
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +1 -1
- package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0byytapt83qke._.js → [externals]__1299yq-rye4ww._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1baveo0r8_hf1._.js → [externals]__134px-n77ygse._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__02peoq6kft9oz._.js → [externals]__1s9zy_6f7xfd5._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0gb_9a2m3eqk5._.js → [externals]__1t5grpj1lrsbr._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1pr-neo8jutji._.js → [root-of-the-server]__03iw2anbe7pxg._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_axyb404w3bf._.js → [root-of-the-server]__059q8f4tia03z._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__05uxv6qwfpp79._.js → [root-of-the-server]__05ot6j41b9i8j._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12c2r19g75dyy._.js → [root-of-the-server]__0_wsm-adqpmgy._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_q3kww244pif._.js → [root-of-the-server]__0buxkrf7nrji8._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__041mpme_x36vq._.js → [root-of-the-server]__0f6ao2fs70kab._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0rrnk3_fb0l_9._.js → [root-of-the-server]__0f8ibnqfh_mp0._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0h8-rlmhjyebb._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0kejvdc7h-pgz._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ev5rocipbkjw._.js → [root-of-the-server]__0kjdpn_g9gvwr._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1z_pt3d8lty_n._.js → [root-of-the-server]__0msczl_qf2eml._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xkfr7qk7oxjf._.js → [root-of-the-server]__0s9z1kusbxvae._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__13x0qmv4fm_1p._.js → [root-of-the-server]__0wlctoz_-yuyh._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1zsqu1mecqptt._.js → [root-of-the-server]__0yr0heg1b0y5t._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1z3vauqrf2l-_._.js → [root-of-the-server]__0yvm5q_auexh3._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0qhbs-or7q-om._.js → [root-of-the-server]__0zgo5h9mstjc8._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1mbb917mrz5c-._.js → [root-of-the-server]__107qfgl2c58q0._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10ahcnczmy5hx._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1n-rcmbkk7duv._.js → [root-of-the-server]__12cdcpj45tu6j._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__18dcfrlpoapw9._.js +1 -1
- 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]__1k8mxdm-cxfg_._.js → [root-of-the-server]__1a3_aiqflmt4f._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0vqae5m2ntd34._.js → [root-of-the-server]__1brzt_134_2iy._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1g6kynby65m0v._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1t9_ue4abugtn._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1vgliw2256_6l._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1gkcoq0cmmax1._.js → [root-of-the-server]__1zki66ic3cluq._.js} +2 -2
- package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +1 -1
- package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
- package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
- package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hqya_yuov5jw._.js +1 -1
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
- package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
- package/server/.next/server/chunks/ssr/{_0xkl4rb1wydtd._.js → _0k6kbi721s28p._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
- package/server/.next/server/chunks/ssr/_0kk0of-t4vhyh._.js +1 -1
- package/server/.next/server/chunks/ssr/{_0lg6_we0pe3nk._.js → _0l0eho21fo-8l._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
- package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +2 -2
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1ge8mluhma23o._.js → _0x4ybc829r3ta._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0kq3wqx86yyhb._.js → _1cdlzhw6tkrhd._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
- package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ong0a252wcvc._.js +8 -8
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +2 -2
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/{_170okt24rw1yx._.js → _1zsfeuyrhcwmh._.js} +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1363m-cfkgyvr.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1q6iypbn6yagc._.js → src_000iv6actp3t_._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_18ofj2_oxqb0g._.js → src_0torilf0s7p-e._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_1ldp01vcphvw5._.js → src_1_b884ul0envr._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_0eh38ymzn-s-m._.js → src_app_(console)_0e1l3e9r_60s4._.js} +2 -2
- package/server/.next/server/chunks/ssr/{src_app_(console)_03s-e0b0zsqqr._.js → src_app_(console)_124kgxvmqm7j4._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_reports_reports-view_tsx_1l0apba6g810q._.js +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)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_signin_1_sp0qx8_z7c9._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_1-h17es4-y1-k._.js → src_app_signin_1qq0_77_vdutm._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0jnv54-8idu07._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_branding_ts_03ns4y_8z0-6e._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_branding_ts_1p22ju9pii41w._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +2 -2
- package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_lib_demo_0r3c3k5102jja._.js → src_lib_demo_03sepqqjq9usk._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +5 -5
- package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +3 -3
- 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 +178 -158
- package/server/.next/static/chunks/{2co8kv2tj776w.js → 0-v128fmc05bf.js} +1 -1
- package/server/.next/static/chunks/{1416wraxs5p8g.js → 02db293pqegsb.js} +1 -1
- package/server/.next/static/chunks/{2i5_2zcei6rqr.js → 03t36gu4t__cw.js} +1 -1
- package/server/.next/static/chunks/{3bvj3-0xltkjo.js → 07p13q6tuqr2r.js} +1 -1
- package/server/.next/static/chunks/{3ic9vbadne9of.js → 09qtiybhnydd3.js} +1 -1
- package/server/.next/static/chunks/{2txgb9zusks-w.js → 0_5leiwhgv7d6.js} +1 -1
- package/server/.next/static/chunks/{1nv_9c1bate-f.js → 0_ebioh9utve_.js} +1 -1
- package/server/.next/static/chunks/{1_uuog1-u6y0t.js → 0_hd-kx6h59a8.js} +1 -1
- package/server/.next/static/chunks/{2azwg3my8wh40.js → 0if7r4ximmzwb.js} +1 -1
- package/server/.next/static/chunks/{2n198u7xx1koh.js → 0ohm_qoe5thrr.js} +1 -1
- package/server/.next/static/chunks/0ssmmtio659vh.js +1 -0
- package/server/.next/static/chunks/{07_cb192ydsaj.js → 0t0igs6uqhbf0.js} +1 -1
- package/server/.next/static/chunks/{0zwq-z8jt5hpz.js → 0ut06v9sng9g4.js} +1 -1
- package/server/.next/static/chunks/{0s00_-em3cj00.js → 0w--mj7tf-9f-.js} +1 -1
- package/server/.next/static/chunks/131egbz-4xsjl.js +1 -0
- package/server/.next/static/chunks/{3ic7ri5b4ifjp.js → 14dbn6_jif37v.js} +2 -2
- package/server/.next/static/chunks/{1vt_t7dg_-pyu.js → 15l58okvbrc4_.js} +1 -1
- package/server/.next/static/chunks/{378ttzg87hows.js → 1_nuygyg_kes5.js} +2 -2
- package/server/.next/static/chunks/{3-us-wg44ohoc.js → 1bsq3x1wh49bp.js} +1 -1
- package/server/.next/static/chunks/{3n98m8tj20wcf.js → 1esunqtpnjwkw.js} +1 -1
- package/server/.next/static/chunks/{1j_hduntj28ij.js → 1gizey8idqrkt.js} +1 -1
- package/server/.next/static/chunks/{0gxxyq5l_0rp2.js → 1itgjll79qm1l.js} +1 -1
- package/server/.next/static/chunks/{3dktq-qmj2q5b.js → 1o27sfcuph25w.js} +1 -1
- package/server/.next/static/chunks/{31fs88f_h861n.js → 1pz19kzjaj8uw.js} +1 -1
- package/server/.next/static/chunks/{0a9mqrzg8420n.js → 1qzun1-bna-sy.js} +1 -1
- package/server/.next/static/chunks/{3mgd5b39ghc-w.js → 1ugo5ye01racz.js} +1 -1
- package/server/.next/static/chunks/{2gk24b05q4q57.js → 1z5s55o29xqyu.js} +1 -1
- package/server/.next/static/chunks/21gu7xcv8ix3_.js +1 -0
- package/server/.next/static/chunks/{3aglnkhgcl_kq.js → 21p4xz6ysy8mv.js} +1 -1
- package/server/.next/static/chunks/{0ynyx3s7s4mv7.js → 22bdke6t-doqh.js} +1 -1
- package/server/.next/static/chunks/{1nqpnndfmw0tc.js → 28ljlwfuuz5a1.js} +1 -1
- package/server/.next/static/chunks/29lr_ae0uli9o.js +1 -0
- package/server/.next/static/chunks/{1yyigrxptb7jm.js → 2jkqfajf-i0r6.js} +2 -2
- package/server/.next/static/chunks/{2sr03gtef27q0.js → 2mhli3hpy5vr9.js} +1 -1
- package/server/.next/static/chunks/{3u1v2wpzthilq.js → 2ns8p-8ngmi9h.js} +1 -1
- package/server/.next/static/chunks/{0valedxcn7j8k.js → 2vdwhg5fnxmu-.js} +2 -2
- package/server/.next/static/chunks/{1azdri14ocjgg.js → 2xgya43mybqsr.js} +11 -11
- package/server/.next/static/chunks/{3cti7pgg_jjlx.js → 2yv02i0h6tppe.js} +1 -1
- package/server/.next/static/chunks/{3-789qaoce7ff.js → 31gsdl-_t96jr.js} +1 -1
- package/server/.next/static/chunks/{2db0smm21dva_.js → 3_lq_n61v4j3r.js} +1 -1
- package/server/.next/static/chunks/{0_xoojw9q_nof.js → 3a11wypkvc5ey.js} +1 -1
- package/server/.next/static/chunks/{0dn6fty1ilg-n.js → 3g0p8ugqre9ft.js} +1 -1
- package/server/.next/static/chunks/{28_88x_e_ynaj.js → 3jq1ae0_9wu-o.js} +1 -1
- package/server/.next/static/chunks/3o358k-0653gr.js +1 -0
- package/server/.next/static/chunks/{05c15dcfh7cxm.js → 3pnzdk7snuzti.js} +1 -1
- package/server/.next/static/chunks/4114b2ynqr24j.js +1 -0
- package/server/.next/static/chunks/{28qjoy38cp5by.js → 41r6z31pmixbr.js} +1 -1
- package/server/.next/static/chunks/{3lw5n6yzs0665.js → 43wc7pgukn2dp.js} +1 -1
- package/server/.next/static/chunks/{1cd-2y1kwqosv.js → 4451kr05p691g.js} +1 -1
- package/server/.next/static/chunks/{1w51uxl19faw3.js → 44t_7rpq23-bz.js} +1 -1
- package/server/server.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__00s0famyfjv1y._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__03z520-siwkv_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__06od3qx7q00rc._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__09bwtkv2iniyt._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0bb8xnocnnbt8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0c0drtvym6hf4._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0frz3wu-qcv-d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0hm-azhxs9ted._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0n-u6p8-hd-89._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0p2n1_qp53y51._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0p8j8b2tg73dq._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0q9s7rbt0e-cf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ra3lgjt0yuyy._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0sgumm0843o2j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0vjvvirn6-fx-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0welpj78704um._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ymf9ppvpsffe._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zxrhqtvpoio4._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10-4cctiab73h._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__11300e77grhx6._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__11tzj3jzqzk6v._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12m0p1vyef6d5._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__13i4zx_j8zugt._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1420nm1i823v8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1cnmxehqzmqq_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1f84fftr_6_6n._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i_vd8w3df3i6._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1igmx9-fdh2wd._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1kp2wois-47bg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lcszcm98v484._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1mufebnwyxlwx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1o0lvy6ek0v5d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qwy7s_95k9k-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rxaooz-d8jfs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s8f1ovcj5r99._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1tdb11b6vn4qm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ti5-6okt7fur._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1w_ga9n2lj53n._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1xe_98y-j38aq._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1z9kl-irij2lu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1zmoy4u_xb_yi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1zq2zv2ogn3ot._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__202mmzv3u-hk1._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__20tvyorpg49kd._.js +0 -3
- package/server/.next/server/chunks/_04oi0m63biyjd._.js +0 -3
- package/server/.next/server/chunks/_0bki3kju_1u1f._.js +0 -3
- package/server/.next/server/chunks/_0djze-128wsu0._.js +0 -3
- package/server/.next/server/chunks/_0hm72d9am2vfs._.js +0 -3
- package/server/.next/server/chunks/_1nuny071s602h._.js +0 -3
- package/server/.next/server/chunks/_1sx70w_rurjin._.js +0 -3
- package/server/.next/server/chunks/_1tl0532dffdm-._.js +0 -3
- package/server/.next/server/chunks/src_0frmhaaejchbk._.js +0 -3
- package/server/.next/server/chunks/src_0kihmyo3yghxy._.js +0 -3
- package/server/.next/server/chunks/src_16t2uefmdlh8d._.js +0 -3
- package/server/.next/server/chunks/src_17j4dgvb7rx7k._.js +0 -3
- package/server/.next/server/chunks/src_20xyhmuf0y6_v._.js +0 -3
- package/server/.next/server/chunks/src_lib_0hw2g5g295xx0._.js +0 -12
- package/server/.next/server/chunks/src_lib_1hveabvnpk83x._.js +0 -12
- package/server/.next/server/chunks/src_lib_collector_deploy-days_ts_087kwe68m4i93._.js +0 -3
- package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__01o65-2jgmg9x._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0q7rssq_3unbc._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__11yadiuejywcz._.js +0 -3
- package/server/.next/server/chunks/ssr/_0j_qqta7rirh5._.js +0 -3
- package/server/.next/server/chunks/ssr/src_09q8lx_19nta6._.js +0 -3
- package/server/.next/static/chunks/10y41_ed7ty6e.js +0 -1
- package/server/.next/static/chunks/16gt7hkgltvf7.js +0 -1
- package/server/.next/static/chunks/1sjgdu3r0baj-.js +0 -1
- package/server/.next/static/chunks/1velx-cd3d5y1.js +0 -1
- package/server/.next/static/chunks/1xydxxektmjgr.js +0 -1
- package/server/.next/static/chunks/2jflssspiz3-i.js +0 -1
- /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_buildManifest.js +0 -0
- /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_ssgManifest.js +0 -0
package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[198398,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(21096),h=a.i(77608),i=a.i(384084);let j="This request expired (requests last 24 hours) or was already decided. Ask again if it's still needed.",k="Type the new resource's name exactly to approve it.",l=async a=>{try{await a}catch{console.warn("create: audit or notice failed")}};async function m(a,b,c,d,e){if(!("string"==typeof b&&i.t.includes(b))||"string"!=typeof c||c.length>100)return{ok:!1,error:"Something in that request wasn't valid."};let f=await e.quota(a.id,`create:${b}`);if(f)return{ok:!1,error:f};let g=await e.executor(b).prepare(c,d);if(!g.ok)return{ok:!1,error:g.error,...g.field?{fieldErrors:{[g.field]:g.error}}:{}};if(!await e.limitRequest(a.id))return{ok:!1,error:"You've asked for 3 creates today, the daily limit. Try again tomorrow."};let h=e.now(),j=await e.insert({type:b,provider:{dns_record:"cloudflare",neon_branch:"neon",supabase_project:"supabase",firebase_project:"firebase"}[b],accountId:g.p.accountId,targetResourceId:g.p.targetResourceId,targetLabel:g.p.targetLabel.slice(0,120),inputs:g.p.inputs,requestedBy:a.id,expiresAt:new Date(h.getTime()+i.e)}),k=(0,i.p)(b,j.inputs);return await l(e.audit({kind:"ok",message:`Create requested \xb7 ${i.S[b]} ${k.confirmName}`,detail:k.summary,resourceId:j.targetResourceId,actorUserId:a.userId})),await l(e.notify(j)),{ok:!0,message:`Asked. ${g.p.cost} It waits for the Owner's approval for 24 hours.`,data:{id:j.id,cost:g.p.cost}}}async function n(a,b,c){if("string"!=typeof b)return{ok:!1,error:j};let d=await c.decide(b,"reject",a.id,c.now());if(!d)return{ok:!1,error:j};let e=(0,i.p)(d.type,d.inputs);return await l(c.audit({kind:"ok",message:`Create rejected \xb7 ${i.S[d.type]} ${e.confirmName}`,resourceId:d.targetResourceId,actorUserId:a.userId})),{ok:!0,message:"Rejected. Nothing was created."}}async function o(a,b,c,d){let e;if("string"!=typeof b)return{ok:!1,error:j};let f=await d.get(b);if(!f||"requested"!==f.status||f.expiresAt.getTime()<=d.now().getTime())return{ok:!1,error:j};let g=(0,i.p)(f.type,f.inputs);if("string"!=typeof c||c.trim()!==g.confirmName)return{ok:!1,error:k,fieldErrors:{confirm:k}};let h=await d.quota(a.id,`create:${f.id}`);if(h)return{ok:!1,error:h};if(!await d.decide(b,"approve",a.id,d.now()))return{ok:!1,error:j};let m=await d.claim(b,d.now());if(!m)return{ok:!1,error:"This request is already running."};try{e=await d.executor(m.type).run(m)}catch(a){console.warn("create run failed:",a instanceof Error?a.name:"error"),e={ok:!1,error:"Something went wrong before the create finished. Check the provider's dashboard before asking again.",checked:!1,maybe:!0}}let n=`${i.S[m.type]} ${g.confirmName}`,o=m.requestedBy===a.id?"asked and approved by the Owner":`asked by member ${m.requestedBy.slice(0,8)}, approved by the Owner`;return e.ok?(await d.finish(m.id,{ok:!0,result:e.result},d.now()),await l(d.audit({kind:"ok",message:`Created \xb7 ${n}`,detail:`${g.summary} \xb7 ${o}`,resourceId:m.targetResourceId,actorUserId:a.userId})),{ok:!0,message:e.message,data:{result:e.result,...e.secret?{secret:e.secret}:{}}}):(await d.finish(m.id,{ok:!1,error:e.error},d.now()),await l(d.audit({kind:"err",message:e.checked?`Create refused at re-check \xb7 ${n}`:`Create failed \xb7 ${n}`,detail:`${e.error} \xb7 ${o}`,resourceId:m.targetResourceId,actorUserId:a.userId})),{ok:!1,error:e.error})}var p=a.i(70550),q=a.i(221084),r=a.i(610247),s=a.i(462820),t=a.i(666680),u=a.i(688275),v=a.i(672319),w=a.i(863443);let x=(a,b=300)=>"string"==typeof a&&a.length<=b?a:"",y=(a,b)=>({ok:!1,field:a,error:b}),z=/^(?:\*|[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?)$/,A=/^[a-z0-9][a-z0-9-]{0,62}$/,B=/^br-[a-z0-9-]{3,60}$/;function C(a,b){return a.some(a=>a.id===b.parentId)?a.some(a=>a.name===b.name)?{ok:!1,error:`A branch named ${b.name} already exists in this project.`}:a.length>=u.a.branches?{ok:!1,error:`This project already has ${a.length} branches, Neon's free limit is ${u.a.branches}.`}:{ok:!0,cost:`Free. Uses ${a.length+1} of ${u.a.branches} branches in this project. No compute is created, so it uses no CU-hours until someone wakes it; its data counts toward the project's 0.5 GB storage.`}:{ok:!1,error:"The branch to copy from isn't in this project any more. Reload and pick another."}}let D=[["ap-southeast-1","Southeast Asia (Singapore)"],["ap-northeast-1","Northeast Asia (Tokyo)"],["ap-northeast-2","Northeast Asia (Seoul)"],["ap-southeast-2","Oceania (Sydney)"],["ap-south-1","South Asia (Mumbai)"],["ap-east-1","East Asia (Hong Kong)"],["us-east-1","East US (North Virginia)"],["us-east-2","East US (Ohio)"],["us-west-1","West US (North California)"],["us-west-2","West US (Oregon)"],["ca-central-1","Canada (Central)"],["sa-east-1","South America (São Paulo)"],["eu-west-1","West EU (Ireland)"],["eu-west-2","West EU (London)"],["eu-west-3","West EU (Paris)"],["eu-north-1","North EU (Stockholm)"],["eu-central-1","Central EU (Frankfurt)"],["eu-central-2","Central EU (Zurich)"]].map(([a])=>a),E=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,62}$/,F=/^[\w-]{1,64}$/,G=/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/,H=/^[A-Za-z0-9 '"!-]{4,30}$/;var I=a.i(322145),J=a.i(45617),K=a.i(678831),L=a.i(418864),M=a.i(669943),N=a.i(44925);async function O(a,b,c,d={}){try{let e=await (0,N.p)(b,c,d);if(!e.ok)return console.warn(`dns refresh: couldn't read the zone's records (${e.kind})`),!1;let f=new Date;return await (0,M.r)(a,{records:e.data.records,recordsTruncated:e.data.truncated},f),await (0,L.x)(f),(0,K.J)([J.m.zones,J.m.domains]),!0}catch(a){return console.warn("dns refresh failed:",a instanceof Error?a.name:"error"),!1}}var P=a.i(26972),Q=a.i(83931),R=a.i(191179),S=a.i(427221),T=a.i(811365),U=a.i(689963);let V=P.z.object({success:Q.z.boolean(),result:R.z.unknown()}),W=P.z.object({id:S.z.string(),type:S.z.string(),name:S.z.string(),content:S.z.string().default(""),proxied:Q.z.boolean().default(!1),ttl:T.z.number().default(1),comment:S.z.string().nullish()}),X=P.z.object({errors:U.z.array(P.z.object({code:T.z.number().int()})).min(1)});async function Y(a,b,c,d={}){let e,f={type:c.type,name:c.name,content:c.content,ttl:c.ttl,..."TXT"===c.type?{}:{proxied:!0===c.proxied},comment:"Added from Watchbell"};try{e=await (d.fetch??fetch)(`https://api.cloudflare.com/client/v4/zones/${encodeURIComponent(b)}/dns_records`,{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(d.timeoutMs??8e3),cache:"no-store"})}catch(a){return a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?{ok:!1,kind:"transient",maybe:!0,error:"Cloudflare didn't answer in time; the record may still have been added. Check the zone before asking again."}:{ok:!1,kind:"transient",error:"Couldn't reach Cloudflare."}}let g=()=>e.body?.cancel().catch(()=>void 0);if(401===e.status)return await g(),{ok:!1,kind:"auth",status:401,error:"Cloudflare rejected this credential (401)."};if(403===e.status)return await g(),{ok:!1,kind:"scope",status:403,error:'This Cloudflare token can\'t add DNS records. Add "Zone → DNS → Edit" to it, or replace it with a token that has it.'};if(404===e.status)return await g(),{ok:!1,kind:"missing",status:404,error:"Cloudflare can't find this zone any more."};let h=await e.json().catch(()=>null);if(!e.ok){let a=X.safeParse(h);return{ok:!1,kind:429===e.status||e.status>=500?"transient":"refused",status:e.status,error:`Cloudflare refused this record (${e.status}${a.success?`, code ${a.data.errors[0].code}`:""}).`}}let i=V.safeParse(h),j=i.success&&i.data.success?W.safeParse(i.data.result):null;if(!j?.success)return{ok:!1,kind:"format",error:"Cloudflare added the record but answered in a format the console doesn't recognise. Check the zone."};let k=j.data;return{ok:!0,data:{id:k.id,type:k.type,name:k.name,content:k.content,proxied:k.proxied,ttl:k.ttl,comment:k.comment??null}}}var Z=a.i(288666);let $="https://cloudresourcemanager.googleapis.com/v3",_="https://firebase.googleapis.com/v1beta1",aa=/^operations\/(?!.*\.\.)[A-Za-z0-9._:/-]{1,200}$/,ab=P.z.object({projectId:S.z.string(),displayName:S.z.string().optional(),state:S.z.string().default("ACTIVE")});async function ac(a,b={}){let c=[],d="";for(let e=0;e<5;e++){let e=new URLSearchParams({pageSize:"100",...d?{pageToken:d}:{}}),f=await (0,Z.R)("Google Cloud",`${$}/projects:search?${e}`,{token:a},b);if(!f.ok)return f;let g=P.z.object({projects:U.z.array(ab).optional(),nextPageToken:S.z.string().optional()}).safeParse(f.data);if(!g.success)return(0,Z.t)("Google Cloud","the project list");if(c.push(...(g.data.projects??[]).map(a=>({projectId:a.projectId,displayName:a.displayName??a.projectId,state:a.state}))),!g.data.nextPageToken)break;d=g.data.nextPageToken}return{ok:!0,data:c}}let ad=P.z.object({name:S.z.string(),done:Q.z.boolean().optional(),error:P.z.object({code:T.z.number().optional(),message:S.z.string().optional()}).optional()}),ae=(a,b)=>{let c=ad.safeParse(a);return c.success&&aa.test(c.data.name)?{ok:!0,data:{name:c.data.name,done:!0===c.data.done,error:c.data.error?`error ${c.data.error.code??"?"}`:null}}:(0,Z.t)(b,"the operation")};async function af(a,b,c={}){let d=await (0,Z.R)("Google Cloud",`${$}/projects`,{method:"POST",token:a,body:{projectId:b.projectId,displayName:b.displayName}},{timeoutMs:15e3,...c});return d.ok?ae(d.data,"Google Cloud"):d}async function ag(a,b,c={}){let d=await (0,Z.R)("Firebase",`${_}/projects/${encodeURIComponent(b)}:addFirebase`,{method:"POST",token:a,body:{}},{timeoutMs:15e3,...c});return d.ok?ae(d.data,"Firebase"):d}async function ah(a,b,c,d={}){if(!aa.test(c))return(0,Z.t)("crm"===b?"Google Cloud":"Firebase","the operation name");let e="crm"===b?"Google Cloud":"Firebase",f=await (0,Z.R)(e,`${"crm"===b?$:_}/${c}`,{token:a},d);return f.ok?ae(f.data,e):f}var ai=a.i(944808);let aj="Neon";async function ak(a,b,c,d={}){let e={branch:{name:c.name,parent_id:c.parentId},endpoints:[]},f=await (0,Z.R)(aj,`https://console.neon.tech/api/v2/projects/${encodeURIComponent(b)}/branches`,{method:"POST",token:a,body:e},{timeoutMs:1e4,...d});if(!f.ok)return 423===f.status?{ok:!1,kind:"busy",status:423,error:"Neon is busy with another operation on this project. Ask again in a minute."}:403===f.status?{...f,kind:"scope",error:"This Neon API key can't manage this project; use a personal or organization key, or a key for this project."}:422===f.status||400===f.status||409===f.status?{ok:!1,kind:"format",status:f.status,error:`Neon refused this branch (${f.status}); the project may be at its branch limit.`}:f;let g=P.z.object({branch:P.z.object({id:S.z.string(),name:S.z.string()})}).safeParse(f.data);return g.success?{ok:!0,data:{id:g.data.branch.id,name:g.data.branch.name}}:(0,Z.t)(aj,"the new branch")}var al=a.i(112735);let am="https://api.supabase.com",an="Supabase",ao="organization_projects_create";async function ap(a,b={}){let c=await (0,Z.R)(an,`${am}/v1/organizations`,{token:a},b);if(!c.ok)return c;let d=U.z.array(P.z.object({slug:S.z.string().optional(),id:S.z.string().optional(),name:S.z.string()})).safeParse(c.data);return d.success?{ok:!0,data:d.data.map(a=>({slug:a.slug??a.id??"",name:a.name})).filter(a=>a.slug)}:(0,Z.t)(an,"the organization list")}async function aq(a,b,c={}){let d={name:b.name,organization_slug:b.orgSlug,region_selection:{type:"specific",code:b.region},db_pass:b.dbPass},e=await (0,Z.R)(an,`${am}/v1/projects`,{method:"POST",token:a,body:d},{timeoutMs:2e4,...c});if(!e.ok){if(403===e.status)return{ok:!1,kind:"scope",status:403,missing:e.missing??[ao],error:`This Supabase token can't create projects. Add the "${ao}" permission (Organization → Projects → Create).`};let{message:a,...b}=e;return b}let f=P.z.object({ref:S.z.string().optional(),id:S.z.string().optional(),name:S.z.string(),status:S.z.string().default("COMING_UP"),region:S.z.string().default(b.region)}).safeParse(e.data);return f.success&&(f.data.ref??f.data.id)?{ok:!0,data:{ref:f.data.ref??f.data.id,name:f.data.name,status:f.data.status,region:f.data.region}}:(0,Z.t)(an,"the new project")}let ar="This isn't watched any more, or its credential can't be read. Reload the page.",as=a=>({ok:!1,error:a,checked:!0}),at=(a,b)=>"transient"===a.kind&&void 0===a.status?{ok:!1,checked:!1,maybe:!0,error:`${a.error} The ${b} may still have been created; check the provider's dashboard before asking again.`}:{ok:!1,checked:!1,error:a.error};async function au(a,b,c,d){let e=await (0,N.p)(a,b,{fetch:d.fetch});return e.ok?function(a,b,c=!1){if(c)return{ok:!1,error:"This zone has more than 2,000 records, so the console can't be sure the name is free. Add it in Cloudflare."};let d=a.filter(a=>a.name.toLowerCase().replace(/\.$/,"")===b.name);return d.some(a=>"CNAME"===a.type)?{ok:!1,error:`${b.name} already has a CNAME record, and a CNAME can't share its name with any other record.`}:"CNAME"===b.type&&d.length?{ok:!1,error:`${b.name} already has ${d.length} record${1===d.length?"":"s"}; a CNAME can't share its name with other records.`}:d.length?{ok:!1,error:`${b.name} already exists in this zone. The console only adds new names; edit the existing record instead.`}:{ok:!0,cost:"Free. Cloudflare's free plan allows thousands of records per zone."}}(e.data.records,c,e.data.truncated):{ok:!1,error:"scope"===e.kind?'This Cloudflare token can\'t read DNS records; add "Zone → DNS → Read" and "Zone → DNS → Edit".':`Couldn't read the zone's records just now: ${e.error}`}}async function av(a,b,c){let d=await ap(a,{fetch:c.fetch});if(!d.ok)return{ok:!1,error:"scope"===d.kind?'This Supabase token can\'t list organizations; add the "organizations_read" permission.':`Couldn't read the organizations just now: ${d.error}`};let e=d.data.find(a=>a.slug===b.orgSlug);if(!e)return{ok:!1,error:"This token can't see that organization any more."};let f=await (0,al.X)(a,{fetch:c.fetch});if(!f.ok)return{ok:!1,error:`Couldn't count this account's projects just now: ${f.error}`};let g=[...new Set([b.orgSlug,...f.data.map(a=>a.orgSlug)].filter(Boolean))],h=await Promise.all(g.map(async b=>[b,await (0,al.K)(a,b,{fetch:c.fetch})])),i=new Map(h.map(([a,b])=>[a,b.ok?b.data:null])),j=new Set(h.filter(([,a])=>a.ok&&null!==a.data&&"free"!==a.data).map(([a])=>a)),k=h.find(([a])=>a===b.orgSlug)?.[1];if(k&&!k.ok&&"scope"===k.kind)return{ok:!1,error:'This Supabase token can\'t read organization plans; add "organization_admin_read" so the console can confirm the free plan.'};let l=function(a,b){if(null===a.plan)return{ok:!1,error:"The console couldn't read this organization's plan, so it won't create anything there. Only an organization on the free plan is allowed."};if("free"!==a.plan)return{ok:!1,error:`This organization is on the ${a.plan} plan. The console only creates projects in an organization on the free plan, because a project in a paid organization is billed from the first hour.`};if(a.projects.some(a=>a.orgSlug===b.orgSlug&&a.name.toLowerCase()===b.name.toLowerCase()&&"REMOVED"!==a.status))return{ok:!1,error:`This organization already has a project named ${b.name}.`};let c=a.projects.filter(b=>!a.paidOrgs.has(b.orgSlug)&&(0,v.Z)(b.status)).length;return c>=v.V?{ok:!1,error:`${c} free projects are already active, Supabase's free limit is ${v.V}. Pause one first; paused projects don't count.`}:{ok:!0,cost:`Free. Uses ${c+1} of ${v.V} active free projects. Free projects pause after a week without activity.`}}({plan:i.get(b.orgSlug)??null,projects:f.data,paidOrgs:j},b);return l.ok?{...l,orgName:e.name}:l}async function aw(a){let b=(0,h.p)();if(!b)return{ok:!1,kind:"auth",error:s.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0)};let c=await (0,r.d)();if(!c)return{ok:!1,kind:"auth",error:"Connect Google (create projects) on the Firebase page first."};let d=await (0,h.B)(b,c.refreshToken,{fetch:a.fetch});return d.ok?{ok:!0,data:d.accessToken}:{ok:!1,kind:"auth",error:"revoked"===d.kind?"Google ended the create-projects grant (Testing mode lasts 7 days, or it was removed). Connect Google again on the Firebase page.":d.error}}async function ax(a,b,c){let d=await ac(a,{fetch:c.fetch});if(!d.ok)return{ok:!1,error:"scope"===d.kind?"Google refused the project list: enable the Cloud Resource Manager API on the OAuth client's Google Cloud project.":`Couldn't read your Google Cloud projects just now: ${d.error}`};var e=d.data;if(e.some(a=>a.projectId===b.projectId))return{ok:!1,error:`You already have a Google Cloud project with the id ${b.projectId}.`};let f=e.filter(a=>"ACTIVE"===a.state).length;return f>=10?{ok:!1,error:`This Google account already has ${f} active projects. Google's project quota without a billing account is about 10; remove one in the Google Cloud console first (deleted projects count for 30 days).`}:{ok:!0,cost:`Free (Spark): no billing account is attached. ${f} active Google Cloud project${1===f?"":"s"} now; Google's quota without billing is about 10, and Google may refuse earlier.`}}async function ay(a,b,c,d){let e=c,f=d.pollTries??6;for(let c=0;!e.done&&c<f;c++){await (d.sleep??(a=>new Promise(b=>setTimeout(b,a))))(d.pollMs??2e3);let c=await ah(a,b,e.name,{fetch:d.fetch});if(!c.ok)return c;e=c.data}return{ok:!0,data:e}}let az={dns_record:(a={})=>({async prepare(b,c){let d=await (0,I.p)(b,"zone");if(!d||!d.resource.externalId)return{ok:!1,error:ar};let e=function(a,b){let c=a??{},d=x(c.type,10);if(!w.j.includes(d))return y("type","Only A, AAAA, CNAME and TXT records can be added here.");let e=function(a,b){let c=b.trim().toLowerCase().replace(/\.$/,""),d=a.trim().toLowerCase().replace(/\.$/,"");if(!d||!c||("@"===d?d=c:d===c||d.endsWith(`.${c}`)||(d=`${d}.${c}`),d.length>253))return null;let e=d===c?"":d.slice(0,-(c.length+1));return e&&!e.split(".").every((a,b)=>z.test(a)&&("*"!==a||0===b))?null:d}(x(c.name,260),b);if(!e)return y("name",`The name must be a host in ${b}, like shop or shop.${b}.`);let f="number"==typeof c.ttl?c.ttl:w.k,g=(0,w.V)({type:d,name:e},{content:x(c.content,4096),ttl:f,proxied:!0===c.proxied});return g.ok?{ok:!0,inputs:{zoneName:b.toLowerCase(),type:d,name:e,content:g.values.content,ttl:g.values.ttl,proxied:g.values.proxied}}:y(g.field,g.error)}(c,d.resource.name);if(!e.ok)return e;let f=await au(d.token,d.resource.externalId,e.inputs,a);return f.ok?{ok:!0,p:{inputs:e.inputs,accountId:d.account.id,targetResourceId:d.resource.id,targetLabel:d.resource.name,cost:f.cost}}:{ok:!1,error:f.error,field:"name"}},async run(b){let c=b.inputs,d=b.targetResourceId?await (0,I.p)(b.targetResourceId,"zone"):null;if(!d||!d.resource.externalId)return as(ar);let e=await au(d.token,d.resource.externalId,c,a);if(!e.ok)return as(e.error);let f=await Y(d.token,d.resource.externalId,{type:c.type,name:c.name,content:c.content,ttl:c.ttl,proxied:c.proxied},{fetch:a.fetch});if(!f.ok)return{ok:!1,checked:!1,error:f.error,...f.maybe?{maybe:!0}:{}};let g=!1;try{g=!!await (a.refreshZone??O)(d.resource.id,d.token,d.resource.externalId,{fetch:a.fetch})}catch{g=!1}return{ok:!0,result:{id:f.data.id,name:f.data.name},message:`Added ${c.type} ${f.data.name}. ${g?"It shows on the DNS page now.":"It shows on the DNS page after the next hourly read."}`}}}),neon_branch:(a={})=>({async prepare(b,c){let d=await (0,I.p)(b,"neon_project");if(!d)return{ok:!1,error:ar};let e=function(a,b){let c=a??{},d=x(c.name,80).trim();if(!A.test(d))return y("name","Use 1 to 63 lower-case letters, digits and hyphens, starting with a letter or digit.");let e=x(c.parentId,80);return B.test(e)?{ok:!0,inputs:{projectName:b,parentId:e,name:d}}:y("parentId","Pick the branch to copy from.")}(c,d.resource.name);if(!e.ok)return e;let f=await (0,ai.e)(d.token,d.resource.externalId,{fetch:a.fetch});if(!f.ok)return{ok:!1,error:`Couldn't read this project's branches just now: ${f.error}`};let g=C(f.data,e.inputs);if(!g.ok)return{ok:!1,error:g.error,field:"name"};let h=f.data.find(a=>a.id===e.inputs.parentId)?.name??e.inputs.parentId;return{ok:!0,p:{inputs:{...e.inputs,parentName:h},accountId:d.account.id,targetResourceId:d.resource.id,targetLabel:d.resource.name,cost:g.cost}}},async run(b){let c=b.inputs,d=b.targetResourceId?await (0,I.p)(b.targetResourceId,"neon_project"):null;if(!d)return as(ar);let e=await (0,ai.e)(d.token,d.resource.externalId,{fetch:a.fetch});if(!e.ok)return as(`Couldn't read this project's branches just now: ${e.error}`);let f=C(e.data,c);if(!f.ok)return as(f.error);let g=await ak(d.token,d.resource.externalId,{name:c.name,parentId:c.parentId},{fetch:a.fetch});return g.ok?{ok:!0,result:{id:g.data.id,name:g.data.name},message:`Branch ${g.data.name} created without a compute. It shows on the Neon page within 5 minutes; Wake it there when you need it (that uses CU-hours).`}:"busy"===g.kind?{ok:!1,checked:!1,error:g.error}:at(g,"branch")}}),supabase_project:(a={})=>({async prepare(b,c){let d=await (0,r.Z)(b,"supabase");if(!d)return{ok:!1,error:ar};let e=function(a){let b=a??{},c=x(b.orgSlug,80);if(!F.test(c))return y("orgSlug","Pick an organization.");let d=x(b.name,80).trim();if(!E.test(d))return y("name","Use 1 to 63 letters, digits, spaces, dots, hyphens or underscores.");let e=x(b.region,30);return D.includes(e)?{ok:!0,inputs:{orgSlug:c,name:d,region:e}}:y("region","Pick a region from the list.")}(c);if(!e.ok)return e;let f=await av(d.token,e.inputs,a);return f.ok?{ok:!0,p:{inputs:{...e.inputs,orgName:f.orgName??e.inputs.orgSlug},accountId:d.id,targetResourceId:null,targetLabel:d.label,cost:f.cost}}:{ok:!1,error:f.error,field:"orgSlug"}},async run(b){let c=b.inputs,d=b.accountId?await (0,r.Z)(b.accountId,"supabase"):null;if(!d)return as(ar);let e=await av(d.token,c,a);if(!e.ok)return as(e.error);let f=function a(){let b=(0,t.randomBytes)(64),c="";for(let a of b)if(!(a>=248)&&32===(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[a%62]).length)break;return 32===c.length?c:a()}(),g=await aq(d.token,{orgSlug:c.orgSlug,name:c.name,region:c.region,dbPass:f},{fetch:a.fetch});return g.ok?{ok:!0,secret:f,result:{id:g.data.ref,name:g.data.name},message:`Project ${g.data.name} is being set up (about 2 minutes). Copy its database password now: the console doesn't keep it and can't show it again.`}:at(g,"project")}}),firebase_project:(a={})=>({async prepare(b,c){let d=function(a){let b=a??{},c=x(b.projectId,40).trim();if(!G.test(c)||/google|ssl|undefined|null/.test(c))return y("projectId",'6 to 30 lower-case letters, digits and hyphens, starting with a letter (Google refuses ids with "google").');let d=x(b.displayName,40).trim()||c.slice(0,30);return H.test(d)?{ok:!0,inputs:{projectId:c,displayName:d}}:y("displayName","4 to 30 letters, digits, spaces, hyphens, quotes or exclamation marks.")}(c);if(!d.ok)return d;let e=await aw(a);if(!e.ok)return{ok:!1,error:e.error};let f=await ax(e.data,d.inputs,a);return f.ok?{ok:!0,p:{inputs:d.inputs,accountId:null,targetResourceId:null,targetLabel:"Google account",cost:f.cost}}:{ok:!1,error:f.error,field:"projectId"}},async run(b){let c=b.inputs,d=await aw(a);if(!d.ok)return as(d.error);let e=await ax(d.data,c,a);if(!e.ok)return as(e.error);let f=await af(d.data,c,{fetch:a.fetch});if(!f.ok){let a=at(f,"project");return"scope"===f.kind?{...a,error:"Google refused to create the project (permission or quota). Check the project quota in the Google Cloud console."}:a}let g=a=>({ok:!0,result:{id:c.projectId,name:c.displayName,note:"firebase-pending"},message:`Google Cloud project ${c.projectId} was created without billing, but Firebase isn't on it yet (${a}). Open the Firebase console → Add project → choose ${c.projectId} to finish; nothing else is needed.`}),h=await ay(d.data,"crm",f.data,a);if(!h.ok||!h.data.done)return g("Google was still creating the project");if(h.data.error)return{ok:!1,checked:!1,error:`Google couldn't create the project (${h.data.error}). Check the Google Cloud console; nothing was charged.`};let i=await ag(d.data,c.projectId,{fetch:a.fetch});if(!i.ok)return g("scope"===i.kind?"enable the Firebase Management API on the OAuth client's project, and accept the Firebase terms once in the Firebase console":i.error);let j=await ay(d.data,"firebase",i.data,a);return j.ok&&j.data.done?j.data.error?g(`Firebase answered ${j.data.error}`):{ok:!0,result:{id:c.projectId,name:c.displayName},message:`Created Firebase project ${c.projectId} on the free Spark plan (no billing account). Watch it by adding a viewer service account for it in Connections.`}:{ok:!0,result:{id:c.projectId,name:c.displayName},message:`Created ${c.projectId}; Firebase is still being added (a minute or two). It stays on the free Spark plan: no billing account is attached.`}}})};var aA=a.i(192738),aB=a.i(49146),aC=a.i(492665),aD=a.i(552543),aE=a.i(446914);let aF={target:aB.Q,siteUrl:()=>(0,aC.f)().SITE_URL,lang:()=>(0,aD.I)("telegram"),send:(a,b,c)=>(0,aE.I)(a,b,c),record:(a,b)=>(0,aB.P)("telegram",a,b)};async function aG(a,b=aF){try{let c=await b.target();if(!c)return;let d=await b.send(c.token,c.chatId,function(a,b,c,d="en"){let e=`${c.replace(/\/+$/,"")}${i.K[a]}?create=${encodeURIComponent(b)}`;return["id"===d?`🙋 Permintaan baru: bikin ${(0,aA.H)(i.S[a])} di ${(0,aA.H)(i.E[a])}.`:`🙋 New request: create ${(0,aA.H)(i.S[a])} on ${(0,aA.H)(i.E[a])}.`,"id"===d?"Butuh persetujuan Owner (pakai kode authenticator) di console, berlaku 24 jam:":"Needs Owner approval (with the authenticator code) in the console, valid for 24 hours:",(0,aA.H)(e)].join("\n")}(a.type,a.id,b.siteUrl(),await b.lang().catch(()=>"en")));await b.record(d,new Date).catch(()=>void 0)}catch{console.warn("create notice failed")}}let aH=`Creating needs the token's "${ao}" permission (Organization → Projects → Create), plus "organizations_read" and "organization_admin_read" so the console can confirm the free plan. A token from Account → Access Tokens has them; a fine-grained token needs them added.`;async function aI(a,b){switch(a){case"dns_record":return{ok:!0,data:{type:a}};case"neon_branch":{let c=await (0,I.p)(b,"neon_project");if(!c)return{ok:!1,error:"This project isn't watched any more. Reload the page."};let d=await (0,ai.e)(c.token,c.resource.externalId);if(!d.ok)return{ok:!1,error:`Couldn't read the branches just now: ${d.error}`};return{ok:!0,data:{type:a,branches:d.data.map(a=>({id:a.id,name:a.name,isDefault:a.isDefault})),limit:u.a.branches}}}case"supabase_project":{let c=await (0,r.N)("supabase"),d=c.some(a=>a.id===b)?b:c[0]?.id??null,e={type:a,accounts:c,accountId:d,orgs:[],active:0,limit:v.V,scopeNote:aH};if(!d)return{ok:!0,data:{...e,orgs:[]}};let f=await (0,r.Z)(d,"supabase");if(!f)return{ok:!0,data:{...e,orgs:[],error:"This account's credential can't be read."}};let[g,h]=await Promise.all([ap(f.token),(0,al.X)(f.token)]);if(!g.ok)return{ok:!0,data:{...e,orgs:[],error:"scope"===g.kind?"This token can't list organizations.":g.error}};let i=await Promise.all(g.data.map(async a=>{let b=await (0,al.K)(f.token,a.slug);return{slug:a.slug,name:a.name,plan:b.ok?b.data:null}})),j=new Set(i.filter(a=>a.plan&&"free"!==a.plan).map(a=>a.slug)),k=h.ok?h.data.filter(a=>!j.has(a.orgSlug)&&(0,v.Z)(a.status)).length:0;return{ok:!0,data:{...e,orgs:i.map(a=>({...a,allowed:"free"===a.plan})),active:k}}}case"firebase_project":{let b=!!(0,h.p)(),c=await (0,r.a)(),d={type:a,envReady:b,connected:null!==c,connectedAt:c,projects:null,quotaHint:10};if(!b||null===c)return{ok:!0,data:{...d}};let e=await (0,r.d)(),f=(0,h.p)(),g=e&&f?await (0,h.B)(f,e.refreshToken):null;if(!g?.ok)return{ok:!0,data:{...d,error:"Google ended the grant (Testing mode lasts 7 days, or it was removed). Connect again."}};let i=await ac(g.accessToken);if(!i.ok)return{ok:!0,data:{...d,error:`Couldn't read your Google Cloud projects: ${i.error}`}};return{ok:!0,data:{...d,projects:i.data.filter(a=>"ACTIVE"===a.state).length}}}}}var aJ=a.i(323878),aK=a.i(312573),aL=a.i(75105),aM=a.i(713095);let aN="owner";async function aO(){let a=await (0,f.g)("owner"),b=await (0,f.x)();if(b?.aal!=="aal2")throw new e.W("mfa");return a}let aP={now:()=>new Date,quota:async a=>{let b=await (0,aJ.C)(aK.t.providerAction,a);return b.allowed?null:(0,aL.z)("member",b.retryAfter)},limitRequest:async a=>(await (0,aJ.C)(aK.t.createRequest,a)).allowed,executor:a=>az[a](),insert:a=>(0,r.z)(a),get:r.j,decide:r.Q,claim:r.b,finish:r.c,audit:q.f,notify:a=>aG(a)},aQ=()=>{try{(0,d.refresh)()}catch{}};async function aR(a,b,c){return(0,e.F)(aN,async d=>{let e=await m({id:d.id,userId:d.userId},a,b,c,aP);return e.ok&&aQ(),e},{requireActionMember:f.g})}async function aS(a,b){return(0,e.F)("owner",async c=>{let d=await o({id:c.id,userId:c.userId},a,b,aP);return aQ(),d},{requireActionMember:aO})}async function aT(a){return(0,e.F)("owner",async b=>{let c=await n({id:b.id,userId:b.userId},a,aP);return aQ(),c},{requireActionMember:aO})}async function aU(a,b){return(0,e.F)(aN,async c=>{let d=await aP.quota(c.id,`options:${a}`);return d?{ok:!1,error:d}:aI(a,b)},{requireActionMember:f.g})}async function aV(){return(0,e.F)("owner",async a=>{let b=(0,h.p)();if(!b)return{ok:!1,error:h.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,aC.f)(),f=(0,h.C)(),{verifier:i,challenge:j}=(0,h.U)();return(await (0,c.cookies)()).set(p.o,(0,g.G)({state:f,verifier:i,memberId:a.id,exp:Date.now()+1e3*g.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:p.B,maxAge:g.N}),{ok:!0,data:{url:(0,p.O)(b,{state:f,challenge:j,redirectUri:(0,p.E)(d)})}}},{requireActionMember:aO})}async function aW(){return(0,e.F)("owner",async a=>(await (0,r.k)(),await (0,q.f)({kind:"ok",message:"Google (create projects) disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),aQ(),{ok:!0,message:"Disconnected here. Remove Watchbell's access in your Google Account → Security → Third-party access as well."}),{requireActionMember:f.g})}(0,aM.ensureServerEntryExports)([aR,aS,aT,aU,aV,aW]),(0,b.registerServerReference)(aR,"708d6fcc646cc40545b2ef6ebd7f603aec5fd47c2c",null),(0,b.registerServerReference)(aS,"6026fa46247b5926ad83c6710f59a192fdcd08efd5",null),(0,b.registerServerReference)(aT,"4001514c32ae73f4f46eb9d7772da1fe382d819199",null),(0,b.registerServerReference)(aU,"60f5d287f181d98a476f3d7c1932a1e8cd1d7f2192",null),(0,b.registerServerReference)(aV,"0074f11634b49b392fac3ac4fa39eec445b3f0c717",null),(0,b.registerServerReference)(aW,"0085158c8a45d0b3554d7a8b05bbf9eb90215f852f",null),a.s(["g",0,aS,"p",0,aU,"F",0,aW,"d",0,aT,"q",0,aR,"Y",0,aV],198398)}];
|
|
1
|
+
module.exports=[198398,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(21096),h=a.i(77608),i=a.i(384084);let j="This request expired (requests last 24 hours) or was already decided. Ask again if it's still needed.",k="Type the new resource's name exactly to approve it.",l=async a=>{try{await a}catch{console.warn("create: audit or notice failed")}};async function m(a,b,c,d,e){if(!("string"==typeof b&&i.t.includes(b))||"string"!=typeof c||c.length>100)return{ok:!1,error:"Something in that request wasn't valid."};let f=await e.quota(a.id,`create:${b}`);if(f)return{ok:!1,error:f};let g=await e.executor(b).prepare(c,d);if(!g.ok)return{ok:!1,error:g.error,...g.field?{fieldErrors:{[g.field]:g.error}}:{}};if(!await e.limitRequest(a.id))return{ok:!1,error:"You've asked for 3 creates today, the daily limit. Try again tomorrow."};let h=e.now(),j=await e.insert({type:b,provider:{dns_record:"cloudflare",neon_branch:"neon",supabase_project:"supabase",firebase_project:"firebase"}[b],accountId:g.p.accountId,targetResourceId:g.p.targetResourceId,targetLabel:g.p.targetLabel.slice(0,120),inputs:g.p.inputs,requestedBy:a.id,expiresAt:new Date(h.getTime()+i.e)}),k=(0,i.p)(b,j.inputs);return await l(e.audit({kind:"ok",message:`Create requested \xb7 ${i.S[b]} ${k.confirmName}`,detail:k.summary,resourceId:j.targetResourceId,actorUserId:a.userId})),await l(e.notify(j)),{ok:!0,message:`Asked. ${g.p.cost} It waits for the Owner's approval for 24 hours.`,data:{id:j.id,cost:g.p.cost}}}async function n(a,b,c){if("string"!=typeof b)return{ok:!1,error:j};let d=await c.decide(b,"reject",a.id,c.now());if(!d)return{ok:!1,error:j};let e=(0,i.p)(d.type,d.inputs);return await l(c.audit({kind:"ok",message:`Create rejected \xb7 ${i.S[d.type]} ${e.confirmName}`,resourceId:d.targetResourceId,actorUserId:a.userId})),{ok:!0,message:"Rejected. Nothing was created."}}async function o(a,b,c,d){let e;if("string"!=typeof b)return{ok:!1,error:j};let f=await d.get(b);if(!f||"requested"!==f.status||f.expiresAt.getTime()<=d.now().getTime())return{ok:!1,error:j};let g=(0,i.p)(f.type,f.inputs);if("string"!=typeof c||c.trim()!==g.confirmName)return{ok:!1,error:k,fieldErrors:{confirm:k}};let h=await d.quota(a.id,`create:${f.id}`);if(h)return{ok:!1,error:h};if(!await d.decide(b,"approve",a.id,d.now()))return{ok:!1,error:j};let m=await d.claim(b,d.now());if(!m)return{ok:!1,error:"This request is already running."};try{e=await d.executor(m.type).run(m)}catch(a){console.warn("create run failed:",a instanceof Error?a.name:"error"),e={ok:!1,error:"Something went wrong before the create finished. Check the provider's dashboard before asking again.",checked:!1,maybe:!0}}let n=`${i.S[m.type]} ${g.confirmName}`,o=m.requestedBy===a.id?"asked and approved by the Owner":`asked by member ${m.requestedBy.slice(0,8)}, approved by the Owner`;return e.ok?(await d.finish(m.id,{ok:!0,result:e.result},d.now()),await l(d.audit({kind:"ok",message:`Created \xb7 ${n}`,detail:`${g.summary} \xb7 ${o}`,resourceId:m.targetResourceId,actorUserId:a.userId})),{ok:!0,message:e.message,data:{result:e.result,...e.secret?{secret:e.secret}:{}}}):(await d.finish(m.id,{ok:!1,error:e.error},d.now()),await l(d.audit({kind:"err",message:e.checked?`Create refused at re-check \xb7 ${n}`:`Create failed \xb7 ${n}`,detail:`${e.error} \xb7 ${o}`,resourceId:m.targetResourceId,actorUserId:a.userId})),{ok:!1,error:e.error})}var p=a.i(70550),q=a.i(221084),r=a.i(610247),s=a.i(462820),t=a.i(666680),u=a.i(688275),v=a.i(672319),w=a.i(863443);let x=(a,b=300)=>"string"==typeof a&&a.length<=b?a:"",y=(a,b)=>({ok:!1,field:a,error:b}),z=/^(?:\*|[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?)$/,A=/^[a-z0-9][a-z0-9-]{0,62}$/,B=/^br-[a-z0-9-]{3,60}$/;function C(a,b){return a.some(a=>a.id===b.parentId)?a.some(a=>a.name===b.name)?{ok:!1,error:`A branch named ${b.name} already exists in this project.`}:a.length>=u.a.branches?{ok:!1,error:`This project already has ${a.length} branches, Neon's free limit is ${u.a.branches}.`}:{ok:!0,cost:`Free. Uses ${a.length+1} of ${u.a.branches} branches in this project. No compute is created, so it uses no CU-hours until someone wakes it; its data counts toward the project's 0.5 GB storage.`}:{ok:!1,error:"The branch to copy from isn't in this project any more. Reload and pick another."}}let D=[["ap-southeast-1","Southeast Asia (Singapore)"],["ap-northeast-1","Northeast Asia (Tokyo)"],["ap-northeast-2","Northeast Asia (Seoul)"],["ap-southeast-2","Oceania (Sydney)"],["ap-south-1","South Asia (Mumbai)"],["ap-east-1","East Asia (Hong Kong)"],["us-east-1","East US (North Virginia)"],["us-east-2","East US (Ohio)"],["us-west-1","West US (North California)"],["us-west-2","West US (Oregon)"],["ca-central-1","Canada (Central)"],["sa-east-1","South America (São Paulo)"],["eu-west-1","West EU (Ireland)"],["eu-west-2","West EU (London)"],["eu-west-3","West EU (Paris)"],["eu-north-1","North EU (Stockholm)"],["eu-central-1","Central EU (Frankfurt)"],["eu-central-2","Central EU (Zurich)"]].map(([a])=>a),E=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,62}$/,F=/^[\w-]{1,64}$/,G=/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/,H=/^[A-Za-z0-9 '"!-]{4,30}$/;var I=a.i(322145),J=a.i(45617),K=a.i(678831),L=a.i(418864),M=a.i(669943),N=a.i(44925);async function O(a,b,c,d={}){try{let e=await (0,N.p)(b,c,d);if(!e.ok)return console.warn(`dns refresh: couldn't read the zone's records (${e.kind})`),!1;let f=new Date;return await (0,M.r)(a,{records:e.data.records,recordsTruncated:e.data.truncated},f),await (0,L.x)(f),(0,K.J)([J.m.zones,J.m.domains]),!0}catch(a){return console.warn("dns refresh failed:",a instanceof Error?a.name:"error"),!1}}var P=a.i(26972),Q=a.i(83931),R=a.i(191179),S=a.i(427221),T=a.i(811365),U=a.i(689963);let V=P.z.object({success:Q.z.boolean(),result:R.z.unknown()}),W=P.z.object({id:S.z.string(),type:S.z.string(),name:S.z.string(),content:S.z.string().default(""),proxied:Q.z.boolean().default(!1),ttl:T.z.number().default(1),comment:S.z.string().nullish()}),X=P.z.object({errors:U.z.array(P.z.object({code:T.z.number().int()})).min(1)});async function Y(a,b,c,d={}){let e,f={type:c.type,name:c.name,content:c.content,ttl:c.ttl,..."TXT"===c.type?{}:{proxied:!0===c.proxied},comment:"Added from Watchbell"};try{e=await (d.fetch??fetch)(`https://api.cloudflare.com/client/v4/zones/${encodeURIComponent(b)}/dns_records`,{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(d.timeoutMs??8e3),cache:"no-store"})}catch(a){return a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?{ok:!1,kind:"transient",maybe:!0,error:"Cloudflare didn't answer in time; the record may still have been added. Check the zone before asking again."}:{ok:!1,kind:"transient",error:"Couldn't reach Cloudflare."}}let g=()=>e.body?.cancel().catch(()=>void 0);if(401===e.status)return await g(),{ok:!1,kind:"auth",status:401,error:"Cloudflare rejected this credential (401)."};if(403===e.status)return await g(),{ok:!1,kind:"scope",status:403,error:'This Cloudflare token can\'t add DNS records. Add "Zone → DNS → Edit" to it, or replace it with a token that has it.'};if(404===e.status)return await g(),{ok:!1,kind:"missing",status:404,error:"Cloudflare can't find this zone any more."};let h=await e.json().catch(()=>null);if(!e.ok){let a=X.safeParse(h);return{ok:!1,kind:429===e.status||e.status>=500?"transient":"refused",status:e.status,error:`Cloudflare refused this record (${e.status}${a.success?`, code ${a.data.errors[0].code}`:""}).`}}let i=V.safeParse(h),j=i.success&&i.data.success?W.safeParse(i.data.result):null;if(!j?.success)return{ok:!1,kind:"format",error:"Cloudflare added the record but answered in a format the console doesn't recognise. Check the zone."};let k=j.data;return{ok:!0,data:{id:k.id,type:k.type,name:k.name,content:k.content,proxied:k.proxied,ttl:k.ttl,comment:k.comment??null}}}var Z=a.i(288666);let $="https://cloudresourcemanager.googleapis.com/v3",_="https://firebase.googleapis.com/v1beta1",aa=/^operations\/(?!.*\.\.)[A-Za-z0-9._:/-]{1,200}$/,ab=P.z.object({projectId:S.z.string(),displayName:S.z.string().optional(),state:S.z.string().default("ACTIVE")});async function ac(a,b={}){let c=[],d="";for(let e=0;e<5;e++){let e=new URLSearchParams({pageSize:"100",...d?{pageToken:d}:{}}),f=await (0,Z.R)("Google Cloud",`${$}/projects:search?${e}`,{token:a},b);if(!f.ok)return f;let g=P.z.object({projects:U.z.array(ab).optional(),nextPageToken:S.z.string().optional()}).safeParse(f.data);if(!g.success)return(0,Z.t)("Google Cloud","the project list");if(c.push(...(g.data.projects??[]).map(a=>({projectId:a.projectId,displayName:a.displayName??a.projectId,state:a.state}))),!g.data.nextPageToken)break;d=g.data.nextPageToken}return{ok:!0,data:c}}let ad=P.z.object({name:S.z.string(),done:Q.z.boolean().optional(),error:P.z.object({code:T.z.number().optional(),message:S.z.string().optional()}).optional()}),ae=(a,b)=>{let c=ad.safeParse(a);return c.success&&aa.test(c.data.name)?{ok:!0,data:{name:c.data.name,done:!0===c.data.done,error:c.data.error?`error ${c.data.error.code??"?"}`:null}}:(0,Z.t)(b,"the operation")};async function af(a,b,c={}){let d=await (0,Z.R)("Google Cloud",`${$}/projects`,{method:"POST",token:a,body:{projectId:b.projectId,displayName:b.displayName}},{timeoutMs:15e3,...c});return d.ok?ae(d.data,"Google Cloud"):d}async function ag(a,b,c={}){let d=await (0,Z.R)("Firebase",`${_}/projects/${encodeURIComponent(b)}:addFirebase`,{method:"POST",token:a,body:{}},{timeoutMs:15e3,...c});return d.ok?ae(d.data,"Firebase"):d}async function ah(a,b,c,d={}){if(!aa.test(c))return(0,Z.t)("crm"===b?"Google Cloud":"Firebase","the operation name");let e="crm"===b?"Google Cloud":"Firebase",f=await (0,Z.R)(e,`${"crm"===b?$:_}/${c}`,{token:a},d);return f.ok?ae(f.data,e):f}var ai=a.i(944808);let aj="Neon";async function ak(a,b,c,d={}){let e={branch:{name:c.name,parent_id:c.parentId},endpoints:[]},f=await (0,Z.R)(aj,`https://console.neon.tech/api/v2/projects/${encodeURIComponent(b)}/branches`,{method:"POST",token:a,body:e},{timeoutMs:1e4,...d});if(!f.ok)return 423===f.status?{ok:!1,kind:"busy",status:423,error:"Neon is busy with another operation on this project. Ask again in a minute."}:403===f.status?{...f,kind:"scope",error:"This Neon API key can't manage this project; use a personal or organization key, or a key for this project."}:422===f.status||400===f.status||409===f.status?{ok:!1,kind:"format",status:f.status,error:`Neon refused this branch (${f.status}); the project may be at its branch limit.`}:f;let g=P.z.object({branch:P.z.object({id:S.z.string(),name:S.z.string()})}).safeParse(f.data);return g.success?{ok:!0,data:{id:g.data.branch.id,name:g.data.branch.name}}:(0,Z.t)(aj,"the new branch")}var al=a.i(112735);let am="https://api.supabase.com",an="Supabase",ao="organization_projects_create";async function ap(a,b={}){let c=await (0,Z.R)(an,`${am}/v1/organizations`,{token:a},b);if(!c.ok)return c;let d=U.z.array(P.z.object({slug:S.z.string().optional(),id:S.z.string().optional(),name:S.z.string()})).safeParse(c.data);return d.success?{ok:!0,data:d.data.map(a=>({slug:a.slug??a.id??"",name:a.name})).filter(a=>a.slug)}:(0,Z.t)(an,"the organization list")}async function aq(a,b,c={}){let d={name:b.name,organization_slug:b.orgSlug,region_selection:{type:"specific",code:b.region},db_pass:b.dbPass},e=await (0,Z.R)(an,`${am}/v1/projects`,{method:"POST",token:a,body:d},{timeoutMs:2e4,...c});if(!e.ok){if(403===e.status)return{ok:!1,kind:"scope",status:403,missing:e.missing??[ao],error:`This Supabase token can't create projects. Add the "${ao}" permission (Organization → Projects → Create).`};let{message:a,...b}=e;return b}let f=P.z.object({ref:S.z.string().optional(),id:S.z.string().optional(),name:S.z.string(),status:S.z.string().default("COMING_UP"),region:S.z.string().default(b.region)}).safeParse(e.data);return f.success&&(f.data.ref??f.data.id)?{ok:!0,data:{ref:f.data.ref??f.data.id,name:f.data.name,status:f.data.status,region:f.data.region}}:(0,Z.t)(an,"the new project")}let ar="This isn't watched any more, or its credential can't be read. Reload the page.",as=a=>({ok:!1,error:a,checked:!0}),at=(a,b)=>"transient"===a.kind&&void 0===a.status?{ok:!1,checked:!1,maybe:!0,error:`${a.error} The ${b} may still have been created; check the provider's dashboard before asking again.`}:{ok:!1,checked:!1,error:a.error};async function au(a,b,c,d){let e=await (0,N.p)(a,b,{fetch:d.fetch});return e.ok?function(a,b,c=!1){if(c)return{ok:!1,error:"This zone has more than 2,000 records, so the console can't be sure the name is free. Add it in Cloudflare."};let d=a.filter(a=>a.name.toLowerCase().replace(/\.$/,"")===b.name);return d.some(a=>"CNAME"===a.type)?{ok:!1,error:`${b.name} already has a CNAME record, and a CNAME can't share its name with any other record.`}:"CNAME"===b.type&&d.length?{ok:!1,error:`${b.name} already has ${d.length} record${1===d.length?"":"s"}; a CNAME can't share its name with other records.`}:d.length?{ok:!1,error:`${b.name} already exists in this zone. The console only adds new names; edit the existing record instead.`}:{ok:!0,cost:"Free. Cloudflare's free plan allows thousands of records per zone."}}(e.data.records,c,e.data.truncated):{ok:!1,error:"scope"===e.kind?'This Cloudflare token can\'t read DNS records; add "Zone → DNS → Read" and "Zone → DNS → Edit".':`Couldn't read the zone's records just now: ${e.error}`}}async function av(a,b,c){let d=await ap(a,{fetch:c.fetch});if(!d.ok)return{ok:!1,error:"scope"===d.kind?'This Supabase token can\'t list organizations; add the "organizations_read" permission.':`Couldn't read the organizations just now: ${d.error}`};let e=d.data.find(a=>a.slug===b.orgSlug);if(!e)return{ok:!1,error:"This token can't see that organization any more."};let f=await (0,al.X)(a,{fetch:c.fetch});if(!f.ok)return{ok:!1,error:`Couldn't count this account's projects just now: ${f.error}`};let g=[...new Set([b.orgSlug,...f.data.map(a=>a.orgSlug)].filter(Boolean))],h=await Promise.all(g.map(async b=>[b,await (0,al.K)(a,b,{fetch:c.fetch})])),i=new Map(h.map(([a,b])=>[a,b.ok?b.data:null])),j=new Set(h.filter(([,a])=>a.ok&&null!==a.data&&"free"!==a.data).map(([a])=>a)),k=h.find(([a])=>a===b.orgSlug)?.[1];if(k&&!k.ok&&"scope"===k.kind)return{ok:!1,error:'This Supabase token can\'t read organization plans; add "organization_admin_read" so the console can confirm the free plan.'};let l=function(a,b){if(null===a.plan)return{ok:!1,error:"The console couldn't read this organization's plan, so it won't create anything there. Only an organization on the free plan is allowed."};if("free"!==a.plan)return{ok:!1,error:`This organization is on the ${a.plan} plan. The console only creates projects in an organization on the free plan, because a project in a paid organization is billed from the first hour.`};if(a.projects.some(a=>a.orgSlug===b.orgSlug&&a.name.toLowerCase()===b.name.toLowerCase()&&"REMOVED"!==a.status))return{ok:!1,error:`This organization already has a project named ${b.name}.`};let c=a.projects.filter(b=>!a.paidOrgs.has(b.orgSlug)&&(0,v.Z)(b.status)).length;return c>=v.V?{ok:!1,error:`${c} free projects are already active, Supabase's free limit is ${v.V}. Pause one first; paused projects don't count.`}:{ok:!0,cost:`Free. Uses ${c+1} of ${v.V} active free projects. Free projects pause after a week without activity.`}}({plan:i.get(b.orgSlug)??null,projects:f.data,paidOrgs:j},b);return l.ok?{...l,orgName:e.name}:l}async function aw(a){let b=(0,h.p)();if(!b)return{ok:!1,kind:"auth",error:s.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0)};let c=await (0,r.d)();if(!c)return{ok:!1,kind:"auth",error:"Connect Google (create projects) on the Firebase page first."};let d=await (0,h.B)(b,c.refreshToken,{fetch:a.fetch});return d.ok?{ok:!0,data:d.accessToken}:{ok:!1,kind:"auth",error:"revoked"===d.kind?"Google ended the create-projects grant (Testing mode lasts 7 days, or it was removed). Connect Google again on the Firebase page.":d.error}}async function ax(a,b,c){let d=await ac(a,{fetch:c.fetch});if(!d.ok)return{ok:!1,error:"scope"===d.kind?"Google refused the project list: enable the Cloud Resource Manager API on the OAuth client's Google Cloud project.":`Couldn't read your Google Cloud projects just now: ${d.error}`};var e=d.data;if(e.some(a=>a.projectId===b.projectId))return{ok:!1,error:`You already have a Google Cloud project with the id ${b.projectId}.`};let f=e.filter(a=>"ACTIVE"===a.state).length;return f>=10?{ok:!1,error:`This Google account already has ${f} active projects. Google's project quota without a billing account is about 10; remove one in the Google Cloud console first (deleted projects count for 30 days).`}:{ok:!0,cost:`Free (Spark): no billing account is attached. ${f} active Google Cloud project${1===f?"":"s"} now; Google's quota without billing is about 10, and Google may refuse earlier.`}}async function ay(a,b,c,d){let e=c,f=d.pollTries??6;for(let c=0;!e.done&&c<f;c++){await (d.sleep??(a=>new Promise(b=>setTimeout(b,a))))(d.pollMs??2e3);let c=await ah(a,b,e.name,{fetch:d.fetch});if(!c.ok)return c;e=c.data}return{ok:!0,data:e}}let az={dns_record:(a={})=>({async prepare(b,c){let d=await (0,I.p)(b,"zone");if(!d||!d.resource.externalId)return{ok:!1,error:ar};let e=function(a,b){let c=a??{},d=x(c.type,10);if(!w.j.includes(d))return y("type","Only A, AAAA, CNAME and TXT records can be added here.");let e=function(a,b){let c=b.trim().toLowerCase().replace(/\.$/,""),d=a.trim().toLowerCase().replace(/\.$/,"");if(!d||!c||("@"===d?d=c:d===c||d.endsWith(`.${c}`)||(d=`${d}.${c}`),d.length>253))return null;let e=d===c?"":d.slice(0,-(c.length+1));return e&&!e.split(".").every((a,b)=>z.test(a)&&("*"!==a||0===b))?null:d}(x(c.name,260),b);if(!e)return y("name",`The name must be a host in ${b}, like shop or shop.${b}.`);let f="number"==typeof c.ttl?c.ttl:w.k,g=(0,w.V)({type:d,name:e},{content:x(c.content,4096),ttl:f,proxied:!0===c.proxied});return g.ok?{ok:!0,inputs:{zoneName:b.toLowerCase(),type:d,name:e,content:g.values.content,ttl:g.values.ttl,proxied:g.values.proxied}}:y(g.field,g.error)}(c,d.resource.name);if(!e.ok)return e;let f=await au(d.token,d.resource.externalId,e.inputs,a);return f.ok?{ok:!0,p:{inputs:e.inputs,accountId:d.account.id,targetResourceId:d.resource.id,targetLabel:d.resource.name,cost:f.cost}}:{ok:!1,error:f.error,field:"name"}},async run(b){let c=b.inputs,d=b.targetResourceId?await (0,I.p)(b.targetResourceId,"zone"):null;if(!d||!d.resource.externalId)return as(ar);let e=await au(d.token,d.resource.externalId,c,a);if(!e.ok)return as(e.error);let f=await Y(d.token,d.resource.externalId,{type:c.type,name:c.name,content:c.content,ttl:c.ttl,proxied:c.proxied},{fetch:a.fetch});if(!f.ok)return{ok:!1,checked:!1,error:f.error,...f.maybe?{maybe:!0}:{}};let g=!1;try{g=!!await (a.refreshZone??O)(d.resource.id,d.token,d.resource.externalId,{fetch:a.fetch})}catch{g=!1}return{ok:!0,result:{id:f.data.id,name:f.data.name},message:`Added ${c.type} ${f.data.name}. ${g?"It shows on the DNS page now.":"It shows on the DNS page after the next hourly read."}`}}}),neon_branch:(a={})=>({async prepare(b,c){let d=await (0,I.p)(b,"neon_project");if(!d)return{ok:!1,error:ar};let e=function(a,b){let c=a??{},d=x(c.name,80).trim();if(!A.test(d))return y("name","Use 1 to 63 lower-case letters, digits and hyphens, starting with a letter or digit.");let e=x(c.parentId,80);return B.test(e)?{ok:!0,inputs:{projectName:b,parentId:e,name:d}}:y("parentId","Pick the branch to copy from.")}(c,d.resource.name);if(!e.ok)return e;let f=await (0,ai.e)(d.token,d.resource.externalId,{fetch:a.fetch});if(!f.ok)return{ok:!1,error:`Couldn't read this project's branches just now: ${f.error}`};let g=C(f.data,e.inputs);if(!g.ok)return{ok:!1,error:g.error,field:"name"};let h=f.data.find(a=>a.id===e.inputs.parentId)?.name??e.inputs.parentId;return{ok:!0,p:{inputs:{...e.inputs,parentName:h},accountId:d.account.id,targetResourceId:d.resource.id,targetLabel:d.resource.name,cost:g.cost}}},async run(b){let c=b.inputs,d=b.targetResourceId?await (0,I.p)(b.targetResourceId,"neon_project"):null;if(!d)return as(ar);let e=await (0,ai.e)(d.token,d.resource.externalId,{fetch:a.fetch});if(!e.ok)return as(`Couldn't read this project's branches just now: ${e.error}`);let f=C(e.data,c);if(!f.ok)return as(f.error);let g=await ak(d.token,d.resource.externalId,{name:c.name,parentId:c.parentId},{fetch:a.fetch});return g.ok?{ok:!0,result:{id:g.data.id,name:g.data.name},message:`Branch ${g.data.name} created without a compute. It shows on the Neon page within 5 minutes; Wake it there when you need it (that uses CU-hours).`}:"busy"===g.kind?{ok:!1,checked:!1,error:g.error}:at(g,"branch")}}),supabase_project:(a={})=>({async prepare(b,c){let d=await (0,r.Z)(b,"supabase");if(!d)return{ok:!1,error:ar};let e=function(a){let b=a??{},c=x(b.orgSlug,80);if(!F.test(c))return y("orgSlug","Pick an organization.");let d=x(b.name,80).trim();if(!E.test(d))return y("name","Use 1 to 63 letters, digits, spaces, dots, hyphens or underscores.");let e=x(b.region,30);return D.includes(e)?{ok:!0,inputs:{orgSlug:c,name:d,region:e}}:y("region","Pick a region from the list.")}(c);if(!e.ok)return e;let f=await av(d.token,e.inputs,a);return f.ok?{ok:!0,p:{inputs:{...e.inputs,orgName:f.orgName??e.inputs.orgSlug},accountId:d.id,targetResourceId:null,targetLabel:d.label,cost:f.cost}}:{ok:!1,error:f.error,field:"orgSlug"}},async run(b){let c=b.inputs,d=b.accountId?await (0,r.Z)(b.accountId,"supabase"):null;if(!d)return as(ar);let e=await av(d.token,c,a);if(!e.ok)return as(e.error);let f=function a(){let b=(0,t.randomBytes)(64),c="";for(let a of b)if(!(a>=248)&&32===(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[a%62]).length)break;return 32===c.length?c:a()}(),g=await aq(d.token,{orgSlug:c.orgSlug,name:c.name,region:c.region,dbPass:f},{fetch:a.fetch});return g.ok?{ok:!0,secret:f,result:{id:g.data.ref,name:g.data.name},message:`Project ${g.data.name} is being set up (about 2 minutes). Copy its database password now: the console doesn't keep it and can't show it again.`}:at(g,"project")}}),firebase_project:(a={})=>({async prepare(b,c){let d=function(a){let b=a??{},c=x(b.projectId,40).trim();if(!G.test(c)||/google|ssl|undefined|null/.test(c))return y("projectId",'6 to 30 lower-case letters, digits and hyphens, starting with a letter (Google refuses ids with "google").');let d=x(b.displayName,40).trim()||c.slice(0,30);return H.test(d)?{ok:!0,inputs:{projectId:c,displayName:d}}:y("displayName","4 to 30 letters, digits, spaces, hyphens, quotes or exclamation marks.")}(c);if(!d.ok)return d;let e=await aw(a);if(!e.ok)return{ok:!1,error:e.error};let f=await ax(e.data,d.inputs,a);return f.ok?{ok:!0,p:{inputs:d.inputs,accountId:null,targetResourceId:null,targetLabel:"Google account",cost:f.cost}}:{ok:!1,error:f.error,field:"projectId"}},async run(b){let c=b.inputs,d=await aw(a);if(!d.ok)return as(d.error);let e=await ax(d.data,c,a);if(!e.ok)return as(e.error);let f=await af(d.data,c,{fetch:a.fetch});if(!f.ok){let a=at(f,"project");return"scope"===f.kind?{...a,error:"Google refused to create the project (permission or quota). Check the project quota in the Google Cloud console."}:a}let g=a=>({ok:!0,result:{id:c.projectId,name:c.displayName,note:"firebase-pending"},message:`Google Cloud project ${c.projectId} was created without billing, but Firebase isn't on it yet (${a}). Open the Firebase console → Add project → choose ${c.projectId} to finish; nothing else is needed.`}),h=await ay(d.data,"crm",f.data,a);if(!h.ok||!h.data.done)return g("Google was still creating the project");if(h.data.error)return{ok:!1,checked:!1,error:`Google couldn't create the project (${h.data.error}). Check the Google Cloud console; nothing was charged.`};let i=await ag(d.data,c.projectId,{fetch:a.fetch});if(!i.ok)return g("scope"===i.kind?"enable the Firebase Management API on the OAuth client's project, and accept the Firebase terms once in the Firebase console":i.error);let j=await ay(d.data,"firebase",i.data,a);return j.ok&&j.data.done?j.data.error?g(`Firebase answered ${j.data.error}`):{ok:!0,result:{id:c.projectId,name:c.displayName},message:`Created Firebase project ${c.projectId} on the free Spark plan (no billing account). Watch it by adding a viewer service account for it in Connections.`}:{ok:!0,result:{id:c.projectId,name:c.displayName},message:`Created ${c.projectId}; Firebase is still being added (a minute or two). It stays on the free Spark plan: no billing account is attached.`}}})};var aA=a.i(192738),aB=a.i(49146),aC=a.i(492665),aD=a.i(552543),aE=a.i(446914);let aF={target:aB.Q,siteUrl:()=>(0,aC.f)().SITE_URL,lang:()=>(0,aD.I)("telegram"),send:(a,b,c)=>(0,aE.I)(a,b,c),record:(a,b)=>(0,aB.P)("telegram",a,b)};async function aG(a,b=aF){try{let c=await b.target();if(!c)return;let d=await b.send(c.token,c.chatId,function(a,b,c,d="en"){let e=`${c.replace(/\/+$/,"")}${i.K[a]}?create=${encodeURIComponent(b)}`;return["id"===d?`🙋 Permintaan baru: bikin ${(0,aA.H)(i.S[a])} di ${(0,aA.H)(i.E[a])}.`:`🙋 New request: create ${(0,aA.H)(i.S[a])} on ${(0,aA.H)(i.E[a])}.`,"id"===d?"Butuh persetujuan Owner (pakai kode authenticator) di console, berlaku 24 jam:":"Needs Owner approval (with the authenticator code) in the console, valid for 24 hours:",(0,aA.H)(e)].join("\n")}(a.type,a.id,b.siteUrl(),await b.lang().catch(()=>"en")));await b.record(d,new Date).catch(()=>void 0)}catch{console.warn("create notice failed")}}let aH=`Creating needs the token's "${ao}" permission (Organization → Projects → Create), plus "organizations_read" and "organization_admin_read" so the console can confirm the free plan. A token from Account → Access Tokens has them; a fine-grained token needs them added.`;async function aI(a,b){switch(a){case"dns_record":return{ok:!0,data:{type:a}};case"neon_branch":{let c=await (0,I.p)(b,"neon_project");if(!c)return{ok:!1,error:"This project isn't watched any more. Reload the page."};let d=await (0,ai.e)(c.token,c.resource.externalId);if(!d.ok)return{ok:!1,error:`Couldn't read the branches just now: ${d.error}`};return{ok:!0,data:{type:a,branches:d.data.map(a=>({id:a.id,name:a.name,isDefault:a.isDefault})),limit:u.a.branches}}}case"supabase_project":{let c=await (0,r.N)("supabase"),d=c.some(a=>a.id===b)?b:c[0]?.id??null,e={type:a,accounts:c,accountId:d,orgs:[],active:0,limit:v.V,scopeNote:aH};if(!d)return{ok:!0,data:{...e,orgs:[]}};let f=await (0,r.Z)(d,"supabase");if(!f)return{ok:!0,data:{...e,orgs:[],error:"This account's credential can't be read."}};let[g,h]=await Promise.all([ap(f.token),(0,al.X)(f.token)]);if(!g.ok)return{ok:!0,data:{...e,orgs:[],error:"scope"===g.kind?"This token can't list organizations.":g.error}};let i=await Promise.all(g.data.map(async a=>{let b=await (0,al.K)(f.token,a.slug);return{slug:a.slug,name:a.name,plan:b.ok?b.data:null}})),j=new Set(i.filter(a=>a.plan&&"free"!==a.plan).map(a=>a.slug)),k=h.ok?h.data.filter(a=>!j.has(a.orgSlug)&&(0,v.Z)(a.status)).length:0;return{ok:!0,data:{...e,orgs:i.map(a=>({...a,allowed:"free"===a.plan})),active:k}}}case"firebase_project":{let b=!!(0,h.p)(),c=await (0,r.a)(),d={type:a,envReady:b,connected:null!==c,connectedAt:c,projects:null,quotaHint:10};if(!b||null===c)return{ok:!0,data:{...d}};let e=await (0,r.d)(),f=(0,h.p)(),g=e&&f?await (0,h.B)(f,e.refreshToken):null;if(!g?.ok)return{ok:!0,data:{...d,error:"Google ended the grant (Testing mode lasts 7 days, or it was removed). Connect again."}};let i=await ac(g.accessToken);if(!i.ok)return{ok:!0,data:{...d,error:`Couldn't read your Google Cloud projects: ${i.error}`}};return{ok:!0,data:{...d,projects:i.data.filter(a=>"ACTIVE"===a.state).length}}}}}var aJ=a.i(323878),aK=a.i(312573),aL=a.i(75105),aM=a.i(713095);let aN="owner";async function aO(){let a=await (0,f.g)("owner"),b=await (0,f.x)();if(b?.aal!=="aal2")throw new e.W("mfa");return a}let aP={now:()=>new Date,quota:async a=>{let b=await (0,aJ.C)(aK.t.providerAction,a);return b.allowed?null:(0,aL.z)("member",b.retryAfter)},limitRequest:async a=>(await (0,aJ.C)(aK.t.createRequest,a)).allowed,executor:a=>az[a](),insert:a=>(0,r.z)(a),get:r.j,decide:r.Q,claim:r.b,finish:r.c,audit:q.f,notify:a=>aG(a)},aQ=()=>{try{(0,d.refresh)()}catch{}};async function aR(a,b,c){return(0,e.F)(aN,async d=>{let e=await m({id:d.id,userId:d.userId},a,b,c,aP);return e.ok&&aQ(),e},{requireActionMember:f.g})}async function aS(a,b){return(0,e.F)("owner",async c=>{let d=await o({id:c.id,userId:c.userId},a,b,aP);return aQ(),d},{requireActionMember:aO})}async function aT(a){return(0,e.F)("owner",async b=>{let c=await n({id:b.id,userId:b.userId},a,aP);return aQ(),c},{requireActionMember:aO})}async function aU(a,b){return(0,e.F)(aN,async c=>{let d=await aP.quota(c.id,`options:${a}`);return d?{ok:!1,error:d}:aI(a,b)},{requireActionMember:f.g})}async function aV(){return(0,e.F)("owner",async a=>{let b=(0,h.p)();if(!b)return{ok:!1,error:h.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,aC.f)(),f=(0,h.C)(),{verifier:i,challenge:j}=(0,h.U)();return(await (0,c.cookies)()).set(p.o,(0,g.G)({state:f,verifier:i,memberId:a.id,exp:Date.now()+1e3*g.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:p.B,maxAge:g.N}),{ok:!0,data:{url:(0,p.O)(b,{state:f,challenge:j,redirectUri:(0,p.E)(d)})}}},{requireActionMember:aO})}async function aW(){return(0,e.F)("owner",async a=>(await (0,r.k)(),await (0,q.f)({kind:"ok",message:"Google (create projects) disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),aQ(),{ok:!0,message:"Disconnected here. Remove Watchbell's access in your Google Account → Security → Third-party access as well."}),{requireActionMember:f.g})}(0,aM.ensureServerEntryExports)([aR,aS,aT,aU,aV,aW]),(0,b.registerServerReference)(aR,"705a440b85fd33fd7b91442b09c54cc15ee96328f4",null),(0,b.registerServerReference)(aS,"601a1b0e4888ed7c6f84e257df2950ce8931e1513c",null),(0,b.registerServerReference)(aT,"4072a42bceef7d76a00be4bdc041fe4032a97baca9",null),(0,b.registerServerReference)(aU,"60ac7c28e1dfcfdbce6b52f325a81bbd4611b5f482",null),(0,b.registerServerReference)(aV,"00e9d49bd210ed05a6cf03ae28ca1097a3bf5e8f99",null),(0,b.registerServerReference)(aW,"0042bf062c7f4fe622fdb9429b03ed5b1b4db97f68",null),a.s(["g",0,aS,"p",0,aU,"F",0,aW,"d",0,aT,"q",0,aR,"Y",0,aV],198398)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_create_actions_ts_05-86qr6kfjey._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[686779,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(93321),f=a.i(351674),g=a.i(548734),h=a.i(837137),i=a.i(45617),j=a.i(678831),k=a.i(418864),l=a.i(863443),m=a.i(188546);async function n(a,b){let[c]=await (0,g.f)().select({data:h.snapshots.data}).from(h.snapshots).where((0,e.u)(h.snapshots.resourceId,a)).limit(1),d=(0,m.q)(c?.data).records;if(!d.some(a=>a.id===b.id))return;let n={records:(0,l.l)(d,b)};await (0,g.f)().update(h.snapshots).set({data:f.B`${h.snapshots.data} || ${JSON.stringify(n)}::jsonb`}).where((0,e.u)(h.snapshots.resourceId,a)),await (0,k.x)(new Date),(0,j.J)([i.m.zones,i.m.domains])}var o=a.i(322145),p=a.i(683439),q=a.i(75105),r=a.i(44925),s=a.i(713095);let t={requireActionMember:d.g},u=/^[0-9a-f]{32}$/,v="Cloudflare can't find this record any more. It leaves this page after the next hourly read.",w=a=>({done:!1,message:a});function x(a){return a&&"object"==typeof a?"string"!=typeof a.content||a.content.length>4096||"number"!=typeof a.ttl||!Number.isFinite(a.ttl)||"boolean"!=typeof a.proxied?null:{content:a.content,ttl:a.ttl,proxied:a.proxied}:null}async function y(a,b){try{await n(a,b)}catch{console.warn("dns snapshot update failed")}}async function z(a,b,d,e){return(0,c.F)("owner",async c=>{var f;let g=x(d),h=x(e);if(!(0,p.f)(a)||"string"!=typeof b||!u.test(b)||!g||!h)return{ok:!1,error:q.w};let i=await (0,o.q)(c.id,"dns",b);if(i)return{ok:!1,error:i};let j=await (0,o.p)(a,"zone");if(!j||!j.resource.externalId)return{ok:!1,error:"This zone isn't watched any more, or its Cloudflare credential can't be read. Reload the page."};let k=j.resource.externalId,m=a=>(0,o.W)(a,c,j.account.id),n=await (0,r.B)(j.token,k,b);if(!n.ok)return m(w("scope"===n.kind?(0,q.b)("cloudflare",{}):"missing"===n.kind?v:n.error));let s=n.data;if(!(0,l.O)(s.type))return m(w("Only A, AAAA, CNAME and TXT records can be edited here."));if(!(0,l.J)(s,g))return await y(a,s),m(w(q.G));let t=(0,l.t)(s,h);if(!t.ok)return m(w(t.error));let z={type:s.type,name:s.name,content:t.values.content,ttl:t.values.ttl,...(0,l.z)(s.type)?{proxied:t.values.proxied}:{}},A=await (0,r.q)(j.token,k,b,z),B=(0,l.P)(s,t.changes);return A.ok?(await y(a,A.data),m({done:!0,message:1===(f=t.changes).length&&"proxied"===f[0].field?"DNS only"===f[0].after?`${s.name} is DNS only now. Cloudflare applies it within a minute.`:`${s.name} is proxied through Cloudflare now.`:`Saved ${s.type} ${s.name}. Cloudflare applies it within a minute; resolvers may keep the old value until its TTL runs out.`,audit:{message:B.message,resourceId:a,detail:B.detail}})):m({done:!1,failed:"scope"===A.kind?{ok:!1,kind:"scope",status:A.status,error:(0,q.b)("cloudflare",{})}:"missing"===A.kind?{ok:!1,kind:"missing",status:404,error:v}:{ok:!1,kind:A.kind,error:A.error,...A.status?{status:A.status}:{}},audit:{message:`DNS edit failed \xb7 ${s.type} ${s.name}`,resourceId:a}})},t)}(0,s.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"
|
|
1
|
+
module.exports=[686779,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(93321),f=a.i(351674),g=a.i(548734),h=a.i(837137),i=a.i(45617),j=a.i(678831),k=a.i(418864),l=a.i(863443),m=a.i(188546);async function n(a,b){let[c]=await (0,g.f)().select({data:h.snapshots.data}).from(h.snapshots).where((0,e.u)(h.snapshots.resourceId,a)).limit(1),d=(0,m.q)(c?.data).records;if(!d.some(a=>a.id===b.id))return;let n={records:(0,l.l)(d,b)};await (0,g.f)().update(h.snapshots).set({data:f.B`${h.snapshots.data} || ${JSON.stringify(n)}::jsonb`}).where((0,e.u)(h.snapshots.resourceId,a)),await (0,k.x)(new Date),(0,j.J)([i.m.zones,i.m.domains])}var o=a.i(322145),p=a.i(683439),q=a.i(75105),r=a.i(44925),s=a.i(713095);let t={requireActionMember:d.g},u=/^[0-9a-f]{32}$/,v="Cloudflare can't find this record any more. It leaves this page after the next hourly read.",w=a=>({done:!1,message:a});function x(a){return a&&"object"==typeof a?"string"!=typeof a.content||a.content.length>4096||"number"!=typeof a.ttl||!Number.isFinite(a.ttl)||"boolean"!=typeof a.proxied?null:{content:a.content,ttl:a.ttl,proxied:a.proxied}:null}async function y(a,b){try{await n(a,b)}catch{console.warn("dns snapshot update failed")}}async function z(a,b,d,e){return(0,c.F)("owner",async c=>{var f;let g=x(d),h=x(e);if(!(0,p.f)(a)||"string"!=typeof b||!u.test(b)||!g||!h)return{ok:!1,error:q.w};let i=await (0,o.q)(c.id,"dns",b);if(i)return{ok:!1,error:i};let j=await (0,o.p)(a,"zone");if(!j||!j.resource.externalId)return{ok:!1,error:"This zone isn't watched any more, or its Cloudflare credential can't be read. Reload the page."};let k=j.resource.externalId,m=a=>(0,o.W)(a,c,j.account.id),n=await (0,r.B)(j.token,k,b);if(!n.ok)return m(w("scope"===n.kind?(0,q.b)("cloudflare",{}):"missing"===n.kind?v:n.error));let s=n.data;if(!(0,l.O)(s.type))return m(w("Only A, AAAA, CNAME and TXT records can be edited here."));if(!(0,l.J)(s,g))return await y(a,s),m(w(q.G));let t=(0,l.t)(s,h);if(!t.ok)return m(w(t.error));let z={type:s.type,name:s.name,content:t.values.content,ttl:t.values.ttl,...(0,l.z)(s.type)?{proxied:t.values.proxied}:{}},A=await (0,r.q)(j.token,k,b,z),B=(0,l.P)(s,t.changes);return A.ok?(await y(a,A.data),m({done:!0,message:1===(f=t.changes).length&&"proxied"===f[0].field?"DNS only"===f[0].after?`${s.name} is DNS only now. Cloudflare applies it within a minute.`:`${s.name} is proxied through Cloudflare now.`:`Saved ${s.type} ${s.name}. Cloudflare applies it within a minute; resolvers may keep the old value until its TTL runs out.`,audit:{message:B.message,resourceId:a,detail:B.detail}})):m({done:!1,failed:"scope"===A.kind?{ok:!1,kind:"scope",status:A.status,error:(0,q.b)("cloudflare",{})}:"missing"===A.kind?{ok:!1,kind:"missing",status:404,error:v}:{ok:!1,kind:A.kind,error:A.error,...A.status?{status:A.status}:{}},audit:{message:`DNS edit failed \xb7 ${s.type} ${s.name}`,resourceId:a}})},t)}(0,s.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"7839e2a72c5c4bd574458680a0ce29c7f9fa4638ad",null),a.s(["f",0,z],686779)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_dns_actions_ts_1jzn58xzwbukz._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[704993,a=>{"use strict";var b=a.i(187924),c=a.i(105084),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(54901),j=a.i(814574),k=a.i(620214);let l=["76.76.21.21"],m=/(^|\.)vercel-dns(-\d+)?\.com$/;function n(a,b=[]){return"CNAME"===a.type?m.test(a.content.toLowerCase().replace(/\.$/,"")):"A"===a.type&&[...l,...b].includes(a.content.trim())}var o=a.i(45830),p=a.i(762802),q=a.i(405050);let r=(0,q.createServerReference)("
|
|
1
|
+
module.exports=[704993,a=>{"use strict";var b=a.i(187924),c=a.i(105084),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(54901),j=a.i(814574),k=a.i(620214);let l=["76.76.21.21"],m=/(^|\.)vercel-dns(-\d+)?\.com$/;function n(a,b=[]){return"CNAME"===a.type?m.test(a.content.toLowerCase().replace(/\.$/,"")):"A"===a.type&&[...l,...b].includes(a.content.trim())}var o=a.i(45830),p=a.i(762802),q=a.i(405050);let r=(0,q.createServerReference)("7839e2a72c5c4bd574458680a0ce29c7f9fa4638ad",q.callServer,void 0,q.findSourceMapURL,"editDnsRecordAction"),s="Owner only";function t({label:a,why:c}){return(0,b.jsx)("span",{title:c,className:"inline-flex",children:(0,b.jsx)(g.K,{size:"sm",disabled:!0,"aria-label":`${a}: ${c}`,children:a})})}function u({rows:a}){return(0,b.jsx)("span",{className:"mt-2 grid grid-cols-[auto_minmax(0,1fr)_auto_minmax(0,1fr)] items-baseline gap-x-2.5 gap-y-1.5 text-ink",children:a.map(a=>(0,b.jsxs)("span",{className:"contents",children:[(0,b.jsx)("span",{className:"text-ink-soft",children:a.label}),(0,b.jsx)("span",{className:"font-mono text-[12.5px] [overflow-wrap:anywhere]",children:a.before}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-ink-faint",children:"→"}),(0,b.jsx)("span",{className:"font-mono text-[12.5px] [overflow-wrap:anywhere]",children:a.after})]},a.label))})}let v=a=>({content:a.content,ttl:a.ttl,proxied:a.proxied});function w({zoneId:a,r:c}){let d=(0,f.useMask)(),e=n(c);return(0,b.jsx)(i.p,{label:"Set DNS only",title:d("text",`Set ${c.name} to DNS only?`),body:(0,b.jsx)(u,{rows:[{label:"Proxy",before:"Proxied through Cloudflare",after:e?"DNS only, straight to Vercel":"DNS only, straight to the origin"}]}),cta:"Set DNS only",run:()=>r(a,c.id,v(c),{...v(c),proxied:!1})})}let x={content:"Content",ttl:"TTL",proxied:"Proxy"};function y({zoneId:a,r:c,mask:e}){let[f,i]=(0,d.useState)(!1);return(0,h.useHoldRefresh)(f),(0,b.jsxs)(j.N,{open:f,onOpenChange:i,children:[(0,b.jsx)(j.a,{render:(0,b.jsx)(g.K,{size:"sm"}),children:"Edit"}),(0,b.jsx)(j.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:f&&(0,b.jsx)(z,{zoneId:a,r:c,mask:e,onDone:()=>i(!1)})})]})}function z({zoneId:a,r:f,mask:h,onDone:i}){let[l,m]=(0,d.useState)(f.content),[q,s]=(0,d.useState)(f.ttl),[t,w]=(0,d.useState)(f.proxied),[y,A]=(0,d.useState)(null),[B,C]=(0,d.useState)(null),[D,E]=(0,d.useTransition)(),F={content:l,ttl:q,proxied:t},G=(0,k.z)(f.type),H=k.i.includes(f.ttl)?k.i:[...k.i,f.ttl].sort((a,b)=>a-b),I=t&&n({type:f.type,content:l}),J=a=>B?.field===a?B.text:void 0;return(0,b.jsxs)(b.Fragment,{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.jsx)(j.F,{className:"text-base",children:h("text",y?`Save ${f.type} record ${f.name}?`:`Edit ${f.type} record ${f.name}`)}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:y?(0,b.jsxs)(b.Fragment,{children:["Cloudflare changes this record now. Nothing else in the zone changes, and nothing is deleted.",(0,b.jsx)(u,{rows:y.map(a=>({label:x[a.field],before:h("text",a.before),after:h("text",a.after)}))})]}):"Type and name stay as they are. Watchbell never creates or deletes records here."})]})]}),!y&&(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(g.O,{id:"dns-type",label:"Type",children:(0,b.jsx)("input",{id:"dns-type",className:g.S,value:f.type,readOnly:!0,disabled:!0})}),(0,b.jsx)(g.O,{id:"dns-name",label:"Name",children:(0,b.jsx)("input",{id:"dns-name",className:g.S,value:h("text",f.name),readOnly:!0,disabled:!0})})]}),(0,b.jsx)(g.O,{id:"dns-content",label:"Content",error:J("content"),help:"CNAME"===f.type||"A"===f.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,b.jsx)("input",{id:"dns-content",className:g.S,value:l,spellCheck:!1,autoComplete:"off",maxLength:2048,"aria-invalid":!!J("content"),onChange:a=>m(a.target.value)})}),(0,b.jsx)(g.O,{id:"dns-ttl",label:"TTL",error:J("ttl"),help:t?"A proxied record always uses Auto.":void 0,children:(0,b.jsx)("select",{id:"dns-ttl",className:g.S,value:t?1:q,disabled:t,onChange:a=>s(Number(a.target.value)),children:H.map(a=>(0,b.jsx)("option",{value:a,children:(0,p.f)(a)},a))})}),G&&(0,b.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"accent-brand",checked:t,onChange:a=>w(a.target.checked)}),"Proxied through Cloudflare (orange cloud)"]}),J("proxied")&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:J("proxied")})]}),I&&(0,b.jsx)("div",{className:"mb-3.5",children:(0,b.jsx)(g.M,{tone:"warning",title:"Vercel recommends DNS only here",children:"Proxying a record that points to Vercel can stop its certificate from renewing."})}),B?.field==="form"&&(0,b.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:B.text})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:y?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.K,{onClick:()=>A(null),disabled:D,children:"Back"}),(0,b.jsx)(g.K,{variant:"primary",onClick:function(){E(async()=>{try{let b=(0,o.f)(await r(a,f.id,v(f),F),a=>h("text",a));b.ok?(e.c.success(b.message),i()):e.c.error(b.message)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:D,children:D?"Saving…":"Save record"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.K,{onClick:i,children:"Keep as is"}),(0,b.jsx)(g.K,{variant:"primary",onClick:function(){let a=(0,k.V)(f,F);if(!a.ok)return C({field:a.field,text:a.error});let b=(0,k.t)(f,F);if(!b.ok)return C({field:"form",text:b.error});C(null),A(b.changes)},children:"Review"})]})})]})}a.s(["DnsRecordActions",0,function({zoneId:a,r:c,owner:d,vercel:e}){let g=(0,f.useMask)(),h=c.proxied&&e;return d?(0,b.jsxs)("div",{className:"flex gap-1.5",children:[h&&(0,b.jsx)(w,{zoneId:a,r:c}),(0,k.O)(c.type)?(0,b.jsx)(y,{zoneId:a,r:c,mask:g}):(0,b.jsx)(t,{label:"Edit",why:"Only A, AAAA, CNAME and TXT records can be edited here."})]}):(0,b.jsxs)("div",{className:"flex gap-1.5",children:[h&&(0,b.jsx)(t,{label:"Set DNS only",why:s}),(0,b.jsx)(t,{label:"Edit",why:s})]})},"SetDnsOnlyButton",0,w],704993)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_dns_record-actions_tsx_0cqmz51zcuebv._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[332429,a=>{"use strict";var b=a.i(187924),c=a.i(823292),d=a.i(188406),e=a.i(405050);let f=(0,e.createServerReference)("
|
|
1
|
+
module.exports=[332429,a=>{"use strict";var b=a.i(187924),c=a.i(823292),d=a.i(188406),e=a.i(405050);let f=(0,e.createServerReference)("40541fad834531d4b3535c75dd1d4f95d61df41dc3",e.callServer,void 0,e.findSourceMapURL,"runHealthCheckAction");a.s(["FirestoreRowMenu",0,function({id:a,label:e,alias:g,links:h}){let i=[...h,{label:"Run health check",onSelect:()=>{let b=c.c.loading(`Checking ${g}…`);f(a).then(a=>a.ok?c.c.success(`${g}: ${a.message??"checked"}`,{id:b}):c.c.error(`${g}: ${a.error}`,{id:b})).catch(()=>c.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b}))}}];return(0,b.jsx)(d.RowMenu,{label:e,items:i})}],332429)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_firebase_row-menu_tsx_0hssoq3pqjl-n._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[785582,a=>{"use strict";var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(771378),f=a.i(619089),g=a.i(728951),h=a.i(368114);function i(a){return"fatal"===a||"error"===a?"error":"warning"===a?"warning":"info"}var j=a.i(405050);let k=(0,j.createServerReference)("
|
|
1
|
+
module.exports=[785582,a=>{"use strict";var b=a.i(187924),c=a.i(834295),d=a.i(572131),e=a.i(771378),f=a.i(619089),g=a.i(728951),h=a.i(368114);function i(a){return"fatal"===a||"error"===a?"error":"warning"===a?"warning":"info"}var j=a.i(405050);let k=(0,j.createServerReference)("401840a82f537f21e6847d2ad81c713460cf0b2815",j.callServer,void 0,j.findSourceMapURL,"readLastHour"),l={info:"text-code-info",warning:"text-code-warn",error:"text-code-err"};a.s(["LogViewer",0,function({mode:a,apps:j,appId:m,initial:n,vercelUrl:o}){var p,q;let r,s="live"===a,[t,u]=(0,d.useState)(n),v=(0,e.useMask)(),[w,x]=(0,d.useState)(""),[y,z]=(0,d.useState)(""),[A,B]=(0,d.useState)(""),[C,D]=(0,d.useState)(!0),[E,F]=(0,d.useState)(null),[G,H]=(0,d.useState)(0),[I,J]=(0,d.useState)([]),[K,L]=(0,d.useState)(null),[M,N]=(0,d.useTransition)(),O=(0,d.useRef)(!1),P=(0,d.useRef)(null),Q=j.find(a=>a.name===w)?.id??null,R=m??Q;(0,d.useEffect)(()=>{O.current=M},[M]);let S=(0,d.useCallback)(()=>{N(async()=>{let a=await k(R);a.ok&&a.data?(L(null),J(a.data.problems),u(a.data.lines.slice(-500)),F(Date.parse(a.data.readAt)),H(Date.now())):L(a.ok?"Couldn't read the logs. Try again.":a.error)})},[R]);(0,d.useEffect)(()=>{if(!s)return;let a=setTimeout(S,0);return()=>clearTimeout(a)},[s,S]),(0,d.useEffect)(()=>{if(!s||!C)return;let a=setInterval(()=>{"visible"!==document.visibilityState||O.current||S()},15e3);return()=>clearInterval(a)},[s,C,S]),(0,d.useEffect)(()=>{if(!s)return;let a=setInterval(()=>H(Date.now()),5e3);return()=>clearInterval(a)},[s]);let T=(r=(p={app:m?"":w,level:y,text:A}).text.trim().toLowerCase(),t.filter(a=>(!p.app||a.app===p.app)&&(!p.level||i(a.level)===p.level)&&(!r||`${a.app} ${a.text}`.toLowerCase().includes(r))));return(0,d.useEffect)(()=>{let a=P.current;a&&(a.scrollTop=a.scrollHeight)},[t]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[!m&&(0,b.jsxs)("select",{className:(0,h.f)(f.S,"w-auto"),"aria-label":"Project",value:w,onChange:a=>x(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"All projects"}),j.map(a=>(0,b.jsx)("option",{value:a.name,children:v("app",a.name)},a.id))]}),(0,b.jsxs)("select",{className:(0,h.f)(f.S,"w-auto"),"aria-label":"Level",value:y,onChange:a=>z(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"All levels"}),s&&(0,b.jsx)("option",{value:"info",children:"Info"}),(0,b.jsx)("option",{value:"warning",children:"Warning"}),(0,b.jsx)("option",{value:"error",children:"Error"})]}),s?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("label",{className:"inline-flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"accent-brand",checked:C,onChange:a=>D(a.target.checked)})," Auto-refresh every 15s"]}),(0,b.jsx)(f.K,{size:"sm",disabled:M,onClick:S,children:M?"Fetching…":"Fetch now"})]}):(0,b.jsx)("input",{className:(0,h.f)(f.S,"w-[200px] max-[720px]:w-full"),placeholder:"Search messages","aria-label":"Search messages",value:A,onChange:a=>B(a.target.value)}),o&&(0,b.jsxs)("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:(0,f.R)({variant:"ghost",size:"sm"}),children:["Open in Vercel ",(0,b.jsx)(c.f,{size:14,"aria-hidden":!0})]}),(0,b.jsx)("span",{className:"ml-auto flex items-center text-[12.5px] text-ink-soft",children:s?(0,b.jsxs)(b.Fragment,{children:["Vercel request logs · last 1 hour · ",function(a,b){if(null===a)return"reading…";let c=Math.max(0,Math.round((b-a)/1e3));return c<5?"read just now":c<60?`read ${c}s ago`:`read ${Math.floor(c/60)} min ago`}(E,G),(0,b.jsx)(g.Src,{kind:"api"})]}):(0,b.jsxs)(b.Fragment,{children:["Copied by the collector every 5 min · kept 7 days",(0,b.jsx)(g.Src,{kind:"calc"})]})})]}),K&&(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-2 text-[12.5px] text-err max-[720px]:px-3.5",children:K}),I.length>0&&(0,b.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft max-[720px]:px-3.5",children:v("text",I.join(" · "))}),(0,b.jsx)("div",{ref:P,tabIndex:0,"aria-label":s?"Request log lines of the last hour":"Stored warning and error log lines",className:"h-[420px] overflow-auto rounded-b-lg bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===T.length?(0,b.jsx)("div",{className:"whitespace-normal text-code-dim",children:(q={live:s,reading:null===E&&!K,level:y}).live?q.reading?"Reading the last hour…":"error"===q.level?"No errors in the last hour. Error means the server failed (a 5xx or a crash). A wrong password or a missing page is not one, and a sign-in the browser sends straight to Supabase or Firebase never reaches these logs.":"warning"===q.level?"No warnings in the last hour.":"No log lines in this window.":"No warnings or errors stored in the last 7 days."}):T.map(a=>(0,b.jsxs)("div",{className:"whitespace-pre",children:[(0,b.jsx)("time",{className:"text-code-dim",children:a.time})," ",(0,b.jsx)("span",{className:l[i(a.level)],children:a.level.toUpperCase().padEnd(7)})," ",(0,b.jsx)("span",{className:"text-code-proj",children:v("app",a.app).padEnd(17)})," ",v("text",a.text)]},a.id))})]})}],785582)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_logs_log-viewer_tsx_0v3e4cflfk14w._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[295129,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(405050);let g=(0,f.createServerReference)("
|
|
1
|
+
module.exports=[295129,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(405050);let g=(0,f.createServerReference)("6035e030de87e2ea0834cb2c4bb05192320140487a",f.callServer,void 0,f.findSourceMapURL,"setSectionOn");a.s(["SectionSwitch",0,function({section:a,label:f,state:h,stops:i}){let[j,k]=(0,c.useTransition)(),[l,m]=(0,c.useState)({server:h,value:"on"===h}),n=l.server===h?l:{server:h,value:"on"===h};n!==l&&m(n);let o=n.value,p=a=>m(b=>({...b,value:a})),[q,r]=(0,c.useState)(!1),s="waiting"===h;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("label",{className:`relative inline-flex items-center ${s?"cursor-not-allowed":"cursor-pointer"}`,title:`${f}: ${s?"not connected yet":o?"on":"off"}`,children:[(0,b.jsx)("input",{type:"checkbox",role:"switch",className:"peer sr-only",checked:o,disabled:j||s,"aria-label":`${f} section`,onChange:b=>{b.target.checked?(p(!0),k(async()=>{let b=await g(a,!0);b.ok?d.c.success(b.message??"Saved."):(p(!1),d.c.error(b.error))})):r(!0)}}),(0,b.jsx)("span",{className:"h-5 w-9 rounded-full bg-line-strong transition-colors peer-checked:bg-brand peer-focus-visible:ring-2 peer-focus-visible:ring-brand/40 peer-disabled:opacity-60"}),(0,b.jsx)("span",{className:"absolute left-0.5 top-0.5 size-4 rounded-full bg-surface transition-transform peer-checked:translate-x-4"})]}),(0,b.jsx)(e.f,{open:q,onOpenChange:r,title:`Turn ${f} off?`,body:`${i} Its data is kept.`,cta:`Turn ${f} off`,danger:"hosting"===a,onConfirm:async()=>{let b=await g(a,!1);return b.ok&&p(!1),{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],295129)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_manage_sections_section-switch_tsx_1mfs-o_357i22._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[739518,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(600079),e=a.i(109307),f=a.i(221084),g=a.i(895176),h=a.i(305731),i=a.i(492665),j=a.i(767163),k=a.i(683439),l=a.i(201516),m=a.i(312573),n=a.i(323878),o=a.i(713095);let p={requireActionMember:e.g},q="Something in that request wasn't valid.";async function r(a,b){if(!a.ok)return{ok:!1,error:a.error};if(a.audit)try{await (0,f.f)({kind:!1===a.passed?"err":"ok",...a.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:a.message,data:{passed:a.passed??!0}}}async function s(a,b){let c=await r(a,b);return c.ok?{ok:!0,message:c.message,data:{pingUrl:a.ok&&a.token?(0,j.J)((0,i.f)().SITE_URL,a.token):null}}:{ok:!1,error:c.error}}async function t(a){let b=await (0,n.C)(m.t.monitorWrite,a.id);return b.allowed?null:{ok:!1,error:`Too many changes. Try again in ${(0,m.H)(b.retryAfter)}.`}}async function u(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.Y)(b);return d.ok?await t(c)??await r(await (0,g.$)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function v(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.Y)(b);return d.ok?await t(c)??await r(await (0,g.q)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function w(a){return(0,d.F)("operator",async b=>(0,k.f)(a)?await t(b)??await r(await (0,h.f)(a),b):{ok:!1,error:q},p,"local")}async function x(a,b){return(0,d.F)("operator",async c=>(0,k.f)(a)&&"boolean"==typeof b?await t(c)??await r(await (0,g.C)(a,b),c):{ok:!1,error:q},p,"local")}async function y(a,b){return(0,d.F)("operator",async c=>(0,k.f)(a)&&"boolean"==typeof b?await t(c)??await r(await (0,g.f)(a,b),c):{ok:!1,error:q},p,"local")}async function z(a){return(0,d.F)("operator",async b=>(0,k.f)(a)?await t(b)??await r(await (0,g.j)(a),b):{ok:!1,error:q},p,"local")}async function A(a){return(0,d.F)("operator",async b=>{if(!(0,k.f)(a))return{ok:!1,error:q};let c=await (0,n.C)(m.t.check,b.id);return c.allowed?r(await (0,g.X)(a),b):{ok:!1,error:`Too many checks. Try again in ${(0,m.H)(c.retryAfter)}.`}},p,"local")}async function B(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.a)(b);return d.ok?await t(c)??await s(await (0,g._)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function C(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.a)(b);return d.ok?await t(c)??await s(await (0,g.G)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function D(a){return(0,d.F)("operator",async b=>(0,k.f)(a)?await t(b)??await s(await (0,g.R)(a),b):{ok:!1,error:q},p,"local")}async function E(a,b){return(0,d.F)("operator",async c=>(0,k.f)(a)&&("ok"===b||"fail"===b)?await t(c)??await r(await (0,g.p)(a,b),c):{ok:!1,error:q},p,"local")}(0,o.ensureServerEntryExports)([u,v,w,x,y,z,A,B,C,D,E]),(0,b.registerServerReference)(u,"
|
|
1
|
+
module.exports=[739518,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(600079),e=a.i(109307),f=a.i(221084),g=a.i(895176),h=a.i(305731),i=a.i(492665),j=a.i(767163),k=a.i(683439),l=a.i(201516),m=a.i(312573),n=a.i(323878),o=a.i(713095);let p={requireActionMember:e.g},q="Something in that request wasn't valid.";async function r(a,b){if(!a.ok)return{ok:!1,error:a.error};if(a.audit)try{await (0,f.f)({kind:!1===a.passed?"err":"ok",...a.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:a.message,data:{passed:a.passed??!0}}}async function s(a,b){let c=await r(a,b);return c.ok?{ok:!0,message:c.message,data:{pingUrl:a.ok&&a.token?(0,j.J)((0,i.f)().SITE_URL,a.token):null}}:{ok:!1,error:c.error}}async function t(a){let b=await (0,n.C)(m.t.monitorWrite,a.id);return b.allowed?null:{ok:!1,error:`Too many changes. Try again in ${(0,m.H)(b.retryAfter)}.`}}async function u(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.Y)(b);return d.ok?await t(c)??await r(await (0,g.$)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function v(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.Y)(b);return d.ok?await t(c)??await r(await (0,g.q)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function w(a){return(0,d.F)("operator",async b=>(0,k.f)(a)?await t(b)??await r(await (0,h.f)(a),b):{ok:!1,error:q},p,"local")}async function x(a,b){return(0,d.F)("operator",async c=>(0,k.f)(a)&&"boolean"==typeof b?await t(c)??await r(await (0,g.C)(a,b),c):{ok:!1,error:q},p,"local")}async function y(a,b){return(0,d.F)("operator",async c=>(0,k.f)(a)&&"boolean"==typeof b?await t(c)??await r(await (0,g.f)(a,b),c):{ok:!1,error:q},p,"local")}async function z(a){return(0,d.F)("operator",async b=>(0,k.f)(a)?await t(b)??await r(await (0,g.j)(a),b):{ok:!1,error:q},p,"local")}async function A(a){return(0,d.F)("operator",async b=>{if(!(0,k.f)(a))return{ok:!1,error:q};let c=await (0,n.C)(m.t.check,b.id);return c.allowed?r(await (0,g.X)(a),b):{ok:!1,error:`Too many checks. Try again in ${(0,m.H)(c.retryAfter)}.`}},p,"local")}async function B(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.a)(b);return d.ok?await t(c)??await s(await (0,g._)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function C(a,b){return(0,d.F)("operator",async c=>{if(!(0,k.f)(a))return{ok:!1,error:q};let d=(0,l.a)(b);return d.ok?await t(c)??await s(await (0,g.G)(a,d.value),c):{ok:!1,error:"Check the highlighted fields.",fieldErrors:d.fieldErrors}},p,"local")}async function D(a){return(0,d.F)("operator",async b=>(0,k.f)(a)?await t(b)??await s(await (0,g.R)(a),b):{ok:!1,error:q},p,"local")}async function E(a,b){return(0,d.F)("operator",async c=>(0,k.f)(a)&&("ok"===b||"fail"===b)?await t(c)??await r(await (0,g.p)(a,b),c):{ok:!1,error:q},p,"local")}(0,o.ensureServerEntryExports)([u,v,w,x,y,z,A,B,C,D,E]),(0,b.registerServerReference)(u,"60d9f3c78334f59bc69f9fd0cfe922a0b12a4daf5a",null),(0,b.registerServerReference)(v,"60160b67357930aa00a977c5c11af1c0983605cc36",null),(0,b.registerServerReference)(w,"40106b2083ff5a0a9600063dd6c24d26972779d88c",null),(0,b.registerServerReference)(x,"603c1f54b4feff574043c7551655872f0bd3fe8bdb",null),(0,b.registerServerReference)(y,"6003085d6872ede55b3266b491875ca427250dc8b6",null),(0,b.registerServerReference)(z,"4092d056d912232747fae88e73761456c83ffa0030",null),(0,b.registerServerReference)(A,"40b57c7be3e291d58c566adf99df759363358c5825",null),(0,b.registerServerReference)(B,"60bf121a26d569bbe2e8bd8c0a1022566522f8641a",null),(0,b.registerServerReference)(C,"60ad11dda692f123b835534df8db2c1ec2724f1374",null),(0,b.registerServerReference)(D,"402ab308838bdbf3468a6df679451504c3ad9345f1",null),(0,b.registerServerReference)(E,"60dc160baad381bd86307d8cb312759f891dd94ff2",null),a.s(["I",0,B,"Y",0,u,"w",0,A,"V",0,C,"B",0,v,"l",0,D,"L",0,y,"H",0,x,"W",0,E,"x",0,z,"C",0,w])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_monitor-actions_ts_10w3h7myk2ppi._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[653353,a=>{"use strict";var b=a.i(187924),c=a.i(834295),d=a.i(122127),e=a.i(572131),f=a.i(546615),g=a.i(619089),h=a.i(368114);let i={CRITICAL:"Critical",HIGH:"High",MODERATE:"Moderate",LOW:"Low",UNKNOWN:"Unknown"},j={CRITICAL:"bg-err-soft text-err",HIGH:"bg-err-soft text-err",MODERATE:"bg-warn-soft text-warn",LOW:"bg-brand-soft text-brand",UNKNOWN:"bg-brand-soft text-brand"};function k({severity:a}){return(0,b.jsx)("span",{className:(0,h.f)("inline-block whitespace-nowrap rounded-[5px] px-2 py-px text-xs font-medium",j[a]),children:i[a]})}j.CRITICAL,j.MODERATE,j.LOW;var l=a.i(286597),m=a.i(462007);let n=a=>/^USN-\d+-\d+$/.test(a)?`https://ubuntu.com/security/notices/${a}`:null;function o(a){let b=a.trim(),c=0,d=b.indexOf(":");d>0&&/^\d+$/.test(b.slice(0,d))&&(c=Number(b.slice(0,d)),b=b.slice(d+1));let e=b.lastIndexOf("-");return e>=0?[c,b.slice(0,e),b.slice(e+1)]:[c,b,""]}function p(a){return void 0===a?0:"~"===a?-1:/[A-Za-z]/.test(a)?a.charCodeAt(0):a.charCodeAt(0)+256}function q(a,b){let c=0,d=0;for(;c<a.length||d<b.length;){for(;c<a.length&&!/\d/.test(a[c])||d<b.length&&!/\d/.test(b[d]);){let e=c<a.length&&!/\d/.test(a[c])?a[c]:void 0,f=d<b.length&&!/\d/.test(b[d])?b[d]:void 0,g=p(e)-p(f);if(0!==g)return g;void 0!==e&&c++,void 0!==f&&d++}let e="",f="";for(;c<a.length&&/\d/.test(a[c]);)e+=a[c++];for(;d<b.length&&/\d/.test(b[d]);)f+=b[d++];if(e=e.replace(/^0+/,""),f=f.replace(/^0+/,""),e.length!==f.length)return e.length-f.length;if(e!==f)return e<f?-1:1}return 0}function r(a){let b=[...new Set(a.flatMap(a=>a.binaries))].sort();return b.length?`sudo apt update && sudo apt install --only-upgrade ${b.join(" ")}`:null}let s=a=>/^CVE-\d{4}-\d{4,}$/.test(a)?`https://nvd.nist.gov/vuln/detail/${a}`:null,t=a=>"number"==typeof a&&Number.isFinite(a)?a.toFixed(1):null;var u=a.i(147474),v=a.i(405050);let w=(0,v.createServerReference)("004e2055ecb5d2fdaba6a734c95672ac23bef5186a",v.callServer,void 0,v.findSourceMapURL,"scanNowAction"),x="grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dt]:text-ink-soft",y="font-mono text-[12.5px]",z={target:"_blank",rel:"noopener noreferrer"};function A({text:a}){return(0,b.jsxs)("div",{className:"flex min-w-0 items-start gap-2 rounded-md bg-code-bg px-3 py-2",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 font-mono text-[12px] text-code-text [overflow-wrap:anywhere]",children:a}),(0,b.jsx)(f.CopyButton,{text:a})]})}function B({u:a}){return(0,b.jsxs)("li",{className:"grid gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-0.5",children:[(0,b.jsx)("b",{className:"font-medium",children:a.source}),(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint [overflow-wrap:anywhere]"),children:[a.installed," → ",a.candidate]}),a.security&&(0,b.jsx)("span",{className:"text-[12px] text-ink-soft",children:"Ubuntu security update"})]}),a.error?(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)(l.Z,{state:"warn"}),(0,b.jsxs)("span",{children:["Fixed CVEs couldn't be read: ",a.error]})]}):0===a.fixes.length?(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:"No CVE listed for this update."}):(0,b.jsx)("ul",{className:"grid gap-2",children:a.fixes.map(a=>{let c,d;return(0,b.jsxs)("li",{className:"min-w-0 rounded-md border border-line px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(k,{severity:null===(c=a.cvss3)?"UNKNOWN":c>=9?"CRITICAL":c>=7?"HIGH":c>=4?"MODERATE":c>0?"LOW":"UNKNOWN"}),t(a.cvss3)&&(0,b.jsx)("span",{className:(0,h.f)(y,"font-medium"),title:"CVSS v3 base score",children:t(a.cvss3)}),(0,b.jsx)("a",{href:(d=a.cve,`https://ubuntu.com/security/${d}`),...z,className:(0,h.f)(y,"text-brand hover:underline"),children:a.cve}),a.priority&&(0,b.jsxs)("span",{className:"text-[12px] text-ink-faint",children:["Ubuntu priority: ",a.priority]})]}),a.summary&&(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:a.summary}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap gap-x-3 text-[12.5px]",children:[a.usns.map(a=>n(a)&&(0,b.jsx)("a",{href:n(a),...z,className:"text-brand hover:underline",children:a},a)),s(a.cve)&&(0,b.jsx)("a",{href:s(a.cve),...z,className:"text-brand hover:underline",children:"NVD"})]})]},a.cve)})}),(0,b.jsx)(A,{text:`sudo apt update && sudo apt install --only-upgrade ${[...a.binaries].sort().join(" ")}`})]})}a.s(["OsView",0,function({initial:a,owner:f,demo:i,now:j}){var k,n;let p,s,[t,v]=(0,e.useState)(a),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useTransition)(),G=j??new Date,H=f&&!i?(0,b.jsx)(g.K,{size:"sm",variant:t?"secondary":"primary",onClick:()=>F(async()=>{try{let a=await w();a.ok&&a.data?(v(a.data),D(null)):D(a.ok?"No answer.":a.error)}catch{D("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:E,children:E?"Scanning… (up to a minute)":"Scan now"}):null;if(!t)return(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)(g.k,{icon:d.f,title:"Not scanned yet",action:H,children:[f?"The daily job scans this machine; Scan now does it right away.":"The daily job scans this machine; the owner can scan now.",C&&(0,b.jsx)("p",{className:"mt-2 text-err",children:C})]})});let{security:I,other:J}=(k=t.updates,p=a=>a.security||a.fixes.length>0||null!==a.error,{security:k.filter(p),other:k.filter(a=>!p(a))}),K=r(I),L=t.kernel?!(n=t.kernel).running||n.runningVersion||n.newestInstalled?n.newestInstalled&&n.runningVersion&&function(a,b){let[c,d,e]=o(a),[f,g,h]=o(b);return c!==f?c-f:q(d,g)||q(e,h)}(n.newestInstalled,n.runningVersion)>0?{state:"warn",text:`Kernel ${n.newestInstalled} is installed, but ${n.runningVersion} is still running. Reboot to run it.`,command:"sudo reboot"}:n.update?{state:"warn",text:`A kernel update is waiting (${n.update.package} ${n.update.candidate}). Install it, then reboot.`,command:"sudo apt update && sudo apt full-upgrade"}:n.reboot.needed?{state:"warn",text:`An update waits for a reboot${n.reboot.packages.length?` (${n.reboot.packages.join(", ")})`:""}.`,command:"sudo reboot"}:{state:"ok",text:"The newest installed kernel is running.",command:null}:{state:"ok",text:`The running kernel (${n.running}) isn't from an Ubuntu package: the host it runs on updates it.`,command:null}:null,M=Object.entries(t.backlog.counts).sort((a,b)=>b[1]-a[1]),N=new Set(I.flatMap(a=>a.fixes.map(a=>a.cve))).size;return(0,b.jsxs)(b.Fragment,{children:[i&&(0,b.jsx)(g.M,{tone:"info",title:"Made-up data: the demo doesn't scan."}),C&&(0,b.jsx)(g.M,{tone:"danger",title:"Scan now failed",children:C}),t.failedAt&&t.error&&(0,b.jsx)(g.M,{tone:"warning",title:`The last scan failed ${(0,u.$)(new Date(t.failedAt),G)}`,children:`${t.error} These are the results from ${(0,u.$)(new Date(t.scannedAt),G)}.`}),"unsupported"===t.status&&(0,b.jsx)(g.M,{tone:"info",title:"This machine isn't checked",children:t.error??""}),"error"===t.status&&(0,b.jsx)(g.M,{tone:"danger",title:"The scan failed",children:t.error??"Unknown error."}),(0,b.jsx)(g.N,{title:"This machine",meta:H,children:(0,b.jsxs)("dl",{className:x,children:[(0,b.jsx)("dt",{children:"System"}),(0,b.jsx)("dd",{children:t.system??"Unknown"}),(0,b.jsx)("dt",{children:"Packages"}),(0,b.jsxs)("dd",{children:[t.packages.toLocaleString("en-US")," installed"]}),(0,b.jsx)("dt",{children:"Last scan"}),(0,b.jsx)("dd",{children:(0,u.$)(new Date(t.scannedAt),G)}),null!==t.aptListsAgeHours&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"apt package lists"}),(0,b.jsxs)("dd",{className:t.aptListsAgeHours>48?"text-warn-icon":void 0,children:["updated ",t.aptListsAgeHours<1?"within the hour":`${t.aptListsAgeHours} h ago`,t.aptListsAgeHours>48?": run sudo apt update, or updates may be missing here":""]})]}),!t.failedAt&&"ok"===t.status&&t.error&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"Note"}),(0,b.jsx)("dd",{className:"text-ink-soft",children:t.error})]})]})}),"ok"===t.status&&(0,b.jsxs)(b.Fragment,{children:[t.kernel&&L&&(0,b.jsxs)(g.N,{title:"Kernel",meta:(0,b.jsxs)("a",{href:(s=t.codename??"jammy",`https://ubuntu.com/security/notices?release=${encodeURIComponent(s)}&details=linux`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["What Ubuntu's kernel updates fix ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}),children:[(0,b.jsxs)("p",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(l.Z,{state:L.state}),(0,b.jsx)("span",{children:L.text})]}),(0,b.jsxs)("dl",{className:(0,h.f)(x,"mt-2"),children:[(0,b.jsx)("dt",{children:"Running"}),(0,b.jsxs)("dd",{className:y,children:[t.kernel.running??"Unknown",t.kernel.runningVersion?` (${t.kernel.runningVersion})`:""]}),(0,b.jsx)("dt",{children:"Newest installed"}),(0,b.jsx)("dd",{className:y,children:t.kernel.newestInstalled??"Unknown"})]}),L.command&&(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:L.command})}),(0,b.jsx)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:"Ubuntu tracks thousands of kernel CVEs; running the newest kernel it ships is how they get fixed, so Watchbell doesn't list them one by one."})]}),(0,b.jsx)(g.N,{title:I.length?`Security updates waiting (${I.length})`:"Security updates",meta:I.length?`${N} CVE${1===N?"":"s"} fixed by them`:void 0,flush:!0,children:I.length?(0,b.jsxs)(b.Fragment,{children:[K&&(0,b.jsxs)("div",{className:"px-[18px] pb-3",children:[(0,b.jsx)("p",{className:"mb-1.5 text-[13px] text-ink-soft",children:"Install them all at once:"}),(0,b.jsx)(A,{text:K})]}),(0,b.jsx)("ul",{"aria-label":"Security updates waiting",children:I.map(a=>(0,b.jsx)(B,{u:a},a.source))})]}):(0,b.jsxs)("p",{className:"flex items-start gap-1.5 px-[18px] pb-4",children:[(0,b.jsx)(l.Z,{state:"ok"}),(0,b.jsx)("span",{children:"No security update is waiting."})]})}),J.length>0&&(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["Other updates (",J.length,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Bug fixes and updates from other repositories; not listed as security fixes."}),(0,b.jsx)("ul",{className:"mt-2 grid gap-1 text-[13px]",children:J.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsx)("b",{className:"font-medium",children:a.source})," ",(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint"),children:[a.installed," → ",a.candidate]})]},a.source))}),(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:r(J)??""})})]})}),(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["No fix yet (",t.backlog.error?"couldn't be read":`${t.backlog.total.toLocaleString("en-US")} advisories in ${M.length} packages`,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Advisories OSV.dev lists for the installed packages without a fix it knows of: often low priority, deferred, or in universe packages Ubuntu doesn't support. Packages with an update waiting are left out (see above). OSV can lag Ubuntu, so open a package to see Ubuntu's current status."}),t.backlog.error?(0,b.jsx)("p",{className:"mt-2 text-ink-soft",children:t.backlog.error}):(0,b.jsxs)("div",{className:"mt-2 overflow-x-auto",children:[(0,b.jsxs)("table",{className:m.o,children:[(0,b.jsx)(m.U,{head:["Package","Advisories",""]}),(0,b.jsx)("tbody",{children:M.slice(0,25).map(([a,d])=>{let e;return(0,b.jsxs)("tr",{className:m.C,children:[(0,b.jsx)("td",{className:(0,h.f)(m.z,y),children:a}),(0,b.jsx)("td",{className:m.z,children:d.toLocaleString("en-US")}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsxs)("a",{href:(e=t.codename??"jammy",`https://ubuntu.com/security/cves?package=${encodeURIComponent(a)}&version=${encodeURIComponent(e)}`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["Ubuntu's tracker ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})})]},a)})})]}),M.length>25&&(0,b.jsxs)("p",{className:"mt-1.5 text-[12.5px] text-ink-faint",children:["And ",M.length-25," more packages."]})]})]})})]})]})}],653353)}];
|
|
1
|
+
module.exports=[653353,a=>{"use strict";var b=a.i(187924),c=a.i(834295),d=a.i(122127),e=a.i(572131),f=a.i(546615),g=a.i(619089),h=a.i(368114);let i={CRITICAL:"Critical",HIGH:"High",MODERATE:"Moderate",LOW:"Low",UNKNOWN:"Unknown"},j={CRITICAL:"bg-err-soft text-err",HIGH:"bg-err-soft text-err",MODERATE:"bg-warn-soft text-warn",LOW:"bg-brand-soft text-brand",UNKNOWN:"bg-brand-soft text-brand"};function k({severity:a}){return(0,b.jsx)("span",{className:(0,h.f)("inline-block whitespace-nowrap rounded-[5px] px-2 py-px text-xs font-medium",j[a]),children:i[a]})}j.CRITICAL,j.MODERATE,j.LOW;var l=a.i(286597),m=a.i(462007);let n=a=>/^USN-\d+-\d+$/.test(a)?`https://ubuntu.com/security/notices/${a}`:null;function o(a){let b=a.trim(),c=0,d=b.indexOf(":");d>0&&/^\d+$/.test(b.slice(0,d))&&(c=Number(b.slice(0,d)),b=b.slice(d+1));let e=b.lastIndexOf("-");return e>=0?[c,b.slice(0,e),b.slice(e+1)]:[c,b,""]}function p(a){return void 0===a?0:"~"===a?-1:/[A-Za-z]/.test(a)?a.charCodeAt(0):a.charCodeAt(0)+256}function q(a,b){let c=0,d=0;for(;c<a.length||d<b.length;){for(;c<a.length&&!/\d/.test(a[c])||d<b.length&&!/\d/.test(b[d]);){let e=c<a.length&&!/\d/.test(a[c])?a[c]:void 0,f=d<b.length&&!/\d/.test(b[d])?b[d]:void 0,g=p(e)-p(f);if(0!==g)return g;void 0!==e&&c++,void 0!==f&&d++}let e="",f="";for(;c<a.length&&/\d/.test(a[c]);)e+=a[c++];for(;d<b.length&&/\d/.test(b[d]);)f+=b[d++];if(e=e.replace(/^0+/,""),f=f.replace(/^0+/,""),e.length!==f.length)return e.length-f.length;if(e!==f)return e<f?-1:1}return 0}function r(a){let b=[...new Set(a.flatMap(a=>a.binaries))].sort();return b.length?`sudo apt update && sudo apt install --only-upgrade ${b.join(" ")}`:null}let s=a=>/^CVE-\d{4}-\d{4,}$/.test(a)?`https://nvd.nist.gov/vuln/detail/${a}`:null,t=a=>"number"==typeof a&&Number.isFinite(a)?a.toFixed(1):null;var u=a.i(147474),v=a.i(405050);let w=(0,v.createServerReference)("00356eeecb9dace6332660e848fe8ea62cfd1e7afd",v.callServer,void 0,v.findSourceMapURL,"scanNowAction"),x="grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dt]:text-ink-soft",y="font-mono text-[12.5px]",z={target:"_blank",rel:"noopener noreferrer"};function A({text:a}){return(0,b.jsxs)("div",{className:"flex min-w-0 items-start gap-2 rounded-md bg-code-bg px-3 py-2",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 font-mono text-[12px] text-code-text [overflow-wrap:anywhere]",children:a}),(0,b.jsx)(f.CopyButton,{text:a})]})}function B({u:a}){return(0,b.jsxs)("li",{className:"grid gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-0.5",children:[(0,b.jsx)("b",{className:"font-medium",children:a.source}),(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint [overflow-wrap:anywhere]"),children:[a.installed," → ",a.candidate]}),a.security&&(0,b.jsx)("span",{className:"text-[12px] text-ink-soft",children:"Ubuntu security update"})]}),a.error?(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)(l.Z,{state:"warn"}),(0,b.jsxs)("span",{children:["Fixed CVEs couldn't be read: ",a.error]})]}):0===a.fixes.length?(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:"No CVE listed for this update."}):(0,b.jsx)("ul",{className:"grid gap-2",children:a.fixes.map(a=>{let c,d;return(0,b.jsxs)("li",{className:"min-w-0 rounded-md border border-line px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(k,{severity:null===(c=a.cvss3)?"UNKNOWN":c>=9?"CRITICAL":c>=7?"HIGH":c>=4?"MODERATE":c>0?"LOW":"UNKNOWN"}),t(a.cvss3)&&(0,b.jsx)("span",{className:(0,h.f)(y,"font-medium"),title:"CVSS v3 base score",children:t(a.cvss3)}),(0,b.jsx)("a",{href:(d=a.cve,`https://ubuntu.com/security/${d}`),...z,className:(0,h.f)(y,"text-brand hover:underline"),children:a.cve}),a.priority&&(0,b.jsxs)("span",{className:"text-[12px] text-ink-faint",children:["Ubuntu priority: ",a.priority]})]}),a.summary&&(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:a.summary}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap gap-x-3 text-[12.5px]",children:[a.usns.map(a=>n(a)&&(0,b.jsx)("a",{href:n(a),...z,className:"text-brand hover:underline",children:a},a)),s(a.cve)&&(0,b.jsx)("a",{href:s(a.cve),...z,className:"text-brand hover:underline",children:"NVD"})]})]},a.cve)})}),(0,b.jsx)(A,{text:`sudo apt update && sudo apt install --only-upgrade ${[...a.binaries].sort().join(" ")}`})]})}a.s(["OsView",0,function({initial:a,owner:f,demo:i,now:j}){var k,n;let p,s,[t,v]=(0,e.useState)(a),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useTransition)(),G=j??new Date,H=f&&!i?(0,b.jsx)(g.K,{size:"sm",variant:t?"secondary":"primary",onClick:()=>F(async()=>{try{let a=await w();a.ok&&a.data?(v(a.data),D(null)):D(a.ok?"No answer.":a.error)}catch{D("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:E,children:E?"Scanning… (up to a minute)":"Scan now"}):null;if(!t)return(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)(g.k,{icon:d.f,title:"Not scanned yet",action:H,children:[f?"The daily job scans this machine; Scan now does it right away.":"The daily job scans this machine; the owner can scan now.",C&&(0,b.jsx)("p",{className:"mt-2 text-err",children:C})]})});let{security:I,other:J}=(k=t.updates,p=a=>a.security||a.fixes.length>0||null!==a.error,{security:k.filter(p),other:k.filter(a=>!p(a))}),K=r(I),L=t.kernel?!(n=t.kernel).running||n.runningVersion||n.newestInstalled?n.newestInstalled&&n.runningVersion&&function(a,b){let[c,d,e]=o(a),[f,g,h]=o(b);return c!==f?c-f:q(d,g)||q(e,h)}(n.newestInstalled,n.runningVersion)>0?{state:"warn",text:`Kernel ${n.newestInstalled} is installed, but ${n.runningVersion} is still running. Reboot to run it.`,command:"sudo reboot"}:n.update?{state:"warn",text:`A kernel update is waiting (${n.update.package} ${n.update.candidate}). Install it, then reboot.`,command:"sudo apt update && sudo apt full-upgrade"}:n.reboot.needed?{state:"warn",text:`An update waits for a reboot${n.reboot.packages.length?` (${n.reboot.packages.join(", ")})`:""}.`,command:"sudo reboot"}:{state:"ok",text:"The newest installed kernel is running.",command:null}:{state:"ok",text:`The running kernel (${n.running}) isn't from an Ubuntu package: the host it runs on updates it.`,command:null}:null,M=Object.entries(t.backlog.counts).sort((a,b)=>b[1]-a[1]),N=new Set(I.flatMap(a=>a.fixes.map(a=>a.cve))).size;return(0,b.jsxs)(b.Fragment,{children:[i&&(0,b.jsx)(g.M,{tone:"info",title:"Made-up data: the demo doesn't scan."}),C&&(0,b.jsx)(g.M,{tone:"danger",title:"Scan now failed",children:C}),t.failedAt&&t.error&&(0,b.jsx)(g.M,{tone:"warning",title:`The last scan failed ${(0,u.$)(new Date(t.failedAt),G)}`,children:`${t.error} These are the results from ${(0,u.$)(new Date(t.scannedAt),G)}.`}),"unsupported"===t.status&&(0,b.jsx)(g.M,{tone:"info",title:"This machine isn't checked",children:t.error??""}),"error"===t.status&&(0,b.jsx)(g.M,{tone:"danger",title:"The scan failed",children:t.error??"Unknown error."}),(0,b.jsx)(g.N,{title:"This machine",meta:H,children:(0,b.jsxs)("dl",{className:x,children:[(0,b.jsx)("dt",{children:"System"}),(0,b.jsx)("dd",{children:t.system??"Unknown"}),(0,b.jsx)("dt",{children:"Packages"}),(0,b.jsxs)("dd",{children:[t.packages.toLocaleString("en-US")," installed"]}),(0,b.jsx)("dt",{children:"Last scan"}),(0,b.jsx)("dd",{children:(0,u.$)(new Date(t.scannedAt),G)}),null!==t.aptListsAgeHours&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"apt package lists"}),(0,b.jsxs)("dd",{className:t.aptListsAgeHours>48?"text-warn-icon":void 0,children:["updated ",t.aptListsAgeHours<1?"within the hour":`${t.aptListsAgeHours} h ago`,t.aptListsAgeHours>48?": run sudo apt update, or updates may be missing here":""]})]}),!t.failedAt&&"ok"===t.status&&t.error&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"Note"}),(0,b.jsx)("dd",{className:"text-ink-soft",children:t.error})]})]})}),"ok"===t.status&&(0,b.jsxs)(b.Fragment,{children:[t.kernel&&L&&(0,b.jsxs)(g.N,{title:"Kernel",meta:(0,b.jsxs)("a",{href:(s=t.codename??"jammy",`https://ubuntu.com/security/notices?release=${encodeURIComponent(s)}&details=linux`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["What Ubuntu's kernel updates fix ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}),children:[(0,b.jsxs)("p",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(l.Z,{state:L.state}),(0,b.jsx)("span",{children:L.text})]}),(0,b.jsxs)("dl",{className:(0,h.f)(x,"mt-2"),children:[(0,b.jsx)("dt",{children:"Running"}),(0,b.jsxs)("dd",{className:y,children:[t.kernel.running??"Unknown",t.kernel.runningVersion?` (${t.kernel.runningVersion})`:""]}),(0,b.jsx)("dt",{children:"Newest installed"}),(0,b.jsx)("dd",{className:y,children:t.kernel.newestInstalled??"Unknown"})]}),L.command&&(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:L.command})}),(0,b.jsx)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:"Ubuntu tracks thousands of kernel CVEs; running the newest kernel it ships is how they get fixed, so Watchbell doesn't list them one by one."})]}),(0,b.jsx)(g.N,{title:I.length?`Security updates waiting (${I.length})`:"Security updates",meta:I.length?`${N} CVE${1===N?"":"s"} fixed by them`:void 0,flush:!0,children:I.length?(0,b.jsxs)(b.Fragment,{children:[K&&(0,b.jsxs)("div",{className:"px-[18px] pb-3",children:[(0,b.jsx)("p",{className:"mb-1.5 text-[13px] text-ink-soft",children:"Install them all at once:"}),(0,b.jsx)(A,{text:K})]}),(0,b.jsx)("ul",{"aria-label":"Security updates waiting",children:I.map(a=>(0,b.jsx)(B,{u:a},a.source))})]}):(0,b.jsxs)("p",{className:"flex items-start gap-1.5 px-[18px] pb-4",children:[(0,b.jsx)(l.Z,{state:"ok"}),(0,b.jsx)("span",{children:"No security update is waiting."})]})}),J.length>0&&(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["Other updates (",J.length,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Bug fixes and updates from other repositories; not listed as security fixes."}),(0,b.jsx)("ul",{className:"mt-2 grid gap-1 text-[13px]",children:J.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsx)("b",{className:"font-medium",children:a.source})," ",(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint"),children:[a.installed," → ",a.candidate]})]},a.source))}),(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:r(J)??""})})]})}),(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["No fix yet (",t.backlog.error?"couldn't be read":`${t.backlog.total.toLocaleString("en-US")} advisories in ${M.length} packages`,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Advisories OSV.dev lists for the installed packages without a fix it knows of: often low priority, deferred, or in universe packages Ubuntu doesn't support. Packages with an update waiting are left out (see above). OSV can lag Ubuntu, so open a package to see Ubuntu's current status."}),t.backlog.error?(0,b.jsx)("p",{className:"mt-2 text-ink-soft",children:t.backlog.error}):(0,b.jsxs)("div",{className:"mt-2 overflow-x-auto",children:[(0,b.jsxs)("table",{className:m.o,children:[(0,b.jsx)(m.U,{head:["Package","Advisories",""]}),(0,b.jsx)("tbody",{children:M.slice(0,25).map(([a,d])=>{let e;return(0,b.jsxs)("tr",{className:m.C,children:[(0,b.jsx)("td",{className:(0,h.f)(m.z,y),children:a}),(0,b.jsx)("td",{className:m.z,children:d.toLocaleString("en-US")}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsxs)("a",{href:(e=t.codename??"jammy",`https://ubuntu.com/security/cves?package=${encodeURIComponent(a)}&version=${encodeURIComponent(e)}`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["Ubuntu's tracker ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})})]},a)})})]}),M.length>25&&(0,b.jsxs)("p",{className:"mt-1.5 text-[12.5px] text-ink-faint",children:["And ",M.length-25," more packages."]})]})]})})]})]})}],653353)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_os_os-view_tsx_0xr69f5vtstls._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[760937,929941,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(93321),f=a.i(548734),g=a.i(837137),h=a.i(646324),i=a.i(469762),j=a.i(910697);async function k(){let a=await (0,f.f)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"app"),(0,e.u)(g.resources.monitored,!0))).orderBy(g.resources.name).limit(j.O.apps),b=await (0,f.f)().select({id:g.resources.id,name:g.resources.name,parentId:g.resources.parentId}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"domain"),(0,e.u)(g.resources.monitored,!0),(0,e.M)(g.resources.goneAt))).orderBy(g.resources.name).limit(j.O.domains),c=new Set(a.map(a=>a.id)),d=b.filter(a=>!a.parentId||c.has(a.parentId)).map(a=>({id:a.id,name:a.name}));if(!a.length)return{apps:[],monitors:[],domains:d};let k=await (0,f.f)().select({id:g.monitors.id,appId:g.monitors.resourceId,url:g.monitors.url,kind:g.monitors.kind,name:g.monitors.name}).from(g.monitors).where((0,e.y)(g.monitors.resourceId,a.map(a=>a.id))).orderBy(g.monitors.createdAt).limit(j.O.monitors),l=new Map(a.map(a=>[a.id,a.name]));return{domains:d,apps:a.map(a=>({...a,domain:(0,i.m)(a.name,k.filter(b=>b.appId===a.id).map(a=>a.url))})),monitors:k.map(a=>({id:a.id,appId:a.appId,appName:l.get(a.appId)??"",path:"heartbeat"===a.kind?` \xb7 ${a.name??"heartbeat"}`:(0,h.K)(a.url)}))}}var l=a.i(713095);async function m(){return(0,c.F)("viewer",async()=>({ok:!0,data:await k()}),{requireActionMember:d.g},"local")}(0,l.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"
|
|
1
|
+
module.exports=[760937,929941,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(93321),f=a.i(548734),g=a.i(837137),h=a.i(646324),i=a.i(469762),j=a.i(910697);async function k(){let a=await (0,f.f)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"app"),(0,e.u)(g.resources.monitored,!0))).orderBy(g.resources.name).limit(j.O.apps),b=await (0,f.f)().select({id:g.resources.id,name:g.resources.name,parentId:g.resources.parentId}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"domain"),(0,e.u)(g.resources.monitored,!0),(0,e.M)(g.resources.goneAt))).orderBy(g.resources.name).limit(j.O.domains),c=new Set(a.map(a=>a.id)),d=b.filter(a=>!a.parentId||c.has(a.parentId)).map(a=>({id:a.id,name:a.name}));if(!a.length)return{apps:[],monitors:[],domains:d};let k=await (0,f.f)().select({id:g.monitors.id,appId:g.monitors.resourceId,url:g.monitors.url,kind:g.monitors.kind,name:g.monitors.name}).from(g.monitors).where((0,e.y)(g.monitors.resourceId,a.map(a=>a.id))).orderBy(g.monitors.createdAt).limit(j.O.monitors),l=new Map(a.map(a=>[a.id,a.name]));return{domains:d,apps:a.map(a=>({...a,domain:(0,i.m)(a.name,k.filter(b=>b.appId===a.id).map(a=>a.url))})),monitors:k.map(a=>({id:a.id,appId:a.appId,appName:l.get(a.appId)??"",path:"heartbeat"===a.kind?` \xb7 ${a.name??"heartbeat"}`:(0,h.K)(a.url)}))}}var l=a.i(713095);async function m(){return(0,c.F)("viewer",async()=>({ok:!0,data:await k()}),{requireActionMember:d.g},"local")}(0,l.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"0000a4e88b64cf5650f40ca250d8af9df2a8c09136",null),a.s(["f",0,m],760937);var n=a.i(118558),o=a.i(288950);let p={requireActionMember:d.g};async function q(){return(0,c.F)("owner",async()=>(await (0,o.z)(),(0,n.refresh)(),{ok:!0,message:"Got it."}),p)}(0,l.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"008fc603247ef5551048fa08175f7ec684daba9f6b",null),a.s(["f",0,q],929941)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_palette-action_ts_0zyw9a9imev6p._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_reports_reports-view_tsx_1l0apba6g810q._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[588544,a=>{"use strict";var b=a.i(187924),c=a.i(470938),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(814574),i=a.i(368114),j=a.i(405050);let k=(0,j.createServerReference)("401811f9941d0d8acc9e057afb17b5aeb5bd3fc377",j.callServer,void 0,j.findSourceMapURL,"deleteReportAction"),l=(0,j.createServerReference)("60bc03947a8b7f3228cd3bff0d3acc44cdef519e75",j.callServer,void 0,j.findSourceMapURL,"saveReportContent"),m=(0,j.createServerReference)("60b0b2e9e7f89edadb708330a6fbbd24c45933e720",j.callServer,void 0,j.findSourceMapURL,"saveReportDelivery"),n=(0,j.createServerReference)("600fd1e9e23d538e0b8517d3981eb00f29e31e763a",j.callServer,void 0,j.findSourceMapURL,"sendTestReport"),o={id:"Indonesian",en:"English"};function p({r:a,months:c,role:h,onEdit:j,onDelivery:l}){let m=c.filter(a=>!a.label.endsWith("(so far)")),[q,r]=(0,d.useState)(m[0]?.value??c[0]?.value??""),[s,t]=(0,d.useState)(a.lang),[u,v]=(0,d.useTransition)(),[w,x]=(0,d.useState)(!1),y=function(a){let b;if(!a.lastSend)return null;let c=(b=a.lastSend.month,new Intl.DateTimeFormat("en-GB",{month:"long",year:"numeric",timeZone:"UTC"}).format(new Date(`${b}-15T12:00:00Z`)));return"sent"===a.lastSend.status?`${c} sent`:"failed"===a.lastSend.status?`${c} not sent: ${a.lastSend.lastError??"unknown reason"}`:`${c} waiting for a retry${a.lastSend.lastError?` (${a.lastSend.lastError})`:""}`}(a),z=async()=>{let b=await k(a.id);return b.ok?{ok:!0,message:b.message??"Report deleted."}:{ok:!1,message:b.error}};return(0,b.jsxs)(g.N,{title:a.clientName,meta:(0,b.jsx)(g.E,{children:o[a.lang]}),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 text-[13px]",children:[(0,b.jsxs)("div",{className:"text-ink-soft",children:[a.title?`${a.title} \xb7 `:"",a.sites.length?a.sites.map(a=>a.displayName).join(", "):"No websites yet"]}),(0,b.jsxs)("div",{className:"text-ink-soft",children:[function(a){if(!a.autoSend)return"Automatic sending is off";let b=a.recipients.length;return`Emailed on the 1st to ${b} address${1===b?"":"es"}`}(a),y&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)("span",{className:(0,i.f)(a.lastSend?.status==="failed"&&"text-err"),children:y})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("select",{"aria-label":"Month",className:(0,i.f)(g.S,"w-auto"),value:q,onChange:a=>r(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,b.jsxs)("select",{"aria-label":"Language of this download",className:(0,i.f)(g.S,"w-auto"),value:s,onChange:a=>t(a.target.value),children:[(0,b.jsx)("option",{value:"id",children:"Indonesian"}),(0,b.jsx)("option",{value:"en",children:"English"})]}),q&&a.sites.length>0?(0,b.jsx)("a",{className:(0,g.R)({variant:"primary",size:"sm"}),href:`/reports/${a.id}/pdf?month=${q}&lang=${s}`,download:!0,children:"Download PDF"}):(0,b.jsx)("span",{className:"text-ink-faint",children:"Add a website to download a PDF."}),"viewer"!==h&&(0,b.jsx)(g.K,{size:"sm",onClick:()=>v(async()=>{let b=await n(a.id,q);b.ok?e.c.success(b.message??"Test sent."):e.c.error(b.error)}),disabled:u||!a.sites.length,children:"Send test"}),"viewer"!==h&&(0,b.jsx)(g.K,{size:"sm",onClick:j,children:"Edit"}),"owner"===h&&(0,b.jsx)(g.K,{size:"sm",onClick:l,children:"Delivery"}),"owner"===h&&(0,b.jsx)(g.K,{size:"sm",variant:"ghost",onClick:()=>x(!0),disabled:u,children:"Delete"})]})]}),"owner"===h&&(0,b.jsx)(f.f,{open:w,onOpenChange:x,title:`Delete the report for ${a.clientName}?`,body:"The report and its send history go. The monitoring data stays.",cta:"Delete",danger:!0,onConfirm:z})]})}function q({label:a,help:c,error:d,children:e}){return(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px]",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a,c&&(0,b.jsx)("span",{className:"block text-[12px] font-normal text-ink-soft",children:c})]}),e,d&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:d})]})}function r({report:a,monitors:c,onClose:f}){let[j,k]=(0,d.useState)(a?.clientName??""),[m,n]=(0,d.useState)(a?.title??""),[o,p]=(0,d.useState)(a?.lang??"id"),[s,t]=(0,d.useState)(a?.note??""),[u,v]=(0,d.useState)(a?.emailOpening??""),[w,x]=(0,d.useState)(Object.fromEntries((a?.sites??[]).map(a=>[a.monitorId,a.displayName]))),[y,z]=(0,d.useState)({}),[A,B]=(0,d.useTransition)();return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>!a&&f(),children:(0,b.jsxs)(h.d,{className:"max-h-[90vh] overflow-y-auto sm:max-w-[560px]",children:[(0,b.jsx)(h.F,{className:"text-base",children:a?`Edit ${a.clientName}`:"New report"}),(0,b.jsx)(h.C,{children:"What the client reads. Website names are yours to choose; the PDF never shows an address."}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(q,{label:"Client",error:y.clientName,children:(0,b.jsx)("input",{className:g.S,value:j,maxLength:120,onChange:a=>k(a.target.value),placeholder:"e.g. PT Kopi Sejahtera"})}),(0,b.jsx)(q,{label:"Title",help:"Blank: Website monitoring report / Laporan pemantauan website.",children:(0,b.jsx)("input",{className:g.S,value:m,maxLength:120,onChange:a=>n(a.target.value)})}),(0,b.jsx)(q,{label:"Language",error:y.lang,children:(0,b.jsxs)("select",{className:g.S,value:o,onChange:a=>p(a.target.value),children:[(0,b.jsx)("option",{value:"id",children:"Indonesian"}),(0,b.jsx)("option",{value:"en",children:"English"})]})}),(0,b.jsxs)("div",{className:"flex flex-col gap-1 text-[13px]",children:[(0,b.jsxs)("span",{className:"font-medium",children:["Websites",(0,b.jsx)("span",{className:"block text-[12px] font-normal text-ink-soft",children:"Tick the uptime monitors to include and give each the name the client knows."})]}),c.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand","aria-label":`Include ${a.label}`,checked:a.id in w,onChange:b=>x(c=>{let d={...c};return b.target.checked?d[a.id]=d[a.id]??"":delete d[a.id],d})}),(0,b.jsx)("span",{className:"w-[42%] truncate text-ink-soft",title:a.label,children:a.label}),a.id in w&&(0,b.jsx)("input",{className:(0,i.f)(g.S,"flex-1"),value:w[a.id],maxLength:80,placeholder:"Name in the report","aria-label":`Name for ${a.label}`,onChange:b=>x(c=>({...c,[a.id]:b.target.value}))})]},a.id)),!c.length&&(0,b.jsx)("span",{className:"text-ink-faint",children:"No uptime monitors yet. Add one under Hosting › Uptime."}),y.sites&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:y.sites})]}),(0,b.jsx)(q,{label:"Note for the client",help:"Optional. Printed on page 2 of every report until you change it.",children:(0,b.jsx)("textarea",{className:g.S,rows:3,maxLength:1e3,value:s,onChange:a=>t(a.target.value)})}),(0,b.jsx)(q,{label:"Email opening",help:"Optional. Blank: a short greeting in the report's language.",children:(0,b.jsx)("input",{className:g.S,value:u,maxLength:500,onChange:a=>v(a.target.value),placeholder:"e.g. Halo Pak Budi,"})})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,b.jsx)(g.K,{onClick:f,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",onClick:()=>B(async()=>{let b=[...new Set([...a?.sites.map(a=>a.monitorId)??[],...c.map(a=>a.id)])].filter(a=>a in w).map(a=>({monitorId:a,displayName:w[a]})),d=await l(a?.id??null,{clientName:j,title:m,lang:o,note:s,emailOpening:u,sites:b});if(!d.ok){z(d.fieldErrors??{}),e.c.error(d.error);return}e.c.success(d.message??"Report saved."),f()}),disabled:A,children:A?"Saving…":"Save"})]})]})})}function s({report:a,senders:c,onClose:f}){let[j,k]=(0,d.useState)(a.recipients.join("\n")),[l,n]=(0,d.useState)(a.autoSend),[o,p]=(0,d.useState)(a.sender??(c.smtp?"smtp":c.resend?"resend":"")),[r,t]=(0,d.useState)({}),[u,v]=(0,d.useTransition)();return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>!a&&f(),children:(0,b.jsxs)(h.d,{className:"sm:max-w-[520px]",children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Delivery: ",a.clientName]}),(0,b.jsx)(h.C,{children:"Who gets the report by email on the 1st of each month. Only owners can change this."}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(q,{label:"Recipients",help:"Up to 5 addresses, one per line.",error:r.recipients,children:(0,b.jsx)("textarea",{className:(0,i.f)(g.S,"font-mono text-[12.5px]"),rows:4,value:j,onChange:a=>k(a.target.value),spellCheck:!1})}),(0,b.jsx)(q,{label:"Sent through",error:r.sender,children:(0,b.jsxs)("select",{className:g.S,value:o,onChange:a=>p(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"Pick one"}),(0,b.jsxs)("option",{value:"smtp",disabled:!c.smtp,children:["Email (SMTP) channel",c.smtp?"":" — not connected"]}),(0,b.jsxs)("option",{value:"resend",disabled:!c.resend,children:["Resend",c.resend?"":" — not set up"]})]})}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:l,onChange:a=>n(a.target.checked)}),"Email it automatically on the 1st (retried on the 2nd and 3rd)"]})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,b.jsx)(g.K,{onClick:f,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",onClick:()=>v(async()=>{let b=await m(a.id,{recipients:j,autoSend:l,sender:o||null});if(!b.ok){t(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success(b.message??"Saved."),f()}),disabled:u,children:u?"Saving…":"Save"})]})]})})}a.s(["ReportsView",0,function({reports:a,months:e,monitors:f,senders:h,role:i}){let[j,k]=(0,d.useState)(null),[l,m]=(0,d.useState)(null);return(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:["viewer"!==i&&(0,b.jsx)("div",{children:(0,b.jsx)(g.K,{variant:"primary",onClick:()=>k("new"),children:"New report"})}),!a.length&&(0,b.jsx)(g.N,{children:(0,b.jsx)(g.k,{icon:c.f,title:"No reports yet",children:"A report is a two-page PDF for one client: the month's uptime as a calendar, incidents in plain words, response times and updates. Download it any time, or have it emailed on the 1st of each month."})}),a.map(a=>(0,b.jsx)(p,{r:a,months:e,role:i,onEdit:()=>k(a),onDelivery:()=>m(a)},a.id)),j&&(0,b.jsx)(r,{report:"new"===j?null:j,monitors:f,onClose:()=>k(null)}),l&&(0,b.jsx)(s,{report:l,senders:h,onClose:()=>m(null)})]})}],588544)}];
|
|
1
|
+
module.exports=[588544,a=>{"use strict";var b=a.i(187924),c=a.i(470938),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(814574),i=a.i(368114),j=a.i(405050);let k=(0,j.createServerReference)("40c6a05c14deb896096d585e2bf4753d33ba99f4c6",j.callServer,void 0,j.findSourceMapURL,"deleteReportAction"),l=(0,j.createServerReference)("602a273a45d3a23a1193b969697ff07c71ff36e807",j.callServer,void 0,j.findSourceMapURL,"markReportSent"),m=(0,j.createServerReference)("60753944e75978e4976dde282abb1ea73ac5e0fa81",j.callServer,void 0,j.findSourceMapURL,"resendReport"),n=(0,j.createServerReference)("60761c7628a1fd47a448dc9894158c60d22214253f",j.callServer,void 0,j.findSourceMapURL,"saveReportContent"),o=(0,j.createServerReference)("6029403c761b1f43e081bab9f2444c78736f7e8d17",j.callServer,void 0,j.findSourceMapURL,"saveReportDelivery"),p=(0,j.createServerReference)("60c25a3b6677300d523e631cbf646377d1657ff941",j.callServer,void 0,j.findSourceMapURL,"sendTestReport");async function q(a,b=fetch){var c;let d;try{d=await b(a,{credentials:"same-origin"})}catch{return{ok:!1,error:"The download didn't reach the server. Check your connection and try again."}}if(!d.ok){let a=(d.headers.get("content-type")??"text/plain").startsWith("text/plain")?(await d.text().catch(()=>"")).trim():"";return{ok:!1,error:a&&a.length<=300?a:`The download failed (${d.status}). Try again in a moment.`}}return{ok:!0,blob:await d.blob(),filename:(c=d.headers.get("content-disposition"),/filename="([^"]+)"/.exec(c??"")?.[1]??"report.pdf")}}let r={id:"Indonesian",en:"English"},s=a=>new Intl.DateTimeFormat("en-GB",{month:"long",year:"numeric",timeZone:"UTC"}).format(new Date(`${a}-15T12:00:00Z`));function t({r:a,months:c,role:h,onEdit:j,onDelivery:n}){let o=c.filter(a=>!a.label.endsWith("(so far)")),[u,v]=(0,d.useState)(o[0]?.value??c[0]?.value??""),[w,x]=(0,d.useState)(a.lang),[y,z]=(0,d.useTransition)(),[A,B]=(0,d.useState)(!1),C=function(a){if(!a.lastSend)return null;let b=s(a.lastSend.month);return"sent"===a.lastSend.status?`${b} sent`:"failed"===a.lastSend.status?`${b} not sent: ${a.lastSend.lastError??"unknown reason"}`:`${b} waiting for a retry${a.lastSend.lastError?` (${a.lastSend.lastError})`:""}`}(a),[D,E]=(0,d.useState)(!1),F=`/reports/${a.id}/pdf?month=${u}&lang=${w}`,G=async a=>{if(a.preventDefault(),D)return;E(!0);let b=await q(F);if(E(!1),b.ok){var c,d;let a,e;c=b.blob,d=b.filename,a=URL.createObjectURL(c),(e=document.createElement("a")).href=a,e.download=d,document.body.appendChild(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(a),1e4)}else e.c.error(b.error)},[H,I]=(0,d.useState)(!1),J="owner"===h&&a.lastSend?.status==="failed"?a.lastSend.month:null,K=async()=>{if(!J)return{ok:!1,message:"Nothing to send again."};let b=await m(a.id,J);return b.ok?{ok:!0,message:b.message??"Sent."}:{ok:!1,message:b.error}},L=async()=>{let b=await k(a.id);return b.ok?{ok:!0,message:b.message??"Report deleted."}:{ok:!1,message:b.error}};return(0,b.jsxs)(g.N,{title:a.clientName,meta:(0,b.jsx)(g.E,{children:r[a.lang]}),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 text-[13px]",children:[(0,b.jsxs)("div",{className:"text-ink-soft",children:[a.title?`${a.title} \xb7 `:"",a.sites.length?a.sites.map(a=>a.displayName).join(", "):"No websites yet"]}),(0,b.jsxs)("div",{className:"text-ink-soft",children:[function(a){if(!a.autoSend)return"Automatic sending is off";let b=a.recipients.length;return`Emailed on the 1st to ${b} address${1===b?"":"es"}`}(a),C&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)("span",{className:(0,i.f)(a.lastSend?.status==="failed"&&"text-err"),children:C})]})]}),J&&(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(g.K,{size:"sm",onClick:()=>I(!0),disabled:y,children:"Send again"}),(0,b.jsx)(g.K,{size:"sm",variant:"ghost",onClick:()=>z(async()=>{if(!J)return;let b=await l(a.id,J);b.ok?e.c.success(b.message??"Marked as sent."):e.c.error(b.error)}),disabled:y,children:"I sent it myself"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("select",{"aria-label":"Month",className:(0,i.f)(g.S,"w-auto"),value:u,onChange:a=>v(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,b.jsxs)("select",{"aria-label":"Language of this download",className:(0,i.f)(g.S,"w-auto"),value:w,onChange:a=>x(a.target.value),children:[(0,b.jsx)("option",{value:"id",children:"Indonesian"}),(0,b.jsx)("option",{value:"en",children:"English"})]}),u&&a.sites.length>0?(0,b.jsx)("a",{className:(0,i.f)((0,g.R)({variant:"primary",size:"sm"}),D&&"pointer-events-none opacity-60"),href:F,download:!0,onClick:G,"aria-busy":D,children:D?"Making PDF…":"Download PDF"}):(0,b.jsx)("span",{className:"text-ink-faint",children:"Add a website to download a PDF."}),"viewer"!==h&&(0,b.jsx)(g.K,{size:"sm",onClick:()=>z(async()=>{let b=await p(a.id,u);b.ok?e.c.success(b.message??"Test sent."):e.c.error(b.error)}),disabled:y||!a.sites.length,children:"Send test"}),"viewer"!==h&&(0,b.jsx)(g.K,{size:"sm",onClick:j,children:"Edit"}),"owner"===h&&(0,b.jsx)(g.K,{size:"sm",onClick:n,children:"Delivery"}),"owner"===h&&(0,b.jsx)(g.K,{size:"sm",variant:"ghost",onClick:()=>B(!0),disabled:y,children:"Delete"})]})]}),J&&(0,b.jsx)(f.f,{open:H,onOpenChange:I,title:`Email the ${s(J)} report to ${a.clientName} now?`,body:`It goes to the client's ${a.recipients.length} address${1===a.recipients.length?"":"es"} under Delivery, with the PDF attached.`,cta:"Send again",onConfirm:K}),"owner"===h&&(0,b.jsx)(f.f,{open:A,onOpenChange:B,title:`Delete the report for ${a.clientName}?`,body:"The report and its send history go. The monitoring data stays.",cta:"Delete",danger:!0,onConfirm:L})]})}function u({label:a,help:c,error:d,children:e}){return(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px]",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a,c&&(0,b.jsx)("span",{className:"block text-[12px] font-normal text-ink-soft",children:c})]}),e,d&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:d})]})}function v({report:a,monitors:c,onClose:f}){let[j,k]=(0,d.useState)(a?.clientName??""),[l,m]=(0,d.useState)(a?.title??""),[o,p]=(0,d.useState)(a?.lang??"id"),[q,r]=(0,d.useState)(a?.note??""),[s,t]=(0,d.useState)(a?.emailOpening??""),[w,x]=(0,d.useState)(Object.fromEntries((a?.sites??[]).map(a=>[a.monitorId,a.displayName]))),[y,z]=(0,d.useState)({}),[A,B]=(0,d.useTransition)();return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>!a&&f(),children:(0,b.jsxs)(h.d,{className:"max-h-[90vh] overflow-y-auto sm:max-w-[560px]",children:[(0,b.jsx)(h.F,{className:"text-base",children:a?`Edit ${a.clientName}`:"New report"}),(0,b.jsx)(h.C,{children:"What the client reads. Website names are yours to choose; the PDF never shows an address."}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(u,{label:"Client",error:y.clientName,children:(0,b.jsx)("input",{className:g.S,value:j,maxLength:120,onChange:a=>k(a.target.value),placeholder:"e.g. PT Kopi Sejahtera"})}),(0,b.jsx)(u,{label:"Title",help:"Blank: Website monitoring report / Laporan pemantauan website.",children:(0,b.jsx)("input",{className:g.S,value:l,maxLength:120,onChange:a=>m(a.target.value)})}),(0,b.jsx)(u,{label:"Language",error:y.lang,children:(0,b.jsxs)("select",{className:g.S,value:o,onChange:a=>p(a.target.value),children:[(0,b.jsx)("option",{value:"id",children:"Indonesian"}),(0,b.jsx)("option",{value:"en",children:"English"})]})}),(0,b.jsxs)("div",{className:"flex flex-col gap-1 text-[13px]",children:[(0,b.jsxs)("span",{className:"font-medium",children:["Websites",(0,b.jsx)("span",{className:"block text-[12px] font-normal text-ink-soft",children:"Tick the uptime monitors to include and give each the name the client knows."})]}),c.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand","aria-label":`Include ${a.label}`,checked:a.id in w,onChange:b=>x(c=>{let d={...c};return b.target.checked?d[a.id]=d[a.id]??"":delete d[a.id],d})}),(0,b.jsx)("span",{className:"w-[42%] truncate text-ink-soft",title:a.label,children:a.label}),a.id in w&&(0,b.jsx)("input",{className:(0,i.f)(g.S,"flex-1"),value:w[a.id],maxLength:80,placeholder:"Name in the report","aria-label":`Name for ${a.label}`,onChange:b=>x(c=>({...c,[a.id]:b.target.value}))})]},a.id)),!c.length&&(0,b.jsx)("span",{className:"text-ink-faint",children:"No uptime monitors yet. Add one under Hosting › Uptime."}),y.sites&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:y.sites})]}),(0,b.jsx)(u,{label:"Note for the client",help:"Optional. Printed on page 2 of every report until you change it.",children:(0,b.jsx)("textarea",{className:g.S,rows:3,maxLength:1e3,value:q,onChange:a=>r(a.target.value)})}),(0,b.jsx)(u,{label:"Email opening",help:"Optional. Blank: a short greeting in the report's language.",children:(0,b.jsx)("input",{className:g.S,value:s,maxLength:500,onChange:a=>t(a.target.value),placeholder:"e.g. Halo Pak Budi,"})})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,b.jsx)(g.K,{onClick:f,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",onClick:()=>B(async()=>{let b=[...new Set([...a?.sites.map(a=>a.monitorId)??[],...c.map(a=>a.id)])].filter(a=>a in w).map(a=>({monitorId:a,displayName:w[a]})),d=await n(a?.id??null,{clientName:j,title:l,lang:o,note:q,emailOpening:s,sites:b});if(!d.ok){z(d.fieldErrors??{}),e.c.error(d.error);return}e.c.success(d.message??"Report saved."),f()}),disabled:A,children:A?"Saving…":"Save"})]})]})})}function w({report:a,senders:c,onClose:f}){let[j,k]=(0,d.useState)(a.recipients.join("\n")),[l,m]=(0,d.useState)(a.autoSend),[n,p]=(0,d.useState)(a.sender??(c.smtp?"smtp":c.resend?"resend":"")),[q,r]=(0,d.useState)({}),[s,t]=(0,d.useTransition)();return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>!a&&f(),children:(0,b.jsxs)(h.d,{className:"sm:max-w-[520px]",children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Delivery: ",a.clientName]}),(0,b.jsx)(h.C,{children:"Who gets the report by email on the 1st of each month. Only owners can change this."}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(u,{label:"Recipients",help:"Up to 5 addresses, one per line.",error:q.recipients,children:(0,b.jsx)("textarea",{className:(0,i.f)(g.S,"font-mono text-[12.5px]"),rows:4,value:j,onChange:a=>k(a.target.value),spellCheck:!1})}),(0,b.jsx)(u,{label:"Sent through",error:q.sender,children:(0,b.jsxs)("select",{className:g.S,value:n,onChange:a=>p(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"Pick one"}),(0,b.jsxs)("option",{value:"smtp",disabled:!c.smtp,children:["Email (SMTP) channel",c.smtp?"":" — not connected"]}),(0,b.jsxs)("option",{value:"resend",disabled:!c.resend,children:["Resend",c.resend?"":" — not set up"]})]})}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:l,onChange:a=>m(a.target.checked)}),"Email it automatically on the 1st (retried on the 2nd and 3rd)"]})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,b.jsx)(g.K,{onClick:f,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",onClick:()=>t(async()=>{let b=await o(a.id,{recipients:j,autoSend:l,sender:n||null});if(!b.ok){r(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success(b.message??"Saved."),f()}),disabled:s,children:s?"Saving…":"Save"})]})]})})}a.s(["ReportsView",0,function({reports:a,months:e,monitors:f,senders:h,role:i}){let[j,k]=(0,d.useState)(null),[l,m]=(0,d.useState)(null);return(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:["viewer"!==i&&(0,b.jsx)("div",{children:(0,b.jsx)(g.K,{variant:"primary",onClick:()=>k("new"),children:"New report"})}),!a.length&&(0,b.jsx)(g.N,{children:(0,b.jsx)(g.k,{icon:c.f,title:"No reports yet",children:"A report is a two-page PDF for one client: the month's uptime as a calendar, incidents in plain words, response times and updates. Download it any time, or have it emailed on the 1st of each month."})}),a.map(a=>(0,b.jsx)(t,{r:a,months:e,role:i,onEdit:()=>k(a),onDelivery:()=>m(a)},a.id)),j&&(0,b.jsx)(v,{report:"new"===j?null:j,monitors:f,onClose:()=>k(null)}),l&&(0,b.jsx)(w,{report:l,senders:h,onClose:()=>m(null)})]})}],588544)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_reports_reports-view_tsx_1l0apba6g810q._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[258401,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(817748),e=a.i(851519),f=a.i(572131),g=a.i(619089),h=a.i(246059),i=a.i(998868),j=a.i(861954),k=a.i(57441),k=k,l=a.i(332485),m=k,n=k,o=k,m=k,k=k;h.z.object({error:h.z.object({status:i.z.string().optional(),message:i.z.string().optional(),details:j.z.array(m.looseObject({reason:i.z.string().optional()})).optional()})}),h.z.object({message:i.z.string()}),h.z.object({missing_permissions:j.z.array(i.z.string()).min(1)}),h.z.object({error:k.enum(["invalid_grant","invalid_client","unauthorized_client"])});let p={"==":"EQUAL","!=":"NOT_EQUAL","<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},q=["string","number","boolean","null"],r=/^(?:__name__|[A-Za-z_][A-Za-z0-9_]{0,99}(?:\.[A-Za-z_][A-Za-z0-9_]{0,99}){0,9})$/;h.z.object({collection:i.z.string().regex(/^(?!__.*__$)(?!\.\.?$)[^/\s][^/]{0,199}$/),where:j.z.array(h.z.object({field:i.z.string().regex(r),op:k.enum(Object.keys(p)),type:k.enum(q),value:i.z.string().max(500)})).max(5),orderBy:h.z.object({field:i.z.string().regex(r),dir:k.enum(["asc","desc"])}).nullable(),limit:l.z.number().int().min(1).max(100)}),j.z.array(m.looseObject({document:h.z.object({name:i.z.string(),fields:n.record(i.z.string(),o.unknown()).optional()}).optional()}));var s=a.i(368114),t=a.i(405050);let u=(0,t.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[258401,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(817748),e=a.i(851519),f=a.i(572131),g=a.i(619089),h=a.i(246059),i=a.i(998868),j=a.i(861954),k=a.i(57441),k=k,l=a.i(332485),m=k,n=k,o=k,m=k,k=k;h.z.object({error:h.z.object({status:i.z.string().optional(),message:i.z.string().optional(),details:j.z.array(m.looseObject({reason:i.z.string().optional()})).optional()})}),h.z.object({message:i.z.string()}),h.z.object({missing_permissions:j.z.array(i.z.string()).min(1)}),h.z.object({error:k.enum(["invalid_grant","invalid_client","unauthorized_client"])});let p={"==":"EQUAL","!=":"NOT_EQUAL","<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},q=["string","number","boolean","null"],r=/^(?:__name__|[A-Za-z_][A-Za-z0-9_]{0,99}(?:\.[A-Za-z_][A-Za-z0-9_]{0,99}){0,9})$/;h.z.object({collection:i.z.string().regex(/^(?!__.*__$)(?!\.\.?$)[^/\s][^/]{0,199}$/),where:j.z.array(h.z.object({field:i.z.string().regex(r),op:k.enum(Object.keys(p)),type:k.enum(q),value:i.z.string().max(500)})).max(5),orderBy:h.z.object({field:i.z.string().regex(r),dir:k.enum(["asc","desc"])}).nullable(),limit:l.z.number().int().min(1).max(100)}),j.z.array(m.looseObject({document:h.z.object({name:i.z.string(),fields:n.record(i.z.string(),o.unknown()).optional()}).optional()}));var s=a.i(368114),t=a.i(405050);let u=(0,t.createServerReference)("402861b36154a5fef57bf6a0cfd1c902cd133e13f5",t.callServer,void 0,t.findSourceMapURL,"firestoreCollectionsAction"),v=(0,t.createServerReference)("60d72bfad7ad7a9f4554fd0981b65af274d65d3ae5",t.callServer,void 0,t.findSourceMapURL,"firestoreQueryAction");a.s(["FirestoreConsole",0,function({targets:a}){let[h,i]=(0,f.useState)(a[0]?.id??""),[j,k]=(0,f.useState)(null),[l,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(""),[r,t]=(0,f.useState)([]),[w,x]=(0,f.useState)(""),[y,z]=(0,f.useState)("asc"),[A,B]=(0,f.useState)(20),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useTransition)(),I=a.find(a=>a.id===h),J=(a,b)=>t(c=>c.map(c=>c.key===a?{...c,...b}:c));return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)(g.M,{tone:"warning",title:"Every query costs Firestore reads",children:["One read per document returned (at least one per query), from the free 50,000 a day. Listing collections costs one read.",I?.readsToday!=null?` This project has used ${I.readsToday.toLocaleString("en")} today.`:""]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Project",(0,b.jsx)("select",{className:(0,s.f)(g.S,"w-56"),value:h,onChange:a=>{i(a.target.value),k(null),o(""),D(null)},children:a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.alias},a.id))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Collection",j?(0,b.jsxs)("select",{className:(0,s.f)(g.S,"w-56 font-mono"),value:n,onChange:a=>o(a.target.value),children:[0===j.length&&(0,b.jsx)("option",{value:"",children:"No collections"}),j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]}):(0,b.jsx)(g.K,{onClick:function(){H(async()=>{try{let a=await u(h);if(!a.ok)return void F(a.error);k(a.data?.collections??[]),m(!!a.data?.more),o(a.data?.collections?.[0]??""),F(null)}catch{F("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:G||!h,children:G?"Loading…":"List root collections"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Order by",(0,b.jsx)("input",{className:(0,s.f)(g.S,"w-40 font-mono"),placeholder:"field (optional)",value:w,onChange:a=>x(a.target.value)})]}),(0,b.jsxs)("select",{"aria-label":"Direction",className:(0,s.f)(g.S,"w-24"),value:y,onChange:a=>z("desc"===a.target.value?"desc":"asc"),children:[(0,b.jsx)("option",{value:"asc",children:"asc"}),(0,b.jsx)("option",{value:"desc",children:"desc"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Limit",(0,b.jsx)("input",{type:"number",min:1,max:100,className:(0,s.f)(g.S,"w-20 font-mono"),value:A,onChange:a=>B(Math.max(1,Math.min(100,Math.round(Number(a.target.value)||1))))})]}),(0,b.jsxs)(g.K,{variant:"primary",className:"ml-auto",onClick:function(){H(async()=>{try{let a=await v(h,{collection:n,where:r.map(({field:a,op:b,type:c,value:d})=>({field:a.trim(),op:b,type:c,value:d})),orderBy:w.trim()?{field:w.trim(),dir:y}:null,limit:A});if(!a.ok){F(a.error),D(null);return}D(a.data?.run??null),F(null)}catch{F("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:G||!n,children:[(0,b.jsx)(c.f,{size:15})," ",G?"Running…":"Run query"]})]}),l&&(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:"Showing the first 100 collections."}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[r.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"w-12 text-[12.5px] text-ink-soft",children:"where"}),(0,b.jsx)("input",{"aria-label":"Field",className:(0,s.f)(g.S,"w-44 font-mono"),placeholder:"field",value:a.field,onChange:b=>J(a.key,{field:b.target.value})}),(0,b.jsx)("select",{"aria-label":"Operator",className:(0,s.f)(g.S,"w-44 font-mono"),value:a.op,onChange:b=>J(a.key,{op:b.target.value}),children:Object.keys(p).map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{"aria-label":"Value type",className:(0,s.f)(g.S,"w-28"),value:a.type,onChange:b=>J(a.key,{type:b.target.value}),children:q.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("input",{"aria-label":"Value",className:(0,s.f)(g.S,"w-56 font-mono"),disabled:"null"===a.type,placeholder:"in"===a.op||"not-in"===a.op||"array-contains-any"===a.op?"a, b, c":"value",value:a.value,onChange:b=>J(a.key,{value:b.target.value})}),(0,b.jsx)(g.K,{size:"sm",variant:"ghost","aria-label":"Remove condition",onClick:()=>t(b=>b.filter(b=>b.key!==a.key)),children:(0,b.jsx)(e.f,{size:14})})]},a.key)),r.length<5&&(0,b.jsx)("div",{children:(0,b.jsxs)(g.K,{size:"sm",variant:"ghost",onClick:()=>t(a=>[...a,{key:Date.now(),field:"",op:"==",type:"string",value:""}]),children:[(0,b.jsx)(d.f,{size:14})," Add where"]})})]}),E&&(0,b.jsx)(g.M,{tone:"danger",title:"The query didn't run",children:E}),C&&(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:C.docs.length})," document",1===C.docs.length?"":"s"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:C.reads})," read",1===C.reads?"":"s"," used"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:C.durationMs})," ms"]}),C.truncated&&(0,b.jsx)("span",{className:"rounded border border-warn-icon/40 bg-warn-soft px-1.5 text-ink",children:"Truncated"})]}),(0,b.jsx)("div",{className:"max-h-[520px] overflow-auto rounded-md border border-line",children:0===C.docs.length?(0,b.jsx)("p",{className:"px-3 py-2 text-[13px] text-ink-soft",children:"No documents matched."}):C.docs.map(a=>(0,b.jsxs)("div",{className:"border-b border-line px-3 py-2 last:border-b-0",children:[(0,b.jsx)("div",{className:"font-mono text-[12.5px] font-medium text-ink",children:a.id}),(0,b.jsx)("pre",{className:"mt-1 overflow-x-auto whitespace-pre-wrap break-all font-mono text-[12px] text-ink-soft",children:a.json})]},a.id))})]})]})}],258401)},366550,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(462007),i=a.i(368114);let j=[{id:"tables-by-size",label:"Tables by size",sql:`select n.nspname as schema, c.relname as table,
|
|
2
2
|
pg_size_pretty(pg_total_relation_size(c.oid)) as total,
|
|
3
3
|
pg_size_pretty(pg_relation_size(c.oid)) as data,
|
|
4
4
|
pg_total_relation_size(c.oid) as bytes
|
|
@@ -30,6 +30,6 @@ from pg_statio_user_indexes`},{id:"row-estimates",label:"Row counts (estimate)",
|
|
|
30
30
|
last_autoanalyze, last_autovacuum
|
|
31
31
|
from pg_stat_user_tables
|
|
32
32
|
order by n_live_tup desc
|
|
33
|
-
limit 100`}],k="watchpost.sql.snippets.v1";var l=a.i(746097),m=a.i(405050);let n=(0,m.createServerReference)("
|
|
33
|
+
limit 100`}],k="watchpost.sql.snippets.v1";var l=a.i(746097),m=a.i(405050);let n=(0,m.createServerReference)("70092a0ef07ac722fb93db9df6df3a3ff437030f4b",m.callServer,void 0,m.findSourceMapURL,"runSqlAction");function o(a){try{return window.localStorage.setItem(k,JSON.stringify(a)),!0}catch{return!1}}let p=a=>null===a?"NULL":"string"==typeof a?a:String(a);function q({run:a}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:a.rowCount})," row",1===a.rowCount?"":"s"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:a.durationMs})," ms"]}),a.truncated&&(0,b.jsx)("span",{className:"rounded border border-warn-icon/40 bg-warn-soft px-1.5 text-ink",children:"Truncated: more rows or data than the console shows"})]}),0===a.columns.length?(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:"The statement returned no columns."}):(0,b.jsx)("div",{className:"max-h-[520px] overflow-auto rounded-md border border-line",children:(0,b.jsxs)("table",{className:(0,i.f)(h.o,"font-mono text-[12.5px]"),children:[(0,b.jsx)(h.U,{head:a.columns}),(0,b.jsx)("tbody",{children:a.rows.map((a,c)=>(0,b.jsx)("tr",{children:a.map((a,c)=>(0,b.jsx)("td",{className:(0,i.f)(h.z,"max-w-[420px] overflow-hidden text-ellipsis",null===a&&"text-ink-faint"),title:p(a).length>60?p(a):void 0,children:p(a)},c))},c))})]})})]})}a.s(["SqlConsole",0,function({targets:a}){let[h,m]=(0,d.useState)(a[0]?.id??""),[p,r]=(0,d.useState)(j[0].sql),[s,t]=(0,d.useState)([]),[u,v]=(0,d.useState)(null),[w,x]=(0,d.useState)(null),[y,z]=(0,d.useState)(!1),[A,B]=(0,d.useTransition)();(0,d.useEffect)(()=>{let a=setTimeout(()=>t(function(){try{var a=window.localStorage.getItem(k);if(!a)return[];try{let b=JSON.parse(a);if(!Array.isArray(b))return[];return b.filter(a=>!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.label&&"string"==typeof a.sql).slice(0,30).map(a=>({id:a.id.slice(0,40),label:a.label.slice(0,60),sql:a.sql.slice(0,2e4)}))}catch{return[]}}catch{return[]}}()),0);return()=>clearTimeout(a)},[]);let C=a.find(a=>a.id===h);async function D(a){let b=await n(h,p,a);return b.ok&&b.data?.run?(v(b.data.run),x(null),{ok:!0,message:`${b.data.run.rowCount} row${1===b.data.run.rowCount?"":"s"} in ${b.data.run.durationMs} ms`}):!b.ok&&b.data?.needsWake?(z(!0),{ok:!1,message:l.f}):(v(null),x(b.ok?"No result.":b.error),{ok:!1,message:b.ok?"No result.":b.error})}function E(){if(h&&p.trim()&&!A){if(C?.provider==="neon"&&"active"!==C.wake)return void z(!0);B(async()=>{try{await D(!1)}catch{x("Watchbell didn't answer. Check that it's still running, then try again.")}})}}let F=[...j,...s];return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Database",(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-56"),value:h,onChange:a=>{m(a.target.value),v(null),x(null)},children:a.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.alias," · ","supabase"===a.provider?"Supabase":"Neon","idle"===a.wake?" (idle)":""]},a.id))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Snippet",(0,b.jsxs)("select",{className:(0,i.f)(g.S,"w-64"),value:"",onChange:a=>{let b=F.find(b=>b.id===a.target.value);b&&r(b.sql)},children:[(0,b.jsx)("option",{value:"",disabled:!0,children:"Insert a snippet…"}),(0,b.jsx)("optgroup",{label:"Built in",children:j.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))}),s.length>0&&(0,b.jsx)("optgroup",{label:"Saved in this browser",children:s.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))})]})]}),(0,b.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,b.jsx)(g.K,{size:"sm",variant:"ghost",onClick:function(){let a=window.prompt("Name this snippet (saved in this browser only)")?.trim();if(!a)return;let b=[{id:`local-${Date.now()}`,label:a.slice(0,60),sql:p},...s].slice(0,30);o(b)?(t(b),e.c.success("Snippet saved in this browser")):e.c.error("This browser didn't let the console save it.")},disabled:!p.trim(),children:"Save as snippet"}),(0,b.jsxs)(g.K,{variant:"primary",onClick:E,disabled:A||!h||!p.trim(),children:[(0,b.jsx)(c.f,{size:15})," ",A?"Running…":"Run"]})]})]}),(0,b.jsx)("textarea",{"aria-label":"SQL query",spellCheck:!1,rows:10,value:p,className:(0,i.f)(g.S,"min-h-[180px] resize-y font-mono text-[13px] leading-relaxed"),onChange:a=>r(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),E())}}),(0,b.jsxs)("p",{className:"text-[12.5px] text-ink-soft",children:["One SELECT, WITH, EXPLAIN, SHOW or TABLE statement. It runs in a read-only transaction that is always rolled back, with a 5 s timeout and at most ",500," rows. Ctrl+Enter runs it. 20 runs per 10 minutes."]}),s.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5 text-[12.5px] text-ink-soft",children:["Saved here:",s.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-line px-1.5",children:[(0,b.jsx)("button",{type:"button",className:"text-ink hover:underline",onClick:()=>r(a.sql),children:a.label}),(0,b.jsx)("button",{type:"button","aria-label":`Delete snippet ${a.label}`,className:"text-ink-faint hover:text-err",onClick:()=>{var b;let c;return b=a.id,void(o(c=s.filter(a=>a.id!==b))&&t(c))},children:"×"})]},a.id))]}),w&&(0,b.jsx)(g.M,{tone:"danger",title:"The query didn't run",children:w}),u&&(0,b.jsx)(q,{run:u}),(0,b.jsx)(f.f,{open:y,onOpenChange:z,title:`Wake ${C?.alias??"the database"}?`,cta:"Run anyway",body:l.f,onConfirm:async()=>{try{return await D(!0)}catch{return{ok:!1,message:"Watchbell didn't answer. Check that it's still running, then try again."}}}})]})}],366550)}]})();
|
|
34
34
|
|
|
35
35
|
//# sourceMappingURL=src_app_%28console%29_sql_1icfsti04djqe._.js.map
|