watchbell 1.7.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/package.json +1 -1
  2. package/server/.next/BUILD_ID +1 -1
  3. package/server/.next/build-manifest.json +3 -3
  4. package/server/.next/prerender-manifest.json +3 -3
  5. package/server/.next/required-server-files.json +1 -1
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +52 -51
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +52 -51
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +52 -51
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  18. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +52 -51
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  22. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +52 -51
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  26. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  27. package/server/.next/server/app/(console)/(private)/ai/models/page.js +52 -51
  28. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  31. package/server/.next/server/app/(console)/(private)/ai/page.js +52 -51
  32. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +52 -51
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  38. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +52 -51
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  42. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +52 -51
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  46. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +52 -51
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +52 -51
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  53. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  54. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +52 -51
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  57. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  58. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  59. package/server/.next/server/app/(console)/alerts/page.js +52 -51
  60. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  61. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  62. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +34 -34
  63. package/server/.next/server/app/(console)/apps/[id]/page.js +52 -51
  64. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  65. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  66. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  67. package/server/.next/server/app/(console)/apps/page.js +52 -51
  68. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  69. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  70. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  71. package/server/.next/server/app/(console)/backups/page.js +52 -51
  72. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  73. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  74. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  75. package/server/.next/server/app/(console)/catalog/page.js +52 -51
  76. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  77. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  78. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  79. package/server/.next/server/app/(console)/connections/page.js +52 -51
  80. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  81. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  82. package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +14 -14
  83. package/server/.next/server/app/(console)/containers/page.js +52 -51
  84. package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -1
  85. package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +1 -1
  86. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  87. package/server/.next/server/app/(console)/d1/page.js +52 -51
  88. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  89. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  90. package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +11 -11
  91. package/server/.next/server/app/(console)/deploy/page.js +52 -51
  92. package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -1
  93. package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +1 -1
  94. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
  95. package/server/.next/server/app/(console)/deployments/page.js +52 -51
  96. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  97. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  98. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  99. package/server/.next/server/app/(console)/dns/page.js +52 -51
  100. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  101. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  102. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  103. package/server/.next/server/app/(console)/domains/page.js +52 -51
  104. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  105. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  106. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  107. package/server/.next/server/app/(console)/events/page.js +52 -51
  108. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  111. package/server/.next/server/app/(console)/firebase/page.js +52 -51
  112. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  113. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  114. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  115. package/server/.next/server/app/(console)/logs/page.js +52 -51
  116. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  117. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  118. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  119. package/server/.next/server/app/(console)/manage/sections/page.js +52 -51
  120. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  121. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  122. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  123. package/server/.next/server/app/(console)/neon/page.js +52 -51
  124. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  125. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  126. package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +12 -12
  127. package/server/.next/server/app/(console)/os/page.js +52 -51
  128. package/server/.next/server/app/(console)/os/page.js.nft.json +1 -1
  129. package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +1 -1
  130. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  131. package/server/.next/server/app/(console)/overview/page.js +52 -51
  132. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  133. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  134. package/server/.next/server/app/(console)/reports/[id]/pdf/route.js +5 -5
  135. package/server/.next/server/app/(console)/reports/[id]/pdf/route.js.nft.json +1 -1
  136. package/server/.next/server/app/(console)/reports/page/server-reference-manifest.json +35 -15
  137. package/server/.next/server/app/(console)/reports/page.js +52 -51
  138. package/server/.next/server/app/(console)/reports/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/reports/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  141. package/server/.next/server/app/(console)/repos/[id]/page.js +52 -51
  142. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  143. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  144. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  145. package/server/.next/server/app/(console)/repos/page.js +52 -51
  146. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  147. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  148. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +23 -23
  149. package/server/.next/server/app/(console)/settings/page.js +52 -51
  150. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  151. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  152. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  153. package/server/.next/server/app/(console)/sql/page.js +52 -51
  154. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  155. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  156. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  157. package/server/.next/server/app/(console)/status/page.js +52 -51
  158. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  159. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  160. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  161. package/server/.next/server/app/(console)/supabase/page.js +52 -51
  162. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  163. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  164. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  165. package/server/.next/server/app/(console)/topology/page.js +52 -51
  166. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  169. package/server/.next/server/app/(console)/turso/page.js +52 -51
  170. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  171. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  172. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  173. package/server/.next/server/app/(console)/upstash/page.js +52 -51
  174. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  175. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  177. package/server/.next/server/app/(console)/uptime/page.js +52 -51
  178. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  179. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  180. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  181. package/server/.next/server/app/(console)/welcome/page.js +52 -51
  182. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  183. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  184. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  185. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  186. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  187. package/server/.next/server/app/_global-error.html +1 -1
  188. package/server/.next/server/app/_global-error.rsc +2 -2
  189. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  190. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  191. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  192. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  193. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  194. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  195. package/server/.next/server/app/_not-found.html +1 -1
  196. package/server/.next/server/app/_not-found.rsc +3 -3
  197. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  198. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  199. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  200. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  201. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  202. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  204. package/server/.next/server/app/api/collect/route.js +59 -59
  205. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  206. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  207. package/server/.next/server/app/api/daily/route.js +66 -66
  208. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  209. package/server/.next/server/app/api/ping/[...parts]/route.js +1 -1
  210. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  211. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  212. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  213. package/server/.next/server/app/api/telegram/webhook/route.js +50 -49
  214. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  215. package/server/.next/server/app/api/v1/advice/route.js +9 -9
  216. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  217. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  218. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  219. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  220. package/server/.next/server/app/api/v1/ai/questions/route.js +8 -8
  221. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  222. package/server/.next/server/app/api/v1/mcp/route.js +7 -7
  223. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  224. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  225. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  226. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +10 -10
  227. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  228. package/server/.next/server/app/api/v1/status/route.js +10 -10
  229. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  230. package/server/.next/server/app/api/watchdog/route.js +4 -4
  231. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  232. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  233. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  234. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  235. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  236. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  237. package/server/.next/server/app/brand-icon/route.js +6 -6
  238. package/server/.next/server/app/brand-icon/route.js.nft.json +1 -1
  239. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  240. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  241. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  242. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  243. package/server/.next/server/app/mfa/page.js +27 -26
  244. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  245. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  246. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  247. package/server/.next/server/app/mfa/setup/page.js +27 -26
  248. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  249. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  250. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  251. package/server/.next/server/app/page.js.nft.json +1 -1
  252. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  253. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  254. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  255. package/server/.next/server/app/s/[slug]/page.js +1 -1
  256. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  257. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  258. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  259. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  260. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  261. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  262. package/server/.next/server/app/signin/page.js +25 -24
  263. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  264. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  265. package/server/.next/server/chunks/{[externals]__0oqc6ym5k457v._.js → [externals]__0ws552tlu2170._.js} +1 -1
  266. package/server/.next/server/chunks/{[externals]__1aervsuoo1qe_._.js → [externals]__14rgrk9t-kxa1._.js} +1 -1
  267. package/server/.next/server/chunks/{[externals]__1oag9t_9gex2-._.js → [externals]__1pdwh-htbnox8._.js} +1 -1
  268. package/server/.next/server/chunks/[root-of-the-server]__0-amtx67pqi56._.js +3 -0
  269. package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
  270. package/server/.next/server/chunks/{[root-of-the-server]__0_2fr1g7uby1m._.js → [root-of-the-server]__01nlh4ps9u-65._.js} +2 -2
  271. package/server/.next/server/chunks/{[root-of-the-server]__016wnct3b5iby._.js → [root-of-the-server]__01ur0kf75ampv._.js} +2 -2
  272. package/server/.next/server/chunks/{[root-of-the-server]__0ra_bw8zg6kmk._.js → [root-of-the-server]__028m_6oqyqmyy._.js} +2 -2
  273. package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +1 -1
  274. package/server/.next/server/chunks/{[root-of-the-server]__1hcn00gn9mapd._.js → [root-of-the-server]__02wzui3ksepqf._.js} +2 -2
  275. package/server/.next/server/chunks/[root-of-the-server]__0326wv5xmnp48._.js +3 -0
  276. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  277. package/server/.next/server/chunks/{[root-of-the-server]__0tsly874_mafr._.js → [root-of-the-server]__03537tx7cun49._.js} +2 -2
  278. package/server/.next/server/chunks/{[root-of-the-server]__1p1e6x-mb7ro2._.js → [root-of-the-server]__0400g-0wvq3uf._.js} +2 -2
  279. package/server/.next/server/chunks/[root-of-the-server]__04htuwoulmp21._.js +3 -0
  280. package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
  281. package/server/.next/server/chunks/{[root-of-the-server]__0ux78ppoct5b_._.js → [root-of-the-server]__06bn4cfh-g8-d._.js} +2 -2
  282. package/server/.next/server/chunks/{[root-of-the-server]__1ia-rts7ilt7c._.js → [root-of-the-server]__06ty1ktg427pm._.js} +2 -2
  283. package/server/.next/server/chunks/{[root-of-the-server]__0afpn-tk2qlu0._.js → [root-of-the-server]__076yrld-lo25r._.js} +2 -2
  284. package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
  285. package/server/.next/server/chunks/{[root-of-the-server]__0xnag1k7mnvoh._.js → [root-of-the-server]__081k4lp976vd7._.js} +2 -2
  286. package/server/.next/server/chunks/[root-of-the-server]__08i6b8tzxads4._.js +3 -0
  287. package/server/.next/server/chunks/[root-of-the-server]__09oipjf2ew_pn._.js +3 -0
  288. package/server/.next/server/chunks/{[root-of-the-server]__1-bbb_srnbm5x._.js → [root-of-the-server]__0_c_c1bv7sopk._.js} +1 -1
  289. package/server/.next/server/chunks/{[root-of-the-server]__0mg6rmq22tf26._.js → [root-of-the-server]__0a34twsor45ml._.js} +1 -1
  290. package/server/.next/server/chunks/{[root-of-the-server]__07gjmfv5mi33j._.js → [root-of-the-server]__0bjh2kw90a-m_._.js} +1 -1
  291. package/server/.next/server/chunks/{[root-of-the-server]__0pm83e1a3wwlw._.js → [root-of-the-server]__0c41pzboxtjvz._.js} +1 -1
  292. package/server/.next/server/chunks/{[root-of-the-server]__0ng-t81zeeipc._.js → [root-of-the-server]__0dahxh87cvyn2._.js} +2 -2
  293. package/server/.next/server/chunks/[root-of-the-server]__0dd4hulw1w-4i._.js +3 -0
  294. package/server/.next/server/chunks/{[root-of-the-server]__0nyxfjn368366._.js → [root-of-the-server]__0dfkxg4ax2hqz._.js} +1 -1
  295. package/server/.next/server/chunks/[root-of-the-server]__0e3hcgbyb09-p._.js +3 -0
  296. package/server/.next/server/chunks/{[root-of-the-server]__0gv3v5775wfmw._.js → [root-of-the-server]__0fk1609_5zg7g._.js} +2 -2
  297. package/server/.next/server/chunks/[root-of-the-server]__0fl1uspuemkzr._.js +3 -0
  298. package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
  299. package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
  300. package/server/.next/server/chunks/{[root-of-the-server]__0jz91oppmwtiq._.js → [root-of-the-server]__0hm5-0_rh9r6m._.js} +2 -2
  301. package/server/.next/server/chunks/{[root-of-the-server]__1qelr0qe50xap._.js → [root-of-the-server]__0hwm4j4o2v8nc._.js} +2 -2
  302. package/server/.next/server/chunks/[root-of-the-server]__0k73a-s2lcpoz._.js +3 -0
  303. package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
  304. package/server/.next/server/chunks/{[root-of-the-server]__0jevd1p5unnre._.js → [root-of-the-server]__0kzgu06ee59vd._.js} +2 -2
  305. package/server/.next/server/chunks/[root-of-the-server]__0mrbo2p5fy4ji._.js +3 -0
  306. package/server/.next/server/chunks/[root-of-the-server]__0nw8jgr3bsi8b._.js +3 -0
  307. package/server/.next/server/chunks/{[root-of-the-server]__0g0-q56cumuup._.js → [root-of-the-server]__0o4e39mvq8_el._.js} +1 -1
  308. package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
  309. package/server/.next/server/chunks/{[root-of-the-server]__1le7r_1_00km1._.js → [root-of-the-server]__0opds07bp1fnb._.js} +2 -2
  310. package/server/.next/server/chunks/{[root-of-the-server]__070v8547b4qpa._.js → [root-of-the-server]__0pfcnbr0br6li._.js} +1 -1
  311. package/server/.next/server/chunks/{[root-of-the-server]__1-9vvc9y0qqhf._.js → [root-of-the-server]__0pi9id-ywuq6g._.js} +2 -2
  312. package/server/.next/server/chunks/{[root-of-the-server]__0aazgg7203ez1._.js → [root-of-the-server]__0s3zxs-_ayd-6._.js} +1 -1
  313. package/server/.next/server/chunks/{[root-of-the-server]__0eyd4kffoz9ex._.js → [root-of-the-server]__0sgy49rgsxyvy._.js} +1 -1
  314. package/server/.next/server/chunks/[root-of-the-server]__0sp5xoed3-994._.js +3 -0
  315. package/server/.next/server/chunks/{[root-of-the-server]__03y8yvaulshnn._.js → [root-of-the-server]__0swji6flwxtbv._.js} +2 -2
  316. package/server/.next/server/chunks/{[root-of-the-server]__0p_rkszoindlf._.js → [root-of-the-server]__0tyilr06jn8nb._.js} +1 -1
  317. package/server/.next/server/chunks/[root-of-the-server]__0uss50b85q1j1._.js +3 -0
  318. package/server/.next/server/chunks/{[root-of-the-server]__0w1iqt-rpp_3h._.js → [root-of-the-server]__0vco1v37du1ez._.js} +1 -1
  319. package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
  320. package/server/.next/server/chunks/{[root-of-the-server]__05s9-538s47_e._.js → [root-of-the-server]__0w_hiz5nrm8-4._.js} +1 -1
  321. package/server/.next/server/chunks/[root-of-the-server]__0xzl28izr2tiq._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__0xzreqng-t2g8._.js +3 -0
  323. package/server/.next/server/chunks/{[root-of-the-server]__0b7xflnrk4amk._.js → [root-of-the-server]__0z9of310ruzug._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__0zu1odpvrptrt._.js +3 -0
  325. package/server/.next/server/chunks/{[root-of-the-server]__14cb1pomeg0x7._.js → [root-of-the-server]__1-3u16rnk101p._.js} +2 -2
  326. package/server/.next/server/chunks/[root-of-the-server]__1-pe9ipc3y6rn._.js +3 -0
  327. package/server/.next/server/chunks/[root-of-the-server]__1-tqm3jzny4zd._.js +3 -0
  328. package/server/.next/server/chunks/{[root-of-the-server]__1mqv7anx5l3yq._.js → [root-of-the-server]__108g59p2fl8tw._.js} +2 -2
  329. package/server/.next/server/chunks/[root-of-the-server]__12_wmn5mkj9v7._.js +3 -0
  330. package/server/.next/server/chunks/{[root-of-the-server]__0vuirlylhcyzm._.js → [root-of-the-server]__12bo9op0qkw9d._.js} +2 -2
  331. package/server/.next/server/chunks/{[root-of-the-server]__0p955ekgdwy_c._.js → [root-of-the-server]__12tontjm90s-j._.js} +2 -2
  332. package/server/.next/server/chunks/[root-of-the-server]__13-qqkdecmwba._.js +1 -1
  333. package/server/.next/server/chunks/{[root-of-the-server]__1qxm3lqqdbyy7._.js → [root-of-the-server]__140ixflf83vxj._.js} +2 -2
  334. package/server/.next/server/chunks/{[root-of-the-server]__1qqdsrhuw0z-w._.js → [root-of-the-server]__152e1b97gc8hw._.js} +2 -2
  335. package/server/.next/server/chunks/[root-of-the-server]__153lxhkj8-_vf._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__1rusbj8ktmzj0._.js → [root-of-the-server]__15tr3yx8k9lyt._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__029099rqwqwff._.js → [root-of-the-server]__16-0nul8mfe2m._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__0qhyj1r9qcxp3._.js → [root-of-the-server]__172vz80sdr5ny._.js} +2 -2
  339. package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
  340. package/server/.next/server/chunks/{[root-of-the-server]__0u4o6oo428rvf._.js → [root-of-the-server]__17bz0jxsns742._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__1gl0-1oziw-g0._.js → [root-of-the-server]__17jjm80vttqmq._.js} +2 -2
  342. package/server/.next/server/chunks/{[root-of-the-server]__1pu84qy7loc8o._.js → [root-of-the-server]__18eqxi2vwpdjm._.js} +2 -2
  343. package/server/.next/server/chunks/[root-of-the-server]__194y_mcnn0zs3._.js +3 -0
  344. package/server/.next/server/chunks/[root-of-the-server]__1_iy7tzpesarf._.js +1 -1
  345. package/server/.next/server/chunks/[root-of-the-server]__1_vfu21n1zq17._.js +3 -0
  346. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
  347. package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
  348. package/server/.next/server/chunks/[root-of-the-server]__1cy1k8jbwoull._.js +3 -0
  349. package/server/.next/server/chunks/[root-of-the-server]__1d4wmw2wohveb._.js +3 -0
  350. package/server/.next/server/chunks/{[root-of-the-server]__02ctwy1u4z3fj._.js → [root-of-the-server]__1dp_mz2p02ze6._.js} +2 -2
  351. package/server/.next/server/chunks/{[root-of-the-server]__11yn1ky7yixd7._.js → [root-of-the-server]__1eng6c6q52y-6._.js} +2 -2
  352. package/server/.next/server/chunks/[root-of-the-server]__1etg41llk7f09._.js +3 -0
  353. package/server/.next/server/chunks/[root-of-the-server]__1f-rkijnm8me7._.js +3 -0
  354. package/server/.next/server/chunks/{[root-of-the-server]__0t6rge6laz89-._.js → [root-of-the-server]__1gfuhug61s-qy._.js} +2 -2
  355. package/server/.next/server/chunks/{[root-of-the-server]__1ywvdsk_bmws0._.js → [root-of-the-server]__1git7o20yf9nn._.js} +2 -2
  356. package/server/.next/server/chunks/[root-of-the-server]__1h496oc8wu4s6._.js +3 -0
  357. package/server/.next/server/chunks/[root-of-the-server]__1hertcbqi_w97._.js +3 -0
  358. package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
  359. package/server/.next/server/chunks/[root-of-the-server]__1j-nkcwy3w6sy._.js +3 -0
  360. package/server/.next/server/chunks/[root-of-the-server]__1jcr8cc_tlvfc._.js +1 -1
  361. package/server/.next/server/chunks/[root-of-the-server]__1l3uz57-1a35s._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__1l9pn8y-o6xyp._.js +3 -0
  363. package/server/.next/server/chunks/[root-of-the-server]__1lp_rypkkdjp9._.js +3 -0
  364. package/server/.next/server/chunks/[root-of-the-server]__1m-z1ne4p7pi5._.js +3 -0
  365. package/server/.next/server/chunks/{[root-of-the-server]__12w6gylk59cym._.js → [root-of-the-server]__1ma2tpf6wh9p6._.js} +2 -2
  366. package/server/.next/server/chunks/[root-of-the-server]__1nohrxjajgm5c._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__1o2km61kftkj1._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__1pn773t93gvn-._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1q0h-x-7ob6cu._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__1q2e13halne9s._.js +3 -0
  371. package/server/.next/server/chunks/[root-of-the-server]__1q7xy_u4inf4h._.js +3 -0
  372. package/server/.next/server/chunks/[root-of-the-server]__1qtorf4s2dfeg._.js +3 -0
  373. package/server/.next/server/chunks/[root-of-the-server]__1sm4p209f_yie._.js +3 -0
  374. package/server/.next/server/chunks/[root-of-the-server]__1uhgqik99k1y6._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__1uq4f0bdphqs2._.js +3 -0
  376. package/server/.next/server/chunks/{[root-of-the-server]__1gufo2kz88z04._.js → [root-of-the-server]__1usilhckla3wj._.js} +1 -1
  377. package/server/.next/server/chunks/[root-of-the-server]__1v_8mu8mt1n5i._.js +3 -0
  378. package/server/.next/server/chunks/{[root-of-the-server]__1yk1psrx0yy4n._.js → [root-of-the-server]__1vtlx_63lj4tg._.js} +2 -2
  379. package/server/.next/server/chunks/[root-of-the-server]__1wxj0f-l93gkh._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__1x4u0cdsl_81t._.js +1 -1
  381. package/server/.next/server/chunks/{[root-of-the-server]__1lvf4tk_1td0a._.js → [root-of-the-server]__1x7en4waq21dd._.js} +2 -2
  382. package/server/.next/server/chunks/[root-of-the-server]__1xzg_370-w-6t._.js +3 -0
  383. package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
  384. package/server/.next/server/chunks/_01epotkqa90nv._.js +1 -1
  385. package/server/.next/server/chunks/_03wces6vk33l0._.js +3 -0
  386. package/server/.next/server/chunks/_08q7x7rdbiaql._.js +9 -9
  387. package/server/.next/server/chunks/_09iin0yvuppj0._.js +3 -0
  388. package/server/.next/server/chunks/{_1w9di5m91vtjk._.js → _0buibatfr6-k_._.js} +3 -3
  389. package/server/.next/server/chunks/_0d29nzne5jrwy._.js +9 -9
  390. package/server/.next/server/chunks/{_1txqs5b7jg9so._.js → _0hekve2tk2eyv._.js} +3 -3
  391. package/server/.next/server/chunks/_0huryxihjw6tl._.js +9 -9
  392. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  393. package/server/.next/server/chunks/_0ou2tylxx1ltw._.js +2 -2
  394. package/server/.next/server/chunks/{_0lboyl6w4kfx4._.js → _0s_2fgaxby9fy._.js} +3 -3
  395. package/server/.next/server/chunks/_0z4b07-oa6ms9._.js +3 -0
  396. package/server/.next/server/chunks/_10mj3f1wis1ld._.js +1 -1
  397. package/server/.next/server/chunks/_139_9h76gakgh._.js +3 -0
  398. package/server/.next/server/chunks/_14jiq00zwwqdl._.js +3 -0
  399. package/server/.next/server/chunks/_15f0c7f46zkh3._.js +1 -1
  400. package/server/.next/server/chunks/_1e4rch26scbhq._.js +9 -9
  401. package/server/.next/server/chunks/_1iunyzyr-tfdj._.js +9 -9
  402. package/server/.next/server/chunks/_1jor4_sz1x8mt._.js +3 -0
  403. package/server/.next/server/chunks/_1m3zrm9-rc926._.js +3 -0
  404. package/server/.next/server/chunks/_1mwwg18ni-phb._.js +3 -0
  405. package/server/.next/server/chunks/_1ohb_bmawpjlz._.js +2 -2
  406. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  407. package/server/.next/server/chunks/src_0071b0w5aco6_._.js +3 -0
  408. package/server/.next/server/chunks/src_1-6a00bmwlymu._.js +3 -0
  409. package/server/.next/server/chunks/src_1-dy6ie3_ezvm._.js +3 -0
  410. package/server/.next/server/chunks/{src_1s913pql1_n-f._.js → src_13ij0feyzy7me._.js} +2 -2
  411. package/server/.next/server/chunks/{src_1_y0pxtbr6e04._.js → src_14vh1kj98t0xu._.js} +2 -2
  412. package/server/.next/server/chunks/src_1_s_jyur8tzy3._.js +3 -0
  413. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  414. package/server/.next/server/chunks/src_1dio7z4_so000._.js +3 -0
  415. package/server/.next/server/chunks/src_1hpbxjbqlnuob._.js +3 -0
  416. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  417. package/server/.next/server/chunks/{src_1mwttl5ainte0._.js → src_20eae99bkrgpt._.js} +2 -2
  418. package/server/.next/server/chunks/src_lib_0-fln6xaazo-9._.js +12 -0
  419. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  420. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  421. package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +1 -1
  422. package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +1 -1
  423. package/server/.next/server/chunks/src_lib_1jlvdx5ho171c._.js +12 -0
  424. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  425. package/server/.next/server/chunks/src_lib_branding_ts_03ns4y_8z0-6e._.js +1 -1
  426. package/server/.next/server/chunks/src_lib_branding_ts_0jfv9nur5alvy._.js +1 -1
  427. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
  428. package/server/.next/server/chunks/src_lib_data_report-db_ts_0b5f4dpxn08gk._.js +1 -1
  429. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +4 -4
  430. package/server/.next/server/chunks/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
  431. package/server/.next/server/chunks/src_lib_data_settings-db_ts_2060-w9nbvitr._.js +3 -0
  432. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +8 -8
  433. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +1 -1
  434. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +1 -1
  435. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +1 -1
  436. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  437. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  438. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  439. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  440. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  441. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  442. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  443. package/server/.next/server/chunks/ssr/{[externals]__0byytapt83qke._.js → [externals]__1299yq-rye4ww._.js} +1 -1
  444. package/server/.next/server/chunks/ssr/{[externals]__1baveo0r8_hf1._.js → [externals]__134px-n77ygse._.js} +1 -1
  445. package/server/.next/server/chunks/ssr/{[externals]__02peoq6kft9oz._.js → [externals]__1s9zy_6f7xfd5._.js} +1 -1
  446. package/server/.next/server/chunks/ssr/{[externals]__0gb_9a2m3eqk5._.js → [externals]__1t5grpj1lrsbr._.js} +1 -1
  447. package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
  448. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1pr-neo8jutji._.js → [root-of-the-server]__03iw2anbe7pxg._.js} +2 -2
  449. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_axyb404w3bf._.js → [root-of-the-server]__059q8f4tia03z._.js} +2 -2
  450. package/server/.next/server/chunks/ssr/{[root-of-the-server]__05uxv6qwfpp79._.js → [root-of-the-server]__05ot6j41b9i8j._.js} +2 -2
  451. package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
  452. package/server/.next/server/chunks/ssr/{[root-of-the-server]__12c2r19g75dyy._.js → [root-of-the-server]__0_wsm-adqpmgy._.js} +1 -1
  453. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1_q3kww244pif._.js → [root-of-the-server]__0buxkrf7nrji8._.js} +2 -2
  454. package/server/.next/server/chunks/ssr/{[root-of-the-server]__041mpme_x36vq._.js → [root-of-the-server]__0f6ao2fs70kab._.js} +1 -1
  455. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0rrnk3_fb0l_9._.js → [root-of-the-server]__0f8ibnqfh_mp0._.js} +2 -2
  456. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h8-rlmhjyebb._.js +3 -0
  457. package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
  458. package/server/.next/server/chunks/ssr/[root-of-the-server]__0kejvdc7h-pgz._.js +3 -0
  459. package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
  460. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1ev5rocipbkjw._.js → [root-of-the-server]__0kjdpn_g9gvwr._.js} +2 -2
  461. package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
  462. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1z_pt3d8lty_n._.js → [root-of-the-server]__0msczl_qf2eml._.js} +2 -2
  463. package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +1 -1
  464. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
  465. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  466. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xkfr7qk7oxjf._.js → [root-of-the-server]__0s9z1kusbxvae._.js} +2 -2
  467. package/server/.next/server/chunks/ssr/{[root-of-the-server]__13x0qmv4fm_1p._.js → [root-of-the-server]__0wlctoz_-yuyh._.js} +1 -1
  468. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
  469. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1zsqu1mecqptt._.js → [root-of-the-server]__0yr0heg1b0y5t._.js} +2 -2
  470. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1z3vauqrf2l-_._.js → [root-of-the-server]__0yvm5q_auexh3._.js} +2 -2
  471. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0qhbs-or7q-om._.js → [root-of-the-server]__0zgo5h9mstjc8._.js} +1 -1
  472. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1mbb917mrz5c-._.js → [root-of-the-server]__107qfgl2c58q0._.js} +1 -1
  473. package/server/.next/server/chunks/ssr/[root-of-the-server]__10ahcnczmy5hx._.js +3 -0
  474. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1n-rcmbkk7duv._.js → [root-of-the-server]__12cdcpj45tu6j._.js} +2 -2
  475. package/server/.next/server/chunks/ssr/[root-of-the-server]__18dcfrlpoapw9._.js +1 -1
  476. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  477. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1k8mxdm-cxfg_._.js → [root-of-the-server]__1a3_aiqflmt4f._.js} +2 -2
  478. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0vqae5m2ntd34._.js → [root-of-the-server]__1brzt_134_2iy._.js} +2 -2
  479. package/server/.next/server/chunks/ssr/[root-of-the-server]__1g6kynby65m0v._.js +1 -1
  480. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  481. package/server/.next/server/chunks/ssr/[root-of-the-server]__1t9_ue4abugtn._.js +3 -0
  482. package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
  483. package/server/.next/server/chunks/ssr/[root-of-the-server]__1vgliw2256_6l._.js +1 -1
  484. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1gkcoq0cmmax1._.js → [root-of-the-server]__1zki66ic3cluq._.js} +2 -2
  485. package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +1 -1
  486. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  487. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  488. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  489. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  490. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  491. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  492. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  493. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  494. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  495. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  496. package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
  497. package/server/.next/server/chunks/ssr/_0hqya_yuov5jw._.js +1 -1
  498. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  499. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  500. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
  501. package/server/.next/server/chunks/ssr/{_0xkl4rb1wydtd._.js → _0k6kbi721s28p._.js} +2 -2
  502. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  503. package/server/.next/server/chunks/ssr/_0kk0of-t4vhyh._.js +1 -1
  504. package/server/.next/server/chunks/ssr/{_0lg6_we0pe3nk._.js → _0l0eho21fo-8l._.js} +2 -2
  505. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  506. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  507. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  508. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  509. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  510. package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +2 -2
  511. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  512. package/server/.next/server/chunks/ssr/{_1ge8mluhma23o._.js → _0x4ybc829r3ta._.js} +2 -2
  513. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
  514. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
  515. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  516. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  517. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  518. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  519. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  520. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  521. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  522. package/server/.next/server/chunks/ssr/{_0kq3wqx86yyhb._.js → _1cdlzhw6tkrhd._.js} +2 -2
  523. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  524. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  525. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  526. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  527. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  528. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  529. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  530. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  531. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  532. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  533. package/server/.next/server/chunks/ssr/_1ong0a252wcvc._.js +8 -8
  534. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  535. package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +1 -1
  536. package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +2 -2
  537. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  538. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  539. package/server/.next/server/chunks/ssr/{_170okt24rw1yx._.js → _1zsfeuyrhcwmh._.js} +2 -2
  540. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  541. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  542. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  543. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +2 -2
  544. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  545. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  546. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +1 -1
  547. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  548. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  549. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  550. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  551. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  552. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1363m-cfkgyvr.js +1 -1
  553. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  554. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  555. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  556. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  557. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1q6iypbn6yagc._.js → src_000iv6actp3t_._.js} +2 -2
  558. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  559. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  560. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  561. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  562. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
  563. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
  564. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  565. package/server/.next/server/chunks/ssr/{src_18ofj2_oxqb0g._.js → src_0torilf0s7p-e._.js} +2 -2
  566. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  567. package/server/.next/server/chunks/ssr/{src_1ldp01vcphvw5._.js → src_1_b884ul0envr._.js} +2 -2
  568. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  569. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  570. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  571. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  572. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  573. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  574. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  575. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  576. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  577. package/server/.next/server/chunks/ssr/{src_app_(console)_0eh38ymzn-s-m._.js → src_app_(console)_0e1l3e9r_60s4._.js} +2 -2
  578. package/server/.next/server/chunks/ssr/{src_app_(console)_03s-e0b0zsqqr._.js → src_app_(console)_124kgxvmqm7j4._.js} +2 -2
  579. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  580. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +1 -1
  581. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  582. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  583. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  584. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  585. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  586. package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +1 -1
  587. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  588. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  589. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  590. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  591. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  592. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  593. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  594. package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +1 -1
  595. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  596. package/server/.next/server/chunks/ssr/src_app_(console)_reports_reports-view_tsx_1l0apba6g810q._.js +1 -1
  597. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  598. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  599. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  600. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  601. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  602. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  603. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  604. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  605. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  606. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  607. package/server/.next/server/chunks/ssr/src_app_signin_1_sp0qx8_z7c9._.js +1 -1
  608. package/server/.next/server/chunks/ssr/{src_app_signin_1-h17es4-y1-k._.js → src_app_signin_1qq0_77_vdutm._.js} +2 -2
  609. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  610. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  611. package/server/.next/server/chunks/ssr/src_lib_0jnv54-8idu07._.js +1 -1
  612. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  613. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  614. package/server/.next/server/chunks/ssr/src_lib_branding_ts_03ns4y_8z0-6e._.js +1 -1
  615. package/server/.next/server/chunks/ssr/src_lib_branding_ts_1p22ju9pii41w._.js +3 -0
  616. package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +1 -1
  617. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +2 -2
  618. package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
  619. package/server/.next/server/chunks/ssr/{src_lib_demo_0r3c3k5102jja._.js → src_lib_demo_03sepqqjq9usk._.js} +2 -2
  620. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +5 -5
  621. package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
  622. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  623. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  624. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  625. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  626. package/server/.next/server/middleware-build-manifest.js +3 -3
  627. package/server/.next/server/pages/404.html +1 -1
  628. package/server/.next/server/pages/500.html +1 -1
  629. package/server/.next/server/preview-props.json +3 -3
  630. package/server/.next/server/server-reference-manifest.js +1 -1
  631. package/server/.next/server/server-reference-manifest.json +178 -158
  632. package/server/.next/static/chunks/{2co8kv2tj776w.js → 0-v128fmc05bf.js} +1 -1
  633. package/server/.next/static/chunks/{1416wraxs5p8g.js → 02db293pqegsb.js} +1 -1
  634. package/server/.next/static/chunks/{2i5_2zcei6rqr.js → 03t36gu4t__cw.js} +1 -1
  635. package/server/.next/static/chunks/{3bvj3-0xltkjo.js → 07p13q6tuqr2r.js} +1 -1
  636. package/server/.next/static/chunks/{3ic9vbadne9of.js → 09qtiybhnydd3.js} +1 -1
  637. package/server/.next/static/chunks/{2txgb9zusks-w.js → 0_5leiwhgv7d6.js} +1 -1
  638. package/server/.next/static/chunks/{1nv_9c1bate-f.js → 0_ebioh9utve_.js} +1 -1
  639. package/server/.next/static/chunks/{1_uuog1-u6y0t.js → 0_hd-kx6h59a8.js} +1 -1
  640. package/server/.next/static/chunks/{2azwg3my8wh40.js → 0if7r4ximmzwb.js} +1 -1
  641. package/server/.next/static/chunks/{2n198u7xx1koh.js → 0ohm_qoe5thrr.js} +1 -1
  642. package/server/.next/static/chunks/0ssmmtio659vh.js +1 -0
  643. package/server/.next/static/chunks/{07_cb192ydsaj.js → 0t0igs6uqhbf0.js} +1 -1
  644. package/server/.next/static/chunks/{0zwq-z8jt5hpz.js → 0ut06v9sng9g4.js} +1 -1
  645. package/server/.next/static/chunks/{0s00_-em3cj00.js → 0w--mj7tf-9f-.js} +1 -1
  646. package/server/.next/static/chunks/131egbz-4xsjl.js +1 -0
  647. package/server/.next/static/chunks/{3ic7ri5b4ifjp.js → 14dbn6_jif37v.js} +2 -2
  648. package/server/.next/static/chunks/{1vt_t7dg_-pyu.js → 15l58okvbrc4_.js} +1 -1
  649. package/server/.next/static/chunks/{378ttzg87hows.js → 1_nuygyg_kes5.js} +2 -2
  650. package/server/.next/static/chunks/{3-us-wg44ohoc.js → 1bsq3x1wh49bp.js} +1 -1
  651. package/server/.next/static/chunks/{3n98m8tj20wcf.js → 1esunqtpnjwkw.js} +1 -1
  652. package/server/.next/static/chunks/{1j_hduntj28ij.js → 1gizey8idqrkt.js} +1 -1
  653. package/server/.next/static/chunks/{0gxxyq5l_0rp2.js → 1itgjll79qm1l.js} +1 -1
  654. package/server/.next/static/chunks/{3dktq-qmj2q5b.js → 1o27sfcuph25w.js} +1 -1
  655. package/server/.next/static/chunks/{31fs88f_h861n.js → 1pz19kzjaj8uw.js} +1 -1
  656. package/server/.next/static/chunks/{0a9mqrzg8420n.js → 1qzun1-bna-sy.js} +1 -1
  657. package/server/.next/static/chunks/{3mgd5b39ghc-w.js → 1ugo5ye01racz.js} +1 -1
  658. package/server/.next/static/chunks/{2gk24b05q4q57.js → 1z5s55o29xqyu.js} +1 -1
  659. package/server/.next/static/chunks/21gu7xcv8ix3_.js +1 -0
  660. package/server/.next/static/chunks/{3aglnkhgcl_kq.js → 21p4xz6ysy8mv.js} +1 -1
  661. package/server/.next/static/chunks/{0ynyx3s7s4mv7.js → 22bdke6t-doqh.js} +1 -1
  662. package/server/.next/static/chunks/{1nqpnndfmw0tc.js → 28ljlwfuuz5a1.js} +1 -1
  663. package/server/.next/static/chunks/29lr_ae0uli9o.js +1 -0
  664. package/server/.next/static/chunks/{1yyigrxptb7jm.js → 2jkqfajf-i0r6.js} +2 -2
  665. package/server/.next/static/chunks/{2sr03gtef27q0.js → 2mhli3hpy5vr9.js} +1 -1
  666. package/server/.next/static/chunks/{3u1v2wpzthilq.js → 2ns8p-8ngmi9h.js} +1 -1
  667. package/server/.next/static/chunks/{0valedxcn7j8k.js → 2vdwhg5fnxmu-.js} +2 -2
  668. package/server/.next/static/chunks/{1azdri14ocjgg.js → 2xgya43mybqsr.js} +11 -11
  669. package/server/.next/static/chunks/{3cti7pgg_jjlx.js → 2yv02i0h6tppe.js} +1 -1
  670. package/server/.next/static/chunks/{3-789qaoce7ff.js → 31gsdl-_t96jr.js} +1 -1
  671. package/server/.next/static/chunks/{2db0smm21dva_.js → 3_lq_n61v4j3r.js} +1 -1
  672. package/server/.next/static/chunks/{0_xoojw9q_nof.js → 3a11wypkvc5ey.js} +1 -1
  673. package/server/.next/static/chunks/{0dn6fty1ilg-n.js → 3g0p8ugqre9ft.js} +1 -1
  674. package/server/.next/static/chunks/{28_88x_e_ynaj.js → 3jq1ae0_9wu-o.js} +1 -1
  675. package/server/.next/static/chunks/3o358k-0653gr.js +1 -0
  676. package/server/.next/static/chunks/{05c15dcfh7cxm.js → 3pnzdk7snuzti.js} +1 -1
  677. package/server/.next/static/chunks/4114b2ynqr24j.js +1 -0
  678. package/server/.next/static/chunks/{28qjoy38cp5by.js → 41r6z31pmixbr.js} +1 -1
  679. package/server/.next/static/chunks/{3lw5n6yzs0665.js → 43wc7pgukn2dp.js} +1 -1
  680. package/server/.next/static/chunks/{1cd-2y1kwqosv.js → 4451kr05p691g.js} +1 -1
  681. package/server/.next/static/chunks/{1w51uxl19faw3.js → 44t_7rpq23-bz.js} +1 -1
  682. package/server/server.js +1 -1
  683. package/server/.next/server/chunks/[root-of-the-server]__00s0famyfjv1y._.js +0 -3
  684. package/server/.next/server/chunks/[root-of-the-server]__03z520-siwkv_._.js +0 -3
  685. package/server/.next/server/chunks/[root-of-the-server]__06od3qx7q00rc._.js +0 -3
  686. package/server/.next/server/chunks/[root-of-the-server]__09bwtkv2iniyt._.js +0 -3
  687. package/server/.next/server/chunks/[root-of-the-server]__0bb8xnocnnbt8._.js +0 -3
  688. package/server/.next/server/chunks/[root-of-the-server]__0c0drtvym6hf4._.js +0 -3
  689. package/server/.next/server/chunks/[root-of-the-server]__0frz3wu-qcv-d._.js +0 -3
  690. package/server/.next/server/chunks/[root-of-the-server]__0hm-azhxs9ted._.js +0 -3
  691. package/server/.next/server/chunks/[root-of-the-server]__0n-u6p8-hd-89._.js +0 -3
  692. package/server/.next/server/chunks/[root-of-the-server]__0p2n1_qp53y51._.js +0 -3
  693. package/server/.next/server/chunks/[root-of-the-server]__0p8j8b2tg73dq._.js +0 -3
  694. package/server/.next/server/chunks/[root-of-the-server]__0q9s7rbt0e-cf._.js +0 -3
  695. package/server/.next/server/chunks/[root-of-the-server]__0ra3lgjt0yuyy._.js +0 -3
  696. package/server/.next/server/chunks/[root-of-the-server]__0sgumm0843o2j._.js +0 -3
  697. package/server/.next/server/chunks/[root-of-the-server]__0vjvvirn6-fx-._.js +0 -3
  698. package/server/.next/server/chunks/[root-of-the-server]__0welpj78704um._.js +0 -3
  699. package/server/.next/server/chunks/[root-of-the-server]__0ymf9ppvpsffe._.js +0 -3
  700. package/server/.next/server/chunks/[root-of-the-server]__0zxrhqtvpoio4._.js +0 -3
  701. package/server/.next/server/chunks/[root-of-the-server]__10-4cctiab73h._.js +0 -3
  702. package/server/.next/server/chunks/[root-of-the-server]__11300e77grhx6._.js +0 -3
  703. package/server/.next/server/chunks/[root-of-the-server]__11tzj3jzqzk6v._.js +0 -3
  704. package/server/.next/server/chunks/[root-of-the-server]__12m0p1vyef6d5._.js +0 -3
  705. package/server/.next/server/chunks/[root-of-the-server]__13i4zx_j8zugt._.js +0 -3
  706. package/server/.next/server/chunks/[root-of-the-server]__1420nm1i823v8._.js +0 -3
  707. package/server/.next/server/chunks/[root-of-the-server]__1cnmxehqzmqq_._.js +0 -3
  708. package/server/.next/server/chunks/[root-of-the-server]__1f84fftr_6_6n._.js +0 -3
  709. package/server/.next/server/chunks/[root-of-the-server]__1i_vd8w3df3i6._.js +0 -3
  710. package/server/.next/server/chunks/[root-of-the-server]__1igmx9-fdh2wd._.js +0 -3
  711. package/server/.next/server/chunks/[root-of-the-server]__1kp2wois-47bg._.js +0 -3
  712. package/server/.next/server/chunks/[root-of-the-server]__1lcszcm98v484._.js +0 -3
  713. package/server/.next/server/chunks/[root-of-the-server]__1mufebnwyxlwx._.js +0 -3
  714. package/server/.next/server/chunks/[root-of-the-server]__1o0lvy6ek0v5d._.js +0 -3
  715. package/server/.next/server/chunks/[root-of-the-server]__1qwy7s_95k9k-._.js +0 -3
  716. package/server/.next/server/chunks/[root-of-the-server]__1rxaooz-d8jfs._.js +0 -3
  717. package/server/.next/server/chunks/[root-of-the-server]__1s8f1ovcj5r99._.js +0 -3
  718. package/server/.next/server/chunks/[root-of-the-server]__1tdb11b6vn4qm._.js +0 -3
  719. package/server/.next/server/chunks/[root-of-the-server]__1ti5-6okt7fur._.js +0 -3
  720. package/server/.next/server/chunks/[root-of-the-server]__1w_ga9n2lj53n._.js +0 -3
  721. package/server/.next/server/chunks/[root-of-the-server]__1xe_98y-j38aq._.js +0 -3
  722. package/server/.next/server/chunks/[root-of-the-server]__1z9kl-irij2lu._.js +0 -3
  723. package/server/.next/server/chunks/[root-of-the-server]__1zmoy4u_xb_yi._.js +0 -3
  724. package/server/.next/server/chunks/[root-of-the-server]__1zq2zv2ogn3ot._.js +0 -3
  725. package/server/.next/server/chunks/[root-of-the-server]__202mmzv3u-hk1._.js +0 -3
  726. package/server/.next/server/chunks/[root-of-the-server]__20tvyorpg49kd._.js +0 -3
  727. package/server/.next/server/chunks/_04oi0m63biyjd._.js +0 -3
  728. package/server/.next/server/chunks/_0bki3kju_1u1f._.js +0 -3
  729. package/server/.next/server/chunks/_0djze-128wsu0._.js +0 -3
  730. package/server/.next/server/chunks/_0hm72d9am2vfs._.js +0 -3
  731. package/server/.next/server/chunks/_1nuny071s602h._.js +0 -3
  732. package/server/.next/server/chunks/_1sx70w_rurjin._.js +0 -3
  733. package/server/.next/server/chunks/_1tl0532dffdm-._.js +0 -3
  734. package/server/.next/server/chunks/src_0frmhaaejchbk._.js +0 -3
  735. package/server/.next/server/chunks/src_0kihmyo3yghxy._.js +0 -3
  736. package/server/.next/server/chunks/src_16t2uefmdlh8d._.js +0 -3
  737. package/server/.next/server/chunks/src_17j4dgvb7rx7k._.js +0 -3
  738. package/server/.next/server/chunks/src_20xyhmuf0y6_v._.js +0 -3
  739. package/server/.next/server/chunks/src_lib_0hw2g5g295xx0._.js +0 -12
  740. package/server/.next/server/chunks/src_lib_1hveabvnpk83x._.js +0 -12
  741. package/server/.next/server/chunks/src_lib_collector_deploy-days_ts_087kwe68m4i93._.js +0 -3
  742. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +0 -3
  743. package/server/.next/server/chunks/ssr/[root-of-the-server]__01o65-2jgmg9x._.js +0 -3
  744. package/server/.next/server/chunks/ssr/[root-of-the-server]__0q7rssq_3unbc._.js +0 -3
  745. package/server/.next/server/chunks/ssr/[root-of-the-server]__11yadiuejywcz._.js +0 -3
  746. package/server/.next/server/chunks/ssr/_0j_qqta7rirh5._.js +0 -3
  747. package/server/.next/server/chunks/ssr/src_09q8lx_19nta6._.js +0 -3
  748. package/server/.next/static/chunks/10y41_ed7ty6e.js +0 -1
  749. package/server/.next/static/chunks/16gt7hkgltvf7.js +0 -1
  750. package/server/.next/static/chunks/1sjgdu3r0baj-.js +0 -1
  751. package/server/.next/static/chunks/1velx-cd3d5y1.js +0 -1
  752. package/server/.next/static/chunks/1xydxxektmjgr.js +0 -1
  753. package/server/.next/static/chunks/2jflssspiz3-i.js +0 -1
  754. /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_buildManifest.js +0 -0
  755. /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_clientMiddlewareManifest.js +0 -0
  756. /package/server/.next/static/{NUZVcU60U-vXVedu_GB0w → GBOxoOLq1PhjMCzrjHGdg}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[340855,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(519834),k=a.i(655486),l=a.i(496804),m=a.i(852785),n=a.i(405050);let o=(0,n.createServerReference)("4044c9f7ad3b3cc4c9caba86b2f628f9da7c8adb49",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{b()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},293541,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(546615),e=a.i(619089),f=a.i(286597),g=a.i(368114),h=a.i(405050);let i=(0,h.createServerReference)("401183c8c8397df1d0306b33778e3c920b92a139c7",h.callServer,void 0,h.findSourceMapURL,"buildFilesAction"),j=(0,h.createServerReference)("407057eed3e510f02972d76eebaab50f70c65f8fca",h.callServer,void 0,h.findSourceMapURL,"buildFilesPrAction"),k={nextjs:"Next.js",vite:"Vite",cra:"Create React App",node:"Node"},l=a=>a.split("/").pop()??a,m="Watchbell didn't answer. Check that it's still running, then try again.";a.s(["BuildFilesCard",0,function({appId:a,owner:h,demo:n=!1}){let o,p,[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(0),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(null),[y,z]=(0,c.useTransition)(),[A,B]=(0,c.useTransition)(),C=q?.files[s]??null,D=q&&(o=q.facts.guessed).length?`Guessed: ${o.join(", ")}. Check them before using the files.`:null;return(0,b.jsx)(e.N,{title:"Build files",meta:(0,b.jsx)(e.K,{size:"sm",onClick:()=>z(async()=>{try{let b=await i(a);b.ok&&b.data?(r(b.data),t(0),v(null),x(null)):v(b.ok?"No answer.":b.error)}catch{v(m)}}),disabled:y,children:y?"Generating…":q?"Generate again":"Generate"}),flush:!0,children:(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[u&&(0,b.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:u})]}),q?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dt]:text-ink-soft",children:[(0,b.jsx)("dt",{children:"Framework"}),(0,b.jsxs)("dd",{children:[k[q.facts.kind],"nextjs"===q.facts.kind&&q.facts.standalone?" (standalone output)":""]}),(0,b.jsx)("dt",{children:"Package manager, Node"}),(0,b.jsxs)("dd",{children:[q.facts.pm,", Node ",q.facts.node]}),(0,b.jsx)("dt",{children:"Folder"}),(0,b.jsx)("dd",{className:"font-mono text-[12.5px]",children:q.facts.dir}),(0,b.jsx)("dt",{children:"Env names"}),(0,b.jsx)("dd",{children:q.facts.envNames.length})]}),D&&(0,b.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:D})]}),(0,b.jsx)("div",{role:"tablist","aria-label":"Build files",className:"mt-3 inline-flex flex-wrap overflow-hidden rounded-md border border-line-strong",children:q.files.map((a,c)=>(0,b.jsx)("button",{type:"button",role:"tab","aria-selected":s===c,onClick:()=>t(c),className:(0,g.f)("px-2.5 py-1 text-[13px] hover:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",s===c?"bg-brand-soft font-medium text-brand":"bg-surface text-ink-soft"),children:l(a.path)},a.path))}),C&&(0,b.jsxs)("div",{className:"mt-2",children:[(0,b.jsxs)("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-[12.5px] text-ink-soft",children:C.path}),(0,b.jsx)(d.CopyButton,{text:C.text})]}),C.note&&(0,b.jsx)("p",{className:"mb-1.5 text-[12.5px] text-ink-soft",children:C.note}),(0,b.jsx)("pre",{className:"max-h-[360px] overflow-auto rounded-md bg-code-bg p-3 font-mono text-[12px] leading-relaxed text-code-text",children:C.text})]}),h&&q.repo&&(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(e.K,{size:"sm",onClick:()=>B(async()=>{try{let b=await j(a);b.ok&&b.data?(x(b.data),v(null)):v(b.ok?"No answer.":b.error)}catch{v(m)}}),disabled:n||A||!!w,children:A?"Opening…":"Open pull request"}),w?(0,b.jsxs)("span",{children:[(0,b.jsxs)("a",{href:w.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["Pull request #",w.number]})," opened",w.skipped.length?(0,b.jsxs)("span",{className:"text-ink-soft",children:[" · left alone (already there): ",w.skipped.map(l).join(", ")]}):null]}):(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:(p=q.repo,n?"Pull requests are off in the demo.":`On a new branch of ${p}; files it already has are never overwritten.`)})]})]}):(0,b.jsx)("p",{className:"text-ink-soft",children:"Not generated yet. Generate writes a Dockerfile, docker-compose.yml, a GitHub Actions CI workflow and a Kubernetes manifest from this app's settings. Env names only, never values; nothing is built or deployed."})]})})}],293541)},653196,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(728951),f=a.i(286597),g=a.i(147474),h=a.i(405050);let i=(0,h.createServerReference)("40b2b7d2d0be502052cc764365b8ab04f07cc2fcdf",h.callServer,void 0,h.findSourceMapURL,"envCheckAction"),j={"missing-production":a=>`${a} is in .env.example but not set for Production`,"preview-only":a=>`${a} is set for Preview or Development only`,"public-secret":a=>`${a} is sent to the browser (NEXT_PUBLIC_) but its name looks secret`,"not-in-example":a=>`${a} is set for Production but not listed in .env.example`},k={none:"No .env.example in the repository, so only Vercel's own settings were checked.","no-repo":"Link a repository to compare with its .env.example.","no-github":"GitHub isn't connected, or its token can't be read, so .env.example wasn't compared.",unreadable:"The repository's .env.example couldn't be read."};a.s(["EnvCard",0,function({appId:a}){let[h,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useTransition)();return(0,b.jsx)(d.N,{title:"Environment",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Src,{kind:"api",children:"Vercel"}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>p(async()=>{try{let b=await i(a);b.ok&&b.data?(l(b.data),n(null)):n(b.ok?"No answer.":b.error)}catch{n("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:o,children:o?"Checking…":"Check now"})]}),flush:!0,children:(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[m&&(0,b.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:m})]}),h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dt]:text-ink-soft",children:[(0,b.jsx)("dt",{children:"Variables on Vercel"}),(0,b.jsx)("dd",{children:h.names}),(0,b.jsx)("dt",{children:"Compared with"}),(0,b.jsx)("dd",{children:"found"===h.example?(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:h.examplePath}):(0,b.jsx)("span",{className:"text-ink-soft",children:k[h.example]})}),(0,b.jsx)("dt",{children:"Checked"}),(0,b.jsx)("dd",{children:(0,g.$)(new Date(h.checkedAt),new Date)})]}),0===h.findings.length?(0,b.jsxs)("p",{className:"mt-3 inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.Z,{state:"ok"}),"No findings"]}):(0,b.jsx)("ul",{className:"mt-3 flex flex-col gap-1.5",children:h.findings.map(a=>(0,b.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:j[a.kind](a.key)})]},`${a.kind}:${a.key}`))})]}):(0,b.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. Check now compares the variable names set on Vercel with .env.example in the repository. Values are never read."})]})})}],653196)},685194,a=>{var b=a.i(187924);let c=(0,a.i(449862).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(814574);let j={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},k={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function l(a){return a.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var m=a.i(405050);let n=(0,m.createServerReference)("6005ca0ba7ae70725d03c5e54109fad9d5bbd85efa",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},800871,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(728951),f=a.i(286597),g=a.i(147474),h=a.i(405050);let i=(0,h.createServerReference)("40ec6b6736f0ebceb44931bf0881f75160ca33ee20",h.callServer,void 0,h.findSourceMapURL,"prChecksAction"),j={fix:{state:"err",label:"Fix before merging"},check:{state:"warn",label:"Check before merging"},ok:{state:"ok",label:"No new problems"}};a.s(["PullRequestsCard",0,function({appId:a}){let[h,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useTransition)();return(0,b.jsx)(d.N,{title:"Pull requests",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Src,{kind:"api",children:"GitHub"}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>o(async()=>{try{let b=await i(a);b.ok&&b.data?(k(b.data),m(null)):m(b.ok?"No answer.":b.error)}catch{m("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:n,children:n?"Checking…":"Check open pull requests"})]}),flush:!0,children:(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[l&&(0,b.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:l})]}),h?0===h.rows.length?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.Z,{state:"ok"}),"No open pull requests in ",(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:h.repo})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:h.rows.map(a=>{var c;let d,e="unread"===a.state?{state:"unknown",label:"Couldn't read this pull request's comments"}:"none"!==a.state&&a.marker?"old"===a.state?{state:"unknown",label:"Checked an older commit"}:j[a.marker.verdict]:{state:"off",label:"Not checked — add the pre-deploy check to this repository"},g=a.marker&&"none"!==a.state?(c=a.marker.counts,d=["critical","high","moderate","low"].filter(a=>c[a]).map(a=>`${c[a]} ${a}`),c.secrets&&d.push(`${c.secrets} possible secret${1===c.secrets?"":"s"}`),c.env&&d.push(`${c.env} env name${1===c.env?"":"s"}`),d.join(", ")):"";return(0,b.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(f.Z,{state:e.state}),(0,b.jsxs)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:[a.url?(0,b.jsxs)("a",{href:a.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["#",a.number," ",a.title]}):(0,b.jsxs)(b.Fragment,{children:["#",a.number," ",a.title]}),a.draft&&(0,b.jsx)("span",{className:"text-ink-soft",children:" (draft)"}),(0,b.jsxs)("span",{className:"block text-ink-soft",children:[e.label,g?`: ${g}`:""]})]})]},a.number)})}),(0,b.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:[h.repo," · checked ",(0,g.$)(new Date(h.checkedAt),new Date)]})]}):(0,b.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. This reads the open pull requests and the Watchbell pre-deploy check's comment on each."})]})})}],800871)},605761,a=>{var b=a.i(187924),c=a.i(36600),d=a.i(147909),e=a.i(572131),f=a.i(823292),g=a.i(771378),h=a.i(619089),i=a.i(507504),j=a.i(814574),k=a.i(368114),l=a.i(405050);let m=(0,l.createServerReference)("608bc2e5ac5e9145be8347203bacd537dee7a4b12e",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("409e373bba39b8d65a3d1ef964ca3c46e27c0dfbd8",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("409a284dd830409ade0223b83b45d58f3e7e138ecf",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
1
+ (()=>{"use strict";module.exports=[340855,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(54901),h=a.i(188406),i=a.i(87674),j=a.i(922432),k=a.i(425493),l=a.i(795605),m=a.i(243056),n=a.i(405050);let o=(0,n.createServerReference)("4083f7c1a06720229660f01095c4944ae8159125de",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{b()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},293541,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(546615),e=a.i(619089),f=a.i(286597),g=a.i(368114),h=a.i(405050);let i=(0,h.createServerReference)("402555f32d1b677ef6e77be992e1a6b2e25f571016",h.callServer,void 0,h.findSourceMapURL,"buildFilesAction"),j=(0,h.createServerReference)("405644a36eaafd38abd97ea2b840d4da300e183baa",h.callServer,void 0,h.findSourceMapURL,"buildFilesPrAction"),k={nextjs:"Next.js",vite:"Vite",cra:"Create React App",node:"Node"},l=a=>a.split("/").pop()??a,m="Watchbell didn't answer. Check that it's still running, then try again.";a.s(["BuildFilesCard",0,function({appId:a,owner:h,demo:n=!1}){let o,p,[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(0),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(null),[y,z]=(0,c.useTransition)(),[A,B]=(0,c.useTransition)(),C=q?.files[s]??null,D=q&&(o=q.facts.guessed).length?`Guessed: ${o.join(", ")}. Check them before using the files.`:null;return(0,b.jsx)(e.N,{title:"Build files",meta:(0,b.jsx)(e.K,{size:"sm",onClick:()=>z(async()=>{try{let b=await i(a);b.ok&&b.data?(r(b.data),t(0),v(null),x(null)):v(b.ok?"No answer.":b.error)}catch{v(m)}}),disabled:y,children:y?"Generating…":q?"Generate again":"Generate"}),flush:!0,children:(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[u&&(0,b.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:u})]}),q?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dt]:text-ink-soft",children:[(0,b.jsx)("dt",{children:"Framework"}),(0,b.jsxs)("dd",{children:[k[q.facts.kind],"nextjs"===q.facts.kind&&q.facts.standalone?" (standalone output)":""]}),(0,b.jsx)("dt",{children:"Package manager, Node"}),(0,b.jsxs)("dd",{children:[q.facts.pm,", Node ",q.facts.node]}),(0,b.jsx)("dt",{children:"Folder"}),(0,b.jsx)("dd",{className:"font-mono text-[12.5px]",children:q.facts.dir}),(0,b.jsx)("dt",{children:"Env names"}),(0,b.jsx)("dd",{children:q.facts.envNames.length})]}),D&&(0,b.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:D})]}),(0,b.jsx)("div",{role:"tablist","aria-label":"Build files",className:"mt-3 inline-flex flex-wrap overflow-hidden rounded-md border border-line-strong",children:q.files.map((a,c)=>(0,b.jsx)("button",{type:"button",role:"tab","aria-selected":s===c,onClick:()=>t(c),className:(0,g.f)("px-2.5 py-1 text-[13px] hover:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",s===c?"bg-brand-soft font-medium text-brand":"bg-surface text-ink-soft"),children:l(a.path)},a.path))}),C&&(0,b.jsxs)("div",{className:"mt-2",children:[(0,b.jsxs)("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-[12.5px] text-ink-soft",children:C.path}),(0,b.jsx)(d.CopyButton,{text:C.text})]}),C.note&&(0,b.jsx)("p",{className:"mb-1.5 text-[12.5px] text-ink-soft",children:C.note}),(0,b.jsx)("pre",{className:"max-h-[360px] overflow-auto rounded-md bg-code-bg p-3 font-mono text-[12px] leading-relaxed text-code-text",children:C.text})]}),h&&q.repo&&(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(e.K,{size:"sm",onClick:()=>B(async()=>{try{let b=await j(a);b.ok&&b.data?(x(b.data),v(null)):v(b.ok?"No answer.":b.error)}catch{v(m)}}),disabled:n||A||!!w,children:A?"Opening…":"Open pull request"}),w?(0,b.jsxs)("span",{children:[(0,b.jsxs)("a",{href:w.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["Pull request #",w.number]})," opened",w.skipped.length?(0,b.jsxs)("span",{className:"text-ink-soft",children:[" · left alone (already there): ",w.skipped.map(l).join(", ")]}):null]}):(0,b.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:(p=q.repo,n?"Pull requests are off in the demo.":`On a new branch of ${p}; files it already has are never overwritten.`)})]})]}):(0,b.jsx)("p",{className:"text-ink-soft",children:"Not generated yet. Generate writes a Dockerfile, docker-compose.yml, a GitHub Actions CI workflow and a Kubernetes manifest from this app's settings. Env names only, never values; nothing is built or deployed."})]})})}],293541)},653196,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(728951),f=a.i(286597),g=a.i(147474),h=a.i(405050);let i=(0,h.createServerReference)("40ab144df9e7c623f4f6d668a27d786507d9b069b5",h.callServer,void 0,h.findSourceMapURL,"envCheckAction"),j={"missing-production":a=>`${a} is in .env.example but not set for Production`,"preview-only":a=>`${a} is set for Preview or Development only`,"public-secret":a=>`${a} is sent to the browser (NEXT_PUBLIC_) but its name looks secret`,"not-in-example":a=>`${a} is set for Production but not listed in .env.example`},k={none:"No .env.example in the repository, so only Vercel's own settings were checked.","no-repo":"Link a repository to compare with its .env.example.","no-github":"GitHub isn't connected, or its token can't be read, so .env.example wasn't compared.",unreadable:"The repository's .env.example couldn't be read."};a.s(["EnvCard",0,function({appId:a}){let[h,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useTransition)();return(0,b.jsx)(d.N,{title:"Environment",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Src,{kind:"api",children:"Vercel"}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>p(async()=>{try{let b=await i(a);b.ok&&b.data?(l(b.data),n(null)):n(b.ok?"No answer.":b.error)}catch{n("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:o,children:o?"Checking…":"Check now"})]}),flush:!0,children:(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[m&&(0,b.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:m})]}),h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("dl",{className:"grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2.5 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dt]:text-ink-soft",children:[(0,b.jsx)("dt",{children:"Variables on Vercel"}),(0,b.jsx)("dd",{children:h.names}),(0,b.jsx)("dt",{children:"Compared with"}),(0,b.jsx)("dd",{children:"found"===h.example?(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:h.examplePath}):(0,b.jsx)("span",{className:"text-ink-soft",children:k[h.example]})}),(0,b.jsx)("dt",{children:"Checked"}),(0,b.jsx)("dd",{children:(0,g.$)(new Date(h.checkedAt),new Date)})]}),0===h.findings.length?(0,b.jsxs)("p",{className:"mt-3 inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.Z,{state:"ok"}),"No findings"]}):(0,b.jsx)("ul",{className:"mt-3 flex flex-col gap-1.5",children:h.findings.map(a=>(0,b.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:j[a.kind](a.key)})]},`${a.kind}:${a.key}`))})]}):(0,b.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. Check now compares the variable names set on Vercel with .env.example in the repository. Values are never read."})]})})}],653196)},685194,a=>{var b=a.i(187924);let c=(0,a.i(449862).f)("outline","link","Link",[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]]);var d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(507504),i=a.i(814574);let j={supabase_project:"supabase",neon_project:"neon",firestore:"firebase",turso_database:"turso",upstash_redis:"upstash",d1_database:"d1"},k={supabase:"Supabase",neon:"Neon",firebase:"Firebase",turso:"Turso",upstash:"Upstash",d1:"Cloudflare D1"};function l(a){return a.toLowerCase().replace(/^webs?[-_]/,"").replace(/[-_](vercel|web|app|site|fe|frontend)$/,"").replace(/[^a-z0-9]/g,"")}var m=a.i(405050);let n=(0,m.createServerReference)("60b89d4f3d8659255aaa4680587b7c9c964fa12266",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},800871,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(728951),f=a.i(286597),g=a.i(147474),h=a.i(405050);let i=(0,h.createServerReference)("40b21b4eeb9bdaafe5990959830d09820e0c7d5271",h.callServer,void 0,h.findSourceMapURL,"prChecksAction"),j={fix:{state:"err",label:"Fix before merging"},check:{state:"warn",label:"Check before merging"},ok:{state:"ok",label:"No new problems"}};a.s(["PullRequestsCard",0,function({appId:a}){let[h,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useTransition)();return(0,b.jsx)(d.N,{title:"Pull requests",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Src,{kind:"api",children:"GitHub"}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>o(async()=>{try{let b=await i(a);b.ok&&b.data?(k(b.data),m(null)):m(b.ok?"No answer.":b.error)}catch{m("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:n,children:n?"Checking…":"Check open pull requests"})]}),flush:!0,children:(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[l&&(0,b.jsxs)("p",{className:"mb-2 flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(f.Z,{state:"warn"}),(0,b.jsx)("span",{children:l})]}),h?0===h.rows.length?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.Z,{state:"ok"}),"No open pull requests in ",(0,b.jsx)("span",{className:"font-mono text-[12.5px]",children:h.repo})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:h.rows.map(a=>{var c;let d,e="unread"===a.state?{state:"unknown",label:"Couldn't read this pull request's comments"}:"none"!==a.state&&a.marker?"old"===a.state?{state:"unknown",label:"Checked an older commit"}:j[a.marker.verdict]:{state:"off",label:"Not checked — add the pre-deploy check to this repository"},g=a.marker&&"none"!==a.state?(c=a.marker.counts,d=["critical","high","moderate","low"].filter(a=>c[a]).map(a=>`${c[a]} ${a}`),c.secrets&&d.push(`${c.secrets} possible secret${1===c.secrets?"":"s"}`),c.env&&d.push(`${c.env} env name${1===c.env?"":"s"}`),d.join(", ")):"";return(0,b.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(f.Z,{state:e.state}),(0,b.jsxs)("span",{className:"min-w-0 [overflow-wrap:anywhere]",children:[a.url?(0,b.jsxs)("a",{href:a.url,target:"_blank",rel:"noreferrer",className:"underline-offset-2 hover:underline",children:["#",a.number," ",a.title]}):(0,b.jsxs)(b.Fragment,{children:["#",a.number," ",a.title]}),a.draft&&(0,b.jsx)("span",{className:"text-ink-soft",children:" (draft)"}),(0,b.jsxs)("span",{className:"block text-ink-soft",children:[e.label,g?`: ${g}`:""]})]})]},a.number)})}),(0,b.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:[h.repo," · checked ",(0,g.$)(new Date(h.checkedAt),new Date)]})]}):(0,b.jsx)("p",{className:"text-ink-soft",children:"Not checked yet. This reads the open pull requests and the Watchbell pre-deploy check's comment on each."})]})})}],800871)},605761,a=>{var b=a.i(187924),c=a.i(36600),d=a.i(147909),e=a.i(572131),f=a.i(823292),g=a.i(771378),h=a.i(619089),i=a.i(507504),j=a.i(814574),k=a.i(368114),l=a.i(405050);let m=(0,l.createServerReference)("60374d394773e8982654d06b11dbdb5ca27583b520",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("40a6c2c53614b509f3b2fdcd5f8a65e6afd55d4630",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4037334b6e742ae1179f97bfd59915a8c4faa4b9ab",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_apps_%5Bid%5D_08in-j3xp5mbn._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[459296,a=>{"use strict";var b=a.i(137936),c=a.i(905246),d=a.i(118558),e=a.i(600079),f=a.i(109307),g=a.i(544854),h=a.i(21096),i=a.i(77608),j=a.i(966425),k=a.i(447681);class l extends Error{kind;constructor(a,b){super(b),this.kind=a}}async function m(a){let{month:b,partial:c,now:d}=a,e=(0,i.p)();if(!e)return{ok:!1,month:b,kind:"env",error:i.S};let f=await j.N();if(!f)return{ok:!1,month:b,kind:"not-connected",error:"Google Drive isn't connected."};if(!f.refreshToken){let a="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await j.s(f.id,{status:"error",lastError:a}),{ok:!1,month:b,kind:"failed",error:a}}let h=await j.z(b),m={sheetFileId:h?.sheetFileId??null,csvFileId:h?.csvFileId??null,driveFolderId:h?.driveFolderId??null},o=h?.status??"error";await j.W(b,{status:o,attempts:(h?.attempts??0)+1,startedAt:d});let p=a=>(m={...m,...a},j.W(b,{status:o,...a})),q={fetch:a.fetch},r=()=>{if(Date.now()>a.deadline)throw new l("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},s=a=>{if(!a.ok)throw new l("failed",a.error);return a.data};try{let h=await (0,i.B)(e,f.refreshToken,q);if(!h.ok){if("revoked"===h.kind)throw await j.s(f.id,{status:"error",lastError:i.L}),new l("revoked",i.L);throw new l("failed",h.error)}"error"===f.status&&await j.s(f.id,{status:"ok",lastError:null});let o=h.accessToken;r();let t=await j.M(),u=t?.id??null;if(t){let a=s(await k.f(o,t.id,q));a.usable?a.name&&a.name!==t.name&&await j.t(t.id,a.name):u=null}if(!u){r();let a=s(await k.T(o,g.R,q)),b=a?null:s(await k.T(o,g.C,q));u=a??b??s(await k.B(o,g.R,q)),await j.t(u,b?g.C:g.R)}let v=await j.f(b,c,d);r(),m.sheetFileId||await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r();let w=await k.A(o,m.sheetFileId,g.O,q);w.ok||"missing"!==w.kind&&"denied"!==w.kind||(await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r(),w=await k.A(o,m.sheetFileId,g.O,q)),s(w),r(),s(await k.c(o,m.sheetFileId,(0,g.m)(v),q)),r();let x=(0,g.b)((0,g.E)(v)),y=s(await k.G(o,{name:(0,g.V)(b),mimeType:"application/gzip",folderId:u,content:x,fileId:m.csvFileId},q));await p({csvFileId:y.id}),await j.W(b,{status:c?"partial":"ok",sizeBytes:y.size,error:null,finishedAt:new Date});let z=c?null:await n(o,d,a.deadline,q);return{ok:!0,month:b,retention:z,message:`${(0,g.n)(b)}${c?" so far":""} saved to Google Drive.`}}catch(e){let a=e instanceof l?e:new l("failed","The backup failed. The next daily run tries again.");e instanceof l||console.error("backup failed:",e instanceof Error?e.name:"unknown");let d=c&&"partial"===o?"partial":"error";return await j.W(b,{status:d,error:a.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:b,kind:a.kind,error:a.message}}}async function n(a,b,c,d){let e=(0,g.c)(await j.e(),b),f=[];for(let h of e){if(Date.now()>c)break;let e=!0;for(let b of[h.sheetFileId,h.csvFileId])b&&((await k.$(a,b,d)).ok||(e=!1));e&&(await j.W(h.month,{status:h.status,trashedAt:b}),f.push((0,g.n)(h.month)))}return f.length?`Moved to Drive trash: ${f.join(", ")}.`:null}var o=a.i(221084),p=a.i(492665),q=a.i(312573),r=a.i(323878),s=a.i(713095);let t={requireActionMember:f.g};async function u(){return(0,e.F)("owner",async a=>{let b=(0,i.p)();if(!b)return{ok:!1,error:i.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,p.f)(),f=(0,i.C)(),{verifier:g,challenge:j}=(0,i.U)();return(await (0,c.cookies)()).set(h.a,(0,h.G)({state:f,verifier:g,memberId:a.id,exp:Date.now()+1e3*h.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:h.Y,maxAge:h.N}),{ok:!0,data:{url:(0,i.a)(b,{state:f,challenge:j,redirectUri:(0,i.I)(d)})}}},t)}async function v(){return(0,e.F)("owner",async a=>{let b=await (0,j.g)();return((0,d.revalidatePath)("/backups"),(0,d.revalidatePath)("/connections"),b)?(await (0,o.f)({kind:"ok",message:"Google Drive disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),{ok:!0,message:"Google Drive disconnected. The backups already in your Drive stay; remove Watchbell's access in your Google Account if you want."}):{ok:!1,error:"Google Drive isn't connected."}},t)}async function w(){return(0,e.F)("owner",async a=>{let b=await (0,r.C)(q.t.backupNow,a.id);if(!b.allowed)return{ok:!1,error:`Too many backups. Try again in ${(0,q.H)(b.retryAfter)}.`};let c=new Date,e=(0,g.L)(c),f=await m({month:e,partial:!0,now:c,deadline:Date.now()+45e3});return f.ok||"env"!==f.kind&&"not-connected"!==f.kind?(await (0,o.f)({kind:f.ok?"ok":"err",message:`Back up now \xb7 ${(0,g.n)(e)}`,resourceId:null,actorUserId:a.userId,...f.ok?{}:{detail:f.error.slice(0,200)}}).catch(()=>void 0),(0,d.revalidatePath)("/backups"),f.ok?{ok:!0,message:f.message}:{ok:!1,error:f.error}):{ok:!1,error:f.error}},t)}(0,s.ensureServerEntryExports)([u,v,w]),(0,b.registerServerReference)(u,"00e16e47acc9dfbf8d98b65c2ce3cc1077137317ad",null),(0,b.registerServerReference)(v,"00257d61367cec26d161e3e922b05077df2068901f",null),(0,b.registerServerReference)(w,"0014f6e51290ec47fa17beb08ef88292f29958f17f",null),a.s(["p",0,w,"C",0,v,"A",0,u],459296)}];
1
+ module.exports=[459296,a=>{"use strict";var b=a.i(137936),c=a.i(905246),d=a.i(118558),e=a.i(600079),f=a.i(109307),g=a.i(544854),h=a.i(21096),i=a.i(77608),j=a.i(966425),k=a.i(447681);class l extends Error{kind;constructor(a,b){super(b),this.kind=a}}async function m(a){let{month:b,partial:c,now:d}=a,e=(0,i.p)();if(!e)return{ok:!1,month:b,kind:"env",error:i.S};let f=await j.N();if(!f)return{ok:!1,month:b,kind:"not-connected",error:"Google Drive isn't connected."};if(!f.refreshToken){let a="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await j.s(f.id,{status:"error",lastError:a}),{ok:!1,month:b,kind:"failed",error:a}}let h=await j.z(b),m={sheetFileId:h?.sheetFileId??null,csvFileId:h?.csvFileId??null,driveFolderId:h?.driveFolderId??null},o=h?.status??"error";await j.W(b,{status:o,attempts:(h?.attempts??0)+1,startedAt:d});let p=a=>(m={...m,...a},j.W(b,{status:o,...a})),q={fetch:a.fetch},r=()=>{if(Date.now()>a.deadline)throw new l("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},s=a=>{if(!a.ok)throw new l("failed",a.error);return a.data};try{let h=await (0,i.B)(e,f.refreshToken,q);if(!h.ok){if("revoked"===h.kind)throw await j.s(f.id,{status:"error",lastError:i.L}),new l("revoked",i.L);throw new l("failed",h.error)}"error"===f.status&&await j.s(f.id,{status:"ok",lastError:null});let o=h.accessToken;r();let t=await j.M(),u=t?.id??null;if(t){let a=s(await k.f(o,t.id,q));a.usable?a.name&&a.name!==t.name&&await j.t(t.id,a.name):u=null}if(!u){r();let a=s(await k.T(o,g.R,q)),b=a?null:s(await k.T(o,g.C,q));u=a??b??s(await k.B(o,g.R,q)),await j.t(u,b?g.C:g.R)}let v=await j.f(b,c,d);r(),m.sheetFileId||await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r();let w=await k.A(o,m.sheetFileId,g.O,q);w.ok||"missing"!==w.kind&&"denied"!==w.kind||(await p({sheetFileId:s(await k.i(o,(0,g.F)(b),u,q)),driveFolderId:u}),r(),w=await k.A(o,m.sheetFileId,g.O,q)),s(w),r(),s(await k.c(o,m.sheetFileId,(0,g.m)(v),q)),r();let x=(0,g.b)((0,g.E)(v)),y=s(await k.G(o,{name:(0,g.V)(b),mimeType:"application/gzip",folderId:u,content:x,fileId:m.csvFileId},q));await p({csvFileId:y.id}),await j.W(b,{status:c?"partial":"ok",sizeBytes:y.size,error:null,finishedAt:new Date});let z=c?null:await n(o,d,a.deadline,q);return{ok:!0,month:b,retention:z,message:`${(0,g.n)(b)}${c?" so far":""} saved to Google Drive.`}}catch(e){let a=e instanceof l?e:new l("failed","The backup failed. The next daily run tries again.");e instanceof l||console.error("backup failed:",e instanceof Error?e.name:"unknown");let d=c&&"partial"===o?"partial":"error";return await j.W(b,{status:d,error:a.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:b,kind:a.kind,error:a.message}}}async function n(a,b,c,d){let e=(0,g.c)(await j.e(),b),f=[];for(let h of e){if(Date.now()>c)break;let e=!0;for(let b of[h.sheetFileId,h.csvFileId])b&&((await k.$(a,b,d)).ok||(e=!1));e&&(await j.W(h.month,{status:h.status,trashedAt:b}),f.push((0,g.n)(h.month)))}return f.length?`Moved to Drive trash: ${f.join(", ")}.`:null}var o=a.i(221084),p=a.i(492665),q=a.i(312573),r=a.i(323878),s=a.i(713095);let t={requireActionMember:f.g};async function u(){return(0,e.F)("owner",async a=>{let b=(0,i.p)();if(!b)return{ok:!1,error:i.S};let{SITE_URL:d,OPS_ENCRYPTION_KEY:e}=(0,p.f)(),f=(0,i.C)(),{verifier:g,challenge:j}=(0,i.U)();return(await (0,c.cookies)()).set(h.a,(0,h.G)({state:f,verifier:g,memberId:a.id,exp:Date.now()+1e3*h.N},e),{httpOnly:!0,secure:d.startsWith("https://"),sameSite:"lax",path:h.Y,maxAge:h.N}),{ok:!0,data:{url:(0,i.a)(b,{state:f,challenge:j,redirectUri:(0,i.I)(d)})}}},t)}async function v(){return(0,e.F)("owner",async a=>{let b=await (0,j.g)();return((0,d.revalidatePath)("/backups"),(0,d.revalidatePath)("/connections"),b)?(await (0,o.f)({kind:"ok",message:"Google Drive disconnected",resourceId:null,actorUserId:a.userId}).catch(()=>void 0),{ok:!0,message:"Google Drive disconnected. The backups already in your Drive stay; remove Watchbell's access in your Google Account if you want."}):{ok:!1,error:"Google Drive isn't connected."}},t)}async function w(){return(0,e.F)("owner",async a=>{let b=await (0,r.C)(q.t.backupNow,a.id);if(!b.allowed)return{ok:!1,error:`Too many backups. Try again in ${(0,q.H)(b.retryAfter)}.`};let c=new Date,e=(0,g.L)(c),f=await m({month:e,partial:!0,now:c,deadline:Date.now()+45e3});return f.ok||"env"!==f.kind&&"not-connected"!==f.kind?(await (0,o.f)({kind:f.ok?"ok":"err",message:`Back up now \xb7 ${(0,g.n)(e)}`,resourceId:null,actorUserId:a.userId,...f.ok?{}:{detail:f.error.slice(0,200)}}).catch(()=>void 0),(0,d.revalidatePath)("/backups"),f.ok?{ok:!0,message:f.message}:{ok:!1,error:f.error}):{ok:!1,error:f.error}},t)}(0,s.ensureServerEntryExports)([u,v,w]),(0,b.registerServerReference)(u,"00ae98a9811ac073250c0e8d8c4dd8da8cb638b858",null),(0,b.registerServerReference)(v,"00676c4452f47a5c2e68c34d468623a222bd3e2057",null),(0,b.registerServerReference)(w,"00f08dd1306b5d632d946b627a4a52a7d02ae03b14",null),a.s(["p",0,w,"C",0,v,"A",0,u],459296)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_backups_actions_ts_1vpytsdh0wc1f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[43963,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("0014f6e51290ec47fa17beb08ef88292f29958f17f",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("00257d61367cec26d161e3e922b05077df2068901f",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("00e16e47acc9dfbf8d98b65c2ce3cc1077137317ad",g.callServer,void 0,g.findSourceMapURL,"startDriveConnect");a.s(["BackUpNowButton",0,function({monthLabel:a,disabled:e}){let[g,i]=(0,c.useTransition)(),j=(0,c.useRef)(!1);return(0,b.jsx)(f.K,{onClick:()=>{if(j.current)return;j.current=!0;let b=d.c.loading(`Backing up ${a} so far. It will appear here in a few seconds.`);i(async()=>{try{let a=await h();a.ok?d.c.success(a.message??"Saved to Google Drive.",{id:b}):d.c.error(a.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{j.current=!1}})},disabled:g||e,children:g?"Backing up…":"Back up now"})},"DisconnectDriveButton",0,function(){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Disconnect"}),title:"Disconnect Google Drive?",body:"The console forgets its access and stops the monthly backups. The backups already in your Drive stay where they are.",cta:"Disconnect",danger:!0,onConfirm:async()=>{let a=await i();return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})},"DriveConnectButton",0,function({reconnect:a=!1,quiet:c=!1,size:d="md"}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:d,variant:c?"secondary":"primary",children:c?"Reconnect":a?"Reconnect Google Drive":"Connect Google Drive"}),title:a?"Reconnect Google Drive":"Connect Google Drive",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, create, and delete only the specific Google Drive files you use with this app."}),(0,b.jsxs)("ul",{className:"list-disc space-y-0.5 pl-5 text-ink-soft",children:[(0,b.jsx)("li",{children:"The console can't see any of your other files."}),(0,b.jsx)("li",{children:"It uses one folder: the backups folder it made before, or a new one named Watchbell backups."}),(0,b.jsx)("li",{children:"You can remove access any time in your Google Account settings."})]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await j();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Watchbell didn't answer. Check that it's still running, then try again.":a.error}}})}],43963)}];
1
+ module.exports=[43963,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("00f08dd1306b5d632d946b627a4a52a7d02ae03b14",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("00676c4452f47a5c2e68c34d468623a222bd3e2057",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("00ae98a9811ac073250c0e8d8c4dd8da8cb638b858",g.callServer,void 0,g.findSourceMapURL,"startDriveConnect");a.s(["BackUpNowButton",0,function({monthLabel:a,disabled:e}){let[g,i]=(0,c.useTransition)(),j=(0,c.useRef)(!1);return(0,b.jsx)(f.K,{onClick:()=>{if(j.current)return;j.current=!0;let b=d.c.loading(`Backing up ${a} so far. It will appear here in a few seconds.`);i(async()=>{try{let a=await h();a.ok?d.c.success(a.message??"Saved to Google Drive.",{id:b}):d.c.error(a.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{j.current=!1}})},disabled:g||e,children:g?"Backing up…":"Back up now"})},"DisconnectDriveButton",0,function(){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Disconnect"}),title:"Disconnect Google Drive?",body:"The console forgets its access and stops the monthly backups. The backups already in your Drive stay where they are.",cta:"Disconnect",danger:!0,onConfirm:async()=>{let a=await i();return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})},"DriveConnectButton",0,function({reconnect:a=!1,quiet:c=!1,size:d="md"}){return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:d,variant:c?"secondary":"primary",children:c?"Reconnect":a?"Reconnect Google Drive":"Connect Google Drive"}),title:a?"Reconnect Google Drive":"Connect Google Drive",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, create, and delete only the specific Google Drive files you use with this app."}),(0,b.jsxs)("ul",{className:"list-disc space-y-0.5 pl-5 text-ink-soft",children:[(0,b.jsx)("li",{children:"The console can't see any of your other files."}),(0,b.jsx)("li",{children:"It uses one folder: the backups folder it made before, or a new one named Watchbell backups."}),(0,b.jsx)("li",{children:"You can remove access any time in your Google Account settings."})]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await j();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Watchbell didn't answer. Check that it's still running, then try again.":a.error}}})}],43963)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_backups_drive-buttons_tsx_00cku5r_z3jkg._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[78774,a=>{var b=a.i(187924),c=a.i(133004),d=a.i(36600),e=a.i(786581),f=a.i(713352),g=a.i(834295),h=a.i(471941),i=a.i(817748);let j=(0,a.i(449862).f)("outline","triangle","Triangle",[["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-0"}]]);var k=a.i(572131),l=a.i(823292),m=a.i(771378),n=a.i(619089),o=a.i(286597),p=a.i(814574);let q={vercel:{createUrl:"https://vercel.com/account/settings/tokens",needs:["Scope: your account","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"Vercel",icon:"triangle",credentialKind:"Access token",accessNote:"Full account (no read-only option)",multiAccount:!1,note:"One account. Tokens can't be read-only, so actions always ask for confirmation."},supabase:{createUrl:"https://supabase.com/dashboard/account/tokens",needs:["Projects read: status, region, Postgres version","Project admin read: service health","Analytics usage read: last API traffic and auto-pause risk","Organization admin read: free plan, for the free-slot count","Database read: database size, once a day (checked at the first daily read, because testing it would query your database)","Project admin write, only if you want pause and restore (stage 6)"],checked:"2026-10-21",name:"Supabase",icon:"bolt",credentialKind:"Scoped access token",accessNote:"Projects, health, analytics, organization and database read",multiAccount:!0,note:"Each account gets 2 free active projects. Use scoped tokens: read-only, plus project admin if you want pause and restore."},neon:{createUrl:"https://console.neon.tech/app/settings/api-keys",needs:["A personal or project API key. Neon has no read-only keys."],checked:"2026-10-21",name:"Neon",icon:"database",credentialKind:"API key",accessNote:"All projects (no read-only option)",multiAccount:!0,note:"No read-only keys exist, so keys stay on the server."},firebase:{createUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts",needs:["Roles on each project: firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer","Turn on the Cloud Monitoring API in the project for reads, writes, and deletes today"],checked:"2026-10-21",name:"Firebase",icon:"flame",credentialKind:"Service account JSON",accessNote:"firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer",multiAccount:!0,json:!0,note:"One service account per Google account, with viewer roles only."},turso:{createUrl:"https://app.turso.tech/account/api-tokens",needs:["A platform API token limited to one organization (turso auth api-tokens mint watchbell --org <your-org>)","Turso has no read-only platform tokens; the console only lists databases and reads usage","Not a database token: database and group tokens can't list anything"],checked:"2026-10-21",name:"Turso",icon:"database",credentialKind:"Platform API token",accessNote:"One organization: databases and usage (no read-only option)",multiAccount:!0,note:"Lists databases and reads this month's rows read and written and storage against the free plan. Keys stay on the server."},upstash:{createUrl:"https://console.upstash.com/account/api",needs:["A Developer API key created as Read Only (Account → Management API)","Paste it as your-email:API_KEY (Upstash signs API calls with the account email and the key)","Native Upstash accounts only: a database made through the Vercel integration can't be read this way"],checked:"2026-10-21",name:"Upstash",icon:"bolt",credentialKind:"Developer API key",accessNote:"Read-only Developer API key: Redis databases and stats",multiAccount:!0,note:"Redis databases with their region, commands this month and data size against the free plan. QStash is budgeted in Settings."},cloudflare:{createUrl:"https://dash.cloudflare.com/profile/api-tokens",needs:["Zone: Read, DNS: Read, SSL and Certificates: Read","Zone Settings: Read, to show each zone's SSL/TLS mode (optional)","Zone → DNS → Edit, only if the owner wants to edit records from the DNS records page (never create or delete)","Account → D1 → Read, to watch Cloudflare D1 databases (size and tables); add Account → Account Analytics → Read for their rows read and written (optional)","Not needed: Registrar (domain expiry comes from RDAP)"],checked:"2026-10-21",name:"Cloudflare",icon:"cloud",credentialKind:"API token",accessNote:"Zone, DNS, SSL and Certificates read",multiAccount:!0,note:"A read-only API token is enough to watch. Add DNS Edit only to change records from the console. Domain expiry comes from RDAP, so Registrar access isn't needed."},github:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A fine-grained token (it starts with github_pat_); classic tokens can't be limited to read-only","Repository access: all repositories, or only the ones your apps deploy from","Repository permissions, each Read-only: Metadata, Contents, Actions. Nothing else","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub",icon:"github",credentialKind:"Fine-grained token",accessNote:"Metadata, Contents and Actions read",multiAccount:!1,note:"A read-only fine-grained token. Sync lists your repositories; apps are linked to theirs, and their GitHub Actions status shows on the app page."},github_write:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A separate fine-grained token (it starts with github_pat_), not the read-only one above","Repository access: Only select repositories, the ones you want update PRs for","Repository permissions: Contents: Read and write, Pull requests: Read and write, Commit statuses: Read (for automatic merges). Nothing else (Metadata read is added by GitHub)","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub (PR write)",icon:"github",credentialKind:"Fine-grained token",accessNote:"Contents and Pull requests read and write, Commit statuses read, chosen repositories",multiAccount:!1,note:"Optional. Opens pull requests that update vulnerable packages (when you approve one, or by itself with Automatic security fixes) and, with automatic fixes and auto-rollback on, squash-merges Watchbell's own PRs once CI, the Vercel preview and its smoke test pass. It never pushes to the default branch directly."}};var r=a.i(405050);let s=(0,r.createServerReference)("70a9926db0cd30a055167987e79ae0f8d0fdbc1fc6",r.callServer,void 0,r.findSourceMapURL,"addAccount"),t=(0,r.createServerReference)("60fc49f1147b575fbef1409e238ea3c531a6088147",r.callServer,void 0,r.findSourceMapURL,"checkCredential"),u=(0,r.createServerReference)("60855c6503d69782c9128399ea5c152eea4fec8de8",r.callServer,void 0,r.findSourceMapURL,"replaceCredential"),v={triangle:j,bolt:c.f,database:f.f,flame:h.f,cloud:e.f,github:d.f};function w({provider:a,replace:c,onDone:d,onCancel:e}){let f=q[a],[h,i]=(0,k.useTransition)(),[j,m]=(0,k.useState)(""),[p,r]=(0,k.useState)(""),[v,x]=(0,k.useState)({}),[y,z]=(0,k.useState)(null),A=`${a}-${c?.id??"new"}`,B=f.credentialKind.toLowerCase();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[!c&&(0,b.jsx)(n.O,{id:`${A}-name`,label:"Account name",help:"Shown next to everything that comes from this account.",error:v.label,children:(0,b.jsx)("input",{id:`${A}-name`,value:j,onChange:a=>m(a.target.value),placeholder:"vercel"===a?"acme":"utama",className:n.S})}),(0,b.jsx)(n.O,{id:`${A}-cred`,label:f.credentialKind,error:v.credential,help:(0,b.jsxs)("a",{href:f.createUrl,target:"_blank",rel:"noopener noreferrer",children:[f.guide?"How to create one":"Create one"," ",(0,b.jsx)(g.f,{size:12,className:"inline"})]}),children:f.json?(0,b.jsx)("textarea",{id:`${A}-cred`,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:p,onChange:a=>r(a.target.value),className:`${n.S} min-h-24 font-mono text-[12.5px]`,placeholder:'{ "type": "service_account", "client_email": "…", "private_key": "…" }'}):(0,b.jsx)("input",{id:`${A}-cred`,type:"password",spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:p,onChange:a=>r(a.target.value),className:n.S,placeholder:`Paste the ${B}`})}),(0,b.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,b.jsx)("b",{className:"font-medium",children:"It needs"}),(0,b.jsx)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:f.needs.map(a=>(0,b.jsx)("li",{children:a},a))})]}),y&&(0,b.jsxs)("div",{className:`mb-3.5 rounded-lg px-3 py-2.5 text-[13px] ${y.ok?"bg-ok-soft":"bg-err-soft"}`,role:"status",children:[(0,b.jsx)(o.F,{state:y.ok?"ok":"err",children:y.ok?"Connected":"Couldn't connect"}),(0,b.jsx)("ul",{className:"mt-1 list-disc pl-[18px]",children:y.ok?[y.summary,...y.details].map(a=>(0,b.jsx)("li",{children:a},a)):(0,b.jsx)("li",{children:y.error})})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)("span",{className:"mr-auto text-[12.5px] text-ink-faint",children:"Save tests the credential first."}),(0,b.jsx)(n.K,{onClick:function(){i(async()=>{let b=await t(a,p);x(b.ok?{}:b.fieldErrors??{}),z(b.ok?b.data??null:b.fieldErrors?null:{ok:!1,kind:"transient",error:b.error})})},disabled:h,children:"Test connection"}),e&&(0,b.jsx)(n.K,{onClick:e,disabled:h,children:"Cancel"}),(0,b.jsx)(n.K,{variant:"primary",onClick:function(){i(async()=>{let b=c?await u(c.id,p):await s(a,j,p);x(b.ok?{}:b.fieldErrors??{}),b.data&&z(b.data),b.ok?(l.c.success(b.message),m(""),r(""),z(null),d?.()):b.fieldErrors||b.data||l.c.error(b.error)})},disabled:h,children:h?"Working…":"Save"})]})]})}a.s(["AccountDialog",0,function({provider:a,replace:c,triggerLabel:d,primary:e}){let f=q[a],g=v[f.icon],[h,j]=(0,k.useState)(!1),[l,o]=(0,k.useState)(0),r=(0,m.useMask)();function s(a){j(a),a||o(a=>a+1)}return(0,b.jsxs)(p.N,{open:h,onOpenChange:s,children:[(0,b.jsxs)(p.a,{className:(0,n.R)({size:"sm",variant:e?"primary":"secondary"}),children:[!c&&!d&&(0,b.jsx)(i.f,{size:16}),d??(c?"Replace credential":"Add account")]}),(0,b.jsxs)(p.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(g,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(p.F,{className:"text-base",children:c?`Replace credential \xb7 ${f.name} \xb7 ${r("account",c.label)}`:`Connect ${f.name}`}),(0,b.jsx)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:c?"The old credential is deleted as soon as the new one works.":"The credential is encrypted before it's saved and never shown again."})]})]}),(0,b.jsx)(w,{provider:a,replace:c,onDone:()=>s(!1),onCancel:()=>s(!1)},l)]})]})},"AccountForm",0,w,"PROVIDER_ICONS",0,v],78774)},447888,a=>{var b=a.i(187924),c=a.i(147909),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(683874),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("7025c7c0ed44881dc55409597aa849b9ebe174a80d",j.callServer,void 0,j.findSourceMapURL,"saveSyncSelection"),l=(0,j.createServerReference)("4089b1be721fc616221821a6a85e36f3ef970913e0",j.callServer,void 0,j.findSourceMapURL,"syncNow"),m={app:{what:"projects",looking:"Looking for projects in every team this token can read…",none:"This Vercel account has no projects yet."},zone:{what:"zones",looking:"Looking for zones in this Cloudflare account…",none:"This Cloudflare account has no zones yet."},supabase_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},neon_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},firestore:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},turso_database:{what:"databases",looking:"Looking for databases in the organizations this token can read…",none:"This Turso account has no databases yet."},upstash_redis:{what:"databases",looking:"Looking for Redis databases this key can read…",none:"This Upstash account has no Redis databases yet."}};a.s(["SyncButton",0,function({accountId:a,title:j,label:n="Sync",primary:o,watchNew:p,kind:q="app"}){let r=m[q],s=(0,f.useMask)(),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(null),[x,y]=(0,d.useState)(null),[z,A]=(0,d.useState)(new Set),[B,C]=(0,d.useState)(p),[D,E]=(0,d.useTransition)(),[F,G]=(0,d.useTransition)(),H=(0,d.useMemo)(()=>v?.rows??[],[v]);return(0,b.jsxs)(i.N,{open:t,onOpenChange:function(b){u(b),b&&(w(null),y(null),A(new Set),C(p),E(async()=>{let b=await l(a);b.ok&&b.data?(w(b.data),A(new Set(b.data.rows.filter(a=>a.monitored).map(a=>a.id)))):y(b.ok?"Sync returned nothing.":b.error)}))},children:[(0,b.jsxs)(i.a,{className:(0,g.R)({size:"sm",variant:o?"primary":"secondary"}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0})," ",n]}),(0,b.jsxs)(i.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]","aria-label":"Sync resources",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Sync ",s("text",j)]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:v?`Found ${H.length} resources just now. Pick the ones the console should watch. Unticked ones are ignored and cost nothing.`:x?`The list of ${r.what} could not be loaded.`:r.looking})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pb-2",children:[x&&(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsx)(g.M,{tone:"danger",title:"Sync didn't finish",children:x})}),v&&v.skippedTeams.length>0&&(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsxs)(g.M,{tone:"info",title:"Some teams were skipped",children:["This token can't read ",v.skippedTeams.join(", "),". Create a token with access to them to include their projects."]})}),v?.overLimit&&(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsx)(g.M,{tone:"warning",title:"Monitor limit reached",children:v.overLimit})}),D&&(0,b.jsx)("p",{className:"py-6 text-center text-[13px] text-ink-soft",children:"Syncing…"}),v&&0===H.length&&(0,b.jsx)(g.k,{title:"Nothing found",children:r.none}),v&&H.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"mb-1.5 flex gap-1.5",children:[(0,b.jsx)(g.K,{size:"sm",onClick:()=>A(new Set(H.map(a=>a.id))),children:"Select all"}),(0,b.jsx)(g.K,{size:"sm",onClick:()=>A(new Set),children:"Select none"})]}),(0,b.jsx)("div",{className:"max-h-[360px] overflow-y-auto rounded-md border border-line",children:H.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-3 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:z.has(a.id),onChange:()=>{var b;return b=a.id,void A(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})}}),(0,b.jsx)(h.f,{kind:a.badge}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:"db"===a.badge||"fs"===a.badge?(0,b.jsx)(f.DbName,{id:a.id,name:a.name,alias:a.alias}):(0,b.jsx)(f.Masked,{kind:"app"===a.badge?"app":"text",real:a.name})}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:(0,b.jsx)(f.Masked,{kind:"text",real:a.sub})})]}),a.fresh&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"New"})]},a.id))})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 border-t border-line px-[18px] py-3",children:[(0,b.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[z.size," of ",H.length," selected"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[12.5px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:B,onChange:a=>C(a.target.checked)}),"Watch new ones automatically"]}),(0,b.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,b.jsx)(g.K,{onClick:()=>u(!1),children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:!v||F,onClick:function(){G(async()=>{let b=await k(a,[...z],B);if(!b.ok)return void e.c.error(b.error);let c=`Watching ${z.size} of ${v?.rows.length??0} resources in ${s("text",j)}. Checks start on the next collector run.`,d=b.data?.overLimit;d?e.c.warning("Selection saved",{description:`${c} ${d}`}):e.c.success("Selection saved",{description:c}),u(!1)})},children:F?"Saving…":"Save selection"})]})]})]})]})}],447888)}]})();
1
+ (()=>{"use strict";module.exports=[78774,a=>{var b=a.i(187924),c=a.i(133004),d=a.i(36600),e=a.i(786581),f=a.i(713352),g=a.i(834295),h=a.i(471941),i=a.i(817748);let j=(0,a.i(449862).f)("outline","triangle","Triangle",[["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-0"}]]);var k=a.i(572131),l=a.i(823292),m=a.i(771378),n=a.i(619089),o=a.i(286597),p=a.i(814574);let q={vercel:{createUrl:"https://vercel.com/account/settings/tokens",needs:["Scope: your account","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"Vercel",icon:"triangle",credentialKind:"Access token",accessNote:"Full account (no read-only option)",multiAccount:!1,note:"One account. Tokens can't be read-only, so actions always ask for confirmation."},supabase:{createUrl:"https://supabase.com/dashboard/account/tokens",needs:["Projects read: status, region, Postgres version","Project admin read: service health","Analytics usage read: last API traffic and auto-pause risk","Organization admin read: free plan, for the free-slot count","Database read: database size, once a day (checked at the first daily read, because testing it would query your database)","Project admin write, only if you want pause and restore (stage 6)"],checked:"2026-10-21",name:"Supabase",icon:"bolt",credentialKind:"Scoped access token",accessNote:"Projects, health, analytics, organization and database read",multiAccount:!0,note:"Each account gets 2 free active projects. Use scoped tokens: read-only, plus project admin if you want pause and restore."},neon:{createUrl:"https://console.neon.tech/app/settings/api-keys",needs:["A personal or project API key. Neon has no read-only keys."],checked:"2026-10-21",name:"Neon",icon:"database",credentialKind:"API key",accessNote:"All projects (no read-only option)",multiAccount:!0,note:"No read-only keys exist, so keys stay on the server."},firebase:{createUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts",needs:["Roles on each project: firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer","Turn on the Cloud Monitoring API in the project for reads, writes, and deletes today"],checked:"2026-10-21",name:"Firebase",icon:"flame",credentialKind:"Service account JSON",accessNote:"firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer",multiAccount:!0,json:!0,note:"One service account per Google account, with viewer roles only."},turso:{createUrl:"https://app.turso.tech/account/api-tokens",needs:["A platform API token limited to one organization (turso auth api-tokens mint watchbell --org <your-org>)","Turso has no read-only platform tokens; the console only lists databases and reads usage","Not a database token: database and group tokens can't list anything"],checked:"2026-10-21",name:"Turso",icon:"database",credentialKind:"Platform API token",accessNote:"One organization: databases and usage (no read-only option)",multiAccount:!0,note:"Lists databases and reads this month's rows read and written and storage against the free plan. Keys stay on the server."},upstash:{createUrl:"https://console.upstash.com/account/api",needs:["A Developer API key created as Read Only (Account → Management API)","Paste it as your-email:API_KEY (Upstash signs API calls with the account email and the key)","Native Upstash accounts only: a database made through the Vercel integration can't be read this way"],checked:"2026-10-21",name:"Upstash",icon:"bolt",credentialKind:"Developer API key",accessNote:"Read-only Developer API key: Redis databases and stats",multiAccount:!0,note:"Redis databases with their region, commands this month and data size against the free plan. QStash is budgeted in Settings."},cloudflare:{createUrl:"https://dash.cloudflare.com/profile/api-tokens",needs:["Zone: Read, DNS: Read, SSL and Certificates: Read","Zone Settings: Read, to show each zone's SSL/TLS mode (optional)","Zone → DNS → Edit, only if the owner wants to edit records from the DNS records page (never create or delete)","Account → D1 → Read, to watch Cloudflare D1 databases (size and tables); add Account → Account Analytics → Read for their rows read and written (optional)","Not needed: Registrar (domain expiry comes from RDAP)"],checked:"2026-10-21",name:"Cloudflare",icon:"cloud",credentialKind:"API token",accessNote:"Zone, DNS, SSL and Certificates read",multiAccount:!0,note:"A read-only API token is enough to watch. Add DNS Edit only to change records from the console. Domain expiry comes from RDAP, so Registrar access isn't needed."},github:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A fine-grained token (it starts with github_pat_); classic tokens can't be limited to read-only","Repository access: all repositories, or only the ones your apps deploy from","Repository permissions, each Read-only: Metadata, Contents, Actions. Nothing else","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub",icon:"github",credentialKind:"Fine-grained token",accessNote:"Metadata, Contents and Actions read",multiAccount:!1,note:"A read-only fine-grained token. Sync lists your repositories; apps are linked to theirs, and their GitHub Actions status shows on the app page."},github_write:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A separate fine-grained token (it starts with github_pat_), not the read-only one above","Repository access: Only select repositories, the ones you want update PRs for","Repository permissions: Contents: Read and write, Pull requests: Read and write, Commit statuses: Read (for automatic merges). Nothing else (Metadata read is added by GitHub)","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub (PR write)",icon:"github",credentialKind:"Fine-grained token",accessNote:"Contents and Pull requests read and write, Commit statuses read, chosen repositories",multiAccount:!1,note:"Optional. Opens pull requests that update vulnerable packages (when you approve one, or by itself with Automatic security fixes) and, with automatic fixes and auto-rollback on, squash-merges Watchbell's own PRs once CI, the Vercel preview and its smoke test pass. It never pushes to the default branch directly."}};var r=a.i(405050);let s=(0,r.createServerReference)("7084e597d643d72e93a88b88618f3a3a7785e54be9",r.callServer,void 0,r.findSourceMapURL,"addAccount"),t=(0,r.createServerReference)("606fa7d3a86a60abb6100270fbb5473cadcc54b57d",r.callServer,void 0,r.findSourceMapURL,"checkCredential"),u=(0,r.createServerReference)("60a9499aed31443d2624c050c285f5f7d233bbd8b2",r.callServer,void 0,r.findSourceMapURL,"replaceCredential"),v={triangle:j,bolt:c.f,database:f.f,flame:h.f,cloud:e.f,github:d.f};function w({provider:a,replace:c,onDone:d,onCancel:e}){let f=q[a],[h,i]=(0,k.useTransition)(),[j,m]=(0,k.useState)(""),[p,r]=(0,k.useState)(""),[v,x]=(0,k.useState)({}),[y,z]=(0,k.useState)(null),A=`${a}-${c?.id??"new"}`,B=f.credentialKind.toLowerCase();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[!c&&(0,b.jsx)(n.O,{id:`${A}-name`,label:"Account name",help:"Shown next to everything that comes from this account.",error:v.label,children:(0,b.jsx)("input",{id:`${A}-name`,value:j,onChange:a=>m(a.target.value),placeholder:"vercel"===a?"acme":"utama",className:n.S})}),(0,b.jsx)(n.O,{id:`${A}-cred`,label:f.credentialKind,error:v.credential,help:(0,b.jsxs)("a",{href:f.createUrl,target:"_blank",rel:"noopener noreferrer",children:[f.guide?"How to create one":"Create one"," ",(0,b.jsx)(g.f,{size:12,className:"inline"})]}),children:f.json?(0,b.jsx)("textarea",{id:`${A}-cred`,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:p,onChange:a=>r(a.target.value),className:`${n.S} min-h-24 font-mono text-[12.5px]`,placeholder:'{ "type": "service_account", "client_email": "…", "private_key": "…" }'}):(0,b.jsx)("input",{id:`${A}-cred`,type:"password",spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:p,onChange:a=>r(a.target.value),className:n.S,placeholder:`Paste the ${B}`})}),(0,b.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,b.jsx)("b",{className:"font-medium",children:"It needs"}),(0,b.jsx)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:f.needs.map(a=>(0,b.jsx)("li",{children:a},a))})]}),y&&(0,b.jsxs)("div",{className:`mb-3.5 rounded-lg px-3 py-2.5 text-[13px] ${y.ok?"bg-ok-soft":"bg-err-soft"}`,role:"status",children:[(0,b.jsx)(o.F,{state:y.ok?"ok":"err",children:y.ok?"Connected":"Couldn't connect"}),(0,b.jsx)("ul",{className:"mt-1 list-disc pl-[18px]",children:y.ok?[y.summary,...y.details].map(a=>(0,b.jsx)("li",{children:a},a)):(0,b.jsx)("li",{children:y.error})})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)("span",{className:"mr-auto text-[12.5px] text-ink-faint",children:"Save tests the credential first."}),(0,b.jsx)(n.K,{onClick:function(){i(async()=>{let b=await t(a,p);x(b.ok?{}:b.fieldErrors??{}),z(b.ok?b.data??null:b.fieldErrors?null:{ok:!1,kind:"transient",error:b.error})})},disabled:h,children:"Test connection"}),e&&(0,b.jsx)(n.K,{onClick:e,disabled:h,children:"Cancel"}),(0,b.jsx)(n.K,{variant:"primary",onClick:function(){i(async()=>{let b=c?await u(c.id,p):await s(a,j,p);x(b.ok?{}:b.fieldErrors??{}),b.data&&z(b.data),b.ok?(l.c.success(b.message),m(""),r(""),z(null),d?.()):b.fieldErrors||b.data||l.c.error(b.error)})},disabled:h,children:h?"Working…":"Save"})]})]})}a.s(["AccountDialog",0,function({provider:a,replace:c,triggerLabel:d,primary:e}){let f=q[a],g=v[f.icon],[h,j]=(0,k.useState)(!1),[l,o]=(0,k.useState)(0),r=(0,m.useMask)();function s(a){j(a),a||o(a=>a+1)}return(0,b.jsxs)(p.N,{open:h,onOpenChange:s,children:[(0,b.jsxs)(p.a,{className:(0,n.R)({size:"sm",variant:e?"primary":"secondary"}),children:[!c&&!d&&(0,b.jsx)(i.f,{size:16}),d??(c?"Replace credential":"Add account")]}),(0,b.jsxs)(p.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(g,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(p.F,{className:"text-base",children:c?`Replace credential \xb7 ${f.name} \xb7 ${r("account",c.label)}`:`Connect ${f.name}`}),(0,b.jsx)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:c?"The old credential is deleted as soon as the new one works.":"The credential is encrypted before it's saved and never shown again."})]})]}),(0,b.jsx)(w,{provider:a,replace:c,onDone:()=>s(!1),onCancel:()=>s(!1)},l)]})]})},"AccountForm",0,w,"PROVIDER_ICONS",0,v],78774)},447888,a=>{var b=a.i(187924),c=a.i(147909),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(619089),h=a.i(683874),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("70d959738dd9bbcec11e07930ab92c190af47e94c5",j.callServer,void 0,j.findSourceMapURL,"saveSyncSelection"),l=(0,j.createServerReference)("4022b8d419ceb9a55a9aaf46f560c7afa60de09378",j.callServer,void 0,j.findSourceMapURL,"syncNow"),m={app:{what:"projects",looking:"Looking for projects in every team this token can read…",none:"This Vercel account has no projects yet."},zone:{what:"zones",looking:"Looking for zones in this Cloudflare account…",none:"This Cloudflare account has no zones yet."},supabase_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},neon_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},firestore:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},turso_database:{what:"databases",looking:"Looking for databases in the organizations this token can read…",none:"This Turso account has no databases yet."},upstash_redis:{what:"databases",looking:"Looking for Redis databases this key can read…",none:"This Upstash account has no Redis databases yet."}};a.s(["SyncButton",0,function({accountId:a,title:j,label:n="Sync",primary:o,watchNew:p,kind:q="app"}){let r=m[q],s=(0,f.useMask)(),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(null),[x,y]=(0,d.useState)(null),[z,A]=(0,d.useState)(new Set),[B,C]=(0,d.useState)(p),[D,E]=(0,d.useTransition)(),[F,G]=(0,d.useTransition)(),H=(0,d.useMemo)(()=>v?.rows??[],[v]);return(0,b.jsxs)(i.N,{open:t,onOpenChange:function(b){u(b),b&&(w(null),y(null),A(new Set),C(p),E(async()=>{let b=await l(a);b.ok&&b.data?(w(b.data),A(new Set(b.data.rows.filter(a=>a.monitored).map(a=>a.id)))):y(b.ok?"Sync returned nothing.":b.error)}))},children:[(0,b.jsxs)(i.a,{className:(0,g.R)({size:"sm",variant:o?"primary":"secondary"}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0})," ",n]}),(0,b.jsxs)(i.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]","aria-label":"Sync resources",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Sync ",s("text",j)]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:v?`Found ${H.length} resources just now. Pick the ones the console should watch. Unticked ones are ignored and cost nothing.`:x?`The list of ${r.what} could not be loaded.`:r.looking})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pb-2",children:[x&&(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsx)(g.M,{tone:"danger",title:"Sync didn't finish",children:x})}),v&&v.skippedTeams.length>0&&(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsxs)(g.M,{tone:"info",title:"Some teams were skipped",children:["This token can't read ",v.skippedTeams.join(", "),". Create a token with access to them to include their projects."]})}),v?.overLimit&&(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsx)(g.M,{tone:"warning",title:"Monitor limit reached",children:v.overLimit})}),D&&(0,b.jsx)("p",{className:"py-6 text-center text-[13px] text-ink-soft",children:"Syncing…"}),v&&0===H.length&&(0,b.jsx)(g.k,{title:"Nothing found",children:r.none}),v&&H.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"mb-1.5 flex gap-1.5",children:[(0,b.jsx)(g.K,{size:"sm",onClick:()=>A(new Set(H.map(a=>a.id))),children:"Select all"}),(0,b.jsx)(g.K,{size:"sm",onClick:()=>A(new Set),children:"Select none"})]}),(0,b.jsx)("div",{className:"max-h-[360px] overflow-y-auto rounded-md border border-line",children:H.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-3 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:z.has(a.id),onChange:()=>{var b;return b=a.id,void A(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})}}),(0,b.jsx)(h.f,{kind:a.badge}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:"db"===a.badge||"fs"===a.badge?(0,b.jsx)(f.DbName,{id:a.id,name:a.name,alias:a.alias}):(0,b.jsx)(f.Masked,{kind:"app"===a.badge?"app":"text",real:a.name})}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:(0,b.jsx)(f.Masked,{kind:"text",real:a.sub})})]}),a.fresh&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"New"})]},a.id))})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 border-t border-line px-[18px] py-3",children:[(0,b.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[z.size," of ",H.length," selected"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[12.5px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:B,onChange:a=>C(a.target.checked)}),"Watch new ones automatically"]}),(0,b.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,b.jsx)(g.K,{onClick:()=>u(!1),children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:!v||F,onClick:function(){G(async()=>{let b=await k(a,[...z],B);if(!b.ok)return void e.c.error(b.error);let c=`Watching ${z.size} of ${v?.rows.length??0} resources in ${s("text",j)}. Checks start on the next collector run.`,d=b.data?.overLimit;d?e.c.warning("Selection saved",{description:`${c} ${d}`}):e.c.success("Selection saved",{description:c}),u(!1)})},children:F?"Saving…":"Save selection"})]})]})]})]})}],447888)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_connections_1fahc65-97qla._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[300103,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(619089),h=a.i(405050);let i=(0,h.createServerReference)("400afb024b7c054d42614b10c02f01fe68bad49dbd",h.callServer,void 0,h.findSourceMapURL,"removeAccount"),j=(0,h.createServerReference)("40661123413993ae95e8c60652b8c10ad08ef1b3ab",h.callServer,void 0,h.findSourceMapURL,"retestAccount");a.s(["RemoveAccountButton",0,function({accountId:a,title:c}){let d=(0,e.useMask)();return(0,b.jsx)(f.f,{trigger:(0,b.jsx)(g.K,{size:"sm",children:"Remove"}),title:`Remove ${d("text",c)}?`,body:"The console deletes its credential and stops watching its resources. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})},"RetestButton",0,function({accountId:a}){let[e,f]=(0,c.useTransition)();return(0,b.jsx)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>{let b=await j(a);b.ok?d.c.success(b.message):d.c.error(b.error)}),children:e?"Testing…":"Test connection"})}],300103)},648433,a=>{var b=a.i(187924),c=a.i(147909),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("40e5a974567c9c8ee244346d6577061996d2b2f8b7",g.callServer,void 0,g.findSourceMapURL,"syncGithubNow");a.s(["GithubSyncButton",0,function({accountId:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{size:"sm",disabled:g,onClick:()=>i(async()=>{let b=e.c.loading("Syncing GitHub…");try{let c=await h(a);c.ok?e.c.success(c.message??"Synced.",{id:b}):e.c.error(c.error,{id:b})}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}}),children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),g?"Syncing…":"Sync"]})}],648433)},827124,a=>{var b=a.i(187924),c=a.i(740197),d=a.i(772925),e=a.i(521341),f=a.i(768758),g=a.i(505358),h=a.i(749867),i=a.i(8842),j=a.i(532489);let k=(0,a.i(449862).f)("outline","brand-google-drive","BrandGoogleDrive",[["path",{d:"M12 10l-6 10l-3 -5l6 -10l3 5",key:"svg-0"}],["path",{d:"M9 15h12l-3 5h-12",key:"svg-1"}],["path",{d:"M15 15l-6 -10h6l6 10l-6 0",key:"svg-2"}]]);var l=a.i(851519),m=a.i(50944),n=a.i(572131),o=a.i(507504),p=a.i(286597);let q={...a.i(78774).PROVIDER_ICONS,drive:k};a.s(["ProviderDrawer",0,function({name:a,note:k,icon:r,line:s,defaultOpen:t=!1,children:u}){let[v,w]=(0,n.useState)(t),[x,y]=(0,n.useState)(t);x!==t&&(y(t),t&&w(!0));let z=(0,m.useRouter)(),A=(0,m.usePathname)();(0,o.useHoldRefresh)(v);let B=q[r];return(0,b.jsxs)(c.f.Root,{open:v,onOpenChange:function(a){w(a),!a&&new URLSearchParams(window.location.search).has("provider")&&z.replace(A,{scroll:!1})},children:[(0,b.jsxs)(d.f.Trigger,{className:"flex min-w-0 items-center gap-3 rounded-lg border border-line bg-surface px-3.5 py-3 text-left hover:border-line-strong hover:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","aria-label":`${a}: ${s.text}`,children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(B,{size:19})}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate text-[14px] font-medium text-ink",children:a}),(0,b.jsx)("span",{className:"block text-[12.5px]",children:(0,b.jsx)(p.F,{state:s.state,children:s.text})})]})]}),(0,b.jsxs)(e.f.Portal,{children:[(0,b.jsx)(f.f.Backdrop,{className:"fixed inset-0 z-50 bg-black/10"}),(0,b.jsxs)(g.f.Popup,{className:"fixed inset-y-0 right-0 z-50 flex w-[620px] max-w-full flex-col border-l border-line bg-surface text-ink shadow-lg outline-none",children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-start gap-3 border-b border-line px-[18px] py-3.5",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(B,{size:19})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(h.f.Title,{className:"text-[15px] font-semibold",children:a}),(0,b.jsx)(i.f.Description,{className:"mt-px text-[12.5px] text-ink-soft",children:k})]}),(0,b.jsx)(j.f.Close,{"aria-label":"Close",title:"Close",className:"ml-auto inline-grid size-[34px] shrink-0 place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,b.jsx)(l.f,{size:18})})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:u})]})]})]})}],827124)}]})();
1
+ (()=>{"use strict";module.exports=[300103,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(611619),g=a.i(619089),h=a.i(405050);let i=(0,h.createServerReference)("40042263c53f3ebe5951ecff516a084680149863c9",h.callServer,void 0,h.findSourceMapURL,"removeAccount"),j=(0,h.createServerReference)("40f0c5d18c7279f762e4a7bfeabe417c335c6fa0d4",h.callServer,void 0,h.findSourceMapURL,"retestAccount");a.s(["RemoveAccountButton",0,function({accountId:a,title:c}){let d=(0,e.useMask)();return(0,b.jsx)(f.f,{trigger:(0,b.jsx)(g.K,{size:"sm",children:"Remove"}),title:`Remove ${d("text",c)}?`,body:"The console deletes its credential and stops watching its resources. Nothing changes at the provider.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await i(a);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})},"RetestButton",0,function({accountId:a}){let[e,f]=(0,c.useTransition)();return(0,b.jsx)(g.K,{size:"sm",disabled:e,onClick:()=>f(async()=>{let b=await j(a);b.ok?d.c.success(b.message):d.c.error(b.error)}),children:e?"Testing…":"Test connection"})}],300103)},648433,a=>{var b=a.i(187924),c=a.i(147909),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("4051e93d9f22c55ab716ba7a32da053cbe7a9270a3",g.callServer,void 0,g.findSourceMapURL,"syncGithubNow");a.s(["GithubSyncButton",0,function({accountId:a}){let[g,i]=(0,d.useTransition)();return(0,b.jsxs)(f.K,{size:"sm",disabled:g,onClick:()=>i(async()=>{let b=e.c.loading("Syncing GitHub…");try{let c=await h(a);c.ok?e.c.success(c.message??"Synced.",{id:b}):e.c.error(c.error,{id:b})}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}}),children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0}),g?"Syncing…":"Sync"]})}],648433)},827124,a=>{var b=a.i(187924),c=a.i(740197),d=a.i(772925),e=a.i(521341),f=a.i(768758),g=a.i(505358),h=a.i(749867),i=a.i(8842),j=a.i(532489);let k=(0,a.i(449862).f)("outline","brand-google-drive","BrandGoogleDrive",[["path",{d:"M12 10l-6 10l-3 -5l6 -10l3 5",key:"svg-0"}],["path",{d:"M9 15h12l-3 5h-12",key:"svg-1"}],["path",{d:"M15 15l-6 -10h6l6 10l-6 0",key:"svg-2"}]]);var l=a.i(851519),m=a.i(50944),n=a.i(572131),o=a.i(507504),p=a.i(286597);let q={...a.i(78774).PROVIDER_ICONS,drive:k};a.s(["ProviderDrawer",0,function({name:a,note:k,icon:r,line:s,defaultOpen:t=!1,children:u}){let[v,w]=(0,n.useState)(t),[x,y]=(0,n.useState)(t);x!==t&&(y(t),t&&w(!0));let z=(0,m.useRouter)(),A=(0,m.usePathname)();(0,o.useHoldRefresh)(v);let B=q[r];return(0,b.jsxs)(c.f.Root,{open:v,onOpenChange:function(a){w(a),!a&&new URLSearchParams(window.location.search).has("provider")&&z.replace(A,{scroll:!1})},children:[(0,b.jsxs)(d.f.Trigger,{className:"flex min-w-0 items-center gap-3 rounded-lg border border-line bg-surface px-3.5 py-3 text-left hover:border-line-strong hover:bg-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","aria-label":`${a}: ${s.text}`,children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(B,{size:19})}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate text-[14px] font-medium text-ink",children:a}),(0,b.jsx)("span",{className:"block text-[12.5px]",children:(0,b.jsx)(p.F,{state:s.state,children:s.text})})]})]}),(0,b.jsxs)(e.f.Portal,{children:[(0,b.jsx)(f.f.Backdrop,{className:"fixed inset-0 z-50 bg-black/10"}),(0,b.jsxs)(g.f.Popup,{className:"fixed inset-y-0 right-0 z-50 flex w-[620px] max-w-full flex-col border-l border-line bg-surface text-ink shadow-lg outline-none",children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-start gap-3 border-b border-line px-[18px] py-3.5",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(B,{size:19})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(h.f.Title,{className:"text-[15px] font-semibold",children:a}),(0,b.jsx)(i.f.Description,{className:"mt-px text-[12.5px] text-ink-soft",children:k})]}),(0,b.jsx)(j.f.Close,{"aria-label":"Close",title:"Close",className:"ml-auto inline-grid size-[34px] shrink-0 place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,b.jsx)(l.f,{size:18})})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:u})]})]})]})}],827124)}]})();
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_connections_1fmp_anbkapur._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[446601,908122,a=>{"use strict";var b=a.i(137936),c=a.i(93321),d=a.i(118558),e=a.i(548734),f=a.i(837137),g=a.i(109068),h=a.i(600079),i=a.i(109307),j=a.i(678831),k=a.i(45617),l=a.i(358179),m=a.i(492665),n=a.i(312573),o=a.i(323878),p=a.i(44925),q=a.i(760417),r=a.i(686921),s=a.i(15827),t=a.i(584897);let u="Paste the whole JSON file. It needs client_email and private_key.";var v=a.i(26972),w=a.i(689963),x=a.i(427221),y=a.i(899370),z=a.i(462820),A=a.i(449734),B=a.i(514670),C=a.i(944808),D=a.i(112735),E=a.i(354448);let F=["Every permission it needs is there"],G=(a,b)=>`${a} ${b}${1===a?"":"s"}`;async function H(a,b,c,d){let e,f=r.m[a].name;try{e=await (d.fetch??fetch)(b,{headers:{Authorization:`Bearer ${c}`,Accept:"application/json"},signal:AbortSignal.timeout(d.timeoutMs??5e3),cache:"no-store"})}catch(a){return{ok:!1,kind:"transient",error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?`${f} didn't answer within 5 seconds. Try again.`:`Couldn't reach ${f}. Check your connection and try again.`}}let g=await e.json().catch(()=>null);if(403===e.status&&"supabase"===a){let a=v.z.object({missing_permissions:w.z.array(x.z.string())}).safeParse(g);if(a.success&&a.data.missing_permissions.length){let b=a.data.missing_permissions;return{ok:!1,kind:"auth",error:`Missing permission${b.length>1?"s":""}: ${b.join(", ")}. Create a new token that includes ${b.length>1?"them":"it"}.`}}}return 401===e.status||403===e.status?{ok:!1,kind:"auth",error:`${f} rejected this credential (${e.status}). Check that you copied all of it.`}:429===e.status?{ok:!1,kind:"transient",error:`${f} says there were too many requests. Try again in a minute.`}:e.ok?{ok:!0,body:g}:{ok:!1,kind:"transient",error:`${f} returned an error (${e.status}). Try again in a minute.`}}let I=a=>({ok:!1,kind:"format",error:`${r.m[a].name} answered in a format the console doesn't recognise.`});function J(a,b){let c=r.m[a].name;return"github"===a||"github_write"===a?{ok:!1,kind:"auth"===b.kind||"scope"===b.kind?"auth":"format"===b.kind?"format":"transient",error:b.error}:"scope"===b.kind&&b.missing?.length?{ok:!1,kind:"auth",error:`Missing permission${b.missing.length>1?"s":""}: ${b.missing.join(", ")}. Create a new token that includes ${b.missing.length>1?"them":"it"}.`}:"auth"===b.kind||"scope"===b.kind?{ok:!1,kind:"auth",error:"firebase"===a?b.error:`${c} rejected this credential (${b.status??401}). Check that you copied all of it.`}:"format"===b.kind?{ok:!1,kind:"format",error:`${c} answered in a format the console doesn't recognise.`}:{ok:!1,kind:"transient",error:`${b.error} Try again in a minute.`}}let K={project_admin_read:"service health",analytics_usage_read:"API traffic",organization_admin_read:"organization plan"};async function L(a,b,c={}){switch(a){case"vercel":{let d=await H(a,"https://api.vercel.com/v10/projects?limit=100",b,c);if(!d.ok)return d;let e=v.z.object({projects:w.z.array(v.z.object({name:x.z.string()}))}).safeParse(d.body);return e.success?{ok:!0,summary:`Found ${G(e.data.projects.length,"project")}`,details:F}:I(a)}case"supabase":{let d=await H(a,"https://api.supabase.com/v1/projects",b,c);if(!d.ok)return d;let e=w.z.array(v.z.object({ref:x.z.string(),name:x.z.string(),status:x.z.string(),organization_slug:x.z.string().optional(),region:x.z.string().optional(),created_at:x.z.string().optional()})).safeParse(d.body);if(!e.success)return I(a);let f=e.data.filter(a=>a.status.startsWith("ACTIVE")).length,g=e.data.filter(a=>"INACTIVE"===a.status).length,h=e.data.map(a=>({ref:a.ref,name:a.name,orgSlug:a.organization_slug??"",region:a.region??"",createdAt:a.created_at??"",status:a.status,pgVersion:null})),i=await (0,D.T)(b,h,c),j=["projects",...i.used.filter(a=>"projects_read"!==a).map(a=>K[a]??a)];return{ok:!0,summary:`Found ${G(e.data.length,"project")} (${f} active, ${g} paused)`,details:[...i.missing.length?i.missing.map(a=>`Missing ${a}: ${D.W[a]??"some columns stay empty"}`):F,...i.notes],scopeNote:`Reads ${j.join(", ")}${i.missing.length?` \xb7 missing ${i.missing.join(", ")}`:""} \xb7 database size checked daily`}}case"neon":{let d=await (0,C.m)(b,c);return d.ok?{ok:!0,summary:`Found ${G(d.data.length,"project")}`,details:F}:J(a,d)}case"cloudflare":{let d=await H(a,"https://api.cloudflare.com/client/v4/zones?per_page=50",b,c);if(!d.ok)return d;let e=v.z.object({success:y.z.literal(!0),result:w.z.array(v.z.object({name:x.z.string(),account:v.z.object({id:x.z.string()}).nullish()}))}).safeParse(d.body);if(!e.success)return I(a);let f=e.data.result.find(a=>a.account?.id)?.account?.id,g=f?await (0,B.L)(b,f,c):null,h=g?g.ok?`D1 read ✓ (${G(g.data.length,"database")})`:"scope"===g.kind||"auth"===g.kind?"No D1 read: add Account → D1 → Read to watch D1 databases (optional)":"D1 couldn't be checked right now":"D1 not checked (no zone to find the account)";return{ok:!0,summary:`Found ${G(e.data.result.length,"zone")}`,details:[...F,h],scopeNote:`Zone, DNS, SSL and Certificates read${g?.ok?" · D1 read":""}`}}case"firebase":{let d=(0,s.p)(b);if(!d)return{ok:!1,kind:"format",error:u};let e=await (0,s.X)(d,c);if(!e.ok)return J(a,e);let f=await (0,A.E)(e.data,c),g=(0,A.b)(d,f);if(!g.ok)return J(a,g);let h=new Date,[i,j,k]=await Promise.all([(0,A.G)(e.data,d.project_id,c),(0,A.q)(e.data,d.project_id,c),(0,A.W)(e.data,d.project_id,new Date(h.getTime()-36e5),h,c)]),l=a=>a?"✓":"✗ (role missing)",m=[f.ok?"firebase.viewer":null,i.ok?"datastore.viewer":null,j.ok?"firebaseauth.viewer":null,k.ok?"monitoring.viewer":null].filter(Boolean);return{ok:!0,summary:`Found ${G(g.data.length,"Firebase project")}`,details:[`Firestore health read ${l(i.ok)} \xb7 Auth user count ${l(j.ok)}`,k.ok?"Cloud Monitoring: reads, writes, and deletes today can be read ✓":`Cloud Monitoring can't be read (${k.reason??k.kind}): reads, writes and deletes today stay empty`],scopeNote:`${m.join(", ")}${k.ok?"":" · no Cloud Monitoring"}`}}case"turso":{let d=await (0,E.t)(b,c);if(!d.ok)return J(a,d);let e=d.data[0]?.org,f=e?await (0,E.d)(b,e,c):null;return{ok:!0,summary:`Found ${G(d.data.length,"database")}`,details:[null===f?"No database yet: usage is read once there is one":f.ok?"Usage read ✓ (rows read and written, storage)":`Usage can't be read (${f.kind}): the usage columns stay empty`],scopeNote:`Databases${f?.ok?" and usage":""} \xb7 no read-only option`}}case"upstash":{let d=(0,t.L)(b);if(!d)return{ok:!1,kind:"format",error:"Paste your Upstash email and the API key as email:API_KEY."};let e=await (0,t.M)(d,c);if(!e.ok)return J(a,e);let f=e.data[0]?await (0,t.Z)(d,e.data[0].id,c):null;return{ok:!0,summary:`Found ${G(e.data.length,"Redis database")}`,details:[null===f?"No database yet: stats are read once there is one":f.ok?"Stats read ✓ (commands, data size, bandwidth)":`Stats can't be read (${f.kind})`],scopeNote:"Redis databases and stats"}}case"github":{let d=await (0,q.k)(b,c);if(!d.ok)return J(a,d);let e=await (0,q.o)(b,c);if(!e.ok)return J(a,e);let f=e.data.repos.length;return{ok:!0,summary:`Found ${e.data.truncated?`${f}+`:f} repositor${1===f?"y":"ies"}`,details:[f?"Metadata read ✓":"No repositories are shared with this token yet: give it access to your apps' repositories","Contents and Actions read are checked per repository on the first Sync"],scopeNote:"Metadata, Contents and Actions read"}}case"github_write":{let d=await (0,q.k)(b,c);if(!d.ok)return J(a,d);let e=await (0,q.o)(b,c);if(!e.ok)return J(a,e);let f=e.data.repos.length;return{ok:!0,summary:`Sees ${e.data.truncated?`${f}+`:f} repositor${1===f?"y":"ies"}`,details:[f?"Metadata read ✓":"No repositories are shared with this token yet: choose the repositories you want update PRs for",z.K.githubWriteDetail],scopeNote:"Contents and Pull requests read and write"}}}}var M=a.i(572134),N=a.i(713095);let O={requireActionMember:i.g};async function P(a,b){if("vercel"===a){let a=await (0,M.o)(b);return a.ok?{expiresAt:a.data}:{}}if("cloudflare"===a){let a=await (0,p.d)(b);return a.ok?{expiresAt:a.data.expiresAt}:{}}if("github"===a||"github_write"===a){let a=await (0,q.k)(b);return a.ok?{expiresAt:a.data.expiresAt}:{}}return{}}async function Q(a,b){let c=function(a,b){let c=r.m[a],d=b.trim();if(c.json){try{if(s.m.safeParse(JSON.parse(d)).success)return{ok:!0,value:d}}catch{}return{ok:!1,error:u}}let e=d.replace(/^bearer\s+/i,"").replace(/^["']|["']$/g,"").trim(),f=c.credentialKind.replace(/^Scoped /,"").replace(/^([A-Z][a-z])/,a=>a.toLowerCase()),g=/^[aeiou]/i.test(f)?"an":"a";return e?e.length<20?{ok:!1,error:`That's too short for ${g} ${f}.`}:"upstash"===a?(0,t.L)(e)?{ok:!0,value:e}:{ok:!1,error:"Paste your Upstash email and the API key as email:API_KEY."}:"github"!==a&&"github_write"!==a||/^github_pat_[A-Za-z0-9_]{20,}$/.test(e)?{ok:!0,value:e}:{ok:!1,error:"Use a fine-grained token (it starts with github_pat_). Classic tokens can't be limited to read-only."}:{ok:!1,error:`Paste the ${f}.`}}(a,b);return c.ok?{value:c.value,test:await L(a,c.value)}:{error:c.error}}async function R(a,b){return(0,h.F)("owner",async c=>{let d=await (0,o.C)(n.t.credential,c.id);if(!d.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(d.retryAfter)}.`};if(!r.L.includes(a))return{ok:!1,error:"Unknown provider."};let e=await Q(a,b);return"error"in e?{ok:!1,error:e.error,fieldErrors:{credential:e.error}}:{ok:!0,data:e.test}},O)}async function S(a,b,i){return(0,h.F)("owner",async h=>{let j=await (0,o.C)(n.t.credential,h.id);if(!j.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(j.retryAfter)}.`};if(!r.L.includes(a))return{ok:!1,error:"Unknown provider."};let k=await (0,e.f)().select({label:f.accounts.label}).from(f.accounts).where((0,c.u)(f.accounts.provider,a)),p=(0,g.z)(a,b,{labels:k.map(a=>a.label),count:k.length});if(!p.ok)return{ok:!1,error:p.error,fieldErrors:{label:p.error}};let q=await Q(a,i);if("error"in q)return{ok:!1,error:q.error,fieldErrors:{credential:q.error}};if(!q.test.ok)return{ok:!1,error:q.test.error,data:q.test};let s=(0,l.l)(q.value,(0,m.f)().OPS_ENCRYPTION_KEY);return await (0,e.f)().insert(f.accounts).values({provider:a,label:p.label,credentialCiphertext:s.ciphertext,credentialIv:s.iv,keyVersion:s.keyVersion,credentialKind:r.m[a].credentialKind,scopeNote:q.test.ok&&q.test.scopeNote||r.m[a].accessNote,status:"ok",lastTestAt:new Date,...await P(a,q.value)}),(0,d.revalidatePath)("/connections"),(0,d.revalidatePath)("/welcome"),{ok:!0,message:`${r.m[a].name} \xb7 ${p.label} connected.`,data:q.test}},O)}async function T(a,b){return(0,h.F)("owner",async g=>{let h,i=await (0,o.C)(n.t.credential,g.id);if(!i.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(i.retryAfter)}.`};let[j]=await (0,e.f)().select().from(f.accounts).where((0,c.u)(f.accounts.id,a)).limit(1);if(!j||(h=j.provider,!r.L.includes(h)))return{ok:!1,error:"That account no longer exists."};let k=await Q(j.provider,b);if("error"in k)return{ok:!1,error:k.error,fieldErrors:{credential:k.error}};if(!k.test.ok)return{ok:!1,error:k.test.error,data:k.test};let p=(0,l.l)(k.value,(0,m.f)().OPS_ENCRYPTION_KEY);return await (0,e.f)().update(f.accounts).set({credentialCiphertext:p.ciphertext,credentialIv:p.iv,keyVersion:p.keyVersion,status:"ok",lastError:null,lastTestAt:new Date,updatedAt:new Date,...k.test.ok&&k.test.scopeNote?{scopeNote:k.test.scopeNote}:{},...await P(j.provider,k.value)}).where((0,c.u)(f.accounts.id,a)),(0,d.revalidatePath)("/connections"),{ok:!0,message:`${r.m[j.provider].name} \xb7 ${j.label} is connected again.`,data:k.test}},O)}async function U(a){return(0,h.F)("owner",async b=>{let h,i=await (0,o.C)(n.t.credential,b.id);if(!i.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(i.retryAfter)}.`};let[j]=await (0,e.f)().select().from(f.accounts).where((0,c.u)(f.accounts.id,a)).limit(1);if(!j||(h=j.provider,!r.L.includes(h)))return{ok:!1,error:"That account no longer exists."};let k=(0,l.V)({ciphertext:j.credentialCiphertext,iv:j.credentialIv},(0,m.f)().OPS_ENCRYPTION_KEY),p=(0,g.A)(k),q=p?{ok:!1,kind:"auth",error:p}:await L(j.provider,k),s=(0,g.E)(q);return s&&await (0,e.f)().update(f.accounts).set({...s,lastTestAt:new Date,updatedAt:new Date,...q.ok&&q.scopeNote?{scopeNote:q.scopeNote}:{},...q.ok?await P(j.provider,k):{}}).where((0,c.u)(f.accounts.id,a)),(0,d.revalidatePath)("/connections"),q.ok?{ok:!0,message:`${r.m[j.provider].name} \xb7 ${j.label}: ${q.summary}.`}:{ok:!1,error:q.error}},O)}async function V(a){return(0,h.F)("owner",async()=>{let b,g=await (0,e.f)().delete(f.accounts).where((0,c.u)(f.accounts.id,a)).returning({provider:f.accounts.provider,label:f.accounts.label});(0,d.revalidatePath)("/connections"),g.length&&(0,j.J)(k.t);let h=g[0];if(!h)return{ok:!1,error:"That account no longer exists."};let i=(b=h.provider,r.L.includes(b))?r.m[h.provider].name:"drive"===h.provider?"Google Drive":h.provider;return{ok:!0,message:`${i} \xb7 ${h.label} removed. Its credential is deleted.`}},O)}(0,N.ensureServerEntryExports)([R,S,T,U,V]),(0,b.registerServerReference)(R,"60fc49f1147b575fbef1409e238ea3c531a6088147",null),(0,b.registerServerReference)(S,"70a9926db0cd30a055167987e79ae0f8d0fdbc1fc6",null),(0,b.registerServerReference)(T,"60855c6503d69782c9128399ea5c152eea4fec8de8",null),(0,b.registerServerReference)(U,"40661123413993ae95e8c60652b8c10ad08ef1b3ab",null),(0,b.registerServerReference)(V,"400afb024b7c054d42614b10c02f01fe68bad49dbd",null),a.s(["s",0,S,"$",0,R,"f",0,V,"K",0,T,"H",0,U],446601);var W=a.i(247730),X=a.i(743303),Y=a.i(556987);let Z={requireActionMember:i.g},$=/^[0-9a-f-]{36}$/i,_="Something in that request wasn't valid.";async function aa(a){return(0,h.F)("owner",async b=>{if("string"!=typeof a||!$.test(a))return{ok:!1,error:_};let c=await (0,o.C)(n.t.sync,b.id);if(!c.allowed)return{ok:!1,error:`Too many syncs. Try again in ${(0,n.H)(c.retryAfter)}.`};let e=await (0,X.k)(a);if((0,d.revalidatePath)("/connections"),(0,j.J)(k.t),!e.ok)return{ok:!1,error:e.error};let f=a=>"db"===a.badge||"fs"===a.badge,g=e.rows.some(f)?await (0,W.f)():null;return{ok:!0,data:{rows:g?e.rows.map(a=>f(a)?{...a,alias:(0,Y.X)(g,a.id)}:a):e.rows,skippedTeams:e.skippedTeams,overLimit:e.overLimit}}},Z)}async function ab(a,b,c){return(0,h.F)("owner",async()=>{if("string"!=typeof a||!$.test(a)||!Array.isArray(b))return{ok:!1,error:_};let e=b.filter(a=>"string"==typeof a&&$.test(a)).slice(0,500),f=await (0,X.v)(a,e,!0===c);return f.ok?((0,d.revalidatePath)("/connections"),(0,d.revalidatePath)("/welcome"),(0,j.J)(k.t),{ok:!0,message:`Watching ${f.on} of ${f.total} resources. Checks start on the next collector run.`,data:{overLimit:f.overLimit}}):{ok:!1,error:f.error}},Z)}(0,N.ensureServerEntryExports)([aa,ab]),(0,b.registerServerReference)(aa,"4089b1be721fc616221821a6a85e36f3ef970913e0",null),(0,b.registerServerReference)(ab,"7025c7c0ed44881dc55409597aa849b9ebe174a80d",null),a.s(["h",0,ab,"E",0,aa],908122)}];
1
+ module.exports=[446601,908122,a=>{"use strict";var b=a.i(137936),c=a.i(93321),d=a.i(118558),e=a.i(548734),f=a.i(837137),g=a.i(109068),h=a.i(600079),i=a.i(109307),j=a.i(678831),k=a.i(45617),l=a.i(358179),m=a.i(492665),n=a.i(312573),o=a.i(323878),p=a.i(44925),q=a.i(760417),r=a.i(686921),s=a.i(15827),t=a.i(584897);let u="Paste the whole JSON file. It needs client_email and private_key.";var v=a.i(26972),w=a.i(689963),x=a.i(427221),y=a.i(899370),z=a.i(462820),A=a.i(449734),B=a.i(514670),C=a.i(944808),D=a.i(112735),E=a.i(354448);let F=["Every permission it needs is there"],G=(a,b)=>`${a} ${b}${1===a?"":"s"}`;async function H(a,b,c,d){let e,f=r.m[a].name;try{e=await (d.fetch??fetch)(b,{headers:{Authorization:`Bearer ${c}`,Accept:"application/json"},signal:AbortSignal.timeout(d.timeoutMs??5e3),cache:"no-store"})}catch(a){return{ok:!1,kind:"transient",error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?`${f} didn't answer within 5 seconds. Try again.`:`Couldn't reach ${f}. Check your connection and try again.`}}let g=await e.json().catch(()=>null);if(403===e.status&&"supabase"===a){let a=v.z.object({missing_permissions:w.z.array(x.z.string())}).safeParse(g);if(a.success&&a.data.missing_permissions.length){let b=a.data.missing_permissions;return{ok:!1,kind:"auth",error:`Missing permission${b.length>1?"s":""}: ${b.join(", ")}. Create a new token that includes ${b.length>1?"them":"it"}.`}}}return 401===e.status||403===e.status?{ok:!1,kind:"auth",error:`${f} rejected this credential (${e.status}). Check that you copied all of it.`}:429===e.status?{ok:!1,kind:"transient",error:`${f} says there were too many requests. Try again in a minute.`}:e.ok?{ok:!0,body:g}:{ok:!1,kind:"transient",error:`${f} returned an error (${e.status}). Try again in a minute.`}}let I=a=>({ok:!1,kind:"format",error:`${r.m[a].name} answered in a format the console doesn't recognise.`});function J(a,b){let c=r.m[a].name;return"github"===a||"github_write"===a?{ok:!1,kind:"auth"===b.kind||"scope"===b.kind?"auth":"format"===b.kind?"format":"transient",error:b.error}:"scope"===b.kind&&b.missing?.length?{ok:!1,kind:"auth",error:`Missing permission${b.missing.length>1?"s":""}: ${b.missing.join(", ")}. Create a new token that includes ${b.missing.length>1?"them":"it"}.`}:"auth"===b.kind||"scope"===b.kind?{ok:!1,kind:"auth",error:"firebase"===a?b.error:`${c} rejected this credential (${b.status??401}). Check that you copied all of it.`}:"format"===b.kind?{ok:!1,kind:"format",error:`${c} answered in a format the console doesn't recognise.`}:{ok:!1,kind:"transient",error:`${b.error} Try again in a minute.`}}let K={project_admin_read:"service health",analytics_usage_read:"API traffic",organization_admin_read:"organization plan"};async function L(a,b,c={}){switch(a){case"vercel":{let d=await H(a,"https://api.vercel.com/v10/projects?limit=100",b,c);if(!d.ok)return d;let e=v.z.object({projects:w.z.array(v.z.object({name:x.z.string()}))}).safeParse(d.body);return e.success?{ok:!0,summary:`Found ${G(e.data.projects.length,"project")}`,details:F}:I(a)}case"supabase":{let d=await H(a,"https://api.supabase.com/v1/projects",b,c);if(!d.ok)return d;let e=w.z.array(v.z.object({ref:x.z.string(),name:x.z.string(),status:x.z.string(),organization_slug:x.z.string().optional(),region:x.z.string().optional(),created_at:x.z.string().optional()})).safeParse(d.body);if(!e.success)return I(a);let f=e.data.filter(a=>a.status.startsWith("ACTIVE")).length,g=e.data.filter(a=>"INACTIVE"===a.status).length,h=e.data.map(a=>({ref:a.ref,name:a.name,orgSlug:a.organization_slug??"",region:a.region??"",createdAt:a.created_at??"",status:a.status,pgVersion:null})),i=await (0,D.T)(b,h,c),j=["projects",...i.used.filter(a=>"projects_read"!==a).map(a=>K[a]??a)];return{ok:!0,summary:`Found ${G(e.data.length,"project")} (${f} active, ${g} paused)`,details:[...i.missing.length?i.missing.map(a=>`Missing ${a}: ${D.W[a]??"some columns stay empty"}`):F,...i.notes],scopeNote:`Reads ${j.join(", ")}${i.missing.length?` \xb7 missing ${i.missing.join(", ")}`:""} \xb7 database size checked daily`}}case"neon":{let d=await (0,C.m)(b,c);return d.ok?{ok:!0,summary:`Found ${G(d.data.length,"project")}`,details:F}:J(a,d)}case"cloudflare":{let d=await H(a,"https://api.cloudflare.com/client/v4/zones?per_page=50",b,c);if(!d.ok)return d;let e=v.z.object({success:y.z.literal(!0),result:w.z.array(v.z.object({name:x.z.string(),account:v.z.object({id:x.z.string()}).nullish()}))}).safeParse(d.body);if(!e.success)return I(a);let f=e.data.result.find(a=>a.account?.id)?.account?.id,g=f?await (0,B.L)(b,f,c):null,h=g?g.ok?`D1 read ✓ (${G(g.data.length,"database")})`:"scope"===g.kind||"auth"===g.kind?"No D1 read: add Account → D1 → Read to watch D1 databases (optional)":"D1 couldn't be checked right now":"D1 not checked (no zone to find the account)";return{ok:!0,summary:`Found ${G(e.data.result.length,"zone")}`,details:[...F,h],scopeNote:`Zone, DNS, SSL and Certificates read${g?.ok?" · D1 read":""}`}}case"firebase":{let d=(0,s.p)(b);if(!d)return{ok:!1,kind:"format",error:u};let e=await (0,s.X)(d,c);if(!e.ok)return J(a,e);let f=await (0,A.E)(e.data,c),g=(0,A.b)(d,f);if(!g.ok)return J(a,g);let h=new Date,[i,j,k]=await Promise.all([(0,A.G)(e.data,d.project_id,c),(0,A.q)(e.data,d.project_id,c),(0,A.W)(e.data,d.project_id,new Date(h.getTime()-36e5),h,c)]),l=a=>a?"✓":"✗ (role missing)",m=[f.ok?"firebase.viewer":null,i.ok?"datastore.viewer":null,j.ok?"firebaseauth.viewer":null,k.ok?"monitoring.viewer":null].filter(Boolean);return{ok:!0,summary:`Found ${G(g.data.length,"Firebase project")}`,details:[`Firestore health read ${l(i.ok)} \xb7 Auth user count ${l(j.ok)}`,k.ok?"Cloud Monitoring: reads, writes, and deletes today can be read ✓":`Cloud Monitoring can't be read (${k.reason??k.kind}): reads, writes and deletes today stay empty`],scopeNote:`${m.join(", ")}${k.ok?"":" · no Cloud Monitoring"}`}}case"turso":{let d=await (0,E.t)(b,c);if(!d.ok)return J(a,d);let e=d.data[0]?.org,f=e?await (0,E.d)(b,e,c):null;return{ok:!0,summary:`Found ${G(d.data.length,"database")}`,details:[null===f?"No database yet: usage is read once there is one":f.ok?"Usage read ✓ (rows read and written, storage)":`Usage can't be read (${f.kind}): the usage columns stay empty`],scopeNote:`Databases${f?.ok?" and usage":""} \xb7 no read-only option`}}case"upstash":{let d=(0,t.L)(b);if(!d)return{ok:!1,kind:"format",error:"Paste your Upstash email and the API key as email:API_KEY."};let e=await (0,t.M)(d,c);if(!e.ok)return J(a,e);let f=e.data[0]?await (0,t.Z)(d,e.data[0].id,c):null;return{ok:!0,summary:`Found ${G(e.data.length,"Redis database")}`,details:[null===f?"No database yet: stats are read once there is one":f.ok?"Stats read ✓ (commands, data size, bandwidth)":`Stats can't be read (${f.kind})`],scopeNote:"Redis databases and stats"}}case"github":{let d=await (0,q.k)(b,c);if(!d.ok)return J(a,d);let e=await (0,q.o)(b,c);if(!e.ok)return J(a,e);let f=e.data.repos.length;return{ok:!0,summary:`Found ${e.data.truncated?`${f}+`:f} repositor${1===f?"y":"ies"}`,details:[f?"Metadata read ✓":"No repositories are shared with this token yet: give it access to your apps' repositories","Contents and Actions read are checked per repository on the first Sync"],scopeNote:"Metadata, Contents and Actions read"}}case"github_write":{let d=await (0,q.k)(b,c);if(!d.ok)return J(a,d);let e=await (0,q.o)(b,c);if(!e.ok)return J(a,e);let f=e.data.repos.length;return{ok:!0,summary:`Sees ${e.data.truncated?`${f}+`:f} repositor${1===f?"y":"ies"}`,details:[f?"Metadata read ✓":"No repositories are shared with this token yet: choose the repositories you want update PRs for",z.K.githubWriteDetail],scopeNote:"Contents and Pull requests read and write"}}}}var M=a.i(572134),N=a.i(713095);let O={requireActionMember:i.g};async function P(a,b){if("vercel"===a){let a=await (0,M.o)(b);return a.ok?{expiresAt:a.data}:{}}if("cloudflare"===a){let a=await (0,p.d)(b);return a.ok?{expiresAt:a.data.expiresAt}:{}}if("github"===a||"github_write"===a){let a=await (0,q.k)(b);return a.ok?{expiresAt:a.data.expiresAt}:{}}return{}}async function Q(a,b){let c=function(a,b){let c=r.m[a],d=b.trim();if(c.json){try{if(s.m.safeParse(JSON.parse(d)).success)return{ok:!0,value:d}}catch{}return{ok:!1,error:u}}let e=d.replace(/^bearer\s+/i,"").replace(/^["']|["']$/g,"").trim(),f=c.credentialKind.replace(/^Scoped /,"").replace(/^([A-Z][a-z])/,a=>a.toLowerCase()),g=/^[aeiou]/i.test(f)?"an":"a";return e?e.length<20?{ok:!1,error:`That's too short for ${g} ${f}.`}:"upstash"===a?(0,t.L)(e)?{ok:!0,value:e}:{ok:!1,error:"Paste your Upstash email and the API key as email:API_KEY."}:"github"!==a&&"github_write"!==a||/^github_pat_[A-Za-z0-9_]{20,}$/.test(e)?{ok:!0,value:e}:{ok:!1,error:"Use a fine-grained token (it starts with github_pat_). Classic tokens can't be limited to read-only."}:{ok:!1,error:`Paste the ${f}.`}}(a,b);return c.ok?{value:c.value,test:await L(a,c.value)}:{error:c.error}}async function R(a,b){return(0,h.F)("owner",async c=>{let d=await (0,o.C)(n.t.credential,c.id);if(!d.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(d.retryAfter)}.`};if(!r.L.includes(a))return{ok:!1,error:"Unknown provider."};let e=await Q(a,b);return"error"in e?{ok:!1,error:e.error,fieldErrors:{credential:e.error}}:{ok:!0,data:e.test}},O)}async function S(a,b,i){return(0,h.F)("owner",async h=>{let j=await (0,o.C)(n.t.credential,h.id);if(!j.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(j.retryAfter)}.`};if(!r.L.includes(a))return{ok:!1,error:"Unknown provider."};let k=await (0,e.f)().select({label:f.accounts.label}).from(f.accounts).where((0,c.u)(f.accounts.provider,a)),p=(0,g.z)(a,b,{labels:k.map(a=>a.label),count:k.length});if(!p.ok)return{ok:!1,error:p.error,fieldErrors:{label:p.error}};let q=await Q(a,i);if("error"in q)return{ok:!1,error:q.error,fieldErrors:{credential:q.error}};if(!q.test.ok)return{ok:!1,error:q.test.error,data:q.test};let s=(0,l.l)(q.value,(0,m.f)().OPS_ENCRYPTION_KEY);return await (0,e.f)().insert(f.accounts).values({provider:a,label:p.label,credentialCiphertext:s.ciphertext,credentialIv:s.iv,keyVersion:s.keyVersion,credentialKind:r.m[a].credentialKind,scopeNote:q.test.ok&&q.test.scopeNote||r.m[a].accessNote,status:"ok",lastTestAt:new Date,...await P(a,q.value)}),(0,d.revalidatePath)("/connections"),(0,d.revalidatePath)("/welcome"),{ok:!0,message:`${r.m[a].name} \xb7 ${p.label} connected.`,data:q.test}},O)}async function T(a,b){return(0,h.F)("owner",async g=>{let h,i=await (0,o.C)(n.t.credential,g.id);if(!i.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(i.retryAfter)}.`};let[j]=await (0,e.f)().select().from(f.accounts).where((0,c.u)(f.accounts.id,a)).limit(1);if(!j||(h=j.provider,!r.L.includes(h)))return{ok:!1,error:"That account no longer exists."};let k=await Q(j.provider,b);if("error"in k)return{ok:!1,error:k.error,fieldErrors:{credential:k.error}};if(!k.test.ok)return{ok:!1,error:k.test.error,data:k.test};let p=(0,l.l)(k.value,(0,m.f)().OPS_ENCRYPTION_KEY);return await (0,e.f)().update(f.accounts).set({credentialCiphertext:p.ciphertext,credentialIv:p.iv,keyVersion:p.keyVersion,status:"ok",lastError:null,lastTestAt:new Date,updatedAt:new Date,...k.test.ok&&k.test.scopeNote?{scopeNote:k.test.scopeNote}:{},...await P(j.provider,k.value)}).where((0,c.u)(f.accounts.id,a)),(0,d.revalidatePath)("/connections"),{ok:!0,message:`${r.m[j.provider].name} \xb7 ${j.label} is connected again.`,data:k.test}},O)}async function U(a){return(0,h.F)("owner",async b=>{let h,i=await (0,o.C)(n.t.credential,b.id);if(!i.allowed)return{ok:!1,error:`Too many connection tests. Try again in ${(0,n.H)(i.retryAfter)}.`};let[j]=await (0,e.f)().select().from(f.accounts).where((0,c.u)(f.accounts.id,a)).limit(1);if(!j||(h=j.provider,!r.L.includes(h)))return{ok:!1,error:"That account no longer exists."};let k=(0,l.V)({ciphertext:j.credentialCiphertext,iv:j.credentialIv},(0,m.f)().OPS_ENCRYPTION_KEY),p=(0,g.A)(k),q=p?{ok:!1,kind:"auth",error:p}:await L(j.provider,k),s=(0,g.E)(q);return s&&await (0,e.f)().update(f.accounts).set({...s,lastTestAt:new Date,updatedAt:new Date,...q.ok&&q.scopeNote?{scopeNote:q.scopeNote}:{},...q.ok?await P(j.provider,k):{}}).where((0,c.u)(f.accounts.id,a)),(0,d.revalidatePath)("/connections"),q.ok?{ok:!0,message:`${r.m[j.provider].name} \xb7 ${j.label}: ${q.summary}.`}:{ok:!1,error:q.error}},O)}async function V(a){return(0,h.F)("owner",async()=>{let b,g=await (0,e.f)().delete(f.accounts).where((0,c.u)(f.accounts.id,a)).returning({provider:f.accounts.provider,label:f.accounts.label});(0,d.revalidatePath)("/connections"),g.length&&(0,j.J)(k.t);let h=g[0];if(!h)return{ok:!1,error:"That account no longer exists."};let i=(b=h.provider,r.L.includes(b))?r.m[h.provider].name:"drive"===h.provider?"Google Drive":h.provider;return{ok:!0,message:`${i} \xb7 ${h.label} removed. Its credential is deleted.`}},O)}(0,N.ensureServerEntryExports)([R,S,T,U,V]),(0,b.registerServerReference)(R,"606fa7d3a86a60abb6100270fbb5473cadcc54b57d",null),(0,b.registerServerReference)(S,"7084e597d643d72e93a88b88618f3a3a7785e54be9",null),(0,b.registerServerReference)(T,"60a9499aed31443d2624c050c285f5f7d233bbd8b2",null),(0,b.registerServerReference)(U,"40f0c5d18c7279f762e4a7bfeabe417c335c6fa0d4",null),(0,b.registerServerReference)(V,"40042263c53f3ebe5951ecff516a084680149863c9",null),a.s(["s",0,S,"$",0,R,"f",0,V,"K",0,T,"H",0,U],446601);var W=a.i(247730),X=a.i(743303),Y=a.i(556987);let Z={requireActionMember:i.g},$=/^[0-9a-f-]{36}$/i,_="Something in that request wasn't valid.";async function aa(a){return(0,h.F)("owner",async b=>{if("string"!=typeof a||!$.test(a))return{ok:!1,error:_};let c=await (0,o.C)(n.t.sync,b.id);if(!c.allowed)return{ok:!1,error:`Too many syncs. Try again in ${(0,n.H)(c.retryAfter)}.`};let e=await (0,X.k)(a);if((0,d.revalidatePath)("/connections"),(0,j.J)(k.t),!e.ok)return{ok:!1,error:e.error};let f=a=>"db"===a.badge||"fs"===a.badge,g=e.rows.some(f)?await (0,W.f)():null;return{ok:!0,data:{rows:g?e.rows.map(a=>f(a)?{...a,alias:(0,Y.X)(g,a.id)}:a):e.rows,skippedTeams:e.skippedTeams,overLimit:e.overLimit}}},Z)}async function ab(a,b,c){return(0,h.F)("owner",async()=>{if("string"!=typeof a||!$.test(a)||!Array.isArray(b))return{ok:!1,error:_};let e=b.filter(a=>"string"==typeof a&&$.test(a)).slice(0,500),f=await (0,X.v)(a,e,!0===c);return f.ok?((0,d.revalidatePath)("/connections"),(0,d.revalidatePath)("/welcome"),(0,j.J)(k.t),{ok:!0,message:`Watching ${f.on} of ${f.total} resources. Checks start on the next collector run.`,data:{overLimit:f.overLimit}}):{ok:!1,error:f.error}},Z)}(0,N.ensureServerEntryExports)([aa,ab]),(0,b.registerServerReference)(aa,"4022b8d419ceb9a55a9aaf46f560c7afa60de09378",null),(0,b.registerServerReference)(ab,"70d959738dd9bbcec11e07930ab92c190af47e94c5",null),a.s(["h",0,ab,"E",0,aa],908122)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_connections_actions_ts_103blv4gzq76z._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[408411,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(507504),g=a.i(286597),h=a.i(814574),i=a.i(405050);let j=(0,i.createServerReference)("40700f89e0ccbd1e6e781585d4d4fee90012046041",i.callServer,void 0,i.findSourceMapURL,"containerDetailAction"),k=(0,i.createServerReference)("00842bc48932012ddaa33e9e392f56c0c8a8bbf726",i.callServer,void 0,i.findSourceMapURL,"containerListAction"),l=(0,i.createServerReference)("700f349fe4aeb62e04b729ad18f995fff686e13fd2",i.callServer,void 0,i.findSourceMapURL,"containerVerbAction"),m=a=>null===a?"—":a>=1e9?`${(a/1e9).toFixed(1)} GB`:a>=1e6?`${Math.round(a/1e6)} MB`:`${Math.round(a/1e3)} kB`,n="Watchbell didn't answer. Check that it's still running, then try again.";function o({container:a,owner:i,onClose:k,onChanged:p}){let[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useTransition)();(0,f.useHoldRefresh)(!0),(0,c.useEffect)(()=>{let b=!0;return j(a.id).then(a=>{b&&(a.ok&&a.data?r(a.data):t(a.ok?"No answer.":a.error))}).catch(()=>{b&&t(n)}),()=>{b=!1}},[a.id]);let A=b=>z(async()=>{try{let c=await l(a.id,b,"start"===b?"":w);c.ok?(d.c.success(c.message??"Done."),v(null),x(""),p(),k()):d.c.error(c.error)}catch{d.c.error(n)}}),B="running"===a.state||"restarting"===a.state;return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>{a||k()},children:(0,b.jsxs)(h.d,{className:"sm:max-w-[760px]",children:[(0,b.jsx)(h.F,{children:a.name}),(0,b.jsxs)(h.C,{className:"font-mono text-[12.5px]",children:[a.image," · ",a.status||a.state]}),s&&(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(g.Z,{state:"warn"}),(0,b.jsx)("span",{children:s})]}),!q&&!s&&(0,b.jsx)("p",{className:"text-ink-soft",children:"Reading the container…"}),q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-[13px] text-ink-soft",children:["CPU ",null===q.stats.cpuPct?"—":`${q.stats.cpuPct}%`," · memory ",m(q.stats.memBytes),q.stats.memLimit?` of ${m(q.stats.memLimit)}`:""," · restarted ",q.restarts," time",1===q.restarts?"":"s"]}),(0,b.jsx)("pre",{tabIndex:0,"aria-label":"Last log lines",className:"max-h-[320px] overflow-auto rounded-md bg-code-bg p-3 font-mono text-[12px] leading-relaxed text-code-text",children:q.logs.length?q.logs.join("\n"):"(no log lines)"}),(0,b.jsxs)("p",{className:"text-[12px] text-ink-faint",children:["The last ",q.logs.length," lines. Values that look secret are masked."]})]}),i&&!a.self&&(u?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("label",{htmlFor:"ctr-confirm",className:"text-[13px]",children:["Type ",(0,b.jsx)("span",{className:"font-mono",children:a.name})," to ",u,":"]}),(0,b.jsx)("input",{id:"ctr-confirm",value:w,onChange:a=>x(a.target.value),className:`${e.S} w-[220px]`,autoComplete:"off"}),(0,b.jsx)(e.K,{size:"sm",variant:"danger",onClick:()=>A(u),disabled:y||w.trim()!==a.name,children:y?"Working…":"stop"===u?"Stop":"Restart"}),(0,b.jsx)(e.K,{size:"sm",onClick:()=>{v(null),x("")},disabled:y,children:"Cancel"})]}):(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[!B&&(0,b.jsx)(e.K,{size:"sm",onClick:()=>A("start"),disabled:y,children:y?"Starting…":"Start"}),B&&(0,b.jsx)(e.K,{size:"sm",onClick:()=>v("restart"),disabled:y,children:"Restart"}),B&&(0,b.jsx)(e.K,{size:"sm",variant:"danger",onClick:()=>v("stop"),disabled:y,children:"Stop"})]})),i&&a.self&&(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:"This is the container Watchbell runs in, so it can't be stopped or restarted from here."})]})})}a.s(["ContainersView",0,function({initial:a,owner:f}){let[h,i]=(0,c.useState)(a),[j,l]=(0,c.useState)(null),[m,p]=(0,c.useTransition)(),q=()=>p(async()=>{try{let a=await k();a.ok&&a.data?i(a.data.containers):d.c.error(a.ok?"No answer.":a.error)}catch{d.c.error(n)}});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 px-[18px] pb-2 pt-3",children:[(0,b.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[h.length," container",1===h.length?"":"s"]}),(0,b.jsx)(e.K,{size:"sm",onClick:q,disabled:m,children:m?"Refreshing…":"Refresh"})]}),0===h.length?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No containers on this machine."}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full text-[13px]",children:[(0,b.jsx)("thead",{className:"text-left text-[12px] text-ink-soft",children:(0,b.jsxs)("tr",{className:"border-y border-line",children:[(0,b.jsx)("th",{className:"px-[18px] py-2 font-medium",children:"Name"}),(0,b.jsx)("th",{className:"px-3 py-2 font-medium",children:"Status"}),(0,b.jsx)("th",{className:"px-3 py-2 font-medium max-[720px]:hidden",children:"Image"}),(0,b.jsx)("th",{className:"px-3 py-2 font-medium max-[720px]:hidden",children:"Ports"}),(0,b.jsx)("th",{className:"px-[18px] py-2"})]})}),(0,b.jsx)("tbody",{children:h.map(a=>(0,b.jsxs)("tr",{className:"border-b border-line last:border-0",children:[(0,b.jsxs)("td",{className:"px-[18px] py-2.5",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(g.Z,{state:"unhealthy"===a.health?"err":"restarting"===a.state||"starting"===a.health?"warn":"running"===a.state?"ok":"paused"===a.state?"paused":"off"}),a.name]}),a.self&&(0,b.jsx)("span",{className:"ml-1.5 text-[12px] text-ink-soft",children:"(Watchbell)"})]}),(0,b.jsx)("td",{className:"px-3 py-2.5 text-ink-soft",children:a.status||a.state}),(0,b.jsx)("td",{className:"px-3 py-2.5 font-mono text-[12px] text-ink-soft max-[720px]:hidden",children:a.image}),(0,b.jsx)("td",{className:"px-3 py-2.5 font-mono text-[12px] text-ink-soft max-[720px]:hidden",children:a.ports.join(", ")||"—"}),(0,b.jsx)("td",{className:"px-[18px] py-2.5 text-right",children:(0,b.jsx)(e.K,{size:"sm",onClick:()=>l(a),children:"Details"})})]},a.id))})]})}),j&&(0,b.jsx)(o,{container:j,owner:f,onClose:()=>l(null),onChanged:q})]})}],408411)}];
1
+ module.exports=[408411,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(619089),f=a.i(507504),g=a.i(286597),h=a.i(814574),i=a.i(405050);let j=(0,i.createServerReference)("40351e4c8d77f853c61ebe63d6f41137b00597f7ca",i.callServer,void 0,i.findSourceMapURL,"containerDetailAction"),k=(0,i.createServerReference)("0075379f4b711b506e0a3af3c205f13896b6850eaa",i.callServer,void 0,i.findSourceMapURL,"containerListAction"),l=(0,i.createServerReference)("7085422b16f30e4e738c45656bddd636b611b189e7",i.callServer,void 0,i.findSourceMapURL,"containerVerbAction"),m=a=>null===a?"—":a>=1e9?`${(a/1e9).toFixed(1)} GB`:a>=1e6?`${Math.round(a/1e6)} MB`:`${Math.round(a/1e3)} kB`,n="Watchbell didn't answer. Check that it's still running, then try again.";function o({container:a,owner:i,onClose:k,onChanged:p}){let[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useTransition)();(0,f.useHoldRefresh)(!0),(0,c.useEffect)(()=>{let b=!0;return j(a.id).then(a=>{b&&(a.ok&&a.data?r(a.data):t(a.ok?"No answer.":a.error))}).catch(()=>{b&&t(n)}),()=>{b=!1}},[a.id]);let A=b=>z(async()=>{try{let c=await l(a.id,b,"start"===b?"":w);c.ok?(d.c.success(c.message??"Done."),v(null),x(""),p(),k()):d.c.error(c.error)}catch{d.c.error(n)}}),B="running"===a.state||"restarting"===a.state;return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>{a||k()},children:(0,b.jsxs)(h.d,{className:"sm:max-w-[760px]",children:[(0,b.jsx)(h.F,{children:a.name}),(0,b.jsxs)(h.C,{className:"font-mono text-[12.5px]",children:[a.image," · ",a.status||a.state]}),s&&(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-ink-soft",children:[(0,b.jsx)(g.Z,{state:"warn"}),(0,b.jsx)("span",{children:s})]}),!q&&!s&&(0,b.jsx)("p",{className:"text-ink-soft",children:"Reading the container…"}),q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-[13px] text-ink-soft",children:["CPU ",null===q.stats.cpuPct?"—":`${q.stats.cpuPct}%`," · memory ",m(q.stats.memBytes),q.stats.memLimit?` of ${m(q.stats.memLimit)}`:""," · restarted ",q.restarts," time",1===q.restarts?"":"s"]}),(0,b.jsx)("pre",{tabIndex:0,"aria-label":"Last log lines",className:"max-h-[320px] overflow-auto rounded-md bg-code-bg p-3 font-mono text-[12px] leading-relaxed text-code-text",children:q.logs.length?q.logs.join("\n"):"(no log lines)"}),(0,b.jsxs)("p",{className:"text-[12px] text-ink-faint",children:["The last ",q.logs.length," lines. Values that look secret are masked."]})]}),i&&!a.self&&(u?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("label",{htmlFor:"ctr-confirm",className:"text-[13px]",children:["Type ",(0,b.jsx)("span",{className:"font-mono",children:a.name})," to ",u,":"]}),(0,b.jsx)("input",{id:"ctr-confirm",value:w,onChange:a=>x(a.target.value),className:`${e.S} w-[220px]`,autoComplete:"off"}),(0,b.jsx)(e.K,{size:"sm",variant:"danger",onClick:()=>A(u),disabled:y||w.trim()!==a.name,children:y?"Working…":"stop"===u?"Stop":"Restart"}),(0,b.jsx)(e.K,{size:"sm",onClick:()=>{v(null),x("")},disabled:y,children:"Cancel"})]}):(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[!B&&(0,b.jsx)(e.K,{size:"sm",onClick:()=>A("start"),disabled:y,children:y?"Starting…":"Start"}),B&&(0,b.jsx)(e.K,{size:"sm",onClick:()=>v("restart"),disabled:y,children:"Restart"}),B&&(0,b.jsx)(e.K,{size:"sm",variant:"danger",onClick:()=>v("stop"),disabled:y,children:"Stop"})]})),i&&a.self&&(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:"This is the container Watchbell runs in, so it can't be stopped or restarted from here."})]})})}a.s(["ContainersView",0,function({initial:a,owner:f}){let[h,i]=(0,c.useState)(a),[j,l]=(0,c.useState)(null),[m,p]=(0,c.useTransition)(),q=()=>p(async()=>{try{let a=await k();a.ok&&a.data?i(a.data.containers):d.c.error(a.ok?"No answer.":a.error)}catch{d.c.error(n)}});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 px-[18px] pb-2 pt-3",children:[(0,b.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[h.length," container",1===h.length?"":"s"]}),(0,b.jsx)(e.K,{size:"sm",onClick:q,disabled:m,children:m?"Refreshing…":"Refresh"})]}),0===h.length?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No containers on this machine."}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full text-[13px]",children:[(0,b.jsx)("thead",{className:"text-left text-[12px] text-ink-soft",children:(0,b.jsxs)("tr",{className:"border-y border-line",children:[(0,b.jsx)("th",{className:"px-[18px] py-2 font-medium",children:"Name"}),(0,b.jsx)("th",{className:"px-3 py-2 font-medium",children:"Status"}),(0,b.jsx)("th",{className:"px-3 py-2 font-medium max-[720px]:hidden",children:"Image"}),(0,b.jsx)("th",{className:"px-3 py-2 font-medium max-[720px]:hidden",children:"Ports"}),(0,b.jsx)("th",{className:"px-[18px] py-2"})]})}),(0,b.jsx)("tbody",{children:h.map(a=>(0,b.jsxs)("tr",{className:"border-b border-line last:border-0",children:[(0,b.jsxs)("td",{className:"px-[18px] py-2.5",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(g.Z,{state:"unhealthy"===a.health?"err":"restarting"===a.state||"starting"===a.health?"warn":"running"===a.state?"ok":"paused"===a.state?"paused":"off"}),a.name]}),a.self&&(0,b.jsx)("span",{className:"ml-1.5 text-[12px] text-ink-soft",children:"(Watchbell)"})]}),(0,b.jsx)("td",{className:"px-3 py-2.5 text-ink-soft",children:a.status||a.state}),(0,b.jsx)("td",{className:"px-3 py-2.5 font-mono text-[12px] text-ink-soft max-[720px]:hidden",children:a.image}),(0,b.jsx)("td",{className:"px-3 py-2.5 font-mono text-[12px] text-ink-soft max-[720px]:hidden",children:a.ports.join(", ")||"—"}),(0,b.jsx)("td",{className:"px-[18px] py-2.5 text-right",children:(0,b.jsx)(e.K,{size:"sm",onClick:()=>l(a),children:"Details"})})]},a.id))})]})}),j&&(0,b.jsx)(o,{container:j,owner:f,onClose:()=>l(null),onChanged:q})]})}],408411)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_containers_containers-view_tsx_1xkcrw5gx53xo._.js.map