watchbell 1.2.4 → 1.2.6
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 +22 -12
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +60 -60
- 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 +30 -20
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/(private)/ai/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +60 -60
- 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 +26 -16
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +60 -60
- 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 +36 -26
- package/server/.next/server/app/(console)/alerts/page.js +60 -60
- 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 +37 -27
- package/server/.next/server/app/(console)/apps/[id]/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/apps/page.js +60 -60
- 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 +23 -13
- package/server/.next/server/app/(console)/backups/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/catalog/page.js +60 -60
- 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 +31 -21
- package/server/.next/server/app/(console)/connections/page.js +60 -60
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +20 -10
- package/server/.next/server/app/(console)/d1/page.js +60 -60
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +26 -16
- package/server/.next/server/app/(console)/deployments/page.js +60 -60
- 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 +27 -17
- package/server/.next/server/app/(console)/dns/page.js +60 -60
- 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 +22 -12
- package/server/.next/server/app/(console)/domains/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/events/page.js +60 -60
- 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 +27 -17
- package/server/.next/server/app/(console)/firebase/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/logs/page.js +60 -60
- 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 +21 -11
- package/server/.next/server/app/(console)/manage/sections/page.js +60 -60
- 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 +31 -21
- package/server/.next/server/app/(console)/neon/page.js +60 -60
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/overview/page.js +60 -60
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +21 -11
- package/server/.next/server/app/(console)/repos/[id]/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/repos/page.js +60 -60
- 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 +30 -20
- package/server/.next/server/app/(console)/settings/page.js +60 -60
- 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 +27 -17
- package/server/.next/server/app/(console)/sql/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/status/page.js +60 -60
- 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 +41 -31
- package/server/.next/server/app/(console)/supabase/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/topology/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/turso/page.js +60 -60
- 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 +20 -10
- package/server/.next/server/app/(console)/upstash/page.js +60 -60
- 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 +34 -24
- package/server/.next/server/app/(console)/uptime/page.js +60 -60
- 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 +25 -15
- package/server/.next/server/app/(console)/welcome/page.js +60 -60
- 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 +17 -7
- package/server/.next/server/app/api/collect/route.js +63 -63
- 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 +17 -7
- package/server/.next/server/app/api/daily/route.js +45 -45
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/health/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js +2 -2
- 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 +17 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +42 -42
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +4 -3
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.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 +2 -2
- 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 +1 -1
- 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 +4 -3
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +4 -3
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +15 -15
- 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/icon.svg/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js +14 -14
- 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 +14 -14
- 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.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 +23 -23
- 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]__0ia-wyj5qrosx._.js → [externals]__1-y7b_mfadqi-._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0igl_rsv6z3fr._.js → [externals]__1b3dgyi9diwhy._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0mh8e6gkgfswq._.js → [externals]__1dd9hhrnxhegy._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0_e2eoq7w3ff_._.js → [root-of-the-server]__0-zrmrb4499ay._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ezd1s2862iob._.js → [root-of-the-server]__02h-ec_gusm_2._.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]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0exicuoq6gmph._.js → [root-of-the-server]__038br8sr9eepd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__20ng0hgzxagf_._.js → [root-of-the-server]__040a3il587nja._.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]__0cc32xnniktg9._.js → [root-of-the-server]__04iumkvxok49x._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__01vos42kjq9nn._.js → [root-of-the-server]__0655w3_d4ejfb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__05zj7uswzr0f9._.js → [root-of-the-server]__08i6b8tzxads4._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0-ftc1hhcjcl2._.js → [root-of-the-server]__09dk9k-9q4d16._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0a5op--7u5_xh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__040ix5fqb_zb-._.js → [root-of-the-server]__0a5t6bkr3-uqw._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1gt_-h9n48pwi._.js → [root-of-the-server]__0c0pkv3an1lg-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0185dne3slx7e._.js → [root-of-the-server]__0cmp5mwchd8sn._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0oqltt9cni6m0._.js → [root-of-the-server]__0ct18spdi1leu._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0r88w3qhrtzz_._.js → [root-of-the-server]__0db2p-om-b_4s._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0dfx2psnngcys._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0fc4c9-xzmkol._.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]__0rb1-3538-pq9._.js → [root-of-the-server]__0jswmvddgl3sb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ms1uw85c5wg2._.js → [root-of-the-server]__0lco43i5w25zg._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0lht1cr4aiudu._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0ikiyg3u02ofv._.js → [root-of-the-server]__0m_nqt44ioex_._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0mrbo2p5fy4ji._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0w_og0zl6hqzj._.js → [root-of-the-server]__0qme276hvajvy._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0r3cq1lecww4e._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0070gc9ml0mf7._.js → [root-of-the-server]__0r_6xpjwcdrda._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0rctmpp7p7cp9._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0x47i6wm-cd1z._.js → [root-of-the-server]__0ruici82tzf0w._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0e2utnqdim70d._.js → [root-of-the-server]__0s8wo4espz6eu._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0sp5xoed3-994._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0twr9duara46x._.js → [root-of-the-server]__0sq7jwlhv9n79._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0sabwm3w1rm0q._.js → [root-of-the-server]__0ubalx5w0ds9m._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0ux1hi2fgqxu7._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0vv63vp8y0fs-._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0-st5xltl53h9._.js → [root-of-the-server]__0w07p3ypro834._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0x6qqr79pq_j9._.js → [root-of-the-server]__0whk62ebfu1u0._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1vqs8o9bv1wbk._.js → [root-of-the-server]__0x4_tt5v17fx3._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__05jzua9637vlo._.js → [root-of-the-server]__0x929r1phz1oi._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__01yzy5zxsekxi._.js → [root-of-the-server]__0ycpg444s91lb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0z3hf530bwcq_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0zkeao78mms1_._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0kt0hjvyklnk8._.js → [root-of-the-server]__0zu1odpvrptrt._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0zwr7fll4dm9q._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0cz3da2wx3_wd._.js → [root-of-the-server]__1-2ckgdamg0-j._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1-ne3clcouvm2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-xgpr5q148ze._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__10negjjz5k5bz._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1bce11artflky._.js → [root-of-the-server]__12lrpnd-dhawi._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__14-pt1-s1o5ex._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__14jw0y_hj7jmw._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0znmcklxfccvk._.js → [root-of-the-server]__15vqo7amys573._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__16jyhasrd2ojp._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0kzpzdkpz_nt0._.js → [root-of-the-server]__177l2p7kcj-16._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__186-sa38csgot._.js → [root-of-the-server]__17dr2z1o1hsvk._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08-puk3_gawjd._.js → [root-of-the-server]__17jngidngj3rb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__19k0l-ubyp1j_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_zr2xlmtkn4l._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1aagly59gw-xf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1bg8grh9kfims._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0tykhzqhwdx_k._.js → [root-of-the-server]__1bjvjngj7lvqi._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1c0cb3ur16yhh._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c1nhm-kj5kqu._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1g4iy2tasmn0f._.js → [root-of-the-server]__1d1u-wejsfl84._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1d4wmw2wohveb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1spds17tpnsgr._.js → [root-of-the-server]__1etg41llk7f09._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1g6xpr_typmce._.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]__1a7_3nq1jjab-._.js → [root-of-the-server]__1jjusd74y8gd5._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1jvy8r4n-62x7._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kr6f03r82mk6._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kwldcrcmwc0x._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1lq25064c4ny_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1m8gyvj7rkapj._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1_zjje9edw0bz._.js → [root-of-the-server]__1nm0sjvuf9jrb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1ozfk4_3lx1o7._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0i75m0es1m3hf._.js → [root-of-the-server]__1p3fqi03x5du8._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1pa_syiho939h._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1qmdi981syrsn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1r24segt1slar._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1r9v6qgjwlv32._.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]__0xqgsjnebebv8._.js → [root-of-the-server]__1smidspfoqz48._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__20r_62r36t28o._.js → [root-of-the-server]__1t87mhqedigsz._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1u5my3-gpw499._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1ny8nr52qvr4i._.js → [root-of-the-server]__20sp5m_w5iklm._.js} +2 -2
- package/server/.next/server/chunks/{_1_9n8x5ncta29._.js → _0-jfehdfklu-i._.js} +2 -2
- package/server/.next/server/chunks/{_1n-fm2bdo9t2m._.js → _0-ub844lc_z_a._.js} +3 -3
- package/server/.next/server/chunks/_05hhw0eql5-dv._.js +10 -0
- package/server/.next/server/chunks/{_0zj10_al6r59j._.js → _08fv52mqg619m._.js} +2 -2
- package/server/.next/server/chunks/{_1cq1vvbp6pglr._.js → _08z7lmk32r__5._.js} +3 -3
- package/server/.next/server/chunks/_0b7rdk-4lrvfy._.js +10 -0
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/{_1myv9csc_in08._.js → _1-pv4d4qhe7to._.js} +3 -3
- package/server/.next/server/chunks/_12g2m3a5e94_5._.js +3 -0
- package/server/.next/server/chunks/{_1e_rbkrukj0x9._.js → _13dlt388gceez._.js} +2 -2
- package/server/.next/server/chunks/_19wqm5leaaesp._.js +1 -1
- package/server/.next/server/chunks/{_0ls7sornjrg95._.js → _1b1t9p1xljuql._.js} +1 -1
- package/server/.next/server/chunks/_1d_77nvqcnkcg._.js +3 -0
- package/server/.next/server/chunks/_1e_6lrlg9ml3-._.js +1 -1
- package/server/.next/server/chunks/_1l-68brbq289m._.js +10 -0
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/{src_0_l3dzp06o4x5._.js → src_01fd1ve-xj9xo._.js} +2 -2
- package/server/.next/server/chunks/{src_0m6xxpw2u-xv_._.js → src_049aazgsmienv._.js} +2 -2
- package/server/.next/server/chunks/src_05vq-abuilwk4._.js +3 -0
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_06lwphwuzgl6e._.js +3 -0
- package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +3 -0
- package/server/.next/server/chunks/src_0tw-h0otr2tgt._.js +1 -1
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/{src_15fupbs9-n8q9._.js → src_20sym_ohuqw76._.js} +2 -2
- package/server/.next/server/chunks/src_2108_me3q06ih._.js +3 -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 +9 -0
- package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +9 -0
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
- package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +15 -15
- package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +13 -13
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
- package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +13 -13
- package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
- package/server/.next/server/chunks/src_private_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]__0vlxry7jq5j1j._.js → [externals]__0d7rvi3tmo9zf._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1mol6ksxmtkv6._.js → [externals]__1rj83sktdlxvt._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0yyslm1ka5px3._.js → [externals]__1s7xw086rvse0._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0irbihjwcc9is._.js → [externals]__20leqouf6m6f3._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__193nmh09rrpbx._.js → [root-of-the-server]__0-zqh1gf4dsj3._.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]__1ctkj-25wt37o._.js → [root-of-the-server]__05gue5stvejba._.js} +3 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__077-acap7g4ck._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0wi2grctadbk8._.js → [root-of-the-server]__080do5vfu69n5._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0xjg51t1__v-s._.js → [root-of-the-server]__08u1c2f2i7ru4._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0amfa4t2-in-x._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0sj92w6mg92ds._.js → [root-of-the-server]__0b3g72j9cu141._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ed6qo3lg9_f9._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0z_1k5876-_wx._.js → [root-of-the-server]__0ee5ew5q3jh8i._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__110158s15r7mi._.js → [root-of-the-server]__0fd39clnjw9fb._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0h9rpg5-lhp5q._.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]__0keo0-hwsnkw9._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1a0b_dbx4uans._.js → [root-of-the-server]__0p86d9imejczs._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__133_j0bmsjnzt._.js → [root-of-the-server]__0q7rssq_3unbc._.js} +2 -2
- 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]__1_h_ya1h8efdj._.js → [root-of-the-server]__0tqqte5jb6jz7._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ijizmc3ga_6o._.js → [root-of-the-server]__0xscr-8y9a4cj._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ogwz1buruc_x._.js → [root-of-the-server]__11paa809_igt_._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__18gcvkhrt73zc._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tj-iwvrxfd1a._.js → [root-of-the-server]__1o6cysvbfkltz._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hzlz_t5eect2._.js → [root-of-the-server]__1qrk2rfmx21b_._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1kfivch_kfesn._.js → [root-of-the-server]__1tgcpistmcbrd._.js} +3 -3
- 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]__1-d88ogkwql_b._.js → [root-of-the-server]__1uzqsxyxwffdo._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0n-sc7pzu7fpz._.js → [root-of-the-server]__1y7nfsglxx7cn._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmuaump_n9c1._.js +3 -0
- package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +1 -1
- package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0e4xfzm8oecc-._.js → _07-dfx0qix52k._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_1jclq5d7tposb._.js → _07f-svx_l12lw._.js} +2 -2
- package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
- package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +3 -0
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/_0c7stbntpuyt_._.js +1 -1
- package/server/.next/server/chunks/ssr/_0c8kew3jsb-yb._.js +3 -0
- 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/_0i04zoixa2iup._.js +2 -2
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1e5kqt081d8yt._.js → _0jqrjb30bblvy._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
- 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/_0qhvl_fw4qetx._.js +1 -1
- package/server/.next/server/chunks/ssr/_0rsh9v4b3yj0b._.js +3 -0
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +2 -2
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_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/{_1rinsar6bp6ul._.js → _1bc69myq83woe._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.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/{_08d4hz_ddxc02._.js → _1j61tfpfj2t9d._.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/_1pp1o361lgpwu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
- 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/_218164gkxgum_._.js +1 -1
- 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_0y5m8cul6d7kk.js +1 -1
- 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)_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_12wgjpd0lbh12.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/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_0dceh6hsdybq8._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_186l56gdeizg8._.js → src_14ulgwoxoyfkq._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1bg_io_v7gt71._.js +3 -0
- 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)_1co5pna1vfflj._.js → src_app_(console)_0e832kna-734m._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_0kwns5iudhgwj._.js +3 -0
- 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]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_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)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_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_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_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_signin_1fj68y-bbe-xr._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1gauld53vvpev._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
- package/server/.next/server/chunks/ssr/{src_lib_demo_0ftmf3wmtezvl._.js → src_lib_demo_09ht4doed9eqi._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_demo_1b1yd_ne2dpeh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +14 -14
- package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +2 -2
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +6 -0
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +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 +321 -143
- package/server/.next/static/chunks/{1ukyjy13dwy_z.js → 0-ett1b-o34r0.js} +1 -1
- package/server/.next/static/chunks/{3f1td0b-oy-sr.js → 0-fov5gyz32mj.js} +1 -1
- package/server/.next/static/chunks/{38g-5wiggu6__.js → 041ko45qawas9.js} +1 -1
- package/server/.next/static/chunks/{33ddsp07_9o1d.js → 0ia5361d7hoce.js} +2 -2
- package/server/.next/static/chunks/{2xio-kspedw69.js → 0m40tf7-fh2ht.js} +1 -1
- package/server/.next/static/chunks/{1y_6crandf_3f.js → 0o6_y6xu__s6q.js} +1 -1
- package/server/.next/static/chunks/{2s-_9p0-395sm.js → 0x1xj431cbkfa.js} +1 -1
- package/server/.next/static/chunks/{1xm6ay06cjchs.js → 0x6eipkda93fh.js} +1 -1
- package/server/.next/static/chunks/{2-m982u6v7z8m.js → 0zj507c7ui4jt.js} +1 -1
- package/server/.next/static/chunks/{40n6mtthd3_sh.js → 11_iva96ceble.js} +1 -1
- package/server/.next/static/chunks/{3letbzhf_1srv.js → 15_3o9t6d7ujo.js} +1 -1
- package/server/.next/static/chunks/{340qccog2_uge.js → 1e0iyxugtm7b0.js} +2 -2
- package/server/.next/static/chunks/{0md0jy9rztofl.js → 1eeqy_pc_llv4.js} +1 -1
- package/server/.next/static/chunks/{0-6om8-d7itz8.js → 1g3u_ngexgvss.js} +1 -1
- package/server/.next/static/chunks/{2z6gojfx3lqvt.js → 1ghfc_9g9io17.js} +1 -1
- package/server/.next/static/chunks/{0v_-lu_cx7f91.js → 1gw40u38oaj6z.js} +1 -1
- package/server/.next/static/chunks/{1rkrtrvwbbnjf.js → 1jc9qa7xb63lp.js} +1 -1
- package/server/.next/static/chunks/{01u9q07wu6-x1.js → 1muk1ubaswhlj.js} +1 -1
- package/server/.next/static/chunks/{31v3igne_z-0k.js → 1qug5gmo2rbaf.js} +1 -1
- package/server/.next/static/chunks/{16yvy9zkjac5c.js → 1vyf467_8v-cw.js} +1 -1
- package/server/.next/static/chunks/{2a3tky__z9q4j.js → 1z8byc-won_tq.js} +1 -1
- package/server/.next/static/chunks/{0181phyuecg9b.js → 1zhnm25vt6hu8.js} +1 -1
- package/server/.next/static/chunks/{1gt3cagsbgx4w.js → 243ijh4fs2zsq.js} +1 -1
- package/server/.next/static/chunks/{2cipdjdkoq312.js → 299jy1-g0cm8n.js} +1 -1
- package/server/.next/static/chunks/{2ue_c6tww95_c.js → 2hscqr4n7hu7n.js} +1 -1
- package/server/.next/static/chunks/{18johpgap0xmw.js → 2j4kmkog1zkpo.js} +1 -1
- package/server/.next/static/chunks/{18mkhwl0zlvnp.js → 2j9fpx77gfesr.js} +1 -1
- package/server/.next/static/chunks/{0hj1-5zruyih6.js → 2jdlcu25qy00d.js} +1 -1
- package/server/.next/static/chunks/{3imk3dh9_4wd5.js → 2kurh5s5u8_4-.js} +1 -1
- package/server/.next/static/chunks/{1_8g4usrgjnnu.js → 2seth6dz7lydu.js} +1 -1
- package/server/.next/static/chunks/{0xcpi35p5fa83.js → 2t30gqjhercob.js} +1 -1
- package/server/.next/static/chunks/{1q-m7qgrvvzwb.js → 2y05vm9r_wxds.js} +1 -1
- package/server/.next/static/chunks/{0z0may9twpt-j.js → 2ziborutqth-2.js} +1 -1
- package/server/.next/static/chunks/{0_5_9w6m-xwd0.js → 3-xb6vd_khwfo.js} +1 -1
- package/server/.next/static/chunks/{1sc1vz_ygak9u.js → 36e9fpbpqndu5.js} +1 -1
- package/server/.next/static/chunks/{0t66sf4vvalei.js → 3cjokqd7600_0.js} +1 -1
- package/server/.next/static/chunks/{3qedt96akbcad.js → 3hpyrqm98toxv.js} +1 -1
- package/server/.next/static/chunks/{1ys80h6x541kn.js → 3kqiccrh_bnpl.js} +2 -2
- package/server/.next/static/chunks/{3wi930ujb_5_z.js → 3r3-9oir5c1ul.js} +1 -1
- package/server/.next/static/chunks/{0krhehmzgigx5.js → 3wl06e5yyzlwh.js} +1 -1
- package/server/.next/static/chunks/{3jhh47vezwohc.js → 3xbsyym_tfj0u.js} +1 -1
- package/server/.next/static/chunks/{3a5a2iizetq9b.js → 3ymogjp57edbj.js} +1 -1
- package/server/.next/static/chunks/{00oeu_tbjky7m.js → 422gxqrwveuyc.js} +1 -1
- package/server/.next/static/chunks/{2ect0ww0gtoad.js → 442t8i7d46g9y.js} +2 -2
- package/server/.next/static/chunks/{0mp6prf1hx5mx.js → 4545xu4sehvxc.js} +1 -1
- package/server/server.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0-u9oeob2sa7f._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__028cxv1v6v0yb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__04oipax0jupxr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__07byme21uj5ln._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__07g16s_wi2sai._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ab040lxtt8_d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0dvuy3ibsyiik._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0gmn5s40au84-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0k7o0hgdraix2._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0o0z59_jylzvy._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0quiawzx_nww0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0v1t0gkrsn99q._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0wdxw44t9l9o_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0y99cuuxm0xs3._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zflnh-2nol66._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10cqzo_4dhr4m._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10dp33pb5e0ml._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12xl6ax-q8s93._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14sac3h4sfhh7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16md_196q9s8a._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__17xbg7cngebwp._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__18lfi0w0e_h0k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c1wqmzm65xo8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1gry2nrq5xhxl._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hl9k6e1o7xh2._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1kk_s-q90445m._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1kqq90-sj8-op._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lam0c5a3f224._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lfsf7un8kdbr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1nusfevn1z4nm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1o9v_499yd5k8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1oc55uo0ax787._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1onjxlntn-u8g._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qdbn4gdg7ndr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1uqxnb7qfqcms._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1vxtt1favjdfr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1xwgj26z5f7ih._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__20sv90-2ei08l._.js +0 -3
- package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +0 -3
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +0 -10
- package/server/.next/server/chunks/_15g-opioju_ju._.js +0 -3
- package/server/.next/server/chunks/_1daeuesc2d2tg._.js +0 -3
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +0 -10
- package/server/.next/server/chunks/src_12wdz9bdn7a-7._.js +0 -3
- package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +0 -9
- package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +0 -9
- package/server/.next/server/chunks/ssr/[root-of-the-server]__056nm27ib-x1m._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0eaqsql69fhf8._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0l_cl2qk_xmmr._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0nxyo70ahj7tk._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1wr4__6rvsb3b._.js +0 -3
- package/server/.next/server/chunks/ssr/_0uvkx5n0kf7r2._.js +0 -3
- package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +0 -3
- package/server/.next/server/chunks/ssr/_1o94cw0ml7xu7._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0jxjbvkvg0bjg._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0txyv7r1zns16._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1xoua7wkmyfkn._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1y827m5-ojdib._.js +0 -6
- package/server/.next/server/chunks/ssr/src_app_(console)_1shtcv6hidi4-._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_signin_0ko968fxahf6u._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_04orn7u7ufxp1._.js +0 -3
- /package/server/.next/static/{2_t4xVgbum1rtVSQxAYYV → u0RcJ9L5FEEUdENisty65}/_buildManifest.js +0 -0
- /package/server/.next/static/{2_t4xVgbum1rtVSQxAYYV → u0RcJ9L5FEEUdENisty65}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{2_t4xVgbum1rtVSQxAYYV → u0RcJ9L5FEEUdENisty65}/_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(364525);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,"7088ae97dbe713832c3ed7d21bfbaeeba0ee55f892",null),(0,b.registerServerReference)(aS,"6004fac472ab5753c86c2bb8ad360ec9ce7f092f16",null),(0,b.registerServerReference)(aT,"408db3a5d38d1d7c7a4a03d938ee250f3ffa82bd38",null),(0,b.registerServerReference)(aU,"60a99acee563dae6858c3d105470c114da7edfbb38",null),(0,b.registerServerReference)(aV,"000fa03d6d8500a2fa2ad64a9c4af3762a11f2215d",null),(0,b.registerServerReference)(aW,"006de3bf8f32e81d0fd4bf6aa3a0fa124dcb22d0d8",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(364525);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,"70fbd6edbde31eeeaac7798ef060ae321be7ee89ae",null),(0,b.registerServerReference)(aS,"608e2b660f1c14e9633e3b2da612ad5ced362138e9",null),(0,b.registerServerReference)(aT,"40105d850a6b0aef651eb7b095bfb9d3b9abf9c3e3",null),(0,b.registerServerReference)(aU,"60a1541f8a46089c254c08d32883d14dc57d6da3dc",null),(0,b.registerServerReference)(aV,"00e14c071684abfe236a0b7091e2e09f954533cbda",null),(0,b.registerServerReference)(aW,"008eaf2d7edce4ecebe17eca886783cf2cce12b3e1",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(364525),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(364525),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,"7891acb58aadd222ae69b27ab482822eea681adb98",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)("7891acb58aadd222ae69b27ab482822eea681adb98",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)("40e6f8f4de770956073a289b3e098fad82aa56f2e9",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)("40e518c8b97faac6b451c17bc084748a5be659f493",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)("60a60756470f898d90ac8a513c4cc1e386e78017d8",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,"607e6ccad3576a41fb06b663738c76fb9e83b3e403",null),(0,b.registerServerReference)(v,"60f539f9516ec6234a00b565d6a91a7397291c7b50",null),(0,b.registerServerReference)(w,"402699ddc65c316316409e4a74a6581c0ad1ee2f03",null),(0,b.registerServerReference)(x,"603508b8d4a231243ef80d80e0be03aff7417516f0",null),(0,b.registerServerReference)(y,"604a522837fc63c6921e8a0a9fda8f107e08313fee",null),(0,b.registerServerReference)(z,"405724da6049a46346b20faca24b25c0f1136073f7",null),(0,b.registerServerReference)(A,"40b5236d91a1a2404af2a4d7b1a043ae54b573572d",null),(0,b.registerServerReference)(B,"606608f1aaad295a654bce96033d08b694943bcf5f",null),(0,b.registerServerReference)(C,"60afdf2ea325985114553855550eab469057608eb2",null),(0,b.registerServerReference)(D,"40d83105cb60fe3d8815c8b57112567a8ae3d0d141",null),(0,b.registerServerReference)(E,"601a75e7ca1863b0f22f4e8789f5e8402a6bc1da14",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
|
package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[84309,a=>{"use strict";var b=a.i(907997),c=a.i(395936),d=a.i(649247),e=a.i(803681),f=a.i(685865),g=a.i(421911),h=a.i(605826),i=a.i(513553),j=a.i(534908),k=a.i(109307),l=a.i(722061),m=a.i(875016),n=a.i(840784),o=a.i(858806),p=a.i(532620),q=a.i(264906),r=a.i(612990),s=a.i(133289),t=a.i(371289),u=a.i(658932),v=a.i(513701),w=a.i(93321),x=a.i(530385),y=a.i(548734),z=a.i(837137);async function A(){let[a]=await (0,y.f)().select({finishedAt:z.collectorRuns.finishedAt,durationMs:z.collectorRuns.durationMs,checks:z.collectorRuns.checks}).from(z.collectorRuns).where((0,w.b)((0,w.E)(z.collectorRuns.finishedAt),(0,w.y)(z.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,x.A)(z.collectorRuns.startedAt)).limit(1);return a?.finishedAt?{finishedAt:a.finishedAt,durationMs:a.durationMs,checks:a.checks}:null}async function B(){return(0,y.f)().select({provider:z.accounts.provider,label:z.accounts.label}).from(z.accounts).where((0,w.u)(z.accounts.status,"error")).orderBy(z.accounts.provider,z.accounts.label).limit(50)}var C=a.i(715208),D=a.i(556987),E=a.i(505237),F=a.i(904589),G=a.i(182357),H=a.i(910697),I=a.i(228173),J=a.i(701702),K=a.i(686251),L=a.i(139138),M=a.i(469762);let N="flex items-start gap-2.5 border-b border-line py-2 text-[13px] last:border-b-0";function O({builds:a,events:d,now:f}){return(0,b.jsxs)(e.N,{title:"Activity",meta:(0,b.jsx)(c.default,{href:"/events",children:"View events"}),children:[a.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"my-1.5 text-[12.5px] text-ink-faint",children:"Ongoing"}),(0,b.jsx)("div",{children:a.map(a=>(0,b.jsxs)("div",{className:N,children:[(0,b.jsx)(K.Z,{state:"build"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsxs)("b",{className:"font-medium",children:["Building ",(0,b.jsx)(J.Masked,{kind:"app",real:a.appName})]}),(0,b.jsxs)("p",{className:"mt-0.5 text-ink-soft",children:[a.branch??"—"," · ",(0,M._)(a.commitSha)," · ",(0,M.A)(a,f)]})]})]},a.id))})]}),(0,b.jsx)("div",{className:(0,L.f)("mb-1.5 text-[12.5px] text-ink-faint",a.length>0?"mt-3":"mt-1.5"),children:"Recent events"}),0===d.length?(0,b.jsx)("p",{className:"py-2 text-[13px] text-ink-soft",children:"No events yet"}):(0,b.jsx)("div",{children:d.map(a=>(0,b.jsxs)("div",{className:N,children:[(0,b.jsx)("time",{className:"min-w-10 whitespace-nowrap pt-px font-mono text-xs text-ink-faint",dateTime:(a.lastAt??a.at).toISOString(),children:(0,M.v)(a.lastAt??a.at,f)}),(0,b.jsx)(K.Z,{state:a.kind,still:!0}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("span",{className:"sr-only",children:[E.X[a.kind],": "]}),(0,b.jsx)(J.MaskedText,{text:a.message})," · ",(0,b.jsx)(J.MaskedText,{text:a.resource}),a.detail&&(0,b.jsx)("p",{className:"mt-0.5 text-ink-soft",children:(0,b.jsx)(J.MaskedText,{text:a.detail})})]})]},a.id))})]})}var P=a.i(252302),Q=a.i(954296);let R="Checked by Watchbell";function S({health:a}){let c,d;return(0,b.jsx)(e.N,{title:"Health",meta:"Last 24 hours",children:(c=null!==a.uptime,[(d=a=>({...a,unit:"—"===a.value?"":a.unit}))({label:"Sites reachable",hint:"Share of checks that got an answer, last 24 h",term:"Uptime: average of every monitor's successful checks",src:"own",srcText:R,value:(0,M.C)(a.uptime),unit:"",series:a.series.uptime}),d({label:"Response time",hint:"Most checks (95 of 100) answered faster than this",term:"p95 response time",src:"own",srcText:R,value:null===a.p95?"—":String(Math.round(a.p95)),unit:"ms",series:a.series.p95}),d({label:"Server errors",hint:"Pages that broke on the server side",term:"HTTP 5xx responses",src:"own",srcText:R,value:c?String(a.s5xx):"—",unit:"in 24 h",series:a.series.s5xx}),d({label:"New versions",hint:"Deploys put live in the last 24 h",term:"Production deployments",src:"api",srcText:"From Vercel",value:String(a.deploys),unit:"in 24 h",series:a.series.deploys})]).map(a=>(0,b.jsxs)("div",{className:"grid grid-cols-[minmax(0,2fr)_92px_minmax(0,1fr)] items-center gap-x-3 gap-y-1.5 border-b border-line py-[9px] last:border-b-0 max-[640px]:grid-cols-[minmax(0,1fr)_auto]",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{children:[a.label,(0,b.jsx)(Q.Src,{kind:a.src,children:a.srcText})]}),(0,b.jsxs)("div",{className:"text-xs text-ink-soft",title:a.term,children:[a.hint,(0,b.jsxs)("span",{className:"sr-only",children:[" (",a.term,")"]})]})]}),(0,b.jsxs)("span",{className:"text-[17px] font-semibold",children:[a.value,a.unit&&(0,b.jsxs)("small",{className:"text-xs font-normal text-ink-soft",children:[" ",a.unit]})]}),(0,b.jsx)("div",{className:"max-[640px]:col-span-2",children:(0,b.jsx)(P.t,{values:a.series,width:300,height:30,fluid:!0,label:`${a.label}, last 24 hours`})})]},a.label))})}var T=a.i(154756);let U="flex items-center gap-2 border-b border-line py-2 last:border-b-0",V=(a,b)=>`${a} ${b}${1===a?"":"s"}`;function W({states:a}){return(0,b.jsx)("span",{className:"ml-auto flex gap-2.5 text-[13px]",children:(0,E.R)(a).map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(K.Z,{state:a.state}),(0,b.jsx)("span",{className:"sr-only",children:E.X[a.state]}),a.n]},a.state))})}function X({apps:a,databases:c,monitors:d,domains:f}){return(0,b.jsxs)(e.N,{title:"Inventory",children:[(0,b.jsxs)("div",{className:U,children:[(0,b.jsx)(T.F,{kind:"app",name:V(a.length,"application"),href:"/apps"}),(0,b.jsx)(W,{states:a})]}),(0,b.jsxs)("div",{className:U,children:[(0,b.jsx)(T.F,{kind:"db",name:V(c.length,"database"),href:"/supabase"}),(0,b.jsx)(W,{states:c})]}),(0,b.jsxs)("div",{className:U,children:[(0,b.jsx)(T.F,{kind:"mon",name:V(d.length,"monitor"),href:"/uptime"}),(0,b.jsx)(W,{states:d})]}),(0,b.jsxs)("div",{className:U,children:[(0,b.jsx)(T.F,{kind:"dom",name:V(f.length,"domain"),href:"/domains"}),(0,b.jsx)(W,{states:f})]})]})}let Y=["grid-cols-1","grid-cols-2","grid-cols-3","grid-cols-4","grid-cols-5","grid-cols-6"];function Z({vercel:a,supabase:d,neon:e,firebase:f,cloudflare:g,collector:h}){let i=[{name:"Vercel",href:"/apps",...a},{name:"Supabase",href:"/supabase",...d},{name:"Neon",href:"/neon",...e},{name:"Firebase",href:"/firebase",...f},{name:"Cloudflare",href:"/domains",...g},{name:"Collector",href:"/settings",...h}].filter(a=>!a.empty||"Collector"===a.name);return(0,b.jsx)("div",{className:(0,L.f)("grid rounded-lg border border-line bg-surface max-[720px]:grid-cols-2",Y[i.length-1],i.length>3&&"max-[1280px]:grid-cols-3"),children:i.map(a=>(0,b.jsxs)(c.default,{href:a.href,className:"min-w-0 border-r border-line px-3.5 py-2.5 text-ink last:border-r-0 hover:bg-hover hover:no-underline max-[1280px]:border-b",children:[(0,b.jsxs)("div",{className:"flex items-center gap-[7px] font-medium",children:[(0,b.jsx)(K.Z,{state:a.state}),a.name,(0,b.jsxs)("span",{className:"sr-only",children:[", ",E.X[a.state]]})]}),(0,b.jsx)("div",{className:"truncate pl-6 text-[12.5px] text-ink-soft",children:(0,b.jsx)(J.MaskedText,{text:a.sub,inLink:!0})})]},a.name))})}async function $(){let a=await (0,k.I)(),w=new Date,x=(0,E.z)(a.role),y="owner"===a.role,{RecSummarySlot:z,AiNotesSlot:J}=j.extensions,[K,L,M,N,P,Q,R,T,U,V,W,Y,$,_]=await Promise.all([(0,n.G)(w),(0,v.j)(w),(0,q.f)(H.O.recentEvents,{excludeActions:!0}),(0,o.O)(w),A(),B(),(0,p.R)("supabase_project"),(0,p.R)("neon_project"),(0,p.R)("firestore"),(0,p.V)(),(0,p.p)(),(0,m.T)(w).catch(()=>null),(0,p.e)(),(0,t.r)()?(0,r.H)():Promise.resolve(null)]),aa=M.map(a=>(0,D.p)(a,$)),ab=Y&&Y.map(a=>(0,D.d)(a,$)),ac=K.map(a=>(0,E.k)(a).state),ad=K.flatMap(a=>a.monitors.map(b=>({...b,appGone:a.gone}))).map(a=>(0,E.M)(a).state),ae=(0,C.Y)(R,w,$),af=[...R,...T,...U].map(a=>a.state),ag=(0,C.r)(ae,(0,C.d)(V),$),ah=(0,E.u)(Q,a.role),ai=(0,E.m)(K.map(a=>({id:a.id,name:a.name,state:a.state,gone:a.gone,since:a.stateSince,monitors:a.monitors,lastDeploy:a.lastDeploy,dbPaused:a.dbPaused})),w),aj=(0,G.v)(K.map(a=>({id:a.id,name:a.name,gone:a.gone,security:a.security}))),ak=function(a,b){if(!a.length)return null;let c=a.length,d=a.filter(a=>"err"===a||"fail"===a).length,e=a.filter(a=>"warn"===a).length,f=a.filter(a=>"ok"===a||"build"===a).length,g=d||e||f!==c?`${f} of ${c} ${1===c?"app":"apps"} ${1===f?"is":"are"} up${d?`, ${d} down`:""}${e?`, ${e} degraded`:""}.`:1===c?"The app is up.":2===c?"Both apps are up.":`All ${c} apps are up.`,h=b?`${b} ${1===b?"thing needs":"things need"} you; ${1===b?"it is":"they are"} below.`:"Nothing needs you.";return`${g} ${h}`}(K.filter(a=>!a.gone).map(a=>(0,E.k)(a).state),ai.length+ag.length+aj.length+ +!!ah);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.AutoRefresh,{at:w.getTime()}),(0,b.jsx)(e.L,{crumbs:[{label:"Home"},{label:"Overview"}],title:"Overview",sub:ak??void 0,actions:x?(0,b.jsx)(g.RefreshButton,{}):void 0}),(0,b.jsx)(Z,{vercel:(0,E.E)(ac),supabase:(0,C.x)(R,w),neon:(0,C._)(T,w,$),firebase:(0,C.V)(U,w),cloudflare:(0,F.f)(W),collector:(0,t.W)()?{state:"ok",sub:s.e}:(0,E.f)(P,w)}),ah&&(0,b.jsx)(e.M,{tone:"danger",title:ah.title,action:"owner"===a.role?(0,b.jsx)(c.default,{href:"/connections",className:(0,e.R)({size:"sm"}),children:"Open connections"}):void 0,children:ah.body}),(0,b.jsx)(l.f,{member:a,waitingOnly:!0,title:"Creates waiting for approval"}),ai.map(a=>(0,b.jsx)(e.M,{tone:a.tone,title:a.title,action:(0,b.jsx)(c.default,{href:a.action.href,className:(0,e.R)({size:"sm"}),children:a.action.label}),children:a.body},a.key)),ag.map(a=>(0,b.jsx)(e.M,{tone:a.tone,title:a.title,action:(0,b.jsx)(c.default,{href:a.action.href,className:(0,e.R)({size:"sm"}),children:a.action.label}),children:a.body},a.key)),aj.map(a=>(0,b.jsx)(e.M,{tone:a.tone,title:a.title,action:(0,b.jsx)(c.default,{href:a.action.href,className:(0,e.R)({size:"sm"}),children:a.action.label}),children:a.body},a.key)),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,b.jsx)(S,{health:L}),_&&(0,b.jsx)(u.f,{pool:_,owner:y,compact:!0}),(0,b.jsx)(X,{apps:ac,databases:af,monitors:ad,domains:W.map(a=>a.state)})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,b.jsx)(O,{builds:N,events:aa,now:w}),ab&&(0,b.jsx)(i.f,{items:ab,canDismiss:x,showSubject:!0,max:10,summary:y&&z?(0,b.jsx)(z,{count:ab.length}):null,notes:y&&J?(0,b.jsx)(J,{}):null})]})]}),(0,b.jsx)(e.N,{title:"Applications",meta:(0,b.jsx)(c.default,{href:"/apps",children:"View all"}),flush:!0,children:0===K.length?(0,b.jsx)(d.c,{owner:"owner"===a.role}):(0,b.jsx)(h.PlainTable,{head:(0,I.j)(!0),rows:(0,I.A)(K,{compact:!0,canAct:x,now:w,book:$})})})]})}a.s(["default",0,$,"maxDuration",0,60],84309)},195154,function(a){a.n(a.i(84309))}];
|
|
1
|
+
module.exports=[84309,a=>{"use strict";var b=a.i(907997),c=a.i(395936),d=a.i(649247),e=a.i(803681),f=a.i(685865),g=a.i(421911),h=a.i(605826),i=a.i(513553),j=a.i(534908),k=a.i(109307),l=a.i(722061),m=a.i(875016),n=a.i(840784),o=a.i(858806),p=a.i(532620),q=a.i(264906),r=a.i(612990),s=a.i(133289),t=a.i(371289),u=a.i(658932),v=a.i(513701),w=a.i(569057),x=a.i(93321),y=a.i(530385),z=a.i(548734),A=a.i(837137);async function B(){let[a]=await (0,z.f)().select({finishedAt:A.collectorRuns.finishedAt,durationMs:A.collectorRuns.durationMs,checks:A.collectorRuns.checks}).from(A.collectorRuns).where((0,x.b)((0,x.E)(A.collectorRuns.finishedAt),(0,x.y)(A.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,y.A)(A.collectorRuns.startedAt)).limit(1);return a?.finishedAt?{finishedAt:a.finishedAt,durationMs:a.durationMs,checks:a.checks}:null}async function C(){return(0,z.f)().select({provider:A.accounts.provider,label:A.accounts.label}).from(A.accounts).where((0,x.u)(A.accounts.status,"error")).orderBy(A.accounts.provider,A.accounts.label).limit(50)}var D=a.i(715208),E=a.i(556987),F=a.i(505237),G=a.i(904589),H=a.i(182357),I=a.i(910697),J=a.i(228173),K=a.i(701702),L=a.i(686251),M=a.i(139138),N=a.i(469762);let O="flex items-start gap-2.5 border-b border-line py-2 text-[13px] last:border-b-0";function P({builds:a,events:d,now:f}){return(0,b.jsxs)(e.N,{title:"Activity",meta:(0,b.jsx)(c.default,{href:"/events",children:"View events"}),children:[a.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"my-1.5 text-[12.5px] text-ink-faint",children:"Ongoing"}),(0,b.jsx)("div",{children:a.map(a=>(0,b.jsxs)("div",{className:O,children:[(0,b.jsx)(L.Z,{state:"build"}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsxs)("b",{className:"font-medium",children:["Building ",(0,b.jsx)(K.Masked,{kind:"app",real:a.appName})]}),(0,b.jsxs)("p",{className:"mt-0.5 text-ink-soft",children:[a.branch??"—"," · ",(0,N._)(a.commitSha)," · ",(0,N.A)(a,f)]})]})]},a.id))})]}),(0,b.jsx)("div",{className:(0,M.f)("mb-1.5 text-[12.5px] text-ink-faint",a.length>0?"mt-3":"mt-1.5"),children:"Recent events"}),0===d.length?(0,b.jsx)("p",{className:"py-2 text-[13px] text-ink-soft",children:"No events yet"}):(0,b.jsx)("div",{children:d.map(a=>(0,b.jsxs)("div",{className:O,children:[(0,b.jsx)("time",{className:"min-w-10 whitespace-nowrap pt-px font-mono text-xs text-ink-faint",dateTime:(a.lastAt??a.at).toISOString(),children:(0,N.v)(a.lastAt??a.at,f)}),(0,b.jsx)(L.Z,{state:a.kind,still:!0}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("span",{className:"sr-only",children:[F.X[a.kind],": "]}),(0,b.jsx)(K.MaskedText,{text:a.message})," · ",(0,b.jsx)(K.MaskedText,{text:a.resource}),a.detail&&(0,b.jsx)("p",{className:"mt-0.5 text-ink-soft",children:(0,b.jsx)(K.MaskedText,{text:a.detail})})]})]},a.id))})]})}var Q=a.i(252302),R=a.i(954296);let S="Checked by Watchbell";function T({health:a}){let c,d;return(0,b.jsx)(e.N,{title:"Health",meta:"Last 24 hours",children:(c=null!==a.uptime,[(d=a=>({...a,unit:"—"===a.value?"":a.unit}))({label:"Sites reachable",hint:"Share of checks that got an answer, last 24 h",term:"Uptime: average of every monitor's successful checks",src:"own",srcText:S,value:(0,N.C)(a.uptime),unit:"",series:a.series.uptime}),d({label:"Response time",hint:"Most checks (95 of 100) answered faster than this",term:"p95 response time",src:"own",srcText:S,value:null===a.p95?"—":String(Math.round(a.p95)),unit:"ms",series:a.series.p95}),d({label:"Server errors",hint:"Pages that broke on the server side",term:"HTTP 5xx responses",src:"own",srcText:S,value:c?String(a.s5xx):"—",unit:"in 24 h",series:a.series.s5xx}),d({label:"New versions",hint:"Deploys put live in the last 24 h",term:"Production deployments",src:"api",srcText:"From Vercel",value:String(a.deploys),unit:"in 24 h",series:a.series.deploys})]).map(a=>(0,b.jsxs)("div",{className:"grid grid-cols-[minmax(0,2fr)_92px_minmax(0,1fr)] items-center gap-x-3 gap-y-1.5 border-b border-line py-[9px] last:border-b-0 max-[640px]:grid-cols-[minmax(0,1fr)_auto]",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{children:[a.label,(0,b.jsx)(R.Src,{kind:a.src,children:a.srcText})]}),(0,b.jsxs)("div",{className:"text-xs text-ink-soft",title:a.term,children:[a.hint,(0,b.jsxs)("span",{className:"sr-only",children:[" (",a.term,")"]})]})]}),(0,b.jsxs)("span",{className:"text-[17px] font-semibold",children:[a.value,a.unit&&(0,b.jsxs)("small",{className:"text-xs font-normal text-ink-soft",children:[" ",a.unit]})]}),(0,b.jsx)("div",{className:"max-[640px]:col-span-2",children:(0,b.jsx)(Q.t,{values:a.series,width:300,height:30,fluid:!0,label:`${a.label}, last 24 hours`})})]},a.label))})}var U=a.i(154756);let V="flex items-center gap-2 border-b border-line py-2 last:border-b-0",W=(a,b)=>`${a} ${b}${1===a?"":"s"}`;function X({states:a}){return(0,b.jsx)("span",{className:"ml-auto flex gap-2.5 text-[13px]",children:(0,F.R)(a).map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(L.Z,{state:a.state}),(0,b.jsx)("span",{className:"sr-only",children:F.X[a.state]}),a.n]},a.state))})}function Y({apps:a,databases:c,monitors:d,domains:f}){return(0,b.jsxs)(e.N,{title:"Inventory",children:[(0,b.jsxs)("div",{className:V,children:[(0,b.jsx)(U.F,{kind:"app",name:W(a.length,"application"),href:"/apps"}),(0,b.jsx)(X,{states:a})]}),(0,b.jsxs)("div",{className:V,children:[(0,b.jsx)(U.F,{kind:"db",name:W(c.length,"database"),href:"/supabase"}),(0,b.jsx)(X,{states:c})]}),(0,b.jsxs)("div",{className:V,children:[(0,b.jsx)(U.F,{kind:"mon",name:W(d.length,"monitor"),href:"/uptime"}),(0,b.jsx)(X,{states:d})]}),(0,b.jsxs)("div",{className:V,children:[(0,b.jsx)(U.F,{kind:"dom",name:W(f.length,"domain"),href:"/domains"}),(0,b.jsx)(X,{states:f})]})]})}let Z=["grid-cols-1","grid-cols-2","grid-cols-3","grid-cols-4","grid-cols-5","grid-cols-6"];function $({vercel:a,supabase:d,neon:e,firebase:f,cloudflare:g,collector:h}){let i=[{name:"Vercel",href:"/apps",...a},{name:"Supabase",href:"/supabase",...d},{name:"Neon",href:"/neon",...e},{name:"Firebase",href:"/firebase",...f},{name:"Cloudflare",href:"/domains",...g},{name:"Collector",href:"/settings",...h}].filter(a=>!a.empty||"Collector"===a.name);return(0,b.jsx)("div",{className:(0,M.f)("grid rounded-lg border border-line bg-surface max-[720px]:grid-cols-2",Z[i.length-1],i.length>3&&"max-[1280px]:grid-cols-3"),children:i.map(a=>(0,b.jsxs)(c.default,{href:a.href,className:"min-w-0 border-r border-line px-3.5 py-2.5 text-ink last:border-r-0 hover:bg-hover hover:no-underline max-[1280px]:border-b",children:[(0,b.jsxs)("div",{className:"flex items-center gap-[7px] font-medium",children:[(0,b.jsx)(L.Z,{state:a.state}),a.name,(0,b.jsxs)("span",{className:"sr-only",children:[", ",F.X[a.state]]})]}),(0,b.jsx)("div",{className:"truncate pl-6 text-[12.5px] text-ink-soft",children:(0,b.jsx)(K.MaskedText,{text:a.sub,inLink:!0})})]},a.name))})}async function _(){let a=await (0,k.I)(),x=new Date,y=(0,F.z)(a.role),z="owner"===a.role,{RecSummarySlot:A,AiNotesSlot:K}=j.extensions,[L,M,N,O,Q,R,S,U,V,W,X,Z,_,aa,ab]=await Promise.all([(0,n.G)(x),(0,v.j)(x),(0,q.f)(I.O.recentEvents,{excludeActions:!0}),(0,o.O)(x),B(),C(),(0,p.R)("supabase_project"),(0,p.R)("neon_project"),(0,p.R)("firestore"),(0,p.V)(),(0,p.p)(),(0,m.T)(x).catch(()=>null),(0,p.e)(),(0,t.r)()?(0,r.H)():Promise.resolve(null),(0,w.o)().catch(()=>void 0)]),ac=N.map(a=>(0,E.p)(a,_)),ad=Z&&Z.map(a=>(0,E.d)(a,_)),ae=L.map(a=>(0,F.k)(a).state),af=L.flatMap(a=>a.monitors.map(b=>({...b,appGone:a.gone}))).map(a=>(0,F.M)(a).state),ag=(0,D.Y)(S,x,_),ah=[...S,...U,...V].map(a=>a.state),ai=(0,D.r)(ag,(0,D.d)(W),_),aj=(0,F.u)(R,a.role),ak=(0,F.m)(L.map(a=>({id:a.id,name:a.name,state:a.state,gone:a.gone,since:a.stateSince,monitors:a.monitors,lastDeploy:a.lastDeploy,dbPaused:a.dbPaused})),x),al=(0,H.v)(L.map(a=>({id:a.id,name:a.name,gone:a.gone,security:a.security}))),am=function(a,b){if(!a.length)return null;let c=a.length,d=a.filter(a=>"err"===a||"fail"===a).length,e=a.filter(a=>"warn"===a).length,f=a.filter(a=>"ok"===a||"build"===a).length,g=d||e||f!==c?`${f} of ${c} ${1===c?"app":"apps"} ${1===f?"is":"are"} up${d?`, ${d} down`:""}${e?`, ${e} degraded`:""}.`:1===c?"The app is up.":2===c?"Both apps are up.":`All ${c} apps are up.`,h=b?`${b} ${1===b?"thing needs":"things need"} you; ${1===b?"it is":"they are"} below.`:"Nothing needs you.";return`${g} ${h}`}(L.filter(a=>!a.gone).map(a=>(0,F.k)(a).state),ak.length+ai.length+al.length+ +!!aj);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.AutoRefresh,{at:x.getTime()}),(0,b.jsx)(e.L,{crumbs:[{label:"Home"},{label:"Overview"}],title:"Overview",sub:am??void 0,actions:y?(0,b.jsx)(g.RefreshButton,{}):void 0}),(0,b.jsx)($,{vercel:(0,F.E)(ae),supabase:(0,D.x)(S,x),neon:(0,D._)(U,x,_),firebase:(0,D.V)(V,x),cloudflare:(0,G.f)(X),collector:(0,t.W)()?{state:"ok",sub:s.e}:(0,F.f)(Q,x,ab)}),aj&&(0,b.jsx)(e.M,{tone:"danger",title:aj.title,action:"owner"===a.role?(0,b.jsx)(c.default,{href:"/connections",className:(0,e.R)({size:"sm"}),children:"Open connections"}):void 0,children:aj.body}),(0,b.jsx)(l.f,{member:a,waitingOnly:!0,title:"Creates waiting for approval"}),ak.map(a=>(0,b.jsx)(e.M,{tone:a.tone,title:a.title,action:(0,b.jsx)(c.default,{href:a.action.href,className:(0,e.R)({size:"sm"}),children:a.action.label}),children:a.body},a.key)),ai.map(a=>(0,b.jsx)(e.M,{tone:a.tone,title:a.title,action:(0,b.jsx)(c.default,{href:a.action.href,className:(0,e.R)({size:"sm"}),children:a.action.label}),children:a.body},a.key)),al.map(a=>(0,b.jsx)(e.M,{tone:a.tone,title:a.title,action:(0,b.jsx)(c.default,{href:a.action.href,className:(0,e.R)({size:"sm"}),children:a.action.label}),children:a.body},a.key)),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,b.jsx)(T,{health:M}),aa&&(0,b.jsx)(u.f,{pool:aa,owner:z,compact:!0}),(0,b.jsx)(Y,{apps:ae,databases:ah,monitors:af,domains:X.map(a=>a.state)})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,b.jsx)(P,{builds:O,events:ac,now:x}),ad&&(0,b.jsx)(i.f,{items:ad,canDismiss:y,showSubject:!0,max:10,summary:z&&A?(0,b.jsx)(A,{count:ad.length}):null,notes:z&&K?(0,b.jsx)(K,{}):null})]})]}),(0,b.jsx)(e.N,{title:"Applications",meta:(0,b.jsx)(c.default,{href:"/apps",children:"View all"}),flush:!0,children:0===L.length?(0,b.jsx)(d.c,{owner:"owner"===a.role}):(0,b.jsx)(h.PlainTable,{head:(0,J.j)(!0),rows:(0,J.A)(L,{compact:!0,canAct:y,now:x,book:_})})})]})}a.s(["default",0,_,"maxDuration",0,60],84309)},195154,function(a){a.n(a.i(84309))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_overview_page_tsx_0se3f3ln9q-42._.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,"00cc644565302cc4783a579d62aed29b8a70171e57",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,"00a4e75ba2d9d0150e52373f6fe70ae52a043b7fe8",null),a.s(["f",0,q],929941)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_palette-action_ts_0zyw9a9imev6p._.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)("40eacfff7fc711e8e99b8a65fdab1efc959285f5dc",t.callServer,void 0,t.findSourceMapURL,"firestoreCollectionsAction"),v=(0,t.createServerReference)("60b4ac4a353198897ce22d1835c50c7a29ffe4cc4b",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)("70fc6dbbaaed09027a69e6df49034e657df7425e91",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
|
|
@@ -2,6 +2,6 @@ module.exports=[719825,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(60
|
|
|
2
2
|
begin
|
|
3
3
|
${a.map(a=>` ${a}`).join("\n")}
|
|
4
4
|
end
|
|
5
|
-
$watchpost$;`,ac=[`revoke select on all tables in schema public from ${X};`,`alter default privileges for role postgres in schema public revoke select on tables from ${X};`,`revoke usage on schema public from ${X};`,`revoke connect on database postgres from ${X};`,`revoke pg_read_all_stats from ${X};`,`alter role ${X} nologin;`].map(a=>`begin ${a} exception when others then null; end;`);var ad=a.i(367623);let ae={target:async function(a){let b=await (0,ad.i)(a);if(!b||"supabase"!==b.provider)return null;let c=await (0,P.p)(a,"supabase_project");return c&&c.resource.externalId===b.externalId?{ref:b.externalId,token:c.token,paused:"paused"===b.state}:null},pooler:(a,b)=>V(a,b),run:(a,b,c,d)=>T(a,b,c,d),access:(a,b)=>W(a,b),save:(a,b,c)=>(0,ad.o)(a,b,!1,c),alias:async a=>(0,I.X)(await (0,J.e)(),a),password:()=>(function(a=g.randomBytes){return a(32).toString("base64url")})(),verifier:a=>(function(a,b=(0,g.randomBytes)(16),c=4096){let d=(0,g.pbkdf2Sync)(a.normalize("NFKC"),b,c,32,"sha256"),e=(0,g.createHash)("sha256").update(_(d,"Client Key")).digest(),f=_(d,"Server Key");return`SCRAM-SHA-256$${c}:${b.toString("base64")}$${e.toString("base64")}:${f.toString("base64")}`})(a),sleep:a=>new Promise(b=>setTimeout(b,a))},af="That Supabase project is no longer watched, or its token can't be read.",ag="This project is paused. Restore it first, then add SQL access.",ah=new Set([{code:"28P01"},{code:"08006"},{code:"CONNECT_TIMEOUT"}].map(Y.E));function ai(a){if("scope"===a.kind){let b;return b=a.missing??["database_write"],`This project's token can't set the role up (missing ${b.join(", ")}). It needs Database: Read-write and Connection pooling: Read; replace the token on Connections, or create the role by hand below.`}return a.error}async function aj(a,b=ae){if(!(0,n.f)(a))return{can:!1,reason:"other",error:"Something in that request wasn't valid."};let c=await b.target(a);return c?c.paused?{can:!1,reason:"other",error:ag}:b.access(c.token,c.ref):{can:!1,reason:"other",error:af}}async function ak(a,b,c=ae){if(!(0,n.f)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=await c.target(a);if(!d)return{ok:!1,error:af};if(d.paused)return{ok:!1,error:ag};let e=await c.pooler(d.token,d.ref);if(!e.ok)return{ok:!1,error:ai(e)};let f=c.password(),g=function(a,b,c){if(!Z.k.test(b))return{ok:!1,error:"This project's ref doesn't look right."};if(!$.test(c))return{ok:!1,error:"The generated password isn't valid."};let d=a.filter(a=>!a.database_type||"PRIMARY"===a.database_type),e=d.map(a=>(a.db_host??"").toLowerCase()).find(a=>Z.J.test(a));if(!e)return{ok:!1,error:"This project has no shared Supavisor pooler host (…pooler.supabase.com). Use the manual steps."};let f=d.find(a=>a.db_name&&/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(a.db_name))?.db_name??"postgres";return{ok:!0,dsn:`postgresql://${X}.${b}:${encodeURIComponent(c)}@${e}:6543/${f}?sslmode=require`}}(e.data,d.ref,f);if(!g.ok)return{ok:!1,error:g.error};let h=await c.alias(a),i={kind:"err",message:`SQL access automatic setup failed \xb7 ${h}`,resourceId:a},j=async()=>(await c.run(d.token,d.ref,ab(ac),!1)).ok,k=await c.run(d.token,d.ref,ab(function(a){if(!aa.test(a))throw Error("bad verifier");return[`if not exists (select 1 from pg_catalog.pg_roles where rolname = '${X}') then create role ${X} login password '${a}'; else alter role ${X} with login password '${a}'; end if;`,`alter role ${X} set default_transaction_read_only = on;`,`alter role ${X} set statement_timeout = '5s';`,`grant connect on database postgres to ${X};`,`grant usage on schema public to ${X};`,`grant select on all tables in schema public to ${X};`,`alter default privileges for role postgres in schema public grant select on tables to ${X};`,`begin grant pg_read_all_stats to ${X}; exception when others then null; end;`]}(c.verifier(f))),!1);if(!k.ok){if("transient"===k.kind&&void 0===k.status){let a=await j();return{ok:!1,error:`${k.error} ${a?"Any grants it may have given were revoked.":`Check the ${X} role in the Supabase SQL Editor.`}`,audit:i}}return{ok:!1,error:ai(k),audit:i}}let l={ok:!1,error:"Not checked."};for(let d=0;d<3&&(d>0&&await c.sleep(2e3),!(l=await c.save(a,g.dsn,b)).ok&&ah.has(l.error));d++);if(!l.ok){let a=await j();return{ok:!1,error:`The new role didn't pass the read-only check, so nothing was saved: ${l.error} ${a?`Its grants were revoked and its login turned off (the role ${X} stays; nothing was dropped).`:`Revoking its grants failed too: run "revoke all on all tables in schema public from ${X}; alter role ${X} nologin;" in the Supabase SQL Editor.`}`,audit:i}}return{ok:!0,message:`SQL access created for ${h}: read-only role ${X} checked and saved.`,audit:{kind:"ok",message:`SQL access created automatically for ${h} (read-only role ${X})`,resourceId:a}}}var al=a.i(75105),am=a.i(312573),an=a.i(323878),ao=a.i(530175),ap=a.i(713095);let aq={requireActionMember:e.g};async function ar(a,b){if(a)try{await (0,f.f)({kind:a.kind,message:a.message,detail:a.detail,resourceId:a.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}}let as=(a,b,c)=>async()=>{let d=await (0,an.C)(a,b.id);return d.allowed?null:`Too many ${c}. Try again in ${(0,am.H)(d.retryAfter)}.`};async function at(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"boolean"!=typeof c)return{ok:!1,error:al.w};let e=(0,ao.E)(b);if(!e.ok)return{ok:!1,error:e.error,fieldErrors:{sql:e.error}};let f=await (0,ad.A)(a,e.text,c,as(am.t.sqlRun,d,"runs"));if(await ar(f.audit,d),!f.ok)return{ok:!1,error:f.error,...f.needsWake?{data:{needsWake:!0}}:{}};let{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}=f.result;return{ok:!0,data:{run:{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}}}},aq)}async function au(a,b){if(!a.ok)return{ok:!1,error:a.error,..."needsWake"in a&&a.needsWake?{data:{needsWake:!0}}:{}};if(a.audit)try{await (0,f.f)({kind:"ok",...a.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:a.message}}async function av(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"string"!=typeof b||"boolean"!=typeof c)return{ok:!1,error:al.w};if(!b.trim())return{ok:!1,error:"Paste a connection string.",fieldErrors:{dsn:"Paste a connection string."}};let e=await as(am.t.credential,d,"connection tests")();return e?{ok:!1,error:e}:au(await (0,ad.o)(a,b,c,d.userId),d)},aq)}async function aw(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.credential,b,"connection tests")();return c?{ok:!1,error:c}:{ok:!0,data:await aj(a)}},aq)}async function ax(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await (0,P.q)(b.id,"sql-auto",a);if(d)return{ok:!1,error:d};let e=await ak(a,b.userId);if(e.audit)try{await (0,f.f)({kind:e.audit.kind,message:e.audit.message,resourceId:e.audit.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}return e.ok?((0,c.refresh)(),{ok:!0,message:e.message}):{ok:!1,error:e.error}},aq)}async function ay(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.monitorWrite,b,"changes")();return c?{ok:!1,error:c}:au(await (0,ad.y)(a),b)},aq)}async function az(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.firestoreQuery,b,"Firestore queries")();if(c)return{ok:!1,error:c};let d=await N(a);return d.ok?{ok:!0,data:{collections:d.ids,more:d.more}}:{ok:!1,error:d.error}},aq)}async function aA(a,b){return(0,d.F)("owner",async c=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await O(a,b,as(am.t.firestoreQuery,c,"Firestore queries"));return await ar(d.audit,c),d.ok?{ok:!0,data:{run:d.result}}:{ok:!1,error:d.error}},aq)}(0,ap.ensureServerEntryExports)([at,av,aw,ax,ay,az,aA]),(0,b.registerServerReference)(at,"
|
|
5
|
+
$watchpost$;`,ac=[`revoke select on all tables in schema public from ${X};`,`alter default privileges for role postgres in schema public revoke select on tables from ${X};`,`revoke usage on schema public from ${X};`,`revoke connect on database postgres from ${X};`,`revoke pg_read_all_stats from ${X};`,`alter role ${X} nologin;`].map(a=>`begin ${a} exception when others then null; end;`);var ad=a.i(367623);let ae={target:async function(a){let b=await (0,ad.i)(a);if(!b||"supabase"!==b.provider)return null;let c=await (0,P.p)(a,"supabase_project");return c&&c.resource.externalId===b.externalId?{ref:b.externalId,token:c.token,paused:"paused"===b.state}:null},pooler:(a,b)=>V(a,b),run:(a,b,c,d)=>T(a,b,c,d),access:(a,b)=>W(a,b),save:(a,b,c)=>(0,ad.o)(a,b,!1,c),alias:async a=>(0,I.X)(await (0,J.e)(),a),password:()=>(function(a=g.randomBytes){return a(32).toString("base64url")})(),verifier:a=>(function(a,b=(0,g.randomBytes)(16),c=4096){let d=(0,g.pbkdf2Sync)(a.normalize("NFKC"),b,c,32,"sha256"),e=(0,g.createHash)("sha256").update(_(d,"Client Key")).digest(),f=_(d,"Server Key");return`SCRAM-SHA-256$${c}:${b.toString("base64")}$${e.toString("base64")}:${f.toString("base64")}`})(a),sleep:a=>new Promise(b=>setTimeout(b,a))},af="That Supabase project is no longer watched, or its token can't be read.",ag="This project is paused. Restore it first, then add SQL access.",ah=new Set([{code:"28P01"},{code:"08006"},{code:"CONNECT_TIMEOUT"}].map(Y.E));function ai(a){if("scope"===a.kind){let b;return b=a.missing??["database_write"],`This project's token can't set the role up (missing ${b.join(", ")}). It needs Database: Read-write and Connection pooling: Read; replace the token on Connections, or create the role by hand below.`}return a.error}async function aj(a,b=ae){if(!(0,n.f)(a))return{can:!1,reason:"other",error:"Something in that request wasn't valid."};let c=await b.target(a);return c?c.paused?{can:!1,reason:"other",error:ag}:b.access(c.token,c.ref):{can:!1,reason:"other",error:af}}async function ak(a,b,c=ae){if(!(0,n.f)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=await c.target(a);if(!d)return{ok:!1,error:af};if(d.paused)return{ok:!1,error:ag};let e=await c.pooler(d.token,d.ref);if(!e.ok)return{ok:!1,error:ai(e)};let f=c.password(),g=function(a,b,c){if(!Z.k.test(b))return{ok:!1,error:"This project's ref doesn't look right."};if(!$.test(c))return{ok:!1,error:"The generated password isn't valid."};let d=a.filter(a=>!a.database_type||"PRIMARY"===a.database_type),e=d.map(a=>(a.db_host??"").toLowerCase()).find(a=>Z.J.test(a));if(!e)return{ok:!1,error:"This project has no shared Supavisor pooler host (…pooler.supabase.com). Use the manual steps."};let f=d.find(a=>a.db_name&&/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(a.db_name))?.db_name??"postgres";return{ok:!0,dsn:`postgresql://${X}.${b}:${encodeURIComponent(c)}@${e}:6543/${f}?sslmode=require`}}(e.data,d.ref,f);if(!g.ok)return{ok:!1,error:g.error};let h=await c.alias(a),i={kind:"err",message:`SQL access automatic setup failed \xb7 ${h}`,resourceId:a},j=async()=>(await c.run(d.token,d.ref,ab(ac),!1)).ok,k=await c.run(d.token,d.ref,ab(function(a){if(!aa.test(a))throw Error("bad verifier");return[`if not exists (select 1 from pg_catalog.pg_roles where rolname = '${X}') then create role ${X} login password '${a}'; else alter role ${X} with login password '${a}'; end if;`,`alter role ${X} set default_transaction_read_only = on;`,`alter role ${X} set statement_timeout = '5s';`,`grant connect on database postgres to ${X};`,`grant usage on schema public to ${X};`,`grant select on all tables in schema public to ${X};`,`alter default privileges for role postgres in schema public grant select on tables to ${X};`,`begin grant pg_read_all_stats to ${X}; exception when others then null; end;`]}(c.verifier(f))),!1);if(!k.ok){if("transient"===k.kind&&void 0===k.status){let a=await j();return{ok:!1,error:`${k.error} ${a?"Any grants it may have given were revoked.":`Check the ${X} role in the Supabase SQL Editor.`}`,audit:i}}return{ok:!1,error:ai(k),audit:i}}let l={ok:!1,error:"Not checked."};for(let d=0;d<3&&(d>0&&await c.sleep(2e3),!(l=await c.save(a,g.dsn,b)).ok&&ah.has(l.error));d++);if(!l.ok){let a=await j();return{ok:!1,error:`The new role didn't pass the read-only check, so nothing was saved: ${l.error} ${a?`Its grants were revoked and its login turned off (the role ${X} stays; nothing was dropped).`:`Revoking its grants failed too: run "revoke all on all tables in schema public from ${X}; alter role ${X} nologin;" in the Supabase SQL Editor.`}`,audit:i}}return{ok:!0,message:`SQL access created for ${h}: read-only role ${X} checked and saved.`,audit:{kind:"ok",message:`SQL access created automatically for ${h} (read-only role ${X})`,resourceId:a}}}var al=a.i(75105),am=a.i(312573),an=a.i(323878),ao=a.i(530175),ap=a.i(713095);let aq={requireActionMember:e.g};async function ar(a,b){if(a)try{await (0,f.f)({kind:a.kind,message:a.message,detail:a.detail,resourceId:a.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}}let as=(a,b,c)=>async()=>{let d=await (0,an.C)(a,b.id);return d.allowed?null:`Too many ${c}. Try again in ${(0,am.H)(d.retryAfter)}.`};async function at(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"boolean"!=typeof c)return{ok:!1,error:al.w};let e=(0,ao.E)(b);if(!e.ok)return{ok:!1,error:e.error,fieldErrors:{sql:e.error}};let f=await (0,ad.A)(a,e.text,c,as(am.t.sqlRun,d,"runs"));if(await ar(f.audit,d),!f.ok)return{ok:!1,error:f.error,...f.needsWake?{data:{needsWake:!0}}:{}};let{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}=f.result;return{ok:!0,data:{run:{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}}}},aq)}async function au(a,b){if(!a.ok)return{ok:!1,error:a.error,..."needsWake"in a&&a.needsWake?{data:{needsWake:!0}}:{}};if(a.audit)try{await (0,f.f)({kind:"ok",...a.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:a.message}}async function av(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"string"!=typeof b||"boolean"!=typeof c)return{ok:!1,error:al.w};if(!b.trim())return{ok:!1,error:"Paste a connection string.",fieldErrors:{dsn:"Paste a connection string."}};let e=await as(am.t.credential,d,"connection tests")();return e?{ok:!1,error:e}:au(await (0,ad.o)(a,b,c,d.userId),d)},aq)}async function aw(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.credential,b,"connection tests")();return c?{ok:!1,error:c}:{ok:!0,data:await aj(a)}},aq)}async function ax(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await (0,P.q)(b.id,"sql-auto",a);if(d)return{ok:!1,error:d};let e=await ak(a,b.userId);if(e.audit)try{await (0,f.f)({kind:e.audit.kind,message:e.audit.message,resourceId:e.audit.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}return e.ok?((0,c.refresh)(),{ok:!0,message:e.message}):{ok:!1,error:e.error}},aq)}async function ay(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.monitorWrite,b,"changes")();return c?{ok:!1,error:c}:au(await (0,ad.y)(a),b)},aq)}async function az(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.firestoreQuery,b,"Firestore queries")();if(c)return{ok:!1,error:c};let d=await N(a);return d.ok?{ok:!0,data:{collections:d.ids,more:d.more}}:{ok:!1,error:d.error}},aq)}async function aA(a,b){return(0,d.F)("owner",async c=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await O(a,b,as(am.t.firestoreQuery,c,"Firestore queries"));return await ar(d.audit,c),d.ok?{ok:!0,data:{run:d.result}}:{ok:!1,error:d.error}},aq)}(0,ap.ensureServerEntryExports)([at,av,aw,ax,ay,az,aA]),(0,b.registerServerReference)(at,"70fc6dbbaaed09027a69e6df49034e657df7425e91",null),(0,b.registerServerReference)(av,"70a94b01b452b25793e4591830530dd5dfd55ee366",null),(0,b.registerServerReference)(aw,"409df27f042f18c4f1b0c9c5c21e4e9ea547c644c4",null),(0,b.registerServerReference)(ax,"401887ff66f5786d84bea41721ee4d012fa428ef20",null),(0,b.registerServerReference)(ay,"40577098a1bcb019589c1f2da68fb7360c3e9e9c12",null),(0,b.registerServerReference)(az,"40eacfff7fc711e8e99b8a65fdab1efc959285f5dc",null),(0,b.registerServerReference)(aA,"60b4ac4a353198897ce22d1835c50c7a29ffe4cc4b",null),a.s(["u",0,ax,"o",0,ay,"L",0,az,"n",0,aA,"S",0,at,"$",0,av,"M",0,aw],719825)}];
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=src_app_%28console%29_sql_actions_ts_1oqco02hw-3vp._.js.map
|