watchbell 1.2.6 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/package.json +1 -1
  2. package/server/.next/BUILD_ID +1 -1
  3. package/server/.next/build-manifest.json +3 -3
  4. package/server/.next/prerender-manifest.json +3 -3
  5. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
  6. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +60 -64
  7. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  8. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  9. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
  10. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +60 -64
  11. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  12. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
  14. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +60 -64
  15. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
  18. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +60 -64
  19. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
  22. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +60 -64
  23. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
  26. package/server/.next/server/app/(console)/(private)/ai/models/page.js +60 -64
  27. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
  30. package/server/.next/server/app/(console)/(private)/ai/page.js +60 -64
  31. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  32. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
  34. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +60 -64
  35. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  36. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
  38. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +60 -64
  39. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
  42. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +60 -64
  43. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
  46. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +60 -64
  47. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  48. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  49. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
  50. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +60 -64
  51. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  52. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  53. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
  54. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +60 -64
  55. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  56. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  57. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
  58. package/server/.next/server/app/(console)/alerts/page.js +60 -64
  59. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  60. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  61. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +86 -56
  62. package/server/.next/server/app/(console)/apps/[id]/page.js +66 -68
  63. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
  66. package/server/.next/server/app/(console)/apps/page.js +63 -66
  67. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  68. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  69. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
  70. package/server/.next/server/app/(console)/backups/page.js +60 -64
  71. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  72. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  73. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
  74. package/server/.next/server/app/(console)/catalog/page.js +60 -64
  75. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  76. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  77. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
  78. package/server/.next/server/app/(console)/connections/page.js +60 -64
  79. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  80. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  81. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
  82. package/server/.next/server/app/(console)/d1/page.js +60 -64
  83. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +37 -17
  86. package/server/.next/server/app/(console)/deployments/page.js +63 -66
  87. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  88. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  89. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
  90. package/server/.next/server/app/(console)/dns/page.js +60 -64
  91. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  92. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  93. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
  94. package/server/.next/server/app/(console)/domains/page.js +60 -64
  95. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  96. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  97. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
  98. package/server/.next/server/app/(console)/events/page.js +60 -64
  99. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  100. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  101. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
  102. package/server/.next/server/app/(console)/firebase/page.js +60 -64
  103. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
  106. package/server/.next/server/app/(console)/logs/page.js +60 -64
  107. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  108. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  109. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
  110. package/server/.next/server/app/(console)/manage/sections/page.js +60 -64
  111. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  112. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  113. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
  114. package/server/.next/server/app/(console)/neon/page.js +60 -64
  115. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  116. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  117. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  118. package/server/.next/server/app/(console)/overview/page.js +66 -69
  119. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  120. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  121. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
  122. package/server/.next/server/app/(console)/repos/[id]/page.js +64 -67
  123. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
  126. package/server/.next/server/app/(console)/repos/page.js +62 -65
  127. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  128. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  129. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +21 -21
  130. package/server/.next/server/app/(console)/settings/page.js +60 -64
  131. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  132. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  133. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
  134. package/server/.next/server/app/(console)/sql/page.js +60 -64
  135. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  136. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  137. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
  138. package/server/.next/server/app/(console)/status/page.js +60 -64
  139. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  140. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  141. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  142. package/server/.next/server/app/(console)/supabase/page.js +60 -64
  143. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
  146. package/server/.next/server/app/(console)/topology/page.js +60 -64
  147. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  148. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  149. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
  150. package/server/.next/server/app/(console)/turso/page.js +60 -64
  151. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  152. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  153. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
  154. package/server/.next/server/app/(console)/upstash/page.js +60 -64
  155. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  156. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  157. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
  158. package/server/.next/server/app/(console)/uptime/page.js +60 -64
  159. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  160. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  161. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
  162. package/server/.next/server/app/(console)/welcome/page.js +60 -64
  163. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  164. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  165. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  166. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  167. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/_global-error.html +1 -1
  169. package/server/.next/server/app/_global-error.rsc +2 -2
  170. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  171. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  172. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  173. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  174. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  175. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  176. package/server/.next/server/app/_not-found.html +1 -1
  177. package/server/.next/server/app/_not-found.rsc +3 -3
  178. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  179. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  180. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  181. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  182. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  183. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  184. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
  185. package/server/.next/server/app/api/collect/route.js +46 -48
  186. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  187. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
  188. package/server/.next/server/app/api/daily/route.js +46 -48
  189. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  190. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
  191. package/server/.next/server/app/api/telegram/webhook/route.js +46 -48
  192. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  193. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  194. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  195. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  196. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  197. package/server/.next/server/app/mfa/page.js +25 -25
  198. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  199. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  200. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  201. package/server/.next/server/app/mfa/setup/page.js +25 -25
  202. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  203. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  204. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  205. package/server/.next/server/app/page.js.nft.json +1 -1
  206. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  207. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  208. package/server/.next/server/app/s/[slug]/page.js +7 -7
  209. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  210. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  211. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  212. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  213. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  214. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  215. package/server/.next/server/app/signin/page.js +28 -29
  216. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  217. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/chunks/{[root-of-the-server]__0655w3_d4ejfb._.js → [root-of-the-server]__0-94urkhm871c._.js} +1 -1
  219. package/server/.next/server/chunks/{[root-of-the-server]__1bg8grh9kfims._.js → [root-of-the-server]__01hgqxx2a0okv._.js} +2 -2
  220. package/server/.next/server/chunks/{[root-of-the-server]__14-pt1-s1o5ex._.js → [root-of-the-server]__0c2heh-0pjyob._.js} +1 -1
  221. package/server/.next/server/chunks/{[root-of-the-server]__12lrpnd-dhawi._.js → [root-of-the-server]__0c9y_zg74k4oe._.js} +2 -2
  222. package/server/.next/server/chunks/{[root-of-the-server]__1kwldcrcmwc0x._.js → [root-of-the-server]__0fmt9z8-xukob._.js} +1 -1
  223. package/server/.next/server/chunks/{[root-of-the-server]__0whk62ebfu1u0._.js → [root-of-the-server]__0i3h5covkd6_t._.js} +1 -1
  224. package/server/.next/server/chunks/{[root-of-the-server]__1nm0sjvuf9jrb._.js → [root-of-the-server]__0inf2zuuqjrq6._.js} +2 -2
  225. package/server/.next/server/chunks/{[root-of-the-server]__09dk9k-9q4d16._.js → [root-of-the-server]__0rpys5i04hzww._.js} +2 -2
  226. package/server/.next/server/chunks/{[root-of-the-server]__0x4_tt5v17fx3._.js → [root-of-the-server]__0xfgfo-ks4_e8._.js} +2 -2
  227. package/server/.next/server/chunks/{[root-of-the-server]__1c1nhm-kj5kqu._.js → [root-of-the-server]__0zjhlf_yodox3._.js} +1 -1
  228. package/server/.next/server/chunks/{[root-of-the-server]__0c0pkv3an1lg-._.js → [root-of-the-server]__130_vkgsongq_._.js} +2 -2
  229. package/server/.next/server/chunks/{[root-of-the-server]__1-xgpr5q148ze._.js → [root-of-the-server]__14vj8ywy5spa2._.js} +1 -1
  230. package/server/.next/server/chunks/{[root-of-the-server]__17jngidngj3rb._.js → [root-of-the-server]__161v5qfd5qk2p._.js} +2 -2
  231. package/server/.next/server/chunks/[root-of-the-server]__16u9d_hm9lefl._.js +3 -0
  232. package/server/.next/server/chunks/{[root-of-the-server]__0s8wo4espz6eu._.js → [root-of-the-server]__1_df6aphi-pfk._.js} +2 -2
  233. package/server/.next/server/chunks/{[root-of-the-server]__1r24segt1slar._.js → [root-of-the-server]__1j527a18gh10b._.js} +2 -2
  234. package/server/.next/server/chunks/[root-of-the-server]__1k-7jan2fsbys._.js +3 -0
  235. package/server/.next/server/chunks/{[root-of-the-server]__1lq25064c4ny_._.js → [root-of-the-server]__1uad-kugxmkx8._.js} +2 -2
  236. package/server/.next/server/chunks/_0-ub844lc_z_a._.js +2 -2
  237. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  238. package/server/.next/server/chunks/_05hhw0eql5-dv._.js +5 -3
  239. package/server/.next/server/chunks/_08fv52mqg619m._.js +11 -9
  240. package/server/.next/server/chunks/_08z7lmk32r__5._.js +2 -2
  241. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  242. package/server/.next/server/chunks/_1-pv4d4qhe7to._.js +2 -2
  243. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  244. package/server/.next/server/chunks/_13dlt388gceez._.js +11 -9
  245. package/server/.next/server/chunks/_1fj4vzjpusyn8._.js +5 -0
  246. package/server/.next/server/chunks/_1l-68brbq289m._.js +5 -3
  247. package/server/.next/server/chunks/{_1476vtrt9101m._.js → _1rskctyr7yt-b._.js} +2 -2
  248. package/server/.next/server/chunks/{src_01fd1ve-xj9xo._.js → src_0j8daco-75zka._.js} +2 -2
  249. package/server/.next/server/chunks/{src_049aazgsmienv._.js → src_1lvv9wiag2d8-._.js} +2 -2
  250. package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
  251. package/server/.next/server/chunks/src_lib_0n-8zjgq6mcc7._.js +3 -0
  252. package/server/.next/server/chunks/src_lib_1nkahiclbn55q._.js +3 -0
  253. package/server/.next/server/chunks/src_lib_1y5l54dwaet39._.js +3 -0
  254. package/server/.next/server/chunks/src_private_0uwb-eyaxy9b3._.js +5 -0
  255. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  256. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
  257. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
  258. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
  259. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
  260. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
  261. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
  262. package/server/.next/server/chunks/ssr/{[externals]__0d7rvi3tmo9zf._.js → [externals]__02s9k1gg9qqkm._.js} +1 -1
  263. package/server/.next/server/chunks/ssr/[root-of-the-server]__03mal5uo1rzg4._.js +3 -0
  264. package/server/.next/server/chunks/ssr/[root-of-the-server]__05_98ql5tgeii._.js +3 -0
  265. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0xscr-8y9a4cj._.js → [root-of-the-server]__07k_84t5-d55n._.js} +2 -2
  266. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0amfa4t2-in-x._.js → [root-of-the-server]__09j1po2u91fp3._.js} +2 -2
  267. package/server/.next/server/chunks/ssr/{[root-of-the-server]__08u1c2f2i7ru4._.js → [root-of-the-server]__0e1s_5gg-u3iu._.js} +1 -1
  268. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h2hxe0vl-2x0._.js +1 -1
  269. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
  270. package/server/.next/server/chunks/ssr/[root-of-the-server]__0s2of3mcou177._.js +3 -0
  271. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1uzqsxyxwffdo._.js → [root-of-the-server]__0skfdezx5rxie._.js} +2 -2
  272. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  273. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e9tlsk1gl8lw._.js +4 -0
  274. package/server/.next/server/chunks/ssr/[root-of-the-server]__1sw2q1p1t59y8._.js +1 -1
  275. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1o6cysvbfkltz._.js → [root-of-the-server]__1tj-iwvrxfd1a._.js} +1 -1
  276. package/server/.next/server/chunks/ssr/[root-of-the-server]__1v3b498_j-68t._.js +4 -0
  277. package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
  278. package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
  279. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  280. package/server/.next/server/chunks/ssr/{_07f-svx_l12lw._.js → _0_yyszoyzyccn._.js} +2 -2
  281. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  282. package/server/.next/server/chunks/ssr/_0ao-urx9ftj1s._.js +3 -0
  283. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  284. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  285. package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
  286. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  287. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
  288. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  289. package/server/.next/server/chunks/ssr/_0dvz4dndt6lkf._.js +3 -0
  290. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
  291. package/server/.next/server/chunks/ssr/{_0-wc6f6p0c8lv._.js → _0gmw45sb1llld._.js} +2 -2
  292. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
  293. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
  294. package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +4 -0
  295. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
  296. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  297. package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
  298. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
  299. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  300. package/server/.next/server/chunks/ssr/{_1476vtrt9101m._.js → _0rw2pberdmaa5._.js} +2 -2
  301. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
  302. package/server/.next/server/chunks/ssr/{_0jqrjb30bblvy._.js → _0tu64jsmbyx4_._.js} +2 -2
  303. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
  304. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  305. package/server/.next/server/chunks/ssr/{_1edj756n1im8t._.js → _0w3mz8059j-pk._.js} +2 -2
  306. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  307. package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +4 -0
  308. package/server/.next/server/chunks/ssr/{_1bc69myq83woe._.js → _0y5ov4kk2q81r._.js} +2 -2
  309. package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +4 -0
  310. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  311. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  312. package/server/.next/server/chunks/ssr/{_07-dfx0qix52k._.js → _10oqiz6hmf92q._.js} +2 -2
  313. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  314. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
  315. package/server/.next/server/chunks/ssr/_12wjuabpo0ofk._.js +3 -0
  316. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  317. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  318. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
  319. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  320. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
  321. package/server/.next/server/chunks/ssr/_1dp5bgqob29-f._.js +3 -0
  322. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
  323. package/server/.next/server/chunks/ssr/_1fj4vzjpusyn8._.js +5 -0
  324. package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
  325. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  326. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
  327. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  328. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  329. package/server/.next/server/chunks/ssr/{_1r7o1vx4875hu._.js → _1ktvwngz0lzjr._.js} +2 -2
  330. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
  331. package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
  332. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
  333. package/server/.next/server/chunks/ssr/_1rskctyr7yt-b._.js +3 -0
  334. package/server/.next/server/chunks/ssr/{_1j61tfpfj2t9d._.js → _1vjm7-shohnh7._.js} +2 -2
  335. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
  336. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  337. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
  338. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
  339. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
  340. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1--1mjfnoprr2.js +3 -0
  341. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
  342. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
  343. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
  344. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
  345. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
  346. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
  347. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
  348. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +1 -1
  349. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
  350. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
  351. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  352. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  353. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
  354. package/server/.next/server/chunks/ssr/{src_1bg_io_v7gt71._.js → src_04o0-kzfmcnim._.js} +2 -2
  355. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  356. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  357. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  358. package/server/.next/server/chunks/ssr/src_0jxjbvkvg0bjg._.js +3 -0
  359. package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +3 -0
  360. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  361. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +3 -1
  362. package/server/.next/server/chunks/ssr/src_0yxy3bklfxtzz._.js +3 -0
  363. package/server/.next/server/chunks/ssr/src_1-k3gvxaqli74._.js +3 -0
  364. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  365. package/server/.next/server/chunks/ssr/src_1ckoccd8qvnje._.js +1 -1
  366. package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +8 -0
  367. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  368. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  369. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  370. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  371. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  372. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  373. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  374. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  375. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  376. package/server/.next/server/chunks/ssr/{src_app_(console)_0e832kna-734m._.js → src_app_(console)_0-vcbt2icvguc._.js} +2 -2
  377. package/server/.next/server/chunks/ssr/src_app_(console)_05h6-wpd078oj._.js +3 -0
  378. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
  379. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_10xvt--29v-ed._.js +3 -0
  380. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  381. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  382. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  383. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  384. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  385. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  386. package/server/.next/server/chunks/ssr/src_app_(console)_deployments_06a83hsex1kba._.js +1 -1
  387. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  388. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  389. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  390. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  391. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  392. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  393. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  394. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +2 -2
  395. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  396. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  397. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  398. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  399. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  400. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  401. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  402. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  403. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  404. package/server/.next/server/chunks/ssr/src_app_signin_0obhr-33tppu8._.js +3 -0
  405. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  406. package/server/.next/server/chunks/ssr/src_components_list-filter_tsx_1zp29997g97yd._.js +1 -1
  407. package/server/.next/server/chunks/ssr/{_0ls7sornjrg95._.js → src_lib_0-nc33gvdtkg5._.js} +2 -2
  408. package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
  409. package/server/.next/server/chunks/ssr/src_lib_0n-8zjgq6mcc7._.js +3 -0
  410. package/server/.next/server/chunks/ssr/src_lib_10d18lqjfj8je._.js +3 -0
  411. package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
  412. package/server/.next/server/chunks/ssr/src_lib_1y5l54dwaet39._.js +3 -0
  413. package/server/.next/server/chunks/ssr/{src_lib_demo_09ht4doed9eqi._.js → src_lib_demo_0sbw5n9n4mpzx._.js} +2 -2
  414. package/server/.next/server/chunks/ssr/src_lib_providers_github-browse_ts_1apskpn4fe9qr._.js +3 -0
  415. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  416. package/server/.next/server/chunks/ssr/src_private_1b8918m4jsjpi._.js +5 -0
  417. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  418. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  419. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  420. package/server/.next/server/functions-config-manifest.json +3 -0
  421. package/server/.next/server/middleware-build-manifest.js +3 -3
  422. package/server/.next/server/pages/404.html +1 -1
  423. package/server/.next/server/pages/500.html +1 -1
  424. package/server/.next/server/preview-props.json +3 -3
  425. package/server/.next/server/server-reference-manifest.js +1 -1
  426. package/server/.next/server/server-reference-manifest.json +208 -170
  427. package/server/.next/static/chunks/{3o45i7xbzm0w-.js → 05uco41_mcq9o.js} +1 -1
  428. package/server/.next/static/chunks/08fdgz3f6aeh3.js +1 -0
  429. package/server/.next/static/chunks/{36e9fpbpqndu5.js → 0a77yea00jt0y.js} +1 -1
  430. package/server/.next/static/chunks/0bqipdtnu2hws.js +1 -0
  431. package/server/.next/static/chunks/{041ko45qawas9.js → 0o53bcdd6gtyu.js} +1 -1
  432. package/server/.next/static/chunks/{2j9fpx77gfesr.js → 0p5xwnif2xe2v.js} +1 -1
  433. package/server/.next/static/chunks/{422gxqrwveuyc.js → 0p_qyask2har9.js} +1 -1
  434. package/server/.next/static/chunks/{2kurh5s5u8_4-.js → 0s44z2_pzghcu.js} +1 -1
  435. package/server/.next/static/chunks/{3ymogjp57edbj.js → 0tw_we2nleycj.js} +1 -1
  436. package/server/.next/static/chunks/{3r3-9oir5c1ul.js → 0uom2d_-nh45g.js} +1 -1
  437. package/server/.next/static/chunks/{3cjokqd7600_0.js → 0vqfc5ez__g1s.js} +1 -1
  438. package/server/.next/static/chunks/{0o6_y6xu__s6q.js → 0znki_inst5fe.js} +1 -1
  439. package/server/.next/static/chunks/{0x6eipkda93fh.js → 11r3cljnu3lrb.js} +1 -1
  440. package/server/.next/static/chunks/{3kqiccrh_bnpl.js → 12rf9fj_wat4k.js} +2 -2
  441. package/server/.next/static/chunks/{243ijh4fs2zsq.js → 12ryyhs-tt27p.js} +1 -1
  442. package/server/.next/static/chunks/{1ghfc_9g9io17.js → 12z4gcgh75y3h.js} +1 -1
  443. package/server/.next/static/chunks/{299jy1-g0cm8n.js → 13t0_-lm77ctu.js} +1 -1
  444. package/server/.next/static/chunks/{1eeqy_pc_llv4.js → 143_uak5v6uky.js} +1 -1
  445. package/server/.next/static/chunks/{2ziborutqth-2.js → 16f-5rrbswao-.js} +1 -1
  446. package/server/.next/static/chunks/{3hpyrqm98toxv.js → 1andb44i5y-5c.js} +1 -1
  447. package/server/.next/static/chunks/{0-fov5gyz32mj.js → 1d5jx8nbj9hio.js} +1 -1
  448. package/server/.next/static/chunks/{0m40tf7-fh2ht.js → 1hzn5sr2wq7_6.js} +1 -1
  449. package/server/.next/static/chunks/{1qug5gmo2rbaf.js → 1jfri9y7a54t3.js} +1 -1
  450. package/server/.next/static/chunks/1lq20aqwgdq8w.js +1 -0
  451. package/server/.next/static/chunks/{35ua22np4u9jr.js → 1ot9e084ramy3.js} +1 -1
  452. package/server/.next/static/chunks/{2jdlcu25qy00d.js → 1q0dfli6xlok0.js} +1 -1
  453. package/server/.next/static/chunks/{3oe302ug_esoe.js → 1sexa68j4kb7d.js} +1 -1
  454. package/server/.next/static/chunks/{4545xu4sehvxc.js → 1xaww6l378y_h.js} +1 -1
  455. package/server/.next/static/chunks/{20ujg0hz_need.js → 1xhyfwwelhzu1.js} +1 -1
  456. package/server/.next/static/chunks/{2hscqr4n7hu7n.js → 1zid1do5vuxcq.js} +1 -1
  457. package/server/.next/static/chunks/{11_iva96ceble.js → 20u3tmdb-6drr.js} +1 -1
  458. package/server/.next/static/chunks/{0zj507c7ui4jt.js → 20xid8njz36og.js} +1 -1
  459. package/server/.next/static/chunks/{1e0iyxugtm7b0.js → 223rdnw2yty48.js} +2 -2
  460. package/server/.next/static/chunks/{0x1xj431cbkfa.js → 27epf-aa_5m_r.js} +1 -1
  461. package/server/.next/static/chunks/{1urtw14pwufsv.js → 2f07frmj7udob.js} +1 -1
  462. package/server/.next/static/chunks/2gnckmw5e2mfd.js +1 -0
  463. package/server/.next/static/chunks/{1gw40u38oaj6z.js → 2i629nz4h3fqg.js} +1 -1
  464. package/server/.next/static/chunks/{2t30gqjhercob.js → 2jyi95ohxfybd.js} +1 -1
  465. package/server/.next/static/chunks/{3-xb6vd_khwfo.js → 2pjruch-2xss_.js} +1 -1
  466. package/server/.next/static/chunks/{1jc9qa7xb63lp.js → 2plrf95jah9ew.js} +1 -1
  467. package/server/.next/static/chunks/{442t8i7d46g9y.js → 2wmkryogm5g3y.js} +2 -2
  468. package/server/.next/static/chunks/2y5zgpld68mbe.js +7 -0
  469. package/server/.next/static/chunks/{1vyf467_8v-cw.js → 2zudgr23_bvy5.js} +1 -1
  470. package/server/.next/static/chunks/{2seth6dz7lydu.js → 32sed3oqb5mgw.js} +1 -1
  471. package/server/.next/static/chunks/{1zhnm25vt6hu8.js → 3a55yojb_7drl.js} +1 -1
  472. package/server/.next/static/chunks/{3zx1pe40m_ddz.js → 3b0xtqo5kfyuj.js} +1 -1
  473. package/server/.next/static/chunks/{3wl06e5yyzlwh.js → 3c79k7qsyelf1.js} +1 -1
  474. package/server/.next/static/chunks/{0-ett1b-o34r0.js → 3e8jbph5vbqrh.js} +1 -1
  475. package/server/.next/static/chunks/{1muk1ubaswhlj.js → 3ki7epe69d8mi.js} +1 -1
  476. package/server/.next/static/chunks/{1g3u_ngexgvss.js → 3tigi9c4vke8u.js} +1 -1
  477. package/server/.next/static/chunks/{1z8byc-won_tq.js → 3tqlcut9yz40q.js} +1 -1
  478. package/server/.next/static/chunks/{3xbsyym_tfj0u.js → 3y4vkm_orksj_.js} +1 -1
  479. package/server/.next/static/chunks/3zhb71t6q4f9k.js +1 -0
  480. package/server/.next/server/chunks/[root-of-the-server]__0z3hf530bwcq_._.js +0 -3
  481. package/server/.next/server/chunks/[root-of-the-server]__1p3fqi03x5du8._.js +0 -3
  482. package/server/.next/server/chunks/_0hsj1tx2ynla-._.js +0 -3
  483. package/server/.next/server/chunks/_1b1t9p1xljuql._.js +0 -5
  484. package/server/.next/server/chunks/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +0 -3
  485. package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +0 -3
  486. package/server/.next/server/chunks/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +0 -3
  487. package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +0 -3
  488. package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +0 -5
  489. package/server/.next/server/chunks/ssr/[root-of-the-server]__05gue5stvejba._.js +0 -4
  490. package/server/.next/server/chunks/ssr/[root-of-the-server]__18gcvkhrt73zc._.js +0 -3
  491. package/server/.next/server/chunks/ssr/[root-of-the-server]__1e0l6kek0ufui._.js +0 -3
  492. package/server/.next/server/chunks/ssr/[root-of-the-server]__1o63-3k1wez40._.js +0 -3
  493. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tgcpistmcbrd._.js +0 -4
  494. package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +0 -3
  495. package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +0 -3
  496. package/server/.next/server/chunks/ssr/_0hsj1tx2ynla-._.js +0 -3
  497. package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +0 -4
  498. package/server/.next/server/chunks/ssr/_1b1t9p1xljuql._.js +0 -5
  499. package/server/.next/server/chunks/ssr/_218164gkxgum_._.js +0 -4
  500. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +0 -3
  501. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +0 -8
  502. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +0 -3
  503. package/server/.next/server/chunks/ssr/src_app_(console)_0kwns5iudhgwj._.js +0 -3
  504. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +0 -3
  505. package/server/.next/server/chunks/ssr/src_app_signin_1fj68y-bbe-xr._.js +0 -3
  506. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +0 -3
  507. package/server/.next/server/chunks/ssr/src_lib_1gauld53vvpev._.js +0 -3
  508. package/server/.next/server/chunks/ssr/src_lib_1l8ej-zoyyegd._.js +0 -3
  509. package/server/.next/server/chunks/ssr/src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js +0 -3
  510. package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +0 -3
  511. package/server/.next/server/chunks/ssr/src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js +0 -3
  512. package/server/.next/server/chunks/ssr/src_lib_data_vercel-action_ts_1hvera3nwo5fp._.js +0 -3
  513. package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +0 -3
  514. package/server/.next/server/chunks/ssr/src_lib_view_14iq8onyfo7nd._.js +0 -3
  515. package/server/.next/server/chunks/ssr/src_lib_view_deploy-actions_ts_1l3rr2k-04gi4._.js +0 -3
  516. package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +0 -5
  517. package/server/.next/static/chunks/0ia5361d7hoce.js +0 -7
  518. package/server/.next/static/chunks/15_3o9t6d7ujo.js +0 -1
  519. package/server/.next/static/chunks/1c0s-ejiwfy2u.js +0 -1
  520. package/server/.next/static/chunks/2j4kmkog1zkpo.js +0 -1
  521. package/server/.next/static/chunks/2y05vm9r_wxds.js +0 -1
  522. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → VmJyuS9PCFUrRHa6THIcV}/_buildManifest.js +0 -0
  523. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → VmJyuS9PCFUrRHa6THIcV}/_clientMiddlewareManifest.js +0 -0
  524. /package/server/.next/static/{u0RcJ9L5FEEUdENisty65 → VmJyuS9PCFUrRHa6THIcV}/_ssgManifest.js +0 -0
