watchbell 1.3.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (877) hide show
  1. package/package.json +1 -1
  2. package/server/.next/BUILD_ID +1 -1
  3. package/server/.next/app-path-routes-manifest.json +3 -0
  4. package/server/.next/build-manifest.json +36 -3
  5. package/server/.next/prerender-manifest.json +3 -3
  6. package/server/.next/routes-manifest.json +18 -0
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +76 -68
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +76 -68
  13. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +76 -68
  17. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  18. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +76 -68
  21. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  22. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +76 -68
  25. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  26. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  27. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  28. package/server/.next/server/app/(console)/(private)/ai/models/page.js +76 -68
  29. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  31. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  32. package/server/.next/server/app/(console)/(private)/ai/page.js +76 -68
  33. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +76 -68
  37. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  38. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +76 -68
  41. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  42. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +76 -68
  45. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  46. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +76 -68
  49. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +76 -68
  53. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  54. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +76 -68
  57. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  58. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  59. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  60. package/server/.next/server/app/(console)/alerts/page.js +76 -68
  61. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  62. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  63. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +92 -62
  64. package/server/.next/server/app/(console)/apps/[id]/page.js +78 -70
  65. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  66. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  67. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  68. package/server/.next/server/app/(console)/apps/page.js +78 -70
  69. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  70. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  71. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  72. package/server/.next/server/app/(console)/backups/page.js +76 -68
  73. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  74. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  75. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  76. package/server/.next/server/app/(console)/catalog/page.js +76 -68
  77. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  78. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  79. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  80. package/server/.next/server/app/(console)/connections/page.js +76 -68
  81. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  82. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  83. package/server/.next/server/app/(console)/containers/page/app-paths-manifest.json +3 -0
  84. package/server/.next/server/app/(console)/containers/page/build-manifest.json +22 -0
  85. package/server/.next/server/app/(console)/containers/page/next-font-manifest.json +11 -0
  86. package/server/.next/server/app/(console)/containers/page/react-loadable-manifest.json +1 -0
  87. package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +145 -0
  88. package/server/.next/server/app/(console)/containers/page.js +121 -0
  89. package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -0
  90. package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +3 -0
  91. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  92. package/server/.next/server/app/(console)/d1/page.js +76 -68
  93. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/deploy/page/app-paths-manifest.json +3 -0
  96. package/server/.next/server/app/(console)/deploy/page/build-manifest.json +22 -0
  97. package/server/.next/server/app/(console)/deploy/page/next-font-manifest.json +11 -0
  98. package/server/.next/server/app/(console)/deploy/page/react-loadable-manifest.json +1 -0
  99. package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +115 -0
  100. package/server/.next/server/app/(console)/deploy/page.js +122 -0
  101. package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -0
  102. package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +3 -0
  103. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
  104. package/server/.next/server/app/(console)/deployments/page.js +76 -68
  105. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  106. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  107. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  108. package/server/.next/server/app/(console)/dns/page.js +76 -68
  109. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  110. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  111. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  112. package/server/.next/server/app/(console)/domains/page.js +76 -68
  113. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  114. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  115. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  116. package/server/.next/server/app/(console)/events/page.js +76 -68
  117. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  118. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  119. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  120. package/server/.next/server/app/(console)/firebase/page.js +76 -68
  121. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  122. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  123. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  124. package/server/.next/server/app/(console)/logs/page.js +76 -68
  125. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  126. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  127. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  128. package/server/.next/server/app/(console)/manage/sections/page.js +76 -68
  129. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  130. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  131. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  132. package/server/.next/server/app/(console)/neon/page.js +76 -68
  133. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  134. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  135. package/server/.next/server/app/(console)/os/page/app-paths-manifest.json +3 -0
  136. package/server/.next/server/app/(console)/os/page/build-manifest.json +22 -0
  137. package/server/.next/server/app/(console)/os/page/next-font-manifest.json +11 -0
  138. package/server/.next/server/app/(console)/os/page/react-loadable-manifest.json +1 -0
  139. package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +125 -0
  140. package/server/.next/server/app/(console)/os/page.js +120 -0
  141. package/server/.next/server/app/(console)/os/page.js.nft.json +1 -0
  142. package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +3 -0
  143. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  144. package/server/.next/server/app/(console)/overview/page.js +77 -69
  145. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  146. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  147. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  148. package/server/.next/server/app/(console)/repos/[id]/page.js +80 -72
  149. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  150. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  151. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  152. package/server/.next/server/app/(console)/repos/page.js +81 -72
  153. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  154. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  155. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +21 -21
  156. package/server/.next/server/app/(console)/settings/page.js +76 -68
  157. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  158. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  159. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  160. package/server/.next/server/app/(console)/sql/page.js +76 -68
  161. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  162. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  163. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  164. package/server/.next/server/app/(console)/status/page.js +76 -68
  165. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  166. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  167. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  168. package/server/.next/server/app/(console)/supabase/page.js +81 -72
  169. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  170. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  171. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  172. package/server/.next/server/app/(console)/topology/page.js +76 -68
  173. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  174. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  175. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  176. package/server/.next/server/app/(console)/turso/page.js +76 -68
  177. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  178. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  179. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  180. package/server/.next/server/app/(console)/upstash/page.js +76 -68
  181. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  182. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  183. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  184. package/server/.next/server/app/(console)/uptime/page.js +76 -68
  185. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  186. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  187. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  188. package/server/.next/server/app/(console)/welcome/page.js +76 -68
  189. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  190. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  191. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  192. package/server/.next/server/app/_global-error/page.js +1 -1
  193. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  194. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  195. package/server/.next/server/app/_global-error.html +1 -1
  196. package/server/.next/server/app/_global-error.rsc +3 -3
  197. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  198. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  199. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  200. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  201. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  202. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/_not-found.html +1 -1
  204. package/server/.next/server/app/_not-found.rsc +4 -4
  205. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  206. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  207. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  208. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  209. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  210. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  211. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  212. package/server/.next/server/app/api/collect/route.js +59 -52
  213. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  214. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  215. package/server/.next/server/app/api/daily/route.js +59 -52
  216. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  217. package/server/.next/server/app/api/health/route.js.nft.json +1 -1
  218. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  219. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  220. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  221. package/server/.next/server/app/api/telegram/webhook/route.js +59 -52
  222. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  223. package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
  224. package/server/.next/server/app/api/v1/advice/route.js +14 -14
  225. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  226. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  227. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  228. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  229. package/server/.next/server/app/api/v1/ai/questions/route.js +10 -10
  230. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  231. package/server/.next/server/app/api/v1/mcp/route.js +25 -24
  232. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  233. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  234. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  235. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +13 -13
  236. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  237. package/server/.next/server/app/api/v1/status/route.js +13 -13
  238. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  239. package/server/.next/server/app/api/watchdog/route.js +11 -12
  240. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  241. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  242. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  243. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  244. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  245. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  246. package/server/.next/server/app/icon.svg/route.js.nft.json +1 -1
  247. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  248. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  249. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  250. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  251. package/server/.next/server/app/mfa/page.js +35 -30
  252. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  253. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  254. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  255. package/server/.next/server/app/mfa/setup/page.js +35 -30
  256. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  257. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  258. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  259. package/server/.next/server/app/page.js.nft.json +1 -1
  260. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  261. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  262. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  263. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  264. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  265. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  266. package/server/.next/server/app/setup/page.js +1 -1
  267. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  268. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  269. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  270. package/server/.next/server/app/signin/page.js +35 -30
  271. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  272. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  273. package/server/.next/server/app-paths-manifest.json +3 -0
  274. package/server/.next/server/chunks/{[externals]__1-y7b_mfadqi-._.js → [externals]__0n4j2emxdv20_._.js} +1 -1
  275. package/server/.next/server/chunks/{[externals]__1b3dgyi9diwhy._.js → [externals]__1hwo1oo04do39._.js} +1 -1
  276. package/server/.next/server/chunks/{[externals]__1dd9hhrnxhegy._.js → [externals]__1k12utcf9tvqg._.js} +1 -1
  277. package/server/.next/server/chunks/{[root-of-the-server]__040a3il587nja._.js → [root-of-the-server]__0016p4j5uh74t._.js} +2 -2
  278. package/server/.next/server/chunks/{[root-of-the-server]__08i6b8tzxads4._.js → [root-of-the-server]__00oxbw3nfl_kd._.js} +1 -1
  279. package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
  280. package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +1 -1
  281. package/server/.next/server/chunks/{[root-of-the-server]__0qme276hvajvy._.js → [root-of-the-server]__02y9yjf7lp37-._.js} +1 -1
  282. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  283. package/server/.next/server/chunks/{[root-of-the-server]__1jjusd74y8gd5._.js → [root-of-the-server]__03589rgm1a3ks._.js} +2 -2
  284. package/server/.next/server/chunks/[root-of-the-server]__04u9e45_g1jdi._.js +3 -0
  285. package/server/.next/server/chunks/{[root-of-the-server]__0-zrmrb4499ay._.js → [root-of-the-server]__04v42ls1mfjd2._.js} +2 -2
  286. package/server/.next/server/chunks/{[root-of-the-server]__0sp5xoed3-994._.js → [root-of-the-server]__05b18nw2k-7-4._.js} +1 -1
  287. package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
  288. package/server/.next/server/chunks/{[root-of-the-server]__01hgqxx2a0okv._.js → [root-of-the-server]__06kp2_zqpttyd._.js} +2 -2
  289. package/server/.next/server/chunks/{[root-of-the-server]__04ogdmf82__0g._.js → [root-of-the-server]__06l038ifglbqy._.js} +1 -1
  290. package/server/.next/server/chunks/{[root-of-the-server]__1etpd6q60ypcc._.js → [root-of-the-server]__06nrq_1pbp3z-._.js} +2 -2
  291. package/server/.next/server/chunks/{[root-of-the-server]__0i3h5covkd6_t._.js → [root-of-the-server]__06zmu7jjyw1qw._.js} +1 -1
  292. package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
  293. package/server/.next/server/chunks/{[root-of-the-server]__0sq7jwlhv9n79._.js → [root-of-the-server]__081hh3_un4awi._.js} +1 -1
  294. package/server/.next/server/chunks/{[root-of-the-server]__1vvg0ur3_7o0p._.js → [root-of-the-server]__090n04cg_br7j._.js} +1 -1
  295. package/server/.next/server/chunks/{[root-of-the-server]__0lht1cr4aiudu._.js → [root-of-the-server]__09gla7jgbw2bs._.js} +1 -1
  296. package/server/.next/server/chunks/{[root-of-the-server]__0cmp5mwchd8sn._.js → [root-of-the-server]__09l9icaspfmoh._.js} +2 -2
  297. package/server/.next/server/chunks/{[root-of-the-server]__0m_nqt44ioex_._.js → [root-of-the-server]__09msxcjw3tlue._.js} +1 -1
  298. package/server/.next/server/chunks/{[root-of-the-server]__1smidspfoqz48._.js → [root-of-the-server]__09yvavo991rdd._.js} +2 -2
  299. package/server/.next/server/chunks/{[root-of-the-server]__0ox91q3i5u6fl._.js → [root-of-the-server]__0_vtp19_2frgj._.js} +1 -1
  300. package/server/.next/server/chunks/[root-of-the-server]__0a0st8-rftztn._.js +3 -0
  301. package/server/.next/server/chunks/{[root-of-the-server]__04iumkvxok49x._.js → [root-of-the-server]__0a7moaa91ctod._.js} +2 -2
  302. package/server/.next/server/chunks/{[root-of-the-server]__17dr2z1o1hsvk._.js → [root-of-the-server]__0ao4b2jjkcvo1._.js} +1 -1
  303. package/server/.next/server/chunks/{[root-of-the-server]__04htuwoulmp21._.js → [root-of-the-server]__0at6fxe9efr-x._.js} +1 -1
  304. package/server/.next/server/chunks/{[root-of-the-server]__0erdelc9_06nk._.js → [root-of-the-server]__0c_mpay_m5kbm._.js} +1 -1
  305. package/server/.next/server/chunks/{[root-of-the-server]__02h-ec_gusm_2._.js → [root-of-the-server]__0di45l_tnq1pm._.js} +2 -2
  306. package/server/.next/server/chunks/[root-of-the-server]__0ebkmgcs7v0c8._.js +3 -0
  307. package/server/.next/server/chunks/{[root-of-the-server]__19k0l-ubyp1j_._.js → [root-of-the-server]__0ej4hdoyogtji._.js} +1 -1
  308. package/server/.next/server/chunks/{[root-of-the-server]__1etg41llk7f09._.js → [root-of-the-server]__0eqrtvr3uqlqf._.js} +1 -1
  309. package/server/.next/server/chunks/{[root-of-the-server]__1x7en4waq21dd._.js → [root-of-the-server]__0exruft64u1hg._.js} +1 -1
  310. package/server/.next/server/chunks/{[root-of-the-server]__0ubalx5w0ds9m._.js → [root-of-the-server]__0fii83nfm0bsk._.js} +1 -1
  311. package/server/.next/server/chunks/{[root-of-the-server]__1d1u-wejsfl84._.js → [root-of-the-server]__0g0rd65zoitrb._.js} +1 -1
  312. package/server/.next/server/chunks/{[root-of-the-server]__0fmt9z8-xukob._.js → [root-of-the-server]__0g3v-ty9-xstp._.js} +1 -1
  313. package/server/.next/server/chunks/[root-of-the-server]__0g81f_2ecmg8a._.js +3 -0
  314. package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
  315. package/server/.next/server/chunks/[root-of-the-server]__0glhrm7zmrvi2._.js +3 -0
  316. package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
  317. package/server/.next/server/chunks/{[root-of-the-server]__1jsf0jf_ljpsm._.js → [root-of-the-server]__0jma907r441wi._.js} +1 -1
  318. package/server/.next/server/chunks/{[root-of-the-server]__1j527a18gh10b._.js → [root-of-the-server]__0jpktq0f88rvz._.js} +2 -2
  319. package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
  320. package/server/.next/server/chunks/{[root-of-the-server]__0lco43i5w25zg._.js → [root-of-the-server]__0myf9g_uv3bia._.js} +2 -2
  321. package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
  322. package/server/.next/server/chunks/{[root-of-the-server]__1xnqsy7nud--q._.js → [root-of-the-server]__0pi_camvun8ak._.js} +2 -2
  323. package/server/.next/server/chunks/{[root-of-the-server]__0mrbo2p5fy4ji._.js → [root-of-the-server]__0puji-hw0xtk7._.js} +1 -1
  324. package/server/.next/server/chunks/{[root-of-the-server]__1kr6f03r82mk6._.js → [root-of-the-server]__0qlf-so9k6401._.js} +1 -1
  325. package/server/.next/server/chunks/{[root-of-the-server]__0iicsi0n7tfa5._.js → [root-of-the-server]__0r0zrp3s_n614._.js} +1 -1
  326. package/server/.next/server/chunks/{[root-of-the-server]__0zwr7fll4dm9q._.js → [root-of-the-server]__0s3b61ttgb9if._.js} +2 -2
  327. package/server/.next/server/chunks/{[root-of-the-server]__1_df6aphi-pfk._.js → [root-of-the-server]__0t0dd5t5rch1i._.js} +2 -2
  328. package/server/.next/server/chunks/{[root-of-the-server]__11a8fxlpahjy2._.js → [root-of-the-server]__0tshehtsx7229._.js} +1 -1
  329. package/server/.next/server/chunks/[root-of-the-server]__0ty2qkszfdr5t._.js +3 -0
  330. package/server/.next/server/chunks/[root-of-the-server]__0ugx1i8km15fl._.js +3 -0
  331. package/server/.next/server/chunks/{[root-of-the-server]__0c2heh-0pjyob._.js → [root-of-the-server]__0uyc9w7f_r10u._.js} +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0uz_r72zdnwdd._.js +1 -1
  333. package/server/.next/server/chunks/{[root-of-the-server]__130_vkgsongq_._.js → [root-of-the-server]__0vb1_m_h5hi0z._.js} +2 -2
  334. package/server/.next/server/chunks/{[root-of-the-server]__0x929r1phz1oi._.js → [root-of-the-server]__0vclan952l_ty._.js} +2 -2
  335. package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
  336. package/server/.next/server/chunks/{[root-of-the-server]__1wjsjh-1i-sn6._.js → [root-of-the-server]__0vsafetdvsfhj._.js} +1 -1
  337. package/server/.next/server/chunks/{[root-of-the-server]__0db2p-om-b_4s._.js → [root-of-the-server]__0ww7a-9fnx2rv._.js} +1 -1
  338. package/server/.next/server/chunks/[root-of-the-server]__0x5vp_8n6xvpw._.js +3 -0
  339. package/server/.next/server/chunks/[root-of-the-server]__0yhki59n8zyjb._.js +1 -1
  340. package/server/.next/server/chunks/{[root-of-the-server]__20sp5m_w5iklm._.js → [root-of-the-server]__10-v22hv1sxrv._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__0jswmvddgl3sb._.js → [root-of-the-server]__10d4a34z0js-f._.js} +1 -1
  342. package/server/.next/server/chunks/{[root-of-the-server]__0zkeao78mms1_._.js → [root-of-the-server]__10ts7p_9fu3ge._.js} +2 -2
  343. package/server/.next/server/chunks/{[root-of-the-server]__14jw0y_hj7jmw._.js → [root-of-the-server]__12tmfv427e9cb._.js} +2 -2
  344. package/server/.next/server/chunks/[root-of-the-server]__1426to_m4prqh._.js +1 -1
  345. package/server/.next/server/chunks/[root-of-the-server]__1481y3utu_a_o._.js +3 -0
  346. package/server/.next/server/chunks/[root-of-the-server]__14e0j38785glf._.js +3 -0
  347. package/server/.next/server/chunks/{[root-of-the-server]__1-2ckgdamg0-j._.js → [root-of-the-server]__14yq_wf4xemgd._.js} +2 -2
  348. package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
  349. package/server/.next/server/chunks/{[root-of-the-server]__0-94urkhm871c._.js → [root-of-the-server]__192br5y94wzhx._.js} +1 -1
  350. package/server/.next/server/chunks/[root-of-the-server]__19jalyhtntk8p._.js +3 -0
  351. package/server/.next/server/chunks/{[root-of-the-server]__0fc4c9-xzmkol._.js → [root-of-the-server]__19o-a03uklyrw._.js} +2 -2
  352. package/server/.next/server/chunks/{[root-of-the-server]__1rpgddeg42i-q._.js → [root-of-the-server]__1_0vd5-tvmsg8._.js} +1 -1
  353. package/server/.next/server/chunks/{[root-of-the-server]__0w07p3ypro834._.js → [root-of-the-server]__1_goy0uhapvk9._.js} +2 -2
  354. package/server/.next/server/chunks/[root-of-the-server]__1ac-dzt5bffr2._.js +3 -0
  355. package/server/.next/server/chunks/{[root-of-the-server]__1bjvjngj7lvqi._.js → [root-of-the-server]__1ajyr5xvo1-x5._.js} +2 -2
  356. package/server/.next/server/chunks/{[root-of-the-server]__0-ytbad9hn7uc._.js → [root-of-the-server]__1avuwg9wmyh48._.js} +1 -1
  357. package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
  358. package/server/.next/server/chunks/[root-of-the-server]__1ey2qia7rofoc._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__161v5qfd5qk2p._.js → [root-of-the-server]__1ghx3ayy7tm73._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__0xfgfo-ks4_e8._.js → [root-of-the-server]__1hlvqq0azku2x._.js} +2 -2
  361. package/server/.next/server/chunks/{[root-of-the-server]__0zs-wkvv1cs0i._.js → [root-of-the-server]__1hrcyozojb6ot._.js} +1 -1
  362. package/server/.next/server/chunks/[root-of-the-server]__1hrviq7s700td._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__212_l7y-180xi._.js → [root-of-the-server]__1i841w7a3057h._.js} +1 -1
  364. package/server/.next/server/chunks/[root-of-the-server]__1ifov-udw6__d._.js +3 -0
  365. package/server/.next/server/chunks/{[root-of-the-server]__10negjjz5k5bz._.js → [root-of-the-server]__1ig0p-frprcbm._.js} +1 -1
  366. package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
  367. package/server/.next/server/chunks/{[root-of-the-server]__0c9y_zg74k4oe._.js → [root-of-the-server]__1iruoalu93dg7._.js} +2 -2
  368. package/server/.next/server/chunks/[root-of-the-server]__1ksyvvsf32jfg._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1kzi1du1sliqb._.js +3 -0
  370. package/server/.next/server/chunks/{[root-of-the-server]__15vqo7amys573._.js → [root-of-the-server]__1mbm_bvk1oat7._.js} +2 -2
  371. package/server/.next/server/chunks/[root-of-the-server]__1mvibnqor6lx_._.js +3 -0
  372. package/server/.next/server/chunks/{[root-of-the-server]__0ct18spdi1leu._.js → [root-of-the-server]__1ons16gam6qb7._.js} +2 -2
  373. package/server/.next/server/chunks/[root-of-the-server]__1ozfk4_3lx1o7._.js +1 -1
  374. package/server/.next/server/chunks/[root-of-the-server]__1po33h2u2o4e_._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__1qps9ushddgwe._.js +3 -0
  376. package/server/.next/server/chunks/{[root-of-the-server]__0so_ihc-5tp14._.js → [root-of-the-server]__1qyz1wi13rxxb._.js} +1 -1
  377. package/server/.next/server/chunks/{[root-of-the-server]__0nkfi6x2c4c5p._.js → [root-of-the-server]__1r2ei065xk141._.js} +1 -1
  378. package/server/.next/server/chunks/{[root-of-the-server]__0dltcr407-ow6._.js → [root-of-the-server]__1r8mzvf7_9d2k._.js} +2 -2
  379. package/server/.next/server/chunks/[root-of-the-server]__1rxke2_vpd7np._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__1sjp750034q4j._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__1tefe1f5835t_._.js +1 -1
  382. package/server/.next/server/chunks/{[root-of-the-server]__0a5t6bkr3-uqw._.js → [root-of-the-server]__1tlivd99uri0t._.js} +2 -2
  383. package/server/.next/server/chunks/{[root-of-the-server]__217jp1b3psyq_._.js → [root-of-the-server]__1vfvw1pmssxww._.js} +1 -1
  384. package/server/.next/server/chunks/{[root-of-the-server]__1g6xpr_typmce._.js → [root-of-the-server]__1wbnule0tzwdu._.js} +2 -2
  385. package/server/.next/server/chunks/{[root-of-the-server]__0zu1odpvrptrt._.js → [root-of-the-server]__1wcnj2xtesyd9._.js} +1 -1
  386. package/server/.next/server/chunks/{[root-of-the-server]__1cpee8xi1ig3-._.js → [root-of-the-server]__1won_frdj9jms._.js} +2 -2
  387. package/server/.next/server/chunks/[root-of-the-server]__1wvp6wau5ueb9._.js +3 -0
  388. package/server/.next/server/chunks/{[root-of-the-server]__0bvdnvpw43au9._.js → [root-of-the-server]__1y9gsf61fh1fv._.js} +1 -1
  389. package/server/.next/server/chunks/[root-of-the-server]__1yxudc_keazqo._.js +3 -0
  390. package/server/.next/server/chunks/{[root-of-the-server]__1pyhos8be90-4._.js → [root-of-the-server]__1yxxfmyk3649a._.js} +1 -1
  391. package/server/.next/server/chunks/{[root-of-the-server]__1t87mhqedigsz._.js → [root-of-the-server]__1z1fgf8k8icw8._.js} +2 -2
  392. package/server/.next/server/chunks/{[root-of-the-server]__1d4wmw2wohveb._.js → [root-of-the-server]__1z_l9mj3s_6tu._.js} +1 -1
  393. package/server/.next/server/chunks/[root-of-the-server]__1zvy7u_y3fzbz._.js +3 -0
  394. package/server/.next/server/chunks/{[root-of-the-server]__0xd_bgjy5_tr5._.js → [root-of-the-server]__20056vw370xom._.js} +1 -1
  395. package/server/.next/server/chunks/[root-of-the-server]__205cmd-k6g2kc._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
  397. package/server/.next/server/chunks/{[root-of-the-server]__1sm4p209f_yie._.js → [root-of-the-server]__20qdu-env7wgt._.js} +1 -1
  398. package/server/.next/server/chunks/[root-of-the-server]__20qirklw1sgj0._.js +3 -0
  399. package/server/.next/server/chunks/{[root-of-the-server]__0inf2zuuqjrq6._.js → [root-of-the-server]__212-4r-w6a9sm._.js} +2 -2
  400. package/server/.next/server/chunks/_0-5pjvqu672_v._.js +49 -0
  401. package/server/.next/server/chunks/_02qrz1g8sdvhe._.js +49 -0
  402. package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
  403. package/server/.next/server/chunks/_06gv0srpbf_lk._.js +1 -1
  404. package/server/.next/server/chunks/_06lf75x-xhl7v._.js +1 -1
  405. package/server/.next/server/chunks/{_0-ub844lc_z_a._.js → _0ehqx1pkh20px._.js} +3 -3
  406. package/server/.next/server/chunks/{_08z7lmk32r__5._.js → _0jiq3ns7681pv._.js} +3 -3
  407. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  408. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
  409. package/server/.next/server/chunks/_0vgplianlrk3e._.js +3 -0
  410. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
  411. package/server/.next/server/chunks/_1ap0upnvy5i_1._.js +49 -0
  412. package/server/.next/server/chunks/_1b-88djuoexz1._.js +49 -0
  413. package/server/.next/server/chunks/{_0-jfehdfklu-i._.js → _1k3v1-vgvzm_o._.js} +2 -2
  414. package/server/.next/server/chunks/{_1-pv4d4qhe7to._.js → _1t46m15axa4b4._.js} +3 -3
  415. package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +3 -3
  416. package/server/.next/server/chunks/{_0op74d4yyc3ma._.js → node_modules_next_1mwxx95m7177g._.js} +3 -3
  417. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  418. package/server/.next/server/chunks/{src_2108_me3q06ih._.js → src_05be6wzefzaky._.js} +2 -2
  419. package/server/.next/server/chunks/src_05jrvcsgaq5ek._.js +1 -1
  420. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  421. package/server/.next/server/chunks/src_06tyytf_c_hlu._.js +1 -1
  422. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
  423. package/server/.next/server/chunks/src_08fq45_-8xq5o._.js +1 -1
  424. package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +1 -1
  425. package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +1 -1
  426. package/server/.next/server/chunks/{src_0j8daco-75zka._.js → src_0cdn5fuk8f_x2._.js} +2 -2
  427. package/server/.next/server/chunks/src_0dxbyz8iemj_5._.js +1 -1
  428. package/server/.next/server/chunks/src_0hx0sol2clocu._.js +1 -1
  429. package/server/.next/server/chunks/{src_1lvv9wiag2d8-._.js → src_0j84o_hkkaeg-._.js} +2 -2
  430. package/server/.next/server/chunks/src_0u2zbz77uh__q._.js +1 -1
  431. package/server/.next/server/chunks/src_0ud2mqnh4emxz._.js +1 -1
  432. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
  433. package/server/.next/server/chunks/src_10vyvp9vy_69h._.js +1 -1
  434. package/server/.next/server/chunks/src_13n1vi7uew4iu._.js +1 -1
  435. package/server/.next/server/chunks/src_1_fnzi0em_6er._.js +3 -0
  436. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  437. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
  438. package/server/.next/server/chunks/src_1cvp6ubs-3z6l._.js +1 -1
  439. package/server/.next/server/chunks/src_1il7wg_qjxny7._.js +1 -1
  440. package/server/.next/server/chunks/src_1ntwbcb1cl-y9._.js +1 -1
  441. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +5 -5
  442. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  443. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
  444. package/server/.next/server/chunks/src_1wmb2yl3tn-dd._.js +1 -1
  445. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +5 -5
  446. package/server/.next/server/chunks/src_lib_00ixpbvymlbo_._.js +3 -0
  447. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  448. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  449. package/server/.next/server/chunks/src_lib_0j2ifdk5byg1t._.js +3 -0
  450. package/server/.next/server/chunks/src_lib_0ma36vqcze7a9._.js +7 -0
  451. package/server/.next/server/chunks/src_lib_0ps7mu81f-6s1._.js +7 -0
  452. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +10 -10
  453. package/server/.next/server/chunks/src_lib_14grv5a5_n9o0._.js +7 -0
  454. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +10 -10
  455. package/server/.next/server/chunks/src_lib_1iuuekw6uwbbr._.js +3 -0
  456. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +10 -10
  457. package/server/.next/server/chunks/src_lib_1znb-e7g8dkgc._.js +7 -0
  458. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  459. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +3 -3
  460. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
  461. package/server/.next/server/chunks/src_lib_data_cached_ts_017to1fh48jms._.js +3 -0
  462. package/server/.next/server/chunks/src_lib_data_databases-db_ts_04a4hj5j7h8m0._.js +3 -0
  463. package/server/.next/server/chunks/src_lib_data_os-scan-db_ts_0g2a3ofkaxf40._.js +4 -0
  464. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +4 -4
  465. package/server/.next/server/chunks/src_lib_databases_snapshot-data_ts_1xilv6_re7hcp._.js +3 -0
  466. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +5 -5
  467. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +10 -10
  468. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +12 -12
  469. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +10 -10
  470. package/server/.next/server/chunks/src_lib_deps_branch_ts_06dz9-7a66n24._.js +3 -0
  471. package/server/.next/server/chunks/src_lib_deps_osv_ts_0c-lbj4hsmojx._.js +3 -0
  472. package/server/.next/server/chunks/src_lib_deps_plan_ts_0bctf8v4qttk5._.js +1 -1
  473. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  474. package/server/.next/server/chunks/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
  475. package/server/.next/server/chunks/src_lib_view_security_ts_1_c7vkcsp6y27._.js +3 -0
  476. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  477. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  478. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  479. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  480. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  481. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  482. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  483. package/server/.next/server/chunks/ssr/1q96_modules_@tabler_icons-react_dist_esm_icons_IconExternalLink_mjs_19uzq2wmxdb36._.js +3 -0
  484. package/server/.next/server/chunks/ssr/{[externals]__1rj83sktdlxvt._.js → [externals]__00hge8tjqv73a._.js} +1 -1
  485. package/server/.next/server/chunks/ssr/{[externals]__1s7xw086rvse0._.js → [externals]__0summv9f9jkob._.js} +1 -1
  486. package/server/.next/server/chunks/ssr/{[externals]__20leqouf6m6f3._.js → [externals]__1jdljyrzmqoz0._.js} +1 -1
  487. package/server/.next/server/chunks/ssr/{[externals]__02s9k1gg9qqkm._.js → [externals]__1q1drb4oske-9._.js} +1 -1
  488. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  489. package/server/.next/server/chunks/ssr/{[root-of-the-server]__07k_84t5-d55n._.js → [root-of-the-server]__02lkybw6gg3ln._.js} +2 -2
  490. package/server/.next/server/chunks/ssr/[root-of-the-server]__02s29zgn7lrps._.js +3 -0
  491. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1e9tlsk1gl8lw._.js → [root-of-the-server]__03xevz8n-mc20._.js} +3 -3
  492. package/server/.next/server/chunks/ssr/{[root-of-the-server]__077-acap7g4ck._.js → [root-of-the-server]__0423qjo9c2t9-._.js} +1 -1
  493. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0nrc_8-wrhf3y._.js → [root-of-the-server]__04p9ipxxdhqfn._.js} +1 -1
  494. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ct4apye0sfmc._.js → [root-of-the-server]__05s2n35zn4go-._.js} +1 -1
  495. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0fd39clnjw9fb._.js → [root-of-the-server]__06bgklzuef-ya._.js} +2 -2
  496. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1itgt83qo1e77._.js → [root-of-the-server]__07_efq7yhxfj-._.js} +1 -1
  497. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0q7rssq_3unbc._.js → [root-of-the-server]__07zuxj3veqm14._.js} +1 -1
  498. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1qrk2rfmx21b_._.js → [root-of-the-server]__092gsphy4oz6k._.js} +2 -2
  499. package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
  500. package/server/.next/server/chunks/ssr/[root-of-the-server]__0_-fz8cunfpwp._.js +3 -0
  501. package/server/.next/server/chunks/ssr/[root-of-the-server]__0de1senl_kfo5._.js +3 -0
  502. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ee5ew5q3jh8i._.js → [root-of-the-server]__0gyvfp6c-_edw._.js} +2 -2
  503. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
  504. package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
  505. package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
  506. package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +4 -0
  507. package/server/.next/server/chunks/ssr/{[root-of-the-server]__04_prmhm_cts4._.js → [root-of-the-server]__0n4bkq-45z4aa._.js} +1 -1
  508. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0e1s_5gg-u3iu._.js → [root-of-the-server]__0no6c0whevi73._.js} +1 -1
  509. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
  510. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  511. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y2s_4828a5u9._.js +3 -0
  512. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0p86d9imejczs._.js → [root-of-the-server]__0z5ucbis8ik32._.js} +2 -2
  513. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0uxychcp_pldy._.js → [root-of-the-server]__10r0u-q18z71i._.js} +1 -1
  514. package/server/.next/server/chunks/ssr/{[root-of-the-server]__004q78ed0nf0_._.js → [root-of-the-server]__12t9_ndr9z-2d._.js} +1 -1
  515. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hgf7si8htevx._.js → [root-of-the-server]__139ya3ejh6htx._.js} +1 -1
  516. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-zqh1gf4dsj3._.js → [root-of-the-server]__13phmsw9wsyrs._.js} +1 -1
  517. package/server/.next/server/chunks/ssr/[root-of-the-server]__14e0j38785glf._.js +3 -0
  518. package/server/.next/server/chunks/ssr/{[root-of-the-server]__080do5vfu69n5._.js → [root-of-the-server]__157kjredkf1pa._.js} +1 -1
  519. package/server/.next/server/chunks/ssr/{[root-of-the-server]__09j1po2u91fp3._.js → [root-of-the-server]__16jfs8j29r4b5._.js} +2 -2
  520. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0skfdezx5rxie._.js → [root-of-the-server]__183_36tj3p645._.js} +2 -2
  521. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1sw2q1p1t59y8._.js → [root-of-the-server]__18gw74mr2vto3._.js} +2 -2
  522. package/server/.next/server/chunks/ssr/[root-of-the-server]__19twn3g5nv5q1._.js +3 -0
  523. package/server/.next/server/chunks/ssr/[root-of-the-server]__19wvac83zh5-9._.js +3 -0
  524. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  525. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0h9rpg5-lhp5q._.js → [root-of-the-server]__1a5760tg4iits._.js} +2 -2
  526. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0b3g72j9cu141._.js → [root-of-the-server]__1d1ksu1dlha3r._.js} +2 -2
  527. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1y7nfsglxx7cn._.js → [root-of-the-server]__1iqedr7nfvayk._.js} +1 -1
  528. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11paa809_igt_._.js → [root-of-the-server]__1knbzqo0nba_q._.js} +2 -2
  529. package/server/.next/server/chunks/ssr/{[root-of-the-server]__05_98ql5tgeii._.js → [root-of-the-server]__1m38od9tgaroe._.js} +1 -1
  530. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ed6qo3lg9_f9._.js → [root-of-the-server]__1mah0p09qrkpu._.js} +2 -2
  531. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1v3b498_j-68t._.js → [root-of-the-server]__1mxpszbk1aup8._.js} +3 -3
  532. package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
  533. package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +3 -0
  534. package/server/.next/server/chunks/ssr/{_0azq3ml4gbn1d._.js → _01n29sxn-py3x._.js} +2 -2
  535. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  536. package/server/.next/server/chunks/ssr/_03d3sxmob-gr7._.js +3 -0
  537. package/server/.next/server/chunks/ssr/{_1wfjx67s3e6ws._.js → _04mnjz5cekpue._.js} +1 -1
  538. package/server/.next/server/chunks/ssr/_08rjac8cutbcs._.js +3 -0
  539. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  540. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  541. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  542. package/server/.next/server/chunks/ssr/{_1ah_xx0-cty-v._.js → _0aznz0i-8olet._.js} +1 -1
  543. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  544. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  545. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  546. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  547. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  548. package/server/.next/server/chunks/ssr/_0dvz4dndt6lkf._.js +1 -1
  549. package/server/.next/server/chunks/ssr/_0eu69r0sm274b._.js +3 -0
  550. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  551. package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
  552. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  553. package/server/.next/server/chunks/ssr/_0iaoiq9xbkdma._.js +3 -0
  554. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  555. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
  556. package/server/.next/server/chunks/ssr/_0k2qpgzlqzc_p._.js +1 -1
  557. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  558. package/server/.next/server/chunks/ssr/_0lb1euzjakqbr._.js +3 -0
  559. package/server/.next/server/chunks/ssr/{_0_vfnz8i8hac7._.js → _0mhwgy5lvtng0._.js} +1 -1
  560. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  561. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  562. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  563. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  564. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  565. package/server/.next/server/chunks/ssr/{_1er-95g7emfdz._.js → _0u5_d3o0i72tq._.js} +2 -2
  566. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  567. package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +4 -0
  568. package/server/.next/server/chunks/ssr/_0vgplianlrk3e._.js +3 -0
  569. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  570. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
  571. package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +3 -0
  572. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
  573. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  574. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  575. package/server/.next/server/chunks/ssr/{_1xokm14jd0teg._.js → _113tc44xki0cp._.js} +1 -1
  576. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  577. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  578. package/server/.next/server/chunks/ssr/{_0f11sdi6yislb._.js → _13bpjk3g0tp2e._.js} +2 -2
  579. package/server/.next/server/chunks/ssr/_16vvfyez78u5k._.js +3 -0
  580. package/server/.next/server/chunks/ssr/{_1jl374mbl90fb._.js → _17tabyg0mhxlx._.js} +2 -2
  581. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_19-n2kl-knt0j._.js +3 -0
  583. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  584. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  585. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_1d0anr0hjs5k5._.js +3 -0
  587. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  588. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  589. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  590. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  592. package/server/.next/server/chunks/ssr/_1i96si4hzn74p._.js +1 -1
  593. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  594. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_1lgb0h9z-8z15._.js +3 -0
  596. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  597. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  598. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  599. package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +3 -0
  600. package/server/.next/server/chunks/ssr/_1qsshadaq_-6p._.js +3 -0
  601. package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +4 -0
  602. package/server/.next/server/chunks/ssr/{_1nzncndn-1ggb._.js → _1xbmdurub1ykt._.js} +1 -1
  603. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  604. package/server/.next/server/chunks/ssr/{_1h7x73oxtp7h5._.js → _1ykegy3wzl3mu._.js} +2 -2
  605. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  606. package/server/.next/server/chunks/ssr/{_1_ct-7kmkfab1._.js → _1znzrmlfouh6k._.js} +1 -1
  607. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  608. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  609. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  610. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +4 -0
  611. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  612. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  613. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +3 -0
  614. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  615. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  616. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  617. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  618. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  619. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  620. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  621. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  622. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  623. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  624. package/server/.next/server/chunks/ssr/{node_modules_@tabler_icons-react_dist_esm_icons_0904ro5eqxhlr._.js → node_modules_@tabler_icons-react_dist_esm_icons_0b7guexr5je6g._.js} +1 -1
  625. package/server/.next/server/chunks/ssr/{node_modules_@tabler_icons-react_dist_esm_icons_07e6iv4064369._.js → node_modules_@tabler_icons-react_dist_esm_icons_0ej-u2f-ha9q0._.js} +1 -1
  626. package/server/.next/server/chunks/ssr/{node_modules_@tabler_icons-react_dist_esm_icons_1uzp0vue7-c9z._.js → node_modules_@tabler_icons-react_dist_esm_icons_1nstb42fu_h0p._.js} +1 -1
  627. package/server/.next/server/chunks/ssr/node_modules_class-variance-authority_dist_index_mjs_0wl3fjdt40o5n._.js +3 -0
  628. package/server/.next/server/chunks/ssr/{_1b4uqc9fwt4dy._.js → node_modules_next_1mwxx95m7177g._.js} +2 -2
  629. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hrjtaoa__ix8.js +3 -0
  630. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0slepiv25mpch.js +3 -0
  631. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1oqgmgc8y6yxj.js +3 -0
  632. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  633. package/server/.next/server/chunks/ssr/src_05mcsr-od-9ug._.js +3 -0
  634. package/server/.next/server/chunks/ssr/src_0632mrev4i__u._.js +3 -0
  635. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  636. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  637. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  638. package/server/.next/server/chunks/ssr/src_0c62tj2aysn_e._.js +3 -0
  639. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
  640. package/server/.next/server/chunks/ssr/src_0k2rwfjheyrf7._.js +1 -1
  641. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
  642. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  643. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +2 -2
  644. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  645. package/server/.next/server/chunks/ssr/src_13u1vu8hwwr6n._.js +3 -0
  646. package/server/.next/server/chunks/ssr/src_14bxi75kwc3xt._.js +3 -0
  647. package/server/.next/server/chunks/ssr/src_15mtytgydjtio._.js +3 -0
  648. package/server/.next/server/chunks/ssr/{src_14ulgwoxoyfkq._.js → src_1_9q6-wstn038._.js} +2 -2
  649. package/server/.next/server/chunks/ssr/src_1emolu5lrse98._.js +6 -0
  650. package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +3 -3
  651. package/server/.next/server/chunks/ssr/src_1ntwbcb1cl-y9._.js +1 -1
  652. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  653. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  654. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  655. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  656. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  657. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  658. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  659. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  660. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  661. package/server/.next/server/chunks/ssr/src_app_(console)_0_odx13qcz9o1._.js +3 -0
  662. package/server/.next/server/chunks/ssr/{src_app_(console)_11o_ga_rurg55._.js → src_app_(console)_0gw9o1og9hq_4._.js} +2 -2
  663. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  664. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +3 -0
  665. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  666. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  667. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  668. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +3 -0
  671. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  672. package/server/.next/server/chunks/ssr/src_app_(console)_deploy_0zeo9k66pzhae._.js +3 -0
  673. package/server/.next/server/chunks/ssr/src_app_(console)_deploy_deploy-picker_tsx_1qtt_mfhq6hx7._.js +3 -0
  674. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  675. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  676. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  679. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  680. package/server/.next/server/chunks/ssr/src_app_(console)_os_09ake6nf7de4h._.js +3 -0
  681. package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +3 -0
  682. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  683. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  684. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  686. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  687. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  688. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  689. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  691. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  692. package/server/.next/server/chunks/ssr/{src_app_signin_0u6eoxbd8ttqy._.js → src_app_signin_1u2md84o5b6td._.js} +2 -2
  693. package/server/.next/server/chunks/ssr/src_components_174vbjanfxq81._.js +3 -0
  694. package/server/.next/server/chunks/ssr/{src_components_0ozvphxxwb7d-._.js → src_components_1pmro72g7f44k._.js} +1 -1
  695. package/server/.next/server/chunks/ssr/src_components_charts_tsx_0u0c5sxi3-7ug._.js +1 -1
  696. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  697. package/server/.next/server/chunks/ssr/src_components_live_tsx_1p2s3b807w0jt._.js +1 -1
  698. package/server/.next/server/chunks/ssr/src_lib_00ixpbvymlbo_._.js +3 -0
  699. package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
  700. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  701. package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
  702. package/server/.next/server/chunks/ssr/src_lib_0j2ifdk5byg1t._.js +3 -0
  703. package/server/.next/server/chunks/ssr/src_lib_0nbad7vu413-f._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_lib_1-o98ehvb_ozi._.js +3 -0
  705. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_lib_1iuuekw6uwbbr._.js +3 -0
  707. package/server/.next/server/chunks/ssr/{src_lib_0-nc33gvdtkg5._.js → src_lib_1zgor_vrwl5kt._.js} +1 -1
  708. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_lib_data_cached_ts_017to1fh48jms._.js +3 -0
  710. package/server/.next/server/chunks/ssr/src_lib_data_databases-db_ts_04a4hj5j7h8m0._.js +3 -0
  711. package/server/.next/server/chunks/ssr/src_lib_data_os-scan-db_ts_0g2a3ofkaxf40._.js +4 -0
  712. package/server/.next/server/chunks/ssr/src_lib_data_provider-action-db_ts_0-bucssqnudtd._.js +1 -1
  713. package/server/.next/server/chunks/ssr/src_lib_data_repos-db_ts_06z14rp86ukii._.js +3 -0
  714. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +2 -2
  715. package/server/.next/server/chunks/ssr/src_lib_databases_snapshot-data_ts_1xilv6_re7hcp._.js +3 -0
  716. package/server/.next/server/chunks/ssr/{src_lib_demo_0sbw5n9n4mpzx._.js → src_lib_demo_15e3gnqzod0tj._.js} +2 -2
  717. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +1 -1
  718. package/server/.next/server/chunks/ssr/src_lib_deps_branch_ts_06dz9-7a66n24._.js +3 -0
  719. package/server/.next/server/chunks/ssr/src_lib_deps_osv_ts_0c-lbj4hsmojx._.js +3 -0
  720. package/server/.next/server/chunks/ssr/src_lib_deps_plan_ts_0bctf8v4qttk5._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_lib_providers_github-browse_ts_1apskpn4fe9qr._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_lib_view_security_ts_1_c7vkcsp6y27._.js +3 -0
  724. package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_private_ui_0jp9fny_5k1v6._.js +1 -1
  730. package/server/.next/server/middleware-build-manifest.js +36 -3
  731. package/server/.next/server/next-font-manifest.js +1 -1
  732. package/server/.next/server/next-font-manifest.json +12 -0
  733. package/server/.next/server/pages/404.html +1 -1
  734. package/server/.next/server/pages/500.html +1 -1
  735. package/server/.next/server/preview-props.json +3 -3
  736. package/server/.next/server/server-reference-manifest.js +1 -1
  737. package/server/.next/server/server-reference-manifest.json +378 -176
  738. package/server/.next/static/chunks/{12vmyliqgjlbi.js → 00e1aosyzj6rl.js} +1 -1
  739. package/server/.next/static/chunks/{2ockms4mqiec_.js → 0cc9ahw1xs0ny.js} +1 -1
  740. package/server/.next/static/chunks/{3w26qimof6fnj.js → 0hths0sijlql2.js} +1 -1
  741. package/server/.next/static/chunks/{1t9iq0wi3ykuc.js → 0hzw1rqyz-ith.js} +1 -1
  742. package/server/.next/static/chunks/0ish66r3_d92v.js +1 -0
  743. package/server/.next/static/chunks/{25erhrojc-1fi.js → 0ps76fyk0mlud.js} +1 -1
  744. package/server/.next/static/chunks/{310xe703zu_qp.js → 0rblb2d9s6x__.js} +1 -1
  745. package/server/.next/static/chunks/{2e195xkcjq72y.js → 0v-0yvs2o_ibn.js} +1 -1
  746. package/server/.next/static/chunks/{131_xlsbuxnhr.js → 0viea3-xdb4uv.js} +1 -1
  747. package/server/.next/static/chunks/{36wyyf_gobe7n.js → 11r8k-t1ijjkn.js} +1 -1
  748. package/server/.next/static/chunks/{29v9jg7vw7brb.js → 14f5pn2krqoyh.js} +1 -1
  749. package/server/.next/static/chunks/{1crspgs6bd_rg.js → 17zst1h7smcce.js} +1 -1
  750. package/server/.next/static/chunks/{3_5xff9sl-2e3.js → 1a0rdqp6soc92.js} +1 -1
  751. package/server/.next/static/chunks/{2dbx53nx6f-9f.js → 1a7zdd51t9mil.js} +2 -2
  752. package/server/.next/static/chunks/{2gv1tg_m49u9m.js → 1d4i_v63pyozl.js} +1 -1
  753. package/server/.next/static/chunks/{1vuqw31-hmrxb.js → 1d5651gcd0bfq.js} +1 -1
  754. package/server/.next/static/chunks/{2fp4pmte8dtbb.js → 1fh3cq_v5nqtp.js} +1 -1
  755. package/server/.next/static/chunks/1fk-rtgxvtdso.js +1 -0
  756. package/server/.next/static/chunks/1kyz-ah3_ho6c.js +1 -0
  757. package/server/.next/static/chunks/{146uoz7wc8q2y.js → 1qjg48qu3j1w4.js} +1 -1
  758. package/server/.next/static/chunks/{0v5xmga7srjvl.js → 1qmrzxeff7esb.js} +1 -1
  759. package/server/.next/static/chunks/{2tnbp3f6x0jv_.js → 1rgved8vjyay2.js} +1 -1
  760. package/server/.next/static/chunks/{2vxmvnntekclp.js → 1y_o3hc2z85sh.js} +1 -1
  761. package/server/.next/static/chunks/{06o7zhf9tv649.js → 1yjrm8ekqlzfy.js} +1 -1
  762. package/server/.next/static/chunks/{3-8by5unw1j-r.js → 2-ijilf6lbw4f.js} +1 -1
  763. package/server/.next/static/chunks/{1h0025pjnwxmg.js → 2-vu-7596xgz-.js} +2 -2
  764. package/server/.next/static/chunks/{0x_wb_w6fgkyt.js → 226fbv9fq4xq_.js} +1 -1
  765. package/server/.next/static/chunks/{1ouf289jk00f3.js → 26exu0f7ok41j.js} +1 -1
  766. package/server/.next/static/chunks/{0bkm_mj9zqjdn.js → 28fzu8z0ofyw0.js} +1 -1
  767. package/server/.next/static/chunks/2c2oi6ivdnv6f.js +1 -0
  768. package/server/.next/static/chunks/{0lgt6mz4u8rzx.js → 2crsj9_2h2nzh.js} +1 -1
  769. package/server/.next/static/chunks/2d7luax7loip3.js +1 -0
  770. package/server/.next/static/chunks/{33z05hmv7hw1s.js → 2j24hsy45xi-u.js} +1 -1
  771. package/server/.next/static/chunks/{3cvrxnnojhvxz.js → 2k4z-oed_6g2l.js} +1 -1
  772. package/server/.next/static/chunks/{1z85thzinc0kx.js → 2kmw3ug2__8y3.js} +1 -1
  773. package/server/.next/static/chunks/2owzn0qjb8n5g.js +1 -0
  774. package/server/.next/static/chunks/{3s3unktz7g7f0.js → 2pa65sxfnzj4k.js} +1 -1
  775. package/server/.next/static/chunks/2zzk4wxiacgja.css +3 -0
  776. package/server/.next/static/chunks/{3fais-5rzury8.js → 308vk5n0anqam.js} +2 -2
  777. package/server/.next/static/chunks/{29sduk6krs_b1.js → 356b00huilj4q.js} +1 -1
  778. package/server/.next/static/chunks/{3z70obsntezy0.js → 35vilzb1p9yjf.js} +1 -1
  779. package/server/.next/static/chunks/39a3uxexc-wqm.js +1 -0
  780. package/server/.next/static/chunks/{0zzbinjpe41vj.js → 3_6-4h_qltoii.js} +1 -1
  781. package/server/.next/static/chunks/3a9toq_3nqe93.js +1 -0
  782. package/server/.next/static/chunks/{3gj8dc0o09zl6.js → 3ezef0voy5xju.js} +1 -1
  783. package/server/.next/static/chunks/{1u4r7ru8i619_.js → 3f1selgoqszyq.js} +2 -2
  784. package/server/.next/static/chunks/{0inb7hk8o9yz-.js → 3g0ywdith98z2.js} +1 -1
  785. package/server/.next/static/chunks/{0un8ttgrt0gtq.js → 3lc-hq-bpg71u.js} +1 -1
  786. package/server/.next/static/chunks/3qudv985iqmz7.js +1 -0
  787. package/server/.next/static/chunks/{2uu38i0lq_wlc.js → 3u2qewigse-a4.js} +1 -1
  788. package/server/.next/static/chunks/{2uufhbm18_cri.js → 3w5rrc-0xud6m.js} +1 -1
  789. package/server/.next/static/chunks/{2p-ty5g5uq133.js → 3wfyge_-2qnyj.js} +1 -1
  790. package/server/.next/static/chunks/{1sds57ddvk_30.js → 3xulo5x1hbsw-.js} +1 -1
  791. package/server/.next/static/chunks/44hkyor0suthy.js +1 -0
  792. package/server/drizzle-selfhost/0008_ci_failing_rule.sql +2 -0
  793. package/server/drizzle-selfhost/0009_os_security_rule.sql +2 -0
  794. package/server/drizzle-selfhost/0010_supabase_metrics_memory.sql +8 -0
  795. package/server/drizzle-selfhost/meta/_journal.json +82 -61
  796. package/server/.next/server/chunks/[root-of-the-server]__038br8sr9eepd._.js +0 -3
  797. package/server/.next/server/chunks/[root-of-the-server]__0a5op--7u5_xh._.js +0 -3
  798. package/server/.next/server/chunks/[root-of-the-server]__0r3cq1lecww4e._.js +0 -3
  799. package/server/.next/server/chunks/[root-of-the-server]__0r_6xpjwcdrda._.js +0 -3
  800. package/server/.next/server/chunks/[root-of-the-server]__0rctmpp7p7cp9._.js +0 -3
  801. package/server/.next/server/chunks/[root-of-the-server]__0rpys5i04hzww._.js +0 -3
  802. package/server/.next/server/chunks/[root-of-the-server]__0vax5gpdmh80a._.js +0 -3
  803. package/server/.next/server/chunks/[root-of-the-server]__0vv63vp8y0fs-._.js +0 -3
  804. package/server/.next/server/chunks/[root-of-the-server]__0ycpg444s91lb._.js +0 -3
  805. package/server/.next/server/chunks/[root-of-the-server]__0zjhlf_yodox3._.js +0 -3
  806. package/server/.next/server/chunks/[root-of-the-server]__1-37ctpn8yw_m._.js +0 -3
  807. package/server/.next/server/chunks/[root-of-the-server]__1-ne3clcouvm2._.js +0 -3
  808. package/server/.next/server/chunks/[root-of-the-server]__14vj8ywy5spa2._.js +0 -3
  809. package/server/.next/server/chunks/[root-of-the-server]__16jyhasrd2ojp._.js +0 -3
  810. package/server/.next/server/chunks/[root-of-the-server]__16u9d_hm9lefl._.js +0 -3
  811. package/server/.next/server/chunks/[root-of-the-server]__1_zr2xlmtkn4l._.js +0 -3
  812. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
  813. package/server/.next/server/chunks/[root-of-the-server]__1aagly59gw-xf._.js +0 -3
  814. package/server/.next/server/chunks/[root-of-the-server]__1c0cb3ur16yhh._.js +0 -3
  815. package/server/.next/server/chunks/[root-of-the-server]__1jvy8r4n-62x7._.js +0 -3
  816. package/server/.next/server/chunks/[root-of-the-server]__1k-7jan2fsbys._.js +0 -3
  817. package/server/.next/server/chunks/[root-of-the-server]__1qmdi981syrsn._.js +0 -3
  818. package/server/.next/server/chunks/[root-of-the-server]__1r9v6qgjwlv32._.js +0 -3
  819. package/server/.next/server/chunks/[root-of-the-server]__1uad-kugxmkx8._.js +0 -3
  820. package/server/.next/server/chunks/_0ffsv993spriq._.js +0 -3
  821. package/server/.next/server/chunks/_0nt4ifc48vl34._.js +0 -48
  822. package/server/.next/server/chunks/_0rkn5gstaj2d0._.js +0 -48
  823. package/server/.next/server/chunks/_1_4jb754aeifp._.js +0 -48
  824. package/server/.next/server/chunks/_1d_77nvqcnkcg._.js +0 -3
  825. package/server/.next/server/chunks/_1qsryafbujfwn._.js +0 -48
  826. package/server/.next/server/chunks/src_05vq-abuilwk4._.js +0 -3
  827. package/server/.next/server/chunks/src_06lwphwuzgl6e._.js +0 -3
  828. package/server/.next/server/chunks/src_1p24c-nz35cov._.js +0 -3
  829. package/server/.next/server/chunks/src_20sym_ohuqw76._.js +0 -3
  830. package/server/.next/server/chunks/src_lib_001zhbfd1zeuk._.js +0 -3
  831. package/server/.next/server/chunks/src_lib_0k_aposzvy1c8._.js +0 -6
  832. package/server/.next/server/chunks/src_lib_0n1xnas42gur9._.js +0 -3
  833. package/server/.next/server/chunks/src_lib_0vjapfdxkooq5._.js +0 -6
  834. package/server/.next/server/chunks/src_lib_0yn0bj14ih0id._.js +0 -6
  835. package/server/.next/server/chunks/src_lib_18wgdeemqm6gg._.js +0 -3
  836. package/server/.next/server/chunks/src_lib_1qbgm0zu8q1rr._.js +0 -6
  837. package/server/.next/server/chunks/src_lib_1ywf_wup1kxy_._.js +0 -3
  838. package/server/.next/server/chunks/src_private_123pnf7iqjhkz._.js +0 -3
  839. package/server/.next/server/chunks/ssr/[root-of-the-server]__03mal5uo1rzg4._.js +0 -3
  840. package/server/.next/server/chunks/ssr/[root-of-the-server]__0s2of3mcou177._.js +0 -3
  841. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tqqte5jb6jz7._.js +0 -3
  842. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ujxsp9l9ad-l._.js +0 -3
  843. package/server/.next/server/chunks/ssr/[root-of-the-server]__113zn8es2wp67._.js +0 -3
  844. package/server/.next/server/chunks/ssr/_09arvqnznfrzl._.js +0 -3
  845. package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +0 -3
  846. package/server/.next/server/chunks/ssr/_0_8v3-nq-b4ug._.js +0 -3
  847. package/server/.next/server/chunks/ssr/_0ffsv993spriq._.js +0 -3
  848. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +0 -3
  849. package/server/.next/server/chunks/ssr/_12wjuabpo0ofk._.js +0 -3
  850. package/server/.next/server/chunks/ssr/_1js_iq-0mb62d._.js +0 -3
  851. package/server/.next/server/chunks/ssr/_1ktvwngz0lzjr._.js +0 -3
  852. package/server/.next/server/chunks/ssr/_1st-ksb6wm2og._.js +0 -3
  853. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1--1mjfnoprr2.js +0 -3
  854. package/server/.next/server/chunks/ssr/src_04o0-kzfmcnim._.js +0 -3
  855. package/server/.next/server/chunks/ssr/src_0dceh6hsdybq8._.js +0 -3
  856. package/server/.next/server/chunks/ssr/src_1-k3gvxaqli74._.js +0 -3
  857. package/server/.next/server/chunks/ssr/src_1ckoccd8qvnje._.js +0 -3
  858. package/server/.next/server/chunks/ssr/src_1p24c-nz35cov._.js +0 -3
  859. package/server/.next/server/chunks/ssr/src_1wnx8vxv7nd04._.js +0 -3
  860. package/server/.next/server/chunks/ssr/src_app_(console)_0u4_y9-b7g971._.js +0 -3
  861. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_10xvt--29v-ed._.js +0 -3
  862. package/server/.next/server/chunks/ssr/src_lib_001zhbfd1zeuk._.js +0 -3
  863. package/server/.next/server/chunks/ssr/src_lib_033ses2c4-ww-._.js +0 -3
  864. package/server/.next/server/chunks/ssr/src_lib_0n1xnas42gur9._.js +0 -3
  865. package/server/.next/server/chunks/ssr/src_lib_18wgdeemqm6gg._.js +0 -3
  866. package/server/.next/server/chunks/ssr/src_lib_1ywf_wup1kxy_._.js +0 -3
  867. package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +0 -6
  868. package/server/.next/static/chunks/0d609c7qn6uke.js +0 -1
  869. package/server/.next/static/chunks/0ghhg0xs85ipn.js +0 -1
  870. package/server/.next/static/chunks/0r-etc_jv_08f.js +0 -1
  871. package/server/.next/static/chunks/11locca8ayu84.js +0 -1
  872. package/server/.next/static/chunks/1tg1mstvws8rj.css +0 -3
  873. package/server/.next/static/chunks/2xhqwi0hiv_70.js +0 -1
  874. package/server/.next/static/chunks/38ao1jq4zw-nd.js +0 -1
  875. /package/server/.next/static/{WqHYD3Noq8qkEPXvfVDGQ → g_rE0bq_ZZa-pl4RulWXV}/_buildManifest.js +0 -0
  876. /package/server/.next/static/{WqHYD3Noq8qkEPXvfVDGQ → g_rE0bq_ZZa-pl4RulWXV}/_clientMiddlewareManifest.js +0 -0
  877. /package/server/.next/static/{WqHYD3Noq8qkEPXvfVDGQ → g_rE0bq_ZZa-pl4RulWXV}/_ssgManifest.js +0 -0
