watchbell 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +3 -3
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/required-server-files.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +34 -34
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/os/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/overview/page.js.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 +12 -12
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/repos/page.js.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 +21 -21
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/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.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.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]/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.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/chunks/_0-5pjvqu672_v._.js +2 -2
- package/server/.next/server/chunks/_02qrz1g8sdvhe._.js +2 -2
- package/server/.next/server/chunks/_0ehqx1pkh20px._.js +1 -1
- package/server/.next/server/chunks/_0jiq3ns7681pv._.js +1 -1
- package/server/.next/server/chunks/_1ap0upnvy5i_1._.js +2 -2
- package/server/.next/server/chunks/_1b-88djuoexz1._.js +2 -2
- package/server/.next/server/chunks/_1t46m15axa4b4._.js +1 -1
- package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +1 -1
- package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +1 -1
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.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/[root-of-the-server]__03xevz8n-mc20._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__18gw74mr2vto3._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1mxpszbk1aup8._.js +2 -2
- package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +1 -1
- package/server/.next/server/chunks/ssr/_01n29sxn-py3x._.js +1 -1
- package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
- package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1ykegy3wzl3mu._.js → _0c9_fa5ejth12._.js} +2 -2
- 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/{_0u5_d3o0i72tq._.js → _0fl2-fao_ye7t._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
- package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
- package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
- package/server/.next/server/chunks/ssr/_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/_0tnd528j0i1i4._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +2 -2
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
- package/server/.next/server/chunks/ssr/{_17tabyg0mhxlx._.js → _18sg0ilz439y6._.js} +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/{_13bpjk3g0tp2e._.js → _19q2vj_ppgsu4._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
- package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +2 -2
- package/server/.next/server/chunks/ssr/{_08rjac8cutbcs._.js → _1vlm9990gr64r._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_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_0etvjdinp5urq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_0gw9o1og9hq_4._.js → src_app_(console)_0krr6t05xs2tn._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_0ohoun7l5f2tb._.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]_08in-j3xp5mbn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_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_148phfjye0539._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_1u2md84o5b6td._.js → src_app_signin_12a3ifphkkcs7._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +3 -3
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +152 -152
- package/server/.next/static/chunks/{1kyz-ah3_ho6c.js → 0-o-4ilzkrd38.js} +1 -1
- package/server/.next/static/chunks/{356b00huilj4q.js → 01euc4zjlprz5.js} +1 -1
- package/server/.next/static/chunks/028g933xfv8jn.js +1 -0
- package/server/.next/static/chunks/{2k4z-oed_6g2l.js → 02kly5fiyvt77.js} +1 -1
- package/server/.next/static/chunks/{2kmw3ug2__8y3.js → 0dq-2wtk0h5u7.js} +1 -1
- package/server/.next/static/chunks/{26exu0f7ok41j.js → 0ey7akdab5tu8.js} +1 -1
- package/server/.next/static/chunks/0ge2nkna7o16p.js +1 -0
- package/server/.next/static/chunks/{3w5rrc-0xud6m.js → 0l61-etojd65n.js} +1 -1
- package/server/.next/static/chunks/{3lc-hq-bpg71u.js → 0matuoy08desx.js} +1 -1
- package/server/.next/static/chunks/{2-ijilf6lbw4f.js → 0mbt6eam4qr2f.js} +1 -1
- package/server/.next/static/chunks/0utjdzwgd7zw2.js +1 -0
- package/server/.next/static/chunks/{1a0rdqp6soc92.js → 0v97o46v-74gw.js} +1 -1
- package/server/.next/static/chunks/{14f5pn2krqoyh.js → 0xlfzxnboj4f1.js} +1 -1
- package/server/.next/static/chunks/{3wfyge_-2qnyj.js → 0xz55932e19r8.js} +1 -1
- package/server/.next/static/chunks/{0rblb2d9s6x__.js → 0y99dm8mesqe9.js} +1 -1
- package/server/.next/static/chunks/{3xulo5x1hbsw-.js → 1935vuszybg7i.js} +1 -1
- package/server/.next/static/chunks/{3_6-4h_qltoii.js → 1c9eb592ho0-l.js} +1 -1
- package/server/.next/static/chunks/{3ezef0voy5xju.js → 1pogexbz36ij8.js} +1 -1
- package/server/.next/static/chunks/{17zst1h7smcce.js → 1r99dm6-o5qw2.js} +1 -1
- package/server/.next/static/chunks/{35vilzb1p9yjf.js → 1sa-1lde5_ikt.js} +1 -1
- package/server/.next/static/chunks/{0viea3-xdb4uv.js → 1truzt17f0fce.js} +1 -1
- package/server/.next/static/chunks/{3g0ywdith98z2.js → 1u8mo8jflotrt.js} +1 -1
- package/server/.next/static/chunks/{0ps76fyk0mlud.js → 1uk98c6r9i2bn.js} +1 -1
- package/server/.next/static/chunks/{3u2qewigse-a4.js → 2-uaya1_uxlg8.js} +1 -1
- package/server/.next/static/chunks/{11r8k-t1ijjkn.js → 2-xolk9x48-v1.js} +1 -1
- package/server/.next/static/chunks/{1a7zdd51t9mil.js → 22ygzud_kp29f.js} +1 -1
- package/server/.next/static/chunks/{3f1selgoqszyq.js → 2am77mhkx46hz.js} +2 -2
- package/server/.next/static/chunks/{2crsj9_2h2nzh.js → 2fvh4wg2kp4c2.js} +1 -1
- package/server/.next/static/chunks/2m8-ctreu-y-r.js +1 -0
- package/server/.next/static/chunks/{44hkyor0suthy.js → 2p8bv7d7t08z1.js} +1 -1
- package/server/.next/static/chunks/{1fh3cq_v5nqtp.js → 2szchf79vnxgd.js} +1 -1
- package/server/.next/static/chunks/{0v-0yvs2o_ibn.js → 2yc4qzglai5fq.js} +1 -1
- package/server/.next/static/chunks/{28fzu8z0ofyw0.js → 2ze-y3he5_bb0.js} +1 -1
- package/server/.next/static/chunks/{1d4i_v63pyozl.js → 33_2mbxu9wufm.js} +1 -1
- package/server/.next/static/chunks/33avmrae70_xs.js +1 -0
- package/server/.next/static/chunks/{1qmrzxeff7esb.js → 363mcu9nd9znh.js} +1 -1
- package/server/.next/static/chunks/{0hths0sijlql2.js → 3aou6xwhz8z6a.js} +1 -1
- package/server/.next/static/chunks/{2j24hsy45xi-u.js → 3bwwwv3sp7uyn.js} +1 -1
- package/server/.next/static/chunks/{2pa65sxfnzj4k.js → 3dk6a5gl9glxo.js} +1 -1
- package/server/.next/static/chunks/{1d5651gcd0bfq.js → 3e-0ejqqa7jwn.js} +1 -1
- package/server/.next/static/chunks/{1qjg48qu3j1w4.js → 3gkm-ynu4fq5u.js} +1 -1
- package/server/.next/static/chunks/{0cc9ahw1xs0ny.js → 3gmm9g54vx4w0.js} +1 -1
- package/server/.next/static/chunks/{1fk-rtgxvtdso.js → 3jqmm62dbykt1.js} +1 -1
- package/server/.next/static/chunks/{1yjrm8ekqlzfy.js → 3lvz18snt6489.js} +1 -1
- package/server/.next/static/chunks/{308vk5n0anqam.js → 3m3vl3n5xs039.js} +2 -2
- package/server/.next/static/chunks/{2d7luax7loip3.js → 3qv9klayap1tz.js} +1 -1
- package/server/.next/static/chunks/{2-vu-7596xgz-.js → 3ursfc8kxp2ak.js} +2 -2
- package/server/.next/static/chunks/{3a9toq_3nqe93.js → 3xkvsl4vbpm41.js} +1 -1
- package/server/.next/static/chunks/3yu0azvye6wr_.js +1 -0
- package/server/server.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_0_odx13qcz9o1._.js +0 -3
- package/server/.next/static/chunks/00e1aosyzj6rl.js +0 -1
- package/server/.next/static/chunks/0hzw1rqyz-ith.js +0 -1
- package/server/.next/static/chunks/1rgved8vjyay2.js +0 -1
- package/server/.next/static/chunks/1y_o3hc2z85sh.js +0 -1
- package/server/.next/static/chunks/39a3uxexc-wqm.js +0 -1
- package/server/.next/static/chunks/3qudv985iqmz7.js +0 -1
- /package/server/.next/static/{g_rE0bq_ZZa-pl4RulWXV → fogXXBSOhoHV3eIf8_j28}/_buildManifest.js +0 -0
- /package/server/.next/static/{g_rE0bq_ZZa-pl4RulWXV → fogXXBSOhoHV3eIf8_j28}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{g_rE0bq_ZZa-pl4RulWXV → fogXXBSOhoHV3eIf8_j28}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33550,e=>{var t=e.i(271645),a={outline:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};e.s(["f",0,(e,r,n,s)=>{let i=(0,t.forwardRef)(({color:n="currentColor",size:i=24,stroke:l=2,title:o,className:d,children:c,...u},m)=>(0,t.createElement)("svg",{ref:m,...a[e],width:i,height:i,className:["tabler-icon",`tabler-icon-${r}`,d].filter(Boolean).join(" "),..."filled"===e?{fill:n}:{strokeWidth:l,stroke:n},...u},[o&&(0,t.createElement)("title",{key:"svg-title"},o),...s.map(([e,a])=>(0,t.createElement)(e,a)),...Array.isArray(c)?c:[c]]));return i.displayName=`${n}`,i}],33550)},344423,e=>{let t=(0,e.i(33550).f)("outline","alert-circle","AlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);e.s(["f",0,t],344423)},146874,e=>{let t=(0,e.i(33550).f)("outline","alert-triangle","AlertTriangle",[["path",{d:"M12 9v4",key:"svg-0"}],["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);e.s(["f",0,t],146874)},785642,396455,802480,802874,e=>{var t=e.i(33550);let a=(0,t.f)("outline","circle-check","CircleCheck",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l2 2l4 -4",key:"svg-1"}]]);e.s(["f",0,a],785642);let r=(0,t.f)("outline","circle-dashed","CircleDashed",[["path",{d:"M8.56 3.69a9 9 0 0 0 -2.92 1.95",key:"svg-0"}],["path",{d:"M3.69 8.56a9 9 0 0 0 -.69 3.44",key:"svg-1"}],["path",{d:"M3.69 15.44a9 9 0 0 0 1.95 2.92",key:"svg-2"}],["path",{d:"M8.56 20.31a9 9 0 0 0 3.44 .69",key:"svg-3"}],["path",{d:"M15.44 20.31a9 9 0 0 0 2.92 -1.95",key:"svg-4"}],["path",{d:"M20.31 15.44a9 9 0 0 0 .69 -3.44",key:"svg-5"}],["path",{d:"M20.31 8.56a9 9 0 0 0 -1.95 -2.92",key:"svg-6"}],["path",{d:"M15.44 3.69a9 9 0 0 0 -3.44 -.69",key:"svg-7"}]]);e.s(["f",0,r],396455);let n=(0,t.f)("outline","circle-x","CircleX",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M10 10l4 4m0 -4l-4 4",key:"svg-1"}]]);e.s(["f",0,n],802480);let s=(0,t.f)("outline","hammer","Hammer",[["path",{d:"M11.414 10l-7.383 7.418a2.091 2.091 0 0 0 0 2.967a2.11 2.11 0 0 0 2.976 0l7.407 -7.385",key:"svg-0"}],["path",{d:"M18.121 15.293l2.586 -2.586a1 1 0 0 0 0 -1.414l-7.586 -7.586a1 1 0 0 0 -1.414 0l-2.586 2.586a1 1 0 0 0 0 1.414l7.586 7.586a1 1 0 0 0 1.414 0",key:"svg-1"}]]);e.s(["f",0,s],802874)},239692,e=>{let t=(0,e.i(33550).f)("outline","help-circle","HelpCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 16v.01",key:"svg-1"}],["path",{d:"M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483",key:"svg-2"}]]);e.s(["f",0,t],239692)},39622,e=>{let t=(0,e.i(33550).f)("outline","info-circle","InfoCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]]);e.s(["f",0,t],39622)},513932,e=>{let t=(0,e.i(33550).f)("outline","loader-2","Loader2",[["path",{d:"M12 3a9 9 0 1 0 9 9",key:"svg-0"}]]);e.s(["f",0,t],513932)},95187,(e,t,a)=>{Object.defineProperty(a,"__esModule",{value:!0});var r={callServer:function(){return s.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var n in r)Object.defineProperty(a,n,{enumerable:!0,get:r[n]});let s=e.r(132120),i=e.r(92245),l=e.r(235326)},837244,e=>{var t=e.i(95187);let a=(0,t.createServerReference)("60075c81d57cd2a35fb207e0a4e00bfa0eb218f833",t.callServer,void 0,t.findSourceMapURL,"signInWithPassword");e.s(["f",0,a])},426074,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(428325);let n="demo@watchbell.west-solutions.web.id",s="watchbell-demo";var i=e.i(837244);e.s(["DemoSignInForm",0,function({next:e}){let[l,o,d]=(0,a.useActionState)(i.f,{status:"idle"}),c=(0,a.useRef)(null),u=(0,a.useRef)(null);return(0,t.jsxs)("form",{action:o,children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Try the Watchbell demo"}),(0,t.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Sign in with the demo account to look around a console full of made-up data of your own."}),(0,t.jsxs)("div",{className:"mb-[18px] rounded-lg border border-line bg-sunken px-3.5 py-3",children:[(0,t.jsxs)("dl",{className:"mb-2.5 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[13px]",children:[(0,t.jsx)("dt",{className:"text-ink-soft",children:"Email"}),(0,t.jsx)("dd",{className:"break-all font-mono",children:n}),(0,t.jsx)("dt",{className:"text-ink-soft",children:"Password"}),(0,t.jsx)("dd",{className:"font-mono",children:s})]}),(0,t.jsx)(r.K,{size:"sm",onClick:()=>{c.current&&(c.current.value=n),u.current&&(u.current.value=s),u.current?.focus()},children:"Use demo account"})]}),e&&(0,t.jsx)("input",{type:"hidden",name:"next",value:e}),(0,t.jsx)(r.O,{id:"email",label:"Email",error:"error"===l.status&&"email"===l.field?l.message:void 0,children:(0,t.jsx)("input",{ref:c,id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,maxLength:254,defaultValue:"error"===l.status?l.email:void 0,className:r.S})}),(0,t.jsx)(r.O,{id:"password",label:"Password",error:"error"===l.status&&"email"!==l.field?l.message:void 0,children:(0,t.jsx)("input",{ref:u,id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:200,className:r.S})}),(0,t.jsx)(r.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:d,children:d?"Signing in…":"Sign in"}),(0,t.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Or use any email and password. Every sign-in, the demo account too, gets its own made-up data."})]})}],426074)},781354,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(428325),n=e.i(837244);e.s(["PasswordSignInForm",0,function({next:e}){let[s,i,l]=(0,a.useActionState)(n.f,{status:"idle"});return(0,t.jsxs)("form",{action:i,children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,t.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Use the email and password an owner set up for you."}),e&&(0,t.jsx)("input",{type:"hidden",name:"next",value:e}),(0,t.jsx)(r.O,{id:"email",label:"Email",children:(0,t.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,defaultValue:"error"===s.status?s.email:void 0,className:r.S})}),(0,t.jsx)(r.O,{id:"password",label:"Password",error:"error"===s.status?s.message:void 0,children:(0,t.jsx)("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:1024,className:r.S})}),(0,t.jsx)(r.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:l,children:l?"Signing in…":"Sign in"}),(0,t.jsxs)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:["Forgot your password? Ask an owner to reset it. If you are the owner, stop Watchbell and run"," ",(0,t.jsx)("code",{className:"font-mono text-ink-soft",children:"watchbell reset-login you@example.com"})," on the machine it runs on (from an installer: ",(0,t.jsx)("code",{className:"font-mono text-ink-soft",children:"npm run reset-login -- you@example.com"})," in its app folder)."]})]})}])},419564,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(428325);let n="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";function s({siteKey:e}){let r=(0,a.useRef)(null),[i,l]=(0,a.useState)(!1);return((0,a.useEffect)(()=>{let t,a=!1;return(window.turnstile?Promise.resolve(window.turnstile):new Promise((e,t)=>{let a=document.querySelector(`script[src="${n}"]`);a||((a=document.createElement("script")).src=n,a.async=!0,document.head.appendChild(a));let r=a;r.addEventListener("load",()=>window.turnstile?e(window.turnstile):t(Error("turnstile"))),r.addEventListener("error",()=>{r.remove(),t(Error("turnstile"))})})).then(n=>{!a&&r.current&&(t=n.render(r.current,{sitekey:e,action:"signin",theme:"auto"}))}).catch(()=>{console.warn("bot check failed to load"),a||l(!0)}),()=>{a=!0,t&&window.turnstile&&window.turnstile.remove(t)}},[e]),i)?(0,t.jsx)("p",{role:"alert",className:"mb-3.5 text-[13px] text-err",children:"The bot check couldn't load. Check your connection and reload the page."}):(0,t.jsx)("div",{ref:r,className:"mb-3.5 min-h-[65px]"})}var i=e.i(95187);let l=(0,i.createServerReference)("60cef16acb598a28f0b7f4a5d690c8c3999ef48a5a",i.callServer,void 0,i.findSourceMapURL,"sendSignInLink");e.s(["SignInForm",0,function({siteKey:e}){let[n,i,o]=(0,a.useActionState)(l,{status:"idle"}),[d,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(0);return"sent"!==n.status||d?(0,t.jsxs)("form",{action:e=>{c(!1),m(e=>e+1),i(e)},children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,t.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"We'll email you a sign-in link. Only invited people can get in."}),(0,t.jsx)(r.O,{id:"email",label:"Email",error:"error"===n.status?n.message:void 0,children:(0,t.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"email",placeholder:"name@example.com",required:!0,className:r.S})}),(0,t.jsx)(s,{siteKey:e},u),(0,t.jsx)(r.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:o,children:o?"Sending…":"Send sign-in link"}),(0,t.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Can't get in? Ask an owner to invite you."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Check your email"}),(0,t.jsxs)("p",{className:"mb-[18px] text-ink-soft",children:["If ",n.email," is invited, a sign-in link is on its way. It works for 1 hour."]}),(0,t.jsx)(r.K,{className:"w-full justify-center",onClick:()=>c(!0),children:"Use a different email"})]})}],419564)},428325,e=>{var t=e.i(843476);let a=(0,e.i(33550).f)("outline","inbox","Inbox",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M4 13h3l3 3h4l3 -3h3",key:"svg-1"}]]);e.i(522016);var r=e.i(54131),n=e.i(220806),s=e.i(975157);function i({variant:e="secondary",size:t="md"}={}){return(0,s.f)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border transition-colors disabled:cursor-not-allowed disabled:opacity-60 hover:no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","sm"===t?"px-[9px] py-[3px] text-[13px]":"px-3 py-1.5","primary"===e&&"border-brand bg-brand text-on-brand hover:bg-brand-hover","secondary"===e&&"border-line-strong bg-surface text-ink hover:bg-hover","ghost"===e&&"border-transparent bg-transparent text-brand hover:bg-brand-soft","danger"===e&&"border-err bg-err text-on-brand hover:brightness-95")}let l={danger:{box:"bg-err-soft border-err/30",state:"err"},warning:{box:"bg-warn-soft border-warn-icon/35",state:"warn"},info:{box:"bg-brand-soft border-brand/25",state:"info"}},o=(e,a)=>"string"==typeof e?(0,t.jsx)(r.MaskedText,{text:e,inLink:a}):e;e.s(["M",0,function({tone:e,title:a,children:r,action:i}){let d=l[e];return(0,t.jsxs)("div",{className:(0,s.f)("flex items-start gap-2.5 rounded-lg border px-3.5 py-2.5",d.box),role:"danger"===e?"alert":"status",children:[(0,t.jsx)("span",{className:"mt-px",children:(0,t.jsx)(n.Z,{state:d.state,size:18})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("b",{className:"block font-medium",children:o(a)}),r&&(0,t.jsx)("p",{className:"mt-0.5 text-[13px] text-ink-soft",children:o(r)})]}),i&&(0,t.jsx)("div",{className:"ml-auto",children:i})]})},"K",0,function({variant:e,size:a,className:r,type:n="button",...l}){return(0,t.jsx)("button",{type:n,className:(0,s.f)(i({variant:e,size:a}),r),...l})},"N",0,function({title:e,meta:a,flush:r,className:n,children:i}){return(0,t.jsxs)("section",{className:(0,s.f)("min-w-0 rounded-lg border border-line bg-surface",n),children:[e&&(0,t.jsxs)("div",{className:(0,s.f)("flex flex-wrap items-center gap-2 px-[18px] pt-3.5",r?"pb-2.5":"pb-1.5"),children:[(0,t.jsx)("h2",{className:"text-[15px]",children:e}),a&&(0,t.jsx)("span",{className:"ml-auto flex items-center gap-1.5 text-[12.5px] text-ink-soft",children:a})]}),r?i:(0,t.jsx)("div",{className:"px-[18px] pb-4 pt-2",children:i})]})},"k",0,function({icon:e=a,title:r,children:n,action:s}){return(0,t.jsxs)("div",{className:"px-4 py-7 text-center text-ink-soft",children:[(0,t.jsx)(e,{size:28,"aria-hidden":!0,className:"mx-auto text-ink-faint"}),(0,t.jsx)("b",{className:"mb-0.5 mt-1.5 block font-medium text-ink",children:r}),n,s&&(0,t.jsx)("div",{className:"mt-3",children:s})]})},"O",0,function({id:e,label:a,help:r,error:n,children:s}){return(0,t.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsx)("label",{htmlFor:e,className:"text-[13px] font-medium",children:a}),s,r&&(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:r}),n&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:n})]})},"_",0,function({label:e,pressed:a,children:r,...n}){return(0,t.jsx)("button",{type:"button","aria-label":e,title:e,"aria-pressed":a,className:(0,s.f)("relative inline-grid size-[34px] shrink-0 place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",a&&"bg-brand-soft text-brand"),...n,children:r})},"E",0,function({children:e}){return(0,t.jsx)("span",{className:"mr-1 inline-block rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:e})},"R",0,i,"S",0,"w-full rounded-md border border-line-strong bg-surface px-2.5 py-1.5 text-ink outline-none focus:border-brand focus:ring-2 focus:ring-brand/40"],428325)},220806,914552,615884,e=>{var t=e.i(843476),a=e.i(344423),r=e.i(146874),n=e.i(785642),s=e.i(396455),i=e.i(802480),l=e.i(802874),o=e.i(239692),d=e.i(39622),c=e.i(513932),u=e.i(33550);let m=(0,u.f)("outline","moon","Moon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008",key:"svg-0"}]]);e.s(["f",0,m],914552);let x=(0,u.f)("outline","player-pause","PlayerPause",[["path",{d:"M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-0"}],["path",{d:"M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-1"}]]),p=(0,u.f)("outline","tool","Tool",[["path",{d:"M7 10h3v-3l-3.5 -3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1 -3 3l-6 -6a6 6 0 0 1 -8 -8l3.5 3.5",key:"svg-0"}]]);e.s(["f",0,p],615884);let f={ok:"text-ok",warn:"text-warn-icon",paused:"text-warn-icon",err:"text-err",fail:"text-err",idle:"text-idle",off:"text-idle",unknown:"text-idle",build:"text-brand",info:"text-brand",maint:"text-brand"};var h=e.i(975157);let b={ok:n.f,warn:r.f,err:a.f,idle:m,build:c.f,paused:x,info:d.f,fail:i.f,off:s.f,unknown:o.f,maint:p};function g({state:e,size:a=17,still:r=!1}){let n=r&&"build"===e?l.f:b[e];return(0,t.jsx)(n,{size:a,"aria-hidden":!0,className:(0,h.f)("shrink-0",f[e],"build"===e&&!r&&"animate-spin")})}e.s(["Z",0,g,"F",0,function({state:e,children:a}){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap",children:[(0,t.jsx)(g,{state:e}),(0,t.jsx)("span",{children:a})]})}],220806)}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33550,e=>{var t=e.i(271645),r={outline:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};e.s(["f",0,(e,a,n,s)=>{let i=(0,t.forwardRef)(({color:n="currentColor",size:i=24,stroke:l=2,title:o,className:d,children:c,...u},m)=>(0,t.createElement)("svg",{ref:m,...r[e],width:i,height:i,className:["tabler-icon",`tabler-icon-${a}`,d].filter(Boolean).join(" "),..."filled"===e?{fill:n}:{strokeWidth:l,stroke:n},...u},[o&&(0,t.createElement)("title",{key:"svg-title"},o),...s.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(c)?c:[c]]));return i.displayName=`${n}`,i}],33550)},344423,e=>{let t=(0,e.i(33550).f)("outline","alert-circle","AlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);e.s(["f",0,t],344423)},146874,e=>{let t=(0,e.i(33550).f)("outline","alert-triangle","AlertTriangle",[["path",{d:"M12 9v4",key:"svg-0"}],["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);e.s(["f",0,t],146874)},785642,396455,802480,802874,e=>{var t=e.i(33550);let r=(0,t.f)("outline","circle-check","CircleCheck",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l2 2l4 -4",key:"svg-1"}]]);e.s(["f",0,r],785642);let a=(0,t.f)("outline","circle-dashed","CircleDashed",[["path",{d:"M8.56 3.69a9 9 0 0 0 -2.92 1.95",key:"svg-0"}],["path",{d:"M3.69 8.56a9 9 0 0 0 -.69 3.44",key:"svg-1"}],["path",{d:"M3.69 15.44a9 9 0 0 0 1.95 2.92",key:"svg-2"}],["path",{d:"M8.56 20.31a9 9 0 0 0 3.44 .69",key:"svg-3"}],["path",{d:"M15.44 20.31a9 9 0 0 0 2.92 -1.95",key:"svg-4"}],["path",{d:"M20.31 15.44a9 9 0 0 0 .69 -3.44",key:"svg-5"}],["path",{d:"M20.31 8.56a9 9 0 0 0 -1.95 -2.92",key:"svg-6"}],["path",{d:"M15.44 3.69a9 9 0 0 0 -3.44 -.69",key:"svg-7"}]]);e.s(["f",0,a],396455);let n=(0,t.f)("outline","circle-x","CircleX",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M10 10l4 4m0 -4l-4 4",key:"svg-1"}]]);e.s(["f",0,n],802480);let s=(0,t.f)("outline","hammer","Hammer",[["path",{d:"M11.414 10l-7.383 7.418a2.091 2.091 0 0 0 0 2.967a2.11 2.11 0 0 0 2.976 0l7.407 -7.385",key:"svg-0"}],["path",{d:"M18.121 15.293l2.586 -2.586a1 1 0 0 0 0 -1.414l-7.586 -7.586a1 1 0 0 0 -1.414 0l-2.586 2.586a1 1 0 0 0 0 1.414l7.586 7.586a1 1 0 0 0 1.414 0",key:"svg-1"}]]);e.s(["f",0,s],802874)},239692,e=>{let t=(0,e.i(33550).f)("outline","help-circle","HelpCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 16v.01",key:"svg-1"}],["path",{d:"M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483",key:"svg-2"}]]);e.s(["f",0,t],239692)},39622,e=>{let t=(0,e.i(33550).f)("outline","info-circle","InfoCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]]);e.s(["f",0,t],39622)},513932,e=>{let t=(0,e.i(33550).f)("outline","loader-2","Loader2",[["path",{d:"M12 3a9 9 0 1 0 9 9",key:"svg-0"}]]);e.s(["f",0,t],513932)},95187,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var a={callServer:function(){return s.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(132120),i=e.r(92245),l=e.r(235326)},414548,e=>{var t=e.i(95187);let r=(0,t.createServerReference)("608fdc0f8f70507dd391ca52529a43f761fd3a28fc",t.callServer,void 0,t.findSourceMapURL,"signInWithPassword");e.s(["f",0,r])},426074,e=>{var t=e.i(843476),r=e.i(271645),a=e.i(428325);let n="demo@watchbell.west-solutions.web.id",s="watchbell-demo";var i=e.i(414548);e.s(["DemoSignInForm",0,function({next:e}){let[l,o,d]=(0,r.useActionState)(i.f,{status:"idle"}),c=(0,r.useRef)(null),u=(0,r.useRef)(null);return(0,t.jsxs)("form",{action:o,children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Try the Watchbell demo"}),(0,t.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Sign in with the demo account to look around a console full of made-up data of your own."}),(0,t.jsxs)("div",{className:"mb-[18px] rounded-lg border border-line bg-sunken px-3.5 py-3",children:[(0,t.jsxs)("dl",{className:"mb-2.5 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[13px]",children:[(0,t.jsx)("dt",{className:"text-ink-soft",children:"Email"}),(0,t.jsx)("dd",{className:"break-all font-mono",children:n}),(0,t.jsx)("dt",{className:"text-ink-soft",children:"Password"}),(0,t.jsx)("dd",{className:"font-mono",children:s})]}),(0,t.jsx)(a.K,{size:"sm",onClick:()=>{c.current&&(c.current.value=n),u.current&&(u.current.value=s),u.current?.focus()},children:"Use demo account"})]}),e&&(0,t.jsx)("input",{type:"hidden",name:"next",value:e}),(0,t.jsx)(a.O,{id:"email",label:"Email",error:"error"===l.status&&"email"===l.field?l.message:void 0,children:(0,t.jsx)("input",{ref:c,id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,maxLength:254,defaultValue:"error"===l.status?l.email:void 0,className:a.S})}),(0,t.jsx)(a.O,{id:"password",label:"Password",error:"error"===l.status&&"email"!==l.field?l.message:void 0,children:(0,t.jsx)("input",{ref:u,id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:200,className:a.S})}),(0,t.jsx)(a.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:d,children:d?"Signing in…":"Sign in"}),(0,t.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Or use any email and password. Every sign-in, the demo account too, gets its own made-up data."})]})}],426074)},781354,e=>{var t=e.i(843476),r=e.i(271645),a=e.i(428325),n=e.i(414548);e.s(["PasswordSignInForm",0,function({next:e}){let[s,i,l]=(0,r.useActionState)(n.f,{status:"idle"});return(0,t.jsxs)("form",{action:i,children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,t.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Use the email and password an owner set up for you."}),e&&(0,t.jsx)("input",{type:"hidden",name:"next",value:e}),(0,t.jsx)(a.O,{id:"email",label:"Email",children:(0,t.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,defaultValue:"error"===s.status?s.email:void 0,className:a.S})}),(0,t.jsx)(a.O,{id:"password",label:"Password",error:"error"===s.status?s.message:void 0,children:(0,t.jsx)("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:1024,className:a.S})}),(0,t.jsx)(a.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:l,children:l?"Signing in…":"Sign in"}),(0,t.jsxs)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:["Forgot your password? Ask an owner to reset it. If you are the owner, stop Watchbell and run"," ",(0,t.jsx)("code",{className:"font-mono text-ink-soft",children:"watchbell reset-login you@example.com"})," on the machine it runs on (from an installer: ",(0,t.jsx)("code",{className:"font-mono text-ink-soft",children:"npm run reset-login -- you@example.com"})," in its app folder)."]})]})}])},419564,e=>{var t=e.i(843476),r=e.i(271645),a=e.i(428325);let n="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";function s({siteKey:e}){let a=(0,r.useRef)(null),[i,l]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{let t,r=!1;return(window.turnstile?Promise.resolve(window.turnstile):new Promise((e,t)=>{let r=document.querySelector(`script[src="${n}"]`);r||((r=document.createElement("script")).src=n,r.async=!0,document.head.appendChild(r));let a=r;a.addEventListener("load",()=>window.turnstile?e(window.turnstile):t(Error("turnstile"))),a.addEventListener("error",()=>{a.remove(),t(Error("turnstile"))})})).then(n=>{!r&&a.current&&(t=n.render(a.current,{sitekey:e,action:"signin",theme:"auto"}))}).catch(()=>{console.warn("bot check failed to load"),r||l(!0)}),()=>{r=!0,t&&window.turnstile&&window.turnstile.remove(t)}},[e]),i)?(0,t.jsx)("p",{role:"alert",className:"mb-3.5 text-[13px] text-err",children:"The bot check couldn't load. Check your connection and reload the page."}):(0,t.jsx)("div",{ref:a,className:"mb-3.5 min-h-[65px]"})}var i=e.i(95187);let l=(0,i.createServerReference)("6029aee86c592085dfe9e9373fe41061725bc856d1",i.callServer,void 0,i.findSourceMapURL,"sendSignInLink");e.s(["SignInForm",0,function({siteKey:e}){let[n,i,o]=(0,r.useActionState)(l,{status:"idle"}),[d,c]=(0,r.useState)(!1),[u,m]=(0,r.useState)(0);return"sent"!==n.status||d?(0,t.jsxs)("form",{action:e=>{c(!1),m(e=>e+1),i(e)},children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,t.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"We'll email you a sign-in link. Only invited people can get in."}),(0,t.jsx)(a.O,{id:"email",label:"Email",error:"error"===n.status?n.message:void 0,children:(0,t.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"email",placeholder:"name@example.com",required:!0,className:a.S})}),(0,t.jsx)(s,{siteKey:e},u),(0,t.jsx)(a.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:o,children:o?"Sending…":"Send sign-in link"}),(0,t.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Can't get in? Ask an owner to invite you."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h1",{className:"mb-1 text-xl",children:"Check your email"}),(0,t.jsxs)("p",{className:"mb-[18px] text-ink-soft",children:["If ",n.email," is invited, a sign-in link is on its way. It works for 1 hour."]}),(0,t.jsx)(a.K,{className:"w-full justify-center",onClick:()=>c(!0),children:"Use a different email"})]})}],419564)},428325,e=>{var t=e.i(843476);let r=(0,e.i(33550).f)("outline","inbox","Inbox",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M4 13h3l3 3h4l3 -3h3",key:"svg-1"}]]);e.i(522016);var a=e.i(54131),n=e.i(220806),s=e.i(975157);function i({variant:e="secondary",size:t="md"}={}){return(0,s.f)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border transition-colors disabled:cursor-not-allowed disabled:opacity-60 hover:no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","sm"===t?"px-[9px] py-[3px] text-[13px]":"px-3 py-1.5","primary"===e&&"border-brand bg-brand text-on-brand hover:bg-brand-hover","secondary"===e&&"border-line-strong bg-surface text-ink hover:bg-hover","ghost"===e&&"border-transparent bg-transparent text-brand hover:bg-brand-soft","danger"===e&&"border-err bg-err text-on-brand hover:brightness-95")}let l={danger:{box:"bg-err-soft border-err/30",state:"err"},warning:{box:"bg-warn-soft border-warn-icon/35",state:"warn"},info:{box:"bg-brand-soft border-brand/25",state:"info"}},o=(e,r)=>"string"==typeof e?(0,t.jsx)(a.MaskedText,{text:e,inLink:r}):e;e.s(["M",0,function({tone:e,title:r,children:a,action:i}){let d=l[e];return(0,t.jsxs)("div",{className:(0,s.f)("flex items-start gap-2.5 rounded-lg border px-3.5 py-2.5",d.box),role:"danger"===e?"alert":"status",children:[(0,t.jsx)("span",{className:"mt-px",children:(0,t.jsx)(n.Z,{state:d.state,size:18})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("b",{className:"block font-medium",children:o(r)}),a&&(0,t.jsx)("p",{className:"mt-0.5 text-[13px] text-ink-soft",children:o(a)})]}),i&&(0,t.jsx)("div",{className:"ml-auto",children:i})]})},"K",0,function({variant:e,size:r,className:a,type:n="button",...l}){return(0,t.jsx)("button",{type:n,className:(0,s.f)(i({variant:e,size:r}),a),...l})},"N",0,function({title:e,meta:r,flush:a,className:n,children:i}){return(0,t.jsxs)("section",{className:(0,s.f)("min-w-0 rounded-lg border border-line bg-surface",n),children:[e&&(0,t.jsxs)("div",{className:(0,s.f)("flex flex-wrap items-center gap-2 px-[18px] pt-3.5",a?"pb-2.5":"pb-1.5"),children:[(0,t.jsx)("h2",{className:"text-[15px]",children:e}),r&&(0,t.jsx)("span",{className:"ml-auto flex items-center gap-1.5 text-[12.5px] text-ink-soft",children:r})]}),a?i:(0,t.jsx)("div",{className:"px-[18px] pb-4 pt-2",children:i})]})},"k",0,function({icon:e=r,title:a,children:n,action:s}){return(0,t.jsxs)("div",{className:"px-4 py-7 text-center text-ink-soft",children:[(0,t.jsx)(e,{size:28,"aria-hidden":!0,className:"mx-auto text-ink-faint"}),(0,t.jsx)("b",{className:"mb-0.5 mt-1.5 block font-medium text-ink",children:a}),n,s&&(0,t.jsx)("div",{className:"mt-3",children:s})]})},"O",0,function({id:e,label:r,help:a,error:n,children:s}){return(0,t.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsx)("label",{htmlFor:e,className:"text-[13px] font-medium",children:r}),s,a&&(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:a}),n&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:n})]})},"_",0,function({label:e,pressed:r,children:a,...n}){return(0,t.jsx)("button",{type:"button","aria-label":e,title:e,"aria-pressed":r,className:(0,s.f)("relative inline-grid size-[34px] shrink-0 place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",r&&"bg-brand-soft text-brand"),...n,children:a})},"E",0,function({children:e}){return(0,t.jsx)("span",{className:"mr-1 inline-block rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:e})},"R",0,i,"S",0,"w-full rounded-md border border-line-strong bg-surface px-2.5 py-1.5 text-ink outline-none focus:border-brand focus:ring-2 focus:ring-brand/40"],428325)},220806,914552,615884,e=>{var t=e.i(843476),r=e.i(344423),a=e.i(146874),n=e.i(785642),s=e.i(396455),i=e.i(802480),l=e.i(802874),o=e.i(239692),d=e.i(39622),c=e.i(513932),u=e.i(33550);let m=(0,u.f)("outline","moon","Moon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008",key:"svg-0"}]]);e.s(["f",0,m],914552);let x=(0,u.f)("outline","player-pause","PlayerPause",[["path",{d:"M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-0"}],["path",{d:"M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-1"}]]),p=(0,u.f)("outline","tool","Tool",[["path",{d:"M7 10h3v-3l-3.5 -3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1 -3 3l-6 -6a6 6 0 0 1 -8 -8l3.5 3.5",key:"svg-0"}]]);e.s(["f",0,p],615884);let f={ok:"text-ok",warn:"text-warn-icon",paused:"text-warn-icon",err:"text-err",fail:"text-err",idle:"text-idle",off:"text-idle",unknown:"text-idle",build:"text-brand",info:"text-brand",maint:"text-brand"};var h=e.i(975157);let b={ok:n.f,warn:a.f,err:r.f,idle:m,build:c.f,paused:x,info:d.f,fail:i.f,off:s.f,unknown:o.f,maint:p};function g({state:e,size:r=17,still:a=!1}){let n=a&&"build"===e?l.f:b[e];return(0,t.jsx)(n,{size:r,"aria-hidden":!0,className:(0,h.f)("shrink-0",f[e],"build"===e&&!a&&"animate-spin")})}e.s(["Z",0,g,"F",0,function({state:e,children:r}){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap",children:[(0,t.jsx)(g,{state:e}),(0,t.jsx)("span",{children:r})]})}],220806)}])})();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,239647,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(846696),n=e.i(177106),r=e.i(95187);let i=(0,r.createServerReference)("6065cbf30678b0ce46c6eaf41177346f8cb3a77ae8",r.callServer,void 0,r.findSourceMapURL,"silence");e.s(["AlertMenu",0,function({id:e,label:r,silenced:l,resourceHref:o}){let[,d]=(0,a.useTransition)(),c=(0,a.useRef)(!1),h=t=>{c.current||(c.current=!0,d(async()=>{try{let a=await i(e,t);a.ok?s.c.success(a.message??""):s.c.error(a.error)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{c.current=!1}}))},u=o?[{label:"View resource",href:o}]:[];return(0,t.jsx)(n.RowMenu,{label:`Actions for ${r}`,items:l?[{label:"Unsilence",onSelect:()=>h("off")},...u]:[{label:"Silence 1 hour",onSelect:()=>h("1h")},{label:"Silence until resolved",onSelect:()=>h("resolved")},...u]})}],239647)},108608,e=>{var t=e.i(843476),a=e.i(33550);let s=(0,a.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),n=(0,a.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),r=(0,a.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]),i=(0,a.f)("outline","webhook","Webhook",[["path",{d:"M4.876 13.61a4 4 0 1 0 6.124 3.39h6",key:"svg-0"}],["path",{d:"M15.066 20.502a4 4 0 1 0 1.934 -7.502c-.706 0 -1.424 .179 -2 .5l-3 -5.5",key:"svg-1"}],["path",{d:"M16 8a4 4 0 1 0 -8 0c0 1.506 .77 2.818 2 3.5l-3 5.5",key:"svg-2"}]]);var l=e.i(944971),o=e.i(271645),d=e.i(846696),c=e.i(428325),h=e.i(500443),u=e.i(776639),p=e.i(357772);function m({id:e,onChange:a}){let[s,n]=(0,o.useState)([]),[r,i]=(0,o.useState)(""),l=(e,t)=>{n(e),i(t),a([...e,t.trim()].filter(Boolean).join(", "))},d=e=>{var t;let a;return l((t=[...s,e].join(","),a=new Set,t.split(/[\s,;]+/).filter(e=>e&&!a.has(e.toLowerCase())&&a.add(e.toLowerCase()))),"")};return(0,t.jsxs)("div",{className:"flex min-h-[34px] flex-wrap items-center gap-1.5 rounded-md border border-line-strong bg-surface px-1.5 py-1 focus-within:border-brand focus-within:ring-2 focus-within:ring-brand/40",children:[s.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-line bg-sunken py-0.5 pl-2.5 pr-1 text-[12.5px]",children:[e,(0,t.jsx)("button",{type:"button",className:"grid size-4 place-items-center rounded-full text-ink-soft hover:text-ink","aria-label":`Remove ${e}`,onClick:()=>l(s.filter((e,t)=>t!==a),r),children:(0,t.jsx)(p.f,{size:12,"aria-hidden":!0})})]},e)),(0,t.jsx)("input",{id:e,className:"min-w-[160px] flex-1 bg-transparent px-1 py-0.5 text-ink outline-none",type:"text",inputMode:"email",autoComplete:"off",placeholder:s.length?s.length<10?"Add another":"":"you@example.com",value:r,onChange:e=>/[\s,;]/.test(e.target.value)?d(e.target.value):l(s,e.target.value),onKeyDown:e=>{"Enter"===e.key&&r.trim()?(e.preventDefault(),d(r)):"Backspace"===e.key&&!r&&s.length&&l(s.slice(0,-1),s.at(-1))},onBlur:()=>{r.trim()&&d(r)}})]})}var x=e.i(95187);let g=(0,x.createServerReference)("40a3a798407f80b11d07f5094603104d284d30d55b",x.callServer,void 0,x.findSourceMapURL,"saveDigest"),b=(0,x.createServerReference)("4001272b6585001a6b2b0d05c4c10a06ddb275e74f",x.callServer,void 0,x.findSourceMapURL,"saveDiscord"),f=(0,x.createServerReference)("4094bd1d2789293b5ae7932ed0610a2bb7312154f1",x.callServer,void 0,x.findSourceMapURL,"saveSmtp"),v=(0,x.createServerReference)("60e1662d849510aaa0e0f7c831e247692bc618c8fa",x.callServer,void 0,x.findSourceMapURL,"saveTelegram"),y=(0,x.createServerReference)("601a939c33623dd738ef05537c8fc586e74c3c8380",x.callServer,void 0,x.findSourceMapURL,"saveWebhook"),k=(0,x.createServerReference)("40ade010a4b06845132084032cfd40bc6589858048",x.callServer,void 0,x.findSourceMapURL,"sendTest"),S=(0,x.createServerReference)("60a03ec58b74b82b019a879037eb25eadc4f8aa194",x.callServer,void 0,x.findSourceMapURL,"setChannelEnabled"),w=(0,x.createServerReference)("00f7de575b765ccda4cda9792cbe61ee357f6b7e94",x.callServer,void 0,x.findSourceMapURL,"telegramChats"),j={telegram:{icon:n,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${l.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:s,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},webhook:{icon:i,title:"Connect a webhook",name:"Webhook",about:"Watchbell POSTs JSON to this address for every alert message. It must be https on a public host (port 443); Watchbell doesn't post into private networks or follow redirects."},smtp:{icon:r,title:"Email through your mail server",name:"Email (SMTP)",about:"Port 587 or 2525 with STARTTLS, or 465 with TLS; the password only ever goes over TLS. The server must be on the public internet. Office 365: smtp.office365.com, 587, and an app password if your account has MFA."},email_digest:{icon:r,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${l.n.setting} (RESEND_API_KEY).`}},C={telegram:"Telegram",discord:"Discord",webhook:"Webhook",smtp:"Email (SMTP)",email_digest:"Daily email digest"};e.s(["ChannelControls",0,function({kind:e,connected:a,enabled:s,envMissing:n}){let[r,i]=(0,o.useState)(!1),[l,p]=(0,o.useState)([]),[x,N]=(0,o.useState)(""),[R,T]=(0,o.useState)(""),[M,L]=(0,o.useState)(""),[D,E]=(0,o.useState)(""),[$,A]=(0,o.useState)({host:"",port:"587",user:"",pass:"",from:"",to:""}),[O,U]=(0,o.useState)({}),[W,P]=(0,o.useTransition)(),[F,z]=(0,o.useTransition)(),[K,H]=(0,o.useTransition)();(0,h.useHoldRefresh)(r);let I=j[e],_=I.icon;function B(e){e&&(p([]),N(""),T(""),L(""),E(""),A({host:"",port:"587",user:"",pass:"",from:"",to:""}),U({})),i(e)}function V(e,t){H(async()=>{try{let a=await e();a.ok?d.c.success(t,{description:a.message}):d.c.error(a.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,t.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(u.N,{open:r,onOpenChange:e=>{W||B(e)},children:[(0,t.jsx)(u.a,{render:(0,t.jsx)(c.K,{size:"sm",disabled:null!==n,children:a?"Change":"Connect"})}),(0,t.jsxs)(u.d,{className:"max-h-[92vh] gap-0 overflow-y-auto p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(_,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(u.F,{className:"text-base",children:I.title}),(0,t.jsx)(u.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:I.about})]})]}),(0,t.jsxs)("form",{onSubmit:t=>{let a;t.preventDefault(),a={},"telegram"!==e||x||(a.chat="Press Find chats, then pick one."),"discord"!==e||R.trim()||(a.url="Paste the whole webhook URL from Discord."),"webhook"!==e||R.trim()||(a.url="Paste the whole address, starting with https://."),"smtp"!==e||$.host.trim()||(a.host="Enter the server name, for example smtp.office365.com."),"smtp"!==e||$.to.trim()||(a.to="Enter the address that gets the alerts."),"email_digest"!==e||M.trim()||(a.to="Enter a valid email address."),U(a),Object.keys(a).length||P(async()=>{try{let t=l.find(e=>e.id===x)?.label??"",a="telegram"===e?await v(x,t):"discord"===e?await b(R):"webhook"===e?await y(R,D):"smtp"===e?await f({...$,port:Number($.port)}):await g(M);if(!a.ok){U(a.fieldErrors??{}),a.fieldErrors||d.c.error(a.error);return}d.c.success("Channel saved",{description:a.message}),i(!1)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:O.chat,children:(0,t.jsxs)("select",{id:"ch-chat",className:c.S,value:x,onChange:e=>N(e.target.value),children:[0===l.length&&(0,t.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),l.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))]})}),(0,t.jsx)("p",{className:"mb-3",children:(0,t.jsx)(c.K,{size:"sm",onClick:function(){z(async()=>{try{let e=await w();if(!e.ok)return void d.c.error(e.error);let t=e.data?.chats??[];p(t),N(t[0]?.id??""),U({}),t.length?d.c.success(`Found ${t.length} chat${1===t.length?"":"s"}: ${t.map(e=>e.label).join(", ")}.`):d.c.info("No chats yet",{description:e.message??"Send /start to your bot in Telegram, then try again."})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:F,children:F?"Looking…":"Find chats"})})]}),"discord"===e&&(0,t.jsx)(c.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:O.url,children:(0,t.jsx)("input",{id:"ch-hook",className:c.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:R,onChange:e=>T(e.target.value)})}),"webhook"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.O,{id:"ch-wh",label:"Address",help:"Encrypted before it's saved and never shown again; the console shows only its host.",error:O.url,children:(0,t.jsx)("input",{id:"ch-wh",className:c.S,type:"url",autoComplete:"off",placeholder:"https://n8n.example.com/webhook/…",value:R,onChange:e=>T(e.target.value)})}),(0,t.jsx)(c.O,{id:"ch-wh-secret",label:"Secret (optional)",help:"16 to 200 characters. Each body is signed with it: header X-Watchbell-Signature = sha256 HMAC of the timestamp, a dot and the body.",error:O.secret,children:(0,t.jsx)("input",{id:"ch-wh-secret",className:c.S,type:"password",autoComplete:"off",value:D,onChange:e=>E(e.target.value)})})]}),"smtp"===e&&(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 max-[520px]:grid-cols-1",children:[(0,t.jsx)(c.O,{id:"ch-sm-host",label:"Server",error:O.host,children:(0,t.jsx)("input",{id:"ch-sm-host",className:c.S,autoComplete:"off",placeholder:"smtp.office365.com",value:$.host,onChange:e=>A({...$,host:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-port",label:"Port",error:O.port,children:(0,t.jsxs)("select",{id:"ch-sm-port",className:c.S,value:$.port,onChange:e=>A({...$,port:e.target.value}),children:[(0,t.jsx)("option",{value:"587",children:"587 · STARTTLS"}),(0,t.jsx)("option",{value:"465",children:"465 · TLS"}),(0,t.jsx)("option",{value:"2525",children:"2525 · STARTTLS"})]})}),(0,t.jsx)(c.O,{id:"ch-sm-user",label:"User name",error:O.user,children:(0,t.jsx)("input",{id:"ch-sm-user",className:c.S,autoComplete:"off",value:$.user,onChange:e=>A({...$,user:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-pass",label:"Password",help:a?"Leave empty to keep the saved one.":"Encrypted before it's saved and never shown again.",error:O.pass,children:(0,t.jsx)("input",{id:"ch-sm-pass",className:c.S,type:"password",autoComplete:"off",value:$.pass,onChange:e=>A({...$,pass:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-from",label:"From",error:O.from,children:(0,t.jsx)("input",{id:"ch-sm-from",className:c.S,type:"email",autoComplete:"off",placeholder:"alerts@example.com",value:$.from,onChange:e=>A({...$,from:e.target.value})})}),(0,t.jsxs)("div",{className:"col-span-2 max-[520px]:col-span-1",children:[(0,t.jsx)(c.O,{id:"ch-sm-to",label:"Send to",help:"Up to 10 addresses; each one gets the same email. Press Enter or a comma after each.",error:O.to,children:(0,t.jsx)(m,{id:"ch-sm-to",onChange:e=>A(t=>({...t,to:e}))})}),"onboarding@resend.dev"===$.from.trim().toLowerCase()&&$.to.includes(",")&&(0,t.jsx)("p",{className:"-mt-2 mb-3.5 rounded-md border border-warn/40 bg-warn-soft px-2.5 py-2 text-[12.5px]",children:"Resend's test sender (onboarding@resend.dev) only delivers to your own Resend account address. Verify a domain in Resend and send from it to reach other people."})]})]}),"email_digest"===e&&(0,t.jsx)(c.O,{id:"ch-to",label:"Send to",error:O.to,children:(0,t.jsx)("input",{id:"ch-to",className:c.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:M,onChange:e=>L(e.target.value)})})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(c.K,{onClick:()=>B(!1),disabled:W,children:"Cancel"}),(0,t.jsx)(c.K,{type:"submit",variant:"primary",disabled:W,children:W?"Saving…":"Save"})]})]})]})]}),a&&s&&null===n&&(0,t.jsx)(c.K,{size:"sm",disabled:K,onClick:()=>V(()=>k(e),`${C[e]} test`),children:K?"Sending…":"Send test"}),a&&(0,t.jsx)(c.K,{size:"sm",variant:"ghost",disabled:K,onClick:()=>V(()=>S(e,!s),C[e]),children:s?"Turn off":"Turn on"})]})}],108608)},274224,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(846696),n=e.i(428325),r=e.i(95187);let i=(0,r.createServerReference)("60d8f191053ae6baf53435fc5448e2e22a602218ab",r.callServer,void 0,r.findSourceMapURL,"setNotifyLanguage");e.s(["LanguageSelect",0,function({channel:e,label:r,saved:l}){let[o,d]=(0,a.useState)(l),[c,h]=(0,a.useTransition)();return(0,t.jsxs)("select",{"aria-label":`${r} language`,className:`${n.S} w-auto min-w-[160px]`,value:o,disabled:c,onChange:t=>{var a;d(a="id"===t.target.value?"id":"en"),h(async()=>{try{let t=await i(e,a);t.ok?s.c.success(`${r} language saved`,{description:t.message}):(d(o),s.c.error(t.error))}catch{d(o),s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,t.jsx)("option",{value:"en",children:"English"}),(0,t.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],274224)},689721,e=>{var t=e.i(843476),a=e.i(668029),s=e.i(271645),n=e.i(846696),r=e.i(428325),i=e.i(500443),l=e.i(776639);let o=e=>(e??0).toLocaleString("en-US"),d={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:e=>`${o(e)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:e=>`No collector run for ${o(e)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:e=>`Slowest 5% of checks over ${o(e)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A production deploy fails"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase pauses the project"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:e=>`TLS certificate expires in < ${o(e)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:e=>`Domain expires in < ${o(e)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Database size > ${o(e)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:e=>`> ${o(e)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:e=>`Daily reads > ${o(e)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase project without API traffic for ${o(e)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase CPU > ${o(e)}% for 15 min, RAM > ${o(Math.min(99,(e??80)+10))}%, disk > ${o(e)}% or connections > ${o(e)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Turso, Upstash or D1 usage > ${o(e)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:e=>`Account credential expires in < ${o(e)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},CiFailing:{key:"CiFailing",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"The latest GitHub Actions run on the default branch failed"},OsSecurityUpdate:{key:"OsSecurityUpdate",severity:"warning",threshold:7,bounds:[0,10],source:"own",needs:null,sampled:!1,condition:e=>`A waiting security update fixes a CVE scored ${(e??7).toFixed(1)}+ (CVSS), or a new kernel waits for a reboot`},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}};Object.keys(d),e.i(684496);let c=[["critical","Critical"],["warning","Warning"],["info","Info"]];var h=e.i(95187);let u=(0,h.createServerReference)("602bee0b0156b79583be342c8c2627b98997757526",h.callServer,void 0,h.findSourceMapURL,"editRule"),p=(0,h.createServerReference)("603074d59893694ef5bfe50a853ccd34472315304f",h.callServer,void 0,h.findSourceMapURL,"testRule"),m=["status","severity","rule","target","detail","cause","step","since","threshold"],x=["id","en"],g={status:"FIRING, REPEAT or RESOLVED (MUNCUL, ULANG, PULIH in Indonesian)",severity:"critical, warning or info",rule:"the rule's key, like MonitorDown",target:"what the alert is about: an app, a database, a domain",detail:"Watchbell's sentence about what it saw",cause:"the alert that caused this one, or a provider incident",step:"Watchbell's next step for rules that have one",since:"when the alert started: the time and the time zone",threshold:"the rule's number from Threshold"},b={en:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nNext step: {step}\nsince {since}",id:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nYang perlu kamu lakukan: {step}\nsejak {since}"},f={en:"Test message: Watchbell's sentence about what it saw goes here.",id:"Pesan tes: di sini nanti kalimat Watchbell soal apa yang dilihatnya."},v=/\{([a-zA-Z_]+)\}/g,y=e=>e.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function k(e,t){let a="string"==typeof e?y(e):"";return a&&a!==b[t]?a:null}let S={id:"Bahasa Indonesia",en:"English"},w={en:"FIRING",id:"MUNCUL"},j={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},C={en:"1 firing",id:"1 aktif"},N={en:"Open alerts",id:"Buka Alerts"},R=e=>({id:e.id??b.id,en:e.en??b.en});function T({ruleKey:e,severity:a,threshold:n,sample:i,texts:l,onChange:o,errors:d}){let[c,h]=(0,s.useState)("id"),u=(0,s.useRef)(null),p=l[c],R=null!==k(p,c),M={status:w[c],severity:j[c][a]??a,rule:e,target:"my-app",detail:f[c],cause:"",step:i.step[c]??"",since:i.since,threshold:n},[L="",...D]=y(p).split("\n").flatMap(e=>{let t=[...e.matchAll(v)].map(e=>e[1]).filter(e=>Object.hasOwn(M,e));return t.length&&t.every(e=>!M[e].trim())?[]:[e.replace(v,(e,t)=>Object.hasOwn(M,t)?M[t]:e)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim().split("\n");return(0,t.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px] border-t border-line pt-3.5",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,t.jsx)("legend",{className:"text-[13px] font-medium",children:"Message"}),(0,t.jsx)("span",{className:`rounded-full border px-2 py-px text-[11.5px] ${R?"border-brand/40 text-brand":"border-line text-ink-soft"}`,children:R?"Changed":"Watchbell's wording"})]}),(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Word the notification yourself. Left as it is, the rule keeps Watchbell's wording, including later fixes to it."}),(0,t.jsx)("div",{role:"tablist",className:"mt-1 flex gap-1 border-b border-line",children:x.map(e=>(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":e===c,onClick:()=>h(e),className:`-mb-px border-b-2 px-2.5 py-1.5 text-[13px] ${e===c?"border-brand font-medium text-ink":"border-transparent text-ink-soft hover:text-ink"}`,children:[S[e],null!==k(l[e],e)?" · changed":""]},e))}),(0,t.jsx)("textarea",{ref:u,id:`rule-msg-${c}`,"aria-label":`Message in ${S[c]}`,className:`${r.S} min-h-[124px] resize-y font-mono text-[12.5px] leading-relaxed`,maxLength:1200,value:p,onChange:e=>o({...l,[c]:e.target.value})}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:m.map(e=>(0,t.jsx)("button",{type:"button",title:g[e],onClick:()=>{let t,a,s,n;return t=u.current,a=t?.selectionStart??p.length,s=t?.selectionEnd??a,n=`{${e}}`,void(o({...l,[c]:p.slice(0,a)+n+p.slice(s)}),requestAnimationFrame(()=>{t?.focus(),t?.setSelectionRange(a+n.length,a+n.length)}))},className:"rounded border border-line-strong bg-sunken px-1.5 py-px font-mono text-[12px] text-ink hover:border-brand",children:`{${e}}`},e))}),d[`template_${c}`]&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:d[`template_${c}`]}),x.filter(e=>e!==c&&d[`template_${e}`]).map(e=>(0,t.jsxs)("span",{className:"text-[12.5px] text-err",role:"alert",children:[S[e],": ",d[`template_${e}`]]},e)),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"A line whose fields are all empty is left out."}),(0,t.jsx)("button",{type:"button",className:"text-[12.5px] text-link underline disabled:opacity-50 disabled:no-underline",disabled:!R,onClick:()=>o({...l,[c]:b[c]}),children:"Back to Watchbell's wording"})]}),(0,t.jsxs)("div",{className:"mt-1 rounded-md border border-line bg-sunken px-3 py-2.5 text-[13px] leading-relaxed",children:[(0,t.jsx)("div",{className:"mb-1 text-[11.5px] uppercase tracking-wide text-ink-faint",children:"Preview, with sample values"}),(0,t.jsxs)("div",{className:"whitespace-pre-wrap break-words",children:[(0,t.jsx)("b",{children:"Watchbell"}),": ",C[c]," · ",i.since,"\n\n",(0,t.jsx)("b",{children:L}),D.length?`
|
|
2
|
-
${D.join("\n")}`:"","\n",(0,t.jsx)("span",{className:"text-link",children:N[c]})]})]})]})}let M=[["telegram","Telegram"],["discord","Discord"],["webhook","Webhook"],["smtp","Email (SMTP)"],["email_digest","Daily email digest"]],L=e=>({severity:e.severity,threshold:null===e.threshold?"":e.threshold.toLocaleString("en-US"),channels:[...e.channels],enabled:e.enabled});e.s(["RuleActions",0,function({rule:e,condition:o,templates:h,sample:m}){let[x,
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,239647,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(846696),n=e.i(177106),r=e.i(95187);let i=(0,r.createServerReference)("60a8ab808862ce49915cac0a3330ea801e810e46b5",r.callServer,void 0,r.findSourceMapURL,"silence");e.s(["AlertMenu",0,function({id:e,label:r,silenced:l,resourceHref:o}){let[,d]=(0,a.useTransition)(),c=(0,a.useRef)(!1),h=t=>{c.current||(c.current=!0,d(async()=>{try{let a=await i(e,t);a.ok?s.c.success(a.message??""):s.c.error(a.error)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{c.current=!1}}))},u=o?[{label:"View resource",href:o}]:[];return(0,t.jsx)(n.RowMenu,{label:`Actions for ${r}`,items:l?[{label:"Unsilence",onSelect:()=>h("off")},...u]:[{label:"Silence 1 hour",onSelect:()=>h("1h")},{label:"Silence until resolved",onSelect:()=>h("resolved")},...u]})}],239647)},108608,e=>{var t=e.i(843476),a=e.i(33550);let s=(0,a.f)("outline","brand-discord","BrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),n=(0,a.f)("outline","brand-telegram","BrandTelegram",[["path",{d:"M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4",key:"svg-0"}]]),r=(0,a.f)("outline","mail","Mail",[["path",{d:"M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10",key:"svg-0"}],["path",{d:"M3 7l9 6l9 -6",key:"svg-1"}]]),i=(0,a.f)("outline","webhook","Webhook",[["path",{d:"M4.876 13.61a4 4 0 1 0 6.124 3.39h6",key:"svg-0"}],["path",{d:"M15.066 20.502a4 4 0 1 0 1.934 -7.502c-.706 0 -1.424 .179 -2 .5l-3 -5.5",key:"svg-1"}],["path",{d:"M16 8a4 4 0 1 0 -8 0c0 1.506 .77 2.818 2 3.5l-3 5.5",key:"svg-2"}]]);var l=e.i(944971),o=e.i(271645),d=e.i(846696),c=e.i(428325),h=e.i(500443),u=e.i(776639),p=e.i(357772);function m({id:e,onChange:a}){let[s,n]=(0,o.useState)([]),[r,i]=(0,o.useState)(""),l=(e,t)=>{n(e),i(t),a([...e,t.trim()].filter(Boolean).join(", "))},d=e=>{var t;let a;return l((t=[...s,e].join(","),a=new Set,t.split(/[\s,;]+/).filter(e=>e&&!a.has(e.toLowerCase())&&a.add(e.toLowerCase()))),"")};return(0,t.jsxs)("div",{className:"flex min-h-[34px] flex-wrap items-center gap-1.5 rounded-md border border-line-strong bg-surface px-1.5 py-1 focus-within:border-brand focus-within:ring-2 focus-within:ring-brand/40",children:[s.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-line bg-sunken py-0.5 pl-2.5 pr-1 text-[12.5px]",children:[e,(0,t.jsx)("button",{type:"button",className:"grid size-4 place-items-center rounded-full text-ink-soft hover:text-ink","aria-label":`Remove ${e}`,onClick:()=>l(s.filter((e,t)=>t!==a),r),children:(0,t.jsx)(p.f,{size:12,"aria-hidden":!0})})]},e)),(0,t.jsx)("input",{id:e,className:"min-w-[160px] flex-1 bg-transparent px-1 py-0.5 text-ink outline-none",type:"text",inputMode:"email",autoComplete:"off",placeholder:s.length?s.length<10?"Add another":"":"you@example.com",value:r,onChange:e=>/[\s,;]/.test(e.target.value)?d(e.target.value):l(s,e.target.value),onKeyDown:e=>{"Enter"===e.key&&r.trim()?(e.preventDefault(),d(r)):"Backspace"===e.key&&!r&&s.length&&l(s.slice(0,-1),s.at(-1))},onBlur:()=>{r.trim()&&d(r)}})]})}var x=e.i(95187);let b=(0,x.createServerReference)("403d9e8d73c65cb0b8889ac242b2d159baf391dedc",x.callServer,void 0,x.findSourceMapURL,"saveDigest"),g=(0,x.createServerReference)("408b1aa4d8906c65e39ae45ede59d2c74707eecfe4",x.callServer,void 0,x.findSourceMapURL,"saveDiscord"),f=(0,x.createServerReference)("4050bfcd8849be68504cba28173b7ea130110c043c",x.callServer,void 0,x.findSourceMapURL,"saveSmtp"),v=(0,x.createServerReference)("60ab9b90c64d3ec3d2bd56861da456ad6c3c29c8d2",x.callServer,void 0,x.findSourceMapURL,"saveTelegram"),y=(0,x.createServerReference)("6004ef9ecd16198ec924f458f07d6910e8ae400ec1",x.callServer,void 0,x.findSourceMapURL,"saveWebhook"),k=(0,x.createServerReference)("40eb29379f394ebc724a9a33e29187c0f6625f41d8",x.callServer,void 0,x.findSourceMapURL,"sendTest"),S=(0,x.createServerReference)("6048cff6328812981eb48ffb09ed15ccbadb844cbd",x.callServer,void 0,x.findSourceMapURL,"setChannelEnabled"),w=(0,x.createServerReference)("0084e973b1d2ae850311b5831e7ee1e9678cbcdda2",x.callServer,void 0,x.findSourceMapURL,"telegramChats"),j={telegram:{icon:n,title:"Connect Telegram",name:"Telegram",about:`The bot token is ${l.n.setting} (TELEGRAM_BOT_TOKEN). Here you only choose the chat.`},discord:{icon:s,title:"Connect Discord",name:"Discord",about:"Discord → Channel settings → Integrations → Webhooks → New webhook → Copy URL."},webhook:{icon:i,title:"Connect a webhook",name:"Webhook",about:"Watchbell POSTs JSON to this address for every alert message. It must be https on a public host (port 443); Watchbell doesn't post into private networks or follow redirects."},smtp:{icon:r,title:"Email through your mail server",name:"Email (SMTP)",about:"Port 587 or 2525 with STARTTLS, or 465 with TLS; the password only ever goes over TLS. The server must be on the public internet. Office 365: smtp.office365.com, 587, and an app password if your account has MFA."},email_digest:{icon:r,title:"Daily email digest",name:"Daily email digest",about:`Sent through Resend from the address in DIGEST_FROM. The API key is ${l.n.setting} (RESEND_API_KEY).`}},C={telegram:"Telegram",discord:"Discord",webhook:"Webhook",smtp:"Email (SMTP)",email_digest:"Daily email digest"};e.s(["ChannelControls",0,function({kind:e,connected:a,enabled:s,envMissing:n}){let[r,i]=(0,o.useState)(!1),[l,p]=(0,o.useState)([]),[x,N]=(0,o.useState)(""),[R,T]=(0,o.useState)(""),[M,L]=(0,o.useState)(""),[D,E]=(0,o.useState)(""),[$,A]=(0,o.useState)({host:"",port:"587",user:"",pass:"",from:"",to:""}),[O,U]=(0,o.useState)({}),[W,P]=(0,o.useTransition)(),[F,z]=(0,o.useTransition)(),[K,H]=(0,o.useTransition)();(0,h.useHoldRefresh)(r);let I=j[e],_=I.icon;function B(e){e&&(p([]),N(""),T(""),L(""),E(""),A({host:"",port:"587",user:"",pass:"",from:"",to:""}),U({})),i(e)}function V(e,t){H(async()=>{try{let a=await e();a.ok?d.c.success(t,{description:a.message}):d.c.error(a.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,t.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(u.N,{open:r,onOpenChange:e=>{W||B(e)},children:[(0,t.jsx)(u.a,{render:(0,t.jsx)(c.K,{size:"sm",disabled:null!==n,children:a?"Change":"Connect"})}),(0,t.jsxs)(u.d,{className:"max-h-[92vh] gap-0 overflow-y-auto p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(_,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(u.F,{className:"text-base",children:I.title}),(0,t.jsx)(u.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:I.about})]})]}),(0,t.jsxs)("form",{onSubmit:t=>{let a;t.preventDefault(),a={},"telegram"!==e||x||(a.chat="Press Find chats, then pick one."),"discord"!==e||R.trim()||(a.url="Paste the whole webhook URL from Discord."),"webhook"!==e||R.trim()||(a.url="Paste the whole address, starting with https://."),"smtp"!==e||$.host.trim()||(a.host="Enter the server name, for example smtp.office365.com."),"smtp"!==e||$.to.trim()||(a.to="Enter the address that gets the alerts."),"email_digest"!==e||M.trim()||(a.to="Enter a valid email address."),U(a),Object.keys(a).length||P(async()=>{try{let t=l.find(e=>e.id===x)?.label??"",a="telegram"===e?await v(x,t):"discord"===e?await g(R):"webhook"===e?await y(R,D):"smtp"===e?await f({...$,port:Number($.port)}):await b(M);if(!a.ok){U(a.fieldErrors??{}),a.fieldErrors||d.c.error(a.error);return}d.c.success("Channel saved",{description:a.message}),i(!1)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:["telegram"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.O,{id:"ch-chat",label:"Chat",help:"Send /start to your bot in Telegram first.",error:O.chat,children:(0,t.jsxs)("select",{id:"ch-chat",className:c.S,value:x,onChange:e=>N(e.target.value),children:[0===l.length&&(0,t.jsx)("option",{value:"",children:"Press Find chats after you message the bot"}),l.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))]})}),(0,t.jsx)("p",{className:"mb-3",children:(0,t.jsx)(c.K,{size:"sm",onClick:function(){z(async()=>{try{let e=await w();if(!e.ok)return void d.c.error(e.error);let t=e.data?.chats??[];p(t),N(t[0]?.id??""),U({}),t.length?d.c.success(`Found ${t.length} chat${1===t.length?"":"s"}: ${t.map(e=>e.label).join(", ")}.`):d.c.info("No chats yet",{description:e.message??"Send /start to your bot in Telegram, then try again."})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:F,children:F?"Looking…":"Find chats"})})]}),"discord"===e&&(0,t.jsx)(c.O,{id:"ch-hook",label:"Webhook URL",help:"Encrypted before it's saved and never shown again.",error:O.url,children:(0,t.jsx)("input",{id:"ch-hook",className:c.S,type:"password",autoComplete:"off",placeholder:"https://discord.com/api/webhooks/…",value:R,onChange:e=>T(e.target.value)})}),"webhook"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.O,{id:"ch-wh",label:"Address",help:"Encrypted before it's saved and never shown again; the console shows only its host.",error:O.url,children:(0,t.jsx)("input",{id:"ch-wh",className:c.S,type:"url",autoComplete:"off",placeholder:"https://n8n.example.com/webhook/…",value:R,onChange:e=>T(e.target.value)})}),(0,t.jsx)(c.O,{id:"ch-wh-secret",label:"Secret (optional)",help:"16 to 200 characters. Each body is signed with it: header X-Watchbell-Signature = sha256 HMAC of the timestamp, a dot and the body.",error:O.secret,children:(0,t.jsx)("input",{id:"ch-wh-secret",className:c.S,type:"password",autoComplete:"off",value:D,onChange:e=>E(e.target.value)})})]}),"smtp"===e&&(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-x-3 max-[520px]:grid-cols-1",children:[(0,t.jsx)(c.O,{id:"ch-sm-host",label:"Server",error:O.host,children:(0,t.jsx)("input",{id:"ch-sm-host",className:c.S,autoComplete:"off",placeholder:"smtp.office365.com",value:$.host,onChange:e=>A({...$,host:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-port",label:"Port",error:O.port,children:(0,t.jsxs)("select",{id:"ch-sm-port",className:c.S,value:$.port,onChange:e=>A({...$,port:e.target.value}),children:[(0,t.jsx)("option",{value:"587",children:"587 · STARTTLS"}),(0,t.jsx)("option",{value:"465",children:"465 · TLS"}),(0,t.jsx)("option",{value:"2525",children:"2525 · STARTTLS"})]})}),(0,t.jsx)(c.O,{id:"ch-sm-user",label:"User name",error:O.user,children:(0,t.jsx)("input",{id:"ch-sm-user",className:c.S,autoComplete:"off",value:$.user,onChange:e=>A({...$,user:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-pass",label:"Password",help:a?"Leave empty to keep the saved one.":"Encrypted before it's saved and never shown again.",error:O.pass,children:(0,t.jsx)("input",{id:"ch-sm-pass",className:c.S,type:"password",autoComplete:"off",value:$.pass,onChange:e=>A({...$,pass:e.target.value})})}),(0,t.jsx)(c.O,{id:"ch-sm-from",label:"From",error:O.from,children:(0,t.jsx)("input",{id:"ch-sm-from",className:c.S,type:"email",autoComplete:"off",placeholder:"alerts@example.com",value:$.from,onChange:e=>A({...$,from:e.target.value})})}),(0,t.jsxs)("div",{className:"col-span-2 max-[520px]:col-span-1",children:[(0,t.jsx)(c.O,{id:"ch-sm-to",label:"Send to",help:"Up to 10 addresses; each one gets the same email. Press Enter or a comma after each.",error:O.to,children:(0,t.jsx)(m,{id:"ch-sm-to",onChange:e=>A(t=>({...t,to:e}))})}),"onboarding@resend.dev"===$.from.trim().toLowerCase()&&$.to.includes(",")&&(0,t.jsx)("p",{className:"-mt-2 mb-3.5 rounded-md border border-warn/40 bg-warn-soft px-2.5 py-2 text-[12.5px]",children:"Resend's test sender (onboarding@resend.dev) only delivers to your own Resend account address. Verify a domain in Resend and send from it to reach other people."})]})]}),"email_digest"===e&&(0,t.jsx)(c.O,{id:"ch-to",label:"Send to",error:O.to,children:(0,t.jsx)("input",{id:"ch-to",className:c.S,type:"email",autoComplete:"off",placeholder:"name@example.com",value:M,onChange:e=>L(e.target.value)})})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(c.K,{onClick:()=>B(!1),disabled:W,children:"Cancel"}),(0,t.jsx)(c.K,{type:"submit",variant:"primary",disabled:W,children:W?"Saving…":"Save"})]})]})]})]}),a&&s&&null===n&&(0,t.jsx)(c.K,{size:"sm",disabled:K,onClick:()=>V(()=>k(e),`${C[e]} test`),children:K?"Sending…":"Send test"}),a&&(0,t.jsx)(c.K,{size:"sm",variant:"ghost",disabled:K,onClick:()=>V(()=>S(e,!s),C[e]),children:s?"Turn off":"Turn on"})]})}],108608)},274224,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(846696),n=e.i(428325),r=e.i(95187);let i=(0,r.createServerReference)("606ce6c4a10f11f377bbec5d6a30a27ab11f75b0e5",r.callServer,void 0,r.findSourceMapURL,"setNotifyLanguage");e.s(["LanguageSelect",0,function({channel:e,label:r,saved:l}){let[o,d]=(0,a.useState)(l),[c,h]=(0,a.useTransition)();return(0,t.jsxs)("select",{"aria-label":`${r} language`,className:`${n.S} w-auto min-w-[160px]`,value:o,disabled:c,onChange:t=>{var a;d(a="id"===t.target.value?"id":"en"),h(async()=>{try{let t=await i(e,a);t.ok?s.c.success(`${r} language saved`,{description:t.message}):(d(o),s.c.error(t.error))}catch{d(o),s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:[(0,t.jsx)("option",{value:"en",children:"English"}),(0,t.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})}],274224)},689721,e=>{var t=e.i(843476),a=e.i(668029),s=e.i(271645),n=e.i(846696),r=e.i(428325),i=e.i(500443),l=e.i(776639);let o=e=>(e??0).toLocaleString("en-US"),d={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:e=>`${o(e)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:e=>`No collector run for ${o(e)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:e=>`Slowest 5% of checks over ${o(e)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A production deploy fails"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase pauses the project"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:e=>`TLS certificate expires in < ${o(e)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:e=>`Domain expires in < ${o(e)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Database size > ${o(e)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:e=>`> ${o(e)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:e=>`Daily reads > ${o(e)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase project without API traffic for ${o(e)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase CPU > ${o(e)}% for 15 min, RAM > ${o(Math.min(99,(e??80)+10))}%, disk > ${o(e)}% or connections > ${o(e)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Turso, Upstash or D1 usage > ${o(e)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:e=>`Account credential expires in < ${o(e)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},CiFailing:{key:"CiFailing",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"The latest GitHub Actions run on the default branch failed"},OsSecurityUpdate:{key:"OsSecurityUpdate",severity:"warning",threshold:7,bounds:[0,10],source:"own",needs:null,sampled:!1,condition:e=>`A waiting security update fixes a CVE scored ${(e??7).toFixed(1)}+ (CVSS), or a new kernel waits for a reboot`},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}};Object.keys(d),e.i(684496);let c=[["critical","Critical"],["warning","Warning"],["info","Info"]];var h=e.i(95187);let u=(0,h.createServerReference)("60f3c3029279219d908e4964347ace788c2a073de1",h.callServer,void 0,h.findSourceMapURL,"editRule"),p=(0,h.createServerReference)("607dba40591fba6589aa4c7c851d1d4e2eb17c3de2",h.callServer,void 0,h.findSourceMapURL,"testRule"),m=["status","severity","rule","target","detail","cause","step","since","threshold"],x=["id","en"],b={status:"FIRING, REPEAT or RESOLVED (MUNCUL, ULANG, PULIH in Indonesian)",severity:"critical, warning or info",rule:"the rule's key, like MonitorDown",target:"what the alert is about: an app, a database, a domain",detail:"Watchbell's sentence about what it saw",cause:"the alert that caused this one, or a provider incident",step:"Watchbell's next step for rules that have one",since:"when the alert started: the time and the time zone",threshold:"the rule's number from Threshold"},g={en:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nNext step: {step}\nsince {since}",id:"{status} · {severity} · {rule} · {target}\n{detail}\n{cause}\nYang perlu kamu lakukan: {step}\nsejak {since}"},f={en:"Test message: Watchbell's sentence about what it saw goes here.",id:"Pesan tes: di sini nanti kalimat Watchbell soal apa yang dilihatnya."},v=/\{([a-zA-Z_]+)\}/g,y=e=>e.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim();function k(e,t){let a="string"==typeof e?y(e):"";return a&&a!==g[t]?a:null}let S={id:"Bahasa Indonesia",en:"English"},w={en:"FIRING",id:"MUNCUL"},j={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},C={en:"1 firing",id:"1 aktif"},N={en:"Open alerts",id:"Buka Alerts"},R=e=>({id:e.id??g.id,en:e.en??g.en});function T({ruleKey:e,severity:a,threshold:n,sample:i,texts:l,onChange:o,errors:d}){let[c,h]=(0,s.useState)("id"),u=(0,s.useRef)(null),p=l[c],R=null!==k(p,c),M={status:w[c],severity:j[c][a]??a,rule:e,target:"my-app",detail:f[c],cause:"",step:i.step[c]??"",since:i.since,threshold:n},[L="",...D]=y(p).split("\n").flatMap(e=>{let t=[...e.matchAll(v)].map(e=>e[1]).filter(e=>Object.hasOwn(M,e));return t.length&&t.every(e=>!M[e].trim())?[]:[e.replace(v,(e,t)=>Object.hasOwn(M,t)?M[t]:e)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim().split("\n");return(0,t.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px] border-t border-line pt-3.5",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,t.jsx)("legend",{className:"text-[13px] font-medium",children:"Message"}),(0,t.jsx)("span",{className:`rounded-full border px-2 py-px text-[11.5px] ${R?"border-brand/40 text-brand":"border-line text-ink-soft"}`,children:R?"Changed":"Watchbell's wording"})]}),(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Word the notification yourself. Left as it is, the rule keeps Watchbell's wording, including later fixes to it."}),(0,t.jsx)("div",{role:"tablist",className:"mt-1 flex gap-1 border-b border-line",children:x.map(e=>(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":e===c,onClick:()=>h(e),className:`-mb-px border-b-2 px-2.5 py-1.5 text-[13px] ${e===c?"border-brand font-medium text-ink":"border-transparent text-ink-soft hover:text-ink"}`,children:[S[e],null!==k(l[e],e)?" · changed":""]},e))}),(0,t.jsx)("textarea",{ref:u,id:`rule-msg-${c}`,"aria-label":`Message in ${S[c]}`,className:`${r.S} min-h-[124px] resize-y font-mono text-[12.5px] leading-relaxed`,maxLength:1200,value:p,onChange:e=>o({...l,[c]:e.target.value})}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:m.map(e=>(0,t.jsx)("button",{type:"button",title:b[e],onClick:()=>{let t,a,s,n;return t=u.current,a=t?.selectionStart??p.length,s=t?.selectionEnd??a,n=`{${e}}`,void(o({...l,[c]:p.slice(0,a)+n+p.slice(s)}),requestAnimationFrame(()=>{t?.focus(),t?.setSelectionRange(a+n.length,a+n.length)}))},className:"rounded border border-line-strong bg-sunken px-1.5 py-px font-mono text-[12px] text-ink hover:border-brand",children:`{${e}}`},e))}),d[`template_${c}`]&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:d[`template_${c}`]}),x.filter(e=>e!==c&&d[`template_${e}`]).map(e=>(0,t.jsxs)("span",{className:"text-[12.5px] text-err",role:"alert",children:[S[e],": ",d[`template_${e}`]]},e)),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"A line whose fields are all empty is left out."}),(0,t.jsx)("button",{type:"button",className:"text-[12.5px] text-link underline disabled:opacity-50 disabled:no-underline",disabled:!R,onClick:()=>o({...l,[c]:g[c]}),children:"Back to Watchbell's wording"})]}),(0,t.jsxs)("div",{className:"mt-1 rounded-md border border-line bg-sunken px-3 py-2.5 text-[13px] leading-relaxed",children:[(0,t.jsx)("div",{className:"mb-1 text-[11.5px] uppercase tracking-wide text-ink-faint",children:"Preview, with sample values"}),(0,t.jsxs)("div",{className:"whitespace-pre-wrap break-words",children:[(0,t.jsx)("b",{children:"Watchbell"}),": ",C[c]," · ",i.since,"\n\n",(0,t.jsx)("b",{children:L}),D.length?`
|
|
2
|
+
${D.join("\n")}`:"","\n",(0,t.jsx)("span",{className:"text-link",children:N[c]})]})]})]})}let M=[["telegram","Telegram"],["discord","Discord"],["webhook","Webhook"],["smtp","Email (SMTP)"],["email_digest","Daily email digest"]],L=e=>({severity:e.severity,threshold:null===e.threshold?"":e.threshold.toLocaleString("en-US"),channels:[...e.channels],enabled:e.enabled});e.s(["RuleActions",0,function({rule:e,condition:o,templates:h,sample:m}){let[x,b]=(0,s.useState)(!1),[g,f]=(0,s.useState)(()=>L(e)),[v,y]=(0,s.useState)(()=>R(h)),[k,S]=(0,s.useState)({}),[w,j]=(0,s.useTransition)(),[C,N]=(0,s.useTransition)();(0,i.useHoldRefresh)(x);let D=d[e.key].bounds;function E(t){t&&(f(L(e)),y(R(h)),S({})),b(t)}function $(t,a){j(async()=>{try{let s=await u(e.key,t);if(!s.ok){S(s.fieldErrors??{}),n.c.error(s.error);return}a(s.message??""),b(!1)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}return(0,t.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,t.jsxs)(l.N,{open:x,onOpenChange:e=>{w||E(e)},children:[(0,t.jsx)(l.a,{render:(0,t.jsx)(r.K,{size:"sm",children:"Edit"})}),(0,t.jsxs)(l.d,{className:"max-h-[92vh] gap-0 overflow-y-auto p-0 sm:max-w-[620px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(l.F,{className:"text-base",children:["Edit ",e.key]}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:o})]})]}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),$({...g,templates:v},e=>n.c.success("Rule saved",{description:e}))},children:[(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,t.jsx)(r.O,{id:"rule-sev",label:"Severity",error:k.severity,children:(0,t.jsx)("select",{id:"rule-sev",className:r.S,value:g.severity,onChange:e=>f({...g,severity:e.target.value}),children:c.map(([e,a])=>(0,t.jsx)("option",{value:e,children:a},e))})}),D&&(0,t.jsx)(r.O,{id:"rule-num",label:"Threshold",help:`Replaces ${e.threshold?.toLocaleString("en-US")??"the number"} in the condition.`,error:k.threshold,children:(0,t.jsx)("input",{id:"rule-num",className:r.S,inputMode:"numeric",autoComplete:"off",value:g.threshold,onChange:e=>f({...g,threshold:e.target.value})})})]}),(0,t.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Send to"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:M.map(([e,a])=>(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:g.channels.includes(e),onChange:t=>{let a;return a=t.target.checked,f({...g,channels:a?[...g.channels,e]:g.channels.filter(t=>t!==e)})}}),a]},e))}),(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:"Opens and resolves are sent once; a still-firing alert repeats every 6 hours unless silenced."}),k.channels&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:k.channels})]}),(0,t.jsxs)("label",{className:"mb-3.5 flex items-center gap-1.5 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:g.enabled,onChange:e=>f({...g,enabled:e.target.checked})}),"Rule is on"]}),(0,t.jsx)(T,{ruleKey:e.key,severity:g.severity,threshold:g.threshold,sample:m,texts:v,onChange:y,errors:k})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(r.K,{className:"mr-auto",disabled:w||C||!g.channels.some(e=>"email_digest"!==e),onClick:function(){N(async()=>{try{let t=await p(e.key,{...g,templates:v});S(t.ok?{}:t.fieldErrors??{}),t.ok?n.c.success("Test sent",{description:t.message}):n.c.error(t.error)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},title:"Sends this message, as a made-up alert, to the ticked channels (not the daily digest)",children:C?"Sending…":"Send test"}),(0,t.jsx)(r.K,{onClick:()=>E(!1),disabled:w,children:"Cancel"}),(0,t.jsx)(r.K,{type:"submit",variant:"primary",disabled:w,children:w?"Saving…":"Save rule"})]})]})]})]}),(0,t.jsx)(r.K,{size:"sm",disabled:w,onClick:()=>$({...L(e),enabled:!e.enabled},t=>e.enabled?n.c.success(`${e.key} disabled. It won't fire until you enable it again.`):n.c.success(`${e.key} enabled.`,{description:t})),children:e.enabled?"Disable":"Enable"})]})}],689721)},582429,e=>{var t=e.i(843476),a=e.i(271645),s=e.i(846696),n=e.i(428325),r=e.i(684496),i=e.i(95187);let l=(0,i.createServerReference)("00e0de83cc18ec8156d86a1654a38d4036b4a490af",i.callServer,void 0,i.findSourceMapURL,"approvalsStatus"),o=(0,i.createServerReference)("0045a72950083821e1e2374c5248fa4f22a6d2fd74",i.callServer,void 0,i.findSourceMapURL,"disableApprovals"),d=(0,i.createServerReference)("00958f9dc6d453492285a10eb43db391b7949ad3a0",i.callServer,void 0,i.findSourceMapURL,"enableApprovals"),c=(0,i.createServerReference)("000dd3e25ca3857b707990511976433abebd06bb8f",i.callServer,void 0,i.findSourceMapURL,"telegramLinkCode");e.s(["TelegramApprovals",0,function(){let[e,i]=(0,a.useState)(null),[h,u]=(0,a.useState)(null),[p,m]=(0,a.useState)(null),[x,b]=(0,a.useTransition)();function g(e,t){b(async()=>{try{let a=await e();if(!a.ok)return void s.c.error(a.error??"Watchbell didn't answer. Check that it's still running, then try again.");a.data&&i(a.data),t?.(),a.message&&s.c.success("Approval buttons",{description:a.message})}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})}(0,a.useEffect)(()=>{let e=!0;return l().then(t=>{e&&(t.ok&&t.data?i(t.data):u(t.ok?null:t.error))}).catch(()=>e&&u("Couldn't read the status.")),()=>{e=!1}},[]);let f=e?e.on?e.linked?"On · linked to your Telegram account":"On · not linked yet":"Off":h??"Checking…",v=p?(0,r.U)(new Date(p.expiresAt)):"";return(0,t.jsxs)("div",{className:"mt-1 basis-full rounded-md border border-line px-3 py-2 text-[13px]",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium",children:"Approval buttons"}),(0,t.jsx)("span",{className:"text-ink-soft",children:f}),(0,t.jsxs)("span",{className:"ml-auto inline-flex flex-wrap gap-2",children:[e&&!e.on&&(0,t.jsx)(n.K,{size:"sm",disabled:x,onClick:()=>g(d),children:x?"Working…":"Turn on"}),e?.on&&(0,t.jsx)(n.K,{size:"sm",disabled:x,onClick:function(){b(async()=>{try{let e=await c();e.ok&&e.data?m(e.data):s.c.error(e.ok?"Watchbell didn't answer. Check that it's still running, then try again.":e.error)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:e.linked?"Link again":"Show link code"}),e?.on&&(0,t.jsx)(n.K,{size:"sm",variant:"ghost",disabled:x,onClick:()=>g(o,()=>m(null)),children:"Turn off"})]})]}),(0,t.jsx)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:"Proposal notices get ✅ Approve / ❌ Reject buttons that only your linked Telegram account can use; risky actions ask twice. While this is on, Telegram sends updates to the console instead of holding them, so Find chats lists the chats the bot has seen since then."}),e?.problem&&(0,t.jsx)("p",{className:"mt-1 text-[12.5px] text-err",children:e.problem}),p&&(0,t.jsxs)("p",{className:"mt-1 text-[12.5px]",children:["Send ",(0,t.jsxs)("code",{className:"rounded bg-sunken px-1 font-mono",children:["/link ",p.code]})," in the connected chat before ",v,". The code works once."]})]})}],582429)}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,77656,e=>{let t=(0,e.i(33550).f)("outline","send","Send",[["path",{d:"M10 14l11 -11",key:"svg-0"}],["path",{d:"M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5",key:"svg-1"}]]);e.s(["f",0,t],77656)},798101,e=>{var t=e.i(843476),a=e.i(77656),s=e.i(271645),l=e.i(846696),n=e.i(428325),i=e.i(944971),r=e.i(975157),d=e.i(
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,77656,e=>{let t=(0,e.i(33550).f)("outline","send","Send",[["path",{d:"M10 14l11 -11",key:"svg-0"}],["path",{d:"M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5",key:"svg-1"}]]);e.s(["f",0,t],77656)},798101,e=>{var t=e.i(843476),a=e.i(77656),s=e.i(271645),l=e.i(846696),n=e.i(428325),i=e.i(944971),r=e.i(975157),d=e.i(538873),o=e.i(664554);e.s(["AskForm",0,function({models:e=[],defaultLabel:c="your provider"}){let[x,h]=(0,s.useState)(""),[m,p]=(0,s.useState)(""),[u,f]=(0,s.useState)(null),[v,b]=(0,s.useTransition)(),k=()=>{x.trim()&&!v&&(f(null),b(async()=>{try{let e=await (0,d.f)(x,m||null);e.ok?(h(""),l.c.success(e.message??"Sent.")):f(e.error)}catch{f("Watchbell didn't answer. Check that it's still running, then try again.")}}))};return(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),k()},children:[(0,t.jsx)("label",{htmlFor:"ask-in",className:"mb-1.5 block font-medium",children:"Ask about your apps, alerts, deployments or databases"}),(0,t.jsx)("textarea",{id:"ask-in",className:(0,r.f)(n.S,"min-h-22 w-full"),placeholder:"For example: which apps need attention before the weekend?",value:x,maxLength:2e3,"aria-describedby":"ask-hint ask-count","aria-invalid":!!u||void 0,onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),k())}}),u&&(0,t.jsx)("p",{role:"alert",className:"mt-1.5 text-[13px] text-err",children:u}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3",children:[(0,t.jsx)("span",{id:"ask-hint",className:"min-w-[220px] flex-1 text-[12.5px] text-ink-faint",children:v?(0,t.jsx)(o.f,{}):i.I.hint}),(0,t.jsxs)("span",{id:"ask-count",className:"font-mono text-[12px] text-ink-faint","aria-live":"off",children:[x.length," / ",2e3]}),e.length>0&&(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,t.jsx)("span",{className:"sr-only",children:"Model"}),(0,t.jsxs)("select",{className:(0,r.f)(n.S,"max-w-[260px] py-1 font-mono text-[12.5px]"),value:m,onChange:e=>p(e.target.value),disabled:v,children:[(0,t.jsxs)("option",{value:"",children:["Default (",c,")"]}),e.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))]})]}),(0,t.jsxs)(n.K,{type:"submit",variant:"primary",disabled:v||!x.trim(),children:[(0,t.jsx)(a.f,{size:16,"aria-hidden":!0}),v?"Asking…":"Send"]})]})]})}])},538873,e=>{var t=e.i(95187);let a=(0,t.createServerReference)("60d8e6f43ee602bd831e7e8e22d7eb07d73db1500d",t.callServer,void 0,t.findSourceMapURL,"askGeneral");e.s(["f",0,a])}])})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,77656,e=>{let t=(0,e.i(33550).f)("outline","send","Send",[["path",{d:"M10 14l11 -11",key:"svg-0"}],["path",{d:"M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5",key:"svg-1"}]]);e.s(["f",0,t],77656)},962942,e=>{var t=e.i(843476),a=e.i(513932),s=e.i(77656),n=e.i(271645),l=e.i(428325),r=e.i(944971),i=e.i(975157),o=e.i(
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,77656,e=>{let t=(0,e.i(33550).f)("outline","send","Send",[["path",{d:"M10 14l11 -11",key:"svg-0"}],["path",{d:"M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5",key:"svg-1"}]]);e.s(["f",0,t],77656)},962942,e=>{var t=e.i(843476),a=e.i(513932),s=e.i(77656),n=e.i(271645),l=e.i(428325),r=e.i(944971),i=e.i(975157),o=e.i(538873),d=e.i(95187);let c=(0,d.createServerReference)("4021997fbaae33ab6279fcd7830f9da09b9e3e5ce0",d.callServer,void 0,d.findSourceMapURL,"questionStatus");var u=e.i(562556);e.i(684496);let h=r.T.hint,m=(e,t)=>{let a=e.replace(/\s+/g," ").trim();return a.length>t?`${a.slice(0,t-1)}…`:a},p=(0,d.createServerReference)("402abfb28e6a6373772b01b7294178c5aa7010befc",d.callServer,void 0,d.findSourceMapURL,"playgroundSend");e.s(["PlaygroundView",0,function({models:e,defaultModel:d}){let[x,f]=(0,n.useState)(e.some(e=>e.id===d)?d:e[0]?.id??""),[g,v]=(0,n.useState)("plain"),[b,j]=(0,n.useState)("0.4"),[y,k]=(0,n.useState)("1024"),[S,w]=(0,n.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[N,T]=(0,n.useState)(""),[A,M]=(0,n.useState)([]),[$,C]=(0,n.useState)(null),[R,L]=(0,n.useState)(null),[U,q]=(0,n.useState)(0),[I,D]=(0,n.useTransition)(),K=(0,n.useRef)(null),O="antigravity"===(e.find(e=>e.id===x)?.via??"provider"),P=I||null!==R,W=e.filter(e=>"provider"===e.via),E=e.filter(e=>"antigravity"===e.via);(0,n.useEffect)(()=>{K.current?.scrollTo({top:K.current.scrollHeight})},[A,I,R]),(0,n.useEffect)(()=>{if(!R)return;let e=!1,t=!1,a=t=>{!e&&(L(null),t&&C(t))},s=setInterval(()=>q(Date.now()),1e3),n=setInterval(async()=>{if(!t&&!e){if(Date.now()-R.startedAt>6e5)return a(r.T.giveUp);t=!0;try{let t=await c(R.id);if(e)return;if(!t.ok)return a(t.error);let s=t.data;if(s?.status==="answered"){let e=Math.max(1,Math.round((Date.now()-R.startedAt)/1e3));M(t=>[...t,{role:"assistant",content:s.answer?.trim()||r.T.emptyAnswer,md:!0,meta:r.T.answerMeta(s.model??R.model,e)}]),a(null)}else s?.status==="expired"&&a(r.T.expired)}catch{}finally{t=!1}}},3e3);return()=>{e=!0,clearInterval(s),clearInterval(n)}},[R]);let z=()=>{let e=N.trim();if(!e||P||!x)return;let t=[...A,{role:"user",content:e}];if(M(t),T(""),C(null),O){let t;t=function(e,t,a=2e3){let s=t.trim(),n=e.slice(-4).map(e=>`Q: ${m(e.q,300)}
|
|
2
2
|
A: ${m(e.a,600)}`);for(;n.length>0;){let e=`Earlier in this chat:
|
|
3
3
|
${n.join("\n")}
|
|
4
4
|
|
|
5
|
-
Now: ${s}`;if(e.length<=a)return e;n=n.slice(1)}return s}(function(e){let t=[];for(let a=0;a+1<e.length;a++)"user"===e[a].role&&"assistant"===e[a+1].role&&(t.push({q:e[a].content,a:e[a+1].content}),a++);return t}(A),e),D(async()=>{try{let e=await (0,o.f)(t,x);if(e.ok&&e.data){let t=Date.now();q(t),L({id:e.data.id,model:x,startedAt:t})}else C(e.ok?r.T.notTaken:e.error)}catch{C("Watchbell didn't answer. Check that it's still running, then try again.")}})}else D(async()=>{try{let e=await p({model:x,mode:g,temperature:Number(b),maxTokens:Number(y),system:S,messages:t.map(({role:e,content:t})=>({role:e,content:t}))});if(e.ok&&e.data){let t=e.data;M(e=>{let a,s,n;return[...e,{role:"assistant",content:t.text,meta:`${t.model} \xb7 ${(s=t.tokensIn,n=t.tokensOut,null===s&&null===n?"—":`${null===s?"—":s.toLocaleString("en-US")} / ${null===n?"—":n.toLocaleString("en-US")}`)} \xb7 ${(a=t.ms)<1e3?`${Math.round(a)} ms`:`${(a/1e3).toFixed(1)} s`}${t.grounded?" · grounded on the console snapshot":""}`}]})}else C(e.ok?"No answer.":e.error)}catch{C("Watchbell didn't answer. Check that it's still running, then try again.")}})},B=R?Math.max(0,Math.round((U-R.startedAt)/1e3)):0;return(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)]",children:[(0,t.jsxs)(l.N,{title:"Chat",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pb-3",children:[(0,t.jsx)("select",{className:(0,i.f)(l.S,"w-auto max-w-full"),"aria-label":"Model",value:x,onChange:e=>f(e.target.value),disabled:P,children:W.length>0&&E.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("optgroup",{label:"Real-time (provider)",children:W.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,t.jsx)("optgroup",{label:`${r.T.groupLabel} \xb7 ${h}`,children:E.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))})]}):e.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),O?(0,t.jsx)("span",{className:"font-mono text-[12px] text-ink-faint",children:h}):(0,t.jsxs)("select",{className:(0,i.f)(l.S,"w-auto"),"aria-label":"Mode",value:g,onChange:e=>v("plain"===e.target.value?"plain":"console"),children:[(0,t.jsx)("option",{value:"plain",children:"Plain model"}),(0,t.jsx)("option",{value:"console",children:"Ask the console (uses read:status data)"})]}),(0,t.jsx)(l.K,{size:"sm",variant:"ghost",onClick:()=>{M([]),C(null),L(null)},disabled:0===A.length&&!$,children:"Clear"}),(0,t.jsx)("span",{className:"ml-auto text-[12.5px] text-ink-soft",children:O?"Also on AI › Ask":"Not stored"})]}),(0,t.jsxs)("div",{ref:K,className:"flex max-h-[460px] min-h-[260px] flex-col gap-3 overflow-auto p-0.5","aria-live":"polite",children:[0===A.length&&(0,t.jsx)("p",{className:"m-auto text-[13px] text-ink-faint",children:"Ask about your apps, or anything."}),A.map((e,a)=>(0,t.jsxs)("div",{className:(0,i.f)("max-w-[84%] rounded-lg border px-3 py-2","user"===e.role?"self-end border-transparent bg-brand-soft":"border-line bg-surface"),children:[e.md?(0,t.jsx)("div",{className:"break-words",children:(0,t.jsx)(u.f,{source:e.content})}):(0,t.jsx)("p",{className:"m-0 whitespace-pre-wrap break-words",children:e.content}),e.meta&&(0,t.jsx)("span",{className:"mt-1 block font-mono text-[11.5px] text-ink-faint",children:e.meta})]},a)),I&&!R&&(0,t.jsx)("div",{className:"self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:O?r.T.sending:"Thinking..."}),R&&(0,t.jsxs)("div",{className:"inline-flex items-center gap-1.5 self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:[(0,t.jsx)(a.f,{size:14,className:"animate-spin","aria-hidden":!0}),r.T.thinking," ",(0,t.jsxs)("span",{className:"font-mono text-[12px] text-ink-faint","aria-hidden":!0,children:[B," s"]})]})]}),$&&(0,t.jsx)("p",{className:"mt-2 text-[13px] text-err",role:"alert",children:$}),(0,t.jsxs)("div",{className:"mt-3 flex items-end gap-2",children:[(0,t.jsx)("textarea",{className:(0,i.f)(l.S,"min-h-11 flex-1"),placeholder:"Ask about your apps, or anything","aria-label":"Message",value:N,maxLength:O?2e3:8e3,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),z())}}),(0,t.jsxs)(l.K,{variant:"primary",onClick:z,disabled:P||!N.trim()||!x,children:[(0,t.jsx)(s.f,{size:16,"aria-hidden":!0}),"Send"]})]})]}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,t.jsxs)(l.N,{title:"Settings",meta:O?"Provider models only":void 0,children:[(0,t.jsx)(l.O,{id:"pg-temp",label:"Temperature",children:(0,t.jsx)("input",{id:"pg-temp",className:(0,i.f)(l.S,"font-mono"),inputMode:"decimal",value:b,disabled:O,onChange:e=>j(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-max",label:"Max output tokens",children:(0,t.jsx)("input",{id:"pg-max",className:(0,i.f)(l.S,"font-mono"),inputMode:"numeric",value:y,disabled:O,onChange:e=>k(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-sys",label:"System prompt",children:(0,t.jsx)("textarea",{id:"pg-sys",className:(0,i.f)(l.S,"min-h-24"),value:S,maxLength:4e3,disabled:O,onChange:e=>w(e.target.value)})})]}),O?(0,t.jsx)(l.N,{title:r.T.howTitle,children:(0,t.jsxs)("p",{className:"m-0 text-[13px] text-ink-soft",children:[r.T.howBody," ","The last ",4," turns of this chat go in front of the question (up to 2,000 characters). The question and answer are kept 7 days and show on AI › Ask."]})}):(0,t.jsx)(l.N,{title:"What's sent in console mode",children:(0,t.jsx)("p",{className:"m-0 text-[13px] text-ink-soft",children:"A compact summary of /api/v1/status: app names and states, monitor results, open alerts, Why problems. Databases as aliases, no URLs, emails, IPs or tokens. Sent to the chosen provider with your question; not stored by Watchbell. Messages count toward the provider's quota."})})]})]})}],962942)},
|
|
5
|
+
Now: ${s}`;if(e.length<=a)return e;n=n.slice(1)}return s}(function(e){let t=[];for(let a=0;a+1<e.length;a++)"user"===e[a].role&&"assistant"===e[a+1].role&&(t.push({q:e[a].content,a:e[a+1].content}),a++);return t}(A),e),D(async()=>{try{let e=await (0,o.f)(t,x);if(e.ok&&e.data){let t=Date.now();q(t),L({id:e.data.id,model:x,startedAt:t})}else C(e.ok?r.T.notTaken:e.error)}catch{C("Watchbell didn't answer. Check that it's still running, then try again.")}})}else D(async()=>{try{let e=await p({model:x,mode:g,temperature:Number(b),maxTokens:Number(y),system:S,messages:t.map(({role:e,content:t})=>({role:e,content:t}))});if(e.ok&&e.data){let t=e.data;M(e=>{let a,s,n;return[...e,{role:"assistant",content:t.text,meta:`${t.model} \xb7 ${(s=t.tokensIn,n=t.tokensOut,null===s&&null===n?"—":`${null===s?"—":s.toLocaleString("en-US")} / ${null===n?"—":n.toLocaleString("en-US")}`)} \xb7 ${(a=t.ms)<1e3?`${Math.round(a)} ms`:`${(a/1e3).toFixed(1)} s`}${t.grounded?" · grounded on the console snapshot":""}`}]})}else C(e.ok?"No answer.":e.error)}catch{C("Watchbell didn't answer. Check that it's still running, then try again.")}})},B=R?Math.max(0,Math.round((U-R.startedAt)/1e3)):0;return(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)]",children:[(0,t.jsxs)(l.N,{title:"Chat",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pb-3",children:[(0,t.jsx)("select",{className:(0,i.f)(l.S,"w-auto max-w-full"),"aria-label":"Model",value:x,onChange:e=>f(e.target.value),disabled:P,children:W.length>0&&E.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("optgroup",{label:"Real-time (provider)",children:W.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,t.jsx)("optgroup",{label:`${r.T.groupLabel} \xb7 ${h}`,children:E.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))})]}):e.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),O?(0,t.jsx)("span",{className:"font-mono text-[12px] text-ink-faint",children:h}):(0,t.jsxs)("select",{className:(0,i.f)(l.S,"w-auto"),"aria-label":"Mode",value:g,onChange:e=>v("plain"===e.target.value?"plain":"console"),children:[(0,t.jsx)("option",{value:"plain",children:"Plain model"}),(0,t.jsx)("option",{value:"console",children:"Ask the console (uses read:status data)"})]}),(0,t.jsx)(l.K,{size:"sm",variant:"ghost",onClick:()=>{M([]),C(null),L(null)},disabled:0===A.length&&!$,children:"Clear"}),(0,t.jsx)("span",{className:"ml-auto text-[12.5px] text-ink-soft",children:O?"Also on AI › Ask":"Not stored"})]}),(0,t.jsxs)("div",{ref:K,className:"flex max-h-[460px] min-h-[260px] flex-col gap-3 overflow-auto p-0.5","aria-live":"polite",children:[0===A.length&&(0,t.jsx)("p",{className:"m-auto text-[13px] text-ink-faint",children:"Ask about your apps, or anything."}),A.map((e,a)=>(0,t.jsxs)("div",{className:(0,i.f)("max-w-[84%] rounded-lg border px-3 py-2","user"===e.role?"self-end border-transparent bg-brand-soft":"border-line bg-surface"),children:[e.md?(0,t.jsx)("div",{className:"break-words",children:(0,t.jsx)(u.f,{source:e.content})}):(0,t.jsx)("p",{className:"m-0 whitespace-pre-wrap break-words",children:e.content}),e.meta&&(0,t.jsx)("span",{className:"mt-1 block font-mono text-[11.5px] text-ink-faint",children:e.meta})]},a)),I&&!R&&(0,t.jsx)("div",{className:"self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:O?r.T.sending:"Thinking..."}),R&&(0,t.jsxs)("div",{className:"inline-flex items-center gap-1.5 self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:[(0,t.jsx)(a.f,{size:14,className:"animate-spin","aria-hidden":!0}),r.T.thinking," ",(0,t.jsxs)("span",{className:"font-mono text-[12px] text-ink-faint","aria-hidden":!0,children:[B," s"]})]})]}),$&&(0,t.jsx)("p",{className:"mt-2 text-[13px] text-err",role:"alert",children:$}),(0,t.jsxs)("div",{className:"mt-3 flex items-end gap-2",children:[(0,t.jsx)("textarea",{className:(0,i.f)(l.S,"min-h-11 flex-1"),placeholder:"Ask about your apps, or anything","aria-label":"Message",value:N,maxLength:O?2e3:8e3,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),z())}}),(0,t.jsxs)(l.K,{variant:"primary",onClick:z,disabled:P||!N.trim()||!x,children:[(0,t.jsx)(s.f,{size:16,"aria-hidden":!0}),"Send"]})]})]}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,t.jsxs)(l.N,{title:"Settings",meta:O?"Provider models only":void 0,children:[(0,t.jsx)(l.O,{id:"pg-temp",label:"Temperature",children:(0,t.jsx)("input",{id:"pg-temp",className:(0,i.f)(l.S,"font-mono"),inputMode:"decimal",value:b,disabled:O,onChange:e=>j(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-max",label:"Max output tokens",children:(0,t.jsx)("input",{id:"pg-max",className:(0,i.f)(l.S,"font-mono"),inputMode:"numeric",value:y,disabled:O,onChange:e=>k(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-sys",label:"System prompt",children:(0,t.jsx)("textarea",{id:"pg-sys",className:(0,i.f)(l.S,"min-h-24"),value:S,maxLength:4e3,disabled:O,onChange:e=>w(e.target.value)})})]}),O?(0,t.jsx)(l.N,{title:r.T.howTitle,children:(0,t.jsxs)("p",{className:"m-0 text-[13px] text-ink-soft",children:[r.T.howBody," ","The last ",4," turns of this chat go in front of the question (up to 2,000 characters). The question and answer are kept 7 days and show on AI › Ask."]})}):(0,t.jsx)(l.N,{title:"What's sent in console mode",children:(0,t.jsx)("p",{className:"m-0 text-[13px] text-ink-soft",children:"A compact summary of /api/v1/status: app names and states, monitor results, open alerts, Why problems. Databases as aliases, no URLs, emails, IPs or tokens. Sent to the chosen provider with your question; not stored by Watchbell. Messages count toward the provider's quota."})})]})]})}],962942)},538873,e=>{var t=e.i(95187);let a=(0,t.createServerReference)("60d8e6f43ee602bd831e7e8e22d7eb07d73db1500d",t.callServer,void 0,t.findSourceMapURL,"askGeneral");e.s(["f",0,a])}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871056,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(846696),n=e.i(54131),r=e.i(46200),i=e.i(799589),l=e.i(177106),o=e.i(856033),c=e.i(490557),d=e.i(718222),p=e.i(427806),x=e.i(41680),h=e.i(95187);let m=(0,h.createServerReference)("4026a4627545dbf3702c6cc6b5b713925010e3fcd8",h.callServer,void 0,h.findSourceMapURL,"removeAppFromConsole");var u=e.i(651626);e.s(["AppActions",0,function({app:e,owner:d,current:h,previous:f,rolledBack:b=!1}){let[g,j]=(0,t.useState)(!1),k=(0,n.useMask)(),[,v]=(0,t.useTransition)(),w=(0,u.f)(),N=(0,i.W)(),y=k("app",e.name),C=[b?{label:"Redeploy",disabled:"Promote one first"}:h?{label:"Redeploy",onSelect:()=>N.open({...(0,o.f)("Redeploy",y,h.sha),run:()=>(0,p.f)(e.id,h.id)})}:{label:"Redeploy",disabled:"No current production deployment"},f?{label:"Roll back",onSelect:()=>N.open({...(0,o.f)("Roll back",y,f.sha),run:()=>(0,x.f)(e.id,f.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[]];return e.monitorCount>0&&C.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(s=>v(async()=>{try{let s=await (0,c.f)(e.id,!e.paused);s.ok?a.c.success(s.message??""):a.c.error(s.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{s()}})))}),d&&C.push("---",{label:"Remove from console",danger:!0,onSelect:()=>j(!0)}),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.RowMenu,{button:!0,items:C}),N.dialog,d&&(0,s.jsx)(r.f,{open:g,onOpenChange:j,title:`Remove ${k("app",e.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let s=await m(e.id);return{ok:s.ok,message:(s.ok?s.message:s.error)??""}}})]})},"PromoteStaged",0,function({app:e,staged:t}){let a=(0,n.useMask)();return(0,s.jsx)(i.p,{label:"Promote",...(0,o.f)("Promote",a("app",e.name),t.sha),run:()=>(0,d.f)(e.id,t.id)})}],871056)},980743,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(778085),n=e.i(428325),r=e.i(220806),i=e.i(975157),l=e.i(95187);let o=(0,l.createServerReference)("4021484f7cc074a2bd37b5728ec556e67d9d07b171",l.callServer,void 0,l.findSourceMapURL,"buildFilesAction"),c=(0,l.createServerReference)("40b6a9f6ca14730a67a6c2c2deb4d1dff6cc789845",l.callServer,void 0,l.findSourceMapURL,"buildFilesPrAction"),d={nextjs:"Next.js",vite:"Vite",cra:"Create React App",node:"Node"},p=e=>e.split("/").pop()??e,x="Watchbell didn't answer. Check that it's still running, then try again.";e.s(["BuildFilesCard",0,function({appId:e,owner:l,demo:h=!1}){let m,u,[f,b]=(0,t.useState)(null),[g,j]=(0,t.useState)(0),[k,v]=(0,t.useState)(null),[w,N]=(0,t.useState)(null),[y,C]=(0,t.useTransition)(),[S,R]=(0,t.useTransition)(),$=f?.files[g]??null,T=f&&(m=f.facts.guessed).length?`Guessed: ${m.join(", ")}. Check them before using the files.`:null;return(0,s.jsx)(n.N,{title:"Build files",meta:(0,s.jsx)(n.K,{size:"sm",onClick:()=>C(async()=>{try{let s=await o(e);s.ok&&s.data?(b(s.data),j(0),v(null),N(null)):v(s.ok?"No answer.":s.error)}catch{v(x)}}),disabled:y,children:y?"Generating…":f?"Generate again":"Generate"}),flush:!0,children:(0,s.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[k&&(0,s.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:k})]}),f?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dt]:text-ink-soft",children:[(0,s.jsx)("dt",{children:"Framework"}),(0,s.jsxs)("dd",{children:[d[f.facts.kind],"nextjs"===f.facts.kind&&f.facts.standalone?" (standalone output)":""]}),(0,s.jsx)("dt",{children:"Package manager, Node"}),(0,s.jsxs)("dd",{children:[f.facts.pm,", Node ",f.facts.node]}),(0,s.jsx)("dt",{children:"Folder"}),(0,s.jsx)("dd",{className:"font-mono text-[12.5px]",children:f.facts.dir}),(0,s.jsx)("dt",{children:"Env names"}),(0,s.jsx)("dd",{children:f.facts.envNames.length})]}),T&&(0,s.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:T})]}),(0,s.jsx)("div",{role:"tablist","aria-label":"Build files",className:"mt-3 inline-flex flex-wrap overflow-hidden rounded-md border border-line-strong",children:f.files.map((e,t)=>(0,s.jsx)("button",{type:"button",role:"tab","aria-selected":g===t,onClick:()=>j(t),className:(0,i.f)("px-2.5 py-1 text-[13px] hover:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",g===t?"bg-brand-soft font-medium text-brand":"bg-surface text-ink-soft"),children:p(e.path)},e.path))}),$&&(0,s.jsxs)("div",{className:"mt-2",children:[(0,s.jsxs)("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-[12.5px] text-ink-soft",children:$.path}),(0,s.jsx)(a.CopyButton,{text:$.text})]}),$.note&&(0,s.jsx)("p",{className:"mb-1.5 text-[12.5px] text-ink-soft",children:$.note}),(0,s.jsx)("pre",{className:"max-h-[360px] overflow-auto rounded-md bg-code-bg p-3 font-mono text-[12px] leading-relaxed text-code-text",children:$.text})]}),l&&f.repo&&(0,s.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,s.jsx)(n.K,{size:"sm",onClick:()=>R(async()=>{try{let s=await c(e);s.ok&&s.data?(N(s.data),v(null)):v(s.ok?"No answer.":s.error)}catch{v(x)}}),disabled:h||S||!!w,children:S?"Opening…":"Open pull request"}),w?(0,s.jsxs)("span",{children:[(0,s.jsxs)("a",{href:w.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["Pull request #",w.number]})," opened",w.skipped.length?(0,s.jsxs)("span",{className:"text-ink-soft",children:[" · left alone (already there): ",w.skipped.map(p).join(", ")]}):null]}):(0,s.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:(u=f.repo,h?"Pull requests are off in the demo.":`On a new branch of ${u}; files it already has are never overwritten.`)})]})]}):(0,s.jsx)("p",{className:"text-ink-soft",children:"Not generated yet. Generate writes a Dockerfile, docker-compose.yml, a GitHub Actions CI workflow and a Kubernetes manifest from this app's settings. Env names only, never values; nothing is built or deployed."})]})})}],980743)},464045,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(428325),n=e.i(39626),r=e.i(220806),i=e.i(684496),l=e.i(95187);let o=(0,l.createServerReference)("40c229d2a5f84a153a532bc84c55b5590c7503b7c0",l.callServer,void 0,l.findSourceMapURL,"envCheckAction"),c={"missing-production":e=>`${e} is in .env.example but not set for Production`,"preview-only":e=>`${e} is set for Preview or Development only`,"public-secret":e=>`${e} is sent to the browser (NEXT_PUBLIC_) but its name looks secret`,"not-in-example":e=>`${e} is set for Production but not listed in .env.example`},d={none:"No .env.example in the repository, so only Vercel's own settings were checked.","no-repo":"Link a repository to compare with its .env.example.","no-github":"GitHub isn't connected, or its token can't be read, so .env.example wasn't compared.",unreadable:"The repository's .env.example couldn't be read."};e.s(["EnvCard",0,function({appId:e}){let[l,p]=(0,t.useState)(null),[x,h]=(0,t.useState)(null),[m,u]=(0,t.useTransition)();return(0,s.jsx)(a.N,{title:"Environment",meta:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.Src,{kind:"api",children:"Vercel"}),(0,s.jsx)(a.K,{size:"sm",onClick:()=>u(async()=>{try{let s=await o(e);s.ok&&s.data?(p(s.data),h(null)):h(s.ok?"No answer.":s.error)}catch{h("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:m,children:m?"Checking…":"Check now"})]}),flush:!0,children:(0,s.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[x&&(0,s.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:x})]}),l?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dt]:text-ink-soft",children:[(0,s.jsx)("dt",{children:"Variables on Vercel"}),(0,s.jsx)("dd",{children:l.names}),(0,s.jsx)("dt",{children:"Compared with"}),(0,s.jsx)("dd",{children:"found"===l.example?(0,s.jsx)("span",{className:"font-mono text-[12.5px]",children:l.examplePath}):(0,s.jsx)("span",{className:"text-ink-soft",children:d[l.example]})}),(0,s.jsx)("dt",{children:"Checked"}),(0,s.jsx)("dd",{children:(0,i.$)(new Date(l.checkedAt),new Date)})]}),0===l.findings.length?(0,s.jsxs)("p",{className:"mt-3 inline-flex items-center gap-1.5",children:[(0,s.jsx)(r.Z,{state:"ok"}),"No findings"]}):(0,s.jsx)("ul",{className:"mt-3 flex flex-col gap-1.5",children:l.findings.map(e=>(0,s.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:c[e.kind](e.key)})]},`${e.kind}:${e.key}`))})]}):(0,s.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. Check now compares the variable names set on Vercel with .env.example in the repository. Values are never read."})]})})}],464045)},701723,e=>{var s=e.i(843476);let t=(0,e.i(33550).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var a=e.i(271645),n=e.i(846696),r=e.i(54131),i=e.i(428325),l=e.i(500443),o=e.i(776639);let c={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},d={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function p(e){return e.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var x=e.i(95187);let h=(0,x.createServerReference)("6035454ab9bbfda8a4759fa9fc04075ad12b947b5f",x.callServer,void 0,x.findSourceMapURL,"saveDatabaseLink");e.s(["LinkDialog",0,function({app:e,options:x,current:m,suggested:u}){var f;let b,[g,j]=(0,a.useState)(!1),[k,v]=(0,a.useState)(m??""),[w,N]=(0,a.useTransition)(),y=(0,r.useMask)();return(0,l.useHoldRefresh)(g),(0,s.jsxs)(o.N,{open:g,onOpenChange:e=>{!w&&(j(e),e&&v(m??u??""))},children:[(0,s.jsx)(o.a,{className:(0,i.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,s.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(o.F,{className:"text-base",children:["Database for ",(0,s.jsx)(r.Masked,{kind:"app",real:e.name})]}),(0,s.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,s.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(f=e.name,b=p(f),x.map((e,s)=>({o:e,i:s,r:(e=>{if(e.id===u)return 0;if(e.id===m)return 1;let s=p(e.name);return b&&s===b?2:b.length>=4&&s.length>=4&&(b.includes(s)||s.includes(b))?3:4})(e)})).sort((e,s)=>e.r-s.r||e.i-s.i).map(e=>e.o)).map(e=>({id:e.id,name:e.name,sub:`${d[c[e.kind]]} \xb7 ${y("account",e.account)}`,where:[e.region,e.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,s.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:k===e.id,onChange:()=>v(e.id)}),(0,s.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,s.jsx)("span",{className:"block truncate",children:e.id?(0,s.jsx)(r.DbName,{id:e.id,name:e.name}):e.name}),(0,s.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:e.sub}),e.where&&(0,s.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:e.where,children:e.where})]}),e.id&&e.id===m&&(0,s.jsx)(i.E,{children:"Current"}),e.id&&e.id!==m&&e.id===u&&(0,s.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},e.id||"none"))}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(i.K,{onClick:()=>j(!1),disabled:w,children:"Cancel"}),(0,s.jsx)(i.K,{variant:"primary",disabled:w,onClick:function(){N(async()=>{try{let s=await h(e.id,k||null);if(!s.ok)return void n.c.error(s.error);n.c.success("Link saved",{description:s.message?y("text",s.message):void 0}),j(!1)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],701723)},648790,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(428325),n=e.i(39626),r=e.i(220806),i=e.i(684496),l=e.i(95187);let o=(0,l.createServerReference)("409fc8afda3ba6b6e582f37cf530923186b23bb31f",l.callServer,void 0,l.findSourceMapURL,"prChecksAction"),c={fix:{state:"err",label:"Fix before merging"},check:{state:"warn",label:"Check before merging"},ok:{state:"ok",label:"No new problems"}};e.s(["PullRequestsCard",0,function({appId:e}){let[l,d]=(0,t.useState)(null),[p,x]=(0,t.useState)(null),[h,m]=(0,t.useTransition)();return(0,s.jsx)(a.N,{title:"Pull requests",meta:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.Src,{kind:"api",children:"GitHub"}),(0,s.jsx)(a.K,{size:"sm",onClick:()=>m(async()=>{try{let s=await o(e);s.ok&&s.data?(d(s.data),x(null)):x(s.ok?"No answer.":s.error)}catch{x("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:h,children:h?"Checking…":"Check open pull requests"})]}),flush:!0,children:(0,s.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[p&&(0,s.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:p})]}),l?0===l.rows.length?(0,s.jsxs)("p",{className:"inline-flex items-center gap-1.5",children:[(0,s.jsx)(r.Z,{state:"ok"}),"No open pull requests in ",(0,s.jsx)("span",{className:"font-mono text-[12.5px]",children:l.repo})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("ul",{className:"flex flex-col gap-2",children:l.rows.map(e=>{var t;let a,n="unread"===e.state?{state:"unknown",label:"Couldn't read this pull request's comments"}:"none"!==e.state&&e.marker?"old"===e.state?{state:"unknown",label:"Checked an older commit"}:c[e.marker.verdict]:{state:"off",label:"Not checked — add the pre-deploy check to this repository"},i=e.marker&&"none"!==e.state?(t=e.marker.counts,a=["critical","high","moderate","low"].filter(e=>t[e]).map(e=>`${t[e]} ${e}`),t.secrets&&a.push(`${t.secrets} possible secret${1===t.secrets?"":"s"}`),t.env&&a.push(`${t.env} env name${1===t.env?"":"s"}`),a.join(", ")):"";return(0,s.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(r.Z,{state:n.state}),(0,s.jsxs)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:[e.url?(0,s.jsxs)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["#",e.number," ",e.title]}):(0,s.jsxs)(s.Fragment,{children:["#",e.number," ",e.title]}),e.draft&&(0,s.jsx)("span",{className:"text-ink-soft",children:" (draft)"}),(0,s.jsxs)("span",{className:"block text-ink-soft",children:[n.label,i?`: ${i}`:""]})]})]},e.number)})}),(0,s.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:[l.repo," · checked ",(0,i.$)(new Date(l.checkedAt),new Date)]})]}):(0,s.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. This reads the open pull requests and the Watchbell pre-deploy check's comment on each."})]})})}],648790)},822984,e=>{var s=e.i(843476),t=e.i(386770),a=e.i(518716),n=e.i(271645),r=e.i(846696),i=e.i(54131),l=e.i(428325),o=e.i(500443),c=e.i(776639),d=e.i(975157),p=e.i(95187);let x=(0,p.createServerReference)("603f9808866e119aa2471f4a6539c05b329bd56b46",p.callServer,void 0,p.findSourceMapURL,"linkRepo"),h=(0,p.createServerReference)("40a6adff8846bc99867ec4eca07ad0e38db3ce1dde",p.callServer,void 0,p.findSourceMapURL,"refreshRepoActions");e.s(["ConfirmRepo",0,function({appId:e,repoId:t,fullName:a}){let[o,c]=(0,n.useTransition)(),d=(0,i.useMask)();return(0,s.jsx)(l.K,{size:"sm",variant:"primary",disabled:o,onClick:()=>c(async()=>{let s=await x(e,t);s.ok?r.c.success(s.message?d("text",s.message):"Linked."):r.c.error(s.error)}),children:o?"Linking…":(0,s.jsxs)(s.Fragment,{children:["Link to ",(0,s.jsx)(i.Masked,{kind:"repo",real:a})]})})},"RefreshActionsButton",0,function({appId:e}){let[t,i]=(0,n.useTransition)();return(0,s.jsxs)(l.K,{size:"sm",disabled:t,onClick:()=>i(async()=>{let s=await h(e);s.ok?r.c.success(s.message??"Refreshed."):r.c.error(s.error)}),children:[(0,s.jsx)(a.f,{size:14,"aria-hidden":!0}),t?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:e,options:a,current:p,suggested:h,label:m}){let[u,f]=(0,n.useState)(!1),[b,g]=(0,n.useState)(p??""),[j,k]=(0,n.useState)(""),[v,w]=(0,n.useTransition)(),N=(0,i.useMask)();(0,o.useHoldRefresh)(u);let y=(0,n.useMemo)(()=>{let e=j.trim().toLowerCase(),s=a.filter(s=>!e||s.fullName.toLowerCase().includes(e)||N("repo",s.fullName).toLowerCase().includes(e)),t=[p,h].filter(e=>!!e);return[...s.filter(e=>t.includes(e.id)),...s.filter(e=>!t.includes(e.id))].slice(0,100)},[a,j,p,h,N]);return(0,s.jsxs)(c.N,{open:u,onOpenChange:e=>{!v&&(f(e),e&&(g(p??h??""),k("")))},children:[(0,s.jsx)(c.a,{className:(0,l.R)({size:"sm",variant:"ghost"}),children:m}),(0,s.jsxs)(c.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t.f,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(c.F,{className:"text-base",children:["Repository for ",(0,s.jsx)(i.Masked,{kind:"app",real:e.name})]}),(0,s.jsx)(c.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,s.jsx)("div",{className:"px-[18px] pb-2",children:(0,s.jsx)("input",{className:(0,d.f)(l.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:j,onChange:e=>k(e.target.value)})}),(0,s.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(e=>({id:e.id,name:e.fullName,archived:e.archived})),{id:"",name:"No repository",archived:!1}].map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,s.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:b===e.id,onChange:()=>g(e.id)}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:e.id?(0,s.jsx)(i.Masked,{kind:"repo",real:e.name}):(0,s.jsx)("span",{className:"font-sans text-[13.5px]",children:e.name})}),e.archived&&(0,s.jsx)(l.E,{children:"Archived"}),e.id&&e.id===p&&(0,s.jsx)(l.E,{children:"Current"}),e.id&&e.id!==p&&e.id===h&&(0,s.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},e.id||"none"))}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(l.K,{onClick:()=>f(!1),disabled:v,children:"Cancel"}),(0,s.jsx)(l.K,{variant:"primary",disabled:v||b===(p??""),onClick:function(){w(async()=>{try{let s=await x(e.id,b||null);if(!s.ok)return void r.c.error(s.error);r.c.success("Link saved",{description:s.message?N("text",s.message):void 0}),f(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],822984)},543990,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(846696),n=e.i(54131),r=e.i(428325),i=e.i(95187);let l=(0,i.createServerReference)("40e6f2fbdede9272095aacd991f3431dc8c8df650f",i.callServer,void 0,i.findSourceMapURL,"checkSecurity");e.s(["SecurityCheckButton",0,function({appId:e,appName:i}){let[o,c]=(0,t.useTransition)(),d=(0,t.useRef)(!1),p=(0,n.useMask)();return(0,s.jsx)(r.K,{size:"sm",onClick:()=>{if(d.current)return;d.current=!0;let s=a.c.loading(`Checking ${p("app",i)}. The result shows here in a few seconds.`);c(async()=>{try{let t=await l(e);t.ok?t.data?.passed===!1||t.data?.vulnerable?a.c.warning(t.message??"",{id:s}):a.c.success(t.message??"",{id:s}):a.c.error(t.error,{id:s})}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:s})}finally{d.current=!1}})},disabled:o,children:o?"Checking…":"Check now"})}],543990)},592283,e=>{var s=e.i(843476),t=e.i(522016),a=e.i(271645),n=e.i(54131),r=e.i(220806),i=e.i(776639),l=e.i(684496);e.i(70528);var o=e.i(452842);e.i(322534),e.s(["WhyStatus",0,function({state:e,label:c,problems:d,nowMs:p,aiSlot:x=null}){let[h,m]=(0,a.useState)(!1);if(!d.length||"warn"!==e&&"err"!==e)return(0,s.jsx)(r.F,{state:e,children:c});let u=new Date(p);return(0,s.jsxs)(i.N,{open:h,onOpenChange:m,children:[(0,s.jsxs)(i.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,s.jsx)(r.Z,{state:e}),(0,s.jsx)("span",{children:c})]}),(0,s.jsxs)(i.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,s.jsxs)(i.F,{className:"flex items-center gap-2 text-base",children:[(0,s.jsx)(r.Z,{state:e}),`Why ${o.X[e]}`]}),(0,s.jsx)(i.C,{className:"text-[13px] text-ink-soft",children:d.length>0&&d.every(e=>"monitor"===e.kind&&e.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===d.length?"One thing explains":`${d.length} things explain`} this status.`}),(0,s.jsx)("div",{className:"flex flex-col gap-4",children:d.map((e,a)=>(0,s.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,s.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,s.jsx)(r.Z,{state:e.state}),(0,s.jsx)(t.default,{href:e.href,onClick:()=>m(!1),children:(0,s.jsx)(n.MaskedText,{text:e.where})})]}),(0,s.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,s.jsx)(n.MaskedText,{text:e.reason}),e.since?(0,s.jsxs)(s.Fragment,{children:[" · since ",(0,l.$)(e.since,u)]}):null]}),(0,s.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,s.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:e.remedies.map(e=>(0,s.jsx)("li",{children:e},e))})]},`${e.where}-${a}`))}),x]})]})}],592283)}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871056,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(846696),n=e.i(54131),r=e.i(46200),i=e.i(799589),l=e.i(177106),o=e.i(856033),c=e.i(24667),d=e.i(243075),p=e.i(515234),x=e.i(828892),h=e.i(95187);let m=(0,h.createServerReference)("40859ba238f38bba5b4b90f7ac8d930d1a77b03af8",h.callServer,void 0,h.findSourceMapURL,"removeAppFromConsole");var u=e.i(651626);e.s(["AppActions",0,function({app:e,owner:d,current:h,previous:f,rolledBack:b=!1}){let[g,j]=(0,t.useState)(!1),k=(0,n.useMask)(),[,v]=(0,t.useTransition)(),w=(0,u.f)(),N=(0,i.W)(),y=k("app",e.name),C=[b?{label:"Redeploy",disabled:"Promote one first"}:h?{label:"Redeploy",onSelect:()=>N.open({...(0,o.f)("Redeploy",y,h.sha),run:()=>(0,p.f)(e.id,h.id)})}:{label:"Redeploy",disabled:"No current production deployment"},f?{label:"Roll back",onSelect:()=>N.open({...(0,o.f)("Roll back",y,f.sha),run:()=>(0,x.f)(e.id,f.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[]];return e.monitorCount>0&&C.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(s=>v(async()=>{try{let s=await (0,c.f)(e.id,!e.paused);s.ok?a.c.success(s.message??""):a.c.error(s.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{s()}})))}),d&&C.push("---",{label:"Remove from console",danger:!0,onSelect:()=>j(!0)}),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.RowMenu,{button:!0,items:C}),N.dialog,d&&(0,s.jsx)(r.f,{open:g,onOpenChange:j,title:`Remove ${k("app",e.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let s=await m(e.id);return{ok:s.ok,message:(s.ok?s.message:s.error)??""}}})]})},"PromoteStaged",0,function({app:e,staged:t}){let a=(0,n.useMask)();return(0,s.jsx)(i.p,{label:"Promote",...(0,o.f)("Promote",a("app",e.name),t.sha),run:()=>(0,d.f)(e.id,t.id)})}],871056)},980743,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(778085),n=e.i(428325),r=e.i(220806),i=e.i(975157),l=e.i(95187);let o=(0,l.createServerReference)("4022aa96f291bd9cf8e17afacf06f0cd91ed4df126",l.callServer,void 0,l.findSourceMapURL,"buildFilesAction"),c=(0,l.createServerReference)("4044bf5d2b0dea1e40c9f28802dfbac03cd80825e2",l.callServer,void 0,l.findSourceMapURL,"buildFilesPrAction"),d={nextjs:"Next.js",vite:"Vite",cra:"Create React App",node:"Node"},p=e=>e.split("/").pop()??e,x="Watchbell didn't answer. Check that it's still running, then try again.";e.s(["BuildFilesCard",0,function({appId:e,owner:l,demo:h=!1}){let m,u,[f,b]=(0,t.useState)(null),[g,j]=(0,t.useState)(0),[k,v]=(0,t.useState)(null),[w,N]=(0,t.useState)(null),[y,C]=(0,t.useTransition)(),[S,R]=(0,t.useTransition)(),$=f?.files[g]??null,T=f&&(m=f.facts.guessed).length?`Guessed: ${m.join(", ")}. Check them before using the files.`:null;return(0,s.jsx)(n.N,{title:"Build files",meta:(0,s.jsx)(n.K,{size:"sm",onClick:()=>C(async()=>{try{let s=await o(e);s.ok&&s.data?(b(s.data),j(0),v(null),N(null)):v(s.ok?"No answer.":s.error)}catch{v(x)}}),disabled:y,children:y?"Generating…":f?"Generate again":"Generate"}),flush:!0,children:(0,s.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[k&&(0,s.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:k})]}),f?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dt]:text-ink-soft",children:[(0,s.jsx)("dt",{children:"Framework"}),(0,s.jsxs)("dd",{children:[d[f.facts.kind],"nextjs"===f.facts.kind&&f.facts.standalone?" (standalone output)":""]}),(0,s.jsx)("dt",{children:"Package manager, Node"}),(0,s.jsxs)("dd",{children:[f.facts.pm,", Node ",f.facts.node]}),(0,s.jsx)("dt",{children:"Folder"}),(0,s.jsx)("dd",{className:"font-mono text-[12.5px]",children:f.facts.dir}),(0,s.jsx)("dt",{children:"Env names"}),(0,s.jsx)("dd",{children:f.facts.envNames.length})]}),T&&(0,s.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:T})]}),(0,s.jsx)("div",{role:"tablist","aria-label":"Build files",className:"mt-3 inline-flex flex-wrap overflow-hidden rounded-md border border-line-strong",children:f.files.map((e,t)=>(0,s.jsx)("button",{type:"button",role:"tab","aria-selected":g===t,onClick:()=>j(t),className:(0,i.f)("px-2.5 py-1 text-[13px] hover:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",g===t?"bg-brand-soft font-medium text-brand":"bg-surface text-ink-soft"),children:p(e.path)},e.path))}),$&&(0,s.jsxs)("div",{className:"mt-2",children:[(0,s.jsxs)("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[(0,s.jsx)("span",{className:"min-w-0 truncate font-mono text-[12.5px] text-ink-soft",children:$.path}),(0,s.jsx)(a.CopyButton,{text:$.text})]}),$.note&&(0,s.jsx)("p",{className:"mb-1.5 text-[12.5px] text-ink-soft",children:$.note}),(0,s.jsx)("pre",{className:"max-h-[360px] overflow-auto rounded-md bg-code-bg p-3 font-mono text-[12px] leading-relaxed text-code-text",children:$.text})]}),l&&f.repo&&(0,s.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,s.jsx)(n.K,{size:"sm",onClick:()=>R(async()=>{try{let s=await c(e);s.ok&&s.data?(N(s.data),v(null)):v(s.ok?"No answer.":s.error)}catch{v(x)}}),disabled:h||S||!!w,children:S?"Opening…":"Open pull request"}),w?(0,s.jsxs)("span",{children:[(0,s.jsxs)("a",{href:w.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["Pull request #",w.number]})," opened",w.skipped.length?(0,s.jsxs)("span",{className:"text-ink-soft",children:[" · left alone (already there): ",w.skipped.map(p).join(", ")]}):null]}):(0,s.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:(u=f.repo,h?"Pull requests are off in the demo.":`On a new branch of ${u}; files it already has are never overwritten.`)})]})]}):(0,s.jsx)("p",{className:"text-ink-soft",children:"Not generated yet. Generate writes a Dockerfile, docker-compose.yml, a GitHub Actions CI workflow and a Kubernetes manifest from this app's settings. Env names only, never values; nothing is built or deployed."})]})})}],980743)},464045,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(428325),n=e.i(39626),r=e.i(220806),i=e.i(684496),l=e.i(95187);let o=(0,l.createServerReference)("4000a136232ff0b95fae534047aea14bcc55c1eb57",l.callServer,void 0,l.findSourceMapURL,"envCheckAction"),c={"missing-production":e=>`${e} is in .env.example but not set for Production`,"preview-only":e=>`${e} is set for Preview or Development only`,"public-secret":e=>`${e} is sent to the browser (NEXT_PUBLIC_) but its name looks secret`,"not-in-example":e=>`${e} is set for Production but not listed in .env.example`},d={none:"No .env.example in the repository, so only Vercel's own settings were checked.","no-repo":"Link a repository to compare with its .env.example.","no-github":"GitHub isn't connected, or its token can't be read, so .env.example wasn't compared.",unreadable:"The repository's .env.example couldn't be read."};e.s(["EnvCard",0,function({appId:e}){let[l,p]=(0,t.useState)(null),[x,h]=(0,t.useState)(null),[m,u]=(0,t.useTransition)();return(0,s.jsx)(a.N,{title:"Environment",meta:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.Src,{kind:"api",children:"Vercel"}),(0,s.jsx)(a.K,{size:"sm",onClick:()=>u(async()=>{try{let s=await o(e);s.ok&&s.data?(p(s.data),h(null)):h(s.ok?"No answer.":s.error)}catch{h("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:m,children:m?"Checking…":"Check now"})]}),flush:!0,children:(0,s.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[x&&(0,s.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:x})]}),l?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dt]:text-ink-soft",children:[(0,s.jsx)("dt",{children:"Variables on Vercel"}),(0,s.jsx)("dd",{children:l.names}),(0,s.jsx)("dt",{children:"Compared with"}),(0,s.jsx)("dd",{children:"found"===l.example?(0,s.jsx)("span",{className:"font-mono text-[12.5px]",children:l.examplePath}):(0,s.jsx)("span",{className:"text-ink-soft",children:d[l.example]})}),(0,s.jsx)("dt",{children:"Checked"}),(0,s.jsx)("dd",{children:(0,i.$)(new Date(l.checkedAt),new Date)})]}),0===l.findings.length?(0,s.jsxs)("p",{className:"mt-3 inline-flex items-center gap-1.5",children:[(0,s.jsx)(r.Z,{state:"ok"}),"No findings"]}):(0,s.jsx)("ul",{className:"mt-3 flex flex-col gap-1.5",children:l.findings.map(e=>(0,s.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:c[e.kind](e.key)})]},`${e.kind}:${e.key}`))})]}):(0,s.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. Check now compares the variable names set on Vercel with .env.example in the repository. Values are never read."})]})})}],464045)},701723,e=>{var s=e.i(843476);let t=(0,e.i(33550).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var a=e.i(271645),n=e.i(846696),r=e.i(54131),i=e.i(428325),l=e.i(500443),o=e.i(776639);let c={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},d={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function p(e){return e.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var x=e.i(95187);let h=(0,x.createServerReference)("60ef8b7b0aa5730eb1b6b1b8a26db4a89f6684db1f",x.callServer,void 0,x.findSourceMapURL,"saveDatabaseLink");e.s(["LinkDialog",0,function({app:e,options:x,current:m,suggested:u}){var f;let b,[g,j]=(0,a.useState)(!1),[k,v]=(0,a.useState)(m??""),[w,N]=(0,a.useTransition)(),y=(0,r.useMask)();return(0,l.useHoldRefresh)(g),(0,s.jsxs)(o.N,{open:g,onOpenChange:e=>{!w&&(j(e),e&&v(m??u??""))},children:[(0,s.jsx)(o.a,{className:(0,i.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,s.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(o.F,{className:"text-base",children:["Database for ",(0,s.jsx)(r.Masked,{kind:"app",real:e.name})]}),(0,s.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,s.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(f=e.name,b=p(f),x.map((e,s)=>({o:e,i:s,r:(e=>{if(e.id===u)return 0;if(e.id===m)return 1;let s=p(e.name);return b&&s===b?2:b.length>=4&&s.length>=4&&(b.includes(s)||s.includes(b))?3:4})(e)})).sort((e,s)=>e.r-s.r||e.i-s.i).map(e=>e.o)).map(e=>({id:e.id,name:e.name,sub:`${d[c[e.kind]]} \xb7 ${y("account",e.account)}`,where:[e.region,e.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,s.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:k===e.id,onChange:()=>v(e.id)}),(0,s.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,s.jsx)("span",{className:"block truncate",children:e.id?(0,s.jsx)(r.DbName,{id:e.id,name:e.name}):e.name}),(0,s.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:e.sub}),e.where&&(0,s.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:e.where,children:e.where})]}),e.id&&e.id===m&&(0,s.jsx)(i.E,{children:"Current"}),e.id&&e.id!==m&&e.id===u&&(0,s.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},e.id||"none"))}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(i.K,{onClick:()=>j(!1),disabled:w,children:"Cancel"}),(0,s.jsx)(i.K,{variant:"primary",disabled:w,onClick:function(){N(async()=>{try{let s=await h(e.id,k||null);if(!s.ok)return void n.c.error(s.error);n.c.success("Link saved",{description:s.message?y("text",s.message):void 0}),j(!1)}catch{n.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],701723)},648790,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(428325),n=e.i(39626),r=e.i(220806),i=e.i(684496),l=e.i(95187);let o=(0,l.createServerReference)("40c2d257da90f3c258dddd28c80f47d488695566a3",l.callServer,void 0,l.findSourceMapURL,"prChecksAction"),c={fix:{state:"err",label:"Fix before merging"},check:{state:"warn",label:"Check before merging"},ok:{state:"ok",label:"No new problems"}};e.s(["PullRequestsCard",0,function({appId:e}){let[l,d]=(0,t.useState)(null),[p,x]=(0,t.useState)(null),[h,m]=(0,t.useTransition)();return(0,s.jsx)(a.N,{title:"Pull requests",meta:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.Src,{kind:"api",children:"GitHub"}),(0,s.jsx)(a.K,{size:"sm",onClick:()=>m(async()=>{try{let s=await o(e);s.ok&&s.data?(d(s.data),x(null)):x(s.ok?"No answer.":s.error)}catch{x("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:h,children:h?"Checking…":"Check open pull requests"})]}),flush:!0,children:(0,s.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[p&&(0,s.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,s.jsx)(r.Z,{state:"warn"}),(0,s.jsx)("span",{children:p})]}),l?0===l.rows.length?(0,s.jsxs)("p",{className:"inline-flex items-center gap-1.5",children:[(0,s.jsx)(r.Z,{state:"ok"}),"No open pull requests in ",(0,s.jsx)("span",{className:"font-mono text-[12.5px]",children:l.repo})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("ul",{className:"flex flex-col gap-2",children:l.rows.map(e=>{var t;let a,n="unread"===e.state?{state:"unknown",label:"Couldn't read this pull request's comments"}:"none"!==e.state&&e.marker?"old"===e.state?{state:"unknown",label:"Checked an older commit"}:c[e.marker.verdict]:{state:"off",label:"Not checked — add the pre-deploy check to this repository"},i=e.marker&&"none"!==e.state?(t=e.marker.counts,a=["critical","high","moderate","low"].filter(e=>t[e]).map(e=>`${t[e]} ${e}`),t.secrets&&a.push(`${t.secrets} possible secret${1===t.secrets?"":"s"}`),t.env&&a.push(`${t.env} env name${1===t.env?"":"s"}`),a.join(", ")):"";return(0,s.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(r.Z,{state:n.state}),(0,s.jsxs)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:[e.url?(0,s.jsxs)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["#",e.number," ",e.title]}):(0,s.jsxs)(s.Fragment,{children:["#",e.number," ",e.title]}),e.draft&&(0,s.jsx)("span",{className:"text-ink-soft",children:" (draft)"}),(0,s.jsxs)("span",{className:"block text-ink-soft",children:[n.label,i?`: ${i}`:""]})]})]},e.number)})}),(0,s.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:[l.repo," · checked ",(0,i.$)(new Date(l.checkedAt),new Date)]})]}):(0,s.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. This reads the open pull requests and the Watchbell pre-deploy check's comment on each."})]})})}],648790)},822984,e=>{var s=e.i(843476),t=e.i(386770),a=e.i(518716),n=e.i(271645),r=e.i(846696),i=e.i(54131),l=e.i(428325),o=e.i(500443),c=e.i(776639),d=e.i(975157),p=e.i(95187);let x=(0,p.createServerReference)("6074528fb19f59dce6d04c73751e459a8603ed09b7",p.callServer,void 0,p.findSourceMapURL,"linkRepo"),h=(0,p.createServerReference)("40a1d301b642dc74d2f72e518b9e868f0e1e2cf1cc",p.callServer,void 0,p.findSourceMapURL,"refreshRepoActions");e.s(["ConfirmRepo",0,function({appId:e,repoId:t,fullName:a}){let[o,c]=(0,n.useTransition)(),d=(0,i.useMask)();return(0,s.jsx)(l.K,{size:"sm",variant:"primary",disabled:o,onClick:()=>c(async()=>{let s=await x(e,t);s.ok?r.c.success(s.message?d("text",s.message):"Linked."):r.c.error(s.error)}),children:o?"Linking…":(0,s.jsxs)(s.Fragment,{children:["Link to ",(0,s.jsx)(i.Masked,{kind:"repo",real:a})]})})},"RefreshActionsButton",0,function({appId:e}){let[t,i]=(0,n.useTransition)();return(0,s.jsxs)(l.K,{size:"sm",disabled:t,onClick:()=>i(async()=>{let s=await h(e);s.ok?r.c.success(s.message??"Refreshed."):r.c.error(s.error)}),children:[(0,s.jsx)(a.f,{size:14,"aria-hidden":!0}),t?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:e,options:a,current:p,suggested:h,label:m}){let[u,f]=(0,n.useState)(!1),[b,g]=(0,n.useState)(p??""),[j,k]=(0,n.useState)(""),[v,w]=(0,n.useTransition)(),N=(0,i.useMask)();(0,o.useHoldRefresh)(u);let y=(0,n.useMemo)(()=>{let e=j.trim().toLowerCase(),s=a.filter(s=>!e||s.fullName.toLowerCase().includes(e)||N("repo",s.fullName).toLowerCase().includes(e)),t=[p,h].filter(e=>!!e);return[...s.filter(e=>t.includes(e.id)),...s.filter(e=>!t.includes(e.id))].slice(0,100)},[a,j,p,h,N]);return(0,s.jsxs)(c.N,{open:u,onOpenChange:e=>{!v&&(f(e),e&&(g(p??h??""),k("")))},children:[(0,s.jsx)(c.a,{className:(0,l.R)({size:"sm",variant:"ghost"}),children:m}),(0,s.jsxs)(c.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,s.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,s.jsx)(t.f,{size:19})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(c.F,{className:"text-base",children:["Repository for ",(0,s.jsx)(i.Masked,{kind:"app",real:e.name})]}),(0,s.jsx)(c.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,s.jsx)("div",{className:"px-[18px] pb-2",children:(0,s.jsx)("input",{className:(0,d.f)(l.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:j,onChange:e=>k(e.target.value)})}),(0,s.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(e=>({id:e.id,name:e.fullName,archived:e.archived})),{id:"",name:"No repository",archived:!1}].map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,s.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:b===e.id,onChange:()=>g(e.id)}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:e.id?(0,s.jsx)(i.Masked,{kind:"repo",real:e.name}):(0,s.jsx)("span",{className:"font-sans text-[13.5px]",children:e.name})}),e.archived&&(0,s.jsx)(l.E,{children:"Archived"}),e.id&&e.id===p&&(0,s.jsx)(l.E,{children:"Current"}),e.id&&e.id!==p&&e.id===h&&(0,s.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},e.id||"none"))}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,s.jsx)(l.K,{onClick:()=>f(!1),disabled:v,children:"Cancel"}),(0,s.jsx)(l.K,{variant:"primary",disabled:v||b===(p??""),onClick:function(){w(async()=>{try{let s=await x(e.id,b||null);if(!s.ok)return void r.c.error(s.error);r.c.success("Link saved",{description:s.message?N("text",s.message):void 0}),f(!1)}catch{r.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],822984)},543990,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(846696),n=e.i(54131),r=e.i(428325),i=e.i(95187);let l=(0,i.createServerReference)("4067455815a51bb84a1bc3cbff62bbb43a47d63bd3",i.callServer,void 0,i.findSourceMapURL,"checkSecurity");e.s(["SecurityCheckButton",0,function({appId:e,appName:i}){let[o,c]=(0,t.useTransition)(),d=(0,t.useRef)(!1),p=(0,n.useMask)();return(0,s.jsx)(r.K,{size:"sm",onClick:()=>{if(d.current)return;d.current=!0;let s=a.c.loading(`Checking ${p("app",i)}. The result shows here in a few seconds.`);c(async()=>{try{let t=await l(e);t.ok?t.data?.passed===!1||t.data?.vulnerable?a.c.warning(t.message??"",{id:s}):a.c.success(t.message??"",{id:s}):a.c.error(t.error,{id:s})}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:s})}finally{d.current=!1}})},disabled:o,children:o?"Checking…":"Check now"})}],543990)},592283,e=>{var s=e.i(843476),t=e.i(522016),a=e.i(271645),n=e.i(54131),r=e.i(220806),i=e.i(776639),l=e.i(684496);e.i(70528);var o=e.i(452842);e.i(322534),e.s(["WhyStatus",0,function({state:e,label:c,problems:d,nowMs:p,aiSlot:x=null}){let[h,m]=(0,a.useState)(!1);if(!d.length||"warn"!==e&&"err"!==e)return(0,s.jsx)(r.F,{state:e,children:c});let u=new Date(p);return(0,s.jsxs)(i.N,{open:h,onOpenChange:m,children:[(0,s.jsxs)(i.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,s.jsx)(r.Z,{state:e}),(0,s.jsx)("span",{children:c})]}),(0,s.jsxs)(i.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,s.jsxs)(i.F,{className:"flex items-center gap-2 text-base",children:[(0,s.jsx)(r.Z,{state:e}),`Why ${o.X[e]}`]}),(0,s.jsx)(i.C,{className:"text-[13px] text-ink-soft",children:d.length>0&&d.every(e=>"monitor"===e.kind&&e.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===d.length?"One thing explains":`${d.length} things explain`} this status.`}),(0,s.jsx)("div",{className:"flex flex-col gap-4",children:d.map((e,a)=>(0,s.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,s.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,s.jsx)(r.Z,{state:e.state}),(0,s.jsx)(t.default,{href:e.href,onClick:()=>m(!1),children:(0,s.jsx)(n.MaskedText,{text:e.where})})]}),(0,s.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,s.jsx)(n.MaskedText,{text:e.reason}),e.since?(0,s.jsxs)(s.Fragment,{children:[" · since ",(0,l.$)(e.since,u)]}):null]}),(0,s.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,s.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:e.remedies.map(e=>(0,s.jsx)("li",{children:e},e))})]},`${e.where}-${a}`))}),x]})]})}],592283)}])})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518716,e=>{let t=(0,e.i(33550).f)("outline","refresh","Refresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);e.s(["f",0,t],518716)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:o,defaultVariants:s}=t,l=Object.keys(o).map(e=>{let t=null==a?void 0:a[e],r=null==s?void 0:s[e];if(null===t)return null;let i=n(t)||n(r);return o[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,l,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...d}[t]):({...s,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},475432,e=>{var t=e.i(843476),n=e.i(618566),r=e.i(271645),a=e.i(846696),i=e.i(54131),o=e.i(799589),s=e.i(177106),l=e.i(856033),d=e.i(452842),u=e.i(24667),c=e.i(95187);let p=(0,c.createServerReference)("4071fce6bee49c92d3d566cbcb0e2a0c6bff81185e",c.callServer,void 0,c.findSourceMapURL,"redeployCurrentAction");var f=e.i(651626);e.s(["AppMenu",0,function({app:e}){var c;let h,[,g]=(0,r.useTransition)(),m=(0,f.f)(),b=(0,n.useRouter)(),v=(0,i.useMask)(),x=(0,o.W)(),y=(h=[{label:"Redeploy",onSelect:(c={redeploy:()=>x.open({...(0,l.f)("Redeploy",v("app",e.name),""),run:()=>p(e.id)}),viewLogs:()=>{let t;return b.push((t=e.id,`/apps/${t}?tab=logs`))},togglePause:()=>m(()=>new Promise(t=>g(async()=>{try{let t=await (0,u.f)(e.id,!e.paused);t.ok?a.c.success(t.message??""):a.c.error(t.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{t()}})))}).redeploy},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[],{label:"View logs",onSelect:c.viewLogs}],e.monitorCount>0&&h.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:c.togglePause}),h);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.RowMenu,{items:y,label:(0,d.J)(e.name)}),x.dialog]})}],475432)},24667,651626,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60515e1bdb1f6b213b0fc55a9702b436d7ee442857",t.callServer,void 0,t.findSourceMapURL,"pauseAppMonitors");e.s(["f",0,n],24667);var r=e.i(271645);e.s(["f",0,function(){let e=(0,r.useRef)(!1);return t=>!e.current&&(e.current=!0,t().catch(()=>void 0).finally(()=>{e.current=!1}),!0)}],651626)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),o=e.i(428325),s=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:u,title:c,body:p,cta:f,danger:h=!1,onConfirm:g}){let[m,b]=(0,a.useState)(!1),v=d??m,[x,y]=(0,a.useTransition)();function k(e){void 0===d&&b(e),u?.(e)}return(0,s.useHoldRefresh)(v),(0,t.jsxs)(l.N,{open:v,onOpenChange:e=>{x||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(l.a,{render:e}):(0,t.jsx)(l.a,{children:e})),(0,t.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${h?"text-err":"text-ink-soft"}`,children:h?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(l.F,{className:"text-base",children:c}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(o.K,{onClick:()=>k(!1),disabled:x,children:"Keep as is"}),(0,t.jsx)(o.K,{variant:h?"danger":"primary",onClick:function(){y(async()=>{try{let e=await g();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:x,children:x?"Working…":f})]})]})]})}])},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),o=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),s=(o-1)*n,l=e.slice(s,s+n);return{rows:l,page:o,pages:a,from:0===r?0:s+1,to:s+l.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:o,onPage:s,bleed:l=!1}){let d=(0,n.useRef)(null),u=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==u.current&&(d.current?.querySelectorAll("button")[u.current]?.focus(),u.current=null)},[e]),i<=1)return null;let c=(e,t)=>{(e<=1||e>=i)&&(u.current=t),s(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",l?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:o}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>c(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>c(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),o=i(e.slice(a),t,r);return 0===a||o.page>1?{...o,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function o(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function s(){let e=(0,r.useMask)();return t=>o(t,t=>e("text",t))}e.s(["f",0,o],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:o,danger:l=!1,run:d}){let u=s();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:l?"danger":"secondary",children:e}),title:n,body:r,cta:o,danger:l,onConfirm:async()=>u(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=s(),o=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:o}}],799589)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),o=e.i(428325),s=e.i(500443),l=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[u,c]=(0,i.useState)(!1);return(0,s.useHoldRefresh)(u),(0,t.jsxs)(l.G,{open:u,onOpenChange:c,children:[n?(0,t.jsxs)(l.X,{className:(0,o.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(l.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(l.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(l.U,{},`sep-${n}`):(0,t.jsxs)(l.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),o=e.i(141708),s=e.i(593480),l=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,u=e.i(975157),c=e.i(271645),p=e.i(540886),f=e.i(552245);let h=c.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:o=!0,style:s,...l}=e,{getButtonProps:d,buttonRef:u}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:o});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,u],props:[l,d]})}),g=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(h,{"data-slot":"button",className:(0,u.f)(g({variant:n,size:r,className:e})),...a})}var b=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let x=(0,b.f)(v);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(o.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,u.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(s.f.Popup,{"data-slot":"dialog-content",className:(0,u.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(x,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,u.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(l.f.Title,{"data-slot":"dialog-title",className:(0,u.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function o(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function s([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function l(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=o(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],s=8-a.length-i.length;if(1===n.length?0!==s:s<1)return null;let l=[...a,...Array(2===n.length?s:0).fill("0"),...i];return 8===l.length&&l.every(e=>/^[0-9a-f]{1,4}$/.test(e))?l.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return s([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=o(t);if(n)return s(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],u=/[\u0000-\u001f\u007f-\u009f]/,c=/[----]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||u.test(i)||c.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let o=Number(e?.periodS);r.includes(o)||(t.periodS="Pick how often the job runs.");let s=Number(e?.graceS);return(a.includes(s)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:o,graceS:s}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==l(i)?"blocked"===l(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let o=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(o)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let s=Number(e?.timeoutS);d.includes(s)||(r.timeoutS="Pick a timeout.");let u=String(e?.bodyContains??"").trim(),c=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(u.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!c&&p&&(r.jsonPath="Add a JSON path for the value."),c&&(c.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(c)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",u&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(o),timeoutMs:1e3*s,bodyContains:u||null,jsonPath:c||null,jsonEquals:c?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
|