@@ -1,8 +0,0 @@
1
- (()=>{"use strict";module.exports=[138984,a=>{var b=a.i(26972),c=a.i(427221),d=a.i(827857),e=a.i(899370),f=a.i(371289);let g=b.z.object({COLLECTOR_SECRET:c.z.string().min(32),CRON_SECRET:c.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:c.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:c.z.string().min(10)}),h=g.extend({QSTASH_CURRENT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:d.z.union([e.z.literal(""),c.z.string().min(10)]).default("")}),i=!1;a.s(["f",0,function(){try{var a=process.env;let b=("selfhost"===(0,f.c)(a)?h:g).safeParse(a);if(!b.success)throw Error(`Missing or invalid scheduler settings: ${b.error.issues.map(a=>a.path.join(".")).join(", ")}`);return b.data}catch(a){return i||(i=!0,console.warn(a instanceof Error?a.message:"Missing or invalid scheduler settings")),null}}])},736780,664892,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(358179),g=a.i(912283),h=a.i(117859),i=a.i(876808),j=a.i(521050),k=a.i(679662);let l={checks:"waiting for CI",preview:"waiting for preview",smoke:"smoke test",merging:"merging…",merged:"merged ✅","ready-manual":"ready to merge (manual)",failed:"needs a look ⚠️",timeout:"needs a look ⚠️",closed:"closed"},m=(a,b,c)=>{let d=`PR #${a}: ${l[b]}${c?` — ${c}`:""}`;return d.length>200?`${d.slice(0,199)}…`:d},n=new Set(["success","neutral","skipped"]),o=a=>"completed"!==a.status?"pending":n.has(a.conclusion??"")?"success":"failure",p={name:"watchbell[bot]",email:"watchbell-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchbell)"},q={name:"watchpost[bot]",email:"watchpost-bot@users.noreply.github.com",message:"chore(deps): update package-lock.json (Watchpost)"},r=a=>[p,q].some(b=>a.name===b.name&&a.email.toLowerCase()===b.email&&a.message.trim()===b.message),s=/^[\^~]?[0-9][0-9A-Za-z.+-]*$/,t=a=>Array.isArray(a)?a.map(t):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,t(a[b])])):a,u=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,v=/^sha512-[A-Za-z0-9+/]{86}==$/,w="(?:@[a-z0-9][a-z0-9._~-]*/)?[a-z0-9][a-z0-9._~-]*",x=RegExp(`^(?:[A-Za-z0-9_-][A-Za-z0-9._-]*/)*?node_modules/${w}(?:/node_modules/${w})*$`,"i"),y=new Set(["dev","optional","devOptional","peer"]),z=a=>!!a&&"object"==typeof a&&!Array.isArray(a),A=a=>a.slice(a.lastIndexOf("node_modules/")+13),B=(a,b,c)=>`${a}/${b}/-/${b.split("/").pop()}-${c}.tgz`,C=(a,b)=>JSON.stringify(t(a))===JSON.stringify(t(b)),D=a=>Object.fromEntries(Object.entries(a).filter(([a])=>!y.has(a))),E=a=>{try{let b=JSON.parse(a);return z(b)&&z(b.packages)?b:null}catch{return null}};a.s(["y",0,20,"X",0,["checks","preview","smoke","merging"],"w",0,15e3,"R",0,27e5,"j",0,function(a){let b=(a.checkRuns??a.actionRuns??[]).map(o);return(a.combined&&a.combined.total>0&&b.push("success"===a.combined.state?"success":"pending"===a.combined.state?"pending":"failure"),b.includes("failure"))?"failure":b.includes("pending")?"pending":"success"},"L",0,function(a){if(!a.length||a.some(a=>a.authWall))return null;let b=a.find(a=>null===a.status||a.status<200||a.status>399);return b?{mode:"http",result:"fail",reason:null===b.status?`${b.path} didn't answer within 15 seconds`:`${b.path} answered ${b.status}`}:{mode:"http",result:"pass",reason:null}},"S",0,function(a,b,c){return(401===a||403===a)&&(/vercel\.com\/(sso|login)|Authentication Required|_vercel_sso|vercel-authentication/i.test(b)||/_vercel_sso/i.test(c.get("set-cookie")??"")||"vercel"===(c.get("server")??"").toLowerCase())},"T",0,function(a,b,c){if([a,b].some(a=>null!==a&&(a=>{if(a.length>0x1900000)return!0;if(3*a.length<=0x1900000)return!1;let b=0;for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);d<128?b+=1:d<2048?b+=2:d>=55296&&d<56320&&(64512&a.charCodeAt(c+1))==56320?(b+=4,c++):b+=3}return b>0x1900000})(a)))return`lockfile too large to check (over 25 MB): ${c}`.slice(0,150);try{return function(a,b,c){let d=a=>`unexpected lockfile change ${a}`.slice(0,150),e=null===b?null:E(b),f=null===a?{packages:{}}:E(a);if(!e||!f)return d(c);if(2!==e.lockfileVersion&&3!==e.lockfileVersion||null!==a&&e.lockfileVersion!==f.lockfileVersion)return d("lockfileVersion");let g=new Set;for(let[a,b]of Object.entries(f.packages)){if(!x.test(a)||!z(b)||"string"!=typeof b.resolved||"string"!=typeof b.version)continue;let c=B("","string"==typeof b.name?b.name:A(a),b.version);b.resolved.startsWith("https://")&&b.resolved.endsWith(c)&&g.add(b.resolved.slice(0,-c.length))}for(let[a,b]of(g.size||g.add("https://registry.npmjs.org"),Object.entries(e.packages))){let e=Object.hasOwn(f.packages,a)?f.packages[a]:void 0;if(void 0!==e&&C(e,b))continue;let h=z(e)?e:null;if(""===a||!a.includes("node_modules/")){let e=""===a?z(b)&&"string"==typeof b.name?b.name:c:a;if(!z(b)||""!==a&&!h||"resolved"in b||"link"in b)return d(e);continue}if(!x.test(a)||!z(b))return d(x.test(a)?A(a):a);let i=A(a);if(void 0!==b.name&&b.name!==i&&(!h||h.name!==b.name))return d(i);let j="string"==typeof b.name?b.name:i,k=b.version;if(void 0!==b.link||"string"!=typeof k||!u.test(k)||"string"!=typeof b.integrity||!v.test(b.integrity)||"string"!=typeof b.resolved||![...g].some(a=>b.resolved===B(a,j,k))||h&&h.version===k&&!C(D(h),D(b)))return d(i)}return null}(a,b,c)}catch{return`unexpected lockfile change ${c} (couldn't be checked)`.slice(0,150)}},"H",0,a=>!!a.lockfileRequired&&!!a.lockfile&&!a.files.some(b=>b.filename===a.lockfile),"n",0,function(a,b,c){return null!==c&&c>0?{mode:"logs",result:"fail",reason:`${c} errors in the preview logs`}:b.getTime()-a.getTime()<18e4||null===c?{mode:"logs",result:"wait",reason:null}:{mode:"logs",result:"pass",reason:null}},"C",0,function(a,b,c){let d,e;try{d=JSON.parse(a),e=JSON.parse(b)}catch{return"unexpected change: package.json isn't valid JSON"}if(!d||!e||"object"!=typeof d||"object"!=typeof e)return"unexpected change: package.json isn't an object";let f=a=>{let b=structuredClone(a);for(let a of["dependencies","devDependencies"]){let d=b[a];if(d&&"object"==typeof d)for(let a of c)delete d[a]}return b};if(JSON.stringify(t(f(d)))!==JSON.stringify(t(f(e))))return"unexpected change in package.json beyond the bumped versions";for(let a of["dependencies","devDependencies"]){let b=d[a]??{},f=e[a]??{};for(let a of c){if(a in b!=a in f)return`unexpected change in package.json: ${a} added or removed`;if(a in f&&f[a]!==b[a]&&("string"!=typeof f[a]||!s.test(f[a])))return`unexpected change in package.json: ${a} isn't a plain version`}}return null},"E",0,function(a){let b=["/"];for(let c of a){let a;try{a=new URL(c).pathname||"/"}catch{continue}!b.includes(a)&&b.length<4&&b.push(a)}return b},"m",0,m,"k",0,function(a){let b=new Set([a.manifest,...a.lockfile?[a.lockfile]:[]]);for(let c of a.files)for(let a of[c.filename,c.previous])if(a&&!b.has(a))return`unexpected change in ${a}`.slice(0,150);if(!a.files.some(b=>b.filename===a.manifest))return`unexpected change: ${a.manifest} isn't changed`.slice(0,150);if(a.manifestProblem)return a.manifestProblem.slice(0,150);if(a.lockfileProblem)return a.lockfileProblem.slice(0,150);if(!a.tokenLogin||!a.commits.length||a.commits.length>20)return"couldn't confirm who wrote the PR's commits";if(a.headSha&&a.commits[a.commits.length-1].sha!==a.headSha)return"the PR's head moved while it was checked";for(let b of a.commits){if(null!==b.login&&b.login.toLowerCase()===a.tokenLogin.toLowerCase())continue;let c=b.sha.slice(0,7);if(!r(b)||!b.files||!a.lockfile)return`unexpected commit ${c} by ${b.login??b.name}`.slice(0,150);let d=b.files.find(b=>b!==a.lockfile);if(d)return`unexpected change in ${d} by commit ${c}`.slice(0,150)}return null},"f",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<1e5))&&(Math.floor(c/6e4)%2==0||null!==b&&c-b>=24e4)},"M",0,function(a){if(a.pr.merged)return{kind:"done",stage:"merged"};if("closed"===a.pr.state)return{kind:"done",stage:"closed"};if(void 0!==a.pr.base&&void 0!==a.recordedBase&&a.pr.base!==a.recordedBase)return{kind:"stop",stage:"failed",reason:`the PR's base changed to ${a.pr.base}`};if(a.pr.headSha!==a.recordedSha)return{kind:"wait",stage:"checks",reason:"new commit on the PR branch, checking again",resetSha:a.pr.headSha};let b=a.now.getTime()-a.openedAt.getTime()>27e5;return"failure"===a.checks?{kind:"stop",stage:"failed",reason:"CI failed"}:!1===a.pr.mergeable?{kind:"stop",stage:"failed",reason:"conflicts with the main branch"}:"error"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel preview failed"}:"canceled"===a.preview.state?{kind:"stop",stage:"failed",reason:"Vercel canceled the preview (an Ignored Build Step that skips previews does this), so the update wasn't smoke-tested; check it and merge by hand"}:"pending"===a.checks||null===a.pr.mergeable?b?{kind:"stop",stage:"timeout",reason:"CI not finished within 45 minutes"}:{kind:"wait",stage:"checks",reason:null}:"ready"!==a.preview.state?b?{kind:"stop",stage:"timeout",reason:"preview not ready within 45 minutes"}:{kind:"wait",stage:"preview",reason:null}:a.smoke&&"wait"!==a.smoke.result?"fail"===a.smoke.result?{kind:"stop",stage:"failed",reason:`preview smoke test failed: ${a.smoke.reason??"?"}`}:a.autoRollbackOn?{kind:"merge"}:{kind:"stop",stage:"ready-manual",reason:"PR is ready to merge, but auto-rollback is off; merge it manually"}:b?{kind:"stop",stage:"timeout",reason:"preview smoke test not finished within 45 minutes"}:{kind:"wait",stage:"smoke",reason:null}}],664892);var F=a.i(120213),G=a.i(492665),H=a.i(683439),I=a.i(751263),J=a.i(812092),K=a.i(75105),L=a.i(322145),M=a.i(976937);let N=a=>({done:!1,message:a});async function O(){let[a]=await (0,d.f)().select().from(e.accounts).where((0,b.u)(e.accounts.provider,"github_write")).orderBy((0,c.M)(e.accounts.createdAt)).limit(1);if(!a)return null;let g=(0,f.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,G.f)().OPS_ENCRYPTION_KEY);return g?{id:a.id,token:g}:"unreadable"}let P={severity:"no package at the selected severity",major:"an update jumps a major version",nothing:"nothing can be updated"};async function Q(a){let[c]=await (0,d.f)().select({version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appSecurity).where((0,b.u)(e.appSecurity.resourceId,a)).limit(1);return c?(0,i.p)({version:c.version,status:c.status,findings:Array.isArray(c.findings)?c.findings:[]}):null}async function R(a){let c=await (0,d.f)().select({package:e.dependencyVulns.package,installedVersion:e.dependencyVulns.installedVersion,fixedVersion:e.dependencyVulns.fixedVersion,vulnId:e.dependencyVulns.vulnId,aliases:e.dependencyVulns.aliases,severity:e.dependencyVulns.severity,direct:e.dependencyVulns.direct,dev:e.dependencyVulns.dev}).from(e.dependencyVulns).where((0,b.b)((0,b.u)(e.dependencyVulns.repoId,a),(0,b.M)(e.dependencyVulns.resolvedAt))).limit(2e3);return{upgrades:(0,F.B)(c),installed:(0,g.D)(c)}}async function S(a,b,c,d,e){for(let f of(0,I.a)(d,c)){if(f===c)break;let d=await (0,J.M)(a,b,f,e);if(!d.ok)return d;if(d.data)return{ok:!0,data:{base:f,head:d}}}return{ok:!0,data:{base:c,head:await (0,J.M)(a,b,c,e)}}}async function T(c,f,l,n=L.W,o={}){let p;if(!(0,H.f)(f)||!(0,H.f)(l))return n(N("Something in that request wasn't valid."),c,"");let q=await (0,L.q)(c.id,"github_bump_pr",f);if(q)return n(N(q),c,"");let r=await O();if(null===r)return n(N('A GitHub PR-write token is needed: connect "GitHub (PR write)" on Connections (fine-grained, this repository only, Contents and Pull requests: Read and write; Commit statuses: Read for automatic merges), then ask again.'),c,"");if("unreadable"===r)return n(N("Can't read the stored GitHub PR-write credential. Replace it on Connections."),c,"");let[s]=await (0,d.f)().select({app:e.resources.name,meta:e.resources.meta,fullName:e.githubRepos.fullName,owner:e.githubRepos.owner,goneAt:e.githubRepos.goneAt,lockfilePath:e.dependencyScans.lockfilePath,lockfileSha:e.dependencyScans.lockfileSha}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).leftJoin(e.dependencyScans,(0,b.u)(e.dependencyScans.repoId,e.appRepos.repoId)).where((0,b.b)((0,b.u)(e.appRepos.appId,f),(0,b.u)(e.appRepos.repoId,l))).limit(1);if(!s||s.goneAt)return n(N(K.G),c,r.id);let t=s.meta??{},u=(0,j.l)(t.rootDirectoryUnsupported);if(u)return n(N(`The Vercel Root Directory "${u}" of ${s.app} couldn't be used (Watchbell reads plain folder names, at most 4 deep). Update its package.json yourself.`),c,r.id);let v=(0,j.Q)(t.rootDirectory),w=(0,j.H)(v,"package.json"),x=v?`in ${v}`:"at the repository root";if(o.framework){let a=await Q(f);if(!a)return n(N(`Nothing to update in ${s.app}: its Next.js check shows no advisory with a fixed version.`),c,r.id);p=a}else if(!(p=await R(l)).upgrades.length)return n(N(`Nothing to update in ${s.app}: no direct package has a fixed version for its open advisories.`),c,r.id);let y=p.upgrades;if(o.auto){let a=(0,g.a)(y,p.installed,o.auto.severities);if(!a.ok)return n(N(`Automatic PR not opened: ${P[a.why]}. The proposal waits for your approval.`),c,r.id);y=a.upgrades}y=(0,i.F)(y);let{auto:z,proposalId:A,framework:B,...C}=o,D={timeoutMs:8e3,...C},E=await (0,J.H)(r.token,s.fullName,D);if(!E.ok)return n({done:!1,failed:E,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let F=await S(r.token,s.fullName,E.data.defaultBranch,t,D);if(!F.ok)return n({done:!1,failed:F,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);let G=F.data.base,U=(0,I.B)(t.productionSource,G,new Date);if(U&&z)return n(N(`Automatic PR not opened: ${U} The proposal waits for your approval.`),c,r.id);let V=B?null:(0,I.y)(s.lockfileSha,E.data.defaultBranch,v);if(V&&V!==G)return n(N(`The dependency scan of ${s.app} read ${V}, but this pull request would go to ${G}. Scan again (Dependencies › Scan now on the app page), then ask again.`),c,r.id);let W=F.data.head;if(!W.ok)return n({done:!1,failed:W,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!W.data)return n(N(`The default branch ${G} wasn't found.`),c,r.id);let X=await (0,J.E)(r.token,s.fullName,W.data,D,w);if(!X.ok)return n({done:!1,failed:X,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(!X.data)return n(N(`There is no package.json ${x}.`),c,r.id);let Y=(0,h.k)(X.data.text,y);if(!Y?.length||B&&!Y.some(a=>"next"===a.package))return n(N(`${w} in ${s.app} already allows the fixed versions (or its ranges can't be rewritten). Run npm install there.`),c,r.id);if(z){let a=Y.find(a=>{let b=(0,k.Y)(a.from);return!b||!(0,g.J)(b,a.fixed)});if(a)return n(N(`Automatic PR not opened: ${a.package} ${a.from} → ${a.to} jumps a major version. The proposal waits for your approval.`),c,r.id)}let Z=(0,h.M)(X.data.text,Y);if(!Z)return n(N("package.json couldn't be edited safely."),c,r.id);let $=(0,h.U)(Y,v);if(!(0,h.c)($,G))return n(N("Refused: the PR branch would be the default branch."),c,r.id);let _=await (0,J.x)(r.token,s.fullName,s.owner,$,G,D);if(_.ok&&_.data)return{ok:!0,message:`Pull request #${_.data.number} for these updates is already open.`};let aa=await (0,J.e)(r.token,s.fullName,D);if(!aa.ok)return n({done:!1,failed:aa,audit:{message:`Package update PR failed \xb7 ${s.app}`,resourceId:f}},c,r.id);if(aa.data.length){let a=new Map((await (0,d.f)().select({number:e.dependencyPrs.number,packages:e.dependencyPrs.packages}).from(e.dependencyPrs).where((0,b.b)((0,b.u)(e.dependencyPrs.repoId,l),(0,b.y)(e.dependencyPrs.number,aa.data.map(a=>a.number))))).map(a=>[a.number,a.packages])),f=(0,g.U)(Y.map(a=>a.package),aa.data.map(b=>({number:b.number,branch:b.branch,title:b.title,packages:a.get(b.number)??null})),v);if(f)return n(N(`Pull request #${f.number} for the same package is already open in ${s.app}. Merge or close it first.`),c,r.id)}let ab=await (0,J.M)(r.token,s.fullName,$,D);if(ab.ok&&ab.data)return n(N(`Branch ${$} already exists without an open pull request. Delete it on GitHub, then ask again.`),c,r.id);let ac=s.lockfilePath??(v?(0,j.H)(v,"package-lock.json"):null),ad=k.a.find(a=>a.path===ac?.split("/").pop())?.kind??null,ae=a=>n({done:!1,failed:a,audit:{message:`Package update PR failed \xb7 ${s.app} \xb7 ${$}`,resourceId:f}},c,r.id),af=await (0,J.k)(r.token,s.fullName,$,W.data,G,D);if(!af.ok)return ae(af);let ag=await (0,J.D)(r.token,s.fullName,$,G,Z,X.data.sha,(0,h.G)(Y),D,w);if(!ag.ok)return ae(ag);let ah=(0,h.f)(Y,v),ai=(U?`> [!WARNING]
2
- > ${U} Check where production is built from before you merge; Watchbell won't merge this pull request itself.
3
-
4
- `:"")+(0,h.y)(Y,ad,!!z,v),aj=await (0,J.y)(r.token,s.fullName,$,G,ah,ai,D,{draft:!!U}),ak=!!U;if(U&&!aj.ok&&422===aj.status&&(aj=await (0,J.y)(r.token,s.fullName,$,G,ah,ai,D),ak=!1),!aj.ok)return ae(aj);let al=U?ak?` Opened as a draft: ${U}`:` Opened as a normal pull request (this repository can't have drafts), with the warning on top: ${U}`:"",am=Y.map(a=>`${a.package} ${a.from} → ${a.to}`).join(", "),an=await (0,J.M)(r.token,s.fullName,$,D).catch(()=>null),ao=!1;if(an?.ok&&an.data){await (0,d.f)().insert(e.dependencyPrs).values({repoId:l,appId:f,proposalId:A??null,number:aj.data.number,branch:$,baseBranch:G,headSha:an.data,title:ah.slice(0,200),packages:Y.map(a=>a.package),auto:!!z,stage:"checks",stageText:m(aj.data.number,"checks")}).onConflictDoNothing().catch(()=>console.warn("deps: recording the PR failed"));let{extensions:b}=await a.A(414785),c=await b.runner?.queueLockfileJob({repoId:l,branch:$,headSha:an.data,prNumber:aj.data.number,lockfilePath:ac,targets:Y.map(a=>({name:a.package,version:a.fixed}))}).catch(()=>(console.warn("deps: queueing the lockfile job failed"),null)),g=await (0,M.U)(r.token,{repo:s.fullName,branch:$,lockfilePath:ac,prNumber:aj.data.number});ao=c?.queued===!0||g.sent}return n({done:!0,message:`Pull request #${aj.data.number} opened for ${s.app}: ${am}.${ao?"":` Run npm install${v?` in ${v}`:""} on the branch before merging.`}${al}`,audit:{message:`Package update PR opened \xb7 ${s.app} \xb7 #${aj.data.number}`,resourceId:f,detail:am}},c,r.id)}async function U(a,b,c){if(!(0,H.f)(a)||c&&!(0,H.f)(c.appId))return{ok:!1,why:"target"};let d=await O();if(!d||"unreadable"===d)return{ok:!1,why:"no write token"};let e=c?await Q(c.appId):await R(a);if(!e)return{ok:!1,why:"nothing"};let f=(0,g.a)(e.upgrades,e.installed,b);return f.ok?{ok:!0}:{ok:!1,why:f.why}}async function V(a,c){let f=a.filter(a=>(0,H.f)(a.appId)&&(0,H.f)(a.repoId)),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,meta:e.resources.meta,defaultBranch:e.githubRepos.defaultBranch}).from(e.appRepos).innerJoin(e.resources,(0,b.u)(e.resources.id,e.appRepos.appId)).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).where((0,b.y)(e.appRepos.appId,[...new Set(f.map(a=>a.appId))])).limit(4*f.length);for(let a of f){let b=h.find(b=>b.appId===a.appId&&b.repoId===a.repoId),d=b?.meta??{},e=b?(0,I.B)(d.productionSource,(0,I.q)(d,b.defaultBranch??null),c):null;e&&g.set(a.appId,e)}return g}async function W(a,c=[]){let f=a.filter(H.f),g=new Map;if(!f.length)return g;let h=await (0,d.f)().select({appId:e.appRepos.appId,repoId:e.appRepos.repoId,version:e.appSecurity.version,status:e.appSecurity.status,findings:e.appSecurity.findings}).from(e.appRepos).innerJoin(e.githubRepos,(0,b.u)(e.githubRepos.id,e.appRepos.repoId)).innerJoin(e.appSecurity,(0,b.u)(e.appSecurity.resourceId,e.appRepos.appId)).where((0,b.b)((0,b.y)(e.appRepos.appId,f),(0,b.M)(e.githubRepos.goneAt),(0,b.u)(e.appSecurity.status,"vulnerable"))).limit(f.length),j=new Set(c),k=h.filter(a=>j.has(a.appId)),l=k.length?new Set((await (0,d.f)().selectDistinct({repoId:e.dependencyVulns.repoId}).from(e.dependencyVulns).where((0,b.b)((0,b.y)(e.dependencyVulns.repoId,[...new Set(k.map(a=>a.repoId))]),(0,b.M)(e.dependencyVulns.resolvedAt),(0,b.u)(e.dependencyVulns.package,"next"),(0,b.u)(e.dependencyVulns.direct,!0),(0,b.E)(e.dependencyVulns.fixedVersion))).limit(k.length)).map(a=>a.repoId)):new Set;for(let a of h){if(j.has(a.appId)&&l.has(a.repoId))continue;let b=(0,i.p)({version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[]});b&&g.set(a.appId,{repoId:a.repoId,from:b.from,to:b.to})}return g}a.s(["J",0,U,"W",0,T,"h",0,W,"H",0,V,"G",0,O],736780)},313235,a=>{var b=a.i(927262),c=a.i(462820);let d={workloads:"Workloads",databases:"Databases",network:"Network",observe:"Observe",ai:"AI & API",admin:"Administration"},e={MonitorDown:"workloads",HighLatency:"workloads",DeploymentFailed:"workloads",DatabasePaused:"databases",StorageAlmostFull:"databases",NeonComputeHigh:"databases",FirestoreQuotaHigh:"databases",AutoPauseRisk:"databases",ComputeHigh:"databases",DbQuotaHigh:"databases",CertExpiringSoon:"network",DomainExpiringSoon:"network",DnsProxiedToVercel:"network",CollectorStale:"observe",CredentialExpiring:"admin",VulnerableDependency:"workloads",FrameworkVulnerable:"workloads",MonitorDomainMoved:"workloads"},f=new Set(["MonitorDown","HighLatency","DeploymentFailed","VulnerableDependency","FrameworkVulnerable","MonitorDomainMoved"]);a.s(["H",0,d,"p",0,function(a){if((0,b.h)(a.ruleKey))return f.has(a.ruleKey)&&null!==a.resourceKind&&"app"!==a.resourceKind?"observe":e[a.ruleKey];let c=new Set(a.ruleKey.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)),d=(...a)=>a.some(a=>c.has(a));return d("ai","router","gateway","model","models","provider","quota","llm","gemini")?"ai":d("key","keys","member","members","security","audit","credential","credentials","mfa","token")?"admin":d("database","db","storage","compute","neon","supabase","firestore","firebase")?"databases":d("domain","domains","dns","cert","certificate","tls","zone")?"network":"app"===a.resourceKind?"workloads":"observe"},"y",0,a=>c.X.proposedBy(d[a])])},247881,649031,a=>{var b=a.i(488345),c=a.i(342634),d=a.i(313235),e=a.i(188282),f=a.i(416454);let g=["LogErrorSpike","LogErrors","LogDbErrors"],h="timeout|ECONNREFUSED|too many connections|terminating connection|connection terminated|endpoint is disabled|compute.*suspend";RegExp(h,"i");let i=/^dpl_[A-Za-z0-9]{8,40}$/,j=/^ep-[a-z0-9-]{3,60}$/,k=/^[a-z0-9]{8,40}$/;function l(a,d,e){let f=d?(0,b.g)(d,e,120):"";return(0,c.l)((0,b.g)(f?`${a}. Most common: ${f}`:a,e,c.j)||a,c.j)}let m=a=>`${a.ruleKey}:${a.resourceId??""}:${a.action}`,n=new Set(["pending","approved","running"]);a.s(["s",0,864e5,"b",0,72e5,"V",0,3,"N",0,h,"G",0,20,"T",0,g,"v",0,72e5,"H",0,18e5,"w",0,10,"I",0,72e5,"x",0,function(a,b,c){let d=new Set(b.filter(a=>n.has(a.status)||null!==a.closedAt&&c.getTime()-a.closedAt.getTime()<72e5).map(m)),e=new Set;return a.filter(a=>{let b=m(a);return!(d.has(b)||e.has(b))&&(e.add(b),!0)})},"t",0,function(a,b,g){return(function(a,b,d){let e=[],g=d.getTime(),h=null!==a.liveAt&&g-a.liveAt.getTime()<72e5&&a.liveAt.getTime()<=g,m=a.previousNext?.status??"unknown";if(h&&a.errorsSinceLive>=Math.max(10,Math.ceil(5*a.baselineErrors/24))&&a.currentId&&a.previousId&&i.test(a.previousId)&&a.previousId!==a.currentId&&"vulnerable"!==m){let d=l(`${a.errorsSinceLive} errors since the deploy went live ${Math.max(1,Math.round((g-a.liveAt.getTime())/6e4))} min ago (${a.baselineErrors} in the 24 h before)`,a.topSinceLive,b);e.push({ruleKey:"LogErrorSpike",room:"workloads",action:"vercel_rollback",resourceKind:"app",resourceId:a.appId,targetRef:a.previousId,reason:"ok"===m?d:(0,c.l)(`${f.B} ${d}`)})}let n=null!==a.lastDeployAt&&g-a.lastDeployAt.getTime()<72e5;if(a.errors30>=20&&!n&&a.httpMonitorId&&e.push({ruleKey:"LogErrors",room:"workloads",action:"recheck",resourceKind:"app",resourceId:a.appId,targetRef:a.httpMonitorId,reason:l(`${a.errors30} errors in the last 30 min`,a.top30,b)}),a.dbErrors30>=3&&a.db){let c=l(`${a.dbErrors30} database connection errors in the last 30 min`,a.topDb,b),d=a.db;("neon_project"===d.kind||"neon_branch"===d.kind)&&d.wakeEndpoint&&j.test(d.wakeEndpoint)?e.push({ruleKey:"LogDbErrors",room:"databases",action:"neon_wake",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.wakeEndpoint,reason:c}):"supabase_project"===d.kind&&d.supabasePaused&&d.supabaseRef&&k.test(d.supabaseRef)&&e.push({ruleKey:"LogDbErrors",room:"databases",action:"supabase_restore",resourceKind:d.kind,resourceId:d.resourceId,targetRef:d.supabaseRef,reason:c})}return e})(a,b,g).map(f=>{let h="app"===f.resourceKind?(0,c.J)("app",a.appId,a.appName,b):(0,c.J)(f.resourceKind,f.resourceId,null,b);return{alertId:null,ruleKey:f.ruleKey,room:f.room,action:f.action,risk:e.H[f.action].risk,title:(0,c.M)(f.action,h),reason:f.reason,resourceKind:f.resourceKind,resourceId:f.resourceId,resourceName:h,targetRef:f.targetRef,proposedBy:(0,d.y)(f.room),expiresAt:new Date(g.getTime()+e.V)}})},"D",0,function(a,b){let c=a.getTime();return(null===b||!(c-b<27e4))&&(Math.floor(c/6e4)%5==0||null!==b&&c-b>=6e5)},"W",0,function(a,b){let c=new Set(b.map(m));return a.filter(a=>{let b;return"pending"===a.status&&(b=a.ruleKey,g.includes(b))&&!c.has(m(a))}).map(a=>a.id)}],247881);let o=new Set(["MonitorDown","LogErrorSpike"]);a.s(["r",0,72e5,"M",0,o,"s",0,function(a,b){let c=a=>({ok:!1,why:a});if(!a.setting.enabled)return c("off");if(!a.ruleKey||!o.has(a.ruleKey))return c("rule");let d=a.deploy;if(!d||!d.liveAt)return c("no live deploy");let e=b.getTime()-d.liveAt.getTime();return e<0||e>6e4*a.setting.windowMin?c("outside the window"):d.previousId&&a.targetRef===d.previousId&&d.previousId!==d.currentId?d.newestProdCreatedAt&&d.currentCreatedAt.getTime()<d.newestProdCreatedAt.getTime()?c("live deploy is a rollback"):a.rolledOrPromotedLately?c("live deploy came from a rollback or promote"):"ready"!==(d.previousState??"").toLowerCase()?c("previous not ready"):!d.previousCreatedAt||b.getTime()-d.previousCreatedAt.getTime()>2592e6?c("previous too old"):"vulnerable"===a.previousNext?c("previous Next.js has advisories"):"ok"!==a.previousNext?c("previous Next.js unknown"):a.autoLately?c("auto-rollback within 2 h"):a.sameDeployBefore?c("already rolled back once"):a.inFlight?c("another auto-rollback is running"):{ok:!0}:c("target changed")},"u",0,(a,b,d)=>(0,c.l)(`Automatic: the new deploy ${a} errored in the first ${b} minutes. ${d}`),"E",0,a=>a.currentSha&&/^[0-9a-f]{7,40}$/i.test(a.currentSha)?a.currentSha.slice(0,7):a.currentId.slice(0,16)],649031)},691100,a=>{let b;var c,d=a.i(93321),e=a.i(530385),f=a.i(351674),g=a.i(548734),h=a.i(462820),i=a.i(837137),j=a.i(247730),k=a.i(455317),l=a.i(930270),m=a.i(396667),n=a.i(160147),o=a.i(767163),p=a.i(757902),q=a.i(436357),r=a.i(893893),s=a.i(556987),t=a.i(142754),u=a.i(342634),v=a.i(247881),w=a.i(649031),x=a.i(381544),y=a.i(138984),z=a.i(492665),A=a.i(221084),B=a.i(736780),C=a.i(560954),D=a.i(895176),E=a.i(305731),F=a.i(30184),G=a.i(721170),H=a.i(322145),I=a.i(248358),J=a.i(915598),K=a.i(312573),L=a.i(323878),M=a.i(19809),N=a.i(371289),O=a.i(94473),P=a.i(188282);let Q={checkMonitorNow:D.X,keepAliveNow:C.v,wakeAs:G.v,supabaseAct:I.Q,redeployAs:J.B,rollbackAs:J.U,finish:H.W,recordAction:A.f,limit:L.C,bumpPrAs:B.W,autoSecurity:()=>(0,O.X)(),recheckDomain:F._,moveMonitorToDomain:E.f};async function R(){let[a]=await (0,g.f)().select({at:i.collectorRuns.startedAt}).from(i.collectorRuns).where(f.B`(${i.collectorRuns.trigger} = 'vercel_cron' or (${i.collectorRuns.trigger} = 'manual' and ${i.collectorRuns.tasks} ? 'rollups'))`).orderBy((0,e.A)(i.collectorRuns.startedAt)).limit(1);return a?.at??null}async function S(a){let b=await (a.lastDailyRunAt??R)(),c=(a.now??(()=>new Date))();if(b&&c.getTime()-b.getTime()<216e5)return{ok:!1,error:"The daily job ran less than 6 hours ago."};let d=(a.dailyTarget??function(){let a=(0,y.f)();return a?{url:`${(0,z.f)().SITE_URL.replace(/\/+$/,"")}/api/daily`,secret:a.CRON_SECRET}:null})();if(!d)return{ok:!1,error:"The scheduler settings are missing, so the daily job can't be started."};try{let b=await (a.fetch??fetch)(d.url,{headers:{Authorization:`Bearer ${d.secret}`},signal:AbortSignal.timeout(4e4),redirect:"manual"});if(!b.ok||b.status>=300)return{ok:!1,error:`The daily job route answered ${b.status}.`};return{ok:!0,message:`Daily job ran again (${b.status}).`}}catch(a){if(a instanceof Error&&("TimeoutError"===a.name||"AbortError"===a.name))return{ok:!0,message:"Daily job started; it's still running — the heartbeat turns Up when it finishes."};throw a}}let T="The proposal's target is missing, so it can't run.";async function U(a,b,c=Q){let d="auto"===b,e=d?{id:u.e,userId:null}:{id:b.id,userId:b.userId},f=(a,b,e)=>c.finish(a,b,e,{refresh:!1,...d?{auditPrefix:u.v}:{}});try{if(!a.resourceId||!a.targetRef)return{ok:!1,error:T};if((0,N.W)()&&"recheck"!==a.action)return await c.recordAction({kind:"ok",message:`${d?u.v:""}${P.H[a.action].label} (simulated)`,detail:"Simulated in the demo",resourceId:a.resourceId,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:M.r};switch(a.action){case"recheck":{let b=await c.limit(K.t.check,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await c.checkMonitorNow(a.targetRef);if(!f.ok)return{ok:!1,error:f.error};if(f.audit)try{await c.recordAction({kind:!1===f.passed?"err":"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId})}catch{console.warn("audit event failed")}return{ok:!0,message:f.message}}case"domain_recheck":{let b=await c.limit(K.t.domainCheck,e.id);if(!b.allowed)return{ok:!1,error:`Too many checks. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.recheckDomain??F._)(a.targetRef);if(!f.ok)return f;return await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"monitor_update_url":{let b=await c.limit(K.t.monitorWrite,e.id);if(!b.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,K.H)(b.retryAfter)}.`};let f=await (c.moveMonitorToDomain??E.f)(a.targetRef);if(!f.ok)return f;return f.audit&&await c.recordAction({kind:"ok",...f.audit,message:`${d?u.v:""}${f.audit.message}`,actorUserId:e.userId}).catch(()=>console.warn("audit event failed")),{ok:!0,message:f.message}}case"daily_rerun":return await S(c);case"neon_wake":return await c.wakeAs(e,a.resourceId,a.targetRef,f);case"supabase_keepalive":return await c.keepAliveNow(e,a.resourceId,f);case"supabase_restore":return await c.supabaseAct("restore",e,a.resourceId,a.targetRef,f);case"vercel_redeploy":return await c.redeployAs(e,a.resourceId,a.targetRef,f);case"vercel_rollback":return await c.rollbackAs(e,a.resourceId,a.targetRef,f);case"github_bump_pr":{let b=d?await (c.autoSecurity??O.X)():null;if(d&&!b?.enabled)return{ok:!1,error:"Automatic security fixes is off."};return await (c.bumpPrAs??B.W)(e,a.resourceId,a.targetRef,f,{proposalId:a.proposalId??null,...b?{auto:{severities:b.severities}}:{},..."FrameworkVulnerable"===a.ruleKey?{framework:!0}:{}})}default:return{ok:!1,error:T}}}catch(a){return console.warn(`${h.X.logTag}/proposals run failed:`,a instanceof Error?a.name:"error"),{ok:!1,error:"Something went wrong while running it. Check the console page before trying again."}}}var V=a.i(416454);let W={id:t.O.id,room:t.O.room,action:t.O.action,risk:t.O.risk,title:t.O.title,reason:t.O.reason,resourceName:t.O.resourceName,proposedBy:t.O.proposedBy,status:t.O.status,auto:t.O.auto,result:t.O.result,createdAt:t.O.createdAt,decidedAt:t.O.decidedAt,expiresAt:t.O.expiresAt},X={...W,resourceId:t.O.resourceId,targetRef:t.O.targetRef,ruleKey:t.O.ruleKey,alertId:t.O.alertId};async function Y(a,b,c){let e=(0,u.z)(a,b),h=new Set(e.deployApps),j=a.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&a.resourceId&&h.has(a.resourceId)&&a.startedAt),[k,m,n,o,p,r,s,t,v]=await Promise.all([e.monitorIds.length?(0,g.f)().select({id:i.monitors.id,kind:i.monitors.kind,url:i.monitors.url,lastError:i.monitors.lastError,appId:i.monitors.resourceId,appName:i.resources.name,appMeta:i.resources.meta}).from(i.monitors).innerJoin(i.resources,(0,d.u)(i.resources.id,i.monitors.resourceId)).where((0,d.y)(i.monitors.id,e.monitorIds)):[],e.deployApps.length?(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,e.deployApps),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))):[],e.supabaseIds.length?(0,g.f)().select({id:i.resources.id,ref:i.resources.externalId}).from(i.resources).where((0,d.b)((0,d.y)(i.resources.id,e.supabaseIds),(0,d.u)(i.resources.kind,"supabase_project"),f.B`${i.resources.goneAt} is null`)):[],e.monitorApps.length?ac(e.monitorApps):new Map,e.depApps.length?aa(a,e.depApps).catch(()=>new Set).then(a=>(0,l.C)(e.depApps,a)).catch(()=>new Map):new Map,e.monitorIds.length?ab(e.monitorIds):null,e.frameworkApps.length?(0,B.h)(e.frameworkApps,e.depApps).catch(()=>new Map):new Map,j.length?Z(j.map(a=>a.subject),b).catch(()=>[]):[],$(e.deployApps)]),w=k.some(a=>null!==(0,q.Y)(a.appMeta)),x=w?await (0,g.f)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta}).from(i.resources).where((0,d.b)((0,d.u)(i.resources.kind,"app"),(0,d.u)(i.resources.monitored,!0),(0,d.M)(i.resources.goneAt))).limit(500):[],y=w?(0,q.P)(k,x):new Map,z=[...[...p].map(([a,b])=>({appId:a,repoId:b})),...[...s].map(([a,b])=>({appId:a,repoId:b.repoId}))],A=z.length?await Promise.resolve().then(()=>(0,B.H)(z,b)).catch(()=>new Map):new Map,C=new Map,D=new Map;for(let a of m){let b=C.get(a.app)??{currentId:null,previousId:null,liveAt:null};a.isCurrent?(b.currentId=a.id,b.liveAt=a.readyAt??a.createdAt??null):a.isPrevious&&(b.previousId=a.id,D.set(a.app,a.readyAt??a.createdAt??null)),C.set(a.app,b)}let E=new Map;for(let[a,b]of C)b.previousId&&E.set(a,_(v,a,b.liveAt,D.get(a)??null));let F=new Map(j.map(a=>[a.id,(0,V.g)(a.startedAt,t.filter(b=>b.ruleKey===a.ruleKey&&b.subject===a.subject),{ruleKey:a.ruleKey,liveAt:C.get(a.resourceId)?.liveAt??null})]));return{monitorKinds:new Map(k.map(a=>[a.id,String(a.kind)])),deploys:C,...void 0!==c?{rollbackWindowMs:c}:{},supabaseRefs:new Map(n.map(a=>[a.id,a.ref])),neonSuspended:o,fixableRepos:p,dailyHeartbeatId:r,frameworkFixes:s,monitorMoves:y,problemSince:F,previousNext:E,...A.size?{productionMismatch:A}:{}}}async function Z(a,b){return(0,g.f)().select({ruleKey:i.alerts.ruleKey,subject:i.alerts.subject,startedAt:i.alerts.startedAt,resolvedAt:i.alerts.resolvedAt}).from(i.alerts).where((0,d.b)((0,d.y)(i.alerts.ruleKey,["MonitorDown","HighLatency"]),(0,d.y)(i.alerts.subject,[...new Set(a)]),(0,d.E)(i.alerts.resolvedAt),(0,d.B)(i.alerts.resolvedAt,new Date(b.getTime()-V.A)))).orderBy((0,e.A)(i.alerts.startedAt)).limit(500)}async function $(a){let b={checks:new Map,events:new Map,frameworks:new Map};if(!a.length)return b;try{let[c,f,h]=await Promise.all([(0,g.f)().select({app:i.appSecurity.resourceId,version:i.appSecurity.version,status:i.appSecurity.status,findings:i.appSecurity.findings,checkedAt:i.appSecurity.checkedAt,reason:i.appSecurity.reason}).from(i.appSecurity).where((0,d.y)(i.appSecurity.resourceId,a)).limit(a.length),(0,g.f)().select({app:i.events.resourceId,at:i.events.at,reason:i.events.reason,message:i.events.message}).from(i.events).where((0,d.b)((0,d.y)(i.events.reason,[...V.Y]),(0,d.y)(i.events.resourceId,a))).orderBy((0,e.A)(i.events.at)).limit(Math.min(500,50*a.length)),(0,g.f)().select({app:i.resources.id,meta:i.resources.meta}).from(i.resources).where((0,d.y)(i.resources.id,a)).limit(a.length)]);for(let a of c)b.checks.set(a.app,{version:a.version,status:a.status,findings:Array.isArray(a.findings)?a.findings:[],checkedAt:a.checkedAt,reason:a.reason});for(let a of f)a.app&&b.events.set(a.app,[...b.events.get(a.app)??[],{at:a.at,reason:a.reason,message:a.message}]);for(let a of h){let c=a.meta&&"object"==typeof a.meta?a.meta.framework:null;b.frameworks.set(a.app,"string"==typeof c?c:null)}}catch{return{checks:new Map,events:new Map,frameworks:new Map}}return b}let _=(a,b,c,d)=>(0,V.Q)({currentLiveAt:c,previousLiveAt:d,check:a.checks.get(b)??null,events:a.events.get(b)??[],framework:a.frameworks.get(b)??null});async function aa(a,b){let c=new Set(b),e=a.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind&&a.resourceId&&c.has(a.resourceId)).map(a=>a.id);return e.length?new Set((await (0,g.f)().selectDistinct({resourceId:t.O.resourceId}).from(t.O).where((0,d.b)((0,d.u)(t.O.ruleKey,"FrameworkVulnerable"),(0,d.u)(t.O.action,"github_bump_pr"),(0,d.y)(t.O.status,["pending","approved","running","done"]),(0,d.y)(t.O.alertId,e),(0,d.y)(t.O.resourceId,[...c]))).limit(e.length)).flatMap(a=>a.resourceId?[a.resourceId]:[])):new Set}async function ab(a){let b=(0,o.i)(process.env.DAILY_HEARTBEAT_TOKEN);if(!b)return null;let[c]=await (0,g.f)().select({id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.id,a),(0,d.u)(i.monitors.kind,"heartbeat"),(0,d.u)(i.monitors.tokenHash,(0,p.C)(b)))).limit(1).catch(()=>[]);return c?.id??null}async function ac(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch"]),f.B`${i.resources.goneAt} is null`)),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,h=[...new Set(b.map(e).filter(a=>!!a))];if(!h.length)return c;let j=new Map((await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,h))).map(a=>[a.id,(0,r.k)(r.s,a.data)]));for(let a of b){let b=e(a),d=b?j.get(b):void 0,f=d?(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null):null;f&&c.set(a.app,{resourceId:a.id,resourceKind:a.kind,endpointId:f})}return c}async function ad(a){if(!a.length)return[];let b=new Set((await (0,g.f)().select({alertId:t.O.alertId,action:t.O.action}).from(t.O).where((0,d.y)(t.O.alertId,[...new Set(a.map(a=>a.alertId))]))).map(a=>`${a.alertId}:${a.action}`)),c=a.filter(a=>!b.has(`${a.alertId}:${a.action}`));return c.length?(0,g.f)().insert(t.O).values(c.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X):[]}async function ae(a,b){return(await (0,g.f)().select(W).from(t.O).where(f.B`${t.O.createdAt} >= ${new Date(a.getTime()-6048e5).toISOString()}::timestamptz`).orderBy(f.B`case when ${t.O.status} = 'pending' then 0 else 1 end`,(0,e.A)(t.O.createdAt),(0,e.A)(t.O.id)).limit(b)).map(u.E)}async function af(a){let[b]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return b?(0,u.E)(b):null}async function ag(a,b,c,e){let[h]=await (0,g.f)().update(t.O).set({status:"approve"===b?"approved":"rejected",decidedBy:c,decidedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),f.B`${t.O.expiresAt} > ${e.toISOString()}::timestamptz`)).returning(X);if(h)return{status:"ok",proposal:(0,u.E)(h),row:h};let[i]=await (0,g.f)().select(W).from(t.O).where((0,d.u)(t.O.id,a)).limit(1);return i?{status:"conflict",proposal:(0,u.E)(i)}:{status:"missing"}}async function ah(a,b){let[c]=await (0,g.f)().update(t.O).set({status:"running",claimedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"approved"))).returning(X);return c??null}async function ai(a,b,c,e){let[f]=await (0,g.f)().update(t.O).set({status:b?"done":"failed",result:c,finishedAt:e}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"running"))).returning(X);return f??null}let aj={run:(a,b)=>U(a,b),book:()=>(0,j.f)()};async function ak(a,b,c,d=aj){let e=await ah(a,c);if(!e)return null;let f=await d.run({action:e.action,resourceId:e.resourceId,targetRef:e.targetRef,proposalId:e.id,ruleKey:e.ruleKey??null},b),g=await d.book().catch(()=>s.a),h=await ai(a,f.ok,(0,u.x)(f,g),new Date);return h?(0,u.E)(h):null}async function al(a,b){let c=await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: nobody decided in time, or the alert stopped firing."}).where((0,d.b)((0,d.u)(t.O.status,"pending"),(0,d.F)((0,d.S)(t.O.expiresAt,new Date(b.getTime()+1)),(0,d.b)((0,d.E)(t.O.alertId),a.length?(0,d.$)(t.O.alertId,a):f.B`true`)))).returning({id:t.O.id});return await (0,g.f)().update(t.O).set({status:"failed",result:"The run was interrupted. Check the console page before trying again.",finishedAt:b}).where((0,d.b)((0,d.u)(t.O.status,"running"),(0,d.S)(t.O.claimedAt,new Date(b.getTime()-u.L)))),c.length}async function am(a){await (0,g.f)().delete(t.O).where((0,d.b)((0,d.S)(t.O.createdAt,new Date(a.getTime()-2592e6)),(0,d.$)(t.O.status,["pending","approved","running"])))}let an=f.B`(${i.storedLogs.level} in ('error', 'fatal') or coalesce(${i.storedLogs.statusCode}, 0) >= 500)`,ao=f.B`coalesce(${i.deployments.readyAt}, ${i.deployments.createdAtProvider})`;async function ap(a){let b=await (0,g.f)().select({app:i.links.fromResourceId,id:i.resources.id,kind:i.resources.kind,externalId:i.resources.externalId,parentId:i.resources.parentId}).from(i.links).innerJoin(i.resources,(0,d.u)(i.resources.id,i.links.toResourceId)).where((0,d.b)((0,d.y)(i.links.fromResourceId,a),(0,d.u)(i.links.kind,"uses_db"),(0,d.y)(i.resources.kind,["neon_project","neon_branch","supabase_project"]),(0,d.M)(i.resources.goneAt))),c=new Map;if(!b.length)return c;let e=a=>"neon_branch"===a.kind?a.parentId:a.id,f=[...new Set(b.map(e).filter(a=>!!a))],h=new Map((f.length?await (0,g.f)().select({id:i.snapshots.resourceId,data:i.snapshots.data}).from(i.snapshots).where((0,d.y)(i.snapshots.resourceId,f)):[]).map(a=>[a.id,a.data]));for(let a of b){let b=h.get(e(a)??"");if("supabase_project"===a.kind){let d=(0,r.k)(r.B,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:null,supabaseRef:a.externalId,supabasePaused:"INACTIVE"===d.status})}else{let d=(0,r.k)(r.s,b);c.set(a.app,{resourceId:a.id,kind:a.kind,wakeEndpoint:(0,u.Z)(d.endpoints,d.branches,"neon_branch"===a.kind?a.externalId:null),supabaseRef:null,supabasePaused:!1})}}return c}let aq={apps:async function(a){let b=new Date(a.getTime()-v.I-v.s),c=f.B`${i.storedLogs.at} >= ${new Date(a.getTime()-v.H).toISOString()}::timestamptz`,e=f.B`${i.storedLogs.message} ~* ${v.N}`,h=f.B`left(${i.storedLogs.message}, 200)`,j=(await (0,g.f)().select({appId:i.storedLogs.resourceId,appName:f.B`max(${i.resources.name})`,liveAt:f.B`max(${ao})`.mapWith(i.deployments.readyAt),currentId:f.B`max(${i.deployments.externalId})`,errorsSinceLive:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`.mapWith(Number),baselineErrors:f.B`count(*) filter (where ${an} and ${i.storedLogs.at} >= ${ao} - interval '24 hours' and ${i.storedLogs.at} < ${ao})`.mapWith(Number),topSinceLive:f.B`mode() within group (order by ${h}) filter (where ${an} and ${i.storedLogs.at} >= ${ao})`,errors30:f.B`count(*) filter (where ${an} and ${c})`.mapWith(Number),top30:f.B`mode() within group (order by ${h}) filter (where ${an} and ${c})`,dbErrors30:f.B`count(*) filter (where ${c} and ${e})`.mapWith(Number),topDb:f.B`mode() within group (order by ${h}) filter (where ${c} and ${e})`}).from(i.storedLogs).innerJoin(i.resources,(0,d.u)(i.resources.id,i.storedLogs.resourceId)).leftJoin(i.deployments,(0,d.b)((0,d.u)(i.deployments.resourceId,i.storedLogs.resourceId),(0,d.u)(i.deployments.isCurrent,!0))).where((0,d.b)((0,d.B)(i.storedLogs.at,b),(0,d.u)(i.resources.kind,"app"),(0,d.M)(i.resources.goneAt))).groupBy(i.storedLogs.resourceId)).filter(a=>a.errorsSinceLive>=v.w||a.errors30>=v.G||a.dbErrors30>=v.V);if(!j.length)return[];let k=j.map(a=>a.appId),[l,m,n]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,previousId:f.B`max(${i.deployments.externalId}) filter (where ${i.deployments.isPreviousProduction})`,previousLiveAt:f.B`max(${ao}) filter (where ${i.deployments.isPreviousProduction})`.mapWith(i.deployments.readyAt),lastDeployAt:f.B`max(${i.deployments.createdAtProvider}) filter (where ${i.deployments.target} = 'production')`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,k),(0,d.F)((0,d.u)(i.deployments.isPreviousProduction,!0),(0,d.B)(i.deployments.createdAtProvider,new Date(a.getTime()-v.v))))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.monitors.resourceId,id:i.monitors.id}).from(i.monitors).where((0,d.b)((0,d.y)(i.monitors.resourceId,k),(0,d.u)(i.monitors.kind,"http"),(0,d.u)(i.monitors.paused,!1),(0,d.u)(i.monitors.ownerPaused,!1))).orderBy(i.monitors.createdAt),ap(k)]),o=new Map(l.map(a=>[a.app,a])),p=new Map;for(let a of m)p.has(a.app)||p.set(a.app,a.id);let q=j.filter(a=>a.errorsSinceLive>=v.w&&a.liveAt&&o.get(a.appId)?.previousId).map(a=>a.appId),r=q.length?await $(q):null;return j.map(a=>({...a,appName:a.appName??"",previousId:o.get(a.appId)?.previousId??null,lastDeployAt:o.get(a.appId)?.lastDeployAt??null,httpMonitorId:p.get(a.appId)??null,db:n.get(a.appId)??null,...r&&q.includes(a.appId)?{previousNext:_(r,a.appId,a.liveAt,o.get(a.appId)?.previousLiveAt??null)}:{}}))},rows:async function(a){let b=f.B`coalesce(${t.O.finishedAt}, ${t.O.decidedAt}, ${t.O.expiresAt})`;return(0,g.f)().select({id:t.O.id,ruleKey:t.O.ruleKey,resourceId:t.O.resourceId,action:t.O.action,status:t.O.status,closedAt:b.mapWith(t.O.finishedAt)}).from(t.O).where((0,d.b)((0,d.M)(t.O.alertId),(0,d.y)(t.O.ruleKey,[...v.T]),(0,d.F)((0,d.y)(t.O.status,["pending","approved","running"]),f.B`${b} > ${new Date(a.getTime()-v.b).toISOString()}::timestamptz`)))}};async function ar(a,b,c=aq){let[e,f]=await Promise.all([c.apps(a),c.rows(a)]),h=e.flatMap(c=>(0,v.t)(c,b,a)),i=(0,v.W)(f,h),j=0;i.length&&(j=(await (0,g.f)().update(t.O).set({status:"expired",result:"Expired: the logs no longer show it.",finishedAt:a}).where((0,d.b)((0,d.y)(t.O.id,i),(0,d.u)(t.O.status,"pending"))).returning({id:t.O.id})).length);let k=(0,v.x)(h,f,a);return k.length?{created:await (0,g.f)().insert(t.O).values(k.map(a=>({...a,status:"pending"}))).onConflictDoNothing().returning(X),expired:j}:{created:[],expired:j}}let as=null;async function at(a,b){return(0,v.D)(a,as)?(as=a.getTime(),ar(a,await b())):{created:[],expired:0}}async function au(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.risk,"safe"))).returning({id:t.O.id})).length>0}async function av(a,b){let c=new Date(b.getTime()-w.r),[e,h,j,k,l]=await Promise.all([(0,g.f)().select({app:i.deployments.resourceId,id:i.deployments.externalId,sha:i.deployments.commitSha,state:i.deployments.state,isCurrent:i.deployments.isCurrent,isPrevious:i.deployments.isPreviousProduction,readyAt:i.deployments.readyAt,createdAt:i.deployments.createdAtProvider}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.F)((0,d.u)(i.deployments.isCurrent,!0),(0,d.u)(i.deployments.isPreviousProduction,!0)))),(0,g.f)().select({app:i.deployments.resourceId,at:f.B`max(${i.deployments.createdAtProvider})`.mapWith(i.deployments.createdAtProvider)}).from(i.deployments).where((0,d.b)((0,d.y)(i.deployments.resourceId,a),(0,d.u)(i.deployments.target,"production"),(0,d.u)(i.deployments.state,"ready"))).groupBy(i.deployments.resourceId),(0,g.f)().select({app:i.events.resourceId}).from(i.events).where((0,d.b)((0,d.u)(i.events.type,"action"),(0,d.y)(i.events.resourceId,a),(0,d.B)(i.events.at,c),f.B`${i.events.message} ~ ${aw}`)),(0,g.f)().select({app:t.O.resourceId,targetRef:t.O.targetRef,status:t.O.status,decidedAt:t.O.decidedAt}).from(t.O).where((0,d.b)((0,d.u)(t.O.action,"vercel_rollback"),(0,d.u)(t.O.auto,!0),(0,d.B)(t.O.createdAt,new Date(b.getTime()-26784e5)))),$(a)]),m=new Map;for(let b of a){let a=e.find(a=>a.app===b&&a.isCurrent),d=e.find(a=>a.app===b&&a.isPrevious&&!a.isCurrent),f=k.filter(a=>a.app===b);m.set(b,{deploy:a?{currentId:a.id,currentSha:a.sha,liveAt:a.readyAt??a.createdAt,currentCreatedAt:a.createdAt,newestProdCreatedAt:h.find(a=>a.app===b)?.at??null,previousId:d?.id??null,previousState:d?.state??null,previousCreatedAt:d?.createdAt??null}:null,rolledOrPromotedLately:j.some(a=>a.app===b),autoLately:f.some(a=>null!==a.decidedAt&&a.decidedAt.getTime()>=c.getTime()),sameDeployBefore:!!d&&f.some(a=>a.targetRef===d.id),previousNext:a&&d?_(l,b,a.readyAt??a.createdAt,d.readyAt??d.createdAt).status:"unknown"})}return{apps:m,inFlight:k.some(a=>"approved"===a.status||"running"===a.status)}}let aw="(Rolled back|Promoted|Preview promoted) ·";async function ax(a,b,c){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:c,reason:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"vercel_rollback"),f.B`not exists (select 1 from ops.action_proposals x where x.action = 'vercel_rollback' and x.auto and x.status in ('approved', 'running'))`)).returning({id:t.O.id})).length>0}async function ay(a,b,c,d){let e=a.filter(a=>"vercel_rollback"===a.action&&a.ruleKey&&w.M.has(a.ruleKey)&&a.resourceId);if(!e.length||!d.autoRollback||!d.rollbackContext||!d.approveAutoRollback)return[];let f=await d.autoRollback().catch(()=>null);if(!f?.enabled||15e3>c())return[];let g=[];try{let a=await d.rollbackContext([...new Set(e.map(a=>a.resourceId))],b),i=a.inFlight;for(let j of e){let e=a.apps.get(j.resourceId);if(!e||12e3>c())continue;let k=(0,w.s)({setting:f,ruleKey:j.ruleKey??null,targetRef:j.targetRef,inFlight:i,...e},b);if(!k.ok){console.log(`${h.X.logTag}/auto-rollback: skipped (${k.why})`);continue}let l=(0,w.E)(e.deploy);if(!await d.approveAutoRollback(j.id,(0,w.u)(l,f.windowMin,j.reason),new Date))continue;i=!0;let m=await d.execute(j.id,new Date);if(m){g.push(m),await (d.notifyRollback??x.q)(m,{reason:j.reason,newRef:l},{},{alertId:j.alertId??null}).catch(()=>void 0);break}}}catch(a){console.warn(`${h.X.logTag}/auto-rollback failed:`,a instanceof Error?a.name:"error")}return g}async function az(a,b){return(await (0,g.f)().update(t.O).set({status:"approved",auto:!0,decidedAt:b}).where((0,d.b)((0,d.u)(t.O.id,a),(0,d.u)(t.O.status,"pending"),(0,d.u)(t.O.action,"github_bump_pr"))).returning({id:t.O.id})).length>0}async function aA(a,b,c){let d=a.filter(a=>"github_bump_pr"===a.action&&a.targetRef);if(!d.length||!c.autoSecurity||!c.bumpReady||!c.approveAutoBump)return[];let e=await c.autoSecurity().catch(()=>null);if(!e?.enabled||!e.severities.length)return[];let f=[];for(let a of d){if(15e3>b())break;try{if(a.resourceId&&c.prodMismatch?await c.prodMismatch(a.resourceId,a.targetRef).catch(()=>"unknown"):null){console.log(`${h.X.logTag}/auto-security: waits for the owner (production source)`);continue}let b="FrameworkVulnerable"===a.ruleKey&&a.resourceId?await c.bumpReady(a.targetRef,e.severities,{appId:a.resourceId}):await c.bumpReady(a.targetRef,e.severities);if(!b.ok){console.log(`${h.X.logTag}/auto-security: waits for the owner (${b.why})`);continue}if(!await c.approveAutoBump(a.id,new Date))continue;let d=await c.execute(a.id,new Date);d&&f.push(d)}catch(a){console.warn(`${h.X.logTag}/auto-security failed:`,a instanceof Error?a.name:"error")}}return f}async function aB(a,b){return(await (0,B.H)([{appId:a,repoId:b}],new Date)).get(a)??null}async function aC(a){return new Map((await (0,g.f)().select({id:i.accounts.id,provider:i.accounts.provider}).from(i.accounts).where((0,d.y)(i.accounts.id,a))).map(a=>[a.id,a.provider]))}let aD={firing:()=>(0,k.q)(),book:()=>(0,j.f)(),facts:Y,create:ad,expire:al,autoRun:O.I,approveAuto:au,execute:(a,b)=>ak(a,"auto",b),notifyNew:x.i,notifyResult:x.b,logs:at,autoRollback:()=>(0,O.K)(),rollbackContext:av,approveAutoRollback:ax,notifyRollback:x.q,autoSecurity:()=>(0,O.X)(),bumpReady:B.J,approveAutoBump:az,paused:m.I,providers:aC,prodMismatch:aB};async function aE(a,b={},c=aD){let d={created:0,expired:0,autoRan:0},e=()=>(b.deadline??1/0)-Date.now(),f=await c.firing();d.expired=await c.expire(f.map(a=>a.id),a);let g=c.paused?await c.paused().catch(()=>new Set):new Set,i=[...new Set(f.flatMap(a=>a.accountId?[a.accountId]:[]))],j=g.size&&i.length&&c.providers?await c.providers(i).catch(()=>new Map):new Map,k=f.filter(a=>!(0,n.O)(g,a.ruleKey,a.accountId?j.get(a.accountId):null)),l=null,m=()=>l??=c.book().catch(()=>s.a),o=[],p=(0,u.z)(k,a);if(Object.values(p).some(a=>a.length>0)){let b=p.deployApps.length&&c.autoRollback?await c.autoRollback().catch(()=>null):null,d=await c.facts(k,a,b?6e4*b.windowMin:void 0),e=await m(),f=k.flatMap(b=>(0,u.t)(b,d,e,a)).filter(a=>!("github_bump_pr"===a.action&&g.has("devops")));o.push(...await c.create(f))}if(e()>1e4&&!g.has("hosting"))try{let b=await c.logs(a,m);o.push(...b.created),d.expired+=b.expired}catch(a){console.warn(`${h.X.logTag}/proposals logs failed:`,a instanceof Error?a.name:"error")}if(d.created=o.length,!o.length)return d;let q=await c.autoRun().catch(()=>null),r=await ay(o,a,e,c);d.autoRan+=r.length;let t=await aA(o.filter(a=>!r.some(b=>b.id===a.id)),e,c),v=new Set(r.map(a=>a.id)),w=[...t];for(let a of(d.autoRan+=t.length,t))v.add(a.id);for(let a of o){if(v.has(a.id)||!q||!(0,u.I)(a.action,q)||8e3>e()||!await c.approveAuto(a.id,new Date))continue;let b=await c.execute(a.id,new Date);b&&(w.push(b),d.autoRan++)}let x=new Set([...w.map(a=>a.id),...v]),y=o.filter(a=>"LogErrorSpike"===a.ruleKey&&a.resourceId).map(a=>({proposalId:a.id,appId:a.resourceId})),z=y.length&&c.queueDev?await c.queueDev(y,a).catch(()=>new Set):new Set,A=new Map(o.map(a=>[a.id,a.alertId??null]));for(let a of(await c.notifyNew(o.filter(a=>!x.has(a.id)).map(u.E),{},{devQueued:z,alertIds:A}).catch(()=>void 0),w))await c.notifyResult(a,{},{alertId:A.get(a.id)??null}).catch(()=>void 0);return d}let aF=(c={},b={...aD,queueDev:c.queueDev},async(a,c)=>{try{let d=await aE(a,c??{},b);(d.created||d.expired||d.autoRan)&&console.log(`${h.X.logTag}/proposals: ${d.created} new, ${d.expired} expired, ${d.autoRan} auto-ran`)}catch(a){console.warn(`${h.X.logTag}/proposals failed:`,a instanceof Error?a.name:"error")}});a.s(["V",0,ag,"N",0,ak,"Q",0,ae,"Z",0,aF,"t",0,am,"K",0,af],691100)},381544,a=>{var b=a.i(462820),c=a.i(532620),d=a.i(49146),e=a.i(390626),f=a.i(192738),g=a.i(492665),h=a.i(552543),i=a.i(446914),j=a.i(556987),k=a.i(488345),l=a.i(94473),m=a.i(188282);let n={target:d.Q,book:()=>(0,c.e)(),siteUrl:()=>(0,g.f)().SITE_URL,autoRun:()=>(0,l.I)(),send:(a,b,c,d,e)=>(0,i.I)(a,b,c,{...d?{replyMarkup:d}:{},...e?{replyTo:e}:{}}),record:(a,b)=>(0,d.P)("telegram",a,b),lang:()=>(0,h.I)("telegram"),discord:()=>(0,d.G)(),sendDiscord:(a,b)=>(0,e.$)(a,b,{timeoutMs:w}),recordDiscord:(a,b)=>(0,d.P)("discord",a,b),discordLang:()=>(0,h.I)("discord"),buttons:()=>a.A(801116).then(a=>a.approvalButtons()),thread:a=>(0,d.M)(a)},o={en:{pending:"Status: ⏳ waiting",dev:"🧑‍💻 Dev is checking the code",proposer:b.X.notifyFallback.en,app:"app",safe:"safe",risky:"needs care",proposes:"proposes",why:"Why",risk:"Risk",open:"Open in Auto-actions",waitingN:"new proposals waiting for approval:",moreN:"more proposals",automatic:"Automatic",rollbackWhy:"the app errored after the new deploy",succeeded:"Succeeded",failed:"Failed",stopFallback:"something failed"},id:{pending:"Status: ⏳ menunggu",dev:"🧑‍💻 Dev lagi cek kodenya",proposer:b.X.notifyFallback.id,app:"aplikasi",safe:"aman",risky:"perlu hati-hati",proposes:"usul",why:"Kenapa",risk:"Risiko",open:"Buka di Auto-actions",waitingN:"usulan baru menunggu persetujuan:",moreN:"usulan lagi",automatic:"Otomatis",rollbackWhy:"app-nya error setelah deploy baru",succeeded:"Berhasil",failed:"Gagal",stopFallback:"ada yang gagal"}},p={recheck:"Cek ulang sekarang",neon_wake:"Bangunin Neon",supabase_keepalive:"Kirim keep-alive Supabase",supabase_restore:"Restore project Supabase",vercel_redeploy:"Redeploy production",vercel_rollback:"Rollback ke deploy sebelumnya",github_bump_pr:"Bikin PR update paket",domain_recheck:"Cek ulang sertifikat domain",daily_rerun:"Jalanin ulang daily job",monitor_update_url:"Arahin monitor ke domain baru"},q=(a="en")=>(0,h.t)(o,a,"dev"),r=(a,b)=>("id"===b?p[a.action]:void 0)??m.H[a.action]?.label??a.actionLabel,s=(a,b)=>(0,h.t)(o,b,"risky"===a.risk||m.H[a.action]?.risk==="risky"?"risky":"safe"),t=(a,b)=>`${a.replace(/\/+$/,"")}/auto-actions${b?`?proposal=${encodeURIComponent(b)}`:""}`;function u(a,b,c,d=!1,e="en"){let g=a=>(0,h.t)(o,e,a),i=(0,k.R)(a.proposedBy,b,60)||g("proposer"),j=(0,k.R)(a.title,b,120),l=(0,k.R)(a.reason,b,200)||"-";return[`🧑‍✈️ ${(0,f.H)(i)} ${g("proposes")}: ${(0,f.H)(r(a,e))} — ${(0,f.H)(j)}`,`${g("why")}: ${(0,f.H)(l)}`,`${g("risk")}: ${s(a,e)}`,...d?[q(e)]:[],`${g("open")}: ${(0,f.H)(t(c,a.id))}`].join("\n")}let v=new Set(["recheck","domain_recheck"]),w=3e3,x={en:{proposed:"📝 Proposed",approved:"✅ Approved by the owner",rejected:"🚫 Rejected by the owner",done:"⚙️ Ran",failed:"❌ Failed",waiting:"waiting for approval on Telegram.",newN:"new proposals"},id:{proposed:"📝 Usulan",approved:"✅ Disetujui owner",rejected:"🚫 Ditolak owner",done:"⚙️ Dijalankan",failed:"❌ Gagal",waiting:"nunggu persetujuan di Telegram.",newN:"usulan baru"}};function y(a,b,c,d="en"){let e=a=>(0,h.t)(x,d,a);if(Array.isArray(b))return`📝 ${b.length} ${e("newN")} — ${e("waiting")}`;let f=((0,k.g)(b.title,c,120)||r(b,d)).replace(/[*_`~|\[\]<>]/g,"");if("proposed"===a)return`${e("proposed")}: ${f} — ${e("waiting")}`;if("approved"===a||"rejected"===a)return`${e(a)}: ${f}`;let g=b.result?(0,k.g)(b.result,c,200).replace(/[*_`~|\[\]<>]/g,""):"";return`${e(a)}: ${f}${g?` — ${g}`:""}`}async function z(a,c,d){try{let e,f=await c.discord();if(!f)return;let g=await c.book().catch(()=>j.a),h=await c.discordLang().catch(()=>"en"),i=a(g,h);if(!i.length)return;try{e=await c.sendDiscord(f.url,i.join("\n"))}catch{e={ok:!1,kind:"transient",error:"Discord didn't answer."}}await c.recordDiscord(e,d).catch(()=>console.warn(`${b.X.logTag}/discord: recording the result failed`))}catch{console.warn(`${b.X.logTag}/discord: sending the action history failed`)}}async function A(a,b,c={},d={}){let e={...n,...c};await C(()=>z((c,d)=>[y(a,b,c,d)],e,d.now??new Date),d.timeoutMs??w)}async function B(a,c,d){let e=await c.target();if(!e)return;let f=await c.book().catch(()=>j.a),g=await c.lang().catch(()=>"en");for(let h of(await a(f,g))){let a;try{a="string"==typeof h?await c.send(e.token,e.chatId,h):await c.send(e.token,e.chatId,h.text,h.keyboard,h.replyTo??void 0)}catch{a={ok:!1,kind:"transient",error:"Telegram didn't answer."}}await c.record(a,d).catch(()=>console.warn(`${b.X.logTag}/telegram: recording the result failed`))}}async function C(a,c){try{var d;let b;await (d=a(),Promise.race([d,new Promise((a,d)=>{b=setTimeout(()=>d(Object.assign(Error("timeout"),{name:"TimeoutError"})),c)})]).finally(()=>clearTimeout(b)))}catch(a){console.warn(`${b.X.logTag}/telegram: sending the proposal notice failed:`,a instanceof Error?a.name:"error")}}let D=async(a,b)=>b&&a.thread?a.thread(b).catch(()=>null):null;async function E(a,b={},c={}){if(!a.length)return;let d={...n,...b};await C(async()=>{let b=await d.autoRun().catch(()=>null),e=a.filter(a=>{var c;return c=b??{},"pending"===a.status&&!a.auto&&(m.H[a.action]?.risk!=="safe"||"risky"===a.risk||!c[a.action])});if(!e.length)return;let g=e.length>3||!d.buttons?null:await d.buttons().catch(()=>null),i=c.now??new Date;await Promise.all([B(async(a,b)=>e.length>3?[function(a,b,c,d=new Set,e="en"){let g=a=>(0,h.t)(o,e,a),i=a.slice(0,10).map(a=>{let h=(0,k.R)(a.proposedBy,b,60)||g("proposer");return`• ${(0,f.H)(h)}: ${(0,f.H)(r(a,e))} — ${(0,f.H)((0,k.R)(a.title,b,120))} (${s(a,e)})${d.has(a.id)?` \xb7 ${q(e)}`:""}
5
- ${(0,f.H)(t(c,a.id))}`}),j=a.length>10?[`+${a.length-10} ${g("moreN")}`]:[];return[`🧑‍✈️ ${a.length} ${g("waitingN")}`,...i,...j,`${g("open")}: ${(0,f.H)(t(c))}`].join("\n")}(e,a,d.siteUrl(),c.devQueued,b)]:Promise.all(e.map(async e=>{let f=u(e,a,d.siteUrl(),c.devQueued?.has(e.id)??!1,b),i=await D(d,c.alertIds?.get(e.id));return g?{text:`${f}
6
- ${((a="en")=>(0,h.t)(o,a,"pending"))(b)}`,keyboard:g(e),replyTo:i}:{text:f,replyTo:i}})),d,i),z((a,b)=>e.length>3?[y("proposed",e,a,b)]:e.map(c=>y("proposed",c,a,b)),d,i)])},c.timeoutMs??8e3)}async function F(a,b={},c={}){if(!a.auto||"done"!==a.status&&"failed"!==a.status)return;let d={...n,...b},e=c.now??new Date;await C(()=>Promise.all([B(async(b,e)=>{let g=function(a,b,c="en"){if(!a.auto||"done"!==a.status&&"failed"!==a.status||a.auto&&"done"===a.status&&v.has(a.action))return null;let d="done"===a.status?"✅":"❌",e=a.result?(0,k.R)(a.result,b,200):"";return`${d} ${(0,h.t)(o,c,"automatic")}: ${(0,f.H)(r(a,c))} — ${(0,f.H)((0,k.R)(a.title,b,120))}${e?`: ${(0,f.H)(e)}`:""}`}(a,b,e);return g?[{text:g,replyTo:await D(d,c.alertId)}]:[]},d,e),z((b,c)=>[y("done"===a.status?"done":"failed",a,b,c)],d,e)]).then(()=>void 0),c.timeoutMs??8e3)}async function G(a,b,c={},d={}){if("done"!==a.status&&"failed"!==a.status)return;let e={...n,...c},g=d.now??new Date;await C(()=>Promise.all([B(async(c,g)=>[{text:function(a,b,c,d="en"){let e=a=>(0,h.t)(o,d,a),g=(0,k.R)(a.resourceName??e("app"),c,60)||e("app"),i=(0,k.R)(b.reason,c,200).replace(/[.!?…]+$/,"")||e("rollbackWhy"),j=a.result?(0,k.R)(a.result,c,200):"";return["id"===d?`⏪ Otomatis rollback ${(0,f.H)(g)}: ${(0,f.H)(i)}. Deploy baru ${(0,f.H)((0,k.R)(b.newRef,c,40))} dibalikin ke deploy sebelumnya. Benerin dulu, terus deploy ulang.`:`⏪ Automatic rollback of ${(0,f.H)(g)}: ${(0,f.H)(i)}. The new deploy ${(0,f.H)((0,k.R)(b.newRef,c,40))} was rolled back to the previous one. Fix it first, then deploy again.`,`${"done"===a.status?"✅":"❌"} ${e("done"===a.status?"succeeded":"failed")}${j?`: ${(0,f.H)(j)}`:""}`].join("\n")}(a,b,c,g),replyTo:await D(e,d.alertId)}],e,g),z((b,c)=>[y("done"===a.status?"done":"failed",a,b,c)],e,g)]).then(()=>void 0),d.timeoutMs??8e3)}async function H(a,b={},c={}){let d={...n,...b};await C(()=>B((b,c)=>[function(a,b,c="en"){let d="id"===c,e=(0,k.R)(a.app,b,60)||(0,h.t)(o,c,"app"),g=a.packages.slice(0,4).join(", ")+(a.packages.length>4?`, +${a.packages.length-4}`:"");if("merged"===a.kind)return d?`✅ PR #${a.number} di ${(0,f.H)(e)} di-merge otomatis (${(0,f.H)(g)}). Deploy production jalan lewat Vercel; auto-rollback jaga ${a.windowMin??30} menit pertama.`:`✅ PR #${a.number} in ${(0,f.H)(e)} was merged automatically (${(0,f.H)(g)}). The production deploy runs through Vercel; auto-rollback watches the first ${a.windowMin??30} minutes.`;if("ready-manual"===a.kind)return d?`🔐 PR #${a.number} di ${(0,f.H)(e)} siap di-merge, tapi auto-rollback mati — merge manual ya.`:`🔐 PR #${a.number} in ${(0,f.H)(e)} is ready to merge, but auto-rollback is off — please merge it manually.`;let i=(0,k.R)(a.reason??"",b,200)||(0,h.t)(o,c,"stopFallback");return d?`⚠️ PR #${a.number} di ${(0,f.H)(e)} butuh dicek: ${(0,f.H)(i)}. PR-nya dibiarin terbuka.`:`⚠️ PR #${a.number} in ${(0,f.H)(e)} needs a look: ${(0,f.H)(i)}. The PR was left open.`}(a,b,c)],d,c.now??new Date),c.timeoutMs??8e3)}a.s(["h",0,w,"q",0,G,"y",0,H,"v",0,A,"i",0,E,"b",0,F,"a",0,u])},342634,416454,a=>{var b=a.i(556987),c=a.i(313235),d=a.i(462820),e=a.i(488345),f=a.i(188282),g=a.i(679662),h=a.i(84877),i=a.i(245710);let j=new Set(["nextjs","blitzjs"]),k={status:"unknown",version:null},l={status:"ok",version:null},m=/(?:Next\.js|\(now) (\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/,n=a=>!!a&&!j.has(a),o=(a,b)=>null===a.version&&!a.findings.length&&"vulnerable"!==a.status&&("not a Next.js site"===a.reason||n(b));function p(a,b){return"vulnerable"===a.status||a.findings.length?{status:"vulnerable",version:a.version}:"ok"===a.status||a.version?{status:"ok",version:a.version}:o(a,b)?l:k}let q=a=>`${(0,i.L)(a)} ${(0,i.U)(a)} ${(0,i.J)(a)}`,r=a=>"HighLatency"===a?"Slow":"Down",s=(a,b,c,d=!1)=>{let e;if(!c||b.getTime()<c.getTime())return`${r(a)} since ${q(b)}, not tied to a deploy${c?` (live since ${q(c)})`:""}: check the app.`;let f=(e=Math.max(1,Math.round((b.getTime()-c.getTime())/6e4)))<120?`${e} min`:e<2880?`${Math.round(e/60)} h`:`${Math.round(e/1440)} days`;return d?`${r(a)} since ${q(b)}, ${f} after the deploy went live, outside the rollback window: check the app or roll back by hand.`:`${r(a)} since ${q(b)}, started ${f} after the deploy went live: check the app.`},t=a=>a?`No rollback: the previous deployment runs Next.js ${a}, which has known advisories.`:"No rollback: the previous deployment's Next.js has known advisories.",u="Previous deployment's Next.js version is unknown: check it has no known advisories before approving.";a.s(["A",0,6048e5,"Y",0,["NextVulnerable","NextClean"],"B",0,u,"D",0,s,"Q",0,function(a){let b,c=a.currentLiveAt?.getTime(),d=a.previousLiveAt?.getTime(),e=a.check;if(!e)return n(a.framework)?l:k;if(o(e,a.framework))return l;if(void 0===c||void 0===d||d>=c)return k;let f=e.checkedAt.getTime();if(f>=d&&f<c)return p(e,a.framework);if(f<d||c-d<36e5)return k;let i=a.events.filter(a=>"NextVulnerable"===a.reason||"NextClean"===a.reason),j=i.filter(a=>a.at.getTime()<c).sort((a,b)=>b.at.getTime()-a.at.getTime())[0],q=i.filter(a=>a.at.getTime()>=c).sort((a,b)=>a.at.getTime()-b.at.getTime())[0];if(j){var r;let a;b={status:"NextVulnerable"===j.reason?"vulnerable":"ok",version:j.at.getTime()>=d?(r=j.message,(a=m.exec(r)?.[1]??null)&&(0,g.C)(a)?a:null):null}}else b=q?"NextClean"===q.reason?{status:"vulnerable",version:null}:k:{status:p(e,a.framework).status,version:null};if("ok"===b.status&&"ok"!==e.status&&e.findings.length){let a;if(!b.version)return k;if(a=b.version,e.findings.some(b=>!!b.fixed&&(0,g.C)(b.fixed)&&0>(0,h.f)(a,b.fixed)))return{status:"vulnerable",version:b.version}}return b},"g",0,function(a,b,c={}){let d=a.getTime(),e="MonitorDown"===c.ruleKey;if(e&&!c.liveAt)return a;let f=c.liveAt?c.liveAt.getTime()-9e5:0,g=c.gapMs??864e5;for(let a of[...b].sort((a,b)=>b.startedAt.getTime()-a.startedAt.getTime()))!(a.startedAt.getTime()>=d)&&(e?null===a.resolvedAt||a.resolvedAt.getTime()>=f:null===a.resolvedAt||a.resolvedAt.getTime()>=d-g)&&(d=a.startedAt.getTime());return new Date(d)},"e",0,t],416454);let v=200,w=d.X.auditPrefix,x=/^dpl_[A-Za-z0-9]{8,40}$/,y=/^ep-[a-z0-9-]{3,60}$/,z=/^[a-z0-9]{8,40}$/,A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,B=(a,b=v)=>a.length>b?`${a.slice(0,b-1).trimEnd()}…`:a,C=a=>/[.!?…]$/.test(a)?a:`${a}.`;function D(a,c,d,f){return"app"===a&&d?(0,b.r)(f,d):("supabase_project"===a||"neon_project"===a||"neon_branch"===a||"firestore"===a)&&c?(0,b.X)(f,c):d&&(0,e.g)(d,f,120)||null}let E={recheck:a=>`Check ${a} again now`,neon_wake:a=>`Wake the Neon compute of ${a}`,supabase_keepalive:a=>`Send a keep-alive to ${a}`,supabase_restore:a=>`Restore Supabase project ${a}`,vercel_redeploy:a=>`Redeploy production ${a}`,vercel_rollback:a=>`Roll ${a} back to the previous deployment`,github_bump_pr:a=>`Open a PR updating vulnerable packages in ${a}`,domain_recheck:a=>`Re-check the certificate of ${a}`,daily_rerun:()=>"Rerun the daily job",monitor_update_url:a=>`Point the ${a} monitor at its new domain`},F=(a,b)=>B(E[a](b??"this resource")),G=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),H={status:"unknown",version:null};a.s(["e",0,"office-auto","v",0,w,"L",0,6e5,"j",0,v,"I",0,(a,b)=>"safe"===f.H[a].risk&&!0===b[a],"l",0,B,"z",0,function(a,b){let c=a.filter(a=>!G(a,b)),d=a=>[...new Set(a.filter(a=>!!a&&A.test(a)))],e=c.filter(a=>("MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&"app"===a.resourceKind);return{monitorIds:d([...e,...c.filter(a=>"MonitorDomainMoved"===a.ruleKey&&"app"===a.resourceKind)].map(a=>a.subject)),monitorApps:d(e.map(a=>a.resourceId)),deployApps:d(c.filter(a=>("DeploymentFailed"===a.ruleKey||"MonitorDown"===a.ruleKey||"HighLatency"===a.ruleKey)&&"app"===a.resourceKind).map(a=>a.resourceId)),supabaseIds:d(c.filter(a=>("DatabasePaused"===a.ruleKey||"AutoPauseRisk"===a.ruleKey)&&"supabase_project"===a.resourceKind).map(a=>a.resourceId)),depApps:d(c.filter(a=>"VulnerableDependency"===a.ruleKey&&"app"===a.resourceKind).map(a=>a.resourceId)),frameworkApps:d(c.filter(a=>"FrameworkVulnerable"===a.ruleKey&&"app"===a.resourceKind).map(a=>a.resourceId))}},"b",0,a=>"string"==typeof a&&A.test(a),"M",0,F,"t",0,function(a,d,g,h){let i,j,k;if(G(a,h))return[];let l=(i=(0,b.o)(a,g),j=(0,e.g)(i.title,g,80),k=(0,e.g)(i.message,g,v),B([j&&C(j),k&&C(k)].filter(Boolean).join(" ")||`${a.ruleKey}.`));return(function(a,b,c){let d="app"===a.resourceKind&&a.resourceId?a.resourceId:null;switch(a.ruleKey){case"DeploymentFailed":{let a=d?b.deploys.get(d):void 0;if(!d||!a?.currentId||!x.test(a.currentId))return[];let c=[{action:"vercel_redeploy",resourceKind:"app",resourceId:d,targetRef:a.currentId}],e=b.previousNext?.get(d)??H;return a.previousId&&x.test(a.previousId)&&a.previousId!==a.currentId&&("vulnerable"===e.status?c[0].note=t(e.version):c.push({action:"vercel_rollback",resourceKind:"app",resourceId:d,targetRef:a.previousId,..."unknown"===e.status?{note:u}:{}})),c}case"DatabasePaused":case"AutoPauseRisk":{if("supabase_project"!==a.resourceKind||!a.resourceId)return[];let c=b.supabaseRefs.get(a.resourceId);if(!c||!z.test(c))return[];return[{action:"DatabasePaused"===a.ruleKey?"supabase_restore":"supabase_keepalive",resourceKind:"supabase_project",resourceId:a.resourceId,targetRef:c}]}case"VulnerableDependency":{let a=d?b.fixableRepos?.get(d):void 0;return d&&a&&A.test(a)?[{action:"github_bump_pr",resourceKind:"app",resourceId:d,targetRef:a}]:[]}case"FrameworkVulnerable":{let a=d?b.frameworkFixes?.get(d):void 0;return d&&a&&A.test(a.repoId)?[{action:"github_bump_pr",resourceKind:"app",resourceId:d,targetRef:a.repoId}]:[]}case"MonitorDomainMoved":return d&&A.test(a.subject)&&b.monitorMoves?.has(a.subject)?[{action:"monitor_update_url",resourceKind:"app",resourceId:d,targetRef:a.subject}]:[];case"MonitorDown":case"HighLatency":{let e=[];d&&A.test(a.subject)&&"http"===b.monitorKinds.get(a.subject)&&e.push({action:"recheck",resourceKind:"app",resourceId:d,targetRef:a.subject}),"MonitorDown"===a.ruleKey&&a.resourceId&&A.test(a.subject)&&b.dailyHeartbeatId===a.subject&&e.push({action:"daily_rerun",room:"observe",resourceKind:a.resourceKind,resourceId:a.resourceId,targetRef:a.subject});let f=d?b.neonSuspended.get(d):void 0;if(f&&y.test(f.endpointId)&&e.push({action:"neon_wake",room:"databases",resourceKind:f.resourceKind,resourceId:f.resourceId,targetRef:f.endpointId}),b.monitorMoves?.has(a.subject))return e;let g=d?b.deploys.get(d):void 0,h=b.problemSince?.get(a.id)??a.startedAt??null,i=g?.liveAt??null,j=h&&i?h.getTime()>=i.getTime():null,k=d&&b.previousNext?.get(d)||H,l=b.rollbackWindowMs??18e5,m=!!d&&!0===j&&function(a,b,c){if(!a?.currentId||!a.previousId||!a.liveAt||!x.test(a.previousId)||a.previousId===a.currentId)return!1;let d=c.getTime()-a.liveAt.getTime();return d>=0&&d<=b}(g,l,c);if(m&&"vulnerable"!==k.status)return e.push({action:"vercel_rollback",resourceKind:"app",resourceId:d,targetRef:g.previousId,..."unknown"===k.status?{note:u}:{}}),e;let n=m?t(k.version):void 0;if("MonitorDown"===a.ruleKey&&d&&g?.currentId&&x.test(g.currentId)&&"http"===b.monitorKinds.get(a.subject)&&!1!==j)return e.push({action:"vercel_redeploy",resourceKind:"app",resourceId:d,targetRef:g.currentId,...n?{note:n}:{}}),e;let o=!!i&&c.getTime()-i.getTime()>l,p=n??(h&&i&&g?.currentId?s(a.ruleKey,h,i,o):void 0),q=e.find(a=>"recheck"===a.action);return q&&p&&(q.note=p),e}case"CertExpiringSoon":return"domain"===a.resourceKind&&a.resourceId&&A.test(a.resourceId)?[{action:"domain_recheck",resourceKind:"domain",resourceId:a.resourceId,targetRef:a.resourceId}]:[];default:return[]}})(a,d,h).map(i=>{var j;let k,m,n,o,p=i.room??(0,c.p)(a),q="neon_wake"===i.action?D(i.resourceKind,i.resourceId,null,g):D(a.resourceKind,a.resourceId,a.resourceName,g),r="FrameworkVulnerable"===a.ruleKey&&"github_bump_pr"===i.action,s="monitor_update_url"===i.action?d.monitorMoves?.get(i.targetRef):void 0,t=r?(j=i.resourceId?d.frameworkFixes?.get(i.resourceId):void 0,k=q??"this app",B(j?`Next.js ${j.from} in ${k} has known vulnerabilities: the PR updates next (and eslint-config-next when listed) to ${j.to}.`:`Next.js in ${k} has known vulnerabilities with a fixed version.`)):"github_bump_pr"===i.action?(n=(m=(0,e.g)((0,b.o)(a,g).message,g,v)).includes(": ")?m.slice(m.indexOf(": ")+2):"",o=`Vulnerable packages in ${q??"this app"} have a fix`,B(n?`${o}: ${n}`:`${o}.`)):i.note?B(`${i.note} ${l}`):l,u="github_bump_pr"===i.action&&i.resourceId?d.productionMismatch?.get(i.resourceId):void 0;return{alertId:a.id,ruleKey:a.ruleKey,room:p,action:i.action,risk:f.H[i.action].risk,title:r?B(`Open a PR updating Next.js in ${q??"this app"}`):s?B(`Point the ${q??"app's"} monitor at ${s.to}`):F(i.action,q),reason:u?B(`${(0,e.g)(u,g,v)} ${t}`):t,resourceKind:i.resourceKind,resourceId:i.resourceId,resourceName:q,targetRef:i.targetRef,proposedBy:(0,c.y)(p),expiresAt:new Date(h.getTime()+f.V)}})},"x",0,function(a,b){let c=a.ok?a.message||"Done.":a.error||"It didn't run.";return B((0,e.g)(c,b,v)||(a.ok?"Done.":"It didn't run."))},"J",0,D,"E",0,function(a){return{id:a.id,room:a.room,action:a.action,actionLabel:f.H[a.action].label,risk:f.H[a.action].risk,title:a.title,reason:a.reason,resourceName:a.resourceName,proposedBy:a.proposedBy,status:a.status,auto:a.auto,result:a.result,createdAt:a.createdAt.toISOString(),decidedAt:a.decidedAt?a.decidedAt.toISOString():null,expiresAt:a.expiresAt.toISOString()}},"Z",0,function(a,b,c){let d=c??b?.find(a=>a.isDefault)?.id??null,e=(a??[]).find(a=>!d||a.branchId===d);return e&&!e.disabled&&"idle"===e.state&&"active"!==e.pendingState&&y.test(e.id)?e.id:null}],342634)},488345,a=>{var b=a.i(556987),c=a.i(425238),d=a.i(609007),e=a.i(434711);let f=/\b([a-z][a-z0-9+.-]{1,20}):\/\/[^\s"'<>`]*/gi,g=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,h=/\b(?:w[bp]_[A-Za-z0-9]{6,}|hb_[A-Za-z0-9[\]]{2,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{10,}|AQ\.[A-Za-z0-9_-]{10,})/g,i=/(?<![\p{L}\p{N}_.-])[a-z0-9-]+\.vercel\.app(?![\p{L}\p{N}_-])/giu,j=/@/g,k=new WeakMap;function l(a,b){return/^https?$/i.test(b)?"[link]":"[hidden]"}e._;let m="[\\p{L}\\p{N}_./-]",n=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=/(?<![\p{L}\p{N}_.@-])(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,24}(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])/giu,p=new WeakMap;function q(a,e){return String(a??"").replace(/\r\n?/g,"\n").split("\n").map(a=>{var q,r;let s,t,u,v=(q=(0,c.F)(a,e),s=q.replace(f,l),s=(0,b.J)(s,e),s=(s=(0,d.h)(s)).replace(h,"[hidden]"),(t=function(a){if(k.has(a))return k.get(a);let b=[...a.host??[]].filter(a=>a.name.includes(".")).sort((a,b)=>b.name.length-a.name.length),c=b.length?{re:RegExp(`(?<![\\p{L}\\p{N}_-])((?:[a-z0-9-]+\\.)*?)(${b.map(a=>a.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")})(?![\\p{L}\\p{N}_-]|\\.[\\p{L}\\p{N}])`,"giu"),alias:new Map(b.map(a=>[a.name.toLowerCase(),a.alias]))}:null;return k.set(a,c),c}(e))&&(s=s.replace(t.re,(a,b,c)=>`${b}${t.alias.get(c.toLowerCase())??"site.example"}`)),s=s.replace(i,"preview.example").replace(g,"[ip]").replace(j," at "));return v=v.replace(o,a=>/\.example$/i.test(a)?a:"site.example"),(0,b.G)((r=v,(u=function(a){if(p.has(a))return p.get(a);let b=new Map(a.app.filter(a=>a.name.trim().length>=2).map(a=>[a.name.toLowerCase(),a.alias])),c=[...b.keys()].sort((a,b)=>b.length-a.length),d=c.length?{re:RegExp(`(?<!${m})(?:${c.map(n).join("|")})(?!${m})`,"giu"),alias:b}:null;return p.set(a,d),d}(e))?r.replace(u.re,a=>u.alias.get(a.toLowerCase())??a):r))}).join("\n")}let r=(a,b)=>a.length>b?`${a.slice(0,b-1).trimEnd()}…`:a;a.s(["g",0,(a,b,c)=>r(q(String(a??"").replace(/\s+/g," "),b).replace(/\s+/g," ").trim(),c),"R",0,(a,c,d)=>{let e;return r((e=String(a??"").replace(/\s+/g," "),(0,b.q)(q(e,c),c)).replace(/\s+/g," ").trim(),d)}],488345)}]})();
7
-
8
- //# sourceMappingURL=src_0_5_wl0sww-x7._.js.map
@@ -1,3 +0,0 @@
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(396667),D=a.i(944571),E=a.i(30184),F=a.i(565255),G=a.i(751263),H=a.i(27522),I=a.i(683439),J=a.i(960186),K=a.i(558418),L=a.i(245710),M=a.i(240387),N=a.i(139138),O=a.i(657582),P=a.i(469762),Q=a.i(556987),R=a.i(631107),S=a.i(505237),T=a.i(570845);function U({data:a,link:d}){return(0,b.jsxs)(b.Fragment,{children:[a.lines.map(a=>(0,b.jsxs)("div",{className:"former"===a.tag?"text-ink-faint":void 0,children:[d&&"former"!==a.tag?(0,b.jsxs)("a",{href:`https://${a.name}`,target:"_blank",rel:"noreferrer",children:[(0,b.jsx)(j.MaskedText,{text:a.name,inLink:!0})," ",(0,b.jsx)(c.f,{size:14,"aria-hidden":!0,className:"inline align-[-2px]"})]}):(0,b.jsx)(j.MaskedText,{text:a.name}),a.tag&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)(h.E,{children:"redirect"===a.tag&&a.target?(0,b.jsxs)(b.Fragment,{children:["→ ",(0,b.jsx)(j.MaskedText,{text:a.target})]}):a.tag})]})]},a.name)),a.more>0&&(0,b.jsxs)("div",{className:"text-ink-faint",children:["+",a.more," more"]})]})}let V={github:"https://github.com/",gitlab:"https://gitlab.com/",bitbucket:"https://bitbucket.org/"},W=encodeURIComponent;function X(a){return"supabase_project"===a.kind?{label:`Supabase \xb7 ${a.name}`,href:`https://supabase.com/dashboard/project/${W(a.externalId)}`}:"neon_project"===a.kind?{label:`Neon \xb7 ${a.name}`,href:`https://console.neon.tech/app/projects/${W(a.externalId)}`}:"firestore"===a.kind?{label:`Firebase \xb7 ${a.name}`,href:`https://console.firebase.google.com/project/${W(a.externalId)}/overview`}:null}var Y=a.i(679594),Z=a.i(863858),$=a.i(182357),_=a.i(968715),aa=a.i(228173),ab=a.i(768183),ac=a.i(393260),ad=a.i(537728),ae=a.i(718064),af=a.i(466627),ag=a.i(881868),ah=a.i(991813),ai=a.i(143821);let aj="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",ak="font-mono text-[12.5px]",al=["details","metrics","deployments","logs"];async function am({params:a,searchParams:c}){var m,r,H,K,R,$;let ag,ah,aq,ar,as,[{id:at},au]=await Promise.all([a,c]),av=await (0,u.I)();(0,I.f)(at)||(0,e.notFound)();let aw=new Date,ax=(0,S.z)(av.role),ay=(0,w.T)(aw,at).catch(()=>null),[az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ]=await Promise.all([(0,x.Z)(at,aw),(0,A.P)(at,aw),(0,z.K)({appId:at}),(0,A.M)(at,new Date(aw.getTime()-864e5*_.F)),(0,E.P)(),(0,y.p)(),ax?(0,y.S)():Promise.resolve([]),(0,y.e)(),(0,D.c)(at).catch(()=>null),(0,B.j)(at).catch(()=>null),(0,C.I)()]);az||(0,e.notFound)();let aK=await ay,aL=aK&&aK.map(a=>(0,Q.d)(a,aG)),aM=(0,Z.f)(),aN="viewer"!==av.role&&aM?(0,Y.M)(az.teamSlug,az.name):null,aO=(0,S.k)(az),aP=(0,M.f)({...az,database:az.database?{id:az.database.id,kind:az.database.kind,name:(0,Q.X)(aG,az.database.id)}:null},aw),{WhyAiSlot:aQ,AiNotesSlot:aR,DevNotesSlot:aS}=v.extensions,aT="owner"===av.role&&aQ?(0,b.jsx)(aQ,{appId:az.id}):null,aU="owner"===av.role&&aR?(0,b.jsx)(aR,{appId:az.id}):null,aV=az.monitors.length>0&&az.monitors.every(a=>a.ownerPaused),aW=aM?`https://${az.domain}`:null,aX=(0,O.h)(aB),aY=a=>{let b=a?aB.find(b=>b.externalId===a):void 0;return b?{id:b.externalId,sha:(0,P._)(b.commitSha).replace("—","")}:null},aZ=aY(aX.stagedId),a$=(0,G.g)(az.productionSource,az.productionBranch,aw),a_=al.find(a=>a===au.tab)??"details",a0="logs"===a_&&"viewer"===av.role?"details":a_,a1=aE.find(a=>a.appId===az.id&&a.zoneName),a2=aW?(m={teamSlug:az.teamSlug,projectName:az.name,repo:az.repo,repoType:az.repoType,siteUrl:aW,dbs:az.database?[{...az.database,name:(0,Q.X)(aG,az.database.id)}]:[],zone:a1?{accountId:a1.cfAccountId,name:a1.zoneName}:null},ah=[],m.teamSlug&&ah.push({label:"Vercel project",href:`https://vercel.com/${W(m.teamSlug)}/${W(m.projectName)}`}),(aq=m.repoType?V[m.repoType]:void 0)&&m.repo&&ah.push({label:"Git repository",href:`${aq}${m.repo.split("/").map(W).join("/")}`}),ah.push({label:"Live site",href:m.siteUrl}),(ar=[...m.dbs.map(X).filter(a=>null!==a),...m.zone?.accountId?[{label:`Cloudflare \xb7 ${m.zone.name}`,href:`https://dash.cloudflare.com/${W(m.zone.accountId)}/${W(m.zone.name)}`}]:[]]).length?[...ah,"---",...ar]:ah):[];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.AutoRefresh,{at:aw.getTime()}),(0,b.jsx)(h.L,{crumbs:[{label:"Applications",href:"/apps"},{label:az.name}],badge:(0,b.jsx)(l.g,{kind:"app"}),title:az.name,actions:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ai.WhyStatus,{state:aO.state,label:aO.label,problems:aP,nowMs:aw.getTime(),aiSlot:aT}),a2.length>0&&(0,b.jsx)(q.RowMenu,{button:!0,label:"Open in",items:a2.map(a=>"---"===a?a:{label:a.label,href:a.href})}),ax&&(0,b.jsx)(ad.AppActions,{app:{id:az.id,name:az.name,siteUrl:aW,paused:aV,monitorCount:az.monitors.length},owner:"owner"===av.role,current:aY(aX.currentId),previous:aY(aX.previousId),rolledBack:null!==aZ})]})}),aZ&&(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:ax?(0,b.jsx)(ad.PromoteStaged,{app:{id:az.id,name:az.name},staged:aZ}):void 0})}),(0,b.jsxs)(t.Tabs,{defaultValue:a0,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"!==av.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:aj,children:[(0,b.jsx)("dt",{children:"Name"}),(0,b.jsx)("dd",{children:(0,b.jsx)(j.Masked,{kind:"app",real:az.name})}),(0,b.jsx)("dt",{children:"Domains"}),(0,b.jsx)("dd",{children:(0,b.jsx)(U,{data:az.domainLines,link:aM})}),(0,b.jsx)("dt",{children:"Framework"}),(0,b.jsx)("dd",{children:az.framework??"—"}),(0,b.jsx)("dt",{children:"Function region"}),(0,b.jsx)("dd",{className:(0,N.f)(ak,!az.functionRegions.length&&"text-ink-faint"),children:az.functionRegions.join(", ")||"—"}),(0,b.jsx)("dt",{children:"Production branch"}),(0,b.jsx)("dd",{className:ak,children:az.productionBranch??"—"}),a$&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"Production built from"}),(0,b.jsxs)("dd",{children:[(0,b.jsx)("span",{className:ak,children:a$.text}),a$.warning&&(0,b.jsx)("span",{className:"ml-2 rounded border border-warn-icon/40 bg-warn-soft px-1.5 py-px text-[11.5px] text-warn",title:a$.warning,children:"Update PRs need your approval"})]})]}),(0,b.jsx)("dt",{children:"Repository"}),(0,b.jsx)("dd",{className:(0,N.f)(ak,!az.repo&&"text-ink-faint"),children:az.repo?(0,b.jsx)(j.Masked,{kind:"repo",real:az.repo}):"—"}),(0,b.jsx)("dt",{children:"Created"}),(0,b.jsx)("dd",{children:az.createdAt?(0,P.H)(az.createdAt):"—"})]})}),(0,b.jsx)(h.N,{title:"Status",children:(0,b.jsxs)("dl",{className:aj,children:[(0,b.jsx)("dt",{children:"Status"}),(0,b.jsx)("dd",{children:(0,b.jsx)(ai.WhyStatus,{state:aO.state,label:aO.label,problems:aP,nowMs:aw.getTime(),aiSlot:aT})}),(0,b.jsx)("dt",{children:"Database"}),(0,b.jsxs)("dd",{children:[az.database?(0,b.jsx)(aa.y,{db:az.database}):(0,b.jsx)("span",{className:"text-ink-faint",children:"None"}),ax&&(0,b.jsxs)(b.Fragment,{children:[" ",(0,b.jsx)(af.LinkDialog,{app:{id:az.id,name:az.name},options:aF,current:az.database?.id??null,suggested:(0,J.U)(az.name,aF)})]})]}),(0,b.jsx)("dt",{children:"Uptime 30 days"}),(0,b.jsx)("dd",{className:ak,children:(0,P.C)(az.uptime30)}),(0,b.jsx)("dt",{children:"Response 24 h"}),(0,b.jsxs)("dd",{className:ak,children:["p50 ",(0,P.p)(az.response.p50)," · p95 ",(0,P.p)(az.response.p95)]}),(0,b.jsx)("dt",{children:"Last deploy"}),(0,b.jsx)("dd",{children:az.lastDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:ak,children:(0,P._)(az.lastDeploy.commitSha)})," · ",(0,P.$)(az.lastDeploy,aw)]}):"—"}),(0,b.jsx)("dt",{children:"Monitors"}),(0,b.jsxs)("dd",{children:[0===az.monitors.length?(0,b.jsx)("span",{className:"text-ink-faint",children:"None"}):az.monitors.map(a=>{let c=(0,S.M)({...a,appGone:az.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:ak,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)}),az.monitors.filter(a=>a.move&&!az.gone).map(a=>(0,b.jsx)("div",{className:"mt-1",children:(0,b.jsx)(T.DomainMoved,{monitorId:a.id,from:a.move.from,to:a.move.to,canAct:ax})},`move-${a.id}`))]})]})})]}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(ao,{app:{id:az.id,name:az.name},security:az.security,canAct:ax&&!az.gone,now:aw,eol:aD})}),aI&&aH&&(aH.connected||aH.link)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(ae.f,{app:{id:az.id,name:az.name},view:aI,canAct:ax&&!az.gone,owner:"owner"===av.role,now:aw,devopsOff:aJ.has("devops")})}),aH&&(aH.connected||aH.link)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(ap,{app:{id:az.id,name:az.name},view:aH,suggestion:aH.link?null:(R=az.name,$=aH,(ag=(0,F.J)(R,$.repos))?{...ag,fullName:$.repos.find(a=>a.id===ag.repoId).fullName}:null),owner:"owner"===av.role,canAct:ax,now:aw})}),"owner"===av.role&&aS&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(aS,{appId:az.id})}),aL&&(aL.length>0||aU)&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(k.f,{items:aL,canDismiss:ax,showSubject:!1,hideWhenEmpty:!0,notes:aU})})]}),(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:aA.response,second:aA.median,ticks:(r=aA.first,H=aA.sizeMs,as=r+(K=aA.response.length)*H,aC.filter(a=>a.at.getTime()>=r&&a.at.getTime()<as).map(a=>{let b;return{x:Math.round(Math.min((a.at.getTime()-r)/H,K-1)/Math.max(1,K-1)*4e3)/10,title:`${"error"===(b=a.state)?"Deploy failed":"building"===b?"Deploying":"Deployed"} ${(0,P._)(a.sha)} \xb7 ${(0,L.U)(a.at)}`}})),width:400,height:120,fluid:!0,tone:"err"===aO.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)(an,{pv:az.pageViews,note:az.pageViewsNote,now:aw})}),(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:aA.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===az.monitors.length?(0,b.jsx)(g.x,{}):(0,b.jsx)(p.PlainTable,{head:["Monitor","Last 90 days","Uptime"],rows:az.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,N.f)(s.z,ak),children:a.path}),(0,b.jsx)("td",{className:s.z,children:(0,b.jsx)(f.n,{bars:(0,_.h)(az.days.get(a.id),aw,_.F,function(a){let b=new Map;for(let c of[...a].sort((a,b)=>a.at.getTime()-b.at.getTime())){let a=(0,L.x)(c.at),d=`${(0,P._)(c.sha)}${"error"===c.state?" (failed)":""}`;b.set(a,[...b.get(a)??[],d])}return new Map([...b].map(([a,b])=>[a,b.join(", ")]))}(aC))})}),(0,b.jsx)("td",{className:(0,N.f)(s.z,ak),children:(0,P.C)((0,_.Y)((0,_.w)(az.days.get(a.id),aw,_.I)))})]})}))})})]})}),(0,b.jsx)(t.TabsContent,{value:"deployments",keepMounted:!0,children:(0,b.jsx)(h.N,{flush:!0,children:0===aB.length?(0,b.jsx)(g.y,{}):(0,b.jsx)(p.PlainTable,{head:ab.G,rows:(0,ab.C)(aB,{canAct:ax,now:aw})})})}),"viewer"!==av.role&&(0,b.jsx)(t.TabsContent,{value:"logs",children:(0,b.jsx)(h.N,{flush:!0,children:(0,b.jsx)(ac.LogViewer,{mode:"live",apps:[],appId:az.id,initial:[],vercelUrl:aN})})})]})]})}function an({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,R.Z)(a.readAt,d)&&(0,b.jsxs)("span",{className:"ml-auto text-[12px] text-ink-faint",children:["Read ",(0,L.$)(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 ao({app:a,security:c,canAct:d,now:e,eol:f}){let g=(0,$.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)(ah.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:aj,children:[(0,b.jsx)("dt",{children:"Next.js"}),(0,b.jsx)("dd",{children:c?.version?(0,b.jsx)("span",{className:ak,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)(aq,{version:c?.version??null,eol:f,now:e})}),(0,b.jsx)("dt",{children:"Checked"}),(0,b.jsx)("dd",{children:c?(0,L.$)(c.checkedAt,e):"—"})]}),g&&(0,b.jsxs)("p",{className:(0,N.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)(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:ak,children:a.id}),a.cve&&(0,b.jsx)("div",{className:(0,N.f)(ak,"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,N.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,N.f)(s.z,ak),children:a.fixed?`Fixed in ${a.fixed}`:(0,b.jsx)("span",{className:"text-ink-faint",children:"No fix yet"})})]})}))})]})}function ap({app:a,view:d,suggestion:e,owner:f,canAct:g,now:i}){let k=d.link?.repo??null,l=k?(0,H.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)(ag.RefreshActionsButton,{appId:a.id})]}),children:k?(0,b.jsxs)("dl",{className:aj,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:ak,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)(ag.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,H.z)(d.link.source)}),(0,b.jsx)("dt",{children:"Default branch"}),(0,b.jsx)("dd",{className:ak,children:k.defaultBranch??"—"}),(0,b.jsx)("dt",{children:"Last push"}),(0,b.jsx)("dd",{children:k.pushedAt?(0,L.$)(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:ak,children:(0,P._)(m.sha)})]}):null,m.at?` \xb7 ${(0,L.$)(new Date(m.at),i)}`:""]}),m?.url&&(0,Z.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,L.$)(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:ak,children:(0,b.jsx)(j.Masked,{kind:"repo",real:e.fullName})})," (",(0,H._)(e.why),")."]}),f&&(0,b.jsx)(ag.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)(ag.RepoDialog,{app:a,options:d.options,current:null,suggested:e?.repoId??null,label:"Choose…"})]})})}function aq({version:a,eol:c,now:d}){let e=(0,K.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,am,"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)},492324,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RowMenu() from the server but RowMenu 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/components/row-menu.tsx","RowMenu");a.s(["RowMenu",0,b])},715513,a=>{var b=a.i(492324);a.n(b)}],102158,function(a){a.n(a.i(252650))}];
2
-
3
- //# sourceMappingURL=src_1koc8y1nfdlw3._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[38954,867111,629968,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("608fd3226d92ebd148e568795bc072d2f7fa38bcbe",b.callServer,void 0,b.findSourceMapURL,"promoteAction");a.s(["f",0,c],38954);let d=(0,b.createServerReference)("6041a8078651633dfe1c48782277520e5a38c49d23",b.callServer,void 0,b.findSourceMapURL,"redeployAction");a.s(["f",0,d],867111);let e=(0,b.createServerReference)("602a6482a35cef410c7fae37b6e1957b7704f01fc1",b.callServer,void 0,b.findSourceMapURL,"rollbackAction");a.s(["f",0,e],629968)},762253,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(771378),e=a.i(619089),f=a.i(54901),g=a.i(188406),h=a.i(87674),i=a.i(742680),j=a.i(405050);let k=(0,j.createServerReference)("60b8c0a36189ebb7a67a81d5f511990136046372dc",j.callServer,void 0,j.findSourceMapURL,"cancelAction");var l=a.i(38954);let m=(0,j.createServerReference)("60e21467c9e8979c0d02b704ce917237fec113fa2f",j.callServer,void 0,j.findSourceMapURL,"promotePreviewAction");var n=a.i(867111),o=a.i(629968),p=a.i(728951),q=a.i(814574),r=a.i(507504);let s=/(\berror(?![-\w])|\bERR!|\bERR_[A-Z_]+|\bfailed\b|exited with (?:code )?[1-9]|Module not found|command not found)/i,t=/^\s*(?:npm |pnpm |yarn )?(?:warn|warning)\b|\b0 (?:errors?|failed)\b/i;function u(a){return"command"!==a.kind&&"delimiter"!==a.kind&&s.test(a.text)&&!t.test(a.text)}var v=a.i(368114);let w=(0,j.createServerReference)("60ce66327cd33d5774f652d9f4e84ab89305d44b3d",j.callServer,void 0,j.findSourceMapURL,"buildLogsAction"),x={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},y=a=>`build-line-${a}`;function z({log:a}){let c=a.lines.findIndex(u),d=a.lines.filter(u).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[a.lines.length," lines",a.truncated?` (the last ${2e3.toLocaleString("en-US")})`:""]}),c>=0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-err",children:[d," error line",1===d?"":"s"]}),(0,b.jsx)("button",{type:"button","data-line":y(c),className:"text-brand hover:underline",onClick:()=>document.getElementById(y(c))?.scrollIntoView({block:"center"}),children:"Jump to first error"})]}):(0,b.jsx)("span",{children:"No error lines"})]}),(0,b.jsx)("div",{tabIndex:0,"aria-label":"Build log lines",className:"min-h-0 flex-1 overflow-auto bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===a.lines.length?(0,b.jsx)("div",{className:"text-code-dim",children:"Vercel returned no build output for this deployment."}):a.lines.map((a,c)=>{let d=u(a);return(0,b.jsx)("div",{id:y(c),"data-error":d?"":void 0,className:(0,v.f)("whitespace-pre-wrap [overflow-wrap:anywhere]",d?"-mx-4 border-l-2 border-err bg-err/15 px-[14px] text-code-err":x[a.kind],"delimiter"===a.kind&&"mt-1.5 font-medium"),children:"command"===a.kind?`$ ${a.text}`:a.text||" "},c)})})]})}function A({appId:a,deploymentId:d,title:e,open:f,onOpenChange:g,read:h=w}){let[i,j]=(0,c.useState)(null);return(0,r.useHoldRefresh)(f),(0,c.useEffect)(()=>{if(!f)return;let b=!0;return h(a,d).then(a=>{b&&j(a.ok&&a.data?{log:a.data}:{error:a.ok?"No build log came back.":a.error})}).catch(()=>{b&&j({error:"Watchbell didn't answer. Check that it's still running, then try again."})}),()=>{b=!1,j(null)}},[f,a,d,h]),(0,b.jsx)(q.N,{open:f,onOpenChange:g,children:(0,b.jsxs)(q.d,{className:"top-0 right-0 left-auto flex h-dvh max-w-full translate-x-0 translate-y-0 flex-col gap-0 rounded-none p-0 sm:max-w-[780px]",children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,b.jsxs)(q.F,{className:"text-base",children:["Build log · ",e]}),(0,b.jsxs)(q.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Newest build, read from Vercel now",(0,b.jsx)(p.Src,{kind:"api"})]})]}),null===i?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in i?(0,b.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:i.error}):(0,b.jsx)(z,{log:i.log})]})})}let B={label:"View build logs",kind:"logs"};a.s(["DeployRowActions",0,function({d:a,actions:j,logs:p}){var q;let r,s,t,u=(0,d.useMask)(),{open:v,dialog:w}=(0,f.W)(),[x,y]=(0,c.useState)(!1),z=a.sha?a.sha.slice(0,7):"",{visit:C,deployment:D}=(r=a.url?`https://${a.url}`:null,a.primaryDomain?{visit:`https://${a.primaryDomain}`,deployment:r}:{visit:r??"",deployment:null}),{buttons:E,menu:F}=(s=[...(q={actions:j,logs:p,visit:!!C&&a.visit}).visit&&"button"!==q.logs?[{label:"Visit",kind:"visit"}]:[],...q.actions.map(a=>({label:a,kind:"action",action:a})),..."button"===q.logs?[B]:[]],t="menu"===q.logs?[B]:[],s.length>2?{buttons:[],menu:[...s,...t]}:{buttons:s,menu:t}),G=b=>v({...(0,h.f)(b,u("app",a.appName),z),run:function(a,b,c){switch(a){case"Redeploy":return()=>(0,n.f)(b,c);case"Roll back to this":return()=>(0,o.f)(b,c);case"Promote":return()=>(0,l.f)(b,c);case"Cancel":return()=>k(b,c);case"Promote to production":return()=>m(b,c)}}(b,a.appId,a.externalId)});return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[E.map(a=>"visit"===a.kind?(0,b.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:(0,e.R)({size:"sm"}),children:"Visit"},a.label):"logs"===a.kind?(0,b.jsx)(e.K,{size:"sm",onClick:()=>y(!0),children:a.label},a.label):(0,b.jsx)(e.K,{size:"sm",onClick:()=>G(a.action),children:a.label},a.label)),D&&a.visit&&"button"!==p&&(0,b.jsx)("a",{href:D,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),F.length>0&&(0,b.jsx)(g.RowMenu,{label:(0,i.J)(u("app",a.appName),z||a.url||a.externalId),items:F.map(a=>"visit"===a.kind?{label:a.label,href:C}:"logs"===a.kind?{label:a.label,onSelect:()=>y(!0)}:{label:a.label,onSelect:()=>G(a.action)})}),w,p&&(0,b.jsx)(A,{appId:a.appId,deploymentId:a.externalId,title:`${u("app",a.appName)}${z?` ${z}`:""}`,open:x,onOpenChange:y})]})}],762253)}]})();
2
-
3
- //# sourceMappingURL=src_app_%28console%29_0kwns5iudhgwj._.js.map
@@ -1,3 +0,0 @@
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(977274),k=a.i(38954),l=a.i(867111),m=a.i(629968),n=a.i(405050);let o=(0,n.createServerReference)("40e94bc16af6f2c87e2471e6d97533d5f8e4abc734",n.callServer,void 0,n.findSourceMapURL,"removeAppFromConsole");var p=a.i(752818);a.s(["AppActions",0,function({app:a,owner:k,current:n,previous:q,rolledBack:r=!1}){let[s,t]=(0,c.useState)(!1),u=(0,e.useMask)(),[,v]=(0,c.useTransition)(),w=(0,p.f)(),x=(0,g.W)(),y=u("app",a.name),z=[r?{label:"Redeploy",disabled:"Promote one first"}:n?{label:"Redeploy",onSelect:()=>x.open({...(0,i.f)("Redeploy",y,n.sha),run:()=>(0,l.f)(a.id,n.id)})}:{label:"Redeploy",disabled:"No current production deployment"},q?{label:"Roll back",onSelect:()=>x.open({...(0,i.f)("Roll back",y,q.sha),run:()=>(0,m.f)(a.id,q.id)})}:{label:"Roll back",disabled:"No previous production deployment"},...a.siteUrl?[{label:"Open site",href:a.siteUrl}]:[]];return a.monitorCount>0&&z.push({label:a.paused?"Resume monitors":"Pause monitors",onSelect:()=>w(()=>new Promise(b=>v(async()=>{try{let b=await (0,j.f)(a.id,!a.paused);b.ok?d.c.success(b.message??""):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{b()}})))}),k&&z.push("---",{label:"Remove from console",danger:!0,onSelect:()=>t(!0)}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RowMenu,{button:!0,items:z}),x.dialog,k&&(0,b.jsx)(f.f,{open:s,onOpenChange:t,title:`Remove ${u("app",a.name)} from the console?`,body:"Its monitors, history, and alerts are deleted from the console. The Vercel project itself isn't touched.",cta:"Remove",danger:!0,onConfirm:async()=>{let b=await o(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})},"PromoteStaged",0,function({app:a,staged:c}){let d=(0,e.useMask)();return(0,b.jsx)(g.p,{label:"Promote",...(0,i.f)("Promote",d("app",a.name),c.sha),run:()=>(0,k.f)(a.id,c.id)})}],340855)},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)("604ae75012de088b64f8e4d4c326acea002b255fdd",m.callServer,void 0,m.findSourceMapURL,"saveDatabaseLink");a.s(["LinkDialog",0,function({app:a,options:m,current:o,suggested:p}){var q;let r,[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(o??""),[w,x]=(0,d.useTransition)(),y=(0,f.useMask)();return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:a=>{!w&&(t(a),a&&v(o??p??""))},children:[(0,b.jsx)(i.a,{className:(0,g.R)({size:"sm",variant:"ghost"}),children:"Edit link"}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:["Database for ",(0,b.jsx)(f.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Used by Topology, the app status (a paused database makes the app Degraded), and alerts. The console suggests one by name. It never reads your app's secrets."})]})]}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...(q=a.name,r=l(q),m.map((a,b)=>({o:a,i:b,r:(a=>{if(a.id===p)return 0;if(a.id===o)return 1;let b=l(a.name);return r&&b===r?2:r.length>=4&&b.length>=4&&(r.includes(b)||b.includes(r))?3:4})(a)})).sort((a,b)=>a.r-b.r||a.i-b.i).map(a=>a.o)).map(a=>({id:a.id,name:a.name,sub:`${k[j[a.kind]]} \xb7 ${y("account",a.account)}`,where:[a.region,a.ident].filter(Boolean).join(" · ")})),{id:"",name:"No database",sub:"This app doesn't use one",where:""}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"link",className:"size-4 accent-brand",checked:u===a.id,onChange:()=>v(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"block truncate",children:a.id?(0,b.jsx)(f.DbName,{id:a.id,name:a.name}):a.name}),(0,b.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:a.sub}),a.where&&(0,b.jsx)("span",{className:"block truncate font-mono text-[11.5px] text-ink-faint",title:a.where,children:a.where})]}),a.id&&a.id===o&&(0,b.jsx)(g.E,{children:"Current"}),a.id&&a.id!==o&&a.id===p&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{onClick:()=>t(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",disabled:w,onClick:function(){x(async()=>{try{let b=await n(a.id,u||null);if(!b.ok)return void e.c.error(b.error);e.c.success("Link saved",{description:b.message?y("text",b.message):void 0}),t(!1)}catch{e.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:w?"Saving…":"Save link"})]})]})]})}],685194)},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)("6065a49104851406b2cff692978142c37400ab8838",l.callServer,void 0,l.findSourceMapURL,"linkRepo"),n=(0,l.createServerReference)("407f6be24699e98cedec17a6d7409c4ba24f2073fe",l.callServer,void 0,l.findSourceMapURL,"refreshRepoActions");a.s(["ConfirmRepo",0,function({appId:a,repoId:c,fullName:d}){let[i,j]=(0,e.useTransition)(),k=(0,g.useMask)();return(0,b.jsx)(h.K,{size:"sm",variant:"primary",disabled:i,onClick:()=>j(async()=>{let b=await m(a,c);b.ok?f.c.success(b.message?k("text",b.message):"Linked."):f.c.error(b.error)}),children:i?"Linking…":(0,b.jsxs)(b.Fragment,{children:["Link to ",(0,b.jsx)(g.Masked,{kind:"repo",real:d})]})})},"RefreshActionsButton",0,function({appId:a}){let[c,g]=(0,e.useTransition)();return(0,b.jsxs)(h.K,{size:"sm",disabled:c,onClick:()=>g(async()=>{let b=await n(a);b.ok?f.c.success(b.message??"Refreshed."):f.c.error(b.error)}),children:[(0,b.jsx)(d.f,{size:14,"aria-hidden":!0}),c?"Reading…":"Refresh"]})},"RepoDialog",0,function({app:a,options:d,current:l,suggested:n,label:o}){let[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(l??""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useTransition)(),x=(0,g.useMask)();(0,i.useHoldRefresh)(p);let y=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase(),b=d.filter(b=>!a||b.fullName.toLowerCase().includes(a)||x("repo",b.fullName).toLowerCase().includes(a)),c=[l,n].filter(a=>!!a);return[...b.filter(a=>c.includes(a.id)),...b.filter(a=>!c.includes(a.id))].slice(0,100)},[d,t,l,n,x]);return(0,b.jsxs)(j.N,{open:p,onOpenChange:a=>{!v&&(q(a),a&&(s(l??n??""),u("")))},children:[(0,b.jsx)(j.a,{className:(0,h.R)({size:"sm",variant:"ghost"}),children:o}),(0,b.jsxs)(j.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(j.F,{className:"text-base",children:["Repository for ",(0,b.jsx)(g.Masked,{kind:"app",real:a.name})]}),(0,b.jsx)(j.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Shows the repository and its GitHub Actions status on this page. The console reads it with the read-only token and never writes to it."})]})]}),(0,b.jsx)("div",{className:"px-[18px] pb-2",children:(0,b.jsx)("input",{className:(0,k.f)(h.S,"w-full"),placeholder:"Filter repositories","aria-label":"Filter repositories",value:t,onChange:a=>u(a.target.value)})}),(0,b.jsx)("div",{className:"max-h-[320px] overflow-y-auto px-[18px] pb-2",children:[...y.map(a=>({id:a.id,name:a.fullName,archived:a.archived})),{id:"",name:"No repository",archived:!1}].map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"repo",className:"size-4 accent-brand",checked:r===a.id,onChange:()=>s(a.id)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12.5px]",children:a.id?(0,b.jsx)(g.Masked,{kind:"repo",real:a.name}):(0,b.jsx)("span",{className:"font-sans text-[13.5px]",children:a.name})}),a.archived&&(0,b.jsx)(h.E,{children:"Archived"}),a.id&&a.id===l&&(0,b.jsx)(h.E,{children:"Current"}),a.id&&a.id!==l&&a.id===n&&(0,b.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"Suggested"})]},a.id||"none"))}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>q(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"primary",disabled:v||r===(l??""),onClick:function(){w(async()=>{try{let b=await m(a.id,r||null);if(!b.ok)return void f.c.error(b.error);f.c.success("Link saved",{description:b.message?x("text",b.message):void 0}),q(!1)}catch{f.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:v?"Saving…":"Save link"})]})]})]})}],605761)},458027,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(771378),f=a.i(619089),g=a.i(405050);let h=(0,g.createServerReference)("400f2e0b45733fa1238d4169c48262d3c98b72e3e2",g.callServer,void 0,g.findSourceMapURL,"checkSecurity");a.s(["SecurityCheckButton",0,function({appId:a,appName:g}){let[i,j]=(0,c.useTransition)(),k=(0,c.useRef)(!1),l=(0,e.useMask)();return(0,b.jsx)(f.K,{size:"sm",onClick:()=>{if(k.current)return;k.current=!0;let b=d.c.loading(`Checking ${l("app",g)}. The result shows here in a few seconds.`);j(async()=>{try{let c=await h(a);c.ok?c.data?.passed===!1||c.data?.vulnerable?d.c.warning(c.message??"",{id:b}):d.c.success(c.message??"",{id:b}):d.c.error(c.error,{id:b})}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b})}finally{k.current=!1}})},disabled:i,children:i?"Checking…":"Check now"})}],458027)},913902,a=>{var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(771378),f=a.i(286597),g=a.i(814574),h=a.i(147474);a.i(310412);var i=a.i(742680);a.s(["WhyStatus",0,function({state:a,label:j,problems:k,nowMs:l,aiSlot:m=null}){let[n,o]=(0,d.useState)(!1);if(!k.length||"warn"!==a&&"err"!==a)return(0,b.jsx)(f.F,{state:a,children:j});let p=new Date(l);return(0,b.jsxs)(g.N,{open:n,onOpenChange:o,children:[(0,b.jsxs)(g.a,{title:"Why? Where the problem is and what to do",className:"inline-flex cursor-pointer items-center gap-1.5 whitespace-nowrap rounded-md border-0 bg-transparent p-0 text-left text-inherit underline decoration-dotted decoration-1 underline-offset-[3px] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40 [font:inherit]",children:[(0,b.jsx)(f.Z,{state:a}),(0,b.jsx)("span",{children:j})]}),(0,b.jsxs)(g.d,{className:"max-h-[85vh] gap-3 overflow-y-auto sm:max-w-[520px]",children:[(0,b.jsxs)(g.F,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(f.Z,{state:a}),`Why ${i.X[a]}`]}),(0,b.jsx)(g.C,{className:"text-[13px] text-ink-soft",children:k.length>0&&k.every(a=>"monitor"===a.kind&&a.where.endsWith("(heartbeat)"))?"The website is up; a background job isn't reporting.":`${1===k.length?"One thing explains":`${k.length} things explain`} this status.`}),(0,b.jsx)("div",{className:"flex flex-col gap-4",children:k.map((a,d)=>(0,b.jsxs)("section",{className:"border-t border-line pt-3 first:border-t-0 first:pt-0",children:[(0,b.jsxs)("h3",{className:"flex flex-wrap items-center gap-x-2 text-[13.5px] font-medium",children:[(0,b.jsx)(f.Z,{state:a.state}),(0,b.jsx)(c.default,{href:a.href,onClick:()=>o(!1),children:(0,b.jsx)(e.MaskedText,{text:a.where})})]}),(0,b.jsxs)("p",{className:"mt-1 text-[13px] text-ink-soft",children:[(0,b.jsx)(e.MaskedText,{text:a.reason}),a.since?(0,b.jsxs)(b.Fragment,{children:[" · since ",(0,h.$)(a.since,p)]}):null]}),(0,b.jsx)("p",{className:"mt-2 text-[12px] font-medium uppercase tracking-[0.04em] text-ink-faint",children:"What to do"}),(0,b.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-[13px]",children:a.remedies.map(a=>(0,b.jsx)("li",{children:a},a))})]},`${a.where}-${d}`))}),m]})]})}],913902)}]})();
2
-
3
- //# sourceMappingURL=src_app_%28console%29_apps_%5Bid%5D_1sfvku9ui1le-._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[93088,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("605ed07a4fd8782dd1fac869114338d4291bfd7f2d",b.callServer,void 0,b.findSourceMapURL,"signInWithPassword");a.s(["f",0,c])},625104,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089);let e="demo@watchbell.west-solutions.web.id",f="watchbell-demo";var g=a.i(93088);a.s(["DemoSignInForm",0,function({next:a}){let[h,i,j]=(0,c.useActionState)(g.f,{status:"idle"}),k=(0,c.useRef)(null),l=(0,c.useRef)(null);return(0,b.jsxs)("form",{action:i,children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Try the Watchbell demo"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Sign in with the demo account to look around a console full of made-up data of your own."}),(0,b.jsxs)("div",{className:"mb-[18px] rounded-lg border border-line bg-sunken px-3.5 py-3",children:[(0,b.jsxs)("dl",{className:"mb-2.5 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[13px]",children:[(0,b.jsx)("dt",{className:"text-ink-soft",children:"Email"}),(0,b.jsx)("dd",{className:"break-all font-mono",children:e}),(0,b.jsx)("dt",{className:"text-ink-soft",children:"Password"}),(0,b.jsx)("dd",{className:"font-mono",children:f})]}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>{k.current&&(k.current.value=e),l.current&&(l.current.value=f),l.current?.focus()},children:"Use demo account"})]}),a&&(0,b.jsx)("input",{type:"hidden",name:"next",value:a}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:"error"===h.status&&"email"===h.field?h.message:void 0,children:(0,b.jsx)("input",{ref:k,id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,maxLength:254,defaultValue:"error"===h.status?h.email:void 0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",error:"error"===h.status&&"email"!==h.field?h.message:void 0,children:(0,b.jsx)("input",{ref:l,id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:200,className:d.S})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:j,children:j?"Signing in…":"Sign in"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Or use any email and password. Every sign-in, the demo account too, gets its own made-up data."})]})}],625104)},318465,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(93088);a.s(["PasswordSignInForm",0,function({next:a}){let[f,g,h]=(0,c.useActionState)(e.f,{status:"idle"});return(0,b.jsxs)("form",{action:g,children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Use the email and password an owner set up for you."}),a&&(0,b.jsx)("input",{type:"hidden",name:"next",value:a}),(0,b.jsx)(d.O,{id:"email",label:"Email",children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,defaultValue:"error"===f.status?f.email:void 0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",error:"error"===f.status?f.message:void 0,children:(0,b.jsx)("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:1024,className:d.S})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:h,children:h?"Signing in…":"Sign in"}),(0,b.jsxs)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:["Forgot your password? Ask an owner to reset it. If you are the owner, stop Watchbell and run"," ",(0,b.jsx)("code",{className:"font-mono text-ink-soft",children:"watchbell reset-login you@example.com"})," on the machine it runs on (from an installer: ",(0,b.jsx)("code",{className:"font-mono text-ink-soft",children:"npm run reset-login -- you@example.com"})," in its app folder)."]})]})}])},59558,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089);let e="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";function f({siteKey:a}){let d=(0,c.useRef)(null),[g,h]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{let b,c=!1;return(window.turnstile?Promise.resolve(window.turnstile):new Promise((a,b)=>{let c=document.querySelector(`script[src="${e}"]`);c||((c=document.createElement("script")).src=e,c.async=!0,document.head.appendChild(c));let d=c;d.addEventListener("load",()=>window.turnstile?a(window.turnstile):b(Error("turnstile"))),d.addEventListener("error",()=>{d.remove(),b(Error("turnstile"))})})).then(e=>{!c&&d.current&&(b=e.render(d.current,{sitekey:a,action:"signin",theme:"auto"}))}).catch(()=>{console.warn("bot check failed to load"),c||h(!0)}),()=>{c=!0,b&&window.turnstile&&window.turnstile.remove(b)}},[a]),g)?(0,b.jsx)("p",{role:"alert",className:"mb-3.5 text-[13px] text-err",children:"The bot check couldn't load. Check your connection and reload the page."}):(0,b.jsx)("div",{ref:d,className:"mb-3.5 min-h-[65px]"})}var g=a.i(405050);let h=(0,g.createServerReference)("6029a8fba237fff18bf2be456a3151734ec80d21db",g.callServer,void 0,g.findSourceMapURL,"sendSignInLink");a.s(["SignInForm",0,function({siteKey:a}){let[e,g,i]=(0,c.useActionState)(h,{status:"idle"}),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(0);return"sent"!==e.status||j?(0,b.jsxs)("form",{action:a=>{k(!1),m(a=>a+1),g(a)},children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"We'll email you a sign-in link. Only invited people can get in."}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:"error"===e.status?e.message:void 0,children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"email",placeholder:"name@example.com",required:!0,className:d.S})}),(0,b.jsx)(f,{siteKey:a},l),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:i,children:i?"Sending…":"Send sign-in link"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Can't get in? Ask an owner to invite you."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Check your email"}),(0,b.jsxs)("p",{className:"mb-[18px] text-ink-soft",children:["If ",e.email," is invited, a sign-in link is on its way. It works for 1 hour."]}),(0,b.jsx)(d.K,{className:"w-full justify-center",onClick:()=>k(!0),children:"Use a different email"})]})}],59558)}]})();
2
-
3
- //# sourceMappingURL=src_app_signin_1fj68y-bbe-xr._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[964887,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(405050);let f=(0,e.createServerReference)("4010a922d5dc47056e2302199e78f22dd52c7f70af",e.callServer,void 0,e.findSourceMapURL,"dismissRecommendation");var g=a.i(619089);a.s(["DismissButton",0,function({recKey:a}){let[e,h]=(0,c.useTransition)();return(0,b.jsx)(g.K,{size:"sm",disabled:e,onClick:()=>h(async()=>{try{let b=await f(a);b.ok?d.c.success(b.message??"Dismissed."):d.c.error(b.error)}catch{d.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}}),children:e?"Dismissing…":"Dismiss"})}],964887)},585709,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(486747),e=a.i(462007),f=a.i(427110);a.s(["PlainTable",0,function({head:a,rows:g}){let[h,i]=(0,c.useState)(1),j=(0,f.$)(g,h);return j.page!==h&&i(j.page),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:e.o,children:[(0,b.jsx)(e.U,{head:a}),(0,b.jsx)("tbody",{children:j.rows.map(a=>(0,b.jsx)(c.Fragment,{children:a.row},a.key))})]})}),(0,b.jsx)(d.f,{page:j.page,pages:j.pages,text:(0,f.z)(j),onPage:i})]})}])},54901,45830,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(771378),e=a.i(611619),f=a.i(619089);function g(a,b=a=>a){return a.ok?{ok:!0,message:b(a.message??"Done.")}:{ok:!1,message:b(a.error)}}function h(){let a=(0,d.useMask)();return b=>g(b,b=>a("text",b))}a.s(["f",0,g],45830),a.s(["p",0,function({label:a,title:c,body:d,cta:g,danger:i=!1,run:j}){let k=h();return(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{variant:i?"danger":"secondary",children:a}),title:c,body:d,cta:g,danger:i,onConfirm:async()=>k(await j())})},"W",0,function(){let[a,d]=(0,c.useState)(null),f=h(),g=a?(0,b.jsx)(e.f,{open:!0,onOpenChange:a=>{a||d(null)},title:a.title,body:a.body,cta:a.cta,danger:a.danger,onConfirm:async()=>f(await a.run())}):null;return{open:d,dialog:g}}],54901)}]})();
2
-
3
- //# sourceMappingURL=src_components_08d78uqnnmrrh._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[460565,a=>{a.s(["B",0,3e5,"X",0,function(a){return"number"==typeof a&&Number.isFinite(a)&&a>0?6e4*a:3e5}])},133289,a=>{var b=a.i(245710),c=a.i(460565);a.s(["e",0,"Demo · no live collector","m",0,function(a,b,d=c.B){if(!a)return{state:"idle",text:"Collector hasn't run yet"};let e=Math.max(0,Math.round((b.getTime()-a.getTime())/1e3)),f=Math.floor(e/60),g=d>c.B,h=g?Math.round(.8*d/1e3):120,i=g?Math.round(d/1e3):300;return e<60?{state:"ok",text:`Collector ran ${e}s ago`}:e<h?{state:"ok",text:`Collector ran ${f} min ago`}:e<i?{state:"warn",text:`Collector late \xb7 ran ${f} min ago`}:{state:"err",text:`Collector stopped ${f} min ago`}},"i",0,function(a,c,d){if(!a.finishedAt)return c.getTime()-a.startedAt.getTime()<12e4?{state:"build",text:"Running now"}:{state:"err",text:`Last run didn't finish (started ${(0,b.$)(a.startedAt,c)})`};let e=(0,b.$)(a.finishedAt,c);return!1===a.ok?{state:"warn",text:`Last run ${e} \xb7 finished with problems`}:c.getTime()-a.finishedAt.getTime()>=d?{state:"warn",text:`Last run ${e} \xb7 late`}:{state:"ok",text:`Last run ${e}`}}])},656298,a=>{function b(a){return"RESOURCE_EXHAUSTED"===a.reason?{state:"err",label:"Daily quota used up"}:"SERVICE_DISABLED"===a.reason?{state:"err",label:"Firestore API is off in this project"}:"scope"===a.kind||"PERMISSION_DENIED"===a.reason||"scope"===a.reason?{state:"err",label:"No access: needs datastore.viewer"}:{state:"unknown",label:"Unknown"}}a.s(["T",0,{reads:5e4,writes:2e4,deletes:2e4},"_",0,"The stored data size (1 GiB free) isn't read on any plan: the row's Open usage page shows it in the Firebase console.","f",0,"Storage (1 GiB): not read; the Firebase console's usage page shows it.","z",0,b,"g",0,function(a){return a.ok?a.data.noDatabase?{state:"off",label:"No Firestore database"}:{state:"ok",label:`Reachable \xb7 ${a.data.latencyMs} ms`}:b(a)},"a",0,function(a){let b=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23"}).formatToParts(a),c=a=>Number(b.find(b=>b.type===a)?.value??0),d=(3600*c("hour")+60*c("minute")+c("second"))*1e3+a.getUTCMilliseconds();return new Date(a.getTime()-d)}])},688275,a=>{let b={cuHours:100,storageBytes:0x40000000,transferBytes:0x140000000,branches:10,scaleToZeroMin:5};function c(a){return a.disabled?{state:"err",label:"Suspended"}:"init"===a.state||a.pendingState&&a.pendingState!==a.state?{state:"build",label:"Starting"}:"active"===a.state?{state:"ok",label:"Active"}:"idle"===a.state?{state:"idle",label:"Idle"}:{state:"unknown",label:"Unknown"}}a.s(["a",0,b,"c",0,(a,b)=>a===b?`${a} CU`:`${a}–${b} CU`,"g",0,a=>Math.round(a/360)/10,"T",0,c,"p",0,function(a){if((a.computeSeconds??0)>=3600*b.cuHours)return{state:"err",label:"CU-hours used up"};if(!a.endpoints.length)return{state:"unknown",label:"No compute"};let d=a.endpoints.map(c);return d.some(a=>"err"===a.state)?{state:"err",label:"Compute suspended"}:d.some(a=>"ok"===a.state)?{state:"ok",label:"Active"}:d.some(a=>"build"===a.state)?{state:"build",label:"Starting"}:d.every(a=>"idle"===a.state)?{state:"idle",label:"Idle"}:{state:"unknown",label:"Unknown"}}])}]})();
2
-
3
- //# sourceMappingURL=src_lib_1gauld53vvpev._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[646324,a=>{let b=a=>a?a.getTime():null;function c(a,b){return!a||"object"!=typeof a||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(a=>"string"==typeof a[1]&&new Date(a[1]).getTime()>b.getTime()))}a.s(["Q",0,function(a,b,c,d=new Set){let e=new Set(c.map(a=>`${a.resourceId}/${a.id}`));return a.flatMap(a=>{let c=b.get(a.externalId);return!c||d.has(c)||e.has(`${a.id}/${c}`)?[]:[{appId:a.id,deploymentId:c}]})},"E",0,function(a,c){return!a||a.state!==c.state||a.target!==c.target||a.branch!==c.branch||a.commitSha!==c.commitSha||a.commitMessage!==c.commitMessage||a.source!==c.source||a.url!==c.url||b(a.buildingAt)!==b(c.buildingAt)||b(a.readyAt)!==b(c.readyAt)},"Y",0,function(a,b,d){let e=new Date(d.getTime()+216e5).toISOString();return{...c(a,d),...Object.fromEntries(b.map(a=>[a,e]))}},"K",0,function(a){try{return new URL(a).pathname}catch{return"/"}},"a",0,function(a,b){let c=[...new Map(a.map(a=>[a.id,a])).values()].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),d=b??c[0]?.id??null,e=c.findIndex(a=>a.id===d);return{currentId:d,previousId:e>=0?c[e+1]?.id??null:null}},"S",0,(a,b)=>new Set(Object.keys(c(a,b)))])},683439,a=>{let b=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;a.s(["f",0,a=>"string"==typeof a&&b.test(a)])},469762,a=>{var b=a.i(245710);function c(a,b){let c=Math.max(0,b.getTime()-a.getTime());return c<6e4?"now":c<36e5?`${Math.floor(c/6e4)} min ago`:c<864e5?`${Math.floor(c/36e5)} h ago`:`${Math.floor(c/864e5)} d ago`}function d(a){let b=Math.max(0,Math.round(a/1e3));if(b<60)return`${b}s`;let c=Math.floor(b/60);return c<60?`${c}m ${String(b%60).padStart(2,"0")}s`:`${Math.floor(c/60)}h ${String(c%60).padStart(2,"0")}m`}a.s(["m",0,function(a,b){for(let a of b)try{let b=new URL(a);if("https:"!==b.protocol&&"http:"!==b.protocol||!b.host)continue;return b.host}catch{}return`${a}.vercel.app`},"W",0,function(a){return a?a.split(/\r?\n|\r/).map(a=>a.trim()).find(a=>""!==a)??"":""},"h",0,function(a,d){let e=d.getTime()-a.getTime();return e<36e5?c(a,d):(0,b.m)(a,d)?(0,b.U)(a):`${Math.max(1,Math.floor(e/864e5))} d ago`},"A",0,function(a,b){return"building"===a.state?`${d(b.getTime()-(a.buildingAt??a.createdAt).getTime())} elapsed`:a.readyAt&&a.buildingAt?d(a.readyAt.getTime()-a.buildingAt.getTime()):"—"},"v",0,function(a,c){return(0,b.m)(a,c)?(0,b.U)(a):`${(0,b.L)(a)} ${(0,b.U)(a)}`},"o",0,function(a,b){let c=Math.max(0,b.getTime()-a.getTime()),d=(a,b)=>`${a} ${b}${1===a?"":"s"}`;return c<36e5?d(Math.max(1,Math.floor(c/6e4)),"minute"):c<864e5?d(Math.floor(c/36e5),"hour"):d(Math.floor(c/864e5),"day")},"F",0,function(a){try{let b=new URL(a);return`${b.host}${b.pathname}`}catch{return a}},"$",0,function(a,e){if(!a)return"—";if("building"===a.state)return`building ${d(e.getTime()-(a.buildingAt??a.createdAt).getTime())}`;let f=a.readyAt??a.createdAt;return"error"===a.state?`failed ${(0,b.m)(f,e)?(0,b.U)(f):c(f,e)}`:"canceled"===a.state?`canceled ${c(f,e)}`:c(f,e)},"H",0,function(a){let{day:c,month:d,year:e}=(0,b.e)(a);return`${c} ${d} ${e}`},"p",0,a=>null===a?"—":`${Math.round(a)} ms`,"C",0,a=>null===a?"—":`${(Math.floor(100*a+1e-6)/100).toFixed(2)}%`,"J",0,c,"_",0,a=>a?a.slice(0,7):"—"])},910697,a=>{a.s(["O",0,{events:200,deployments:200,apps:200,monitors:200,domains:200,databases:200,recentEvents:5,ongoingBuilds:5},"A",0,{rawChecksMs:6048e5,healthBuckets:30,metricBuckets:48,responseHours:24}])}]})();
2
-
3
- //# sourceMappingURL=src_lib_1l8ej-zoyyegd._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[33135,a=>{"use strict";var b=a.i(300794),c=a.i(903816),d=a.i(261283);let e=new Set([301,302,303,307,308]),f={ok:!1,statusCode:null,latencyMs:null,error:"Blocked address"};async function g(a){return(await (0,b.lookup)(a,{all:!0,verbatim:!0})).map(a=>a.address)}let h=a=>a.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(a),i=a=>a.toLowerCase().replace(/^www\./,"");async function j(a,b,c,f){let j,k=b.lookup??g;try{j=new URL(a)}catch{return{refused:"blocked"}}let l=j;for(let a=0;;a++){var m,n;if((0,d._)(j))return{refused:"blocked"};if(b.sameOrigin&&(m=j,n="www"===b.sameOrigin,m.origin!==l.origin&&(!n||m.protocol!==l.protocol||m.port!==l.port||i(m.hostname)!==i(l.hostname))))return{refused:"origin"};if(!h(j.hostname)){let a=await Promise.race([k(j.hostname),f]);if(!a.length)throw Error("no address");if(a.some(d.W))return{refused:"blocked"}}c.throwIfAborted();let g=await (b.fetch??fetch)(j.toString(),{method:"GET",redirect:"manual",cache:"no-store",headers:{...b.headers,"User-Agent":b.userAgent??"OpsConsole-Uptime/1.0 (+https://watchbell.west-solutions.web.id)"},signal:c}),o=e.has(g.status)?g.headers.get("location"):null;if(null===o)return{res:g,url:j};if(await g.body?.cancel().catch(()=>void 0),a>=20)return{refused:"redirects"};try{j=new URL(o,j)}catch{return{refused:"blocked"}}}}function k(a){let b=new Promise((b,c)=>{a.aborted?c(a.reason):a.addEventListener("abort",()=>c(a.reason),{once:!0})});return b.catch(()=>void 0),b}function l(a,b){if(a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name))return`No answer within ${m(b)}`;let c=a instanceof TypeError&&a.cause instanceof Error?a.cause.message:"";return/redirect/i.test(c)?"Too many redirects":"Couldn't connect"}let m=a=>a<1e3?`${a} ms`:`${Math.round(a/1e3)} s`,n="Redirected to another site",o={blocked:"Blocked address",redirects:"Too many redirects",origin:n},p="DEPLOYMENT_NOT_FOUND";async function q(a,b={}){let d=b.timeoutMs??5e3,e=b.clock??(()=>performance.now()),g=e(),h=AbortSignal.timeout(d);try{let i,l=await j(a,b,h,k(h));if("refused"in l)return"blocked"===l.refused?f:{ok:!1,statusCode:null,latencyMs:null,error:o[l.refused]};let n=Math.round(e()-g),q=l.res.status===(b.expectedStatus??200);if(!q||!b.body){let a;return await l.res.body?.cancel().catch(()=>void 0),{ok:q,statusCode:l.res.status,latencyMs:n,error:q?null:`HTTP ${l.res.status}${(a=l.res,/^vercel$/i.test(a.headers.get("server")?.trim()??"")&&a.headers.get("x-vercel-error")?.trim()===p)?` \xb7 ${p}`:""}`}}try{i=await s(l.res,c.Q,k(h))}catch(a){return{ok:!1,statusCode:l.res.status,latencyMs:n,error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?`Body not read within ${m(d)}`:"Body couldn't be read"}}let r=(0,c.$)(b.body,new TextDecoder().decode(i.bytes),i.truncated);return{ok:null===r,statusCode:l.res.status,latencyMs:n,error:r}}catch(a){return{ok:!1,statusCode:null,latencyMs:null,error:l(a,d)}}}async function r(a,b={}){let c=b.timeoutMs??1e4,d=b.maxBytes??3145728,e=b.signal?AbortSignal.any([AbortSignal.timeout(c),b.signal]):AbortSignal.timeout(c),f=k(e);try{let c=await j(a,b,e,f);if("refused"in c)return{ok:!1,error:o[c.refused]};let{bytes:g,truncated:h}=await s(c.res,d,f),i=new TextDecoder().decode(g);return{ok:!0,status:c.res.status,url:c.url.toString(),body:i,truncated:h}}catch(a){return{ok:!1,error:l(a,c)}}}async function s(a,b,c){let d=a.body?.getReader(),e=[],f=0,g=!1;if(d)try{for(;;){let{done:a,value:h}=await Promise.race([d.read(),c]);if(a)break;let i=b-f;if(h.byteLength>i){e.push(h.subarray(0,i)),g=!0;break}if(e.push(h),(f+=h.byteLength)===b){g=!(await Promise.race([d.read(),c])).done;break}}}finally{d.cancel().catch(()=>void 0)}return{bytes:Buffer.concat(e),truncated:g}}async function t(a,b,c){let d=Array(a.length),e=0;async function f(){for(;e<a.length;){let b=e++;d[b]=await c(a[b])}}return await Promise.all(Array.from({length:Math.min(Math.max(1,b),a.length)},f)),d}a.s(["l",0,n,"X",0,k,"b",0,q,"P",0,t,"z",0,s,"K",0,r])}];
2
-
3
- //# sourceMappingURL=src_lib_collector_http-check_ts_0bh0rtjky3u1-._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[840784,a=>{"use strict";var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(436357),h=a.i(751263),i=a.i(469762),j=a.i(631107),k=a.i(968715),l=a.i(910697),m=a.i(72019),n=a.i(519051),o=a.i(858806),p=a.i(601219),q=a.i(714530),r=a.i(513701),s=a.i(895176),t=a.i(242605);let u=a=>"string"==typeof a&&a?a:null;async function v(a,p){let v=await (0,e.f)().select({r:f.resources,s:f.snapshots,sec:f.appSecurity,accStatus:f.accounts.status}).from(f.resources).leftJoin(f.accounts,(0,b.u)(f.accounts.id,f.resources.accountId)).leftJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).leftJoin(f.appSecurity,(0,b.u)(f.appSecurity.resourceId,f.resources.id)).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0),p?(0,b.u)(f.resources.id,p):void 0)).orderBy(f.resources.name).limit(l.O.apps);if(!v.length)return[];let w=v.map(a=>a.r.id),x=(await (0,e.f)().select().from(f.monitors).where((0,b.y)(f.monitors.resourceId,w)).orderBy(f.monitors.createdAt).limit(l.O.monitors)).map(s.M),y=await (0,e.f)().selectDistinctOn([f.deployments.resourceId]).from(f.deployments).where((0,b.b)((0,b.y)(f.deployments.resourceId,w),(0,b.u)(f.deployments.target,"production"),(0,b.F)((0,b.u)(f.deployments.isCurrent,!0),(0,b.c)(f.deployments.state,"ready"),d.B`${f.deployments.resourceId} not in (select serving.resource_id from ${f.deployments} as serving where serving.target = 'production' and serving.is_current)`))).orderBy(f.deployments.resourceId,(0,c.A)(f.deployments.createdAtProvider)),z=await (0,r._)(x.map(a=>a.id),a),A=new Map(v.map(a=>[a.r.id,a.r])),B=await (0,s.J)(x.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.appId,appName:A.get(a.appId)?.name??"",appMeta:A.get(a.appId)?.meta,lastError:a.lastError}))),C=new Map;for(let a of(await (0,e.f)().select({parentId:f.resources.parentId,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.kind,"domain"),(0,b.y)(f.resources.parentId,w),(0,b.M)(f.resources.goneAt))))){if(!a.parentId)continue;let b=C.get(a.parentId)??{};b[a.name.toLowerCase()]={redirect:u(a.meta.redirect),verified:!1!==a.meta.verified},C.set(a.parentId,b)}let D=await (0,r.Q)(w,a),E=await (0,m.F)(w),F=x.length?await (0,q.w)():[];return v.map(({r:b,s:c,sec:d,accStatus:e})=>{let f=x.filter(a=>a.appId===b.id).map(b=>({...b,maintUntil:(0,n.x)(F,{monitorId:b.id,appId:b.appId},a)?.end??null,move:B.get(b.id)??null})),m=u(b.meta.createdAt),p=y.find(a=>a.resourceId===b.id);return{id:b.id,name:b.name,gone:null!==b.goneAt,state:c?.state??"unknown",stateSince:c?.stateSince??null,domain:(0,g.Y)(b.meta)?.primaryDomain??(0,i.m)(b.name,f.map(a=>a.url)),domainLines:function(a,b,c){let d=(0,g.Y)(a);if(!d)return{lines:[{name:c,tag:null,target:null}],more:0};let e=[d.primaryDomain,...d.domains.filter(a=>a!==d.primaryDomain)].filter((a,b,c)=>c.indexOf(a)===b),f=[...new Set(d.pastDomains)].filter(a=>!e.includes(a)).reverse(),h=e.map((a,c)=>{let d=b[a],g={name:a,target:d?.redirect?d.redirect.replace(/^https?:\/\//i,"").replace(/\/.*$/,"").toLowerCase():null};return 0===c?{...g,tag:e.length>1||f.length?"primary":null}:{...g,tag:d?.redirect?"redirect":d&&!d.verified?"pending":null}});return h.push(...f.slice(0,3).map(a=>({name:a,tag:"former",target:null}))),{lines:h,more:Math.max(0,f.length-3)}}(b.meta,C.get(b.id)??{},(0,g.Y)(b.meta)?.primaryDomain??(0,i.m)(b.name,f.map(a=>a.url))),framework:u(b.meta.framework),productionBranch:u(b.meta.productionBranch),productionSource:(0,h.O)(b.meta.productionSource),createdAt:m?new Date(m):null,teamName:u(b.meta.teamName),teamSlug:u(b.meta.teamSlug),repo:u(b.meta.repo),repoType:u(b.meta.repoType),functionRegions:Array.isArray(b.meta.functionRegions)?b.meta.functionRegions.filter(a=>"string"==typeof a):[],monitors:f,lastDeploy:p?(0,o.u)(p):null,uptime30:(0,k.Y)(f.flatMap(b=>(0,k.w)(z.get(b.id),a,k.I))),response:D.get(b.id)??{hourly:Array.from({length:l.A.responseHours},()=>null),p95:null,p50:null},days:new Map(f.flatMap(a=>{let b=z.get(a.id);return b?[[a.id,b]]:[]})),security:d?(0,t.Z)(d):null,database:E.get(b.id)??null,dbPaused:c?.data.dbPaused===!0,pageViews:(0,j.G)(c?.data),pageViewsNote:(0,j.R)({gone:null!==b.goneAt,teamId:u(b.meta.teamId),accountOk:"ok"===e,hasProductionDeploy:void 0!==p})}})}async function w(a,b){return(await v(b,a))[0]??null}async function x(a,c){let[d]=await (0,e.f)().select({id:f.resources.id,name:f.resources.name}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.id,a),(0,b.u)(f.resources.kind,"app"))).limit(1);return d?(await (0,e.f)().transaction(async e=>{let g=new Date;await e.update(f.resources).set({monitored:!1,updatedAt:g}).where((0,b.u)(f.resources.id,a)),await e.delete(f.monitors).where((0,b.u)(f.monitors.resourceId,a)),await e.delete(f.deployments).where((0,b.u)(f.deployments.resourceId,a)),await e.delete(f.snapshots).where((0,b.u)(f.snapshots.resourceId,a)),await e.delete(f.appSecurity).where((0,b.u)(f.appSecurity.resourceId,a)),await e.delete(f.resources).where((0,b.b)((0,b.u)(f.resources.kind,"domain"),(0,b.u)(f.resources.parentId,a))),await (0,p.f)([{type:"action",kind:"ok",message:`${d.name} removed from the console`,detail:null,resourceId:a,actorUserId:c}],e)}),{ok:!0,message:`${d.name} is no longer in the console. The Vercel project itself isn't touched.`}):{ok:!1,error:"That app is no longer in the console."}}a.s(["Z",0,w,"G",0,v,"a",0,x],840784)}];
2
-
3
- //# sourceMappingURL=src_lib_data_apps-db_ts_02ovqtci8e7o6._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[858806,a=>{"use strict";var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(436357),g=a.i(910697);function h(a){return{id:a.id,externalId:a.externalId,state:a.state,target:a.target,branch:a.branch,commitSha:a.commitSha,commitMessage:a.commitMessage,url:a.url,createdAt:a.createdAtProvider,buildingAt:a.buildingAt,readyAt:a.readyAt,isCurrent:a.isCurrent,isPreviousProduction:a.isPreviousProduction}}async function i(a={}){return(await (0,d.f)().select({d:e.deployments,appName:e.resources.name,meta:e.resources.meta}).from(e.deployments).innerJoin(e.resources,(0,b.u)(e.resources.id,e.deployments.resourceId)).where((0,b.b)((0,b.u)(e.resources.monitored,!0),a.appId?(0,b.u)(e.deployments.resourceId,a.appId):void 0)).orderBy((0,c.A)(e.deployments.createdAtProvider)).limit(g.O.deployments)).map(({d:a,appName:b,meta:c})=>({...h(a),appId:a.resourceId,appName:b,primaryDomain:a.isCurrent&&"production"===a.target?(0,f.Y)(c)?.primaryDomain??null:null}))}async function j(a){let[f]=await (0,d.f)().select({id:e.deployments.externalId}).from(e.deployments).where((0,b.b)((0,b.u)(e.deployments.resourceId,a),(0,b.u)(e.deployments.isCurrent,!0),(0,b.u)(e.deployments.target,"production"))).orderBy((0,c.A)(e.deployments.createdAtProvider)).limit(1);return f?.id??null}async function k(a,c){let[f]=await (0,d.f)().select({id:e.deployments.id}).from(e.deployments).where((0,b.b)((0,b.u)(e.deployments.resourceId,a),(0,b.u)(e.deployments.externalId,c))).limit(1);return!!f}async function l(a){return(await (0,d.f)().select({d:e.deployments,appName:e.resources.name}).from(e.deployments).innerJoin(e.resources,(0,b.u)(e.resources.id,e.deployments.resourceId)).where((0,b.b)((0,b.u)(e.resources.monitored,!0),(0,b.u)(e.deployments.state,"building"),(0,b.B)(e.deployments.createdAtProvider,new Date(a.getTime()-36e5)))).orderBy((0,c.A)(e.deployments.createdAtProvider)).limit(g.O.ongoingBuilds)).map(({d:a,appName:b})=>({...h(a),appId:a.resourceId,appName:b}))}a.s(["R",0,j,"C",0,k,"K",0,i,"O",0,l,"u",0,h])}];
2
-
3
- //# sourceMappingURL=src_lib_data_deployments-db_ts_1shbv_55rwa2-._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[915598,a=>{"use strict";var b=a.i(322145),c=a.i(75105),d=a.i(572134),e=a.i(657582);let f="This app or its Vercel credential isn't available any more. Reload the page.",g="Already live.",h=new Set(["QUEUED","INITIALIZING","BUILDING"]),i=a=>({done:!1,message:a}),j=(a,b)=>a?.sha?a.sha.slice(0,7):b;async function k(a,c,d){let e=await (0,b.q)(a.id,c,d);if(e)return e;let g=await (0,b.p)(d,"app"),h=g?.resource.meta.teamId;if(!g||"string"!=typeof h||!h||!g.resource.externalId)return f;let i=g.resource.meta.teamSlug;return{member:a,t:g,appId:d,app:g.resource.name,teamId:h,teamSlug:"string"==typeof i?i:"",projectId:g.resource.externalId}}async function l(a){let[b,c]=await Promise.all([(0,d.c)(a.t.token,a.teamId,a.projectId),(0,d.r)(a.t.token,a.teamId,a.projectId)]);return b.ok?c.ok?{ok:!0,data:{name:b.data.name,currentId:b.data.currentId??c.data[0]?.id??null,production:c.data}}:c:b}async function m(a,d,e,f,g=b.W){return g(d.ok?{done:!0,message:e.message,audit:{message:e.audit,resourceId:a.appId}}:{done:!1,failed:"scope"===d.kind?{ok:!1,kind:"scope",status:d.status,error:(0,c.b)("vercel",{team:a.teamSlug})}:404===d.status?{ok:!1,kind:"missing",status:404,error:"Vercel can't find that deployment any more. Reload and try again."}:{ok:!1,kind:"auth"===d.kind?"auth":"format"===d.kind?"format":"transient",...d.status?{status:d.status}:{},error:d.error},audit:{message:f,resourceId:a.appId}},a.member,a.t.account.id)}async function n(a,f,g,h=b.W){{let b=await k(a,"redeploy",f);if("string"==typeof b)return h(i(b),a,"");let n=await l(b);if(!n.ok)return h(i(n.error),a,b.t.account.id);if(n.data.currentId!==g)return h(i(c.G),a,b.t.account.id);if(n.data.production.some(a=>"staged"===(0,e.U)(a,n.data.currentId,n.data.production)))return h(i("Rolled back: promote a deployment first. A redeploy would stay staged and not go live."),a,b.t.account.id);let o=await (0,d.N)(b.t.token,b.teamId,b.projectId);if(!o.ok)return h(i(o.error),a,b.t.account.id);if(o.data)return h(i(`A production build of ${b.app} is already running.`),a,b.t.account.id);let p=j(n.data.production.find(a=>a.id===g),g),q=await (0,d.L)(b.t.token,b.teamId,{projectId:b.projectId,name:n.data.name,deploymentId:g});return m(b,q,{message:`Redeploy requested. Vercel is building ${b.app} again.`,audit:`Redeploy requested \xb7 ${b.app} \xb7 ${p}`},`Redeploy failed \xb7 ${b.app} \xb7 ${p}`,h)}}async function o(a,c,f,h=b.W){{let b=await k(a,"rollback",c);if("string"==typeof b)return h(i(b),a,"");let n=await l(b);if(!n.ok)return h(i(n.error),a,b.t.account.id);if(n.data.currentId===f)return h(i(g),a,b.t.account.id);let o=n.data.production.find(a=>a.id===f);if(!o||"previous"!==(0,e.U)(o,n.data.currentId,n.data.production))return h(i("Hobby can only roll back to the previous production deployment."),a,b.t.account.id);let p=j(o,f),q=await (0,d.E)(b.t.token,b.teamId,b.projectId,f);return m(b,q,{message:`Rolled back ${b.app} to ${p}. New pushes don't go live until you promote one.`,audit:`Rolled back \xb7 ${b.app} → ${p}`},`Roll back failed \xb7 ${b.app} → ${p}`,h)}}a.s(["T",0,/^dpl_[A-Za-z0-9]{8,40}$/,"u",0,f,"G",0,"Vercel can't find that deployment any more. Reload and try again.","f",0,g,"l",0,"Only a ready preview of this app can be promoted to production.","v",0,"Only a ready production deployment newer than the live one can be promoted.","S",0,"Rolled back: promote a production deployment first. A promoted preview would stay staged and not go live.","o",0,h,"X",0,l,"p",0,k,"B",0,n,"C",0,j,"O",0,i,"U",0,o,"J",0,m])}];
2
-
3
- //# sourceMappingURL=src_lib_data_vercel-action_ts_1hvera3nwo5fp._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[436357,521050,572134,a=>{"use strict";var b=a.i(26972),c=a.i(427221),d=a.i(689963),e=a.i(811365),f=a.i(913822),g=a.i(191179),h=a.i(83931);let i=/^[A-Za-z0-9._-]{1,100}$/,j=a=>a.trim().replace(/^\.\//,"").split("/").filter(a=>""!==a&&"."!==a);function k(a){if("string"!=typeof a)return null;let b=j(a);if(!b.length||b.length>4||b.some(a=>".."===a||!i.test(a)))return null;let c=b.join("/");return c.length<=150?c:null}function l(a){if("string"!=typeof a||!j(a).length||null!==k(a))return null;let b=a.replace(/[\u0000-\u001f\u007f-\u009f]/g,"").trim();return b?b.length>80?`${b.slice(0,79)}…`:b:null}function m(a){let b=a.trim().replace(/^\.\//,"").replace(/\/+$/,"").split("**").map(a=>a.split("*").map(a=>a.replace(/[.+?^${}()|[\]\\]/g,"\\$&")).join("[^/]*")).join(".*");return RegExp(`^${b}$`)}a.s(["Q",0,k,"x",0,a=>a?`${a} (the Vercel project's Root Directory)`:"the repository root","H",0,(a,b)=>a?`${a}/${b}`:b,"p",0,function(a,b,c){if("npm"===a)try{let a=JSON.parse(b);return!!a.packages&&"object"==typeof a.packages&&Object.hasOwn(a.packages,c)}catch{return!1}if("pnpm"===a){let a=b.search(/^importers:\s*$/m);if(a<0)return!1;let d=b.slice(a).split(/\n(?=\S)/)[0],e=c.replace(/[.+?^${}()|[\]\\]/g,"\\$&");return RegExp(`^ {2}['"]?${e}['"]?:\\s*$`,"m").test(d)}return!1},"l",0,l,"F",0,function(a,b){let c;if(!a)return!1;try{c=JSON.parse(a)}catch{return!1}let d=c&&"object"==typeof c&&!Array.isArray(c)?c.workspaces:void 0,e=(Array.isArray(d)?d:d&&"object"==typeof d&&Array.isArray(d.packages)?d.packages:[]).filter(a=>"string"==typeof a&&""!==a.trim()),f=e.filter(a=>a.trim().startsWith("!")).map(a=>a.trim().slice(1));return e.some(a=>!a.trim().startsWith("!")&&m(a).test(b))&&!f.some(a=>m(a).test(b))}],521050);let n="https://api.vercel.com";async function o(a,b,c){let d;try{d=await (c.fetch??fetch)(`${n}${a}`,{headers:{Authorization:`Bearer ${b}`,Accept:"application/json"},signal:AbortSignal.timeout(c.timeoutMs??5e3),cache:"no-store"})}catch(a){return{ok:!1,kind:"transient",error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?"Vercel didn't answer within 5 seconds.":"Couldn't reach Vercel."}}if(401===d.status||403===d.status)return{ok:!1,kind:"auth",status:d.status,error:`Vercel rejected this credential (${d.status}).`};if(429===d.status){let a=Number(d.headers.get("Retry-After"));return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(a)&&a>0?a:60,error:"Vercel says there were too many requests."}}return d.ok?{ok:!0,data:await d.json().catch(()=>null)}:{ok:!1,kind:"transient",status:d.status,error:`Vercel returned an error (${d.status}).`}}async function p(a,d,e,f,g){let h;try{h=await (g.fetch??fetch)(`${n}${d}`,{method:a,headers:{Authorization:`Bearer ${e}`,Accept:"application/json",...void 0===f?{}:{"Content-Type":"application/json"}},...void 0===f?{}:{body:JSON.stringify(f)},signal:AbortSignal.timeout(g.timeoutMs??5e3),cache:"no-store"})}catch(a){return{ok:!1,kind:"transient",error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?"Vercel didn't answer within 5 seconds; the action may still have happened. Check the deployments in a minute.":"Couldn't reach Vercel."}}if(401===h.status)return{ok:!1,kind:"auth",status:401,error:"Vercel rejected this credential (401)."};if(403===h.status)return{ok:!1,kind:"scope",status:403,error:"Vercel refused this token for that project (403)."};if(429===h.status){let a;return{ok:!1,kind:"transient",status:429,retryAfterS:Number.isFinite(a=Number(h.headers.get("Retry-After")))&&a>0?a:60,error:"Vercel says there were too many requests."}}let i=await h.json().catch(()=>null);if(!h.ok){let a=b.z.object({error:b.z.object({code:c.z.string().regex(/^[A-Za-z0-9_-]{1,60}$/)})}).safeParse(i);return{ok:!1,kind:"transient",status:h.status,error:`Vercel refused this (${h.status}${a.success?`, ${a.data.error.code}`:""}).`}}return{ok:!0,data:i}}let q=a=>`teamId=${encodeURIComponent(a)}`,r=encodeURIComponent,s=a=>({ok:!1,kind:"format",error:`Vercel answered ${a} in a format the console doesn't recognise.`});function t(a,b,c=[]){let d=a.filter(a=>!1!==a.verified&&!a.redirect&&!a.gitBranch&&!a.customEnvironmentId),e=new Set(c.map(a=>a.toLowerCase())),f=d.map((b,c)=>{let d;return{name:b.name,key:[...(d=b.name,[+!a.some(a=>a.redirect?.toLowerCase()===d.toLowerCase()),+!!d.endsWith(".vercel.app"),+!e.has(d.toLowerCase()),d.length]),c]}}).sort((a,b)=>{for(let c=0;c<a.key.length;c++)if(a.key[c]!==b.key[c])return a.key[c]-b.key[c];return 0});return f[0]?.name??`${b}.vercel.app`}let u=b.z.object({teams:d.z.array(b.z.object({id:c.z.string(),slug:c.z.string(),name:c.z.string().nullish()}))});async function v(a,b={}){let c=await o("/v2/teams?limit=100",a,b);if(!c.ok)return c;let d=u.safeParse(c.data);return d.success?{ok:!0,data:d.data.teams.map(a=>({id:a.id,slug:a.slug,name:a.name??a.slug}))}:s("the team list")}async function w(a,c={}){let d=await o("/v5/user/tokens/current",a,c);if(!d.ok)return d;let f=b.z.object({token:b.z.object({expiresAt:e.z.number().nullish()})}).safeParse(d.data);return f.success?{ok:!0,data:f.data.token.expiresAt?new Date(f.data.token.expiresAt):null}:s("the token details")}let x=b.z.object({id:c.z.string(),readyState:c.z.string().nullish(),createdAt:e.z.number().nullish().catch(null),alias:d.z.array(c.z.string()).nullish().catch(null)}).nullish(),y=b.z.object({type:c.z.string(),jobStatus:c.z.string(),toDeploymentId:c.z.string(),requestedAt:e.z.number()}).nullish().catch(null);function z(a,b){let c=a?.readyState==="READY"?a.id:null;return b&&"succeeded"===b.jobStatus&&("rollback"===b.type||"promote"===b.type&&"number"==typeof a?.createdAt&&a.createdAt<=b.requestedAt)?b.toDeploymentId:c}let A=b.z.object({id:c.z.string(),name:c.z.string(),framework:c.z.string().nullish(),createdAt:e.z.number(),link:b.z.object({productionBranch:c.z.string().nullish(),type:c.z.string().nullish(),org:c.z.string().nullish(),repo:c.z.string().nullish()}).nullish(),resourceConfig:b.z.object({functionDefaultRegions:d.z.array(c.z.string()).nullish()}).nullish(),targets:b.z.object({production:x}).nullish(),lastAliasRequest:y,rootDirectory:c.z.string().nullish().catch(null)}),B=b.z.object({projects:d.z.array(A),pagination:b.z.object({next:e.z.number().nullish()}).nullish()});async function C(a,b,c={}){let d,e=[];for(let f=0;f<10;f++){let f=await o(`/v10/projects?teamId=${encodeURIComponent(b.id)}&limit=100${d?`&until=${d}`:""}`,a,c);if(!f.ok)return f;let g=B.safeParse(f.data);if(!g.success)return s("the project list");for(let a of g.data.projects)e.push({id:a.id,name:a.name,team:b,framework:a.framework??null,createdAt:new Date(a.createdAt),productionBranch:a.link?.productionBranch??null,currentDeploymentId:z(a.targets?.production,a.lastAliasRequest),repo:a.link?.type&&a.link.org&&a.link.repo?{type:a.link.type,org:a.link.org,repo:a.link.repo}:null,functionRegions:a.resourceConfig?.functionDefaultRegions??[],rootDirectory:k(a.rootDirectory),rootDirectoryUnsupported:l(a.rootDirectory),productionAliases:a.targets?.production?.alias??[]});if(!(d=g.data.pagination?.next))break}return{ok:!0,data:e}}let D=b.z.object({uid:c.z.string(),projectId:c.z.string(),state:c.z.string().nullish(),readyState:c.z.string().nullish(),target:c.z.string().nullish(),source:c.z.string().nullish(),url:c.z.string().nullish(),createdAt:e.z.number().nullish(),created:e.z.number().nullish(),buildingAt:e.z.number().nullish(),ready:e.z.number().nullish(),meta:f.z.record(c.z.string(),g.z.unknown()).nullish(),gitSource:b.z.object({ref:c.z.string().nullish(),sha:c.z.string().nullish()}).nullish().catch(null)}),E=a=>"string"==typeof a&&a.length?a:null,F=a=>a?new Date(a):null;function G(a,b){var c,d;let e,f,g=a.readyState??a.state??"BUILDING",h=a.meta??{};return{id:b,projectId:a.projectId,state:"READY"===g?"ready":"ERROR"===g?"error":"CANCELED"===g?"canceled":"building",rawState:g,target:"production"===a.target?"production":"preview",branch:E(h.githubCommitRef)??E(h.gitCommitRef)??E(h.gitlabCommitRef)??E(h.bitbucketCommitRef)??E(a.gitSource?.ref),sha:E(h.githubCommitSha)??E(h.gitCommitSha)??E(h.gitlabCommitSha)??E(h.bitbucketCommitSha)??E(a.gitSource?.sha),message:E(h.githubCommitMessage)??E(h.gitCommitMessage)??E(h.gitlabCommitMessage)??E(h.bitbucketCommitMessage),source:a.source??null,url:a.url??null,createdAt:new Date(a.createdAt??a.created??0),buildingAt:F(a.buildingAt),readyAt:F(a.ready),...(c=h,d=a.gitSource?.ref,e=E(c.githubCommitRef)?"github":E(c.gitlabCommitRef)?"gitlab":E(c.bitbucketCommitRef)?"bitbucket":E(d)?"gitSource":E(c.gitCommitRef)?"cli":null,f="1"===c.gitDirty||1===c.gitDirty||!0===c.gitDirty,{...e?{branchFrom:e}:{},...f?{gitDirty:!0}:{}})}}async function H(a,c,e,f={}){let g=await o(`/v7/deployments?teamId=${encodeURIComponent(c.id)}&limit=${e.limit??100}${e.since?`&since=${e.since}`:""}`,a,f);if(!g.ok)return g;let h=b.z.object({deployments:d.z.array(D)}).safeParse(g.data);return h.success?{ok:!0,data:h.data.deployments.map(a=>G(a,a.uid))}:s("the deployment list")}let I=D.omit({uid:!0,projectId:!0}).extend({id:c.z.string(),projectId:c.z.string().nullish()});async function J(a,b,c,d={}){let e=await o(`/v13/deployments/${encodeURIComponent(c)}?teamId=${encodeURIComponent(b.id)}`,a,d);if(!e.ok)return e;let f=I.safeParse(e.data);return f.success?{ok:!0,data:G({...f.data,uid:f.data.id,projectId:f.data.projectId??""},f.data.id)}:s("the deployment")}let K=b.z.object({name:c.z.string(),targets:b.z.object({production:x}).nullish(),lastAliasRequest:y});async function L(a,b,c,d={}){let e=await o(`/v9/projects/${r(c)}?${q(b)}`,a,d);if(!e.ok)return e;let f=K.safeParse(e.data);return f.success?{ok:!0,data:{name:f.data.name,currentId:z(f.data.targets?.production,f.data.lastAliasRequest)}}:s("the project")}let M=b.z.object({deployments:d.z.array(D.extend({projectId:c.z.string().nullish()}))});async function N(a,b,c,d,e,f){let g=`projectId=${r(c)}&target=production&state=${d}&limit=${e}&${q(b)}`,h=await o(`/v6/deployments?${g}`,a,f);if(!h.ok)return h;let i=M.safeParse(h.data);return i.success?{ok:!0,data:i.data.deployments.map(a=>G({...a,projectId:a.projectId??c},a.uid))}:s("the deployment list")}async function O(a,b,c,d={}){return N(a,b,c,"READY",5,d)}async function P(a,b,c,d={}){let e=await N(a,b,c,"BUILDING,QUEUED,INITIALIZING",1,d);return e.ok?{ok:!0,data:e.data[0]??null}:e}async function Q(a,d,e,f={}){let g=await p("POST",`/v13/deployments?${q(d)}`,a,{name:e.name,project:e.projectId,deploymentId:e.deploymentId,target:"production"},f);if(!g.ok)return g;let h=b.z.object({id:c.z.string()}).safeParse(g.data);return{ok:!0,data:{id:h.success?h.data.id:""}}}async function R(a,b,c,d,e={}){let f=await p("POST",`/v1/projects/${r(c)}/rollback/${r(d)}?${q(b)}`,a,void 0,e);return f.ok?{ok:!0,data:null}:f}async function S(a,b,c,d,e={}){let f=await p("POST",`/v10/projects/${r(c)}/promote/${r(d)}?${q(b)}`,a,{},e);return f.ok?{ok:!0,data:null}:f}async function T(a,d,e,f={}){let g=await p("POST",`/v13/deployments?${q(d)}`,a,{name:e.name,project:e.projectId,deploymentId:e.deploymentId,target:"production",meta:{action:"promote"}},f);if(!g.ok)return g;let h=b.z.object({id:c.z.string()}).safeParse(g.data);return{ok:!0,data:{id:h.success?h.data.id:""}}}async function U(a,b,c,d={}){let e=await p("PATCH",`/v12/deployments/${r(c)}/cancel?${q(b)}`,a,void 0,d);return e.ok?{ok:!0,data:null}:e}let V=b.z.object({domains:d.z.array(b.z.object({name:c.z.string(),redirect:c.z.string().nullish(),verified:h.z.boolean().optional(),gitBranch:c.z.string().nullish(),customEnvironmentId:c.z.string().nullish().catch(null)})),pagination:b.z.object({next:e.z.number().nullish()}).nullish()});async function W(a,b,c,d={}){let e,f=[];for(let g=0;g<10;g++){let g=await o(`/v9/projects/${encodeURIComponent(c)}/domains?teamId=${encodeURIComponent(b)}&limit=100${e?`&until=${e}`:""}`,a,d);if(!g.ok)return g;let h=V.safeParse(g.data);if(!h.success)return s("the domain list");for(let a of h.data.domains)f.push({name:a.name,redirect:a.redirect??null,verified:!1!==a.verified,gitBranch:a.gitBranch??null,customEnvironmentId:a.customEnvironmentId??null});if(!(e=h.data.pagination?.next))return{ok:!0,data:f}}return{ok:!1,kind:"transient",error:"The project has more than 1000 domains; Watchbell kept the domains it had."}}async function X(a,b,c,d,e={},f=[]){let g=await W(a,b,c,e);return g.ok?{ok:!0,data:t(g.data,d,f)}:g}let Y=b.z.object({misconfigured:h.z.boolean(),configuredBy:c.z.string().nullish(),recommendedIPv4:d.z.array(b.z.object({value:d.z.array(c.z.string())})).default([])});async function Z(a,b,c,d={}){let e=await o(`/v6/domains/${encodeURIComponent(c)}/config?teamId=${encodeURIComponent(b)}`,a,d);if(!e.ok)return e;let f=Y.safeParse(e.data);return f.success?{ok:!0,data:{misconfigured:f.data.misconfigured,configuredBy:f.data.configuredBy??null,recommendedIps:f.data.recommendedIPv4.flatMap(a=>a.value)}}:s("the domain configuration")}async function $(a,b={}){let c=await v(a,b);if(!c.ok)return c;let d=[],e=[],f=[];for(let g of c.data){let c=await C(a,g,b);if(!c.ok){if(403===c.status){e.push(g.name),f.push(g.id);continue}return c}for(let a of c.data)d.push({externalId:a.id,name:a.name,meta:{teamId:g.id,teamSlug:g.slug,teamName:g.name,framework:a.framework,productionBranch:a.productionBranch,createdAt:a.createdAt.toISOString(),repo:a.repo?`${a.repo.org}/${a.repo.repo}`:null,repoType:a.repo?.type??null,functionRegions:a.functionRegions,rootDirectory:a.rootDirectory,...a.rootDirectoryUnsupported?{rootDirectoryUnsupported:a.rootDirectoryUnsupported}:{},...a.productionAliases.length?{productionAliases:a.productionAliases}:{}}})}return e.length===c.data.length?{ok:!1,kind:"auth",error:"This token can't read any of your Vercel teams. Create a token with access to them."}:{ok:!0,data:{apps:d,skippedTeams:e,skippedTeamIds:f}}}async function _(a,c,e,f,g={}){if(!/^[0-9a-f]{40}$/.test(f))return s("the commit");let h=new URLSearchParams({teamId:c,projectId:e,sha:f,limit:"10"}),i=await o(`/v6/deployments?${h}`,a,g);if(!i.ok)return i;let j=b.z.object({deployments:d.z.array(D)}).safeParse(i.data);return j.success?{ok:!0,data:j.data.deployments.map(a=>G(a,a.uid)).filter(a=>a.projectId===e&&(null===a.sha||a.sha===f)).sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime())}:s("the deployment list")}async function aa(a,b,c,d={}){let e=await o(`/v9/projects/${r(c)}?${q(b)}`,a,d);if(!e.ok)return e;let f=K.safeParse(e.data);if(!f.success)return s("the project");let g=f.data.targets?.production??null,h=f.data.lastAliasRequest??null;return{ok:!0,data:{currentId:z(g,h),latest:g?{id:g.id,readyState:g.readyState??null,createdAt:g.createdAt??null}:null,promote:h&&"promote"===h.type&&"succeeded"===h.jobStatus?{toDeploymentId:h.toDeploymentId,requestedAt:h.requestedAt}:null}}}a.s(["T",0,U,"n",0,t,"c",0,L,"C",0,_,"G",0,$,"Q",0,Z,"S",0,J,"K",0,H,"M",0,W,"W",0,C,"X",0,v,"r",0,O,"q",0,X,"k",0,aa,"u",0,S,"l",0,T,"L",0,Q,"E",0,R,"N",0,P,"o",0,w],572134);let ab=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0).map(a=>a.toLowerCase()):[];function ac(a){let b="string"==typeof a?.primaryDomain&&a.primaryDomain?a.primaryDomain.toLowerCase():null;return b?{primaryDomain:b,domains:ab(a?.domains),pastDomains:ab(a?.pastDomains)}:null}function ad(a){try{let b=new URL(a);return"https:"===b.protocol||"http:"===b.protocol?b.hostname.toLowerCase():null}catch{return null}}let ae=a=>/ · DEPLOYMENT_NOT_FOUND$/.test(a.lastError??"");function af(a,b,c=[],d={}){let e=ad(a),f=ac(b.meta);return!(!e||!f||function(a,b,c=[]){let d=ac(b.meta);if(!d)return!0;let e=a.toLowerCase();if(e===d.primaryDomain||d.domains.includes(e))return!0;let f=b.name.toLowerCase();return!!(!(e.endsWith(".vercel.app")&&c.some(a=>{let b=a.name.toLowerCase();return b!==f&&b.startsWith(`${f}-`)&&(e===`${b}.vercel.app`||e.startsWith(`${b}-`))}))&&(e===`${f}.vercel.app`||e.endsWith(".vercel.app")&&e.startsWith(`${f}-`)))||c.some(a=>{let b=ac(a.meta);return null!==b&&(b.primaryDomain===e||b.domains.includes(e))})}(e,b,c))&&(f.pastDomains.includes(e)||ae(d))?{from:e,to:f.primaryDomain}:null}a.s(["Q",0,function(a,b,c=[],d){let e=[...new Set(a.map(a=>a.name.toLowerCase()))],f=new Set(e),g=[...new Set([...ab(d?.pastDomains),...ab(d?.domains)])].filter(a=>!f.has(a)).slice(-20);return{domains:e,primaryDomain:t(a,b,c).toLowerCase(),pastDomains:g}},"u",0,af,"P",0,function(a,b){let c=new Map;for(let d of a){if("heartbeat"===d.kind)continue;let a=af(d.url,{name:d.appName,meta:d.appMeta},b.filter(a=>a.id!==d.appId),{lastError:d.lastError});a&&c.set(d.id,a)}return c},"w",0,function(a,b){let c=new URL(a);if(c.protocol="https:",c.hostname=b,c.port="",c.hostname!==b.toLowerCase())throw Error("The new domain isn't a valid host name.");return c.toString()},"R",0,function(a,b){let c=new Map;for(let d of a){if("heartbeat"===d.kind||!ae({lastError:d.lastError}))continue;let a=ac(d.appMeta),e=ad(d.url);if(!a||!e)continue;let f=c.get(d.appId)??a.pastDomains;!f.includes(e)&&af(d.url,{name:d.appName,meta:d.appMeta},b.filter(a=>a.id!==d.appId),{lastError:d.lastError})&&c.set(d.appId,[...f,e].slice(-20))}return c},"Y",0,ac],436357)}];
2
-
3
- //# sourceMappingURL=src_lib_domain-move_ts_04stiet1-xpe2._.js.map
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[631107,a=>{var b=a.i(245710);let c=a=>"number"==typeof a&&Number.isFinite(a)&&a>=0?a:null;a.s(["Z",0,(a,b)=>b.getTime()-a.getTime()>72e5,"O",0,function(a){let c=Math.max(0,...a.map(a=>a.views));return a.map(a=>({key:a.at.toISOString(),pct:0===a.views||0===c?0:Math.max(4,Math.round(a.views/c*100)),title:`${(0,b.U)(a.at)} \xb7 ${a.views} view${1===a.views?"":"s"}`}))},"G",0,function(a){let b=a&&"object"==typeof a?a.pageviews:null;if(!b||"object"!=typeof b)return null;let d="string"==typeof b.readAt?Date.parse(b.readAt):0/0;if(Number.isNaN(d)||"boolean"!=typeof b.enabled)return null;if(!b.enabled)return{enabled:!1,readAt:new Date(d)};let e=c(b.total24h),f=null===b.visitors24h?null:c(b.visitors24h);if(null===e||null===f&&null!==b.visitors24h)return null;let g=36e5*Math.floor(d/36e5),h=new Map;for(let a of Array.isArray(b.hourly)?b.hourly:[]){if(!Array.isArray(a))continue;let b="string"==typeof a[0]?Date.parse(a[0]):0/0,d=c(a[1]);if(Number.isNaN(b)||null===d)continue;let e=36e5*Math.floor(b/36e5);h.set(e,(h.get(e)??0)+d)}return{enabled:!0,total:e,visitors:f,hours:Array.from({length:24},(a,b)=>{let c=g-(23-b)*36e5;return{at:new Date(c),views:h.get(c)??0}}),readAt:new Date(d)}},"R",0,function(a){return!a.gone&&a.teamId&&a.accountOk?a.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"a",0,function(a,b){return a.enabled?{enabled:!0,total24h:a.total,visitors24h:a.visitors,readAt:b.toISOString(),hourly:a.hourly.slice(-24).map(a=>[a.at.toISOString(),a.views])}:{enabled:!1,readAt:b.toISOString()}}])},968715,a=>{var b=a.i(245710);function c(a,c){let[d,e,f]=(0,b.x)(a).split("-").map(Number);return Array.from({length:c},(a,b)=>new Date(Date.UTC(d,e-1,f-(c-1-b))).toISOString().slice(0,10))}let d=Date.UTC(2e3,0,1);a.s(["F",0,90,"I",0,30,"W",0,c,"D",0,function(a,b,c){return d+Math.floor((a.getTime()-d)/b)*b-(c-1)*b},"w",0,function(a,b,d){return c(b,d).map(b=>a?.get(b))},"C",0,function(a){let b=new Map;for(let c of a){let a=b.get(c.monitorId);a||(a=new Map,b.set(c.monitorId,a));let d=a.get(c.day);a.set(c.day,{day:c.day,checks:(d?.checks??0)+c.checks,failures:(d?.failures??0)+c.failures,maint:(d?.maint??0)+(c.maint??0)})}return b},"f",0,function(a,b,c,d,e=null){let f=Array.from({length:d},()=>e);for(let e of a){let a=Math.round((e.t-b)/c);a>=0&&a<d&&(f[a]=e.v)}return f},"j",0,function(a){let b={ok:0,warn:0,err:0,maint:0,paused:0};for(let c of a)!c.appGone&&("ok"===c.state||"warn"===c.state||"err"===c.state||"maint"===c.state?b[c.state]++:("paused"===c.state||"off"===c.state)&&b.paused++);return b},"h",0,function(a,b,d=90,e){return c(b,d).map((b,c)=>{let f,g=a?.get(b),h=g&&(0!==g.checks||g.maint)?0===g.checks?"maint":0===g.failures?"ok":g.failures<3?"warn":"err":"none",i=0==(f=d-1-c)?"Today":1===f?"1 day ago":`${f} days ago`,j=e?.get(b),k=g&&"none"!==h?"maint"===h?`${i} \xb7 maintenance, not counted`:`${i} \xb7 ${g.failures} failed of ${g.checks}`:`${i} \xb7 no data`;return{day:b,tone:h,title:j?`${k} \xb7 deployed ${j}`:k,deploy:j}})},"Y",0,function(a){let b=0,c=0;for(let d of a)d&&(b+=d.checks,c+=d.failures);return b?(b-c)/b*100:null}])}]})();
2
-
3
- //# sourceMappingURL=src_lib_view_14iq8onyfo7nd._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[657582,a=>{"use strict";function b(a,b,c){if("building"===a.state)return"building";if(null!==b&&a.id===b)return"current";if("error"===a.state)return"failed";if("preview"===a.target)return"ready"===a.state?"preview":"other";if("ready"!==a.state||null===b)return"other";let d=c.find(a=>a.id===b);if(!d)return"other";if(a.createdAt.getTime()>d.createdAt.getTime())return"staged";let e=c.filter(a=>"ready"===a.state&&a.id!==b&&a.createdAt.getTime()<d.createdAt.getTime()).sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime())[0];return e?.id===a.id?"previous":"other"}let c=a=>{let b;return{id:a.externalId,state:"ready"===(b=a.state)||"building"===b||"error"===b||"canceled"===b?b:"building",target:"production"===a.target?"production":"preview",createdAt:a.createdAt}};function d(a){let d=new Map;for(let e of(function(a){let b=new Map;for(let c of a)b.set(c.appId,[...b.get(c.appId)??[],c]);return b})(a).values()){let a=e.find(a=>a.isCurrent)?.externalId??null,f=e.filter(a=>"production"===a.target).map(c);for(let g of e)d.set(g.externalId,b(c(g),a,f))}return d}a.s(["g",0,function(a,b=!1){switch(a){case"building":return["Cancel"];case"current":return b?[]:["Redeploy"];case"previous":return["Roll back to this"];case"staged":return["Promote"];case"preview":return b?[]:["Promote to production"];default:return[]}},"h",0,function(a){let b=d(a),c=[...a].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),e=a=>c.find(c=>b.get(c.externalId)===a)?.externalId??null;return{currentId:e("current"),previousId:e("previous"),stagedId:e("staged")}},"U",0,b,"S",0,d])}];
2
-
3
- //# sourceMappingURL=src_lib_view_deploy-actions_ts_1l3rr2k-04gi4._.js.map
@@ -1,5 +0,0 @@
1
- (()=>{"use strict";module.exports=[779704,a=>{var b=a.i(93321),c=a.i(548734),d=a.i(837137),e=a.i(86657),f=a.i(502330),g=a.i(666680),h=a.i(26972),i=a.i(427221),j=a.i(811365);let k="advisor.ai_summary",l=h.z.object({text:i.z.string().min(1).max(1200),model:i.z.string().max(200),at:i.z.string(),count:j.z.number().int().min(0),hash:i.z.string().length(64)});function m(a){let b=a.map(a=>`${a.severity}\0${a.app}\0${a.title}`).sort();return(0,g.createHash)("sha256").update(b.join("\x01")).digest("hex")}async function n(){let[a]=await (0,c.f)().select({value:d.settings.value}).from(d.settings).where((0,b.u)(d.settings.key,k)).limit(1),e=l.safeParse(a?.value);return e.success?e.data:null}async function o(a,b){var g,h;if(!await e.f.provider())return{status:"no-provider"};let i=await e.f.advice(a),j=(g=await n(),h=b.force,i.length?!h&&g&&g.hash===m(i)?"skip-unchanged":"run":"skip-empty");if("skip-empty"===j)return{status:"empty"};if("skip-unchanged"===j)return{status:"unchanged"};let l=await e.f.complete((0,f.N)(i),{purpose:"summary",maxTokens:400}),o=l.text.trim().slice(0,1200);if(!o)throw Error("The model returned no text.");let p={text:o,model:l.model.slice(0,200),at:a.toISOString(),count:i.length,hash:m(i)};return await (0,c.f)().insert(d.settings).values({key:k,value:p}).onConflictDoUpdate({target:d.settings.key,set:{value:p,updatedAt:a}}),{status:"stored",summary:p}}a.s(["h",0,n,"E",0,o],779704)},920274,918962,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(548734),e=a.i(837137),f=a.i(142754);let g=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,h=a=>g.test(a);async function i(a,g=new Date){let j=null,k=new Map;if(void 0!==a){if(!h(a))return[];let[c]=await (0,d.f)().select({name:e.resources.name}).from(e.resources).where((0,b.u)(e.resources.id,a)).limit(1);j=c?[a,c.name]:[a],c&&(k=new Map([[a,c.name]]))}let l=new Date(g.getTime()-2592e6),m=(0,b.b)((0,b.M)(f.c.dismissedAt),(0,b.B)(f.c.createdAt,l)),n=await (0,d.f)().select({id:f.c.id,appId:f.c.appId,severity:f.c.severity,title:f.c.title,body:f.c.body,source:f.c.source,client:f.c.client,model:f.c.model,createdAt:f.c.createdAt}).from(f.c).where(j?(0,b.b)(m,(0,b.y)(f.c.appId,j)):m).orderBy((0,c.A)(f.c.createdAt)).limit(20);if(void 0===a){let a=[...new Set(n.map(a=>a.appId).filter(a=>!!a&&h(a)))];a.length&&(k=new Map((await (0,d.f)().select({id:e.resources.id,name:e.resources.name}).from(e.resources).where((0,b.y)(e.resources.id,a)).limit(a.length)).map(a=>[a.id,a.name])))}return n.map(a=>({id:a.id,appId:a.appId,appName:a.appId?k.get(a.appId)??(h(a.appId)?null:a.appId):null,severity:a.severity,title:a.title,body:a.body,from:a.client||a.source,model:a.model,at:a.createdAt}))}async function j(a,c,e){let[g]=await (0,d.f)().update(f.c).set({dismissedAt:e,dismissedBy:c}).where((0,b.b)((0,b.u)(f.c.id,a),(0,b.M)(f.c.dismissedAt))).returning({id:f.c.id,title:f.c.title,appId:f.c.appId,source:f.c.source,client:f.c.client});return g?{id:g.id,title:g.title,appId:g.appId,from:g.client||g.source}:null}async function k(a,c,e){return a.length?(await (0,d.f)().update(f.c).set({dismissedAt:e,dismissedBy:c}).where((0,b.b)((0,b.y)(f.c.id,a.slice(0,20)),(0,b.M)(f.c.dismissedAt))).returning({id:f.c.id})).length:0}a.s(["Z",0,20,"$",0,j,"d",0,k,"b",0,h,"N",0,i],920274);var l=a.i(484458),m=a.i(363652),n=a.i(501634),o=a.i(502330);async function p(a,b={}){let c=b.now??new Date,d=(0,o.u)(await (0,n.V)(c),a);if(b.context){let a=d[d.length-1];a.content=`${a.content}
2
-
3
- Context: ${(0,o.O)(b.context,Math.min(b.contextMax??2e3,4e3))}`}let e=await (0,m.X)(d,{...b.model?{model:b.model,...b.fallback?{fallback:!0}:{}}:{},purpose:"console-chat",maxTokens:1500}),f=e.text.trim();if(!f)throw new q;return{text:f.length>8e3?`${f.slice(0,7999)}…`:f,model:e.model,ms:e.ms}}class q extends Error{constructor(){super("The model returned no text. Try again."),this.name="GatewayError"}}async function r(a=new Date){let[b,c]=await Promise.all([(0,l.y)(a).catch(()=>null),(0,m.M)().then(()=>!0,()=>!1)]),d=!!b&&(0,l.U)(b.report,a);return{agConnected:d,agEnabled:d&&b?(0,l._)(b.report,b.prefs,b.allowed):[],providerReady:c}}a.s(["q",0,"watchpost","L",0,p,"c",0,r],918962)}]})();
4
-
5
- //# sourceMappingURL=src_private_04omlb_sgy-_r._.js.map