watchbell 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +123 -84
  3. package/bin/watchbell.mjs +593 -23
  4. package/package.json +1 -1
  5. package/server/.next/BUILD_ID +1 -1
  6. package/server/.next/app-path-routes-manifest.json +1 -0
  7. package/server/.next/build-manifest.json +116 -105
  8. package/server/.next/prerender-manifest.json +3 -3
  9. package/server/.next/routes-manifest.json +6 -0
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
  11. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +61 -58
  13. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
  17. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +61 -58
  18. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
  21. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
  22. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +61 -58
  23. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
  26. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
  27. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +61 -58
  28. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
  31. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
  32. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +61 -58
  33. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
  36. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
  37. package/server/.next/server/app/(console)/(private)/ai/models/page.js +61 -58
  38. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
  41. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
  42. package/server/.next/server/app/(console)/(private)/ai/page.js +61 -58
  43. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
  46. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
  47. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +61 -58
  48. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
  51. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
  52. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +61 -58
  53. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  54. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  55. package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
  56. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
  57. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +61 -58
  58. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  59. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  60. package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
  61. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
  62. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +61 -58
  63. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
  66. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
  67. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +61 -58
  68. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  69. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  70. package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
  71. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
  72. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +61 -58
  73. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  74. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  75. package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
  76. package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
  77. package/server/.next/server/app/(console)/[...slug]/page.js +62 -59
  78. package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
  79. package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
  80. package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
  81. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
  82. package/server/.next/server/app/(console)/alerts/page.js +61 -58
  83. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
  86. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +23 -23
  87. package/server/.next/server/app/(console)/apps/[id]/page.js +61 -58
  88. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  89. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  90. package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
  91. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +11 -11
  92. package/server/.next/server/app/(console)/apps/page.js +61 -58
  93. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
  96. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
  97. package/server/.next/server/app/(console)/backups/page.js +61 -58
  98. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  99. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  100. package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
  101. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
  102. package/server/.next/server/app/(console)/catalog/page.js +61 -58
  103. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
  106. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +54 -54
  107. package/server/.next/server/app/(console)/connections/page.js +67 -64
  108. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
  111. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
  112. package/server/.next/server/app/(console)/d1/page.js +61 -58
  113. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  114. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  115. package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
  116. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +14 -14
  117. package/server/.next/server/app/(console)/deployments/page.js +61 -58
  118. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  119. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  120. package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
  121. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
  122. package/server/.next/server/app/(console)/dns/page.js +61 -58
  123. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
  126. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
  127. package/server/.next/server/app/(console)/domains/page.js +61 -58
  128. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  129. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  130. package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
  131. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
  132. package/server/.next/server/app/(console)/events/page.js +61 -58
  133. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  134. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  135. package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
  136. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +15 -15
  137. package/server/.next/server/app/(console)/firebase/page.js +62 -59
  138. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
  141. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
  142. package/server/.next/server/app/(console)/logs/page.js +61 -58
  143. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/manage/sections/page/app-paths-manifest.json +3 -0
  146. package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
  147. package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
  148. package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
  149. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
  150. package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
  151. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
  152. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
  153. package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
  154. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
  155. package/server/.next/server/app/(console)/neon/page.js +61 -58
  156. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  157. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  158. package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
  159. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +16 -16
  160. package/server/.next/server/app/(console)/overview/page.js +61 -58
  161. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  162. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  163. package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
  164. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
  165. package/server/.next/server/app/(console)/repos/[id]/page.js +61 -58
  166. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
  169. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
  170. package/server/.next/server/app/(console)/repos/page.js +61 -58
  171. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  172. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  173. package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
  174. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
  175. package/server/.next/server/app/(console)/settings/page.js +61 -58
  176. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  177. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  178. package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
  179. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
  180. package/server/.next/server/app/(console)/sql/page.js +61 -58
  181. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  182. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  183. package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
  184. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
  185. package/server/.next/server/app/(console)/status/page.js +61 -58
  186. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  187. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  188. package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
  189. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +27 -27
  190. package/server/.next/server/app/(console)/supabase/page.js +61 -58
  191. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  192. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  193. package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
  194. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
  195. package/server/.next/server/app/(console)/topology/page.js +61 -58
  196. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  197. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  198. package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
  199. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
  200. package/server/.next/server/app/(console)/turso/page.js +61 -58
  201. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  202. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
  204. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
  205. package/server/.next/server/app/(console)/upstash/page.js +61 -58
  206. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  207. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  208. package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
  209. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +22 -22
  210. package/server/.next/server/app/(console)/uptime/page.js +61 -58
  211. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  212. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  213. package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
  214. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
  215. package/server/.next/server/app/(console)/welcome/page.js +62 -59
  216. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  217. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
  219. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  220. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  221. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  222. package/server/.next/server/app/_global-error.html +1 -1
  223. package/server/.next/server/app/_global-error.rsc +3 -3
  224. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  225. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  226. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  227. package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
  228. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  229. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  230. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  231. package/server/.next/server/app/_not-found.html +1 -1
  232. package/server/.next/server/app/_not-found.rsc +4 -4
  233. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  234. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  235. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  236. package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
  237. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  238. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  239. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  240. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  241. package/server/.next/server/app/api/collect/route.js +78 -73
  242. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  243. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  244. package/server/.next/server/app/api/daily/route.js +77 -72
  245. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  246. package/server/.next/server/app/api/health/route.js.nft.json +1 -1
  247. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  248. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  249. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  250. package/server/.next/server/app/api/telegram/webhook/route.js +75 -70
  251. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  252. package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
  253. package/server/.next/server/app/api/v1/advice/route.js +20 -19
  254. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  255. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +2 -2
  256. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  257. package/server/.next/server/app/api/v1/ai/models/route.js +2 -2
  258. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  259. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
  260. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  261. package/server/.next/server/app/api/v1/ai/questions/route.js +24 -23
  262. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  263. package/server/.next/server/app/api/v1/mcp/route.js +22 -21
  264. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  265. package/server/.next/server/app/api/v1/me/route.js +1 -1
  266. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  267. package/server/.next/server/app/api/v1/openapi.json/route.js +10 -9
  268. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  269. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +20 -19
  270. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  271. package/server/.next/server/app/api/v1/status/route.js +20 -19
  272. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  273. package/server/.next/server/app/api/watchdog/route.js +21 -19
  274. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  275. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  276. package/server/.next/server/app/auth/google/callback/route.js +18 -17
  277. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  278. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  279. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  280. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  281. package/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  282. package/server/.next/server/app/invite/page/build-manifest.json +3 -3
  283. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  284. package/server/.next/server/app/invite/page.js +4 -3
  285. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  286. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  287. package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
  288. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  289. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  290. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  291. package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
  292. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  293. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  294. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  295. package/server/.next/server/app/page/build-manifest.json +3 -3
  296. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  297. package/server/.next/server/app/page.js.nft.json +1 -1
  298. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  299. package/server/.next/server/app/s/[slug]/badge/[file]/route.js +9 -8
  300. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  301. package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
  302. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  303. package/server/.next/server/app/s/[slug]/page.js +8 -8
  304. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  305. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  306. package/server/.next/server/app/setup/page/build-manifest.json +3 -3
  307. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  308. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  309. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  310. package/server/.next/server/app/signin/page/build-manifest.json +3 -3
  311. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  312. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  313. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  314. package/server/.next/server/app-paths-manifest.json +1 -0
  315. package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
  316. package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
  317. package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
  318. package/server/.next/server/chunks/{[root-of-the-server]__0_6eq1806attx._.js → [root-of-the-server]__00hb7hqa7qktx._.js} +1 -1
  319. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  320. package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
  321. package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
  323. package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
  325. package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
  326. package/server/.next/server/chunks/{[root-of-the-server]__06iz-tlpv7pqm._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
  327. package/server/.next/server/chunks/{[root-of-the-server]__0mtlynfv-vklo._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
  328. package/server/.next/server/chunks/{[root-of-the-server]__0j0medewrv95l._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
  329. package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
  330. package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
  331. package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
  333. package/server/.next/server/chunks/{[root-of-the-server]__09qqv-zsz9qhr._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
  334. package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
  335. package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__0znb_m_wygjdc._.js → [root-of-the-server]__0erdelc9_06nk._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__018ux7xja83l6._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
  339. package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
  340. package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__02ihdvnmhshoe._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
  342. package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0grtjjr51j6xe._.js} +1 -1
  343. package/server/.next/server/chunks/{[root-of-the-server]__1jrqehmo6kq8x._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
  344. package/server/.next/server/chunks/{[root-of-the-server]__08801yoxfe_os._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
  345. package/server/.next/server/chunks/{[root-of-the-server]__081ywec7cjq3d._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
  346. package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
  347. package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
  348. package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
  349. package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
  350. package/server/.next/server/chunks/{[root-of-the-server]__0-ok-3r9xtz0y._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
  351. package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
  352. package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
  353. package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
  354. package/server/.next/server/chunks/[root-of-the-server]__0qmkpydmx3ljf._.js +3 -0
  355. package/server/.next/server/chunks/[root-of-the-server]__0r-zdzq6ki5gr._.js +3 -0
  356. package/server/.next/server/chunks/{[root-of-the-server]__0mhtnnebbepzx._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
  357. package/server/.next/server/chunks/{[root-of-the-server]__0u66-8g4ql645._.js → [root-of-the-server]__0sivlmcvkc1uq._.js} +1 -1
  358. package/server/.next/server/chunks/[root-of-the-server]__0t8d8b4qkw3y-._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__1z3-s7wc9-uc6._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
  361. package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__1x9tt_2yhozwe._.js → [root-of-the-server]__0vp-x4ifpr3p9._.js} +2 -2
  364. package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
  365. package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
  366. package/server/.next/server/chunks/[root-of-the-server]__0z-07azr3zk8s._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__0z-41cwvkliev._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__0zxyfd7u67hmv._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1-rqermjb77se._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
  371. package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
  372. package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
  373. package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
  374. package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
  376. package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
  377. package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
  378. package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
  379. package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__13be7gbo81td4._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
  382. package/server/.next/server/chunks/{[root-of-the-server]__0wt74rsaz-308._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
  383. package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
  384. package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
  385. package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
  386. package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
  387. package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
  388. package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
  389. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
  390. package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
  391. package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
  392. package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
  393. package/server/.next/server/chunks/{[root-of-the-server]__0qpf0qusq792k._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
  394. package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
  395. package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
  397. package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
  398. package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
  399. package/server/.next/server/chunks/[root-of-the-server]__1j26i51ankv-z._.js +3 -0
  400. package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
  401. package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
  402. package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
  403. package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
  404. package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
  405. package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
  406. package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
  407. package/server/.next/server/chunks/{[root-of-the-server]__0q691wec2busx._.js → [root-of-the-server]__1objhlwwrjfjk._.js} +2 -2
  408. package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
  409. package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
  410. package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
  411. package/server/.next/server/chunks/{[root-of-the-server]__0tb-63ts77gqd._.js → [root-of-the-server]__1tefe1f5835t_._.js} +2 -2
  412. package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +3 -0
  413. package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
  414. package/server/.next/server/chunks/{[root-of-the-server]__132wlw6sbwt1d._.js → [root-of-the-server]__1vi0u2vkv3tk0._.js} +2 -2
  415. package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
  416. package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +3 -0
  417. package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
  418. package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
  419. package/server/.next/server/chunks/{[root-of-the-server]__18mztbxkzaxjs._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
  420. package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
  421. package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
  422. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  423. package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
  424. package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
  425. package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
  426. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  427. package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
  428. package/server/.next/server/chunks/_0ejcrge5k4quv._.js +9 -9
  429. package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
  430. package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
  431. package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
  432. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +3 -0
  433. package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
  434. package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
  435. package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
  436. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
  437. package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
  438. package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
  439. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
  440. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  441. package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
  442. package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
  443. package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
  444. package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
  445. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
  446. package/server/.next/server/chunks/_103ai6ybnpq1k._.js +1 -1
  447. package/server/.next/server/chunks/_108e86rhye0o1._.js +1 -1
  448. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  449. package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
  450. package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
  451. package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
  452. package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
  453. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
  454. package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +9 -9
  455. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
  456. package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
  457. package/server/.next/server/chunks/_1kcmwgs544mo-._.js +1 -1
  458. package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +1 -1
  459. package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
  460. package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +3 -0
  461. package/server/.next/server/chunks/_1nuf-l7izvfl_._.js +1 -1
  462. package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
  463. package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +1 -1
  464. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
  465. package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
  466. package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
  467. package/server/.next/server/chunks/{src_0uxqs7150nhx2._.js → src_014zbodp4djeb._.js} +2 -2
  468. package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
  469. package/server/.next/server/chunks/{src_0n42os1q41rha._.js → src_04pgj--n_d4w5._.js} +2 -2
  470. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  471. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
  472. package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +3 -0
  473. package/server/.next/server/chunks/{src_01wdnb4skk1wz._.js → src_0kwnhwi77unm7._.js} +2 -2
  474. package/server/.next/server/chunks/src_0o4-snj7wkaav._.js +1 -1
  475. package/server/.next/server/chunks/{src_0d-zi077mzm6v._.js → src_0xqorb3-ef3ub._.js} +2 -2
  476. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
  477. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  478. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  479. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
  480. package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
  481. package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
  482. package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
  483. package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
  484. package/server/.next/server/chunks/{src_1-r51arho90p7._.js → src_1no_yh953mran._.js} +2 -2
  485. package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
  486. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
  487. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
  488. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
  489. package/server/.next/server/chunks/src_instrumentation-node_ts_1c--sr1k7_8k2._.js +3 -0
  490. package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +2 -2
  491. package/server/.next/server/chunks/src_lib_0cbs2jlrw1qbh._.js +3 -0
  492. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  493. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  494. package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +6 -0
  495. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
  496. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
  497. package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +1 -1
  498. package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
  499. package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
  500. package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +2 -2
  501. package/server/.next/server/chunks/src_lib_13g9xjx8ci00z._.js +3 -0
  502. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
  503. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
  504. package/server/.next/server/chunks/src_lib_1p21oczr6lh5a._.js +3 -0
  505. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
  506. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  507. package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +2 -2
  508. package/server/.next/server/chunks/src_lib_1yd94hta5y1hx._.js +3 -0
  509. package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
  510. package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
  511. package/server/.next/server/chunks/src_lib_brand-env_ts_1wcm1bjuismq_._.js +3 -0
  512. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
  513. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
  514. package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +1 -1
  515. package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +1 -1
  516. package/server/.next/server/chunks/src_lib_data_backup-db_ts_19rtzbv84xz_h._.js +2 -2
  517. package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  518. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  519. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  520. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +9 -9
  521. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
  522. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +9 -9
  523. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  524. package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  525. package/server/.next/server/chunks/src_lib_time_ts_1__07rt8x18k-._.js +3 -0
  526. package/server/.next/server/chunks/src_lib_time_ts_1a27wp71yhgti._.js +3 -0
  527. package/server/.next/server/chunks/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  528. package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
  529. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  530. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  531. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
  532. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
  533. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
  534. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
  535. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
  536. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
  537. package/server/.next/server/chunks/ssr/{[externals]__1u-jgivpw0_oh._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
  538. package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.js +1 -1
  539. package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
  540. package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
  541. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0aahjz4fnt4c_._.js → [root-of-the-server]__052_cprs0alpy._.js} +2 -2
  542. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11-ssp_43878t._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
  543. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ijk9z1ot_xi4._.js → [root-of-the-server]__08479d23kb1xv._.js} +2 -2
  544. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1csz822qejxk-._.js → [root-of-the-server]__08fqg76puqdfr._.js} +2 -2
  545. package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
  546. package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
  547. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0lks-6wz-rmk5._.js → [root-of-the-server]__0acmauri7z1sg._.js} +2 -2
  548. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
  549. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tkmutq84zkeh._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
  550. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h9gtpapca7i_._.js +3 -0
  551. package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
  552. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
  553. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
  554. package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
  555. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
  556. package/server/.next/server/chunks/ssr/[root-of-the-server]__0op0kqh43wd-a._.js +3 -0
  557. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
  558. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
  559. package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
  560. package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
  561. package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
  562. package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
  563. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1fdzriy6yyu5d._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
  564. package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
  565. package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
  566. package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
  567. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  568. package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
  569. package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
  570. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryb947ux5cq7._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
  571. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
  572. package/server/.next/server/chunks/ssr/[root-of-the-server]__1owrn7crnsybx._.js +3 -0
  573. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.js +1 -1
  574. package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
  575. package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
  576. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
  577. package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
  578. package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
  579. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
  580. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  581. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
  583. package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
  584. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  585. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
  587. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  588. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  589. package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
  590. package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
  592. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
  593. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
  594. package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
  596. package/server/.next/server/chunks/ssr/{_18t7ov64ycb-w._.js → _0ooh0hh-r_12s._.js} +2 -2
  597. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  598. package/server/.next/server/chunks/ssr/{_14bz_443syxhi._.js → _0pn3dn9s9es51._.js} +2 -2
  599. package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
  600. package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
  601. package/server/.next/server/chunks/ssr/{_06_f735j-1i20._.js → _0r04c1-snv6jw._.js} +2 -2
  602. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
  603. package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
  604. package/server/.next/server/chunks/ssr/{_0i6y4bkm-0cm3._.js → _0tnfblwwlyvq2._.js} +2 -2
  605. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
  606. package/server/.next/server/chunks/ssr/{_0o0-2ela2_qqd._.js → _0x1vi7mal3bqd._.js} +2 -2
  607. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  608. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  609. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
  610. package/server/.next/server/chunks/ssr/_11w5w9dpxcf1w._.js +3 -0
  611. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
  612. package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
  613. package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
  614. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
  615. package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
  616. package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
  617. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  618. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  619. package/server/.next/server/chunks/ssr/{_08y82qdosn7ga._.js → _1_ojvke28lw3y._.js} +2 -2
  620. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
  621. package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
  622. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
  623. package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
  624. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  625. package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
  626. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
  627. package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
  628. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  629. package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
  630. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
  631. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  632. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  633. package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
  634. package/server/.next/server/chunks/ssr/_1qt1czw3w8dww._.js +3 -0
  635. package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
  636. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
  637. package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
  638. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  639. package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
  640. package/server/.next/server/chunks/ssr/_20ln-4gu85-yt._.js +3 -0
  641. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
  642. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
  643. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
  644. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
  645. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
  646. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
  647. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
  648. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
  649. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
  650. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
  651. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
  652. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
  653. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
  654. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
  655. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
  656. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  657. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  658. package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
  659. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
  660. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
  661. package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
  662. package/server/.next/server/chunks/ssr/src_00ze92e3aolj8._.js +1 -1
  663. package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
  664. package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
  665. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  666. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  667. package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
  668. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  671. package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
  672. package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +3 -0
  673. package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
  674. package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
  675. package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
  676. package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
  679. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
  680. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  681. package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
  682. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  683. package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
  684. package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
  686. package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
  687. package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.js +1 -1
  688. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  689. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_11iuy79j_finh._.js +3 -0
  691. package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
  692. package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
  693. package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
  694. package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
  695. package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
  696. package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
  697. package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
  698. package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
  699. package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
  700. package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
  701. package/server/.next/server/chunks/ssr/{src_1eermasnm2cgy._.js → src_1ottjkdvhje3g._.js} +2 -2
  702. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  703. package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
  705. package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
  707. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
  710. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
  711. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  712. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
  713. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_connect-view_tsx_04abz05n7hdsd._.js +15 -15
  714. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
  716. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
  717. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.js +1 -1
  718. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  719. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
  724. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  731. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
  732. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
  733. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  734. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
  735. package/server/.next/server/chunks/ssr/{src_app_(console)_1ppp9j5e2rtqf._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
  736. package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
  737. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  738. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  739. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_088bs149wsgca._.js +1 -1
  740. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  741. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  742. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  743. package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
  744. package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
  745. package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
  746. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  747. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +3 -0
  748. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  749. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  750. package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
  751. package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
  752. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  753. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  754. package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
  755. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +1 -1
  756. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  757. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +3 -0
  758. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
  759. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  760. package/server/.next/server/chunks/ssr/src_app_(console)_neon_1ubea__gt06o0._.js +1 -1
  761. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  762. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  763. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  764. package/server/.next/server/chunks/ssr/src_app_(console)_sql_16-sh45tpob8n._.js +1 -1
  765. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  766. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  767. package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
  768. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  769. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  770. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  771. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
  772. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  773. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  774. package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
  775. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  776. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  777. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  778. package/server/.next/server/chunks/ssr/{src_app_signin_124xn9wb2fasu._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
  779. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +3 -0
  780. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  781. package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
  782. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +3 -3
  783. package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
  784. package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +1 -1
  785. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +1 -1
  786. package/server/.next/server/chunks/ssr/{src_lib_1l8ej-zoyyegd._.js → src_lib_1p21oczr6lh5a._.js} +2 -2
  787. package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +1 -1
  788. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  789. package/server/.next/server/chunks/ssr/src_lib_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
  790. package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
  791. package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  792. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  793. package/server/.next/server/chunks/ssr/{src_lib_demo_20hj85e_64pp1._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
  794. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  795. package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  796. package/server/.next/server/chunks/ssr/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  797. package/server/.next/server/chunks/ssr/src_lib_time_ts_1ualgyi3irm1z._.js +3 -0
  798. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  799. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  800. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  801. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  802. package/server/.next/server/chunks/ssr/src_private_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
  803. package/server/.next/server/chunks/ssr/src_private_ai_views-db_ts_1jbnr41mskha2._.js +1 -1
  804. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +3 -3
  805. package/server/.next/server/chunks/ssr/src_private_explorer_explorer_tsx_04m_tdottspjs._.js +1 -1
  806. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  807. package/server/.next/server/middleware-build-manifest.js +116 -105
  808. package/server/.next/server/next-font-manifest.js +1 -1
  809. package/server/.next/server/next-font-manifest.json +4 -0
  810. package/server/.next/server/pages/404.html +1 -1
  811. package/server/.next/server/pages/500.html +1 -1
  812. package/server/.next/server/preview-props.json +3 -3
  813. package/server/.next/server/server-reference-manifest.js +1 -1
  814. package/server/.next/server/server-reference-manifest.json +210 -164
  815. package/server/.next/static/chunks/08dak2kh1c6_7.js +1 -0
  816. package/server/.next/static/chunks/{2v14aqfx8wv9o.js → 0b9slopuz4e8a.js} +1 -1
  817. package/server/.next/static/chunks/{36ureqoyz5e06.js → 0dp-tuwkw7xf8.js} +2 -2
  818. package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
  819. package/server/.next/static/chunks/{2k9ytb8jmg14_.js → 0h9i512dn01kj.js} +1 -1
  820. package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
  821. package/server/.next/static/chunks/0icohez16w-ei.js +1 -0
  822. package/server/.next/static/chunks/{1ieazx9t3vl5p.js → 0j1wzqg4ukm70.js} +1 -1
  823. package/server/.next/static/chunks/{43_va15lk2zc1.js → 0j_5norjm-kef.js} +1 -1
  824. package/server/.next/static/chunks/{1-1hfgat2l_o9.js → 0kscmnb071fci.js} +1 -1
  825. package/server/.next/static/chunks/{0c7pskzfstcdh.js → 0ld78j1d4j201.js} +1 -1
  826. package/server/.next/static/chunks/0qlb-l1uyqku5.js +1 -0
  827. package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
  828. package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
  829. package/server/.next/static/chunks/{1ts_fd_r1kcrv.js → 1-oetq3mwlhds.js} +1 -1
  830. package/server/.next/static/chunks/{2fj4o7-stsvht.js → 11ywzwmfd_pt0.js} +1 -1
  831. package/server/.next/static/chunks/1j18pg23fzwv_.js +1 -0
  832. package/server/.next/static/chunks/1jaozq01v9r6e.js +1 -0
  833. package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
  834. package/server/.next/static/chunks/{0cannaigw8lhi.js → 1lsu_fxiyaeiz.js} +1 -1
  835. package/server/.next/static/chunks/1o3_amrh-sxr3.js +1 -0
  836. package/server/.next/static/chunks/{0wtboeftyamyk.js → 1w9o_jo_pejc5.js} +1 -1
  837. package/server/.next/static/chunks/1xy80z39ducub.js +1 -0
  838. package/server/.next/static/chunks/1yvbs41m8_4nc.js +7 -0
  839. package/server/.next/static/chunks/22alexnun_rdm.js +1 -0
  840. package/server/.next/static/chunks/{1o_q7_4ulcq9x.js → 27qwmt1w6-iri.js} +1 -1
  841. package/server/.next/static/chunks/29humkd2-_1oo.js +1 -0
  842. package/server/.next/static/chunks/29j96yfhxsf41.js +1 -0
  843. package/server/.next/static/chunks/29qnnsjsgsia6.js +1 -0
  844. package/server/.next/static/chunks/{2cjfogw85k3h-.js → 2ii8j9xuvv604.js} +1 -1
  845. package/server/.next/static/chunks/{30fczssqw6xys.js → 2m0ftj__ody0m.js} +1 -1
  846. package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
  847. package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
  848. package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
  849. package/server/.next/static/chunks/{0li9-xjc40g51.js → 2toeyr9b_nk0e.js} +1 -1
  850. package/server/.next/static/chunks/{2fo6iuxb0ec7f.js → 2w7qxt7ux-m1-.js} +1 -1
  851. package/server/.next/static/chunks/{1gmof0n5nswkk.js → 2zc1osymeruya.js} +1 -1
  852. package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
  853. package/server/.next/static/chunks/{026asl66kuq3f.js → 340ecjh1jzqjd.js} +15 -15
  854. package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
  855. package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
  856. package/server/.next/static/chunks/{3tqh7fwtd_k_l.js → 3gl2k6v182lli.js} +2 -2
  857. package/server/.next/static/chunks/{3f5sxz8awpdog.js → 3gurl_36kr7sg.js} +1 -1
  858. package/server/.next/static/chunks/{1gb8jvw-g7fr7.js → 3h-i_hcaaf7vs.js} +1 -1
  859. package/server/.next/static/chunks/{2jlv5ekbb0wu2.js → 3kznplgmzot89.js} +1 -1
  860. package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
  861. package/server/.next/static/chunks/{3dokgd9nungcr.js → 3n_n6yeienmn-.js} +1 -1
  862. package/server/.next/static/chunks/3nqciag05fif0.js +1 -0
  863. package/server/.next/static/chunks/{1zi37go-xtasg.js → 3o45i7xbzm0w-.js} +1 -1
  864. package/server/.next/static/chunks/{1c4fx4kipvnqz.js → 3oe302ug_esoe.js} +1 -1
  865. package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
  866. package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
  867. package/server/.next/static/chunks/{2rdmebof0d_c4.js → 3shbvizselyoq.js} +1 -1
  868. package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
  869. package/server/.next/static/chunks/{2z1xy8l4s3usi.js → 3yv-enyk37whg.js} +1 -1
  870. package/server/node_modules/@next/env/package.json +1 -1
  871. package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
  872. package/server/node_modules/next/dist/build/index.js +3 -3
  873. package/server/node_modules/next/dist/build/swc/index.js +1 -1
  874. package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
  875. package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
  876. package/server/node_modules/next/dist/build/webpack-config.js +3 -3
  877. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
  878. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
  879. package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
  880. package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  881. package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
  882. package/server/node_modules/next/dist/server/config.js +1 -1
  883. package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  884. package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  885. package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  886. package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
  887. package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
  888. package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
  889. package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
  890. package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
  891. package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
  892. package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  893. package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  894. package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
  895. package/server/node_modules/next/package.json +11 -11
  896. package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
  897. package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
  898. package/server/.next/server/chunks/[root-of-the-server]__08n3x1x850wqc._.js +0 -3
  899. package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
  900. package/server/.next/server/chunks/[root-of-the-server]__0grnl7ncqcjft._.js +0 -3
  901. package/server/.next/server/chunks/[root-of-the-server]__0hju4mctdmvz9._.js +0 -3
  902. package/server/.next/server/chunks/[root-of-the-server]__0i3n8l6ecdb4u._.js +0 -3
  903. package/server/.next/server/chunks/[root-of-the-server]__0m8w2-7618scn._.js +0 -3
  904. package/server/.next/server/chunks/[root-of-the-server]__0p_b0m2cstlrl._.js +0 -3
  905. package/server/.next/server/chunks/[root-of-the-server]__0uyagcs61c0t_._.js +0 -3
  906. package/server/.next/server/chunks/[root-of-the-server]__0v1kcolrxwmob._.js +0 -3
  907. package/server/.next/server/chunks/[root-of-the-server]__0vctt_0kj1gz4._.js +0 -3
  908. package/server/.next/server/chunks/[root-of-the-server]__0x0x6v75re5_e._.js +0 -3
  909. package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
  910. package/server/.next/server/chunks/[root-of-the-server]__0ymon9r-17xe_._.js +0 -3
  911. package/server/.next/server/chunks/[root-of-the-server]__0zxjft8y2r575._.js +0 -3
  912. package/server/.next/server/chunks/[root-of-the-server]__114vjjaqb2wyv._.js +0 -3
  913. package/server/.next/server/chunks/[root-of-the-server]__12uyws-qe6wxs._.js +0 -3
  914. package/server/.next/server/chunks/[root-of-the-server]__139pgc0wpc7kg._.js +0 -3
  915. package/server/.next/server/chunks/[root-of-the-server]__157yb_wl7w4ly._.js +0 -3
  916. package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
  917. package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
  918. package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
  919. package/server/.next/server/chunks/[root-of-the-server]__1_5q9zgl6p5_3._.js +0 -3
  920. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
  921. package/server/.next/server/chunks/[root-of-the-server]__1bwgi7nn5-hc3._.js +0 -3
  922. package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
  923. package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
  924. package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
  925. package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
  926. package/server/.next/server/chunks/[root-of-the-server]__1k8s02gwythps._.js +0 -3
  927. package/server/.next/server/chunks/[root-of-the-server]__1lf_lo1wqcbcg._.js +0 -3
  928. package/server/.next/server/chunks/[root-of-the-server]__1n32c8l_j8jt4._.js +0 -3
  929. package/server/.next/server/chunks/[root-of-the-server]__1niiijc82bgoj._.js +0 -3
  930. package/server/.next/server/chunks/[root-of-the-server]__1on_3p53yn6fs._.js +0 -3
  931. package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
  932. package/server/.next/server/chunks/[root-of-the-server]__1q90luznbe9-l._.js +0 -3
  933. package/server/.next/server/chunks/[root-of-the-server]__1r15vmrh2r06l._.js +0 -3
  934. package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
  935. package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
  936. package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
  937. package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
  938. package/server/.next/server/chunks/[root-of-the-server]__1woerg3tb4ls3._.js +0 -3
  939. package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
  940. package/server/.next/server/chunks/[root-of-the-server]__1zaomh_4901_f._.js +0 -3
  941. package/server/.next/server/chunks/[root-of-the-server]__20lwsd6a4wnpe._.js +0 -3
  942. package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
  943. package/server/.next/server/chunks/_03bua_9n4apok._.js +0 -3
  944. package/server/.next/server/chunks/_0594j_bb0l80e._.js +0 -3
  945. package/server/.next/server/chunks/_076dwl7r_5vcl._.js +0 -34
  946. package/server/.next/server/chunks/_08tppw9ujlpke._.js +0 -34
  947. package/server/.next/server/chunks/_08y82qdosn7ga._.js +0 -3
  948. package/server/.next/server/chunks/_0m49djgc1t4wg._.js +0 -3
  949. package/server/.next/server/chunks/_0n5m3o7at0adm._.js +0 -34
  950. package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
  951. package/server/.next/server/chunks/_0r4am1mgz4dg_._.js +0 -3
  952. package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
  953. package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
  954. package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
  955. package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
  956. package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
  957. package/server/.next/server/chunks/_11p2ejgai2a78._.js +0 -3
  958. package/server/.next/server/chunks/_1bcsmpznxhk9h._.js +0 -3
  959. package/server/.next/server/chunks/_1he3nioua8ee5._.js +0 -3
  960. package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
  961. package/server/.next/server/chunks/_1lpcbqj4uzrsh._.js +0 -3
  962. package/server/.next/server/chunks/_1rw6_0nf-3sxs._.js +0 -34
  963. package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
  964. package/server/.next/server/chunks/src_0l-no1yc1_izn._.js +0 -3
  965. package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
  966. package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
  967. package/server/.next/server/chunks/src_156ewlek-4a4z._.js +0 -3
  968. package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
  969. package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
  970. package/server/.next/server/chunks/src_lib_0-ylqsh7whlj2._.js +0 -3
  971. package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
  972. package/server/.next/server/chunks/src_lib_0f0p6-l5vvduu._.js +0 -3
  973. package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
  974. package/server/.next/server/chunks/src_lib_15a3m-j_urkkp._.js +0 -3
  975. package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
  976. package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
  977. package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
  978. package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
  979. package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
  980. package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
  981. package/server/.next/server/chunks/ssr/[root-of-the-server]__06s-dfcfuperv._.js +0 -3
  982. package/server/.next/server/chunks/ssr/[root-of-the-server]__07or1m2vwon1m._.js +0 -3
  983. package/server/.next/server/chunks/ssr/[root-of-the-server]__0d9lwldljqtvx._.js +0 -3
  984. package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
  985. package/server/.next/server/chunks/ssr/[root-of-the-server]__0uklr553mp86_._.js +0 -3
  986. package/server/.next/server/chunks/ssr/[root-of-the-server]__1cykncw1_xcno._.js +0 -3
  987. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ih2a_fbqu7ko._.js +0 -3
  988. package/server/.next/server/chunks/ssr/[root-of-the-server]__1j7_a902k_8es._.js +0 -3
  989. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ofzjllv-b0o0._.js +0 -3
  990. package/server/.next/server/chunks/ssr/_040ixxsgfs0vi._.js +0 -3
  991. package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
  992. package/server/.next/server/chunks/ssr/_0ux6eo_w1x155._.js +0 -3
  993. package/server/.next/server/chunks/ssr/_12o9qqjoik4q4._.js +0 -3
  994. package/server/.next/server/chunks/ssr/_1k2q3yt1h6cfs._.js +0 -3
  995. package/server/.next/server/chunks/ssr/_1zhtvg8t3jtxe._.js +0 -3
  996. package/server/.next/server/chunks/ssr/_200p6me5_kp2j._.js +0 -3
  997. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
  998. package/server/.next/server/chunks/ssr/src_00s82lfm2ga7-._.js +0 -3
  999. package/server/.next/server/chunks/ssr/src_13hsrg6rdvh-d._.js +0 -3
  1000. package/server/.next/server/chunks/ssr/src_1xgsz_do2xpr2._.js +0 -3
  1001. package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
  1002. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
  1003. package/server/.next/server/chunks/ssr/src_components_shell_shell_tsx_1cpq-hbch_dvj._.js +0 -3
  1004. package/server/.next/server/chunks/ssr/src_lib_0y40wht-o-oc2._.js +0 -3
  1005. package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
  1006. package/server/.next/static/chunks/03qto0oyf2r1n.js +0 -1
  1007. package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
  1008. package/server/.next/static/chunks/0n_l4a3za5-q8.js +0 -1
  1009. package/server/.next/static/chunks/0t96fqp1vsmrp.js +0 -1
  1010. package/server/.next/static/chunks/0wlc502815llk.js +0 -1
  1011. package/server/.next/static/chunks/158-i6phe17yl.js +0 -1
  1012. package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
  1013. package/server/.next/static/chunks/1mlvn70-zqjvi.js +0 -1
  1014. package/server/.next/static/chunks/1sm8wxvlpowwg.js +0 -1
  1015. package/server/.next/static/chunks/1teh52nh5dujq.js +0 -1
  1016. package/server/.next/static/chunks/1v4hl1z0y1npd.js +0 -1
  1017. package/server/.next/static/chunks/1vh2psoqw3ddc.js +0 -1
  1018. package/server/.next/static/chunks/1xau8pf40_upi.js +0 -7
  1019. package/server/.next/static/chunks/1z2rcngn3-7i5.js +0 -1
  1020. package/server/.next/static/chunks/210qrsqvmgaet.js +0 -1
  1021. package/server/.next/static/chunks/29p15vj15jcsb.js +0 -1
  1022. package/server/.next/static/chunks/2kmerzslng988.js +0 -1
  1023. package/server/.next/static/chunks/2llric-1orr3y.js +0 -1
  1024. package/server/.next/static/chunks/2wb9a1xth0yhf.js +0 -1
  1025. package/server/.next/static/chunks/34gs6c2dsgtqy.js +0 -1
  1026. package/server/.next/static/chunks/3ag6t3ta58rih.js +0 -1
  1027. package/server/.next/static/chunks/3gkta99h3_5i2.js +0 -1
  1028. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
  1029. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
  1030. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[[868358,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AppActions() from the server but AppActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/app-actions.tsx","AppActions"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call PromoteStaged() from the server but PromoteStaged is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/app-actions.tsx","PromoteStaged");a.s(["AppActions",0,c,"PromoteStaged",0,d])},537728,a=>{var b=a.i(868358);a.n(b)},199364,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LinkDialog() from the server but LinkDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/link-dialog.tsx","LinkDialog");a.s(["LinkDialog",0,b])},466627,a=>{var b=a.i(199364);a.n(b)},252650,a=>{var b=a.i(907997),c=a.i(906974),d=a.i(395936);a.i(570396);var e=a.i(673727),f=a.i(252302),g=a.i(649247),h=a.i(803681),i=a.i(685865),j=a.i(701702),k=a.i(513553),l=a.i(154756),m=a.i(293167),n=a.i(954296),o=a.i(686251),p=a.i(605826),q=a.i(715513),r=a.i(414280),s=a.i(791444),t=a.i(473083),u=a.i(109307),v=a.i(534908),w=a.i(875016),x=a.i(840784),y=a.i(532620),z=a.i(858806),A=a.i(513701),B=a.i(930270),C=a.i(944571),D=a.i(30184),E=a.i(565255),F=a.i(27522),G=a.i(683439),H=a.i(960186),I=a.i(558418),J=a.i(245710),K=a.i(240387),L=a.i(139138),M=a.i(657582),N=a.i(469762),O=a.i(968715),P=a.i(556987),Q=a.i(631107),R=a.i(505237);let S={github:"https://github.com/",gitlab:"https://gitlab.com/",bitbucket:"https://bitbucket.org/"},T=encodeURIComponent;function U(a){return"supabase_project"===a.kind?{label:`Supabase \xb7 ${a.name}`,href:`https://supabase.com/dashboard/project/${T(a.externalId)}`}:"neon_project"===a.kind?{label:`Neon \xb7 ${a.name}`,href:`https://console.neon.tech/app/projects/${T(a.externalId)}`}:"firestore"===a.kind?{label:`Firebase \xb7 ${a.name}`,href:`https://console.firebase.google.com/project/${T(a.externalId)}/overview`}:null}var V=a.i(679594),W=a.i(863858),X=a.i(182357),Y=a.i(228173),Z=a.i(768183),$=a.i(393260),_=a.i(537728),aa=a.i(718064),ab=a.i(466627),ac=a.i(881868),ad=a.i(991813),ae=a.i(143821);let af="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",ag="font-mono text-[12.5px]";async function ah({params:a}){var m,r,F,I,Q,X;let ac,ad,al,am,an,{id:ao}=await a,ap=await (0,u.I)();(0,G.f)(ao)||(0,e.notFound)();let aq=new Date,ar=(0,R.z)(ap.role),as=(0,w.T)(aq,ao).catch(()=>null),[at,au,av,aw,ax,ay,az,aA,aB,aC]=await Promise.all([(0,x.Z)(ao,aq),(0,A.P)(ao,aq),(0,z.K)({appId:ao}),(0,A.M)(ao,new Date(aq.getTime()-864e5*O.F)),(0,D.P)(),(0,y.p)(),ar?(0,y.S)():Promise.resolve([]),(0,y.e)(),(0,C.c)(ao).catch(()=>null),(0,B.j)(ao).catch(()=>null)]);at||(0,e.notFound)();let aD=await as,aE=aD&&aD.map(a=>(0,P.d)(a,aA)),aF=(0,W.f)(),aG="viewer"!==ap.role&&aF?(0,V.M)(at.teamSlug,at.name):null,aH=(0,R.k)(at),aI=(0,K.f)({...at,database:at.database?{id:at.database.id,kind:at.database.kind,name:(0,P.X)(aA,at.database.id)}:null},aq),{WhyAiSlot:aJ,AiNotesSlot:aK,DevNotesSlot:aL}=v.extensions,aM="owner"===ap.role&&aJ?(0,b.jsx)(aJ,{appId:at.id}):null,aN="owner"===ap.role&&aK?(0,b.jsx)(aK,{appId:at.id}):null,aO=at.monitors.length>0&&at.monitors.every(a=>a.ownerPaused),aP=aF?`https://${at.domain}`:null,aQ=(0,M.h)(av),aR=a=>{let b=a?av.find(b=>b.externalId===a):void 0;return b?{id:b.externalId,sha:(0,N._)(b.commitSha).replace("—","")}:null},aS=aR(aQ.stagedId),aT=ay.find(a=>a.appId===at.id&&a.zoneName),aU=aP?(m={teamSlug:at.teamSlug,projectName:at.name,repo:at.repo,repoType:at.repoType,siteUrl:aP,dbs:at.database?[{...at.database,name:(0,P.X)(aA,at.database.id)}]:[],zone:aT?{accountId:aT.cfAccountId,name:aT.zoneName}:null},ad=[],m.teamSlug&&ad.push({label:"Vercel project",href:`https://vercel.com/${T(m.teamSlug)}/${T(m.projectName)}`}),(al=m.repoType?S[m.repoType]:void 0)&&m.repo&&ad.push({label:"Git repository",href:`${al}${m.repo.split("/").map(T).join("/")}`}),ad.push({label:"Live site",href:m.siteUrl}),(am=[...m.dbs.map(U).filter(a=>null!==a),...m.zone?.accountId?[{label:`Cloudflare \xb7 ${m.zone.name}`,href:`https://dash.cloudflare.com/${T(m.zone.accountId)}/${T(m.zone.name)}`}]:[]]).length?[...ad,"---",...am]:ad):[];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.AutoRefresh,{at:aq.getTime()}),(0,b.jsx)(h.L,{crumbs:[{label:"Applications",href:"/apps"},{label:at.name}],badge:(0,b.jsx)(l.g,{kind:"app"}),title:at.name,actions:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ae.WhyStatus,{state:aH.state,label:aH.label,problems:aI,nowMs:aq.getTime(),aiSlot:aM}),aU.length>0&&(0,b.jsx)(q.RowMenu,{button:!0,label:"Open in",items:aU.map(a=>"---"===a?a:{label:a.label,href:a.href})}),ar&&(0,b.jsx)(_.AppActions,{app:{id:at.id,name:at.name,siteUrl:aP,paused:aO,monitorCount:at.monitors.length},owner:"owner"===ap.role,current:aR(aQ.currentId),previous:aR(aQ.previousId),rolledBack:null!==aS})]})}),aS&&(0,b.jsx)("div",{className:"mb-4",children:(0,b.jsx)(h.M,{tone:"warning",title:"Rolled back: new pushes don't go live until you promote one.",action:ar?(0,b.jsx)(_.PromoteStaged,{app:{id:at.id,name:at.name},staged:aS}):void 0})}),(0,b.jsxs)(t.Tabs,{defaultValue:"details",className:"gap-4",children:[(0,b.jsxs)(t.TabsList,{variant:"line",children:[(0,b.jsx)(t.TabsTrigger,{value:"details",children:"Details"}),(0,b.jsx)(t.TabsTrigger,{value:"metrics",children:"Metrics"}),(0,b.jsx)(t.TabsTrigger,{value:"deployments",children:"Deployments"}),"viewer"!==ap.role&&(0,b.jsx)(t.TabsTrigger,{value:"logs",children:"Logs"})]}),(0,b.jsxs)(t.TabsContent,{value:"details",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-2",children:[(0,b.jsx)(h.N,{title:"Details",meta:(0,b.jsx)(n.Src,{kind:"api"}),children:(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Name"}),(0,b.jsx)("dd",{children:(0,b.jsx)(j.Masked,{kind:"app",real:at.name})}),(0,b.jsx)("dt",{children:"Domain"}),(0,b.jsx)("dd",{children:aP?(0,b.jsxs)("a",{href:aP,target:"_blank",rel:"noreferrer",children:[(0,b.jsx)(j.MaskedText,{text:at.domain,inLink:!0})," ",(0,b.jsx)(c.f,{size:14,"aria-hidden":!0,className:"inline align-[-2px]"})]}):(0,b.jsx)(j.MaskedText,{text:at.domain})}),(0,b.jsx)("dt",{children:"Framework"}),(0,b.jsx)("dd",{children:at.framework??"—"}),(0,b.jsx)("dt",{children:"Function region"}),(0,b.jsx)("dd",{className:(0,L.f)(ag,!at.functionRegions.length&&"text-ink-faint"),children:at.functionRegions.join(", ")||"—"}),(0,b.jsx)("dt",{children:"Production branch"}),(0,b.jsx)("dd",{className:ag,children:at.productionBranch??"—"}),(0,b.jsx)("dt",{children:"Repository"}),(0,b.jsx)("dd",{className:(0,L.f)(ag,!at.repo&&"text-ink-faint"),children:at.repo?(0,b.jsx)(j.Masked,{kind:"repo",real:at.repo}):"—"}),(0,b.jsx)("dt",{children:"Created"}),(0,b.jsx)("dd",{children:at.createdAt?(0,N.H)(at.createdAt):"—"})]})}),(0,b.jsx)(h.N,{title:"Status",children:(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Status"}),(0,b.jsx)("dd",{children:(0,b.jsx)(ae.WhyStatus,{state:aH.state,label:aH.label,problems:aI,nowMs:aq.getTime(),aiSlot:aM})}),(0,b.jsx)("dt",{children:"Database"}),(0,b.jsxs)("dd",{children:[at.database?(0,b.jsx)(Y.y,{db:at.database}):(0,b.jsx)("span",{className:"text-ink-faint",children:"None"}),ar&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)(ab.LinkDialog,{app:{id:at.id,name:at.name},options:az,current:at.database?.id??null,suggested:(0,H.U)(at.name,az)})]})]}),(0,b.jsx)("dt",{children:"Uptime 30 days"}),(0,b.jsx)("dd",{className:ag,children:(0,N.C)(at.uptime30)}),(0,b.jsx)("dt",{children:"Response 24 h"}),(0,b.jsxs)("dd",{className:ag,children:["p50 ",(0,N.p)(at.response.p50)," · p95 ",(0,N.p)(at.response.p95)]}),(0,b.jsx)("dt",{children:"Last deploy"}),(0,b.jsx)("dd",{children:at.lastDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:ag,children:(0,N._)(at.lastDeploy.commitSha)})," · ",(0,N.$)(at.lastDeploy,aq)]}):"—"}),(0,b.jsx)("dt",{children:"Monitors"}),(0,b.jsx)("dd",{children:0===at.monitors.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"None"}):at.monitors.map(a=>{let c=(0,R.M)({...a,appGone:at.gone}),e=("err"===c.state||"warn"===c.state)&&!a.maintUntil,f=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.Z,{state:c.state}),(0,b.jsxs)("span",{className:"sr-only",children:[c.label,": "]}),(0,b.jsx)("span",{className:ag,children:a.path})]});return e?(0,b.jsx)(d.default,{href:"/uptime",title:`${c.label}. See why on Uptime`,className:"mr-2.5 inline-flex items-center gap-1.5",children:f},a.id):(0,b.jsx)("span",{title:c.label,className:"mr-2.5 inline-flex items-center gap-1.5",children:f},a.id)})})]})})]}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aj,{app:{id:at.id,name:at.name},security:at.security,canAct:ar&&!at.gone,now:aq,eol:ax})}),aC&&aB&&(aB.connected||aB.link)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aa.f,{app:{id:at.id,name:at.name},view:aC,canAct:ar&&!at.gone,owner:"owner"===ap.role,now:aq})}),aB&&(aB.connected||aB.link)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(ak,{app:{id:at.id,name:at.name},view:aB,suggestion:aB.link?null:(Q=at.name,X=aB,(ac=(0,E.J)(Q,X.repos))?{...ac,fullName:X.repos.find(a=>a.id===ac.repoId).fullName}:null),owner:"owner"===ap.role,canAct:ar,now:aq})}),"owner"===ap.role&&aL&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aL,{appId:at.id})}),aE&&(aE.length>0||aN)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(k.f,{items:aE,canDismiss:ar,showSubject:!1,hideWhenEmpty:!0,notes:aN})})]}),(0,b.jsx)(t.TabsContent,{value:"metrics",keepMounted:!0,children:(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-3",children:[(0,b.jsx)(h.N,{title:"Response time",meta:(0,b.jsxs)(b.Fragment,{children:["24 h · ms",(0,b.jsx)(n.Src,{kind:"own"})]}),children:(0,b.jsx)(f.t,{values:au.response,second:au.median,ticks:(r=au.first,F=au.sizeMs,an=r+(I=au.response.length)*F,aw.filter(a=>a.at.getTime()>=r&&a.at.getTime()<an).map(a=>{let b;return{x:Math.round(Math.min((a.at.getTime()-r)/F,I-1)/Math.max(1,I-1)*4e3)/10,title:`${"error"===(b=a.state)?"Deploy failed":"building"===b?"Deploying":"Deployed"} ${(0,N._)(a.sha)} \xb7 ${(0,J.U)(a.at)}`}})),width:400,height:120,fluid:!0,tone:"err"===aH.state?"err":"accent",label:"Response time p95 and p50 in 30-minute steps, last 24 hours, with production deploys"})}),(0,b.jsx)(h.N,{title:"Page views",meta:(0,b.jsxs)(b.Fragment,{children:["24 h",(0,b.jsx)(n.Src,{kind:"api"})]}),children:(0,b.jsx)(ai,{pv:at.pageViews,note:at.pageViewsNote,now:aq})}),(0,b.jsx)(h.N,{title:"5xx responses",meta:(0,b.jsxs)(b.Fragment,{children:["24 h",(0,b.jsx)(n.Src,{kind:"own"})]}),children:(0,b.jsx)(f.t,{values:au.errors,width:400,height:120,fluid:!0,tone:"err",label:"5xx responses in 30-minute steps, last 24 hours"})})]}),(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:"Vercel's request and error metrics need a paid plan, so response time and 5xx come from our own checks and stored logs. Page views come from Vercel Web Analytics (free on Hobby up to 50k events a month), read every 30 minutes."}),(0,b.jsx)(h.N,{title:"Uptime",flush:!0,meta:(0,b.jsx)("span",{className:"text-ink-faint",children:"A dark notch marks a day with a production deploy"}),children:0===at.monitors.length?(0,b.jsx)(g.x,{}):(0,b.jsx)(p.PlainTable,{head:["Monitor","Last 90 days","Uptime"],rows:at.monitors.map(a=>({key:a.id,state:a.state,text:a.path,row:(0,b.jsxs)("tr",{className:s.C,children:[(0,b.jsx)("td",{className:(0,L.f)(s.z,ag),children:a.path}),(0,b.jsx)("td",{className:s.z,children:(0,b.jsx)(f.n,{bars:(0,O.h)(at.days.get(a.id),aq,O.F,function(a){let b=new Map;for(let c of[...a].sort((a,b)=>a.at.getTime()-b.at.getTime())){let a=(0,O.m)(c.at),d=`${(0,N._)(c.sha)}${"error"===c.state?" (failed)":""}`;b.set(a,[...b.get(a)??[],d])}return new Map([...b].map(([a,b])=>[a,b.join(", ")]))}(aw))})}),(0,b.jsx)("td",{className:(0,L.f)(s.z,ag),children:(0,N.C)((0,O.Y)((0,O.w)(at.days.get(a.id),aq,O.I)))})]})}))})})]})}),(0,b.jsx)(t.TabsContent,{value:"deployments",keepMounted:!0,children:(0,b.jsx)(h.N,{flush:!0,children:0===av.length?(0,b.jsx)(g.y,{}):(0,b.jsx)(p.PlainTable,{head:Z.G,rows:(0,Z.C)(av,{canAct:ar,now:aq})})})}),"viewer"!==ap.role&&(0,b.jsx)(t.TabsContent,{value:"logs",children:(0,b.jsx)(h.N,{flush:!0,children:(0,b.jsx)($.LogViewer,{mode:"live",apps:[],appId:at.id,initial:[],vercelUrl:aG})})})]})]})}function ai({pv:a,note:c,now:d}){return a?a.enabled?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"mb-2 flex flex-wrap items-baseline gap-x-2 gap-y-0.5",children:[(0,b.jsx)("span",{className:"text-[22px] font-semibold tracking-[-0.02em]",children:a.total.toLocaleString("en-US")}),(0,b.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[1===a.total?"view":"views"," · ",null===a.visitors?"—":a.visitors.toLocaleString("en-US")," ",1===a.visitors?"visitor":"visitors"]}),(0,Q.Z)(a.readAt,d)&&(0,b.jsxs)("span",{className:"ml-auto text-[12px] text-ink-faint",children:["Read ",(0,J.$)(a.readAt,d)]})]}),(0,b.jsx)(f.k,{hours:a.hours,height:80,label:`Page views per hour, last 24 hours: ${a.total} views from ${a.visitors??"an unknown number of"} visitors`})]}):(0,b.jsxs)("div",{className:"flex min-h-[120px] flex-col gap-1.5 text-[12.5px] text-ink-soft",children:[(0,b.jsx)("p",{className:"text-[13px] text-ink",children:"Web Analytics is off for this project."}),(0,b.jsxs)("ol",{className:"list-decimal space-y-1 pl-4",children:[(0,b.jsx)("li",{children:"Enable Web Analytics in the Vercel project (Analytics tab)."}),(0,b.jsxs)("li",{children:["Add ",(0,b.jsx)("code",{className:"font-mono text-[12px] text-ink",children:"<Analytics />"})," from ",(0,b.jsx)("code",{className:"font-mono text-[12px] text-ink",children:"@vercel/analytics"})," to the app's root layout and redeploy."]})]}),(0,b.jsx)("p",{className:"mt-auto text-ink-faint",children:"Free on Hobby up to 50k events a month."})]}):(0,b.jsx)("p",{className:"grid h-[120px] place-items-center text-center text-[12.5px] text-ink-soft",children:c??"Reading page views…"})}function aj({app:a,security:c,canAct:d,now:e,eol:f}){let g=(0,X.g)(c);return(0,b.jsxs)(h.N,{title:"Security",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Src,{kind:"own"}),d&&(0,b.jsx)(ad.SecurityCheckButton,{appId:a.id,appName:a.name})]}),flush:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Next.js"}),(0,b.jsx)("dd",{children:c?.version?(0,b.jsx)("span",{className:ag,children:c.version}):c?.status==="unknown"?(0,b.jsxs)(b.Fragment,{children:["— ",(0,b.jsx)("span",{className:"text-ink-faint",children:c.reason})]}):"—"}),(0,b.jsxs)("dt",{children:["End of life ",(0,b.jsx)(n.Src,{kind:"api",children:"endoflife.date"})]}),(0,b.jsx)("dd",{children:(0,b.jsx)(al,{version:c?.version??null,eol:f,now:e})}),(0,b.jsx)("dt",{children:"Checked"}),(0,b.jsx)("dd",{children:c?(0,J.$)(c.checkedAt,e):"—"})]}),g&&(0,b.jsxs)("p",{className:(0,L.f)("mt-3 flex items-start gap-1.5","ok"!==g.state&&"text-ink-soft"),children:[("ok"===g.state||"warn"===g.state)&&(0,b.jsx)(o.Z,{state:g.state}),(0,b.jsx)("span",{children:g.text})]})]}),(0,X.X)(c)&&(0,b.jsx)(p.PlainTable,{head:["ID","Severity","Summary","Fix"],rows:c.findings.map(a=>({key:a.id,state:a.severity,text:[a.id,a.cve,a.summary].join(" "),row:(0,b.jsxs)("tr",{className:s.C,children:[(0,b.jsxs)("td",{className:s.z,children:[(0,b.jsx)("a",{href:`https://osv.dev/vulnerability/${encodeURIComponent(a.id)}`,target:"_blank",rel:"noopener",className:ag,children:a.id}),a.cve&&(0,b.jsx)("div",{className:(0,L.f)(ag,"mt-0.5 text-xs text-ink-faint"),children:a.cve})]}),(0,b.jsx)("td",{className:s.z,children:(0,b.jsx)(m.s,{severity:a.severity})}),(0,b.jsx)("td",{className:(0,L.f)(s.z,s.M),children:a.summary||(0,b.jsx)("span",{className:"text-ink-faint",children:"No summary"})}),(0,b.jsx)("td",{className:(0,L.f)(s.z,ag),children:a.fixed?`Fixed in ${a.fixed}`:(0,b.jsx)("span",{className:"text-ink-faint",children:"No fix yet"})})]})}))})]})}function ak({app:a,view:d,suggestion:e,owner:f,canAct:g,now:i}){let k=d.link?.repo??null,l=k?(0,F.N)(k.actions,k.defaultBranch):null,m=!k?.actions||"none"in k.actions?null:k.actions;return(0,b.jsx)(h.N,{title:"Repository",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Src,{kind:"api",children:"GitHub"}),k&&g&&d.connected&&(0,b.jsx)(ac.RefreshActionsButton,{appId:a.id})]}),children:k?(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Repository"}),(0,b.jsxs)("dd",{children:[(0,b.jsx)(r.f,{href:k.htmlUrl??`https://github.com/${k.fullName}`,target:"_blank",rel:"noopener",className:ag,children:(0,b.jsx)(j.Masked,{kind:"repo",real:k.fullName})}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" · ",k.private?"private":"public",k.archived?" · archived":"",k.goneAt?" · no longer shared with the token":""]}),f&&d.connected&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)(ac.RepoDialog,{app:a,options:d.options,current:k.id,suggested:null,label:"Change"})]})]}),(0,b.jsx)("dt",{children:"Linked"}),(0,b.jsx)("dd",{className:"text-ink-soft",children:(0,F.z)(d.link.source)}),(0,b.jsx)("dt",{children:"Default branch"}),(0,b.jsx)("dd",{className:ag,children:k.defaultBranch??"—"}),(0,b.jsx)("dt",{children:"Last push"}),(0,b.jsx)("dd",{children:k.pushedAt?(0,J.$)(k.pushedAt,i):"—"}),(0,b.jsx)("dt",{children:"GitHub Actions"}),(0,b.jsxs)("dd",{children:[(0,b.jsx)(o.F,{state:l.state,children:l.label}),m&&(0,b.jsxs)("span",{className:"text-ink-soft",children:[" · ",m.name??"workflow",m.runNumber?` #${m.runNumber}`:"",m.sha?(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)("span",{className:ag,children:(0,N._)(m.sha)})]}):null,m.at?` \xb7 ${(0,J.$)(new Date(m.at),i)}`:""]}),m?.url&&(0,W.f)()&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsxs)("a",{href:m.url,target:"_blank",rel:"noopener",children:["Open run ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0,className:"inline align-[-2px]"})]})]}),k.actionsCheckedAt&&(0,b.jsxs)("span",{className:"block text-[12px] text-ink-faint",children:["Read ",(0,J.$)(k.actionsCheckedAt,i)]})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-ink-soft",children:[e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{children:["Suggested: ",(0,b.jsx)("span",{className:ag,children:(0,b.jsx)(j.Masked,{kind:"repo",real:e.fullName})})," (",(0,F._)(e.why),")."]}),f&&(0,b.jsx)(ac.ConfirmRepo,{appId:a.id,repoId:e.repoId,fullName:e.fullName})]}):(0,b.jsxs)("span",{children:["No repository linked. ",d.options.length?"None matches the app's name.":"Sync GitHub on Connections to list your repositories."]}),f&&d.options.length>0&&(0,b.jsx)(ac.RepoDialog,{app:a,options:d.options,current:null,suggested:e?.repoId??null,label:"Choose…"})]})})}function al({version:a,eol:c,now:d}){let e=(0,I.e)(a,c,d);return"unknown"===e.state?(0,b.jsx)("span",{className:"text-ink-faint",children:e.text}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.F,{state:e.state,children:e.text}),e.note&&(0,b.jsxs)("span",{className:"text-ink-faint",children:[" · ",e.note]})]})}a.s(["default",0,ah,"maxDuration",0,60],252650)},228056,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ConfirmRepo() from the server but ConfirmRepo is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/repo-dialog.tsx","ConfirmRepo"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RefreshActionsButton() from the server but RefreshActionsButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/repo-dialog.tsx","RefreshActionsButton"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call RepoDialog() from the server but RepoDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/repo-dialog.tsx","RepoDialog");a.s(["ConfirmRepo",0,c,"RefreshActionsButton",0,d,"RepoDialog",0,e])},881868,a=>{var b=a.i(228056);a.n(b)},300400,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call SecurityCheckButton() from the server but SecurityCheckButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/security-check-button.tsx","SecurityCheckButton");a.s(["SecurityCheckButton",0,b])},991813,a=>{var b=a.i(300400);a.n(b)},340514,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call WhyStatus() from the server but WhyStatus is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/why-status.tsx","WhyStatus");a.s(["WhyStatus",0,b])},143821,a=>{var b=a.i(340514);a.n(b)}],102158,function(a){a.n(a.i(252650))}];
1
+ module.exports=[[868358,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AppActions() from the server but AppActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/app-actions.tsx","AppActions"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call PromoteStaged() from the server but PromoteStaged is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/app-actions.tsx","PromoteStaged");a.s(["AppActions",0,c,"PromoteStaged",0,d])},537728,a=>{var b=a.i(868358);a.n(b)},199364,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call LinkDialog() from the server but LinkDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/link-dialog.tsx","LinkDialog");a.s(["LinkDialog",0,b])},466627,a=>{var b=a.i(199364);a.n(b)},252650,a=>{var b=a.i(907997),c=a.i(906974),d=a.i(395936);a.i(570396);var e=a.i(673727),f=a.i(252302),g=a.i(649247),h=a.i(803681),i=a.i(685865),j=a.i(701702),k=a.i(513553),l=a.i(154756),m=a.i(293167),n=a.i(954296),o=a.i(686251),p=a.i(605826),q=a.i(715513),r=a.i(414280),s=a.i(791444),t=a.i(473083),u=a.i(109307),v=a.i(534908),w=a.i(875016),x=a.i(840784),y=a.i(532620),z=a.i(858806),A=a.i(513701),B=a.i(930270),C=a.i(944571),D=a.i(30184),E=a.i(565255),F=a.i(27522),G=a.i(683439),H=a.i(960186),I=a.i(558418),J=a.i(245710),K=a.i(240387),L=a.i(139138),M=a.i(657582),N=a.i(469762),O=a.i(556987),P=a.i(631107),Q=a.i(505237);let R={github:"https://github.com/",gitlab:"https://gitlab.com/",bitbucket:"https://bitbucket.org/"},S=encodeURIComponent;function T(a){return"supabase_project"===a.kind?{label:`Supabase \xb7 ${a.name}`,href:`https://supabase.com/dashboard/project/${S(a.externalId)}`}:"neon_project"===a.kind?{label:`Neon \xb7 ${a.name}`,href:`https://console.neon.tech/app/projects/${S(a.externalId)}`}:"firestore"===a.kind?{label:`Firebase \xb7 ${a.name}`,href:`https://console.firebase.google.com/project/${S(a.externalId)}/overview`}:null}var U=a.i(679594),V=a.i(863858),W=a.i(182357),X=a.i(968715),Y=a.i(228173),Z=a.i(768183),$=a.i(393260),_=a.i(537728),aa=a.i(718064),ab=a.i(466627),ac=a.i(881868),ad=a.i(991813),ae=a.i(143821);let af="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",ag="font-mono text-[12.5px]";async function ah({params:a}){var m,r,F,I,P,W;let ac,ad,al,am,an,{id:ao}=await a,ap=await (0,u.I)();(0,G.f)(ao)||(0,e.notFound)();let aq=new Date,ar=(0,Q.z)(ap.role),as=(0,w.T)(aq,ao).catch(()=>null),[at,au,av,aw,ax,ay,az,aA,aB,aC]=await Promise.all([(0,x.Z)(ao,aq),(0,A.P)(ao,aq),(0,z.K)({appId:ao}),(0,A.M)(ao,new Date(aq.getTime()-864e5*X.F)),(0,D.P)(),(0,y.p)(),ar?(0,y.S)():Promise.resolve([]),(0,y.e)(),(0,C.c)(ao).catch(()=>null),(0,B.j)(ao).catch(()=>null)]);at||(0,e.notFound)();let aD=await as,aE=aD&&aD.map(a=>(0,O.d)(a,aA)),aF=(0,V.f)(),aG="viewer"!==ap.role&&aF?(0,U.M)(at.teamSlug,at.name):null,aH=(0,Q.k)(at),aI=(0,K.f)({...at,database:at.database?{id:at.database.id,kind:at.database.kind,name:(0,O.X)(aA,at.database.id)}:null},aq),{WhyAiSlot:aJ,AiNotesSlot:aK,DevNotesSlot:aL}=v.extensions,aM="owner"===ap.role&&aJ?(0,b.jsx)(aJ,{appId:at.id}):null,aN="owner"===ap.role&&aK?(0,b.jsx)(aK,{appId:at.id}):null,aO=at.monitors.length>0&&at.monitors.every(a=>a.ownerPaused),aP=aF?`https://${at.domain}`:null,aQ=(0,M.h)(av),aR=a=>{let b=a?av.find(b=>b.externalId===a):void 0;return b?{id:b.externalId,sha:(0,N._)(b.commitSha).replace("—","")}:null},aS=aR(aQ.stagedId),aT=ay.find(a=>a.appId===at.id&&a.zoneName),aU=aP?(m={teamSlug:at.teamSlug,projectName:at.name,repo:at.repo,repoType:at.repoType,siteUrl:aP,dbs:at.database?[{...at.database,name:(0,O.X)(aA,at.database.id)}]:[],zone:aT?{accountId:aT.cfAccountId,name:aT.zoneName}:null},ad=[],m.teamSlug&&ad.push({label:"Vercel project",href:`https://vercel.com/${S(m.teamSlug)}/${S(m.projectName)}`}),(al=m.repoType?R[m.repoType]:void 0)&&m.repo&&ad.push({label:"Git repository",href:`${al}${m.repo.split("/").map(S).join("/")}`}),ad.push({label:"Live site",href:m.siteUrl}),(am=[...m.dbs.map(T).filter(a=>null!==a),...m.zone?.accountId?[{label:`Cloudflare \xb7 ${m.zone.name}`,href:`https://dash.cloudflare.com/${S(m.zone.accountId)}/${S(m.zone.name)}`}]:[]]).length?[...ad,"---",...am]:ad):[];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.AutoRefresh,{at:aq.getTime()}),(0,b.jsx)(h.L,{crumbs:[{label:"Applications",href:"/apps"},{label:at.name}],badge:(0,b.jsx)(l.g,{kind:"app"}),title:at.name,actions:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ae.WhyStatus,{state:aH.state,label:aH.label,problems:aI,nowMs:aq.getTime(),aiSlot:aM}),aU.length>0&&(0,b.jsx)(q.RowMenu,{button:!0,label:"Open in",items:aU.map(a=>"---"===a?a:{label:a.label,href:a.href})}),ar&&(0,b.jsx)(_.AppActions,{app:{id:at.id,name:at.name,siteUrl:aP,paused:aO,monitorCount:at.monitors.length},owner:"owner"===ap.role,current:aR(aQ.currentId),previous:aR(aQ.previousId),rolledBack:null!==aS})]})}),aS&&(0,b.jsx)("div",{className:"mb-4",children:(0,b.jsx)(h.M,{tone:"warning",title:"Rolled back: new pushes don't go live until you promote one.",action:ar?(0,b.jsx)(_.PromoteStaged,{app:{id:at.id,name:at.name},staged:aS}):void 0})}),(0,b.jsxs)(t.Tabs,{defaultValue:"details",className:"gap-4",children:[(0,b.jsxs)(t.TabsList,{variant:"line",children:[(0,b.jsx)(t.TabsTrigger,{value:"details",children:"Details"}),(0,b.jsx)(t.TabsTrigger,{value:"metrics",children:"Metrics"}),(0,b.jsx)(t.TabsTrigger,{value:"deployments",children:"Deployments"}),"viewer"!==ap.role&&(0,b.jsx)(t.TabsTrigger,{value:"logs",children:"Logs"})]}),(0,b.jsxs)(t.TabsContent,{value:"details",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-2",children:[(0,b.jsx)(h.N,{title:"Details",meta:(0,b.jsx)(n.Src,{kind:"api"}),children:(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Name"}),(0,b.jsx)("dd",{children:(0,b.jsx)(j.Masked,{kind:"app",real:at.name})}),(0,b.jsx)("dt",{children:"Domain"}),(0,b.jsx)("dd",{children:aP?(0,b.jsxs)("a",{href:aP,target:"_blank",rel:"noreferrer",children:[(0,b.jsx)(j.MaskedText,{text:at.domain,inLink:!0})," ",(0,b.jsx)(c.f,{size:14,"aria-hidden":!0,className:"inline align-[-2px]"})]}):(0,b.jsx)(j.MaskedText,{text:at.domain})}),(0,b.jsx)("dt",{children:"Framework"}),(0,b.jsx)("dd",{children:at.framework??"—"}),(0,b.jsx)("dt",{children:"Function region"}),(0,b.jsx)("dd",{className:(0,L.f)(ag,!at.functionRegions.length&&"text-ink-faint"),children:at.functionRegions.join(", ")||"—"}),(0,b.jsx)("dt",{children:"Production branch"}),(0,b.jsx)("dd",{className:ag,children:at.productionBranch??"—"}),(0,b.jsx)("dt",{children:"Repository"}),(0,b.jsx)("dd",{className:(0,L.f)(ag,!at.repo&&"text-ink-faint"),children:at.repo?(0,b.jsx)(j.Masked,{kind:"repo",real:at.repo}):"—"}),(0,b.jsx)("dt",{children:"Created"}),(0,b.jsx)("dd",{children:at.createdAt?(0,N.H)(at.createdAt):"—"})]})}),(0,b.jsx)(h.N,{title:"Status",children:(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Status"}),(0,b.jsx)("dd",{children:(0,b.jsx)(ae.WhyStatus,{state:aH.state,label:aH.label,problems:aI,nowMs:aq.getTime(),aiSlot:aM})}),(0,b.jsx)("dt",{children:"Database"}),(0,b.jsxs)("dd",{children:[at.database?(0,b.jsx)(Y.y,{db:at.database}):(0,b.jsx)("span",{className:"text-ink-faint",children:"None"}),ar&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)(ab.LinkDialog,{app:{id:at.id,name:at.name},options:az,current:at.database?.id??null,suggested:(0,H.U)(at.name,az)})]})]}),(0,b.jsx)("dt",{children:"Uptime 30 days"}),(0,b.jsx)("dd",{className:ag,children:(0,N.C)(at.uptime30)}),(0,b.jsx)("dt",{children:"Response 24 h"}),(0,b.jsxs)("dd",{className:ag,children:["p50 ",(0,N.p)(at.response.p50)," · p95 ",(0,N.p)(at.response.p95)]}),(0,b.jsx)("dt",{children:"Last deploy"}),(0,b.jsx)("dd",{children:at.lastDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:ag,children:(0,N._)(at.lastDeploy.commitSha)})," · ",(0,N.$)(at.lastDeploy,aq)]}):"—"}),(0,b.jsx)("dt",{children:"Monitors"}),(0,b.jsx)("dd",{children:0===at.monitors.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"None"}):at.monitors.map(a=>{let c=(0,Q.M)({...a,appGone:at.gone}),e=("err"===c.state||"warn"===c.state)&&!a.maintUntil,f=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.Z,{state:c.state}),(0,b.jsxs)("span",{className:"sr-only",children:[c.label,": "]}),(0,b.jsx)("span",{className:ag,children:a.path})]});return e?(0,b.jsx)(d.default,{href:"/uptime",title:`${c.label}. See why on Uptime`,className:"mr-2.5 inline-flex items-center gap-1.5",children:f},a.id):(0,b.jsx)("span",{title:c.label,className:"mr-2.5 inline-flex items-center gap-1.5",children:f},a.id)})})]})})]}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aj,{app:{id:at.id,name:at.name},security:at.security,canAct:ar&&!at.gone,now:aq,eol:ax})}),aC&&aB&&(aB.connected||aB.link)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aa.f,{app:{id:at.id,name:at.name},view:aC,canAct:ar&&!at.gone,owner:"owner"===ap.role,now:aq})}),aB&&(aB.connected||aB.link)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(ak,{app:{id:at.id,name:at.name},view:aB,suggestion:aB.link?null:(P=at.name,W=aB,(ac=(0,E.J)(P,W.repos))?{...ac,fullName:W.repos.find(a=>a.id===ac.repoId).fullName}:null),owner:"owner"===ap.role,canAct:ar,now:aq})}),"owner"===ap.role&&aL&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aL,{appId:at.id})}),aE&&(aE.length>0||aN)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(k.f,{items:aE,canDismiss:ar,showSubject:!1,hideWhenEmpty:!0,notes:aN})})]}),(0,b.jsx)(t.TabsContent,{value:"metrics",keepMounted:!0,children:(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-3",children:[(0,b.jsx)(h.N,{title:"Response time",meta:(0,b.jsxs)(b.Fragment,{children:["24 h · ms",(0,b.jsx)(n.Src,{kind:"own"})]}),children:(0,b.jsx)(f.t,{values:au.response,second:au.median,ticks:(r=au.first,F=au.sizeMs,an=r+(I=au.response.length)*F,aw.filter(a=>a.at.getTime()>=r&&a.at.getTime()<an).map(a=>{let b;return{x:Math.round(Math.min((a.at.getTime()-r)/F,I-1)/Math.max(1,I-1)*4e3)/10,title:`${"error"===(b=a.state)?"Deploy failed":"building"===b?"Deploying":"Deployed"} ${(0,N._)(a.sha)} \xb7 ${(0,J.U)(a.at)}`}})),width:400,height:120,fluid:!0,tone:"err"===aH.state?"err":"accent",label:"Response time p95 and p50 in 30-minute steps, last 24 hours, with production deploys"})}),(0,b.jsx)(h.N,{title:"Page views",meta:(0,b.jsxs)(b.Fragment,{children:["24 h",(0,b.jsx)(n.Src,{kind:"api"})]}),children:(0,b.jsx)(ai,{pv:at.pageViews,note:at.pageViewsNote,now:aq})}),(0,b.jsx)(h.N,{title:"5xx responses",meta:(0,b.jsxs)(b.Fragment,{children:["24 h",(0,b.jsx)(n.Src,{kind:"own"})]}),children:(0,b.jsx)(f.t,{values:au.errors,width:400,height:120,fluid:!0,tone:"err",label:"5xx responses in 30-minute steps, last 24 hours"})})]}),(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:"Vercel's request and error metrics need a paid plan, so response time and 5xx come from our own checks and stored logs. Page views come from Vercel Web Analytics (free on Hobby up to 50k events a month), read every 30 minutes."}),(0,b.jsx)(h.N,{title:"Uptime",flush:!0,meta:(0,b.jsx)("span",{className:"text-ink-faint",children:"A dark notch marks a day with a production deploy"}),children:0===at.monitors.length?(0,b.jsx)(g.x,{}):(0,b.jsx)(p.PlainTable,{head:["Monitor","Last 90 days","Uptime"],rows:at.monitors.map(a=>({key:a.id,state:a.state,text:a.path,row:(0,b.jsxs)("tr",{className:s.C,children:[(0,b.jsx)("td",{className:(0,L.f)(s.z,ag),children:a.path}),(0,b.jsx)("td",{className:s.z,children:(0,b.jsx)(f.n,{bars:(0,X.h)(at.days.get(a.id),aq,X.F,function(a){let b=new Map;for(let c of[...a].sort((a,b)=>a.at.getTime()-b.at.getTime())){let a=(0,J.x)(c.at),d=`${(0,N._)(c.sha)}${"error"===c.state?" (failed)":""}`;b.set(a,[...b.get(a)??[],d])}return new Map([...b].map(([a,b])=>[a,b.join(", ")]))}(aw))})}),(0,b.jsx)("td",{className:(0,L.f)(s.z,ag),children:(0,N.C)((0,X.Y)((0,X.w)(at.days.get(a.id),aq,X.I)))})]})}))})})]})}),(0,b.jsx)(t.TabsContent,{value:"deployments",keepMounted:!0,children:(0,b.jsx)(h.N,{flush:!0,children:0===av.length?(0,b.jsx)(g.y,{}):(0,b.jsx)(p.PlainTable,{head:Z.G,rows:(0,Z.C)(av,{canAct:ar,now:aq})})})}),"viewer"!==ap.role&&(0,b.jsx)(t.TabsContent,{value:"logs",children:(0,b.jsx)(h.N,{flush:!0,children:(0,b.jsx)($.LogViewer,{mode:"live",apps:[],appId:at.id,initial:[],vercelUrl:aG})})})]})]})}function ai({pv:a,note:c,now:d}){return a?a.enabled?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"mb-2 flex flex-wrap items-baseline gap-x-2 gap-y-0.5",children:[(0,b.jsx)("span",{className:"text-[22px] font-semibold tracking-[-0.02em]",children:a.total.toLocaleString("en-US")}),(0,b.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[1===a.total?"view":"views"," · ",null===a.visitors?"—":a.visitors.toLocaleString("en-US")," ",1===a.visitors?"visitor":"visitors"]}),(0,P.Z)(a.readAt,d)&&(0,b.jsxs)("span",{className:"ml-auto text-[12px] text-ink-faint",children:["Read ",(0,J.$)(a.readAt,d)]})]}),(0,b.jsx)(f.k,{hours:a.hours,height:80,label:`Page views per hour, last 24 hours: ${a.total} views from ${a.visitors??"an unknown number of"} visitors`})]}):(0,b.jsxs)("div",{className:"flex min-h-[120px] flex-col gap-1.5 text-[12.5px] text-ink-soft",children:[(0,b.jsx)("p",{className:"text-[13px] text-ink",children:"Web Analytics is off for this project."}),(0,b.jsxs)("ol",{className:"list-decimal space-y-1 pl-4",children:[(0,b.jsx)("li",{children:"Enable Web Analytics in the Vercel project (Analytics tab)."}),(0,b.jsxs)("li",{children:["Add ",(0,b.jsx)("code",{className:"font-mono text-[12px] text-ink",children:"<Analytics />"})," from ",(0,b.jsx)("code",{className:"font-mono text-[12px] text-ink",children:"@vercel/analytics"})," to the app's root layout and redeploy."]})]}),(0,b.jsx)("p",{className:"mt-auto text-ink-faint",children:"Free on Hobby up to 50k events a month."})]}):(0,b.jsx)("p",{className:"grid h-[120px] place-items-center text-center text-[12.5px] text-ink-soft",children:c??"Reading page views…"})}function aj({app:a,security:c,canAct:d,now:e,eol:f}){let g=(0,W.g)(c);return(0,b.jsxs)(h.N,{title:"Security",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Src,{kind:"own"}),d&&(0,b.jsx)(ad.SecurityCheckButton,{appId:a.id,appName:a.name})]}),flush:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-4 pt-2",children:[(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Next.js"}),(0,b.jsx)("dd",{children:c?.version?(0,b.jsx)("span",{className:ag,children:c.version}):c?.status==="unknown"?(0,b.jsxs)(b.Fragment,{children:["— ",(0,b.jsx)("span",{className:"text-ink-faint",children:c.reason})]}):"—"}),(0,b.jsxs)("dt",{children:["End of life ",(0,b.jsx)(n.Src,{kind:"api",children:"endoflife.date"})]}),(0,b.jsx)("dd",{children:(0,b.jsx)(al,{version:c?.version??null,eol:f,now:e})}),(0,b.jsx)("dt",{children:"Checked"}),(0,b.jsx)("dd",{children:c?(0,J.$)(c.checkedAt,e):"—"})]}),g&&(0,b.jsxs)("p",{className:(0,L.f)("mt-3 flex items-start gap-1.5","ok"!==g.state&&"text-ink-soft"),children:[("ok"===g.state||"warn"===g.state)&&(0,b.jsx)(o.Z,{state:g.state}),(0,b.jsx)("span",{children:g.text})]})]}),(0,W.X)(c)&&(0,b.jsx)(p.PlainTable,{head:["ID","Severity","Summary","Fix"],rows:c.findings.map(a=>({key:a.id,state:a.severity,text:[a.id,a.cve,a.summary].join(" "),row:(0,b.jsxs)("tr",{className:s.C,children:[(0,b.jsxs)("td",{className:s.z,children:[(0,b.jsx)("a",{href:`https://osv.dev/vulnerability/${encodeURIComponent(a.id)}`,target:"_blank",rel:"noopener",className:ag,children:a.id}),a.cve&&(0,b.jsx)("div",{className:(0,L.f)(ag,"mt-0.5 text-xs text-ink-faint"),children:a.cve})]}),(0,b.jsx)("td",{className:s.z,children:(0,b.jsx)(m.s,{severity:a.severity})}),(0,b.jsx)("td",{className:(0,L.f)(s.z,s.M),children:a.summary||(0,b.jsx)("span",{className:"text-ink-faint",children:"No summary"})}),(0,b.jsx)("td",{className:(0,L.f)(s.z,ag),children:a.fixed?`Fixed in ${a.fixed}`:(0,b.jsx)("span",{className:"text-ink-faint",children:"No fix yet"})})]})}))})]})}function ak({app:a,view:d,suggestion:e,owner:f,canAct:g,now:i}){let k=d.link?.repo??null,l=k?(0,F.N)(k.actions,k.defaultBranch):null,m=!k?.actions||"none"in k.actions?null:k.actions;return(0,b.jsx)(h.N,{title:"Repository",meta:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Src,{kind:"api",children:"GitHub"}),k&&g&&d.connected&&(0,b.jsx)(ac.RefreshActionsButton,{appId:a.id})]}),children:k?(0,b.jsxs)("dl",{className:af,children:[(0,b.jsx)("dt",{children:"Repository"}),(0,b.jsxs)("dd",{children:[(0,b.jsx)(r.f,{href:k.htmlUrl??`https://github.com/${k.fullName}`,target:"_blank",rel:"noopener",className:ag,children:(0,b.jsx)(j.Masked,{kind:"repo",real:k.fullName})}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" · ",k.private?"private":"public",k.archived?" · archived":"",k.goneAt?" · no longer shared with the token":""]}),f&&d.connected&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)(ac.RepoDialog,{app:a,options:d.options,current:k.id,suggested:null,label:"Change"})]})]}),(0,b.jsx)("dt",{children:"Linked"}),(0,b.jsx)("dd",{className:"text-ink-soft",children:(0,F.z)(d.link.source)}),(0,b.jsx)("dt",{children:"Default branch"}),(0,b.jsx)("dd",{className:ag,children:k.defaultBranch??"—"}),(0,b.jsx)("dt",{children:"Last push"}),(0,b.jsx)("dd",{children:k.pushedAt?(0,J.$)(k.pushedAt,i):"—"}),(0,b.jsx)("dt",{children:"GitHub Actions"}),(0,b.jsxs)("dd",{children:[(0,b.jsx)(o.F,{state:l.state,children:l.label}),m&&(0,b.jsxs)("span",{className:"text-ink-soft",children:[" · ",m.name??"workflow",m.runNumber?` #${m.runNumber}`:"",m.sha?(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)("span",{className:ag,children:(0,N._)(m.sha)})]}):null,m.at?` \xb7 ${(0,J.$)(new Date(m.at),i)}`:""]}),m?.url&&(0,V.f)()&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsxs)("a",{href:m.url,target:"_blank",rel:"noopener",children:["Open run ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0,className:"inline align-[-2px]"})]})]}),k.actionsCheckedAt&&(0,b.jsxs)("span",{className:"block text-[12px] text-ink-faint",children:["Read ",(0,J.$)(k.actionsCheckedAt,i)]})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-ink-soft",children:[e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{children:["Suggested: ",(0,b.jsx)("span",{className:ag,children:(0,b.jsx)(j.Masked,{kind:"repo",real:e.fullName})})," (",(0,F._)(e.why),")."]}),f&&(0,b.jsx)(ac.ConfirmRepo,{appId:a.id,repoId:e.repoId,fullName:e.fullName})]}):(0,b.jsxs)("span",{children:["No repository linked. ",d.options.length?"None matches the app's name.":"Sync GitHub on Connections to list your repositories."]}),f&&d.options.length>0&&(0,b.jsx)(ac.RepoDialog,{app:a,options:d.options,current:null,suggested:e?.repoId??null,label:"Choose…"})]})})}function al({version:a,eol:c,now:d}){let e=(0,I.e)(a,c,d);return"unknown"===e.state?(0,b.jsx)("span",{className:"text-ink-faint",children:e.text}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.F,{state:e.state,children:e.text}),e.note&&(0,b.jsxs)("span",{className:"text-ink-faint",children:[" · ",e.note]})]})}a.s(["default",0,ah,"maxDuration",0,60],252650)},228056,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call ConfirmRepo() from the server but ConfirmRepo is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/repo-dialog.tsx","ConfirmRepo"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RefreshActionsButton() from the server but RefreshActionsButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/repo-dialog.tsx","RefreshActionsButton"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call RepoDialog() from the server but RepoDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/repo-dialog.tsx","RepoDialog");a.s(["ConfirmRepo",0,c,"RefreshActionsButton",0,d,"RepoDialog",0,e])},881868,a=>{var b=a.i(228056);a.n(b)},300400,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call SecurityCheckButton() from the server but SecurityCheckButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/security-check-button.tsx","SecurityCheckButton");a.s(["SecurityCheckButton",0,b])},991813,a=>{var b=a.i(300400);a.n(b)},340514,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call WhyStatus() from the server but WhyStatus is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/apps/[id]/why-status.tsx","WhyStatus");a.s(["WhyStatus",0,b])},143821,a=>{var b=a.i(340514);a.n(b)}],102158,function(a){a.n(a.i(252650))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_apps_%5Bid%5D_088bs149wsgca._.js.map
@@ -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(293078),k=a.i(455279),l=a.i(817380),m=a.i(144153),n=a.i(405050);let o=(0,n.createServerReference)("4036e5fd5a3084e5850e6222ddfde745b5e73cb3a4",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("Something went wrong. 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)},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)("60712783b14223864b43bfbf3929ea253f5521b8d1",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("Something went wrong. Try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},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)("60fb8125a64c9501e222c97fb7ddbc1a69963b1a21",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("4062e9fa1534cfda8d5b3c296f2cb62bb50fd0c165",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("Something went wrong. 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)("40f68ee1dc7c7287d5d001b9a7f96345fd322820f8",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("Something went wrong. 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.f)(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(224766),k=a.i(92303),l=a.i(43442),m=a.i(60432),n=a.i(405050);let o=(0,n.createServerReference)("40522065208dd7a1f9ebfe9a6bb7cde19fdbffb2ec",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("Something went wrong. 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)},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)("607edaf3c689f59ccca3a12be1c959c7888e19ef22",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("Something went wrong. Try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},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)("60ee58e6feea3b2c9fe1464e4788b0ec162cda012a",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("408b9edcc766af51648a1d8cc1272cfb9fcb6755c2",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("Something went wrong. 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)("4099d583898021d87baedfcf879c5e652ccdc88a1b",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("Something went wrong. 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_1sfvku9ui1le-._.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||(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,"00ea7de49fd9e67bb41bd72260c73635c2cea72048",null),(0,b.registerServerReference)(v,"0018babb21e40deaeb3fc32e4ad0a3b7eacda1bee2",null),(0,b.registerServerReference)(w,"00e6e6a4bc4f2c801ea5b0b9c4fe381854304c1525",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||(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,"000f79190f543f603cbe0742a4eefc932fd6510c96",null),(0,b.registerServerReference)(v,"001480233435117c8e7b88e080de1f41c43890dceb",null),(0,b.registerServerReference)(w,"009adc24952bddb2c1fbc1e35807db0e21bf29f915",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)("00e6e6a4bc4f2c801ea5b0b9c4fe381854304c1525",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("0018babb21e40deaeb3fc32e4ad0a3b7eacda1bee2",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("00ea7de49fd9e67bb41bd72260c73635c2cea72048",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("Something went wrong. 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?"Something went wrong. 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)("009adc24952bddb2c1fbc1e35807db0e21bf29f915",g.callServer,void 0,g.findSourceMapURL,"backUpNow"),i=(0,g.createServerReference)("001480233435117c8e7b88e080de1f41c43890dceb",g.callServer,void 0,g.findSourceMapURL,"disconnectDrive"),j=(0,g.createServerReference)("000f79190f543f603cbe0742a4eefc932fd6510c96",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("Something went wrong. 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?"Something went wrong. 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
- module.exports=[927079,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(803681),e=a.i(75148),f=a.i(686251),g=a.i(791444),h=a.i(109307),i=a.i(544854),j=a.i(21096),k=a.i(447681),l=a.i(77608),m=a.i(966425),n=a.i(139138),o=a.i(564371),p=a.i(846590),q=a.i(993835);let r="text-[20px] font-semibold tracking-[-0.02em]",s="mt-1 text-[12.5px] text-ink-soft";async function t({searchParams:a}){let u=await (0,h.B)("owner");if(!u.ok)return(0,b.jsx)(e.f,{role:u.member.role});let v=new Date,[{drive:w},x,y,z]=await Promise.all([a,(0,m.r)(),(0,m.e)(),(0,m.M)()]),A=(0,o.O)(null!==(0,l.p)(),x),B=(0,o.$)(y),C=(0,i.o)(y,v),D=(0,j.F)(w)?j.L[w]:null,E="ok"===A.kind||"problem"===A.kind;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.L,{crumbs:[{label:"Administration"},{label:"Backups"}],title:"Backups",sub:"A summary of every month is saved to your Google Drive automatically. Backups older than 3 months are moved to Drive trash, and Drive deletes them for good 30 days later.",actions:(0,b.jsx)(p.BackUpNowButton,{monthLabel:(0,i.n)((0,i.L)(v)).split(" ")[0],disabled:!E})}),D&&(0,b.jsx)(d.M,{tone:"ok"===D.tone?"info":"danger",title:D.text}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:[(0,b.jsx)(d.N,{title:"Google Drive",children:(0,b.jsx)(q.f,{state:A,folderName:(0,i.A)(z)})}),(0,b.jsxs)(d.N,{title:"Next backup",children:[(0,b.jsx)("span",{className:r,children:C.runsOn.replace(", ~03:00 WIB","")}),(0,b.jsxs)("p",{className:s,children:["Covers ",C.covers,C.runsOn.includes("03:00")?" · ~03:00 WIB, with the daily job":""]})]}),(0,b.jsxs)(d.N,{title:"Keep",children:[(0,b.jsx)("span",{className:r,children:o.U}),(0,b.jsx)("p",{className:s,children:"Then moved to trash"})]}),(0,b.jsxs)(d.N,{title:"Drive access",children:[(0,b.jsx)("span",{className:(0,n.f)(r,"font-mono text-[18px]"),children:"drive.file"}),(0,b.jsx)("p",{className:s,children:"Can't see your other files"})]})]}),(0,b.jsx)(d.N,{title:"Monthly backups",flush:!0,meta:z&&E?(0,b.jsxs)("a",{href:(0,k.V)(z.id),target:"_blank",rel:"noopener",className:"inline-flex items-center gap-1",children:["Open folder ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}):void 0,children:0===B.length?(0,b.jsx)("div",{className:"border-t border-line",children:(0,b.jsx)(d.k,{title:"No backups yet",children:E?"The first one is written on the 1st, or press Back up now.":"Connect Google Drive to start."})}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:g.o,children:[(0,b.jsx)(g.U,{head:["Month","Files","Size","Created","Status",""]}),(0,b.jsx)("tbody",{children:B.map(a=>(0,b.jsxs)("tr",{className:"hover:bg-hover",children:[(0,b.jsx)("td",{className:g.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.label})}),(0,b.jsxs)("td",{className:g.z,children:[(0,b.jsx)("span",{className:"mr-1.5 rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Summary sheet"}),(0,b.jsx)("span",{className:"rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Raw data .csv.gz"})]}),(0,b.jsx)("td",{className:`${g.z} font-mono text-[12.5px]`,children:a.size}),(0,b.jsx)("td",{className:`${g.z} text-ink-soft`,children:a.created}),(0,b.jsxs)("td",{className:(0,n.f)(g.z,g.M),children:[(0,b.jsx)(f.F,{state:a.state,children:a.status}),a.note&&(0,b.jsx)("div",{className:"mt-0.5 text-[12px] text-ink-soft",children:a.note})]}),(0,b.jsx)("td",{className:g.z,children:(0,b.jsxs)("div",{className:"flex gap-1.5",children:[a.sheet&&(0,b.jsx)("a",{className:(0,d.R)({size:"sm"}),href:a.sheet,target:"_blank",rel:"noopener",children:"Open in Drive"}),a.download&&(0,b.jsx)("a",{className:(0,d.R)({size:"sm"}),href:a.download,target:"_blank",rel:"noopener",children:"Download"})]})})]},a.month))})]})})}),(0,b.jsxs)(d.N,{title:"What's in each backup",children:[o.c.map(([a,c])=>(0,b.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:a}),(0,b.jsx)("span",{className:"text-ink-soft",children:c})]},a)),(0,b.jsx)("p",{className:"pt-2.5 text-[12.5px] text-ink-soft",children:"Databases appear by their alias (db-a, db-b…) and emails are hidden, as everywhere in the console."})]})]})}a.s(["default",0,t,"maxDuration",0,60])},26924,function(a){a.n(a.i(927079))}];
1
+ module.exports=[927079,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(803681),e=a.i(75148),f=a.i(686251),g=a.i(791444),h=a.i(109307),i=a.i(544854),j=a.i(21096),k=a.i(447681),l=a.i(77608),m=a.i(966425),n=a.i(139138),o=a.i(564371),p=a.i(846590),q=a.i(993835);let r="text-[20px] font-semibold tracking-[-0.02em]",s="mt-1 text-[12.5px] text-ink-soft";async function t({searchParams:a}){let u=await (0,h.B)("owner");if(!u.ok)return(0,b.jsx)(e.f,{role:u.member.role});let v=new Date,[{drive:w},x,y,z]=await Promise.all([a,(0,m.r)(),(0,m.e)(),(0,m.M)()]),A=(0,o.O)(null!==(0,l.p)(),x),B=(0,o.$)(y),C=(0,i.o)(y,v),D=(0,j.F)(w)?j.L[w]:null,E="ok"===A.kind||"problem"===A.kind;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.L,{crumbs:[{label:"Manage"},{label:"Backups"}],title:"Backups",sub:"A summary of every month is saved to your Google Drive automatically. Backups older than 3 months are moved to Drive trash, and Drive deletes them for good 30 days later.",actions:(0,b.jsx)(p.BackUpNowButton,{monthLabel:(0,i.n)((0,i.L)(v)).split(" ")[0],disabled:!E})}),D&&(0,b.jsx)(d.M,{tone:"ok"===D.tone?"info":"danger",title:D.text}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:[(0,b.jsx)(d.N,{title:"Google Drive",children:(0,b.jsx)(q.f,{state:A,folderName:(0,i.A)(z)})}),(0,b.jsxs)(d.N,{title:"Next backup",children:[(0,b.jsx)("span",{className:r,children:C.date??C.runsOn}),(0,b.jsxs)("p",{className:s,children:["Covers ",C.covers," · ",C.at,", with the daily job"]})]}),(0,b.jsxs)(d.N,{title:"Keep",children:[(0,b.jsx)("span",{className:r,children:o.U}),(0,b.jsx)("p",{className:s,children:"Then moved to trash"})]}),(0,b.jsxs)(d.N,{title:"Drive access",children:[(0,b.jsx)("span",{className:(0,n.f)(r,"font-mono text-[18px]"),children:"drive.file"}),(0,b.jsx)("p",{className:s,children:"Can't see your other files"})]})]}),(0,b.jsx)(d.N,{title:"Monthly backups",flush:!0,meta:z&&E?(0,b.jsxs)("a",{href:(0,k.V)(z.id),target:"_blank",rel:"noopener",className:"inline-flex items-center gap-1",children:["Open folder ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}):void 0,children:0===B.length?(0,b.jsx)("div",{className:"border-t border-line",children:(0,b.jsx)(d.k,{title:"No backups yet",children:E?"The first one is written on the 1st, or press Back up now.":"Connect Google Drive to start."})}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:g.o,children:[(0,b.jsx)(g.U,{head:["Month","Files","Size","Created","Status",""]}),(0,b.jsx)("tbody",{children:B.map(a=>(0,b.jsxs)("tr",{className:"hover:bg-hover",children:[(0,b.jsx)("td",{className:g.z,children:(0,b.jsx)("b",{className:"font-medium",children:a.label})}),(0,b.jsxs)("td",{className:g.z,children:[(0,b.jsx)("span",{className:"mr-1.5 rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Summary sheet"}),(0,b.jsx)("span",{className:"rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Raw data .csv.gz"})]}),(0,b.jsx)("td",{className:`${g.z} font-mono text-[12.5px]`,children:a.size}),(0,b.jsx)("td",{className:`${g.z} text-ink-soft`,children:a.created}),(0,b.jsxs)("td",{className:(0,n.f)(g.z,g.M),children:[(0,b.jsx)(f.F,{state:a.state,children:a.status}),a.note&&(0,b.jsx)("div",{className:"mt-0.5 text-[12px] text-ink-soft",children:a.note})]}),(0,b.jsx)("td",{className:g.z,children:(0,b.jsxs)("div",{className:"flex gap-1.5",children:[a.sheet&&(0,b.jsx)("a",{className:(0,d.R)({size:"sm"}),href:a.sheet,target:"_blank",rel:"noopener",children:"Open in Drive"}),a.download&&(0,b.jsx)("a",{className:(0,d.R)({size:"sm"}),href:a.download,target:"_blank",rel:"noopener",children:"Download"})]})})]},a.month))})]})})}),(0,b.jsxs)(d.N,{title:"What's in each backup",children:[o.c.map(([a,c])=>(0,b.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:a}),(0,b.jsx)("span",{className:"text-ink-soft",children:c})]},a)),(0,b.jsx)("p",{className:"pt-2.5 text-[12.5px] text-ink-soft",children:"Databases appear by their alias (db-a, db-b…) and emails are hidden, as everywhere in the console."})]})]})}a.s(["default",0,t,"maxDuration",0,60])},26924,function(a){a.n(a.i(927079))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_backups_page_tsx_0o082iagq_14b._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[317422,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(395936),e=a.i(803681),f=a.i(959581),g=a.i(686251),h=a.i(791444);let i="16 Oct 2026",j="11 Oct 2026",k=[["Vercel Hobby","https://vercel.com/docs/functions/usage-and-pricing"],["Vercel Web Analytics","https://vercel.com/docs/analytics/limits-and-pricing"],["Supabase Free","https://supabase.com/pricing"],["Neon Free","https://neon.com/docs/introduction/plans"],["Firebase Spark (Firestore)","https://firebase.google.com/docs/firestore/quotas"],["Cloudflare D1","https://developers.cloudflare.com/d1/platform/limits/"],["Cloudflare Workers","https://developers.cloudflare.com/workers/platform/pricing/"],["Upstash Redis","https://upstash.com/docs/redis/overall/pricing"],["Upstash QStash","https://upstash.com/docs/qstash/overall/pricing"],["Turso","https://turso.tech/pricing"],["cron-job.org","https://cron-job.org/en/faq/"]],l=[{name:"Supabase",type:"Postgres + auth, storage, realtime",limits:"500 MB per DB, 2 active projects per user (paused ones don't count), 5 GB egress + 5 GB cached egress, 1 GB files, 50k MAU",sleep:"Pauses after 7 days without activity",card:"No",asia:"Singapore, Tokyo, Seoul",drizzle:"Yes",monitor:"Status, health, API traffic, pause and restore",adapter:"built",pick:"Full backend",url:"https://supabase.com/pricing"},{name:"Neon",type:"Postgres (serverless)",limits:"1 GB per project (20 GB total), 100 CU-hours per project a month, 100 projects, 5 GB egress per project a month",sleep:"Scales to zero after 5 min, cold start on next query",card:"No",asia:"Singapore",drizzle:"Yes",monitor:"Compute state, CU-hours, size, wake",adapter:"built",pick:"Best Postgres for Vercel",url:"https://neon.com/pricing"},{name:"Firebase Firestore",type:"Document + realtime",limits:"1 GiB, 50k reads, 20k writes, 20k deletes a day (reset at midnight Pacific), 10 GiB egress a month",sleep:"Never sleeps, stops at the daily cap",card:"No",asia:"Jakarta, Singapore, Tokyo",drizzle:"No",monitor:"Health check, Auth users, daily ops (needs test)",adapter:"built",pick:"Realtime documents",url:"https://firebase.google.com/pricing"},{name:"Turso",type:"SQLite (libSQL)",limits:"100 DBs, 5 GB, 500M rows read and 10M rows written a month, 3 GB syncs",sleep:"No pausing documented",card:"No",asia:"Unverified (US and EU listed)",drizzle:"Yes",monitor:"Databases, rows read and written, storage (per organization)",adapter:"built",pick:"Most generous SQL",url:"https://turso.tech/pricing"},{name:"Upstash Redis",type:"Key-value",limits:"256 MB data (the card says 250 MB), 500k commands a month, 10 GB bandwidth, 10k commands/s; 1 free DB (its FAQ says 10)",sleep:"No pausing documented",card:"No",asia:"Unverified",drizzle:"n/a",monitor:"Databases, commands this month, data size, bandwidth",adapter:"built",pick:"Cache, rate limits, queues",url:"https://upstash.com/pricing/redis"},{name:"Cloudflare D1",type:"SQLite",limits:"10 DBs, 500 MB each, 5 GB per account, 5M rows read and 100k rows written a day",sleep:"Never sleeps, errors until 00:00 UTC at the cap",card:"No",asia:"Automatic placement",drizzle:"Only via HTTP, awkward from Vercel",monitor:"Size; rows read and written today (needs Account Analytics read)",adapter:"built",pick:"Apps on Cloudflare Workers",url:"https://developers.cloudflare.com/d1/platform/pricing/"},{name:"TiDB Cloud Starter",type:"MySQL-compatible",limits:"5 instances, 5 GiB rows + 5 GiB columnar, 50M request units a month each",sleep:"No pausing, rejects connections at the cap",card:"No",asia:"Unverified",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"Best free MySQL",url:"https://www.pingcap.com/pricing/",checked:j},{name:"MongoDB Atlas",type:"Document",limits:"512 MB, 100 ops/s, 1 free cluster per project",sleep:"Pauses after 30 days with no connections",card:"Unverified",asia:"Region support unverified",drizzle:"No",monitor:"Free cluster metrics unverified",adapter:"none",pick:"Standard document DB",url:"https://www.mongodb.com/pricing",checked:j},{name:"Prisma Postgres",type:"Postgres",limits:"50 DBs, 1 GB, 200k operations a month",sleep:"Unverified",card:"No",asia:"Singapore, Tokyo",drizzle:"Yes",monitor:"No usage API",adapter:"none",pick:"Small apps (ops cap is tight)",url:"https://www.prisma.io/pricing",checked:j},{name:"Convex",type:"Reactive TypeScript backend",limits:"1M function calls, 0.5 GB DB, 1 GB egress",sleep:"No pausing, writes fail at the cap",card:"Unverified",asia:"Sydney only",drizzle:"No",monitor:"No usage API",adapter:"none",pick:"Realtime apps",url:"https://www.convex.dev/pricing",checked:j},{name:"Aiven",type:"Postgres, MySQL, Valkey",limits:"Postgres: 1 GB storage, 1 GB RAM, 1 CPU",sleep:"May power off when unused (emails first)",card:"No",asia:"Region picked for you",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"A real small VM",url:"https://aiven.io/pricing",checked:j},{name:"Nile",type:"Postgres (multi-tenant)",limits:"1 GB, 50M query tokens, 500 connections",sleep:"Never pauses",card:"Unverified",asia:"Unverified",drizzle:"Unverified",monitor:"API unverified",adapter:"none",pick:"B2B SaaS tenants",url:"https://www.thenile.dev/pricing",checked:j}],m=[["CockroachDB","Free Basic plan ended September 2026. Now a 30-day trial."],["PlanetScale","No free plan. Cheapest is $5 a month."],["Xata","14-day trial only (self-hosting is free)."],["Fauna","Shut down in 2025."],["Render Postgres","Free DB expires after 30 days."],["Railway","$5 trial, then $1 a month in credit."],["Appwrite Cloud","Free, but pauses after 7 days without console activity and deletes 90 days later."],["Couchbase Capella","Turns off after 72 h idle and deletes after 30 days."],["Redis Cloud","Free, but only 30 MB."]],n=[["Relational SQL","Neon","Turso or TiDB"],["Document","Firestore","MongoDB Atlas"],["Cache and queues","Upstash Redis","none needed"],["Realtime backend","Supabase","Convex"]];var o=a.i(109307),p=a.i(139138),q=a.i(154756),r=a.i(954296),s=a.i(532620),t=a.i(367247),u=a.i(179806);let v={metrics:{kind:"api",text:"Metrics API"},api:{kind:"api",text:"API"},monitoring:{kind:"api",text:"Cloud Monitoring"},graphql:{kind:"api",text:"GraphQL analytics"}};async function w(){let a=new Date,[c,f,i,j,k,l,m]=await Promise.all([(0,s.R)("supabase_project"),(0,s.R)("neon_project"),(0,s.R)("firestore"),(0,s.R)("turso_database"),(0,s.R)("upstash_redis"),(0,s.R)("d1_database"),(0,s.e)()]);if(![c,f,i,j,k,l].some(a=>a.length))return null;let n=await (0,t.d)(c.map(a=>a.id),a),o=(0,u.Y)({supabase:c,neon:f,firestore:i,compute:n,turso:j,upstash:k,d1:l},a,m);return(0,b.jsx)(e.N,{title:"Your databases",meta:"Highest share of the free plan used",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Database","Provider","Most used","Source","As of","Other"]}),(0,b.jsx)("tbody",{children:o.map(a=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(q.F,{kind:"Firestore"===a.provider?"fs":"db",name:a.name,dbId:a.id})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(d.default,{href:a.href,className:"text-brand hover:underline",children:a.provider})}),(0,b.jsx)("td",{className:h.z,children:a.main?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-[13px]",children:a.main.label})," ",(0,b.jsxs)("span",{className:"font-mono",children:[Math.round(a.main.pct??0),"%"]})," ",(0,b.jsx)("span",{className:"text-ink-faint",children:a.main.text}),(0,b.jsx)(e.e,{pct:a.main.pct??0,tone:(a.main.pct??0)>=95?"err":(a.main.pct??0)>=80?"warn":void 0})]}):(0,b.jsx)(g.F,{state:"unknown",children:"Not read"})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(r.Src,{kind:v[a.source].kind,children:v[a.source].text})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,"text-ink-soft"),children:a.asOf??"—"}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[12.5px] text-ink-soft"),children:[a.extra.length>0&&(0,b.jsx)("div",{children:a.extra.join(" · ")}),a.note&&(0,b.jsx)("div",{className:"text-[12px] text-ink-faint",children:a.note})]})]},a.id))})]})})})}async function x(){let a="owner"===(await (0,o.I)()).role,j="text-[12px] text-ink-faint";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:"Databases"},{label:"Free databases"}],title:"Free databases",sub:`Hosted databases you can use for free today (checked ${i} against official pricing pages), and what the console can monitor for each.`}),(0,b.jsx)(w,{}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:n.map(([a,c,d])=>(0,b.jsxs)(e.N,{title:a,children:[(0,b.jsx)("span",{className:"text-[20px] font-semibold tracking-[-0.02em]",children:c}),(0,b.jsxs)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:["Also good: ",d]})]},a))}),(0,b.jsx)(e.N,{flush:!0,children:(0,b.jsx)(f.ListFilter,{placeholder:"Filter by name or type",states:[["yes","Console can monitor"],["no","Pricing link only"]],head:["Provider","Type","Free limits","Sleeps or expires","Fit","Console can monitor",""],rows:l.map(f=>({key:f.name,state:"none"!==f.adapter?"yes":"no",text:[f.name,f.type,f.pick,f.limits].join(" "),row:(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsxs)("td",{className:h.z,children:[(0,b.jsx)("b",{className:"font-medium",children:f.name}),(0,b.jsx)("div",{className:j,children:f.pick})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.type}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:[f.limits,f.checked&&(0,b.jsxs)("div",{className:j,children:["checked ",f.checked]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.sleep}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[13px]"),children:[(0,b.jsxs)("div",{children:["Card: ",f.card]}),(0,b.jsxs)("div",{children:["Asia: ",f.asia]}),(0,b.jsxs)("div",{children:["Drizzle: ",f.drizzle]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:(0,b.jsx)(g.F,{state:"none"!==f.adapter?"ok":"off",children:f.monitor})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:["built"===f.adapter&&a&&(0,b.jsx)(d.default,{href:"/connections",className:(0,e.R)({size:"sm"}),children:"Connect"}),"built"===f.adapter&&!a&&(0,b.jsx)(e.E,{children:"Supported"}),"planned"===f.adapter&&(0,b.jsx)(e.E,{children:"Adapter planned"}),"built"!==f.adapter&&(0,b.jsxs)("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:(0,e.R)({size:"sm"}),children:["Pricing ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})]})})]})}))})}),(0,b.jsx)(e.N,{title:`As checked on ${i}`,meta:"Official pages",children:(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:k.map(([a,c],d)=>(0,b.jsxs)("span",{children:[d>0&&" · ",(0,b.jsx)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",children:a})]},a))})}),(0,b.jsx)(e.N,{title:"No longer free, or not worth it",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Provider","Why"]}),(0,b.jsx)("tbody",{children:m.map(([a,c])=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)("b",{className:"font-medium",children:a})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:c})]},a))})]})})})]})}a.s(["default",0,x],317422)},526903,function(a){a.n(a.i(317422))}];
1
+ module.exports=[317422,a=>{"use strict";var b=a.i(907997),c=a.i(906974),d=a.i(395936),e=a.i(803681),f=a.i(959581),g=a.i(686251),h=a.i(791444);let i="16 Oct 2026",j="11 Oct 2026",k=[["Vercel Hobby","https://vercel.com/docs/functions/usage-and-pricing"],["Vercel Web Analytics","https://vercel.com/docs/analytics/limits-and-pricing"],["Supabase Free","https://supabase.com/pricing"],["Neon Free","https://neon.com/docs/introduction/plans"],["Firebase Spark (Firestore)","https://firebase.google.com/docs/firestore/quotas"],["Cloudflare D1","https://developers.cloudflare.com/d1/platform/limits/"],["Cloudflare Workers","https://developers.cloudflare.com/workers/platform/pricing/"],["Upstash Redis","https://upstash.com/docs/redis/overall/pricing"],["Upstash QStash","https://upstash.com/docs/qstash/overall/pricing"],["Turso","https://turso.tech/pricing"],["cron-job.org","https://cron-job.org/en/faq/"]],l=[{name:"Supabase",type:"Postgres + auth, storage, realtime",limits:"500 MB per DB, 2 active projects per user (paused ones don't count), 5 GB egress + 5 GB cached egress, 1 GB files, 50k MAU",sleep:"Pauses after 7 days without activity",card:"No",asia:"Singapore, Tokyo, Seoul",drizzle:"Yes",monitor:"Status, health, API traffic, pause and restore",adapter:"built",pick:"Full backend",url:"https://supabase.com/pricing"},{name:"Neon",type:"Postgres (serverless)",limits:"1 GB per project (20 GB total), 100 CU-hours per project a month, 100 projects, 5 GB egress per project a month",sleep:"Scales to zero after 5 min, cold start on next query",card:"No",asia:"Singapore",drizzle:"Yes",monitor:"Compute state, CU-hours, size, wake",adapter:"built",pick:"Best Postgres for Vercel",url:"https://neon.com/pricing"},{name:"Firebase Firestore",type:"Document + realtime",limits:"1 GiB, 50k reads, 20k writes, 20k deletes a day (reset at midnight Pacific), 10 GiB egress a month",sleep:"Never sleeps, stops at the daily cap",card:"No",asia:"Jakarta, Singapore, Tokyo",drizzle:"No",monitor:"Health check, Auth users, daily ops (needs test)",adapter:"built",pick:"Realtime documents",url:"https://firebase.google.com/pricing"},{name:"Turso",type:"SQLite (libSQL)",limits:"100 DBs, 5 GB, 500M rows read and 10M rows written a month, 3 GB syncs",sleep:"No pausing documented",card:"No",asia:"Unverified (US and EU listed)",drizzle:"Yes",monitor:"Databases, rows read and written, storage (per organization)",adapter:"built",pick:"Most generous SQL",url:"https://turso.tech/pricing"},{name:"Upstash Redis",type:"Key-value",limits:"256 MB data (the card says 250 MB), 500k commands a month, 10 GB bandwidth, 10k commands/s; 1 free DB (its FAQ says 10)",sleep:"No pausing documented",card:"No",asia:"Unverified",drizzle:"n/a",monitor:"Databases, commands this month, data size, bandwidth",adapter:"built",pick:"Cache, rate limits, queues",url:"https://upstash.com/pricing/redis"},{name:"Cloudflare D1",type:"SQLite",limits:"10 DBs, 500 MB each, 5 GB per account, 5M rows read and 100k rows written a day",sleep:"Never sleeps, errors until 00:00 UTC at the cap",card:"No",asia:"Automatic placement",drizzle:"Only via HTTP, awkward from Vercel",monitor:"Size; rows read and written today (needs Account Analytics read)",adapter:"built",pick:"Apps on Cloudflare Workers",url:"https://developers.cloudflare.com/d1/platform/pricing/"},{name:"TiDB Cloud Starter",type:"MySQL-compatible",limits:"5 instances, 5 GiB rows + 5 GiB columnar, 50M request units a month each",sleep:"No pausing, rejects connections at the cap",card:"No",asia:"Unverified",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"Best free MySQL",url:"https://www.pingcap.com/pricing/",checked:j},{name:"MongoDB Atlas",type:"Document",limits:"512 MB, 100 ops/s, 1 free cluster per project",sleep:"Pauses after 30 days with no connections",card:"Unverified",asia:"Region support unverified",drizzle:"No",monitor:"Free cluster metrics unverified",adapter:"none",pick:"Standard document DB",url:"https://www.mongodb.com/pricing",checked:j},{name:"Prisma Postgres",type:"Postgres",limits:"50 DBs, 1 GB, 200k operations a month",sleep:"Unverified",card:"No",asia:"Singapore, Tokyo",drizzle:"Yes",monitor:"No usage API",adapter:"none",pick:"Small apps (ops cap is tight)",url:"https://www.prisma.io/pricing",checked:j},{name:"Convex",type:"Reactive TypeScript backend",limits:"1M function calls, 0.5 GB DB, 1 GB egress",sleep:"No pausing, writes fail at the cap",card:"Unverified",asia:"Sydney only",drizzle:"No",monitor:"No usage API",adapter:"none",pick:"Realtime apps",url:"https://www.convex.dev/pricing",checked:j},{name:"Aiven",type:"Postgres, MySQL, Valkey",limits:"Postgres: 1 GB storage, 1 GB RAM, 1 CPU",sleep:"May power off when unused (emails first)",card:"No",asia:"Region picked for you",drizzle:"Yes",monitor:"API unverified",adapter:"none",pick:"A real small VM",url:"https://aiven.io/pricing",checked:j},{name:"Nile",type:"Postgres (multi-tenant)",limits:"1 GB, 50M query tokens, 500 connections",sleep:"Never pauses",card:"Unverified",asia:"Unverified",drizzle:"Unverified",monitor:"API unverified",adapter:"none",pick:"B2B SaaS tenants",url:"https://www.thenile.dev/pricing",checked:j}],m=[["CockroachDB","Free Basic plan ended September 2026. Now a 30-day trial."],["PlanetScale","No free plan. Cheapest is $5 a month."],["Xata","14-day trial only (self-hosting is free)."],["Fauna","Shut down in 2025."],["Render Postgres","Free DB expires after 30 days."],["Railway","$5 trial, then $1 a month in credit."],["Appwrite Cloud","Free, but pauses after 7 days without console activity and deletes 90 days later."],["Couchbase Capella","Turns off after 72 h idle and deletes after 30 days."],["Redis Cloud","Free, but only 30 MB."]],n=[["Relational SQL","Neon","Turso or TiDB"],["Document","Firestore","MongoDB Atlas"],["Cache and queues","Upstash Redis","none needed"],["Realtime backend","Supabase","Convex"]];var o=a.i(109307),p=a.i(139138),q=a.i(154756),r=a.i(954296),s=a.i(532620),t=a.i(367247),u=a.i(179806);let v={metrics:{kind:"api",text:"Metrics API"},api:{kind:"api",text:"API"},monitoring:{kind:"api",text:"Cloud Monitoring"},graphql:{kind:"api",text:"GraphQL analytics"}};async function w(){let a=new Date,[c,f,i,j,k,l,m]=await Promise.all([(0,s.R)("supabase_project"),(0,s.R)("neon_project"),(0,s.R)("firestore"),(0,s.R)("turso_database"),(0,s.R)("upstash_redis"),(0,s.R)("d1_database"),(0,s.e)()]);if(![c,f,i,j,k,l].some(a=>a.length))return null;let n=await (0,t.d)(c.map(a=>a.id),a),o=(0,u.Y)({supabase:c,neon:f,firestore:i,compute:n,turso:j,upstash:k,d1:l},a,m);return(0,b.jsx)(e.N,{title:"Your databases",meta:"Highest share of the free plan used",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Database","Provider","Most used","Source","As of","Other"]}),(0,b.jsx)("tbody",{children:o.map(a=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(q.F,{kind:"Firestore"===a.provider?"fs":"db",name:a.name,dbId:a.id})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(d.default,{href:a.href,className:"text-brand hover:underline",children:a.provider})}),(0,b.jsx)("td",{className:h.z,children:a.main?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-[13px]",children:a.main.label})," ",(0,b.jsxs)("span",{className:"font-mono",children:[Math.round(a.main.pct??0),"%"]})," ",(0,b.jsx)("span",{className:"text-ink-faint",children:a.main.text}),(0,b.jsx)(e.e,{pct:a.main.pct??0,tone:(a.main.pct??0)>=95?"err":(a.main.pct??0)>=80?"warn":void 0})]}):(0,b.jsx)(g.F,{state:"unknown",children:"Not read"})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)(r.Src,{kind:v[a.source].kind,children:v[a.source].text})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,"text-ink-soft"),children:a.asOf??"—"}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[12.5px] text-ink-soft"),children:[a.extra.length>0&&(0,b.jsx)("div",{children:a.extra.join(" · ")}),a.note&&(0,b.jsx)("div",{className:"text-[12px] text-ink-faint",children:a.note})]})]},a.id))})]})})})}async function x(){let a="owner"===(await (0,o.I)()).role,j="text-[12px] text-ink-faint";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.L,{crumbs:[{label:"Database"},{label:"Free databases"}],title:"Free databases",sub:`Hosted databases you can use for free today (checked ${i} against official pricing pages), and what the console can monitor for each.`}),(0,b.jsx)(w,{}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1101px]:grid-cols-4",children:n.map(([a,c,d])=>(0,b.jsxs)(e.N,{title:a,children:[(0,b.jsx)("span",{className:"text-[20px] font-semibold tracking-[-0.02em]",children:c}),(0,b.jsxs)("p",{className:"mt-1 text-[12.5px] text-ink-soft",children:["Also good: ",d]})]},a))}),(0,b.jsx)(e.N,{flush:!0,children:(0,b.jsx)(f.ListFilter,{placeholder:"Filter by name or type",states:[["yes","Console can monitor"],["no","Pricing link only"]],head:["Provider","Type","Free limits","Sleeps or expires","Fit","Console can monitor",""],rows:l.map(f=>({key:f.name,state:"none"!==f.adapter?"yes":"no",text:[f.name,f.type,f.pick,f.limits].join(" "),row:(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsxs)("td",{className:h.z,children:[(0,b.jsx)("b",{className:"font-medium",children:f.name}),(0,b.jsx)("div",{className:j,children:f.pick})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.type}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:[f.limits,f.checked&&(0,b.jsxs)("div",{className:j,children:["checked ",f.checked]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:f.sleep}),(0,b.jsxs)("td",{className:(0,p.f)(h.z,h.M,"text-[13px]"),children:[(0,b.jsxs)("div",{children:["Card: ",f.card]}),(0,b.jsxs)("div",{children:["Asia: ",f.asia]}),(0,b.jsxs)("div",{children:["Drizzle: ",f.drizzle]})]}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M),children:(0,b.jsx)(g.F,{state:"none"!==f.adapter?"ok":"off",children:f.monitor})}),(0,b.jsx)("td",{className:h.z,children:(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:["built"===f.adapter&&a&&(0,b.jsx)(d.default,{href:"/connections",className:(0,e.R)({size:"sm"}),children:"Connect"}),"built"===f.adapter&&!a&&(0,b.jsx)(e.E,{children:"Supported"}),"planned"===f.adapter&&(0,b.jsx)(e.E,{children:"Adapter planned"}),"built"!==f.adapter&&(0,b.jsxs)("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:(0,e.R)({size:"sm"}),children:["Pricing ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})]})})]})}))})}),(0,b.jsx)(e.N,{title:`As checked on ${i}`,meta:"Official pages",children:(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:k.map(([a,c],d)=>(0,b.jsxs)("span",{children:[d>0&&" · ",(0,b.jsx)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",children:a})]},a))})}),(0,b.jsx)(e.N,{title:"No longer free, or not worth it",flush:!0,children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:h.o,children:[(0,b.jsx)(h.U,{head:["Provider","Why"]}),(0,b.jsx)("tbody",{children:m.map(([a,c])=>(0,b.jsxs)("tr",{className:h.C,children:[(0,b.jsx)("td",{className:h.z,children:(0,b.jsx)("b",{className:"font-medium",children:a})}),(0,b.jsx)("td",{className:(0,p.f)(h.z,h.M,"text-ink-soft"),children:c})]},a))})]})})})]})}a.s(["default",0,x],317422)},526903,function(a){a.n(a.i(317422))}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28console%29_catalog_page_tsx_1u2_-bv4yi5oo._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[[863333,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RemoveAccountButton() from the server but RemoveAccountButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/account-actions.tsx","RemoveAccountButton"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RetestButton() from the server but RetestButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/account-actions.tsx","RetestButton");a.s(["RemoveAccountButton",0,c,"RetestButton",0,d])},207179,a=>{var b=a.i(863333);a.n(b)},273981,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call GithubSyncButton() from the server but GithubSyncButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/github-sync-button.tsx","GithubSyncButton");a.s(["GithubSyncButton",0,b])},412159,a=>{var b=a.i(273981);a.n(b)},157372,a=>{var b=a.i(907997),c=a.i(530385),d=a.i(93321),e=a.i(395936),f=a.i(803681),g=a.i(75148),h=a.i(548734),i=a.i(837137),j=a.i(109068),k=a.i(109307),l=a.i(544854),m=a.i(77608),n=a.i(462820),o=a.i(358179),p=a.i(966425),q=a.i(944571),r=a.i(322145),s=a.i(492665),t=a.i(371289),u=a.i(686921),v=a.i(45468),w=a.i(245710),x=a.i(646322),y=a.i(564371),z=a.i(160147);let A=["hosting","database","devops"].map(a=>({id:a,title:z.Z[a].label}));var B=a.i(556987),C=a.i(993835),D=a.i(362990),E=a.i(154756),F=a.i(686251),G=a.i(207179),H=a.i(801168),I=a.i(412159),J=a.i(532380);let K={ok:"ok",off:"warn",faint:"off"};function L({hint:a}){return(0,b.jsxs)("div",{className:`mt-0.5 flex items-start gap-1.5 text-[12px] ${"faint"===a.tone?"text-ink-faint":""}`,children:[(0,b.jsx)("span",{className:"mt-px",children:(0,b.jsx)(F.Z,{state:K[a.tone],size:14})}),(0,b.jsx)("span",{children:a.text})]})}function M({m:a}){return a?"repos"in a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.repos}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" repos · ",a.linked," linked"]})]}):0===a.total?(0,b.jsx)("span",{className:"text-ink-faint",children:"—"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"font-mono",children:a.on}),(0,b.jsxs)("span",{className:"text-ink-faint",children:[" of ",a.total]}),a.fresh>0&&(0,b.jsxs)("span",{className:"ml-1.5 rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:[a.fresh," new"]})]}):(0,b.jsx)("span",{className:"text-ink-faint",children:"—"})}function N({term:a,children:c}){return(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("dt",{className:"text-[12px] text-ink-faint",children:a}),(0,b.jsx)("dd",{className:"text-[13px]",children:c})]})}let O="px-[18px] pb-1 pt-4 text-[13px] font-medium text-ink-soft";function P({provider:a,accounts:c,demo:d}){let e=u.m[a],f=e.multiAccount||0===c.length;return(0,b.jsxs)(b.Fragment,{children:[c.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h3",{className:O,children:1===c.length?"Account":`Accounts (${c.length})`}),(0,b.jsx)("ul",{className:"border-b border-line",children:c.map(c=>{let f=`${e.name} \xb7 ${(0,B.G)(c.label)}`;return(0,b.jsxs)("li",{className:"border-t border-line px-[18px] py-3 first:border-t-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(E.c,{name:c.label}),(0,b.jsx)("span",{className:"ml-auto",children:c.problem?(0,b.jsx)(F.F,{state:"err",children:(0,B.G)(c.problem)}):(0,b.jsx)(F.F,{state:"ok",children:d?"Demo account":"Connected"})})]}),(0,b.jsxs)("dl",{className:"mt-2 grid grid-cols-2 gap-x-4 gap-y-2 max-[520px]:grid-cols-1",children:[(0,b.jsx)(N,{term:"Credential",children:c.credentialKind}),(0,b.jsx)(N,{term:"Expires",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.expires})}),(0,b.jsxs)(N,{term:"Access",children:[(0,b.jsx)("span",{className:"text-ink-soft",children:c.scopeNote}),c.hint&&(0,b.jsx)(L,{hint:c.hint})]}),(0,b.jsx)(N,{term:"Monitored",children:(0,b.jsx)(M,{m:c.monitored})}),(0,b.jsx)(N,{term:"Last sync",children:(0,b.jsx)("span",{className:"text-ink-soft",children:c.lastSync})})]}),(0,b.jsxs)("div",{className:"mt-2.5 flex flex-wrap gap-1.5",children:[!c.problem&&"github_write"!==a&&("github"===a?(0,b.jsx)(I.GithubSyncButton,{accountId:c.id}):(0,b.jsx)(J.SyncButton,{accountId:c.id,title:f,watchNew:c.watchNew,kind:v.f[a]})),!c.unreadable&&(0,b.jsx)(G.RetestButton,{accountId:c.id}),(0,b.jsx)(H.AccountDialog,{provider:a,replace:{id:c.id,label:c.label},primary:null!==c.problem}),(0,b.jsx)(G.RemoveAccountButton,{accountId:c.id,title:f})]})]},c.id)})})]}),f?(0,b.jsxs)("section",{"aria-label":0===c.length?`Connect ${e.name}`:"Add another account",children:[(0,b.jsx)("h3",{className:O,children:0===c.length?`Connect ${e.name}`:"Add another account"}),(0,b.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft",children:"The credential is encrypted before it's saved and never shown again."}),(0,b.jsx)(H.AccountForm,{provider:a})]}):(0,b.jsxs)("p",{className:"px-[18px] py-4 text-[12.5px] text-ink-soft",children:["One ",e.name," account per Watchbell. Replace its credential above, or remove it to connect a different one."]})]})}var Q=a.i(103493);let R={env:{state:"off",text:"Not set up"},none:{state:"off",text:"Not connected"},ok:{state:"ok",text:"Connected"},reconnect:{state:"err",text:"Reconnect needed"},problem:{state:"warn",text:"Connected · last run failed"}};async function S({searchParams:a}={}){var E,F;let G,H=await (0,k.B)("owner");if(!H.ok)return(0,b.jsx)(g.f,{role:H.member.role});let I="drive"===(G=Array.isArray(E=(await a)?.provider)?E[0]:E)?"drive":G&&u.L.includes(G)?G:null,J=(0,s.f)().OPS_ENCRYPTION_KEY,[K,L]=await Promise.all([(0,h.f)().select().from(i.accounts).orderBy((0,c.M)(i.accounts.createdAt)),(0,h.f)().select({accountId:i.resources.accountId,kind:i.resources.kind,monitored:i.resources.monitored,firstSeenAt:i.resources.firstSeenAt,goneAt:i.resources.goneAt}).from(i.resources).where((0,d.y)(i.resources.kind,Object.values(v.f)))]),[M,N,O]=await Promise.all([(0,r.f)(K.map(a=>a.id)),(0,q.w)(),(0,p.M)()]),T=(0,t.W)(),U=K.map(a=>{let b="drive"===a.provider||T?null:(0,j.A)((0,o.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},J));return{...a,unreadable:null!==b,problem:b??("error"===a.status?a.lastError:null)}}),V=new Date,W=U.filter(a=>a.problem),X=(0,y.O)(null!==(0,m.p)(),U.find(a=>"drive"===a.provider)??null),Y=(F=U.filter(a=>"drive"!==a.provider),A.map(({id:a,title:b})=>({section:a,title:b,tiles:u.L.filter(b=>z.D[b]===a).map(a=>{let b=F.filter(b=>b.provider===a);return{provider:a,accounts:b.length,attention:b.filter(a=>a.problem).length}})})).filter(a=>a.tiles.length>0)),Z="grid grid-cols-[repeat(auto-fill,minmax(230px,1fr))] gap-2.5",$="mb-2 text-[13px] font-medium text-ink-soft";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.L,{crumbs:[{label:"Manage"},{label:"Connections"}],title:"Connections",sub:`Credentials are encrypted (AES-256-GCM) before they're stored. The key lives in ${n.n.keyHome}, and credentials never reach the browser. Sync lists everything in an account, and you choose what the console watches.`}),W.length>0&&(0,b.jsxs)(f.M,{tone:"danger",title:`${W.length} connection${W.length>1?"s need":" needs"} attention`,children:[W.map(a=>`${a.provider} \xb7 ${(0,B.G)(a.label)}`).join(", "),". Data from ",W.length>1?"these accounts is":"this account is"," not being updated."]}),Y.map(a=>(0,b.jsxs)("section",{"aria-labelledby":`sec-${a.section}`,"data-section":a.section,children:[(0,b.jsx)("h2",{id:`sec-${a.section}`,className:$,children:a.title}),(0,b.jsx)("div",{className:Z,children:a.tiles.map(a=>{let c,d=u.m[a.provider];return(0,b.jsx)(D.ProviderDrawer,{name:d.name,note:d.note,icon:d.icon,line:0===a.accounts?{state:"off",text:"Not connected"}:a.attention>0?{state:"err",text:1===a.attention&&1===a.accounts?"Needs attention":`${a.attention} of ${a.accounts} ${1===a.attention?"needs":"need"} attention`}:{state:"ok",text:1===a.accounts?"Connected":`${a.accounts} accounts connected`},defaultOpen:I===a.provider,children:(0,b.jsx)(P,{provider:a.provider,accounts:(c=a.provider,U.filter(a=>a.provider===c).map(a=>{let b=(0,v.K)(c);return{id:a.id,label:a.label,credentialKind:a.credentialKind,scopeNote:a.scopeNote,hint:(0,x.f)(a.provider,M.get(a.id),a.scopeNote),expires:(0,w.A)(a.expiresAt,V),lastSync:(0,w.K)(a.lastSyncAt,V),problem:a.problem,unreadable:a.unreadable,watchNew:a.watchNew,monitored:"github"===c?N.get(a.id)??null:b?(0,v.D)(L.filter(b=>b.accountId===a.id),V,b):null}})),demo:T})},a.provider)})})]},a.section)),(0,b.jsxs)("section",{"aria-labelledby":"sec-manage","data-section":"manage",children:[(0,b.jsx)("h2",{id:"sec-manage",className:$,children:"Manage"}),(0,b.jsx)("div",{className:Z,children:(0,b.jsx)(D.ProviderDrawer,{name:"Google Drive",note:"Monthly backups. The app can only see the files it creates (drive.file).",icon:"drive",line:R[X.kind],defaultOpen:"drive"===I,children:(0,b.jsxs)("div",{className:"px-[18px] py-4",children:[(0,b.jsx)(C.f,{state:X,folderName:(0,l.A)(O),showDisconnect:!0}),(0,b.jsxs)("p",{className:"mt-3 text-[12.5px] text-ink-soft",children:["Schedule, history and restore are on ",(0,b.jsx)(e.default,{href:"/backups",children:"Backups"}),"."]})]})})})]}),(0,b.jsx)(Q.f,{})]})}a.s(["default",0,S],157372)},19251,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ProviderDrawer() from the server but ProviderDrawer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/connections/provider-drawer.tsx","ProviderDrawer");a.s(["ProviderDrawer",0,b])},362990,a=>{var b=a.i(19251);a.n(b)}],476227,function(a){a.n(a.i(157372))}];
2
+
3
+ //# sourceMappingURL=src_app_%28console%29_connections_02upf_c41dauw._.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:{name:"Vercel",icon:"triangle",credentialKind:"Access token",createUrl:"https://vercel.com/account/settings/tokens",needs:["Scope: your account","An expiry date. The console warns you 14 days before it ends."],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:{name:"Supabase",icon:"bolt",credentialKind:"Scoped access token",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)"],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:{name:"Neon",icon:"database",credentialKind:"API key",createUrl:"https://console.neon.tech/app/settings/api-keys",needs:["A personal or project API key. Neon has no read-only keys."],accessNote:"All projects (no read-only option)",multiAccount:!0,note:"No read-only keys exist, so keys stay on the server."},firebase:{name:"Firebase",icon:"flame",credentialKind:"Service account JSON",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"],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:{name:"Turso",icon:"database",credentialKind:"Platform API token",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"],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:{name:"Upstash",icon:"bolt",credentialKind:"Developer API key",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"],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:{name:"Cloudflare",icon:"cloud",credentialKind:"API token",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)"],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:{name:"GitHub",icon:"github",credentialKind:"Fine-grained token",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."],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:{name:"GitHub (PR write)",icon:"github",credentialKind:"Fine-grained token",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."],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)("70b9d54d141c0b3fcffa41b4e43bfef154b034fda8",r.callServer,void 0,r.findSourceMapURL,"addAccount"),t=(0,r.createServerReference)("60efc45e72e20d78a226aefedfc781d35967e742b2",r.callServer,void 0,r.findSourceMapURL,"checkCredential"),u=(0,r.createServerReference)("60160946b5377d56151f8d02f816374283dbd128ad",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};a.s(["AccountDialog",0,function({provider:a,replace:c,triggerLabel:d,primary:e}){let f=q[a],h=v[f.icon],[j,r]=(0,k.useState)(!1),[w,x]=(0,k.useTransition)(),[y,z]=(0,k.useState)(""),A=(0,m.useMask)(),[B,C]=(0,k.useState)(""),[D,E]=(0,k.useState)({}),[F,G]=(0,k.useState)(null);function H(a){r(a),a||(z(""),C(""),E({}),G(null))}let I=f.credentialKind.toLowerCase();return(0,b.jsxs)(p.N,{open:j,onOpenChange:H,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)(h,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(p.F,{className:"text-base",children:c?`Replace credential \xb7 ${f.name} \xb7 ${A("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.jsxs)("div",{className:"px-[18px] pt-1.5",children:[!c&&(0,b.jsx)(n.O,{id:"acc-name",label:"Account name",help:"Shown next to everything that comes from this account.",error:D.label,children:(0,b.jsx)("input",{id:"acc-name",value:y,onChange:a=>z(a.target.value),placeholder:"vercel"===a?"acme":"utama",className:n.S})}),(0,b.jsx)(n.O,{id:"acc-cred",label:f.credentialKind,error:D.credential,help:(0,b.jsxs)("a",{href:f.createUrl,target:"_blank",rel:"noopener noreferrer",children:["Create one ",(0,b.jsx)(g.f,{size:12,className:"inline"})]}),children:f.json?(0,b.jsx)("textarea",{id:"acc-cred",spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:B,onChange:a=>C(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:"acc-cred",type:"password",spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:B,onChange:a=>C(a.target.value),className:n.S,placeholder:`Paste the ${I}`})}),(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))})]}),F&&(0,b.jsxs)("div",{className:`mb-3.5 rounded-lg px-3 py-2.5 text-[13px] ${F.ok?"bg-ok-soft":"bg-err-soft"}`,role:"status",children:[(0,b.jsx)(o.F,{state:F.ok?"ok":"err",children:F.ok?"Connected":"Couldn't connect"}),(0,b.jsx)("ul",{className:"mt-1 list-disc pl-[18px]",children:F.ok?[F.summary,...F.details].map(a=>(0,b.jsx)("li",{children:a},a)):(0,b.jsx)("li",{children:F.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)(n.K,{onClick:function(){x(async()=>{let b=await t(a,B);E(b.ok?{}:b.fieldErrors??{}),G(b.ok?b.data??null:b.fieldErrors?null:{ok:!1,kind:"transient",error:b.error})})},disabled:w,children:"Test connection"}),(0,b.jsx)(n.K,{onClick:()=>H(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(n.K,{variant:"primary",onClick:function(){x(async()=>{let b=c?await u(c.id,B):await s(a,y,B);E(b.ok?{}:b.fieldErrors??{}),b.data&&G(b.data),b.ok?(l.c.success(b.message),H(!1)):b.fieldErrors||b.data||l.c.error(b.error)})},disabled:w,children:w?"Working…":c?"Save":"Connect"})]})]})]})}],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)("70ac3db616c51954af559e9f0df890c927e72850b1",j.callServer,void 0,j.findSourceMapURL,"saveSyncSelection"),l=(0,j.createServerReference)("406e9659b3b2917712019f661d62e08449a1409914",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)("70e4599f2d128405abc467d0f8187f7a76e0120b27",r.callServer,void 0,r.findSourceMapURL,"addAccount"),t=(0,r.createServerReference)("60bbe9a36e034256d118d22cf4301b6bd143d4e107",r.callServer,void 0,r.findSourceMapURL,"checkCredential"),u=(0,r.createServerReference)("60be53839c6cf30fe520c6754d31002acc4788ae8e",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)("704d64beb4e9a29a6721da648f075554ba67901873",j.callServer,void 0,j.findSourceMapURL,"saveSyncSelection"),l=(0,j.createServerReference)("40b335eea36c7a45f3b068a1679480900a6e7626a8",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
@@ -0,0 +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)("4027a485ae04661ca5091e0540a06406367b563ed8",h.callServer,void 0,h.findSourceMapURL,"removeAccount"),j=(0,h.createServerReference)("40f73c1dddc4d899d77508616ddc82692145165668",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)("40124cb62d55cfa5d6d8522fddcb759e31003eb375",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("Something went wrong. 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
+
3
+ //# sourceMappingURL=src_app_%28console%29_connections_1fmp_anbkapur._.js.map