@@ -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)("60e02b62b440da76a5c5c272eede90db408772ce0e",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)("40e7cffc54aede87769740ba87d6265d7f52824ee7",x.callServer,void 0,x.findSourceMapURL,"saveDigest"),g=(0,x.createServerReference)("40c95fe387d1cbf2f068bfaddea082fa7194f78005",x.callServer,void 0,x.findSourceMapURL,"saveDiscord"),f=(0,x.createServerReference)("40c552c2a2fce435c31b3b69b4956976b5ca32a190",x.callServer,void 0,x.findSourceMapURL,"saveSmtp"),v=(0,x.createServerReference)("60a5c4be0ad9782955c66851d6fc9573842a8aae1d",x.callServer,void 0,x.findSourceMapURL,"saveTelegram"),y=(0,x.createServerReference)("607e50fb15c9f31e185edd1ee22e290c9b89a04152",x.callServer,void 0,x.findSourceMapURL,"saveWebhook"),k=(0,x.createServerReference)("40fa5e35ee4e37c86fae0afd3daa9810b9e8336767",x.callServer,void 0,x.findSourceMapURL,"sendTest"),S=(0,x.createServerReference)("60070007f5b5f5a05a3bc4b74acf6e28bc1e77d157",x.callServer,void 0,x.findSourceMapURL,"setChannelEnabled"),w=(0,x.createServerReference)("003e0c6687d4a705e8e32dc173ecd12585e412bfd0",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,I]=(0,o.useTransition)();(0,h.useHoldRefresh)(r);let _=j[e],H=_.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){I(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)(H,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(u.F,{className:"text-base",children:_.title}),(0,t.jsx)(u.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:_.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)("60b62be4d3af8b2f62a295e47285dc16c0072dbeb8",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)"},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)("6071be03b87dcab6d2aaf493221d64e0a7f20312ea",h.callServer,void 0,h.findSourceMapURL,"editRule"),p=(0,h.createServerReference)("60110208543b9d51193698a4329ca08d2e3e2d7c4f",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)("005b093a15659d58a7d0cd2a5f2b2242278ccd6339",i.callServer,void 0,i.findSourceMapURL,"approvalsStatus"),o=(0,i.createServerReference)("006ede53dafa5cf7c9f2fb7aaef0beb1469e70234b",i.callServer,void 0,i.findSourceMapURL,"disableApprovals"),d=(0,i.createServerReference)("00fdaf5bb3048f1ccd5a23d8c8277bae4a066c2520",i.callServer,void 0,i.findSourceMapURL,"enableApprovals"),c=(0,i.createServerReference)("0061f02117e851530210d7a8a1910b72956f3f9fe1",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
+ (()=>{"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,g]=(0,s.useState)(!1),[b,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({})),g(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??""),g(!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(),$({...b,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:b.severity,onChange:e=>f({...b,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:b.threshold,onChange:e=>f({...b,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:b.channels.includes(e),onChange:t=>{let a;return a=t.target.checked,f({...b,channels:a?[...b.channels,e]:b.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:b.enabled,onChange:e=>f({...b,enabled:e.target.checked})}),"Rule is on"]}),(0,t.jsx)(T,{ruleKey:e.key,severity:b.severity,threshold:b.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||!b.channels.some(e=>"email_digest"!==e),onClick:function(){N(async()=>{try{let t=await p(e.key,{...b,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)("00fe17fca639721e63f5aaf982290d5bd7806da4db",i.callServer,void 0,i.findSourceMapURL,"approvalsStatus"),o=(0,i.createServerReference)("008a29f852dfa2c18407e616ec8d9f05f599a943f8",i.callServer,void 0,i.findSourceMapURL,"disableApprovals"),d=(0,i.createServerReference)("00fcf52b9786d63e941901a56935dcc2c9128ab9d9",i.callServer,void 0,i.findSourceMapURL,"enableApprovals"),c=(0,i.createServerReference)("004f8023ef403ce9d01956493af326e143edc52dc5",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,g]=(0,a.useTransition)();function b(e,t){g(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:()=>b(d),children:x?"Working…":"Turn on"}),e?.on&&(0,t.jsx)(n.K,{size:"sm",disabled:x,onClick:function(){g(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:()=>b(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,399582,e=>{let t=(0,e.i(33550).f)("outline","copy","Copy",[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);e.s(["f",0,t],399582)},617708,e=>{let t=(0,e.i(33550).f)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);e.s(["f",0,t],617708)},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 s;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:i,defaultVariants:o}=t,l=Object.keys(i).map(e=>{let t=null==a?void 0:a[e],r=null==o?void 0:o[e];if(null===t)return null;let s=n(t)||n(r);return i[e][s]}),c=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==(s=t.compoundVariants)?void 0:s.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({...o,...c}[t]):({...o,...c})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),s=e.i(846696),i=e.i(428325),o=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:c,onOpenChange:d,title:u,body:p,cta:h,danger:f=!1,onConfirm:m}){let[x,g]=(0,a.useState)(!1),b=c??x,[v,j]=(0,a.useTransition)();function y(e){void 0===c&&g(e),d?.(e)}return(0,o.useHoldRefresh)(b),(0,t.jsxs)(l.N,{open:b,onOpenChange:e=>{v||y(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 ${f?"text-err":"text-ink-soft"}`,children:f?(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:u}),(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)(i.K,{onClick:()=>y(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(i.K,{variant:f?"danger":"primary",onClick:function(){j(async()=>{try{let e=await m();e.ok?(s.c.success(e.message),y(!1)):s.c.error(e.message)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:v,children:v?"Working…":h})]})]})]})}])},688656,e=>{var t=e.i(843476),n=e.i(617708),r=e.i(944971),a=e.i(271645),s=e.i(846696),i=e.i(95187);let o=(0,i.createServerReference)("60587ac2f8081bf4b7b2aaa22835f8b78fef3da6a8",i.callServer,void 0,i.findSourceMapURL,"createOptionsAction"),l=(0,i.createServerReference)("0061f0b9936d7db941a25ed291dafa89c1e3daadd5",i.callServer,void 0,i.findSourceMapURL,"disconnectGoogleCreate"),c=(0,i.createServerReference)("70480174284f20f404ee28cda859a33544c5ad3579",i.callServer,void 0,i.findSourceMapURL,"requestCreateAction"),d=(0,i.createServerReference)("003b036ff191677f304a17b3c2abebe02e9cf79d75",i.callServer,void 0,i.findSourceMapURL,"startGoogleCreateConnect");var u=e.i(54131),p=e.i(46200),h=e.i(428325),f=e.i(500443),m=e.i(776639);let x=["This asks Google for the cloud-platform permission: it is broad (it can manage every Google Cloud project you own), so the console uses it only to create a project and add Firebase to it after your approval, and never to change or delete anything.","Google shows an \"unverified app\" warning because Watchbell's OAuth client isn't verified for this scope. It is your own client for your own use: choose Advanced → Go to Watchbell.","While the OAuth consent screen is in Testing mode, Google ends this grant after 7 days; connect again when a create says so. Remove it any time in your Google Account → Security → Third-party access."];r.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0);var g=e.i(552978);e.i(322534);var b=e.i(450547);let v=(e,t=300)=>"string"==typeof e&&e.length<=t?e:"",j=(e,t)=>({ok:!1,field:e,error:t}),y=/^(?:\*|[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?)$/,k=/^[a-z0-9][a-z0-9-]{0,62}$/,N=/^br-[a-z0-9-]{3,60}$/,C=[["ap-southeast-1","Southeast Asia (Singapore)"],["ap-northeast-1","Northeast Asia (Tokyo)"],["ap-northeast-2","Northeast Asia (Seoul)"],["ap-southeast-2","Oceania (Sydney)"],["ap-south-1","South Asia (Mumbai)"],["ap-east-1","East Asia (Hong Kong)"],["us-east-1","East US (North Virginia)"],["us-east-2","East US (Ohio)"],["us-west-1","West US (North California)"],["us-west-2","West US (Oregon)"],["ca-central-1","Canada (Central)"],["sa-east-1","South America (São Paulo)"],["eu-west-1","West EU (Ireland)"],["eu-west-2","West EU (London)"],["eu-west-3","West EU (Paris)"],["eu-north-1","North EU (Stockholm)"],["eu-central-1","Central EU (Frankfurt)"],["eu-central-2","Central EU (Zurich)"]],w=C.map(([e])=>e),S=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,62}$/,A=/^[\w-]{1,64}$/,$=/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/,T=/^[A-Za-z0-9 '"!-]{4,30}$/;var _=e.i(212253);let z={dns_record:"The name must be new in this zone. Proxied is off unless you turn it on.",neon_branch:"The branch is created without a compute, so it uses no CU-hours until you wake it. Waking it later uses CU-hours (100 a month per project on the free plan).",supabase_project:"Only an organization on the free plan is allowed. The database password is generated when the Owner approves and shown once.",firebase_project:"A Google Cloud project without a billing account (the free Spark plan), then Firebase is added to it."};function E({type:e,target:n,targetName:r,onDone:i}){let l=(0,u.useMask)(),[d,p]=(0,a.useState)(null),[f,x]=(0,a.useState)(null),[C,_]=(0,a.useState)(n),[L,G]=(0,a.useState)({type:"CNAME",ttl:b.k,proxied:!1,region:"ap-southeast-1"}),[I,P]=(0,a.useState)(null),[U,F]=(0,a.useTransition)(),D=(e,t)=>G(n=>({...n,[e]:t}));(0,a.useEffect)(()=>{let t=!0;return o(e,C).then(e=>{if(t)if(e.ok&&e.data){if(p(e.data),"neon_branch"===e.data.type){let t=(e.data.branches.find(e=>e.isDefault)??e.data.branches[0])?.id??"";G(e=>({...e,parentId:e.parentId??t}))}if("supabase_project"===e.data.type){e.data.accountId&&e.data.accountId!==C&&_(e.data.accountId);let t=e.data.orgs.find(e=>e.allowed);t&&G(e=>({...e,orgSlug:t.slug}))}}else x(e.ok?"Something went wrong.":e.error)}).catch(()=>t&&x("Couldn't load the choices. Try again.")),()=>{t=!1}},[e,C]);let K=e=>I?.field===e?I.text:void 0,W=d?.type==="firebase_project"&&(!d.envReady||!d.connected);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsx)(m.F,{className:"text-base",children:l("text",`New ${g.S[e]}${"dns_record"===e||"neon_branch"===e?` in ${r}`:""}`)}),(0,t.jsxs)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[z[e]," This only asks: the Owner approves it with the authenticator code, then the console checks the free tier again and makes one create call at ",g.E[e],"."]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[f&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"danger",title:"Couldn't read the live choices",children:f})}),!d&&!f&&(0,t.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Reading the live choices…"}),"dns_record"===e&&(0,t.jsx)(O,{v:L,set:D,fe:K,zone:r}),"neon_branch"===e&&d?.type==="neon_branch"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[d.branches.length," of ",d.limit," branches used in this project."]}),(0,t.jsx)(h.O,{id:"cr-parent",label:"Copy from branch",error:K("parentId"),children:(0,t.jsx)("select",{id:"cr-parent",className:h.S,value:String(L.parentId??""),onChange:e=>D("parentId",e.target.value),children:d.branches.map(e=>(0,t.jsxs)("option",{value:e.id,children:[l("text",e.name),e.isDefault?" (default)":""]},e.id))})}),(0,t.jsx)(h.O,{id:"cr-name",label:"New branch name",error:K("name"),help:"Lower-case letters, digits and hyphens, like preview-42.",children:(0,t.jsx)("input",{id:"cr-name",className:h.S,value:String(L.name??""),maxLength:63,spellCheck:!1,autoComplete:"off",onChange:e=>D("name",e.target.value)})})]}),"supabase_project"===e&&d?.type==="supabase_project"&&(0,t.jsx)(M,{opts:d,v:L,set:D,fe:K,account:C,setAccount:_}),"firebase_project"===e&&d?.type==="firebase_project"&&(0,t.jsx)(R,{opts:d,v:L,set:D,fe:K}),I?.field==="form"&&(0,t.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:I.text})]}),(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)(h.K,{onClick:i,disabled:U,children:"Cancel"}),(0,t.jsx)(h.K,{variant:"primary",onClick:function(){let t;(t="dns_record"===e?function(e,t){let n=e??{},r=v(n.type,10);if(!b.j.includes(r))return j("type","Only A, AAAA, CNAME and TXT records can be added here.");let a=function(e,t){let n=t.trim().toLowerCase().replace(/\.$/,""),r=e.trim().toLowerCase().replace(/\.$/,"");if(!r||!n||("@"===r?r=n:r===n||r.endsWith(`.${n}`)||(r=`${r}.${n}`),r.length>253))return null;let a=r===n?"":r.slice(0,-(n.length+1));return a&&!a.split(".").every((e,t)=>y.test(e)&&("*"!==e||0===t))?null:r}(v(n.name,260),t);if(!a)return j("name",`The name must be a host in ${t}, like shop or shop.${t}.`);let s="number"==typeof n.ttl?n.ttl:b.k,i=(0,b.V)({type:r,name:a},{content:v(n.content,4096),ttl:s,proxied:!0===n.proxied});return i.ok?{ok:!0,inputs:{zoneName:t.toLowerCase(),type:r,name:a,content:i.values.content,ttl:i.values.ttl,proxied:i.values.proxied}}:j(i.field,i.error)}(L,r):"neon_branch"===e?function(e,t){let n=e??{},r=v(n.name,80).trim();if(!k.test(r))return j("name","Use 1 to 63 lower-case letters, digits and hyphens, starting with a letter or digit.");let a=v(n.parentId,80);return N.test(a)?{ok:!0,inputs:{projectName:t,parentId:a,name:r}}:j("parentId","Pick the branch to copy from.")}(L,r):"supabase_project"===e?function(e){let t=e??{},n=v(t.orgSlug,80);if(!A.test(n))return j("orgSlug","Pick an organization.");let r=v(t.name,80).trim();if(!S.test(r))return j("name","Use 1 to 63 letters, digits, spaces, dots, hyphens or underscores.");let a=v(t.region,30);return w.includes(a)?{ok:!0,inputs:{orgSlug:n,name:r,region:a}}:j("region","Pick a region from the list.")}(L):function(e){let t=e??{},n=v(t.projectId,40).trim();if(!$.test(n)||/google|ssl|undefined|null/.test(n))return j("projectId",'6 to 30 lower-case letters, digits and hyphens, starting with a letter (Google refuses ids with "google").');let r=v(t.displayName,40).trim()||n.slice(0,30);return T.test(r)?{ok:!0,inputs:{projectId:n,displayName:r}}:j("displayName","4 to 30 letters, digits, spaces, hyphens, quotes or exclamation marks.")}(L)).ok?P(null):P({field:t.field,text:t.error}),t.ok&&F(async()=>{try{let t=await c(e,"supabase_project"===e?C:n,L);if(t.ok)s.c.success(l("text",t.message??"Asked.")),i();else{let e=t.fieldErrors?Object.keys(t.fieldErrors)[0]:"form";P({field:e,text:l("text",t.error)})}}catch{P({field:"form",text:"Watchbell didn't answer. Check that it's still running, then try again."})}})},disabled:U||!d||W,children:U?"Checking…":"Check and ask for approval"})]})]})}function O({v:e,set:n,fe:r,zone:a}){let s="TXT"!==e.type;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid grid-cols-[120px_minmax(0,1fr)] gap-3 max-[560px]:grid-cols-1",children:[(0,t.jsx)(h.O,{id:"cr-type",label:"Type",error:r("type"),children:(0,t.jsx)("select",{id:"cr-type",className:h.S,value:String(e.type),onChange:e=>n("type",e.target.value),children:["A","AAAA","CNAME","TXT"].map(e=>(0,t.jsx)("option",{children:e},e))})}),(0,t.jsx)(h.O,{id:"cr-name",label:"Name",error:r("name"),help:`A host in ${a}: shop becomes shop.${a}.`,children:(0,t.jsx)("input",{id:"cr-name",className:h.S,value:String(e.name??""),maxLength:253,spellCheck:!1,autoComplete:"off",onChange:e=>n("name",e.target.value)})})]}),(0,t.jsx)(h.O,{id:"cr-content",label:"Content",error:r("content"),help:"CNAME"===e.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,t.jsx)("input",{id:"cr-content",className:h.S,value:String(e.content??""),maxLength:2048,spellCheck:!1,autoComplete:"off",onChange:e=>n("content",e.target.value)})}),(0,t.jsx)(h.O,{id:"cr-ttl",label:"TTL",error:r("ttl"),children:(0,t.jsx)("select",{id:"cr-ttl",className:h.S,value:e.proxied?b.k:Number(e.ttl),disabled:!0===e.proxied,onChange:e=>n("ttl",Number(e.target.value)),children:b.i.map(e=>(0,t.jsx)("option",{value:e,children:(0,_.f)(e)},e))})}),s&&(0,t.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"accent-brand",checked:!0===e.proxied,onChange:e=>n("proxied",e.target.checked)}),"Proxied through Cloudflare (off by default; Vercel recommends DNS only)"]})]})}function M({opts:e,v:n,set:r,fe:a,account:s,setAccount:i}){let o=(0,u.useMask)(),l=e.active>=e.limit;return(0,t.jsxs)(t.Fragment,{children:[e.accounts.length>1&&(0,t.jsx)(h.O,{id:"cr-acc",label:"Supabase account",children:(0,t.jsx)("select",{id:"cr-acc",className:h.S,value:s,onChange:e=>i(e.target.value),children:e.accounts.map(e=>(0,t.jsx)("option",{value:e.id,children:o("account",e.label)},e.id))})}),0===e.accounts.length&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"info",title:"No Supabase account connected",children:"Connect one in Connections first."})}),e.error&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"danger",title:"Can't create with this token",children:e.error})}),(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[e.active," of ",e.limit," active free projects in use.",l?" Pause one first; paused projects don't count.":""]}),(0,t.jsx)(h.O,{id:"cr-org",label:"Organization",error:a("orgSlug"),help:"Paid or unknown plans are refused: a project there is billed from the first hour.",children:(0,t.jsx)("select",{id:"cr-org",className:h.S,value:String(n.orgSlug??""),onChange:e=>r("orgSlug",e.target.value),children:e.orgs.map(e=>(0,t.jsxs)("option",{value:e.slug,disabled:!e.allowed,children:[o("text",e.name)," · ",e.plan??"plan unknown",e.allowed?"":" (not allowed)"]},e.slug))})}),(0,t.jsx)(h.O,{id:"cr-name",label:"Project name",error:a("name"),children:(0,t.jsx)("input",{id:"cr-name",className:h.S,value:String(n.name??""),maxLength:63,autoComplete:"off",onChange:e=>r("name",e.target.value)})}),(0,t.jsx)(h.O,{id:"cr-region",label:"Region",error:a("region"),children:(0,t.jsx)("select",{id:"cr-region",className:h.S,value:String(n.region),onChange:e=>r("region",e.target.value),children:C.map(([e,n])=>(0,t.jsxs)("option",{value:e,children:[n," · ",e]},e))})}),(0,t.jsx)("p",{className:"mb-3 text-[12.5px] text-ink-soft",children:e.scopeNote})]})}function R({opts:e,v:n,set:a,fe:s}){return e.envReady?e.connected?(0,t.jsxs)(t.Fragment,{children:[e.error&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"danger",title:"Google",children:e.error})}),null!==e.projects&&(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[e.projects," active Google Cloud project",1===e.projects?"":"s",". Google's project quota without a billing account is about ",e.quotaHint," and isn't readable by API; deleted projects count for 30 days."]}),(0,t.jsx)(h.O,{id:"cr-pid",label:"Project id",error:s("projectId"),help:"6 to 30 lower-case letters, digits and hyphens. Permanent and global: pick one nobody has.",children:(0,t.jsx)("input",{id:"cr-pid",className:h.S,value:String(n.projectId??""),maxLength:30,spellCheck:!1,autoComplete:"off",onChange:e=>a("projectId",e.target.value)})}),(0,t.jsx)(h.O,{id:"cr-pname",label:"Display name",error:s("displayName"),children:(0,t.jsx)("input",{id:"cr-pname",className:h.S,value:String(n.displayName??""),maxLength:30,autoComplete:"off",onChange:e=>a("displayName",e.target.value)})})]}):(0,t.jsxs)("div",{className:"mb-3 flex flex-col gap-2",children:[(0,t.jsx)(h.M,{tone:"info",title:"Connect Google (create projects) first",children:"The Firebase service accounts are viewer-only, so creating needs your own Google grant."}),(0,t.jsx)(L,{})]}):(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"info",title:"Google OAuth isn't set up",children:r.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0)})})}function L({reconnect:e=!1}){return(0,t.jsx)(p.f,{trigger:(0,t.jsx)(h.K,{size:"sm",variant:"primary",children:e?"Reconnect Google (create projects)":"Connect Google (create projects)"}),title:"Connect Google (create projects)",body:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission, separate from the Drive backup one:"}),(0,t.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, configure, and delete your Google Cloud data (cloud-platform)."}),(0,t.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-ink-soft",children:x.map(e=>(0,t.jsx)("li",{children:e},e))}),(0,t.jsxs)("p",{className:"mt-2 text-ink-soft",children:["Before the first connect, add this redirect URI to the OAuth client in the Google Cloud console: ",(0,t.jsx)("span",{className:"font-mono text-[12px]",children:"/auth/google/create/callback"})," on this site."]})]}),cta:"Continue to Google",onConfirm:async()=>{let e=await d();return e.ok&&e.data?(window.location.assign(e.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:e.ok?"Watchbell didn't answer. Check that it's still running, then try again.":e.error}}})}e.s(["CreateButton",0,function({type:e,target:r,targetName:s,label:i}){let[o,l]=(0,a.useState)(!1);return(0,f.useHoldRefresh)(o),(0,t.jsxs)(m.N,{open:o,onOpenChange:l,children:[(0,t.jsxs)(m.a,{render:(0,t.jsx)(h.K,{size:"sm"}),children:[(0,t.jsx)(n.f,{size:15,"aria-hidden":!0,className:"-ml-0.5 mr-1 inline"}),i]}),(0,t.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:o&&(0,t.jsx)(E,{type:e,target:r,targetName:s,onDone:()=>l(!1)})})]})},"DisconnectGoogleCreateButton",0,function(){return(0,t.jsx)(p.f,{trigger:(0,t.jsx)(h.K,{children:"Disconnect Google (create)"}),title:"Disconnect Google (create projects)?",body:"The console forgets the grant. Remove Watchbell's access in your Google Account → Security → Third-party access as well. Projects already created stay.",cta:"Disconnect",onConfirm:async()=>{let e=await l();return e.ok?{ok:!0,message:e.message??"Disconnected."}:{ok:!1,message:e.error}}})}],688656)},259871,e=>{var t=e.i(843476),n=e.i(399582),r=e.i(271645),a=e.i(846696),s=e.i(95187);let i=(0,s.createServerReference)("60c081fd48535aadbce319b4bc103fd25dd7d4bd4e",s.callServer,void 0,s.findSourceMapURL,"approveCreateAction"),o=(0,s.createServerReference)("40031eab5e7ca506c841569c0a770a2885ae640e37",s.callServer,void 0,s.findSourceMapURL,"rejectCreateAction");var l=e.i(54131),c=e.i(46200),d=e.i(428325),u=e.i(500443),p=e.i(776639),h=e.i(552978);let f=new Set(["requested","approved","running"]),m=e=>f.has(e.status);var x=e.i(684496),g=e.i(975157);let b={requested:"Waiting for approval",approved:"Approved",running:"Creating…",done:"Created",failed:"Failed",rejected:"Rejected",expired:"Expired"};function v({items:e,owner:n,focus:r,quiet:a}){let s=(0,l.useMask)();return(0,t.jsx)("ul",{className:"divide-y divide-line",children:e.map(e=>{var i;let o;return(0,t.jsxs)("li",{id:`create-${e.id}`,className:(0,g.f)("flex flex-wrap items-center gap-x-3 gap-y-1.5 px-[18px] py-2.5",a&&"py-2 text-[13px]",r===e.id&&"bg-brand-soft"),children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("b",{className:(0,g.f)("font-medium",a&&"text-ink-soft"),children:h.S[e.type]}),(0,t.jsx)(d.E,{children:h.E[e.type]}),(0,t.jsx)("span",{className:(0,g.f)("text-[12.5px]","failed"===e.status?"text-err":"text-ink-soft"),children:b[e.status]})]}),(0,t.jsx)("p",{className:"font-mono text-[12.5px] text-ink-soft [overflow-wrap:anywhere]",children:s("text",e.summary)}),"requested"===e.status&&(0,t.jsxs)("p",{className:"text-[12px] text-ink-faint",children:[e.mine?"You asked":"Another member asked"," · expires ",(i=new Date(e.expiresAt),o=(0,x.e)(i),`${o.day} ${o.month} ${o.year}, ${(0,x.U)(i)}`)]}),e.error&&"requested"!==e.status&&(0,t.jsx)("p",{className:"text-[12.5px] text-err",children:s("text",e.error)}),e.result?.id&&"done"===e.status&&(0,t.jsxs)("p",{className:"text-[12px] text-ink-faint",children:["Created: ",(0,t.jsx)("span",{className:"font-mono",children:s("text",e.result.id)}),"firebase-pending"===e.result.note?" · Firebase still needs adding in the Firebase console":""]})]}),n&&"requested"===e.status&&(0,t.jsxs)("div",{className:"flex gap-1.5",children:[(0,t.jsx)(j,{item:e}),(0,t.jsx)(y,{item:e})]})]},e.id)})})}function j({item:e}){return(0,t.jsx)(c.f,{trigger:(0,t.jsx)(d.K,{size:"sm",children:"Reject"}),title:`Reject this ${h.S[e.type]}?`,body:"Nothing is created. The person who asked can ask again.",cta:"Reject",onConfirm:async()=>{let t=await o(e.id);return t.ok?{ok:!0,message:t.message??"Rejected."}:{ok:!1,message:t.error}}})}function y({item:e}){let[n,a]=(0,r.useState)(!1);return(0,u.useHoldRefresh)(n),(0,t.jsxs)(p.N,{open:n,onOpenChange:a,children:[(0,t.jsx)(p.a,{render:(0,t.jsx)(d.K,{size:"sm",variant:"primary"}),children:"Approve…"}),(0,t.jsx)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:n&&(0,t.jsx)(k,{item:e,onDone:()=>a(!1)})})]})}function k({item:e,onDone:n}){let s=(0,l.useMask)(),[o,c]=(0,r.useState)(""),[u,f]=(0,r.useState)(null),[m,x]=(0,r.useState)(null),[g,b]=(0,r.useState)(null),[v,j]=(0,r.useTransition)();return m?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsx)(p.F,{className:"text-base",children:"Copy the database password now"}),(0,t.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[g," It is shown only here, only once."]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsx)(N,{value:m}),(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(d.M,{tone:"warning",title:"The console doesn't keep it",children:"Save it in your password manager. If it's lost, reset it in Supabase → Project settings → Database."})})]}),(0,t.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,t.jsx)(d.K,{variant:"primary",onClick:()=>{x(null),n()},children:"I've saved it"})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsx)(p.F,{className:"text-base",children:s("text",`Create ${h.S[e.type]} ${e.confirmName}?`)}),(0,t.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["The console checks the free tier at ",h.E[e.type]," again now, then makes one create call. ",(0,h.d)(e.type)]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,t.jsx)("p",{className:"mb-3 rounded-md border border-line bg-sunken px-3 py-2 font-mono text-[12.5px] [overflow-wrap:anywhere]",children:s("text",e.summary)}),(0,t.jsx)(d.O,{id:`ap-${e.id}`,label:(0,t.jsxs)(t.Fragment,{children:["Type ",(0,t.jsx)("span",{className:"font-mono",children:s("text",e.confirmName)})," to approve"]}),error:u??void 0,children:(0,t.jsx)("input",{id:`ap-${e.id}`,className:d.S,value:o,autoComplete:"off",spellCheck:!1,onChange:e=>c(e.target.value)})})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(d.K,{onClick:n,disabled:v,children:"Cancel"}),(0,t.jsx)(d.K,{variant:"primary",onClick:function(){j(async()=>{try{let t=await i(e.id,o);if(!t.ok)return f(s("text",t.error));f(null),t.data?.secret?(x(t.data.secret),b(s("text",t.message??"Created."))):(a.c.success(s("text",t.message??"Created.")),n())}catch{f("Something went wrong. Check the provider's dashboard before trying again.")}})},disabled:v||o.trim()!==e.confirmName,children:v?"Checking and creating…":"Approve and create"})]})]})}function N({value:e}){let[s,i]=(0,r.useState)(!1),{shot:o}=(0,l.usePrivacy)(),[c,u]=(0,r.useState)(!1);return(0,t.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded-md border border-line-strong bg-sunken px-3 py-2",children:[o&&!c?(0,t.jsx)("button",{type:"button",className:"min-w-0 flex-1 text-left text-[13px] text-ink-soft",onClick:()=>u(!0),children:"Hidden in screenshot mode. Click to show it."}):(0,t.jsx)("code",{className:"min-w-0 flex-1 select-all font-mono text-[13px] [overflow-wrap:anywhere]",children:e}),(0,t.jsxs)(d.K,{size:"sm",onClick:()=>{navigator.clipboard.writeText(e).then(()=>i(!0),()=>a.c.error("Copy didn't work; select the text and copy it."))},children:[(0,t.jsx)(n.f,{size:14,"aria-hidden":!0,className:"mr-1 inline"}),s?"Copied":"Copy"]})]})}e.s(["CreateRequestList",0,function({items:e,owner:n,focus:r,title:a="Waiting for approval"}){let{pending:s,finished:i}={pending:e.filter(m),finished:e.filter(e=>!m(e))};if(!s.length&&!i.length)return null;let o=s.filter(e=>"requested"===e.status).length;return(0,t.jsxs)(t.Fragment,{children:[s.length>0&&(0,t.jsx)(d.N,{title:a,meta:o?`${o} waiting`:void 0,flush:!0,children:(0,t.jsx)(v,{items:s,owner:n,focus:r})}),i.length>0&&(0,t.jsx)(d.N,{title:"Recent requests",flush:!0,children:(0,t.jsx)(v,{items:i,owner:!1,focus:r,quiet:!0})})]})}],259871)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function s(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),i=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),o=(i-1)*n,l=e.slice(o,o+n);return{rows:l,page:i,pages:a,from:0===r?0:o+1,to:o+l.length,total:r}}e.s(["f",0,function({page:e,pages:s,text:i,onPage:o,bleed:l=!1}){let c=(0,n.useRef)(null),d=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==d.current&&(c.current?.querySelectorAll("button")[d.current]?.focus(),d.current=null)},[e]),s<=1)return null;let u=(e,t)=>{(e<=1||e>=s)&&(d.current=t),o(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:i}),(0,t.jsxs)("span",{ref:c,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:()=>u(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=s,onClick:()=>u(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,s,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),i=s(e.slice(a),t,r);return 0===a||i.page>1?{...i,shift:a}:{...s(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},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),s=e.i(921637),i=e.i(141708),o=e.i(593480),l=e.i(309169),c=r;e.s(["f",0,c],152744);var c=r,d=e.i(975157),u=e.i(271645),p=e.i(540886),h=e.i(552245);let f=u.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:s=!1,nativeButton:i=!0,style:o,...l}=e,{getButtonProps:c,buttonRef:d}=(0,p.f)({disabled:a,focusableWhenDisabled:s,native:i});return(0,h.a)("button",e,{state:{disabled:a},ref:[t,d],props:[l,c]})}),m=(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 x({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(f,{"data-slot":"button",className:(0,d.f)(m({variant:n,size:r,className:e})),...a})}var g=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,g.f)(b);function j({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...n}){return(0,t.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,d.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)(j,{children:[(0,t.jsx)(y,{}),(0,t.jsxs)(o.f.Popup,{"data-slot":"dialog-content",className:(0,d.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)(s.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(x,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(c.Description,{"data-slot":"dialog-description",className:(0,d.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,d.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)},552978,e=>{let t={dns_record:"Cloudflare",neon_branch:"Neon",supabase_project:"Supabase",firebase_project:"Firebase"};e.s(["E",0,t,"S",0,{dns_record:"DNS record",neon_branch:"Neon branch",supabase_project:"Supabase project",firebase_project:"Firebase project"},"d",0,e=>`The console can't remove this later; remove it in ${t[e]}'s dashboard.`])},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 s=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function i(e){let t=s.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function o([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=i(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]),s=2===n.length?r(n[1]):[],o=8-a.length-s.length;if(1===n.length?0!==o:o<1)return null;let l=[...a,...Array(2===n.length?o:0).fill("0"),...s];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 o([(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=i(t);if(n)return o(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 c=[3,5,10],d=/[\u0000-\u001f\u007f-\u009f]/,u=/[­؜᠎​-‏‪-‮⁠-⁤⁦-⁩]/;e.s(["L",0,c,"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??""),s=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(s)||d.test(s)||u.test(n)?t.name="Name the job, like backup job.":s.length>60&&(t.name="Keep the name to 60 characters.");let i=Number(e?.periodS);r.includes(i)||(t.periodS="Pick how often the job runs.");let o=Number(e?.graceS);return(a.includes(o)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:s,periodS:i,graceS:o}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),s=null;try{s=new URL(a)}catch{s=null}s&&s.hostname&&!(a.length>2048)&&"scheme"!==l(s)?"blocked"===l(s)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let i=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(i)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let o=Number(e?.timeoutS);c.includes(o)||(r.timeoutS="Pick a timeout.");let d=String(e?.bodyContains??"").trim(),u=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(d.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!u&&p&&(r.jsonPath="Add a JSON path for the value."),u&&(u.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}(u)?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.",d&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!s)?{ok:!1,fieldErrors:r}:(s.hash="",{ok:!0,value:{url:s.toString(),expectedStatus:Number(i),timeoutMs:1e3*o,bodyContains:d||null,jsonPath:u||null,jsonEquals:u?p:null}})}],70528)},450547,212253,e=>{e.i(684496),e.i(322534),e.i(452842);let t=e=>1===e?"Auto":e%3600==0?`${e/3600} h`:e%60==0?`${e/60} min`:`${e} s`;e.s(["f",0,t],212253);let n=["A","AAAA","CNAME","TXT"],r=["A","AAAA","CNAME"],a=e=>n.includes(e),s=e=>r.includes(e),i=/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$/,o=RegExp("^(?=.{1,253}$)(?:[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?\\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"),l=/^[\x20-\x7e]+$/,c=e=>e.trim().toLowerCase().replace(/\.$/,"");function d(e,t){let n=t.trim();return"CNAME"===e?c(n):"AAAA"===e?n.toLowerCase():n}function u(e,t){if(!a(e.type))return{ok:!1,field:"content",error:"Only A, AAAA, CNAME and TXT records can be edited here."};let n=d(e.type,String(t.content??""));if("A"===e.type&&!i.test(n))return{ok:!1,field:"content",error:"An A record needs an IPv4 address, like 76.76.21.21."};if("AAAA"===e.type&&!function(e){if(!e.includes(":")||!/^[0-9a-f:.]+$/i.test(e))return!1;try{return new URL(`http://[${e}]/`).hostname.length>2}catch{return!1}}(n))return{ok:!1,field:"content",error:"An AAAA record needs an IPv6 address, like 2606:4700::1111."};if("CNAME"===e.type){if(!o.test(n))return{ok:!1,field:"content",error:"A CNAME needs a hostname, like something.vercel-dns-017.com."};if(n===c(e.name))return{ok:!1,field:"content",error:"A CNAME can't point to itself."}}if("TXT"===e.type&&(!n||n.length>2048||!l.test(n)))return{ok:!1,field:"content",error:`TXT content is 1 to ${2048..toLocaleString("en")} printable characters on one line.`};let r=!0===t.proxied;if(r&&!s(e.type))return{ok:!1,field:"proxied",error:"Only A, AAAA and CNAME records can be proxied."};let u=t.ttl;return!Number.isInteger(u)||1!==u&&(u<60||u>86400)?{ok:!1,field:"ttl",error:`TTL is Auto or 60 to ${86400..toLocaleString("en")} seconds.`}:{ok:!0,values:{content:n,ttl:r?1:u,proxied:r}}}let p=e=>e?"Proxied":"DNS only";e.s(["k",0,1,"j",0,n,"i",0,[1,60,120,300,600,900,1800,3600,7200,18e3,43200,86400],"O",0,a,"z",0,s,"t",0,function(e,n){let r=u(e,n);if(!r.ok)return{ok:!1,error:r.error};let a=[];return d(e.type,e.content)!==r.values.content&&a.push({field:"content",before:e.content,after:r.values.content}),e.ttl!==r.values.ttl&&a.push({field:"ttl",before:t(e.ttl),after:t(r.values.ttl)}),e.proxied!==r.values.proxied&&a.push({field:"proxied",before:p(e.proxied),after:p(r.values.proxied)}),a.length?{ok:!0,values:r.values,changes:a}:{ok:!1,error:"Nothing to change."}},"V",0,u],450547)},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)}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,399582,e=>{let t=(0,e.i(33550).f)("outline","copy","Copy",[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]);e.s(["f",0,t],399582)},617708,e=>{let t=(0,e.i(33550).f)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);e.s(["f",0,t],617708)},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 s;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:i,defaultVariants:o}=t,l=Object.keys(i).map(e=>{let t=null==a?void 0:a[e],r=null==o?void 0:o[e];if(null===t)return null;let s=n(t)||n(r);return i[e][s]}),c=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==(s=t.compoundVariants)?void 0:s.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({...o,...c}[t]):({...o,...c})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),s=e.i(846696),i=e.i(428325),o=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:c,onOpenChange:d,title:u,body:p,cta:h,danger:f=!1,onConfirm:m}){let[x,g]=(0,a.useState)(!1),b=c??x,[v,j]=(0,a.useTransition)();function y(e){void 0===c&&g(e),d?.(e)}return(0,o.useHoldRefresh)(b),(0,t.jsxs)(l.N,{open:b,onOpenChange:e=>{v||y(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 ${f?"text-err":"text-ink-soft"}`,children:f?(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:u}),(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)(i.K,{onClick:()=>y(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(i.K,{variant:f?"danger":"primary",onClick:function(){j(async()=>{try{let e=await m();e.ok?(s.c.success(e.message),y(!1)):s.c.error(e.message)}catch{s.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:v,children:v?"Working…":h})]})]})]})}])},688656,e=>{var t=e.i(843476),n=e.i(617708),r=e.i(944971),a=e.i(271645),s=e.i(846696),i=e.i(95187);let o=(0,i.createServerReference)("60b9e0ce82267a008f6e32c038f1d225a6b53d345c",i.callServer,void 0,i.findSourceMapURL,"createOptionsAction"),l=(0,i.createServerReference)("0071fd6229c3a8177b65b77bd0616a191d187c283a",i.callServer,void 0,i.findSourceMapURL,"disconnectGoogleCreate"),c=(0,i.createServerReference)("70cff5eb2b22ad5ac14d46fdcbe04f22fcf83f77d1",i.callServer,void 0,i.findSourceMapURL,"requestCreateAction"),d=(0,i.createServerReference)("003f58a411ed56dfc74990930428ec4b8b8efcb573",i.callServer,void 0,i.findSourceMapURL,"startGoogleCreateConnect");var u=e.i(54131),p=e.i(46200),h=e.i(428325),f=e.i(500443),m=e.i(776639);let x=["This asks Google for the cloud-platform permission: it is broad (it can manage every Google Cloud project you own), so the console uses it only to create a project and add Firebase to it after your approval, and never to change or delete anything.","Google shows an \"unverified app\" warning because Watchbell's OAuth client isn't verified for this scope. It is your own client for your own use: choose Advanced → Go to Watchbell.","While the OAuth consent screen is in Testing mode, Google ends this grant after 7 days; connect again when a create says so. Remove it any time in your Google Account → Security → Third-party access."];r.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0);var g=e.i(552978);e.i(322534);var b=e.i(450547);let v=(e,t=300)=>"string"==typeof e&&e.length<=t?e:"",j=(e,t)=>({ok:!1,field:e,error:t}),y=/^(?:\*|[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?)$/,k=/^[a-z0-9][a-z0-9-]{0,62}$/,N=/^br-[a-z0-9-]{3,60}$/,C=[["ap-southeast-1","Southeast Asia (Singapore)"],["ap-northeast-1","Northeast Asia (Tokyo)"],["ap-northeast-2","Northeast Asia (Seoul)"],["ap-southeast-2","Oceania (Sydney)"],["ap-south-1","South Asia (Mumbai)"],["ap-east-1","East Asia (Hong Kong)"],["us-east-1","East US (North Virginia)"],["us-east-2","East US (Ohio)"],["us-west-1","West US (North California)"],["us-west-2","West US (Oregon)"],["ca-central-1","Canada (Central)"],["sa-east-1","South America (São Paulo)"],["eu-west-1","West EU (Ireland)"],["eu-west-2","West EU (London)"],["eu-west-3","West EU (Paris)"],["eu-north-1","North EU (Stockholm)"],["eu-central-1","Central EU (Frankfurt)"],["eu-central-2","Central EU (Zurich)"]],w=C.map(([e])=>e),S=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,62}$/,A=/^[\w-]{1,64}$/,$=/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/,T=/^[A-Za-z0-9 '"!-]{4,30}$/;var _=e.i(212253);let z={dns_record:"The name must be new in this zone. Proxied is off unless you turn it on.",neon_branch:"The branch is created without a compute, so it uses no CU-hours until you wake it. Waking it later uses CU-hours (100 a month per project on the free plan).",supabase_project:"Only an organization on the free plan is allowed. The database password is generated when the Owner approves and shown once.",firebase_project:"A Google Cloud project without a billing account (the free Spark plan), then Firebase is added to it."};function E({type:e,target:n,targetName:r,onDone:i}){let l=(0,u.useMask)(),[d,p]=(0,a.useState)(null),[f,x]=(0,a.useState)(null),[C,_]=(0,a.useState)(n),[L,G]=(0,a.useState)({type:"CNAME",ttl:b.k,proxied:!1,region:"ap-southeast-1"}),[I,P]=(0,a.useState)(null),[U,F]=(0,a.useTransition)(),D=(e,t)=>G(n=>({...n,[e]:t}));(0,a.useEffect)(()=>{let t=!0;return o(e,C).then(e=>{if(t)if(e.ok&&e.data){if(p(e.data),"neon_branch"===e.data.type){let t=(e.data.branches.find(e=>e.isDefault)??e.data.branches[0])?.id??"";G(e=>({...e,parentId:e.parentId??t}))}if("supabase_project"===e.data.type){e.data.accountId&&e.data.accountId!==C&&_(e.data.accountId);let t=e.data.orgs.find(e=>e.allowed);t&&G(e=>({...e,orgSlug:t.slug}))}}else x(e.ok?"Something went wrong.":e.error)}).catch(()=>t&&x("Couldn't load the choices. Try again.")),()=>{t=!1}},[e,C]);let K=e=>I?.field===e?I.text:void 0,W=d?.type==="firebase_project"&&(!d.envReady||!d.connected);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsx)(m.F,{className:"text-base",children:l("text",`New ${g.S[e]}${"dns_record"===e||"neon_branch"===e?` in ${r}`:""}`)}),(0,t.jsxs)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[z[e]," This only asks: the Owner approves it with the authenticator code, then the console checks the free tier again and makes one create call at ",g.E[e],"."]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[f&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"danger",title:"Couldn't read the live choices",children:f})}),!d&&!f&&(0,t.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Reading the live choices…"}),"dns_record"===e&&(0,t.jsx)(O,{v:L,set:D,fe:K,zone:r}),"neon_branch"===e&&d?.type==="neon_branch"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[d.branches.length," of ",d.limit," branches used in this project."]}),(0,t.jsx)(h.O,{id:"cr-parent",label:"Copy from branch",error:K("parentId"),children:(0,t.jsx)("select",{id:"cr-parent",className:h.S,value:String(L.parentId??""),onChange:e=>D("parentId",e.target.value),children:d.branches.map(e=>(0,t.jsxs)("option",{value:e.id,children:[l("text",e.name),e.isDefault?" (default)":""]},e.id))})}),(0,t.jsx)(h.O,{id:"cr-name",label:"New branch name",error:K("name"),help:"Lower-case letters, digits and hyphens, like preview-42.",children:(0,t.jsx)("input",{id:"cr-name",className:h.S,value:String(L.name??""),maxLength:63,spellCheck:!1,autoComplete:"off",onChange:e=>D("name",e.target.value)})})]}),"supabase_project"===e&&d?.type==="supabase_project"&&(0,t.jsx)(M,{opts:d,v:L,set:D,fe:K,account:C,setAccount:_}),"firebase_project"===e&&d?.type==="firebase_project"&&(0,t.jsx)(R,{opts:d,v:L,set:D,fe:K}),I?.field==="form"&&(0,t.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:I.text})]}),(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)(h.K,{onClick:i,disabled:U,children:"Cancel"}),(0,t.jsx)(h.K,{variant:"primary",onClick:function(){let t;(t="dns_record"===e?function(e,t){let n=e??{},r=v(n.type,10);if(!b.j.includes(r))return j("type","Only A, AAAA, CNAME and TXT records can be added here.");let a=function(e,t){let n=t.trim().toLowerCase().replace(/\.$/,""),r=e.trim().toLowerCase().replace(/\.$/,"");if(!r||!n||("@"===r?r=n:r===n||r.endsWith(`.${n}`)||(r=`${r}.${n}`),r.length>253))return null;let a=r===n?"":r.slice(0,-(n.length+1));return a&&!a.split(".").every((e,t)=>y.test(e)&&("*"!==e||0===t))?null:r}(v(n.name,260),t);if(!a)return j("name",`The name must be a host in ${t}, like shop or shop.${t}.`);let s="number"==typeof n.ttl?n.ttl:b.k,i=(0,b.V)({type:r,name:a},{content:v(n.content,4096),ttl:s,proxied:!0===n.proxied});return i.ok?{ok:!0,inputs:{zoneName:t.toLowerCase(),type:r,name:a,content:i.values.content,ttl:i.values.ttl,proxied:i.values.proxied}}:j(i.field,i.error)}(L,r):"neon_branch"===e?function(e,t){let n=e??{},r=v(n.name,80).trim();if(!k.test(r))return j("name","Use 1 to 63 lower-case letters, digits and hyphens, starting with a letter or digit.");let a=v(n.parentId,80);return N.test(a)?{ok:!0,inputs:{projectName:t,parentId:a,name:r}}:j("parentId","Pick the branch to copy from.")}(L,r):"supabase_project"===e?function(e){let t=e??{},n=v(t.orgSlug,80);if(!A.test(n))return j("orgSlug","Pick an organization.");let r=v(t.name,80).trim();if(!S.test(r))return j("name","Use 1 to 63 letters, digits, spaces, dots, hyphens or underscores.");let a=v(t.region,30);return w.includes(a)?{ok:!0,inputs:{orgSlug:n,name:r,region:a}}:j("region","Pick a region from the list.")}(L):function(e){let t=e??{},n=v(t.projectId,40).trim();if(!$.test(n)||/google|ssl|undefined|null/.test(n))return j("projectId",'6 to 30 lower-case letters, digits and hyphens, starting with a letter (Google refuses ids with "google").');let r=v(t.displayName,40).trim()||n.slice(0,30);return T.test(r)?{ok:!0,inputs:{projectId:n,displayName:r}}:j("displayName","4 to 30 letters, digits, spaces, hyphens, quotes or exclamation marks.")}(L)).ok?P(null):P({field:t.field,text:t.error}),t.ok&&F(async()=>{try{let t=await c(e,"supabase_project"===e?C:n,L);if(t.ok)s.c.success(l("text",t.message??"Asked.")),i();else{let e=t.fieldErrors?Object.keys(t.fieldErrors)[0]:"form";P({field:e,text:l("text",t.error)})}}catch{P({field:"form",text:"Watchbell didn't answer. Check that it's still running, then try again."})}})},disabled:U||!d||W,children:U?"Checking…":"Check and ask for approval"})]})]})}function O({v:e,set:n,fe:r,zone:a}){let s="TXT"!==e.type;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid grid-cols-[120px_minmax(0,1fr)] gap-3 max-[560px]:grid-cols-1",children:[(0,t.jsx)(h.O,{id:"cr-type",label:"Type",error:r("type"),children:(0,t.jsx)("select",{id:"cr-type",className:h.S,value:String(e.type),onChange:e=>n("type",e.target.value),children:["A","AAAA","CNAME","TXT"].map(e=>(0,t.jsx)("option",{children:e},e))})}),(0,t.jsx)(h.O,{id:"cr-name",label:"Name",error:r("name"),help:`A host in ${a}: shop becomes shop.${a}.`,children:(0,t.jsx)("input",{id:"cr-name",className:h.S,value:String(e.name??""),maxLength:253,spellCheck:!1,autoComplete:"off",onChange:e=>n("name",e.target.value)})})]}),(0,t.jsx)(h.O,{id:"cr-content",label:"Content",error:r("content"),help:"CNAME"===e.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,t.jsx)("input",{id:"cr-content",className:h.S,value:String(e.content??""),maxLength:2048,spellCheck:!1,autoComplete:"off",onChange:e=>n("content",e.target.value)})}),(0,t.jsx)(h.O,{id:"cr-ttl",label:"TTL",error:r("ttl"),children:(0,t.jsx)("select",{id:"cr-ttl",className:h.S,value:e.proxied?b.k:Number(e.ttl),disabled:!0===e.proxied,onChange:e=>n("ttl",Number(e.target.value)),children:b.i.map(e=>(0,t.jsx)("option",{value:e,children:(0,_.f)(e)},e))})}),s&&(0,t.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"accent-brand",checked:!0===e.proxied,onChange:e=>n("proxied",e.target.checked)}),"Proxied through Cloudflare (off by default; Vercel recommends DNS only)"]})]})}function M({opts:e,v:n,set:r,fe:a,account:s,setAccount:i}){let o=(0,u.useMask)(),l=e.active>=e.limit;return(0,t.jsxs)(t.Fragment,{children:[e.accounts.length>1&&(0,t.jsx)(h.O,{id:"cr-acc",label:"Supabase account",children:(0,t.jsx)("select",{id:"cr-acc",className:h.S,value:s,onChange:e=>i(e.target.value),children:e.accounts.map(e=>(0,t.jsx)("option",{value:e.id,children:o("account",e.label)},e.id))})}),0===e.accounts.length&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"info",title:"No Supabase account connected",children:"Connect one in Connections first."})}),e.error&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"danger",title:"Can't create with this token",children:e.error})}),(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[e.active," of ",e.limit," active free projects in use.",l?" Pause one first; paused projects don't count.":""]}),(0,t.jsx)(h.O,{id:"cr-org",label:"Organization",error:a("orgSlug"),help:"Paid or unknown plans are refused: a project there is billed from the first hour.",children:(0,t.jsx)("select",{id:"cr-org",className:h.S,value:String(n.orgSlug??""),onChange:e=>r("orgSlug",e.target.value),children:e.orgs.map(e=>(0,t.jsxs)("option",{value:e.slug,disabled:!e.allowed,children:[o("text",e.name)," · ",e.plan??"plan unknown",e.allowed?"":" (not allowed)"]},e.slug))})}),(0,t.jsx)(h.O,{id:"cr-name",label:"Project name",error:a("name"),children:(0,t.jsx)("input",{id:"cr-name",className:h.S,value:String(n.name??""),maxLength:63,autoComplete:"off",onChange:e=>r("name",e.target.value)})}),(0,t.jsx)(h.O,{id:"cr-region",label:"Region",error:a("region"),children:(0,t.jsx)("select",{id:"cr-region",className:h.S,value:String(n.region),onChange:e=>r("region",e.target.value),children:C.map(([e,n])=>(0,t.jsxs)("option",{value:e,children:[n," · ",e]},e))})}),(0,t.jsx)("p",{className:"mb-3 text-[12.5px] text-ink-soft",children:e.scopeNote})]})}function R({opts:e,v:n,set:a,fe:s}){return e.envReady?e.connected?(0,t.jsxs)(t.Fragment,{children:[e.error&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"danger",title:"Google",children:e.error})}),null!==e.projects&&(0,t.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[e.projects," active Google Cloud project",1===e.projects?"":"s",". Google's project quota without a billing account is about ",e.quotaHint," and isn't readable by API; deleted projects count for 30 days."]}),(0,t.jsx)(h.O,{id:"cr-pid",label:"Project id",error:s("projectId"),help:"6 to 30 lower-case letters, digits and hyphens. Permanent and global: pick one nobody has.",children:(0,t.jsx)("input",{id:"cr-pid",className:h.S,value:String(n.projectId??""),maxLength:30,spellCheck:!1,autoComplete:"off",onChange:e=>a("projectId",e.target.value)})}),(0,t.jsx)(h.O,{id:"cr-pname",label:"Display name",error:s("displayName"),children:(0,t.jsx)("input",{id:"cr-pname",className:h.S,value:String(n.displayName??""),maxLength:30,autoComplete:"off",onChange:e=>a("displayName",e.target.value)})})]}):(0,t.jsxs)("div",{className:"mb-3 flex flex-col gap-2",children:[(0,t.jsx)(h.M,{tone:"info",title:"Connect Google (create projects) first",children:"The Firebase service accounts are viewer-only, so creating needs your own Google grant."}),(0,t.jsx)(L,{})]}):(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(h.M,{tone:"info",title:"Google OAuth isn't set up",children:r.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0)})})}function L({reconnect:e=!1}){return(0,t.jsx)(p.f,{trigger:(0,t.jsx)(h.K,{size:"sm",variant:"primary",children:e?"Reconnect Google (create projects)":"Connect Google (create projects)"}),title:"Connect Google (create projects)",body:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission, separate from the Drive backup one:"}),(0,t.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, configure, and delete your Google Cloud data (cloud-platform)."}),(0,t.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-ink-soft",children:x.map(e=>(0,t.jsx)("li",{children:e},e))}),(0,t.jsxs)("p",{className:"mt-2 text-ink-soft",children:["Before the first connect, add this redirect URI to the OAuth client in the Google Cloud console: ",(0,t.jsx)("span",{className:"font-mono text-[12px]",children:"/auth/google/create/callback"})," on this site."]})]}),cta:"Continue to Google",onConfirm:async()=>{let e=await d();return e.ok&&e.data?(window.location.assign(e.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:e.ok?"Watchbell didn't answer. Check that it's still running, then try again.":e.error}}})}e.s(["CreateButton",0,function({type:e,target:r,targetName:s,label:i}){let[o,l]=(0,a.useState)(!1);return(0,f.useHoldRefresh)(o),(0,t.jsxs)(m.N,{open:o,onOpenChange:l,children:[(0,t.jsxs)(m.a,{render:(0,t.jsx)(h.K,{size:"sm"}),children:[(0,t.jsx)(n.f,{size:15,"aria-hidden":!0,className:"-ml-0.5 mr-1 inline"}),i]}),(0,t.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:o&&(0,t.jsx)(E,{type:e,target:r,targetName:s,onDone:()=>l(!1)})})]})},"DisconnectGoogleCreateButton",0,function(){return(0,t.jsx)(p.f,{trigger:(0,t.jsx)(h.K,{children:"Disconnect Google (create)"}),title:"Disconnect Google (create projects)?",body:"The console forgets the grant. Remove Watchbell's access in your Google Account → Security → Third-party access as well. Projects already created stay.",cta:"Disconnect",onConfirm:async()=>{let e=await l();return e.ok?{ok:!0,message:e.message??"Disconnected."}:{ok:!1,message:e.error}}})}],688656)},259871,e=>{var t=e.i(843476),n=e.i(399582),r=e.i(271645),a=e.i(846696),s=e.i(95187);let i=(0,s.createServerReference)("603ca9f6905c0b8f1b8671d9fa1bb13709a3b26041",s.callServer,void 0,s.findSourceMapURL,"approveCreateAction"),o=(0,s.createServerReference)("40a28df024a0850c4e995e89b4731bac32e821c894",s.callServer,void 0,s.findSourceMapURL,"rejectCreateAction");var l=e.i(54131),c=e.i(46200),d=e.i(428325),u=e.i(500443),p=e.i(776639),h=e.i(552978);let f=new Set(["requested","approved","running"]),m=e=>f.has(e.status);var x=e.i(684496),g=e.i(975157);let b={requested:"Waiting for approval",approved:"Approved",running:"Creating…",done:"Created",failed:"Failed",rejected:"Rejected",expired:"Expired"};function v({items:e,owner:n,focus:r,quiet:a}){let s=(0,l.useMask)();return(0,t.jsx)("ul",{className:"divide-y divide-line",children:e.map(e=>{var i;let o;return(0,t.jsxs)("li",{id:`create-${e.id}`,className:(0,g.f)("flex flex-wrap items-center gap-x-3 gap-y-1.5 px-[18px] py-2.5",a&&"py-2 text-[13px]",r===e.id&&"bg-brand-soft"),children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("b",{className:(0,g.f)("font-medium",a&&"text-ink-soft"),children:h.S[e.type]}),(0,t.jsx)(d.E,{children:h.E[e.type]}),(0,t.jsx)("span",{className:(0,g.f)("text-[12.5px]","failed"===e.status?"text-err":"text-ink-soft"),children:b[e.status]})]}),(0,t.jsx)("p",{className:"font-mono text-[12.5px] text-ink-soft [overflow-wrap:anywhere]",children:s("text",e.summary)}),"requested"===e.status&&(0,t.jsxs)("p",{className:"text-[12px] text-ink-faint",children:[e.mine?"You asked":"Another member asked"," · expires ",(i=new Date(e.expiresAt),o=(0,x.e)(i),`${o.day} ${o.month} ${o.year}, ${(0,x.U)(i)}`)]}),e.error&&"requested"!==e.status&&(0,t.jsx)("p",{className:"text-[12.5px] text-err",children:s("text",e.error)}),e.result?.id&&"done"===e.status&&(0,t.jsxs)("p",{className:"text-[12px] text-ink-faint",children:["Created: ",(0,t.jsx)("span",{className:"font-mono",children:s("text",e.result.id)}),"firebase-pending"===e.result.note?" · Firebase still needs adding in the Firebase console":""]})]}),n&&"requested"===e.status&&(0,t.jsxs)("div",{className:"flex gap-1.5",children:[(0,t.jsx)(j,{item:e}),(0,t.jsx)(y,{item:e})]})]},e.id)})})}function j({item:e}){return(0,t.jsx)(c.f,{trigger:(0,t.jsx)(d.K,{size:"sm",children:"Reject"}),title:`Reject this ${h.S[e.type]}?`,body:"Nothing is created. The person who asked can ask again.",cta:"Reject",onConfirm:async()=>{let t=await o(e.id);return t.ok?{ok:!0,message:t.message??"Rejected."}:{ok:!1,message:t.error}}})}function y({item:e}){let[n,a]=(0,r.useState)(!1);return(0,u.useHoldRefresh)(n),(0,t.jsxs)(p.N,{open:n,onOpenChange:a,children:[(0,t.jsx)(p.a,{render:(0,t.jsx)(d.K,{size:"sm",variant:"primary"}),children:"Approve…"}),(0,t.jsx)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:n&&(0,t.jsx)(k,{item:e,onDone:()=>a(!1)})})]})}function k({item:e,onDone:n}){let s=(0,l.useMask)(),[o,c]=(0,r.useState)(""),[u,f]=(0,r.useState)(null),[m,x]=(0,r.useState)(null),[g,b]=(0,r.useState)(null),[v,j]=(0,r.useTransition)();return m?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsx)(p.F,{className:"text-base",children:"Copy the database password now"}),(0,t.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[g," It is shown only here, only once."]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,t.jsx)(N,{value:m}),(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(d.M,{tone:"warning",title:"The console doesn't keep it",children:"Save it in your password manager. If it's lost, reset it in Supabase → Project settings → Database."})})]}),(0,t.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,t.jsx)(d.K,{variant:"primary",onClick:()=>{x(null),n()},children:"I've saved it"})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,t.jsx)(p.F,{className:"text-base",children:s("text",`Create ${h.S[e.type]} ${e.confirmName}?`)}),(0,t.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["The console checks the free tier at ",h.E[e.type]," again now, then makes one create call. ",(0,h.d)(e.type)]})]}),(0,t.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,t.jsx)("p",{className:"mb-3 rounded-md border border-line bg-sunken px-3 py-2 font-mono text-[12.5px] [overflow-wrap:anywhere]",children:s("text",e.summary)}),(0,t.jsx)(d.O,{id:`ap-${e.id}`,label:(0,t.jsxs)(t.Fragment,{children:["Type ",(0,t.jsx)("span",{className:"font-mono",children:s("text",e.confirmName)})," to approve"]}),error:u??void 0,children:(0,t.jsx)("input",{id:`ap-${e.id}`,className:d.S,value:o,autoComplete:"off",spellCheck:!1,onChange:e=>c(e.target.value)})})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(d.K,{onClick:n,disabled:v,children:"Cancel"}),(0,t.jsx)(d.K,{variant:"primary",onClick:function(){j(async()=>{try{let t=await i(e.id,o);if(!t.ok)return f(s("text",t.error));f(null),t.data?.secret?(x(t.data.secret),b(s("text",t.message??"Created."))):(a.c.success(s("text",t.message??"Created.")),n())}catch{f("Something went wrong. Check the provider's dashboard before trying again.")}})},disabled:v||o.trim()!==e.confirmName,children:v?"Checking and creating…":"Approve and create"})]})]})}function N({value:e}){let[s,i]=(0,r.useState)(!1),{shot:o}=(0,l.usePrivacy)(),[c,u]=(0,r.useState)(!1);return(0,t.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded-md border border-line-strong bg-sunken px-3 py-2",children:[o&&!c?(0,t.jsx)("button",{type:"button",className:"min-w-0 flex-1 text-left text-[13px] text-ink-soft",onClick:()=>u(!0),children:"Hidden in screenshot mode. Click to show it."}):(0,t.jsx)("code",{className:"min-w-0 flex-1 select-all font-mono text-[13px] [overflow-wrap:anywhere]",children:e}),(0,t.jsxs)(d.K,{size:"sm",onClick:()=>{navigator.clipboard.writeText(e).then(()=>i(!0),()=>a.c.error("Copy didn't work; select the text and copy it."))},children:[(0,t.jsx)(n.f,{size:14,"aria-hidden":!0,className:"mr-1 inline"}),s?"Copied":"Copy"]})]})}e.s(["CreateRequestList",0,function({items:e,owner:n,focus:r,title:a="Waiting for approval"}){let{pending:s,finished:i}={pending:e.filter(m),finished:e.filter(e=>!m(e))};if(!s.length&&!i.length)return null;let o=s.filter(e=>"requested"===e.status).length;return(0,t.jsxs)(t.Fragment,{children:[s.length>0&&(0,t.jsx)(d.N,{title:a,meta:o?`${o} waiting`:void 0,flush:!0,children:(0,t.jsx)(v,{items:s,owner:n,focus:r})}),i.length>0&&(0,t.jsx)(d.N,{title:"Recent requests",flush:!0,children:(0,t.jsx)(v,{items:i,owner:!1,focus:r,quiet:!0})})]})}],259871)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function s(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),i=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),o=(i-1)*n,l=e.slice(o,o+n);return{rows:l,page:i,pages:a,from:0===r?0:o+1,to:o+l.length,total:r}}e.s(["f",0,function({page:e,pages:s,text:i,onPage:o,bleed:l=!1}){let c=(0,n.useRef)(null),d=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==d.current&&(c.current?.querySelectorAll("button")[d.current]?.focus(),d.current=null)},[e]),s<=1)return null;let u=(e,t)=>{(e<=1||e>=s)&&(d.current=t),o(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:i}),(0,t.jsxs)("span",{ref:c,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:()=>u(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=s,onClick:()=>u(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,s,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),i=s(e.slice(a),t,r);return 0===a||i.page>1?{...i,shift:a}:{...s(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},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),s=e.i(921637),i=e.i(141708),o=e.i(593480),l=e.i(309169),c=r;e.s(["f",0,c],152744);var c=r,d=e.i(975157),u=e.i(271645),p=e.i(540886),h=e.i(552245);let f=u.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:s=!1,nativeButton:i=!0,style:o,...l}=e,{getButtonProps:c,buttonRef:d}=(0,p.f)({disabled:a,focusableWhenDisabled:s,native:i});return(0,h.a)("button",e,{state:{disabled:a},ref:[t,d],props:[l,c]})}),m=(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 x({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(f,{"data-slot":"button",className:(0,d.f)(m({variant:n,size:r,className:e})),...a})}var g=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,g.f)(b);function j({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...n}){return(0,t.jsx)(i.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,d.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)(j,{children:[(0,t.jsx)(y,{}),(0,t.jsxs)(o.f.Popup,{"data-slot":"dialog-content",className:(0,d.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)(s.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(x,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(c.Description,{"data-slot":"dialog-description",className:(0,d.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,d.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)},552978,e=>{let t={dns_record:"Cloudflare",neon_branch:"Neon",supabase_project:"Supabase",firebase_project:"Firebase"};e.s(["E",0,t,"S",0,{dns_record:"DNS record",neon_branch:"Neon branch",supabase_project:"Supabase project",firebase_project:"Firebase project"},"d",0,e=>`The console can't remove this later; remove it in ${t[e]}'s dashboard.`])},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 s=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function i(e){let t=s.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function o([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=i(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]),s=2===n.length?r(n[1]):[],o=8-a.length-s.length;if(1===n.length?0!==o:o<1)return null;let l=[...a,...Array(2===n.length?o:0).fill("0"),...s];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 o([(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=i(t);if(n)return o(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 c=[3,5,10],d=/[\u0000-\u001f\u007f-\u009f]/,u=/[­؜᠎​-‏‪-‮⁠-⁤⁦-⁩]/;e.s(["L",0,c,"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??""),s=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(s)||d.test(s)||u.test(n)?t.name="Name the job, like backup job.":s.length>60&&(t.name="Keep the name to 60 characters.");let i=Number(e?.periodS);r.includes(i)||(t.periodS="Pick how often the job runs.");let o=Number(e?.graceS);return(a.includes(o)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:s,periodS:i,graceS:o}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),s=null;try{s=new URL(a)}catch{s=null}s&&s.hostname&&!(a.length>2048)&&"scheme"!==l(s)?"blocked"===l(s)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let i=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(i)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let o=Number(e?.timeoutS);c.includes(o)||(r.timeoutS="Pick a timeout.");let d=String(e?.bodyContains??"").trim(),u=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(d.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!u&&p&&(r.jsonPath="Add a JSON path for the value."),u&&(u.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}(u)?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.",d&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!s)?{ok:!1,fieldErrors:r}:(s.hash="",{ok:!0,value:{url:s.toString(),expectedStatus:Number(i),timeoutMs:1e3*o,bodyContains:d||null,jsonPath:u||null,jsonEquals:u?p:null}})}],70528)},450547,212253,e=>{e.i(684496),e.i(322534),e.i(452842);let t=e=>1===e?"Auto":e%3600==0?`${e/3600} h`:e%60==0?`${e/60} min`:`${e} s`;e.s(["f",0,t],212253);let n=["A","AAAA","CNAME","TXT"],r=["A","AAAA","CNAME"],a=e=>n.includes(e),s=e=>r.includes(e),i=/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$/,o=RegExp("^(?=.{1,253}$)(?:[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?\\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"),l=/^[\x20-\x7e]+$/,c=e=>e.trim().toLowerCase().replace(/\.$/,"");function d(e,t){let n=t.trim();return"CNAME"===e?c(n):"AAAA"===e?n.toLowerCase():n}function u(e,t){if(!a(e.type))return{ok:!1,field:"content",error:"Only A, AAAA, CNAME and TXT records can be edited here."};let n=d(e.type,String(t.content??""));if("A"===e.type&&!i.test(n))return{ok:!1,field:"content",error:"An A record needs an IPv4 address, like 76.76.21.21."};if("AAAA"===e.type&&!function(e){if(!e.includes(":")||!/^[0-9a-f:.]+$/i.test(e))return!1;try{return new URL(`http://[${e}]/`).hostname.length>2}catch{return!1}}(n))return{ok:!1,field:"content",error:"An AAAA record needs an IPv6 address, like 2606:4700::1111."};if("CNAME"===e.type){if(!o.test(n))return{ok:!1,field:"content",error:"A CNAME needs a hostname, like something.vercel-dns-017.com."};if(n===c(e.name))return{ok:!1,field:"content",error:"A CNAME can't point to itself."}}if("TXT"===e.type&&(!n||n.length>2048||!l.test(n)))return{ok:!1,field:"content",error:`TXT content is 1 to ${2048..toLocaleString("en")} printable characters on one line.`};let r=!0===t.proxied;if(r&&!s(e.type))return{ok:!1,field:"proxied",error:"Only A, AAAA and CNAME records can be proxied."};let u=t.ttl;return!Number.isInteger(u)||1!==u&&(u<60||u>86400)?{ok:!1,field:"ttl",error:`TTL is Auto or 60 to ${86400..toLocaleString("en")} seconds.`}:{ok:!0,values:{content:n,ttl:r?1:u,proxied:r}}}let p=e=>e?"Proxied":"DNS only";e.s(["k",0,1,"j",0,n,"i",0,[1,60,120,300,600,900,1800,3600,7200,18e3,43200,86400],"O",0,a,"z",0,s,"t",0,function(e,n){let r=u(e,n);if(!r.ok)return{ok:!1,error:r.error};let a=[];return d(e.type,e.content)!==r.values.content&&a.push({field:"content",before:e.content,after:r.values.content}),e.ttl!==r.values.ttl&&a.push({field:"ttl",before:t(e.ttl),after:t(r.values.ttl)}),e.proxied!==r.values.proxied&&a.push({field:"proxied",before:p(e.proxied),after:p(r.values.proxied)}),a.length?{ok:!0,values:r.values,changes:a}:{ok:!1,error:"Nothing to change."}},"V",0,u],450547)},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)}])})();
@@ -1 +1 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,469472,e=>{let a=(0,e.i(33550).f)("outline","user-plus","UserPlus",[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4",key:"svg-3"}]]);e.s(["f",0,a],469472)},239430,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(428325),i=e.i(95187);let n=(0,i.createServerReference)("40fdd1ba590f56fd87a6d2ad5d4e51e7c7abda1e02",i.callServer,void 0,i.findSourceMapURL,"setActionsRepoAction");e.s(["ActionsRepoForm",0,function({current:e}){let[i,l]=(0,s.useState)(e??""),[o,c]=(0,s.useTransition)();return(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{className:`${t.S} w-72 font-mono`,placeholder:"yourname/watchbell-actions",value:i,onChange:e=>l(e.target.value),"aria-label":"Actions repository"}),(0,a.jsx)(t.K,{size:"sm",onClick:()=>c(async()=>{let e=await n(i);e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)}),disabled:o||i.trim()===(e??""),children:o?"Saving…":"Save"})]})}],239430)},211032,e=>{var a=e.i(843476),s=e.i(469472),r=e.i(271645),t=e.i(846696),i=e.i(428325),n=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("60881247df0fe27ef8490462b9555d28c8d02244c2",l.callServer,void 0,l.findSourceMapURL,"addMember"),c=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function d({added:e,onDone:s}){let[l,o]=(0,r.useState)(!1),c=async()=>{try{await navigator.clipboard.writeText(e.password),o(!0)}catch{t.c.error("Couldn't copy. Select the password and copy it yourself.")}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,a.jsxs)(n.F,{className:"text-base",children:[e.email," was added"]}),(0,a.jsx)(n.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Share this temporary password with them privately (not in a group chat or a ticket). It is shown only now and works for 7 days; they choose their own at their first sign-in."})]}),(0,a.jsx)("div",{className:"px-[18px] pb-3.5 pt-1.5",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface-2 px-3 py-2",children:[(0,a.jsx)("code",{className:"flex-1 select-all break-all font-mono text-[14px] tracking-wide","aria-label":"Temporary password",children:e.password}),(0,a.jsx)(i.K,{size:"sm",onClick:c,children:l?"Copied":"Copy"})]})}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(i.K,{variant:"primary",onClick:s,children:"Done"})})]})}function m({onDone:e}){let[l,p,x]=(0,r.useActionState)(async(e,a)=>{let s=await o(e,a);return s.ok||s.fieldErrors||t.c.error(s.error),s},null);if(l?.ok&&l.data)return(0,a.jsx)(d,{added:l.data,onDone:e});let h=l&&!l.ok?l.fieldErrors??{}:{};return(0,a.jsxs)("form",{action:p,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(s.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(n.F,{className:"text-base",children:"Add member"}),(0,a.jsx)(n.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"This creates their account with a temporary password, shown once on the next screen."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsx)(i.O,{id:"add-email",label:"Email",error:h.email,children:(0,a.jsx)("input",{id:"add-email",name:"email",type:"email",placeholder:"name@example.com",className:i.S})}),(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:c.map(([e,s,r])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,a.jsxs)("span",{children:[s,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),h.role&&(0,a.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:h.role})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(i.K,{onClick:e,disabled:x,children:"Cancel"}),(0,a.jsx)(i.K,{type:"submit",variant:"primary",disabled:x,children:x?"Adding…":"Add member"})]})]})}e.s(["AddMemberDialog",0,function(){let[e,s]=(0,r.useState)(!1);return(0,a.jsxs)(n.N,{open:e,onOpenChange:s,children:[(0,a.jsx)(n.a,{render:(0,a.jsx)(i.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Add member"}),(0,a.jsx)(n.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,a.jsx)(m,{onDone:()=>s(!1)})})]})}],211032)},92267,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(46200),i=e.i(428325);let n={qstashPerDay:1e3,webAnalyticsEvents:5e4,vercelInvocations:1e6,vercelCpuHours:4,vercelMemoryGbH:360,warnPct:70,errPct:90},l=[{key:"qstashPerDay",label:"Upstash QStash messages",unit:"a day",min:1,max:1e7},{key:"webAnalyticsEvents",label:"Vercel Web Analytics events",unit:"a month",min:1,max:1e8},{key:"vercelInvocations",label:"Vercel function invocations",unit:"a month",min:1,max:1e9},{key:"vercelCpuHours",label:"Vercel active CPU",unit:"hours a month",min:1,max:1e4},{key:"vercelMemoryGbH",label:"Vercel provisioned memory",unit:"GB-hours a month",min:1,max:1e5},{key:"warnPct",label:"Warn from",unit:"% used",min:10,max:99},{key:"errPct",label:"Alarm from",unit:"% used",min:11,max:100}];var o=e.i(975157),c=e.i(95187);let d=(0,c.createServerReference)("00d908388ad70567ac8d71e1f06eb37e581ef23eb4",c.callServer,void 0,c.findSourceMapURL,"resetBudget"),m=(0,c.createServerReference)("40df0bada46c6617ed046e61c6879e855a7096ca6d",c.callServer,void 0,c.findSourceMapURL,"saveBudget"),p=e=>Object.fromEntries(l.map(a=>[a.key,String(e[a.key])]));e.s(["BudgetForm",0,function({saved:e}){let[c,x]=(0,s.useState)(p(e)),[h,u]=(0,s.useState)({}),[g,v]=(0,s.useTransition)(),f=l.some(a=>c[a.key]!==String(e[a.key])),b=l.every(a=>e[a.key]===n[a.key]);return(0,a.jsxs)("div",{children:[l.map(e=>(0,a.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,a.jsxs)("label",{htmlFor:`bud-${e.key}`,className:"font-medium",children:[e.label,(0,a.jsxs)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:["Published free limit: ",n[e.key].toLocaleString("en-US")," ",e.unit]})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{id:`bud-${e.key}`,inputMode:"numeric",className:(0,o.f)(i.S,"w-[160px] font-mono text-[12.5px]"),value:c[e.key],"aria-invalid":!!h[e.key],onChange:a=>x(s=>({...s,[e.key]:a.target.value}))}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:e.unit})]}),h[e.key]&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:h[e.key]})]})]},e.key)),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-3",children:[(0,a.jsx)(i.K,{variant:"primary",onClick:function(){v(async()=>{let e=await m(c);u(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:g||!f,children:g?"Saving…":"Save"}),f&&(0,a.jsx)(i.K,{variant:"ghost",onClick:()=>{x(p(e)),u({})},children:"Cancel"}),!b&&(0,a.jsx)(t.f,{trigger:(0,a.jsx)(i.K,{children:"Reset to defaults"}),title:"Reset the free tier limits?",body:"The table goes back to the published free plans as last checked.",cta:"Reset",onConfirm:async()=>{let e=await d();return e.ok&&x(p(n)),{ok:e.ok,message:(e.ok?e.message:e.error)??""}}})]})]})}],92267)},178059,e=>{var a=e.i(843476),s=e.i(469472),r=e.i(271645),t=e.i(846696),i=e.i(428325),n=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("609cf2d871042089a6551d6b39dda873698035078c",l.callServer,void 0,l.findSourceMapURL,"inviteUser"),c=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function d({onDone:e}){let[l,m,p]=(0,r.useActionState)(async(a,s)=>{let r=await o(a,s);return r.ok?(t.c.success(r.message??"Invite saved."),e()):r.fieldErrors||t.c.error(r.error),r},null),x=l&&!l.ok?l.fieldErrors??{}:{};return(0,a.jsxs)("form",{action:m,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(s.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(n.F,{className:"text-base",children:"Invite user"}),(0,a.jsx)(n.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"They sign in at the console's sign-in page with this email. The invite lasts 7 days."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsx)(i.O,{id:"inv-email",label:"Email",error:x.email,children:(0,a.jsx)("input",{id:"inv-email",name:"email",type:"email",placeholder:"name@example.com",className:i.S})}),(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:c.map(([e,s,r])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,a.jsxs)("span",{children:[s,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),x.role&&(0,a.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:x.role})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(i.K,{onClick:e,disabled:p,children:"Cancel"}),(0,a.jsx)(i.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save invite"})]})]})}e.s(["InviteDialog",0,function(){let[e,s]=(0,r.useState)(!1);return(0,a.jsxs)(n.N,{open:e,onOpenChange:s,children:[(0,a.jsx)(n.a,{render:(0,a.jsx)(i.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Invite user"}),(0,a.jsx)(n.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,a.jsx)(d,{onDone:()=>s(!1)})})]})}],178059)},471169,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(46200),t=e.i(428325);let i={owner:"Owner",operator:"Operator",viewer:"Viewer"};var n=e.i(95187);let l=(0,n.createServerReference)("6004f4110307eb2580d1d4a9290635c1a7a07f4e6a",n.callServer,void 0,n.findSourceMapURL,"changeRole"),o=(0,n.createServerReference)("40a74ca7d1c8514d745b50e3a1ef7a41da9b205256",n.callServer,void 0,n.findSourceMapURL,"removeMember"),c=(0,n.createServerReference)("4088306550c351942a50d7ed6a33427e71ca7050f1",n.callServer,void 0,n.findSourceMapURL,"revokeInvite"),d=e=>({ok:e.ok,message:(e.ok?e.message:e.error)??""});e.s(["RemoveMember",0,function({memberId:e,email:s,deletesAccount:i=!1}){return(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",children:"Remove"}),title:`Remove ${s}?`,body:i?"They lose access right away. Their account and sessions are deleted.":"They lose access right away. Nothing else changes.",cta:"Remove",danger:!0,onConfirm:async()=>d(await o(e))})},"RevokeInvite",0,function({inviteId:e,email:s}){return(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",children:"Withdraw"}),title:`Withdraw the invite for ${s}?`,body:"They can no longer join with the email they received.",cta:"Withdraw",danger:!0,onConfirm:async()=>d(await c(e))})},"RoleSelect",0,function({memberId:e,email:n,role:o}){let c,[m,p]=(0,s.useState)(o),x=(c={owner:"Owners can manage connections, users, and settings, including removing other owners.",operator:"They can redeploy, restore, wake, and silence alerts. They can't change connections, users, or settings.",viewer:"They become read-only, with no logs and no actions."},{title:"owner"===m?`Make ${n} an Owner?`:`Change ${n} to ${i[m]}?`,body:"owner"===o?`They lose access to connections, users, and settings. ${c[m]}`:c[m],cta:"owner"===m?"Make Owner":`Change to ${i[m]}`,danger:"owner"===m||"owner"===o});return(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("select",{"aria-label":`Role for ${n}`,value:m,className:"rounded-md border border-line-strong bg-surface px-2 py-1 text-[13px]",onChange:e=>p(e.target.value),children:[(0,a.jsx)("option",{value:"owner",children:"Owner"}),(0,a.jsx)("option",{value:"operator",children:"Operator"}),(0,a.jsx)("option",{value:"viewer",children:"Viewer"})]}),m!==o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",variant:"primary",children:"Save"}),title:x.title,body:x.body,cta:x.cta,danger:x.danger,onConfirm:async()=>d(await l(e,m))}),(0,a.jsx)(t.K,{size:"sm",variant:"ghost",onClick:()=>p(o),children:"Cancel"})]})]})}],471169)},544661,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(428325),i=e.i(691106);let n={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(n);var o=e.i(975157),c=e.i(95187);let d=(0,c.createServerReference)("40eefd75c47db656de5a03a7cf7ebfbf79e4aa8c61",c.callServer,void 0,c.findSourceMapURL,"saveRetention");e.s(["RetentionForm",0,function({saved:e,rows:c}){let[m,p]=(0,s.useState)(e),[x,h]=(0,s.useState)({}),[u,g]=(0,s.useTransition)(),v=l.some(a=>m[a]!==e[a]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:i.o,children:[(0,a.jsx)(i.U,{head:["Data","Kept for","Notes"]}),(0,a.jsx)("tbody",{children:c.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:i.z,children:(0,a.jsx)("label",{htmlFor:`ret-${e.key}`,children:e.kind})}),(0,a.jsxs)("td",{className:i.z,children:[(0,a.jsx)("select",{id:`ret-${e.key}`,className:(0,o.f)(t.S,"w-[130px]"),value:m[e.key],"aria-invalid":!!x[e.key],onChange:a=>p(s=>({...s,[e.key]:Number(a.target.value)})),children:n[e.key].map(e=>(0,a.jsxs)("option",{value:e,children:[e," days"]},e))}),x[e.key]&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:x[e.key]})]}),(0,a.jsx)("td",{className:`${i.z} whitespace-normal text-ink-soft`,children:e.note})]},e.key))})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 px-[18px] py-3",children:[(0,a.jsx)(t.K,{variant:"primary",onClick:function(){g(async()=>{let e=await d(Object.fromEntries(l.map(e=>[e,String(m[e])])));h(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:u||!v,children:u?"Saving…":"Save"}),v&&(0,a.jsx)(t.K,{variant:"ghost",onClick:()=>{p(e),h({})},children:"Cancel"})]})]})}],544661)},486927,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(54131),i=e.i(428325),n=e.i(364440),l=e.i(691106),o=e.i(789279);let c=/^[a-z0-9-]{3,40}$/;function d(e){return e.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+/,"").slice(0,40).replace(/-+$/,"")||"monitor"}var m=e.i(975157),p=e.i(95187);let x=(0,p.createServerReference)("400203675b167edcafe5a436de7cd111b5f0a4bcf5",p.callServer,void 0,p.findSourceMapURL,"saveStatusPageSettings"),h="min-w-0 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]";function u({id:e,label:s,help:r,error:t,children:i}){return(0,a.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,a.jsxs)("label",{htmlFor:e,className:"font-medium",children:[s,r&&(0,a.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:r})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[i,t&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:t})]})]})}e.s(["StatusPageTab",0,function({settings:e,siteUrl:p}){let g=e.page,[v,f]=(0,s.useState)(g?.published??!1),[b,y]=(0,s.useState)(g?.slug??""),[j,k]=(0,s.useState)(g?.title??""),[w,N]=(0,s.useState)(g?.announcement??""),[S,C]=(0,s.useState)(e.monitors),[R,M]=(0,s.useState)({}),[T,z]=(0,s.useTransition)(),A=p.replace(/\/+$/,""),$=`${A}/s/${b||"{slug}"}`,K=S.find(e=>e.shown&&e.displayName.trim()),O=`${$}/badge/${K?d(K.displayName):"{name}"}.svg`,U=(e,a)=>C(s=>s.map(s=>s.id===e?{...s,...a}:s));return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)(i.N,{title:"Public status page",children:[(0,a.jsx)(u,{id:"sp-published",label:"Status page",help:"The console's only page without sign-in. It shows the names you choose, the current state, 90-day bars and maintenance. Never addresses, error text or provider names.",children:(0,a.jsxs)("label",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)("input",{id:"sp-published",type:"checkbox",className:"size-4 accent-brand",checked:v,onChange:e=>f(e.target.checked)}),"Published"]})}),(0,a.jsx)(u,{id:"sp-slug",label:"Address",help:"3–40 lowercase letters, digits or dashes.",error:R.slug,children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{id:"sp-slug",className:(0,m.f)(i.S,"max-w-[200px] font-mono text-[12.5px]"),value:b,maxLength:40,placeholder:"my-apps",autoComplete:"off",spellCheck:!1,"aria-invalid":!!R.slug,onChange:e=>y(e.target.value.toLowerCase())}),(0,a.jsx)("code",{className:h,children:(0,a.jsx)(t.MaskedText,{text:$})}),g?.published&&(0,a.jsx)("a",{className:(0,i.R)({size:"sm"}),href:`/s/${g.slug}`,target:"_blank",rel:"noopener noreferrer",children:"Preview"})]})}),(0,a.jsx)(u,{id:"sp-title",label:"Title",error:R.title,children:(0,a.jsx)("input",{id:"sp-title",className:(0,m.f)(i.S,"max-w-[320px]"),value:j,maxLength:80,placeholder:"e.g. My apps","aria-invalid":!!R.title,onChange:e=>k(e.target.value)})}),(0,a.jsx)(u,{id:"sp-note",label:"Announcement",help:"Optional. Shown at the top until you clear it.",children:(0,a.jsx)("input",{id:"sp-note",className:(0,m.f)(i.S,"max-w-[420px]"),value:w,maxLength:200,placeholder:"e.g. Moving to a new database tonight",onChange:e=>N(e.target.value)})}),(0,a.jsx)(u,{label:"Badges",help:"Uptime badge per monitor, for READMEs. Cached 5 minutes.",children:(0,a.jsx)("code",{className:(0,m.f)(h,"block"),children:(0,a.jsx)(t.MaskedText,{text:O})})})]}),(0,a.jsxs)(i.N,{title:"Monitors on the page",flush:!0,meta:`${S.filter(e=>e.shown).length} shown`,children:[(0,a.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-ink-soft",children:"Visitors see only the public name, never the app, its address or its database. The page lists them in this order."}),R.monitors&&(0,a.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-err",role:"alert",children:R.monitors}),0===S.length?(0,a.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No monitors yet. Add one on the Uptime page first."}):(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:l.o,children:[(0,a.jsx)(l.U,{head:["Show","Monitor","Public name"]}),(0,a.jsx)("tbody",{children:S.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:(0,m.f)(l.z,"w-[60px]"),children:(0,a.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:e.shown,"aria-label":`Show ${e.path} on the public page`,onChange:a=>U(e.id,{shown:a.target.checked})})}),(0,a.jsx)("td",{className:l.z,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-[7px]",children:[(0,a.jsx)(n.f,{kind:"mon"}),(0,a.jsxs)("span",{children:[(0,a.jsx)(t.Masked,{kind:"app",real:e.appName}),(0,a.jsx)("span",{className:"text-ink-faint",children:"heartbeat"===e.kind?` \xb7 ${e.path}`:e.path})]}),"heartbeat"===e.kind&&(0,a.jsx)(i.E,{children:"Heartbeat"})]})}),(0,a.jsx)("td",{className:l.z,children:(0,a.jsx)("input",{className:(0,m.f)(i.S,"w-[220px]"),value:e.displayName,maxLength:60,placeholder:e.shown?"Public name":"","aria-label":"Public name",disabled:!e.shown,onChange:a=>U(e.id,{displayName:a.target.value})})})]},e.id))})]})}),(0,a.jsx)("div",{className:"px-[18px] py-3",children:(0,a.jsx)(i.K,{variant:"primary",onClick:function(){var e;let a,s,t,i,n,l,m,p={slug:b,title:j,announcement:w,published:v,monitors:S.filter(e=>e.shown).map(e=>({monitorId:e.id,displayName:e.displayName}))},h=(a=p&&"object"==typeof p&&!Array.isArray(p)?p:{},s={},(t="string"==typeof(e=a.slug)&&c.test(e)?e:null)||(s.slug="Use 3–40 lowercase letters, digits or dashes."),(i=("string"==typeof a.title?a.title:"").trim().slice(0,80))||(s.title="Give the page a title."),n=("string"==typeof a.announcement?a.announcement:"").trim().slice(0,200)||null,m=((l=Array.isArray(a.monitors)?a.monitors:void 0===a.monitors?[]:null)??[]).map((e,a)=>{let s=e&&"object"==typeof e?e:{};return{monitorId:"string"==typeof s.monitorId?s.monitorId:"",displayName:("string"==typeof s.displayName?s.displayName:"").trim().slice(0,60),position:a}}),(!l||m.some(e=>!(0,o.f)(e.monitorId)||!e.displayName)?s.monitors="Every monitor needs a public name.":m.length>30?s.monitors="A status page can show at most 30 monitors.":new Set(m.map(e=>e.monitorId)).size!==m.length?s.monitors="A monitor can be on the page only once.":new Set(m.map(e=>d(e.displayName))).size!==m.length&&(s.monitors="Two monitors can't share a public name."),Object.keys(s).length||!t)?{ok:!1,fieldErrors:s}:{ok:!0,value:{slug:t,title:i,announcement:n,published:!0===a.published,monitors:m}});h.ok?(M({}),z(async()=>{let e=await x(p);if(!e.ok){M(e.fieldErrors??{}),r.c.error(e.error);return}r.c.success(e.message??"Status page saved. It updates within a minute.")})):M(h.fieldErrors)},disabled:T,children:T?"Saving…":"Save"})})]})]})}],486927)},778085,e=>{var a=e.i(843476),s=e.i(399582),r=e.i(846696),t=e.i(428325);e.s(["CopyButton",0,function({text:e,label:i="Copy"}){async function n(){try{await navigator.clipboard.writeText(e),r.c.success("Copied.")}catch{r.c.error("Couldn't copy. Select the text and copy it by hand.")}}return(0,a.jsxs)(t.K,{size:"sm",onClick:n,children:[(0,a.jsx)(s.f,{size:14,"aria-hidden":!0})," ",i]})}])}])})();
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,469472,e=>{let a=(0,e.i(33550).f)("outline","user-plus","UserPlus",[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4",key:"svg-3"}]]);e.s(["f",0,a],469472)},239430,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(428325),n=e.i(95187);let i=(0,n.createServerReference)("40c5f8349eb74cc92dc024b2e254837e8876b31a6b",n.callServer,void 0,n.findSourceMapURL,"setActionsRepoAction");e.s(["ActionsRepoForm",0,function({current:e}){let[n,l]=(0,s.useState)(e??""),[o,c]=(0,s.useTransition)();return(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{className:`${t.S} w-72 font-mono`,placeholder:"yourname/watchbell-actions",value:n,onChange:e=>l(e.target.value),"aria-label":"Actions repository"}),(0,a.jsx)(t.K,{size:"sm",onClick:()=>c(async()=>{let e=await i(n);e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)}),disabled:o||n.trim()===(e??""),children:o?"Saving…":"Save"})]})}],239430)},211032,e=>{var a=e.i(843476),s=e.i(469472),r=e.i(271645),t=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("6077adc7f4580b8301626b6d59c34ad8dd9931dd38",l.callServer,void 0,l.findSourceMapURL,"addMember"),c=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function d({added:e,onDone:s}){let[l,o]=(0,r.useState)(!1),c=async()=>{try{await navigator.clipboard.writeText(e.password),o(!0)}catch{t.c.error("Couldn't copy. Select the password and copy it yourself.")}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,a.jsxs)(i.F,{className:"text-base",children:[e.email," was added"]}),(0,a.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Share this temporary password with them privately (not in a group chat or a ticket). It is shown only now and works for 7 days; they choose their own at their first sign-in."})]}),(0,a.jsx)("div",{className:"px-[18px] pb-3.5 pt-1.5",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface-2 px-3 py-2",children:[(0,a.jsx)("code",{className:"flex-1 select-all break-all font-mono text-[14px] tracking-wide","aria-label":"Temporary password",children:e.password}),(0,a.jsx)(n.K,{size:"sm",onClick:c,children:l?"Copied":"Copy"})]})}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(n.K,{variant:"primary",onClick:s,children:"Done"})})]})}function m({onDone:e}){let[l,p,x]=(0,r.useActionState)(async(e,a)=>{let s=await o(e,a);return s.ok||s.fieldErrors||t.c.error(s.error),s},null);if(l?.ok&&l.data)return(0,a.jsx)(d,{added:l.data,onDone:e});let h=l&&!l.ok?l.fieldErrors??{}:{};return(0,a.jsxs)("form",{action:p,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(s.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:"Add member"}),(0,a.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"This creates their account with a temporary password, shown once on the next screen."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsx)(n.O,{id:"add-email",label:"Email",error:h.email,children:(0,a.jsx)("input",{id:"add-email",name:"email",type:"email",placeholder:"name@example.com",className:n.S})}),(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:c.map(([e,s,r])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,a.jsxs)("span",{children:[s,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),h.role&&(0,a.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:h.role})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(n.K,{onClick:e,disabled:x,children:"Cancel"}),(0,a.jsx)(n.K,{type:"submit",variant:"primary",disabled:x,children:x?"Adding…":"Add member"})]})]})}e.s(["AddMemberDialog",0,function(){let[e,s]=(0,r.useState)(!1);return(0,a.jsxs)(i.N,{open:e,onOpenChange:s,children:[(0,a.jsx)(i.a,{render:(0,a.jsx)(n.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Add member"}),(0,a.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,a.jsx)(m,{onDone:()=>s(!1)})})]})}],211032)},92267,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(46200),n=e.i(428325);let i={qstashPerDay:1e3,webAnalyticsEvents:5e4,vercelInvocations:1e6,vercelCpuHours:4,vercelMemoryGbH:360,warnPct:70,errPct:90},l=[{key:"qstashPerDay",label:"Upstash QStash messages",unit:"a day",min:1,max:1e7},{key:"webAnalyticsEvents",label:"Vercel Web Analytics events",unit:"a month",min:1,max:1e8},{key:"vercelInvocations",label:"Vercel function invocations",unit:"a month",min:1,max:1e9},{key:"vercelCpuHours",label:"Vercel active CPU",unit:"hours a month",min:1,max:1e4},{key:"vercelMemoryGbH",label:"Vercel provisioned memory",unit:"GB-hours a month",min:1,max:1e5},{key:"warnPct",label:"Warn from",unit:"% used",min:10,max:99},{key:"errPct",label:"Alarm from",unit:"% used",min:11,max:100}];var o=e.i(975157),c=e.i(95187);let d=(0,c.createServerReference)("006a7182d079bb38072c62af939b9f46a404039396",c.callServer,void 0,c.findSourceMapURL,"resetBudget"),m=(0,c.createServerReference)("40c316bd1e1d2f9b632acc27c10eb8c7ff1b2129d1",c.callServer,void 0,c.findSourceMapURL,"saveBudget"),p=e=>Object.fromEntries(l.map(a=>[a.key,String(e[a.key])]));e.s(["BudgetForm",0,function({saved:e}){let[c,x]=(0,s.useState)(p(e)),[h,u]=(0,s.useState)({}),[b,g]=(0,s.useTransition)(),v=l.some(a=>c[a.key]!==String(e[a.key])),f=l.every(a=>e[a.key]===i[a.key]);return(0,a.jsxs)("div",{children:[l.map(e=>(0,a.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,a.jsxs)("label",{htmlFor:`bud-${e.key}`,className:"font-medium",children:[e.label,(0,a.jsxs)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:["Published free limit: ",i[e.key].toLocaleString("en-US")," ",e.unit]})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{id:`bud-${e.key}`,inputMode:"numeric",className:(0,o.f)(n.S,"w-[160px] font-mono text-[12.5px]"),value:c[e.key],"aria-invalid":!!h[e.key],onChange:a=>x(s=>({...s,[e.key]:a.target.value}))}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:e.unit})]}),h[e.key]&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:h[e.key]})]})]},e.key)),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-3",children:[(0,a.jsx)(n.K,{variant:"primary",onClick:function(){g(async()=>{let e=await m(c);u(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:b||!v,children:b?"Saving…":"Save"}),v&&(0,a.jsx)(n.K,{variant:"ghost",onClick:()=>{x(p(e)),u({})},children:"Cancel"}),!f&&(0,a.jsx)(t.f,{trigger:(0,a.jsx)(n.K,{children:"Reset to defaults"}),title:"Reset the free tier limits?",body:"The table goes back to the published free plans as last checked.",cta:"Reset",onConfirm:async()=>{let e=await d();return e.ok&&x(p(i)),{ok:e.ok,message:(e.ok?e.message:e.error)??""}}})]})]})}],92267)},178059,e=>{var a=e.i(843476),s=e.i(469472),r=e.i(271645),t=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("603eee60954ce6d4dea02c0ca85802b4e2b39789d6",l.callServer,void 0,l.findSourceMapURL,"inviteUser"),c=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function d({onDone:e}){let[l,m,p]=(0,r.useActionState)(async(a,s)=>{let r=await o(a,s);return r.ok?(t.c.success(r.message??"Invite saved."),e()):r.fieldErrors||t.c.error(r.error),r},null),x=l&&!l.ok?l.fieldErrors??{}:{};return(0,a.jsxs)("form",{action:m,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(s.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:"Invite user"}),(0,a.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"They sign in at the console's sign-in page with this email. The invite lasts 7 days."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsx)(n.O,{id:"inv-email",label:"Email",error:x.email,children:(0,a.jsx)("input",{id:"inv-email",name:"email",type:"email",placeholder:"name@example.com",className:n.S})}),(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:c.map(([e,s,r])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,a.jsxs)("span",{children:[s,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),x.role&&(0,a.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:x.role})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(n.K,{onClick:e,disabled:p,children:"Cancel"}),(0,a.jsx)(n.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save invite"})]})]})}e.s(["InviteDialog",0,function(){let[e,s]=(0,r.useState)(!1);return(0,a.jsxs)(i.N,{open:e,onOpenChange:s,children:[(0,a.jsx)(i.a,{render:(0,a.jsx)(n.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Invite user"}),(0,a.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,a.jsx)(d,{onDone:()=>s(!1)})})]})}],178059)},471169,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(46200),t=e.i(428325);let n={owner:"Owner",operator:"Operator",viewer:"Viewer"};var i=e.i(95187);let l=(0,i.createServerReference)("6050d031c93f85975b82703c4b6eda3670cce2a83b",i.callServer,void 0,i.findSourceMapURL,"changeRole"),o=(0,i.createServerReference)("40c050bbf1fba94c315b6f0d38bcd6067bead0d289",i.callServer,void 0,i.findSourceMapURL,"removeMember"),c=(0,i.createServerReference)("4046546a6b5e775de54ebbdc0be2b5fa15db2a3d75",i.callServer,void 0,i.findSourceMapURL,"revokeInvite"),d=e=>({ok:e.ok,message:(e.ok?e.message:e.error)??""});e.s(["RemoveMember",0,function({memberId:e,email:s,deletesAccount:n=!1}){return(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",children:"Remove"}),title:`Remove ${s}?`,body:n?"They lose access right away. Their account and sessions are deleted.":"They lose access right away. Nothing else changes.",cta:"Remove",danger:!0,onConfirm:async()=>d(await o(e))})},"RevokeInvite",0,function({inviteId:e,email:s}){return(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",children:"Withdraw"}),title:`Withdraw the invite for ${s}?`,body:"They can no longer join with the email they received.",cta:"Withdraw",danger:!0,onConfirm:async()=>d(await c(e))})},"RoleSelect",0,function({memberId:e,email:i,role:o}){let c,[m,p]=(0,s.useState)(o),x=(c={owner:"Owners can manage connections, users, and settings, including removing other owners.",operator:"They can redeploy, restore, wake, and silence alerts. They can't change connections, users, or settings.",viewer:"They become read-only, with no logs and no actions."},{title:"owner"===m?`Make ${i} an Owner?`:`Change ${i} to ${n[m]}?`,body:"owner"===o?`They lose access to connections, users, and settings. ${c[m]}`:c[m],cta:"owner"===m?"Make Owner":`Change to ${n[m]}`,danger:"owner"===m||"owner"===o});return(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("select",{"aria-label":`Role for ${i}`,value:m,className:"rounded-md border border-line-strong bg-surface px-2 py-1 text-[13px]",onChange:e=>p(e.target.value),children:[(0,a.jsx)("option",{value:"owner",children:"Owner"}),(0,a.jsx)("option",{value:"operator",children:"Operator"}),(0,a.jsx)("option",{value:"viewer",children:"Viewer"})]}),m!==o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",variant:"primary",children:"Save"}),title:x.title,body:x.body,cta:x.cta,danger:x.danger,onConfirm:async()=>d(await l(e,m))}),(0,a.jsx)(t.K,{size:"sm",variant:"ghost",onClick:()=>p(o),children:"Cancel"})]})]})}],471169)},544661,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(428325),n=e.i(691106);let i={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(i);var o=e.i(975157),c=e.i(95187);let d=(0,c.createServerReference)("40cd23e240c5a4d8147165aaccc4f1bec68103aec8",c.callServer,void 0,c.findSourceMapURL,"saveRetention");e.s(["RetentionForm",0,function({saved:e,rows:c}){let[m,p]=(0,s.useState)(e),[x,h]=(0,s.useState)({}),[u,b]=(0,s.useTransition)(),g=l.some(a=>m[a]!==e[a]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:n.o,children:[(0,a.jsx)(n.U,{head:["Data","Kept for","Notes"]}),(0,a.jsx)("tbody",{children:c.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:n.z,children:(0,a.jsx)("label",{htmlFor:`ret-${e.key}`,children:e.kind})}),(0,a.jsxs)("td",{className:n.z,children:[(0,a.jsx)("select",{id:`ret-${e.key}`,className:(0,o.f)(t.S,"w-[130px]"),value:m[e.key],"aria-invalid":!!x[e.key],onChange:a=>p(s=>({...s,[e.key]:Number(a.target.value)})),children:i[e.key].map(e=>(0,a.jsxs)("option",{value:e,children:[e," days"]},e))}),x[e.key]&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:x[e.key]})]}),(0,a.jsx)("td",{className:`${n.z} whitespace-normal text-ink-soft`,children:e.note})]},e.key))})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 px-[18px] py-3",children:[(0,a.jsx)(t.K,{variant:"primary",onClick:function(){b(async()=>{let e=await d(Object.fromEntries(l.map(e=>[e,String(m[e])])));h(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:u||!g,children:u?"Saving…":"Save"}),g&&(0,a.jsx)(t.K,{variant:"ghost",onClick:()=>{p(e),h({})},children:"Cancel"})]})]})}],544661)},486927,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(54131),n=e.i(428325),i=e.i(364440),l=e.i(691106),o=e.i(789279);let c=/^[a-z0-9-]{3,40}$/;function d(e){return e.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+/,"").slice(0,40).replace(/-+$/,"")||"monitor"}var m=e.i(975157),p=e.i(95187);let x=(0,p.createServerReference)("4004beb3a0a753dee9e81c7a1e2032a96656281dbf",p.callServer,void 0,p.findSourceMapURL,"saveStatusPageSettings"),h="min-w-0 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]";function u({id:e,label:s,help:r,error:t,children:n}){return(0,a.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,a.jsxs)("label",{htmlFor:e,className:"font-medium",children:[s,r&&(0,a.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:r})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[n,t&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:t})]})]})}e.s(["StatusPageTab",0,function({settings:e,siteUrl:p}){let b=e.page,[g,v]=(0,s.useState)(b?.published??!1),[f,y]=(0,s.useState)(b?.slug??""),[j,k]=(0,s.useState)(b?.title??""),[w,N]=(0,s.useState)(b?.announcement??""),[S,C]=(0,s.useState)(e.monitors),[R,M]=(0,s.useState)({}),[T,A]=(0,s.useTransition)(),z=p.replace(/\/+$/,""),$=`${z}/s/${f||"{slug}"}`,K=S.find(e=>e.shown&&e.displayName.trim()),O=`${$}/badge/${K?d(K.displayName):"{name}"}.svg`,U=(e,a)=>C(s=>s.map(s=>s.id===e?{...s,...a}:s));return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)(n.N,{title:"Public status page",children:[(0,a.jsx)(u,{id:"sp-published",label:"Status page",help:"The console's only page without sign-in. It shows the names you choose, the current state, 90-day bars and maintenance. Never addresses, error text or provider names.",children:(0,a.jsxs)("label",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)("input",{id:"sp-published",type:"checkbox",className:"size-4 accent-brand",checked:g,onChange:e=>v(e.target.checked)}),"Published"]})}),(0,a.jsx)(u,{id:"sp-slug",label:"Address",help:"3–40 lowercase letters, digits or dashes.",error:R.slug,children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{id:"sp-slug",className:(0,m.f)(n.S,"max-w-[200px] font-mono text-[12.5px]"),value:f,maxLength:40,placeholder:"my-apps",autoComplete:"off",spellCheck:!1,"aria-invalid":!!R.slug,onChange:e=>y(e.target.value.toLowerCase())}),(0,a.jsx)("code",{className:h,children:(0,a.jsx)(t.MaskedText,{text:$})}),b?.published&&(0,a.jsx)("a",{className:(0,n.R)({size:"sm"}),href:`/s/${b.slug}`,target:"_blank",rel:"noopener noreferrer",children:"Preview"})]})}),(0,a.jsx)(u,{id:"sp-title",label:"Title",error:R.title,children:(0,a.jsx)("input",{id:"sp-title",className:(0,m.f)(n.S,"max-w-[320px]"),value:j,maxLength:80,placeholder:"e.g. My apps","aria-invalid":!!R.title,onChange:e=>k(e.target.value)})}),(0,a.jsx)(u,{id:"sp-note",label:"Announcement",help:"Optional. Shown at the top until you clear it.",children:(0,a.jsx)("input",{id:"sp-note",className:(0,m.f)(n.S,"max-w-[420px]"),value:w,maxLength:200,placeholder:"e.g. Moving to a new database tonight",onChange:e=>N(e.target.value)})}),(0,a.jsx)(u,{label:"Badges",help:"Uptime badge per monitor, for READMEs. Cached 5 minutes.",children:(0,a.jsx)("code",{className:(0,m.f)(h,"block"),children:(0,a.jsx)(t.MaskedText,{text:O})})})]}),(0,a.jsxs)(n.N,{title:"Monitors on the page",flush:!0,meta:`${S.filter(e=>e.shown).length} shown`,children:[(0,a.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-ink-soft",children:"Visitors see only the public name, never the app, its address or its database. The page lists them in this order."}),R.monitors&&(0,a.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-err",role:"alert",children:R.monitors}),0===S.length?(0,a.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No monitors yet. Add one on the Uptime page first."}):(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:l.o,children:[(0,a.jsx)(l.U,{head:["Show","Monitor","Public name"]}),(0,a.jsx)("tbody",{children:S.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:(0,m.f)(l.z,"w-[60px]"),children:(0,a.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:e.shown,"aria-label":`Show ${e.path} on the public page`,onChange:a=>U(e.id,{shown:a.target.checked})})}),(0,a.jsx)("td",{className:l.z,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-[7px]",children:[(0,a.jsx)(i.f,{kind:"mon"}),(0,a.jsxs)("span",{children:[(0,a.jsx)(t.Masked,{kind:"app",real:e.appName}),(0,a.jsx)("span",{className:"text-ink-faint",children:"heartbeat"===e.kind?` \xb7 ${e.path}`:e.path})]}),"heartbeat"===e.kind&&(0,a.jsx)(n.E,{children:"Heartbeat"})]})}),(0,a.jsx)("td",{className:l.z,children:(0,a.jsx)("input",{className:(0,m.f)(n.S,"w-[220px]"),value:e.displayName,maxLength:60,placeholder:e.shown?"Public name":"","aria-label":"Public name",disabled:!e.shown,onChange:a=>U(e.id,{displayName:a.target.value})})})]},e.id))})]})}),(0,a.jsx)("div",{className:"px-[18px] py-3",children:(0,a.jsx)(n.K,{variant:"primary",onClick:function(){var e;let a,s,t,n,i,l,m,p={slug:f,title:j,announcement:w,published:g,monitors:S.filter(e=>e.shown).map(e=>({monitorId:e.id,displayName:e.displayName}))},h=(a=p&&"object"==typeof p&&!Array.isArray(p)?p:{},s={},(t="string"==typeof(e=a.slug)&&c.test(e)?e:null)||(s.slug="Use 3–40 lowercase letters, digits or dashes."),(n=("string"==typeof a.title?a.title:"").trim().slice(0,80))||(s.title="Give the page a title."),i=("string"==typeof a.announcement?a.announcement:"").trim().slice(0,200)||null,m=((l=Array.isArray(a.monitors)?a.monitors:void 0===a.monitors?[]:null)??[]).map((e,a)=>{let s=e&&"object"==typeof e?e:{};return{monitorId:"string"==typeof s.monitorId?s.monitorId:"",displayName:("string"==typeof s.displayName?s.displayName:"").trim().slice(0,60),position:a}}),(!l||m.some(e=>!(0,o.f)(e.monitorId)||!e.displayName)?s.monitors="Every monitor needs a public name.":m.length>30?s.monitors="A status page can show at most 30 monitors.":new Set(m.map(e=>e.monitorId)).size!==m.length?s.monitors="A monitor can be on the page only once.":new Set(m.map(e=>d(e.displayName))).size!==m.length&&(s.monitors="Two monitors can't share a public name."),Object.keys(s).length||!t)?{ok:!1,fieldErrors:s}:{ok:!0,value:{slug:t,title:n,announcement:i,published:!0===a.published,monitors:m}});h.ok?(M({}),A(async()=>{let e=await x(p);if(!e.ok){M(e.fieldErrors??{}),r.c.error(e.error);return}r.c.success(e.message??"Status page saved. It updates within a minute.")})):M(h.fieldErrors)},disabled:T,children:T?"Saving…":"Save"})})]})]})}],486927)}])})();