watchbell 1.2.1 → 1.2.2

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 (649) hide show
  1. package/README.md +34 -11
  2. package/bin/watchbell.mjs +731 -44
  3. package/package.json +1 -1
  4. package/scripts/node-runtime.mjs +166 -0
  5. package/scripts/selfhost-log.mjs +116 -0
  6. package/server/.next/BUILD_ID +1 -1
  7. package/server/.next/build-manifest.json +3 -3
  8. package/server/.next/prerender-manifest.json +3 -3
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +47 -46
  11. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
  14. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +47 -46
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  17. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
  18. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +47 -46
  19. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  21. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
  22. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +47 -46
  23. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
  26. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +47 -46
  27. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
  30. package/server/.next/server/app/(console)/(private)/ai/models/page.js +47 -46
  31. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  32. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
  34. package/server/.next/server/app/(console)/(private)/ai/page.js +47 -46
  35. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  36. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  37. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
  38. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +47 -46
  39. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  41. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
  42. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +47 -46
  43. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
  46. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +47 -46
  47. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  48. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
  50. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +47 -46
  51. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  52. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  53. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
  54. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +47 -46
  55. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  56. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  57. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
  58. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +47 -46
  59. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  60. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  61. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
  62. package/server/.next/server/app/(console)/alerts/page.js +47 -46
  63. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +26 -26
  66. package/server/.next/server/app/(console)/apps/[id]/page.js +47 -46
  67. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  68. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  69. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +12 -12
  70. package/server/.next/server/app/(console)/apps/page.js +47 -46
  71. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  72. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  73. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
  74. package/server/.next/server/app/(console)/backups/page.js +47 -46
  75. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  76. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  77. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
  78. package/server/.next/server/app/(console)/catalog/page.js +47 -46
  79. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  80. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  81. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +20 -20
  82. package/server/.next/server/app/(console)/connections/page.js +47 -46
  83. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
  86. package/server/.next/server/app/(console)/d1/page.js +47 -46
  87. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  88. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  89. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +15 -15
  90. package/server/.next/server/app/(console)/deployments/page.js +47 -46
  91. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  92. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  93. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
  94. package/server/.next/server/app/(console)/dns/page.js +47 -46
  95. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  96. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  97. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
  98. package/server/.next/server/app/(console)/domains/page.js +47 -46
  99. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  100. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  101. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
  102. package/server/.next/server/app/(console)/events/page.js +47 -46
  103. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +16 -16
  106. package/server/.next/server/app/(console)/firebase/page.js +47 -46
  107. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  108. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  109. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
  110. package/server/.next/server/app/(console)/logs/page.js +47 -46
  111. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  112. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  113. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +10 -10
  114. package/server/.next/server/app/(console)/manage/sections/page.js +47 -46
  115. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  116. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  117. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
  118. package/server/.next/server/app/(console)/neon/page.js +47 -46
  119. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  120. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  121. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
  122. package/server/.next/server/app/(console)/overview/page.js +47 -46
  123. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
  126. package/server/.next/server/app/(console)/repos/[id]/page.js +47 -46
  127. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  128. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  129. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
  130. package/server/.next/server/app/(console)/repos/page.js +47 -46
  131. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  132. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  133. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
  134. package/server/.next/server/app/(console)/settings/page.js +47 -46
  135. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  136. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  137. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
  138. package/server/.next/server/app/(console)/sql/page.js +47 -46
  139. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  140. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  141. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
  142. package/server/.next/server/app/(console)/status/page.js +47 -46
  143. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
  146. package/server/.next/server/app/(console)/supabase/page.js +47 -46
  147. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  148. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  149. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
  150. package/server/.next/server/app/(console)/topology/page.js +47 -46
  151. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  152. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  153. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
  154. package/server/.next/server/app/(console)/turso/page.js +47 -46
  155. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  156. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  157. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
  158. package/server/.next/server/app/(console)/upstash/page.js +47 -46
  159. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  160. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  161. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +23 -23
  162. package/server/.next/server/app/(console)/uptime/page.js +47 -46
  163. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  164. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  165. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
  166. package/server/.next/server/app/(console)/welcome/page.js +47 -46
  167. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  168. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  169. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  170. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  171. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  172. package/server/.next/server/app/_global-error.html +1 -1
  173. package/server/.next/server/app/_global-error.rsc +4 -4
  174. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +3 -3
  175. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
  176. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  177. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  178. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  179. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  180. package/server/.next/server/app/_not-found.html +1 -1
  181. package/server/.next/server/app/_not-found.rsc +5 -5
  182. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  183. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  184. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  185. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  186. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  187. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  188. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  189. package/server/.next/server/app/api/collect/route.js +24 -24
  190. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  191. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  192. package/server/.next/server/app/api/daily/route.js +24 -24
  193. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  194. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  195. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  196. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  197. package/server/.next/server/app/api/telegram/webhook/route.js +23 -23
  198. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  199. package/server/.next/server/app/api/v1/advice/route.js +3 -3
  200. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  201. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
  202. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  203. package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
  204. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  205. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  206. package/server/.next/server/app/api/v1/ai/questions/route.js +3 -3
  207. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  208. package/server/.next/server/app/api/v1/mcp/route.js +2 -2
  209. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  210. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  211. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  212. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +3 -3
  213. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  214. package/server/.next/server/app/api/v1/status/route.js +3 -3
  215. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  216. package/server/.next/server/app/api/watchdog/route.js +4 -4
  217. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  218. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  219. package/server/.next/server/app/auth/google/callback/route.js +2 -2
  220. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  221. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  222. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  223. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  224. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  225. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  226. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  227. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  228. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  229. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  230. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  231. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  232. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  233. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  234. package/server/.next/server/app/page.js.nft.json +1 -1
  235. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  236. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  237. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  238. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  239. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  240. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  241. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  242. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  243. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  244. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  245. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  246. package/server/.next/server/chunks/{[externals]__0dolpidprtypa._.js → [externals]__0y_x27mdj85p4._.js} +1 -1
  247. package/server/.next/server/chunks/{[externals]__0pfohce9kbhcc._.js → [externals]__1fzfzd0ia0sk6._.js} +1 -1
  248. package/server/.next/server/chunks/{[externals]__1ou2ofma806s1._.js → [externals]__1qqyrxnupegg3._.js} +1 -1
  249. package/server/.next/server/chunks/{[root-of-the-server]__0wbhuhlkn_ueu._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +2 -2
  250. package/server/.next/server/chunks/{[root-of-the-server]__1cbg6fvn16har._.js → [root-of-the-server]__0032rbj2s87zo._.js} +2 -2
  251. package/server/.next/server/chunks/{[root-of-the-server]__163-eo1vkbzx1._.js → [root-of-the-server]__03i6yscmtbhhg._.js} +2 -2
  252. package/server/.next/server/chunks/{[root-of-the-server]__1x9u88f9545aa._.js → [root-of-the-server]__05qcc-0e8z1u8._.js} +2 -2
  253. package/server/.next/server/chunks/{[root-of-the-server]__1p1k8nq50cwfy._.js → [root-of-the-server]__07bw6o0jc31yr._.js} +2 -2
  254. package/server/.next/server/chunks/{[root-of-the-server]__14pgqdfdkuopi._.js → [root-of-the-server]__07eo--c90cju2._.js} +2 -2
  255. package/server/.next/server/chunks/{[root-of-the-server]__0iysztx_xio84._.js → [root-of-the-server]__07mzeijv31avl._.js} +2 -2
  256. package/server/.next/server/chunks/{[root-of-the-server]__05ht00n_eiksb._.js → [root-of-the-server]__090in165mp6av._.js} +1 -1
  257. package/server/.next/server/chunks/{[root-of-the-server]__0403hy52a1qcu._.js → [root-of-the-server]__0_nljmqhjcept._.js} +1 -1
  258. package/server/.next/server/chunks/{[root-of-the-server]__08k886n7y6f_3._.js → [root-of-the-server]__0awtaloe4_8am._.js} +1 -1
  259. package/server/.next/server/chunks/{[root-of-the-server]__0b136ghrklbbn._.js → [root-of-the-server]__0dsy-9ts8s-pn._.js} +1 -1
  260. package/server/.next/server/chunks/{[root-of-the-server]__0hvejly8-nlkq._.js → [root-of-the-server]__0g1cifa7hd790._.js} +1 -1
  261. package/server/.next/server/chunks/{[root-of-the-server]__0pwn8go30dm_3._.js → [root-of-the-server]__0hblpf7wqke-j._.js} +2 -2
  262. package/server/.next/server/chunks/[root-of-the-server]__0hedtycoyydoc._.js +3 -0
  263. package/server/.next/server/chunks/{[root-of-the-server]__0kgmy-sltdtb_._.js → [root-of-the-server]__0hlyn_aj72sn5._.js} +2 -2
  264. package/server/.next/server/chunks/{[root-of-the-server]__0w8qhgmo5c23i._.js → [root-of-the-server]__0hnljrh9qi9t-._.js} +2 -2
  265. package/server/.next/server/chunks/{[root-of-the-server]__0xgl1cg3z00iz._.js → [root-of-the-server]__0hrtz5c_46jkw._.js} +1 -1
  266. package/server/.next/server/chunks/{[root-of-the-server]__0cskq__p3tja8._.js → [root-of-the-server]__0ihedjvt-l2-u._.js} +2 -2
  267. package/server/.next/server/chunks/[root-of-the-server]__0iicsi0n7tfa5._.js +3 -0
  268. package/server/.next/server/chunks/{[root-of-the-server]__0dc0pz57q73va._.js → [root-of-the-server]__0kp0yx909wtab._.js} +1 -1
  269. package/server/.next/server/chunks/{[root-of-the-server]__1w-yk3b07wcf1._.js → [root-of-the-server]__0l6_iao04u72h._.js} +2 -2
  270. package/server/.next/server/chunks/{[root-of-the-server]__1yzaj148hs9a1._.js → [root-of-the-server]__0l9ja3579qrju._.js} +2 -2
  271. package/server/.next/server/chunks/{[root-of-the-server]__1r9j5o80kocvz._.js → [root-of-the-server]__0lu91s5izfu0p._.js} +2 -2
  272. package/server/.next/server/chunks/{[root-of-the-server]__0_64c807n6q9e._.js → [root-of-the-server]__0noc6l63d3l9w._.js} +2 -2
  273. package/server/.next/server/chunks/{[root-of-the-server]__04zuzs7oruu3o._.js → [root-of-the-server]__0nrg8zzqizk69._.js} +2 -2
  274. package/server/.next/server/chunks/{[root-of-the-server]__1lbmzw1j9jufm._.js → [root-of-the-server]__0oy0hcm48kl-q._.js} +2 -2
  275. package/server/.next/server/chunks/{[root-of-the-server]__0l5v9itfv9nhr._.js → [root-of-the-server]__0q-x05ekhpohj._.js} +1 -1
  276. package/server/.next/server/chunks/[root-of-the-server]__0r1men25anfgb._.js +3 -0
  277. package/server/.next/server/chunks/{[root-of-the-server]__01estsu5k8l4t._.js → [root-of-the-server]__0s8vjz6urzn76._.js} +1 -1
  278. package/server/.next/server/chunks/{[root-of-the-server]__04ruh9diphqtp._.js → [root-of-the-server]__0u3un538__ca5._.js} +2 -2
  279. package/server/.next/server/chunks/{[root-of-the-server]__1ry92m8xlcebk._.js → [root-of-the-server]__0v-gc-c_e8pwl._.js} +2 -2
  280. package/server/.next/server/chunks/{[root-of-the-server]__0t9o5ca5bzg0p._.js → [root-of-the-server]__0x487cn6dsn12._.js} +2 -2
  281. package/server/.next/server/chunks/{[root-of-the-server]__11qvos_7nf8z8._.js → [root-of-the-server]__0yuyew8m9dc6-._.js} +1 -1
  282. package/server/.next/server/chunks/[root-of-the-server]__0zmvf4j8e2gno._.js +3 -0
  283. package/server/.next/server/chunks/{[root-of-the-server]__1w9hei9xe1odr._.js → [root-of-the-server]__0zni_2pv2fdgb._.js} +2 -2
  284. package/server/.next/server/chunks/[root-of-the-server]__10wbld2tja51-._.js +3 -0
  285. package/server/.next/server/chunks/{[root-of-the-server]__10mob-6xfy8b0._.js → [root-of-the-server]__125fkw52kl2ty._.js} +2 -2
  286. package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +3 -0
  287. package/server/.next/server/chunks/[root-of-the-server]__14ou3bydfm0ms._.js +3 -0
  288. package/server/.next/server/chunks/{[root-of-the-server]__1xrt934xl5wbd._.js → [root-of-the-server]__15dhjj384tuw_._.js} +2 -2
  289. package/server/.next/server/chunks/{[root-of-the-server]__1vmls0bkau925._.js → [root-of-the-server]__16waq6rapvngp._.js} +2 -2
  290. package/server/.next/server/chunks/[root-of-the-server]__18eg-mk5loj_8._.js +3 -0
  291. package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +3 -0
  292. package/server/.next/server/chunks/{[root-of-the-server]__1vutb2z9gw8el._.js → [root-of-the-server]__1adw_bv2u89kc._.js} +1 -1
  293. package/server/.next/server/chunks/[root-of-the-server]__1brl5otpkvgd3._.js +3 -0
  294. package/server/.next/server/chunks/{[root-of-the-server]__00wz8qo4hgq2i._.js → [root-of-the-server]__1c78cu7kb9vkl._.js} +2 -2
  295. package/server/.next/server/chunks/[root-of-the-server]__1d5y0cc5mg_07._.js +3 -0
  296. package/server/.next/server/chunks/{[root-of-the-server]__1zcp6yrat15t5._.js → [root-of-the-server]__1dbz126yujh44._.js} +2 -2
  297. package/server/.next/server/chunks/{[root-of-the-server]__0m9648az7bkus._.js → [root-of-the-server]__1dh4di29mjq9y._.js} +2 -2
  298. package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +3 -0
  299. package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +3 -0
  300. package/server/.next/server/chunks/{[root-of-the-server]__1-bvfylgbkjso._.js → [root-of-the-server]__1jsf0jf_ljpsm._.js} +2 -2
  301. package/server/.next/server/chunks/{[root-of-the-server]__1fj8d0drhw1yx._.js → [root-of-the-server]__1lerees-l5-6c._.js} +2 -2
  302. package/server/.next/server/chunks/{[root-of-the-server]__1sb8d4e5b5pdl._.js → [root-of-the-server]__1lj1f2w2-w8nw._.js} +2 -2
  303. package/server/.next/server/chunks/[root-of-the-server]__1mim39ea6-dm1._.js +3 -0
  304. package/server/.next/server/chunks/{[root-of-the-server]__0sfnhgc5reef1._.js → [root-of-the-server]__1ooxluowhatjt._.js} +2 -2
  305. package/server/.next/server/chunks/[root-of-the-server]__1p0zd1rtbkj9r._.js +3 -0
  306. package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +3 -0
  307. package/server/.next/server/chunks/{[root-of-the-server]__05jzukkrp2pvu._.js → [root-of-the-server]__1rpgddeg42i-q._.js} +2 -2
  308. package/server/.next/server/chunks/[root-of-the-server]__1v4i7ytwadml8._.js +3 -0
  309. package/server/.next/server/chunks/[root-of-the-server]__1vvg0ur3_7o0p._.js +3 -0
  310. package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +3 -0
  311. package/server/.next/server/chunks/{[root-of-the-server]__02s57amypj_ye._.js → [root-of-the-server]__1w7dv8zm-k_oa._.js} +2 -2
  312. package/server/.next/server/chunks/[root-of-the-server]__1x7en4waq21dd._.js +3 -0
  313. package/server/.next/server/chunks/[root-of-the-server]__1x813cg-b9rls._.js +3 -0
  314. package/server/.next/server/chunks/{[root-of-the-server]__1147qf6sf3ru4._.js → [root-of-the-server]__1xl6_spngp6k3._.js} +2 -2
  315. package/server/.next/server/chunks/{[root-of-the-server]__1cwr95yi8preu._.js → [root-of-the-server]__1xxmlb3soqzom._.js} +2 -2
  316. package/server/.next/server/chunks/[root-of-the-server]__1zg653esm3__p._.js +3 -0
  317. package/server/.next/server/chunks/{[root-of-the-server]__1w_wtn9h9eu93._.js → [root-of-the-server]__1zvoez8iapsem._.js} +2 -2
  318. package/server/.next/server/chunks/[root-of-the-server]__209g3_0l-y67u._.js +3 -0
  319. package/server/.next/server/chunks/[root-of-the-server]__20pu-tixzpeev._.js +3 -0
  320. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  321. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  322. package/server/.next/server/chunks/_0duxuj4kmjibl._.js +41 -0
  323. package/server/.next/server/chunks/_0gz8ldqeokdtn._.js +1 -1
  324. package/server/.next/server/chunks/{_1msi9fy888xna._.js → _0if5sw58tii_3._.js} +2 -2
  325. package/server/.next/server/chunks/_0kmhvts35imzs._.js +4 -4
  326. package/server/.next/server/chunks/_0l_hz-8cj94r7._.js +3 -0
  327. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  328. package/server/.next/server/chunks/_0ofzzim090ezo._.js +1 -1
  329. package/server/.next/server/chunks/_0q3ygdztfvqq6._.js +3 -0
  330. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +7 -7
  331. package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +3 -0
  332. package/server/.next/server/chunks/_0rwuppwyvemfj._.js +4 -4
  333. package/server/.next/server/chunks/{_060yqv0qyo-lp._.js → _0ry4553j-m5fp._.js} +3 -3
  334. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  335. package/server/.next/server/chunks/_0voowig3y32v1._.js +4 -4
  336. package/server/.next/server/chunks/_0wtlf0x_depae._.js +3 -0
  337. package/server/.next/server/chunks/_0zj10_al6r59j._.js +26 -26
  338. package/server/.next/server/chunks/_1-pcsy2hkg0il._.js +3 -0
  339. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  340. package/server/.next/server/chunks/_113ebzq_9i756._.js +41 -0
  341. package/server/.next/server/chunks/{_1z8__gxixw-z-._.js → _16urxazbgm48y._.js} +3 -3
  342. package/server/.next/server/chunks/_1a5vma58w9ytn._.js +4 -4
  343. package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +26 -26
  344. package/server/.next/server/chunks/{_219klbycazlx_._.js → _1g8r-7wcf8sy3._.js} +3 -3
  345. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +7 -7
  346. package/server/.next/server/chunks/_1ihndlef8r00f._.js +41 -0
  347. package/server/.next/server/chunks/_1mwb214-ablfo._.js +41 -0
  348. package/server/.next/server/chunks/_1ngkjn56qmi2x._.js +3 -0
  349. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +4 -4
  350. package/server/.next/server/chunks/_1xs2ya_n7kb04._.js +4 -4
  351. package/server/.next/server/chunks/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
  352. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  353. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  354. package/server/.next/server/chunks/{src_0lcm1yhnzhn2d._.js → src_09cgjvch02173._.js} +2 -2
  355. package/server/.next/server/chunks/{src_0v67kw2p2wd_c._.js → src_0c7qu5adpm3gv._.js} +2 -2
  356. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  357. package/server/.next/server/chunks/{src_0390zcofy42lg._.js → src_10vyvp9vy_69h._.js} +2 -2
  358. package/server/.next/server/chunks/{src_1v3tf1ye2jzyk._.js → src_13n1vi7uew4iu._.js} +2 -2
  359. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  360. package/server/.next/server/chunks/{src_07vqa8fdgu9ah._.js → src_1il7wg_qjxny7._.js} +2 -2
  361. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +7 -4
  362. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  363. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +7 -4
  364. package/server/.next/server/chunks/src_20ilndq84j3b3._.js +3 -0
  365. package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +6 -0
  366. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  367. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  368. package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +6 -0
  369. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +10 -9
  370. package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +6 -0
  371. package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +9 -0
  372. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +10 -9
  373. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +10 -9
  374. package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +9 -0
  375. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  376. package/server/.next/server/chunks/src_lib_1xwavi_m_li7p._.js +1 -1
  377. package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +6 -0
  378. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
  379. package/server/.next/server/chunks/src_lib_data_advisor-db_ts_0rl1ug3iana24._.js +1 -1
  380. package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
  381. package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
  382. package/server/.next/server/chunks/src_lib_notify_telegram-bot_ts_18y40dkchmcqd._.js +1 -1
  383. package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  384. package/server/.next/server/chunks/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
  385. package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
  386. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  387. package/server/.next/server/chunks/src_private_ai_gateway_ts_1qtr4nyb8kgnd._.js +2 -2
  388. package/server/.next/server/chunks/src_private_assist_provider-answer_ts_10qv42t-5046y._.js +1 -1
  389. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  390. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
  391. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
  392. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
  393. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
  394. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
  395. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
  396. package/server/.next/server/chunks/ssr/{[externals]__1thdbok76xtof._.js → [externals]__1d_fn156y1kzg._.js} +1 -1
  397. package/server/.next/server/chunks/ssr/[root-of-the-server]__0llh-w4ta1qbp._.js +1 -1
  398. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +2 -2
  399. package/server/.next/server/chunks/ssr/{[root-of-the-server]__04tkts7c9ylma._.js → [root-of-the-server]__0p5znbfo0wgsu._.js} +2 -2
  400. package/server/.next/server/chunks/ssr/{[root-of-the-server]__12ymdwm8dphvu._.js → [root-of-the-server]__0ua-p_wz8epv9._.js} +2 -2
  401. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
  402. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ojywxj06986-._.js → [root-of-the-server]__0y84mqfn13ss4._.js} +1 -1
  403. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  404. package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +2 -2
  405. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0oayb8dm0iu8k._.js → [root-of-the-server]__1rvdnoxnu0ddf._.js} +2 -2
  406. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
  407. package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
  408. package/server/.next/server/chunks/ssr/_04ltmruop4rt3._.js +2 -2
  409. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
  410. package/server/.next/server/chunks/ssr/_090fib2x989oc._.js +1 -1
  411. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  412. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  413. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  414. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  415. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  416. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  417. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  418. package/server/.next/server/chunks/ssr/_0hmxyfx7su4uk._.js +1 -1
  419. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
  420. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
  421. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
  422. package/server/.next/server/chunks/ssr/_0lmcrl8r9dg49._.js +1 -1
  423. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
  424. package/server/.next/server/chunks/ssr/_0ns_087lx5abm._.js +1 -1
  425. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  426. package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +1 -1
  427. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  428. package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +3 -0
  429. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
  430. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
  431. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  432. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  433. package/server/.next/server/chunks/ssr/{_0i2a_ziqzhyq-._.js → _0wzg8e30al7bu._.js} +2 -2
  434. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  435. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +5 -5
  436. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
  437. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  438. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
  439. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
  440. package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
  441. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  442. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  443. package/server/.next/server/chunks/ssr/{_022u_nnwo1yb4._.js → _1_gydx19bikgo._.js} +2 -2
  444. package/server/.next/server/chunks/ssr/_1ag8axv14phju._.js +2 -2
  445. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
  446. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
  447. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  448. package/server/.next/server/chunks/ssr/_1dqf3jmb24s37._.js +1 -1
  449. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
  450. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  451. package/server/.next/server/chunks/ssr/{_14n2368190qms._.js → _1gk334l49puy-._.js} +2 -2
  452. package/server/.next/server/chunks/ssr/{_1wssvwkmxcdn5._.js → _1gvbcfoah__sl._.js} +2 -2
  453. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
  454. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  455. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  456. package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
  457. package/server/.next/server/chunks/ssr/{_20gx4od4pnj8d._.js → _1rf_mwfkk_9oa._.js} +2 -2
  458. package/server/.next/server/chunks/ssr/_1w_rq6clcs0ft._.js +2 -2
  459. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
  460. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  461. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
  462. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
  463. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
  464. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
  465. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
  466. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +1 -1
  467. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +1 -1
  468. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
  469. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
  470. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +1 -1
  471. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
  472. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +1 -1
  473. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
  474. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
  475. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
  476. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  477. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  478. package/server/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
  479. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  480. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  481. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +6 -3
  482. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  483. package/server/.next/server/chunks/ssr/{src_0vi30frvjgri2._.js → src_0jdurlhzhcg5x._.js} +2 -2
  484. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
  485. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  486. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  487. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  488. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  489. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +1 -1
  490. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  491. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  492. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  493. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  494. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  495. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  496. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  497. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  498. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  499. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  500. package/server/.next/server/chunks/ssr/{src_app_(console)_05mlxmavgli8_._.js → src_app_(console)_08pmfte22v8vg._.js} +2 -2
  501. package/server/.next/server/chunks/ssr/{src_app_(console)_0u1ec16rmzze6._.js → src_app_(console)_1rx84pcbevbbk._.js} +2 -2
  502. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  503. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  504. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  505. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  506. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  507. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  508. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  509. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  510. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  511. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  512. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  513. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  514. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  515. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  516. package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
  517. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  518. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  519. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  520. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  521. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  522. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  523. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  524. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  525. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  526. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  527. package/server/.next/server/chunks/ssr/{src_app_signin_06v-xlrxfp079._.js → src_app_signin_0hb58isfg-2yx._.js} +2 -2
  528. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
  529. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +1 -1
  530. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  531. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +2 -1
  532. package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
  533. package/server/.next/server/chunks/ssr/src_lib_1xwavi_m_li7p._.js +1 -1
  534. package/server/.next/server/chunks/ssr/src_lib_collector_node-runtime_ts_0778fef3fi3zj._.js +3 -0
  535. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  536. package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
  537. package/server/.next/server/chunks/ssr/{src_lib_demo_15okweo0amos4._.js → src_lib_demo_1wu-a6lubzph6._.js} +2 -2
  538. package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
  539. package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  540. package/server/.next/server/chunks/ssr/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
  541. package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +1 -1
  542. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  543. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  544. package/server/.next/server/chunks/ssr/src_private_actions_telegram-approvals_ts_14gvz6qi_j4aa._.js +1 -1
  545. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  546. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  547. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +6 -6
  548. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  549. package/server/.next/server/middleware-build-manifest.js +3 -3
  550. package/server/.next/server/pages/404.html +1 -1
  551. package/server/.next/server/pages/500.html +1 -1
  552. package/server/.next/server/preview-props.json +3 -3
  553. package/server/.next/server/server-reference-manifest.js +1 -1
  554. package/server/.next/server/server-reference-manifest.json +139 -139
  555. package/server/.next/static/chunks/{22ierqxhqtwn6.js → 0-_zjfssid86w.js} +2 -2
  556. package/server/.next/static/chunks/02-edmd1oolf2.css +3 -0
  557. package/server/.next/static/chunks/05p62k_8g05pm.js +76 -0
  558. package/server/.next/static/chunks/{02byu0sw5d0g9.js → 073u0a0mfexc8.js} +1 -1
  559. package/server/.next/static/chunks/{38c9rnljzl6iw.js → 09fx7h5vm68up.js} +1 -1
  560. package/server/.next/static/chunks/{177dd6kiifsoi.js → 0a5vchcarwyam.js} +1 -1
  561. package/server/.next/static/chunks/{42z3imsp11da1.js → 0ao7_ov9mlvqp.js} +1 -1
  562. package/server/.next/static/chunks/{3qbk8r6jm8udo.js → 0cvmbpyjages7.js} +2 -2
  563. package/server/.next/static/chunks/{04yl9t4cn6zwm.js → 0hnhf3barhk90.js} +1 -1
  564. package/server/.next/static/chunks/{2aerfowxsf234.js → 0i8-ofb4wfcch.js} +1 -1
  565. package/server/.next/static/chunks/{3tl9dgour-h9l.js → 0id261ol_gl6f.js} +1 -1
  566. package/server/.next/static/chunks/0iyozrryj1w49.js +1 -0
  567. package/server/.next/static/chunks/{1zyyqxguxs96l.js → 0q2ogu5cn9q9p.js} +1 -1
  568. package/server/.next/static/chunks/{37f1rjolzxbiv.js → 0z_fqwq62_95p.js} +1 -1
  569. package/server/.next/static/chunks/{11gctw6uutyd7.js → 12fo0pcbpv7lw.js} +1 -1
  570. package/server/.next/static/chunks/{0d556cjlmwiq4.js → 16d1ws92me6_q.js} +1 -1
  571. package/server/.next/static/chunks/{3vbz762vgy3dx.js → 1__8cm_-lydee.js} +1 -1
  572. package/server/.next/static/chunks/{0xwz6ps1581qa.js → 1hmur12m0hx3z.js} +1 -1
  573. package/server/.next/static/chunks/{22h4lj0gp_6n5.js → 1o1lidcbrrh92.js} +1 -1
  574. package/server/.next/static/chunks/{25r6-t40ok5s9.js → 1pre7l9hmk-b6.js} +1 -1
  575. package/server/.next/static/chunks/{04lzxilmq17f_.js → 1qxc6cck2xkbs.js} +1 -1
  576. package/server/.next/static/chunks/{160mk2sltxl3e.js → 205s3z3_jvp5m.js} +1 -1
  577. package/server/.next/static/chunks/{0qciunoy58a03.js → 20cpkauaj8e6x.js} +2 -2
  578. package/server/.next/static/chunks/{3_erdlvi2tz19.js → 25meucm7i1e7b.js} +1 -1
  579. package/server/.next/static/chunks/{2pn16qmann41d.js → 2oy7awlquezq_.js} +1 -1
  580. package/server/.next/static/chunks/{2xhx4rma6gx5o.js → 2pj8subq20y-_.js} +1 -1
  581. package/server/.next/static/chunks/{2szlo15y09085.js → 2qcurt9u9shwc.js} +1 -1
  582. package/server/.next/static/chunks/{01mhc6kz81iwf.js → 2scf40c-_g_q1.js} +1 -1
  583. package/server/.next/static/chunks/{1bn-7bluoi2vi.js → 2tnx5isef9ryw.js} +1 -1
  584. package/server/.next/static/chunks/{3wi43ltm1e5iy.js → 2whojv56qi3ke.js} +1 -1
  585. package/server/.next/static/chunks/{0lcmy-_tdtrqk.js → 2wlen-jacsbqv.js} +1 -1
  586. package/server/.next/static/chunks/{0foc_dy1j2x52.js → 319s97ka6eaex.js} +1 -1
  587. package/server/.next/static/chunks/{1d0mukiro5klq.js → 36bqhxadlfbfn.js} +1 -1
  588. package/server/.next/static/chunks/{16lnw4itnfhw-.js → 36js6cf9c-53b.js} +1 -1
  589. package/server/.next/static/chunks/372gugw4ldy47.js +1 -0
  590. package/server/.next/static/chunks/{2onhuya5-n3-e.js → 39n_1gky-xh0a.js} +1 -1
  591. package/server/.next/static/chunks/{1x8bgprfjtt59.js → 3fv862m8cvcoe.js} +1 -1
  592. package/server/.next/static/chunks/{2lfa16b0tlnvj.js → 3g73nar6-7bqk.js} +1 -1
  593. package/server/.next/static/chunks/{2wd8yh_ni0lqj.js → 3orhi-m-n-ra4.js} +1 -1
  594. package/server/.next/static/chunks/{3zaeh5nbkqpyj.js → 3u3h2mlon2qu7.js} +1 -1
  595. package/server/.next/static/chunks/{0ld0vtd027il_.js → 3vacue9vhoqag.js} +1 -1
  596. package/server/.next/static/chunks/{0jm8a63677590.js → 3x8-w_p0n-gsd.js} +1 -1
  597. package/server/.next/static/chunks/{0r2z8zg4n43pd.js → 3xo5igjfumqip.js} +1 -1
  598. package/server/.next/static/chunks/{1yctclvh0qaxz.js → 415ijq-anmr2o.js} +1 -1
  599. package/server/.next/static/chunks/{1nfofl7nhy6fx.js → 43wm4_0-0-eej.js} +1 -1
  600. package/server/.next/static/chunks/{08oksl0raetg5.js → 44bizq7fli9cp.js} +1 -1
  601. package/server/.next/server/chunks/[root-of-the-server]__0i3bs_98vlttu._.js +0 -3
  602. package/server/.next/server/chunks/[root-of-the-server]__0ych1y0j6e38k._.js +0 -3
  603. package/server/.next/server/chunks/[root-of-the-server]__0zhzy29i2vylk._.js +0 -3
  604. package/server/.next/server/chunks/[root-of-the-server]__0zwe7i-isx08p._.js +0 -3
  605. package/server/.next/server/chunks/[root-of-the-server]__10ee5dhzx78ne._.js +0 -3
  606. package/server/.next/server/chunks/[root-of-the-server]__10q3dc485yp4l._.js +0 -3
  607. package/server/.next/server/chunks/[root-of-the-server]__10u93zgn0-c5a._.js +0 -3
  608. package/server/.next/server/chunks/[root-of-the-server]__115yxhfn37r-k._.js +0 -3
  609. package/server/.next/server/chunks/[root-of-the-server]__14mz6mbk2m_e0._.js +0 -3
  610. package/server/.next/server/chunks/[root-of-the-server]__15y82djobfhof._.js +0 -3
  611. package/server/.next/server/chunks/[root-of-the-server]__165qlmqwvxmzr._.js +0 -3
  612. package/server/.next/server/chunks/[root-of-the-server]__1acps2oi9s0i7._.js +0 -3
  613. package/server/.next/server/chunks/[root-of-the-server]__1erq9v_t5jwp5._.js +0 -3
  614. package/server/.next/server/chunks/[root-of-the-server]__1ip0gr1i080kn._.js +0 -3
  615. package/server/.next/server/chunks/[root-of-the-server]__1lfidps4tcfkg._.js +0 -3
  616. package/server/.next/server/chunks/[root-of-the-server]__1mrpvwofqktnv._.js +0 -3
  617. package/server/.next/server/chunks/[root-of-the-server]__1ppnnpydkrs93._.js +0 -3
  618. package/server/.next/server/chunks/[root-of-the-server]__1qdo_hgivrawk._.js +0 -3
  619. package/server/.next/server/chunks/[root-of-the-server]__1qp_dvfy4vvsm._.js +0 -3
  620. package/server/.next/server/chunks/[root-of-the-server]__1rk6wb8qem46d._.js +0 -3
  621. package/server/.next/server/chunks/[root-of-the-server]__1s20vd1etiird._.js +0 -3
  622. package/server/.next/server/chunks/[root-of-the-server]__1s9_nmhp7chvj._.js +0 -3
  623. package/server/.next/server/chunks/[root-of-the-server]__1yc_xjjam78sg._.js +0 -3
  624. package/server/.next/server/chunks/[root-of-the-server]__2067x8gf07f-i._.js +0 -3
  625. package/server/.next/server/chunks/_0beox3lp9z58-._.js +0 -3
  626. package/server/.next/server/chunks/_0gobsd0_oxj5v._.js +0 -3
  627. package/server/.next/server/chunks/_0vwctvzwde-sz._.js +0 -37
  628. package/server/.next/server/chunks/_0yzmfi6iwa_sk._.js +0 -3
  629. package/server/.next/server/chunks/_1c3ksp22eq0rw._.js +0 -37
  630. package/server/.next/server/chunks/_1cjfskikk32wj._.js +0 -37
  631. package/server/.next/server/chunks/_1d9mf39gz0bv4._.js +0 -3
  632. package/server/.next/server/chunks/_1dlvqnaceqr-_._.js +0 -3
  633. package/server/.next/server/chunks/_1jveb9aojczvg._.js +0 -3
  634. package/server/.next/server/chunks/_1qw43v448l9e7._.js +0 -37
  635. package/server/.next/server/chunks/src_0yve3gn52i_mn._.js +0 -3
  636. package/server/.next/server/chunks/src_lib_0cbh80jxsdx3n._.js +0 -6
  637. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +0 -9
  638. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +0 -9
  639. package/server/.next/server/chunks/src_lib_15y0kwcot_7u0._.js +0 -6
  640. package/server/.next/server/chunks/src_lib_16y1secb8t9fj._.js +0 -6
  641. package/server/.next/server/chunks/src_lib_1iwyh213u9xts._.js +0 -6
  642. package/server/.next/server/chunks/ssr/_1dlvqnaceqr-_._.js +0 -3
  643. package/server/.next/static/chunks/0r-2mywc7qkb_.js +0 -1
  644. package/server/.next/static/chunks/1-zyqj42cr9hy.css +0 -3
  645. package/server/.next/static/chunks/1jc8ghvf721gg.js +0 -76
  646. package/server/.next/static/chunks/1rt5heq1xn_az.js +0 -1
  647. /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → 90CuiGzddaxNn9lvRkGlH}/_buildManifest.js +0 -0
  648. /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → 90CuiGzddaxNn9lvRkGlH}/_clientMiddlewareManifest.js +0 -0
  649. /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → 90CuiGzddaxNn9lvRkGlH}/_ssgManifest.js +0 -0
@@ -43,6 +43,6 @@ jobs:
43
43
  git add -- "$LOCKFILE"
44
44
  git commit -m "chore(deps): update package-lock.json (Watchbell)"
45
45
  git push origin "HEAD:$BRANCH"
46
- `;a.s(["h",0,"deps.lockfileActions","w",0,6e5,"G",0,f,"g",0,e,"C",0,function(a){let b=a.lockfilePath??"package-lock.json";return!e(a.repo)||!c.test(a.branch)||!d.test(b)||b.includes("..")||!Number.isInteger(a.prNumber)||a.prNumber<1?null:{repo:a.repo,branch:a.branch,lockfile:b,pr:a.prNumber}},"i",0,function(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a.repo:null;return{repo:e(b)?b:null}}])},812092,117859,a=>{var b=a.i(26972),c=a.i(427221),d=a.i(83931),e=a.i(899370),f=a.i(811365),g=a.i(689963),h=a.i(149310),i=a.i(84877),j=a.i(679662),k=a.i(462820);let l=["dependencies","devDependencies","optionalDependencies"],m="watchpost/deps-",n=a=>"object"==typeof a&&null!==a&&!Array.isArray(a),o=(a,b)=>a.startsWith(m)&&/^watchpost\/deps-[0-9a-f]{8}$/.test(a)&&a!==b,p=a=>{let b=a.filter(a=>!a.companionOf);return b.length?b:a},q={npm:"npm install",pnpm:"pnpm install",yarn:"yarn install",bun:"bun install","package-json":"npm install"};a.s(["M",0,function(a,b){let c;try{c=JSON.parse(a)}catch{return null}if(!n(c))return null;for(let a of b){let b=c[a.group];if(!n(b)||b[a.package]!==a.from)return null;b[a.package]=a.to}let d=/^[{[]\r?\n([ \t]+)\S/.exec(a),e=d?d[1]:" ",f=a.includes("\r\n")?"\r\n":"\n",g=JSON.stringify(c,null,e);return"\r\n"===f&&(g=g.replace(/\n/g,"\r\n")),/\r?\n$/.test(a)?g+f:g},"U",0,function(a,b=null){let c=a.map(a=>`${a.package}@${a.to}`).sort().join(",");return`${m}${function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b.toString(16).padStart(8,"0")}(b?`${b}|${c}`:c)}`},"G",0,function(a){let b=p(a);return 1===b.length?`chore(deps): update ${b[0].package} to ${b[0].fixed} (security fix)`:`chore(deps): update ${b.length} packages for security fixes`},"c",0,o,"k",0,function(a,b){let c;try{c=JSON.parse(a)}catch{return null}if(!n(c))return null;let d=[];for(let a of b)if((0,j.L)(a.package)&&(0,j.C)(a.to))for(let b of l){let e=c[b];if(!n(e)||"string"!=typeof e[a.package])continue;let f=e[a.package],g=(0,j.Y)(f),h=function(a,b){let c=/^\s*(\^|~|>=|=)?\s*v?\d+(?:\.(?:\d+|x|\*))?(?:\.(?:\d+|x|\*))?(?:-[0-9A-Za-z.-]+)?\s*$/.exec(a);return c&&(0,j.C)(b)?`${c[1]??""}${b}`:null}(f,a.to);!g||!h||(0,i.f)(g,a.to)>=0||d.push({package:a.package,group:b,from:f,to:h,fixed:a.to,vulnIds:a.vulnIds,cves:a.cves,...a.companionOf?{companionOf:a.companionOf}:{}})}return d},"y",0,function(a,b,c=!1,d=null){let e=q[b??"npm"]??"npm install",f=`run \`${e}\`${d?` in \`${d}\``:""}`,g=a.filter(a=>!a.companionOf),h=a.filter(a=>a.companionOf),i=g.map(a=>{let b=[...a.cves,...a.vulnIds.filter(b=>!a.cves.includes(b))].slice(0,4).map(a=>`[${a}](https://osv.dev/vulnerability/${encodeURIComponent(a)})`).join(", ");return`| \`${a.package}\` | \`${a.from}\` | \`${a.to}\` | ${b||"-"} |`});return[c?"This PR was opened **automatically** by Watchbell (Automatic security fixes). Watchbell merges it itself when CI is green, the Vercel preview is READY and passes the smoke test, and auto-rollback is on; if anything fails, the PR stays open for you to check.":k.K.prApproved,"","These packages have known vulnerabilities (source: OSV.dev / GitHub Advisory) and a fixed version exists:","","| Package | Current version | New version | Advisory |","| --- | --- | --- | --- |",...i,"",...h.map(a=>`Updated to match ${a.companionOf} (no advisory of its own): \`${a.package}\` \`${a.from}\` → \`${a.to}\`.`),...h.length?[""]:[],"### Important: the lockfile is not updated","",c?`Watchbell only changes \`package.json\`; it can't regenerate the lockfile on the server. Vercel installs the new version at build time, so production is safe after the merge. Afterwards ${f} on the main branch and commit the lockfile to bring it up to date.`:`Watchbell only changes \`package.json\`; it can't regenerate the lockfile on the server. Before merging, check out this branch, ${f}, then commit the changed lockfile. Then make sure the build and tests still pass.`,"","Vulnerable packages that are only installed through other packages (transitive) are not changed here; check with `npm audit` after installing.","","_Nothing is pushed to the main branch: all changes are on this PR branch._"].join("\n")},"f",0,function(a,b=null){let c=p(a),d=b?` in ${b}`:"",e=1===c.length?`Watchbell: update ${c[0].package} to ${c[0].fixed}${d} (security fix)`:`Watchbell: update ${c.length} vulnerable packages${d} (${c.slice(0,2).map(a=>a.package).join(", ")}${c.length>2?", …":""})`;return e.length>200?`${e.slice(0,199)}…`:e}],117859);var r=a.i(760417);async function s(a,b,c,d,e,f=!1){let g,h=e.timeoutMs??8e3;try{g=await (e.fetch??fetch)(`https://api.github.com${b}`,{method:a,headers:{Authorization:`Bearer ${c}`,Accept:f?"application/vnd.github.raw+json":"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell",...void 0!==d?{"Content-Type":"application/json"}:{}},body:void 0!==d?JSON.stringify(d):void 0,signal:AbortSignal.timeout(h),cache:"no-store",redirect:"error"})}catch(a){return{ok:!1,kind:"transient",error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?`GitHub didn't answer within ${Math.round(h/1e3)} seconds.`:"Couldn't reach GitHub."}}let i=await g.text().catch(()=>"");if(f&&g.ok)return{ok:!0,status:g.status,data:i};let j=null;try{j=i?JSON.parse(i):null}catch{j=null}if(g.ok)return{ok:!0,status:g.status,data:j};let k=g.status;return 401===k?{ok:!1,kind:"auth",status:k,error:"GitHub rejected the PR-write token (401). It may have expired or been revoked."}:429===k||403===k&&"0"===g.headers.get("x-ratelimit-remaining")?{ok:!1,kind:"transient",status:k,error:"GitHub's rate limit is used up for now. Try again later."}:403===k?{ok:!1,kind:"scope",status:k,error:"The GitHub PR-write token can't do this (403). It needs Contents and Pull requests: Read and write on this repository."}:404===k?{ok:!1,kind:"missing",status:k,error:"The PR-write token doesn't see this repository (404). Give it access to the repository."}:409===k||422===k?{ok:!1,kind:"format",status:k,error:`GitHub refused the change (${k}).`}:{ok:!1,kind:"transient",status:k,error:`GitHub returned an error (${k}).`}}let t=a=>({ok:!1,kind:"format",error:`GitHub answered ${a} in a format the console doesn't recognise.`}),u={ok:!1,kind:"format",error:"That isn't a repository or branch the console may write."};async function v(a,e,f={}){if(!(0,r.M)(e))return u;let g=await s("GET",`/repos/${(0,r.f)(e)}`,a,void 0,f);if(!g.ok)return g;let h=b.z.object({default_branch:c.z.string(),permissions:b.z.object({push:d.z.boolean()}).partial().optional()}).safeParse(g.data);return h.success&&(0,r.c)(h.data.default_branch)?{ok:!0,data:{defaultBranch:h.data.default_branch,canPush:h.data.permissions?.push??null}}:t("the repository")}async function w(a,d,e,f={}){if(!(0,r.M)(d)||!(0,r.c)(e))return u;let g=await s("GET",`/repos/${(0,r.f)(d)}/git/ref/heads/${e.split("/").map(encodeURIComponent).join("/")}`,a,void 0,f);if(!g.ok)return"missing"===g.kind?{ok:!0,data:null}:g;let h=b.z.object({object:b.z.object({sha:c.z.string().regex(/^[0-9a-f]{40}$/)})}).safeParse(g.data);return h.success?{ok:!0,data:h.data.object.sha}:t("the branch")}let x=/^(?:[A-Za-z0-9._-]{1,100}\/){0,6}package\.json$/,y=a=>x.test(a)&&!a.split("/").some(a=>"."===a||".."===a),z=(a,b)=>`/repos/${(0,r.f)(a)}/contents/${b.split("/").map(encodeURIComponent).join("/")}`;async function A(a,d,f,g={},h="package.json"){if(!(0,r.M)(d)||!(0,r.c)(f)||!y(h))return u;let i=await s("GET",`${z(d,h)}?ref=${encodeURIComponent(f)}`,a,void 0,g);if(!i.ok)return"missing"===i.kind?{ok:!0,data:null}:i;let j=b.z.object({sha:c.z.string(),encoding:e.z.literal("base64"),content:c.z.string()}).safeParse(i.data);return j.success?{ok:!0,data:{sha:j.data.sha,text:Buffer.from(j.data.content.replace(/\s/g,""),"base64").toString("utf8")}}:t("package.json")}let B=/^(?:[A-Za-z0-9._-]{1,100}\/){0,6}(?:package-lock|npm-shrinkwrap)\.json$/,C=a=>B.test(a)&&!a.split("/").some(a=>"."===a||".."===a);async function D(a,b,c,d,e={}){if(!(0,r.M)(b)||!(0,r.c)(c)||!C(d))return u;let f=await s("GET",`${z(b,d)}?ref=${encodeURIComponent(c)}`,a,void 0,{timeoutMs:2e4,...e},!0);return f.ok?"string"==typeof f.data?{ok:!0,data:f.data}:t("the lockfile"):"missing"===f.kind?{ok:!0,data:null}:f}async function E(a,b,c,d,e,f={}){if(!(0,r.M)(b)||!o(c,e)||!/^[0-9a-f]{40}$/.test(d))return u;let g=await s("POST",`/repos/${(0,r.f)(b)}/git/refs`,a,{ref:`refs/heads/${c}`,sha:d},f);return g.ok?{ok:!0,data:!0}:g}async function F(a,b,c,d,e,f,g,h={},i="package.json"){if(!(0,r.M)(b)||!o(c,d)||!y(i))return u;let j=await s("PUT",z(b,i),a,{message:g,content:Buffer.from(e,"utf8").toString("base64"),sha:f,branch:c},h);return j.ok?{ok:!0,data:!0}:j}let G=b.z.object({number:f.z.number(),html_url:c.z.string().startsWith("https://github.com/")});async function H(a,b,c,d,e,f={}){if(!(0,r.M)(b)||!o(d,e))return u;let h=new URLSearchParams({state:"open",head:`${c}:${d}`,per_page:"1"}),i=await s("GET",`/repos/${(0,r.f)(b)}/pulls?${h}`,a,void 0,f);if(!i.ok)return i;let j=g.z.array(G).safeParse(i.data);if(!j.success)return t("the pull requests");let k=j.data[0];return{ok:!0,data:k?{number:k.number,url:k.html_url}:null}}async function I(a,b,c,d,e,f,g={}){if(!(0,r.M)(b)||!o(c,d)||!(0,r.c)(d))return u;let h=await s("POST",`/repos/${(0,r.f)(b)}/pulls`,a,{title:e,head:c,base:d,body:f,maintainer_can_modify:!0},g);if(!h.ok)return h;let i=G.safeParse(h.data);return i.success?{ok:!0,data:{number:i.data.number,url:i.data.html_url}}:t("the new pull request")}let J=g.z.array(b.z.object({number:f.z.number(),title:c.z.string(),head:b.z.object({ref:c.z.string(),sha:c.z.string(),repo:b.z.object({full_name:c.z.string()}).nullable()}),base:b.z.object({ref:c.z.string()})}));async function K(a,b,c={}){if(!(0,r.M)(b))return u;let d=await s("GET",`/repos/${(0,r.f)(b)}/pulls?state=open&per_page=100`,a,void 0,c);if(!d.ok)return d;let e=J.safeParse(d.data);return e.success?{ok:!0,data:e.data.filter(a=>/^watchpost\/deps-[0-9a-f]{8}$/.test(a.head.ref)&&a.head.repo?.full_name===b).map(a=>({number:a.number,branch:a.head.ref,title:a.title,headSha:a.head.sha,base:a.base.ref}))}:t("the pull requests")}async function L(a,e,f,g={}){if(!(0,r.M)(e)||!Number.isInteger(f)||f<=0)return u;let i=await s("GET",`/repos/${(0,r.f)(e)}/pulls/${f}`,a,void 0,g);if(!i.ok)return i;let j=b.z.object({state:h.z.enum(["open","closed"]),merged:d.z.boolean().optional(),mergeable:d.z.boolean().nullable().optional(),head:b.z.object({ref:c.z.string(),sha:c.z.string().regex(/^[0-9a-f]{40}$/)}),base:b.z.object({ref:c.z.string()})}).safeParse(i.data);return j.success?{ok:!0,data:{state:j.data.state,merged:!0===j.data.merged,mergeable:j.data.mergeable??null,headSha:j.data.head.sha,branch:j.data.head.ref,base:j.data.base.ref}}:t("the pull request")}async function M(a,d,e,h={}){if(!(0,r.M)(d)||!/^[0-9a-f]{40}$/.test(e))return u;let[i,j]=await Promise.all([s("GET",`/repos/${(0,r.f)(d)}/commits/${e}/check-runs?per_page=100`,a,void 0,h),s("GET",`/repos/${(0,r.f)(d)}/commits/${e}/status`,a,void 0,h)]),k=a=>!a.ok&&("scope"===a.kind||"missing"===a.kind);if(!i.ok&&!k(i))return i;if(!j.ok&&!k(j))return j;let l=i.ok?b.z.object({check_runs:g.z.array(b.z.object({status:c.z.string(),conclusion:c.z.string().nullable()}))}).safeParse(i.data):null,m=j.ok?b.z.object({state:c.z.string(),total_count:f.z.number()}).safeParse(j.data):null;return{ok:!0,data:{checkRuns:l?.success?l.data.check_runs.map(a=>({status:a.status,conclusion:a.conclusion})):null,combined:m?.success?{state:m.data.state,total:m.data.total_count}:null}}}async function N(a,e,f,g,h,i,j,k={}){if(!(0,r.M)(e)||!o(g,h)||!/^[0-9a-f]{40}$/.test(i)||!Number.isInteger(f)||f<=0)return u;let l=await s("PUT",`/repos/${(0,r.f)(e)}/pulls/${f}/merge`,a,{merge_method:"squash",sha:i,commit_title:`Watchbell: ${j.replace(/^Watch(?:bell|post):\s*/,"")}`.slice(0,250)},k);if(!l.ok)return 405===l.status?{ok:!1,kind:"format",status:405,error:"GitHub says the PR can't be merged now (405)."}:409===l.status?{ok:!1,kind:"format",status:409,error:"The PR's head moved since the checks were read (409)."}:l;let m=b.z.object({merged:d.z.boolean(),sha:c.z.string()}).safeParse(l.data);return m.success&&m.data.merged?{ok:!0,data:{sha:m.data.sha}}:t("the merge")}async function O(a,d,e,f={}){if(!(0,r.M)(d)||!Number.isInteger(e)||e<=0)return u;let h=await s("GET",`/repos/${(0,r.f)(d)}/pulls/${e}/files?per_page=100`,a,void 0,f);if(!h.ok)return h;let i=g.z.array(b.z.object({filename:c.z.string(),previous_filename:c.z.string().optional()})).safeParse(h.data);return i.success?{ok:!0,data:i.data.map(a=>({filename:a.filename,previous:a.previous_filename??null}))}:t("the PR's files")}let P=b.z.object({name:c.z.string().optional(),email:c.z.string().optional()}).nullable().optional();async function Q(a,d,e,f={}){if(!(0,r.M)(d)||!Number.isInteger(e)||e<=0)return u;let h=await s("GET",`/repos/${(0,r.f)(d)}/pulls/${e}/commits?per_page=100`,a,void 0,f);if(!h.ok)return h;let i=g.z.array(b.z.object({sha:c.z.string().regex(/^[0-9a-f]{40}$/),author:b.z.object({login:c.z.string()}).nullable().optional(),commit:b.z.object({message:c.z.string(),author:P})})).safeParse(h.data);return i.success?{ok:!0,data:i.data.map(a=>({sha:a.sha,login:a.author?.login??null,name:a.commit.author?.name??"",email:a.commit.author?.email??"",message:a.commit.message}))}:t("the PR's commits")}async function R(a,d,e,f={}){if(!(0,r.M)(d)||!/^[0-9a-f]{40}$/.test(e))return u;let h=await s("GET",`/repos/${(0,r.f)(d)}/commits/${e}`,a,void 0,f);if(!h.ok)return h;let i=b.z.object({files:g.z.array(b.z.object({filename:c.z.string(),previous_filename:c.z.string().optional()}))}).safeParse(h.data);return i.success?{ok:!0,data:i.data.files.flatMap(a=>[a.filename,...a.previous_filename?[a.previous_filename]:[]])}:t("the commit")}async function S(a,d={}){let e=await s("GET","/user",a,void 0,d);if(!e.ok)return e;let f=b.z.object({login:c.z.string().min(1)}).safeParse(e.data);return f.success?{ok:!0,data:f.data.login}:t("the token's user")}async function T(a,b,c,d={}){if(!/^[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}$/.test(b))return u;let e=await s("POST",`/repos/${b}/dispatches`,a,{event_type:"watchpost-lockfile",client_payload:c},d);return e.ok?{ok:!0,data:!0}:e}a.s(["M",0,w,"s",0,M,"h",0,R,"k",0,E,"y",0,I,"B",0,T,"$",0,C,"l",0,D,"E",0,A,"C",0,N,"x",0,H,"e",0,K,"P",0,Q,"O",0,O,"b",0,L,"D",0,F,"H",0,v,"z",0,S],812092)}]})();
46
+ `;a.s(["h",0,"deps.lockfileActions","w",0,6e5,"G",0,f,"g",0,e,"C",0,function(a){let b=a.lockfilePath??"package-lock.json";return!e(a.repo)||!c.test(a.branch)||!d.test(b)||b.includes("..")||!Number.isInteger(a.prNumber)||a.prNumber<1?null:{repo:a.repo,branch:a.branch,lockfile:b,pr:a.prNumber}},"i",0,function(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a.repo:null;return{repo:e(b)?b:null}}])},812092,117859,a=>{var b=a.i(26972),c=a.i(427221),d=a.i(83931),e=a.i(899370),f=a.i(811365),g=a.i(689963),h=a.i(149310),i=a.i(84877),j=a.i(679662),k=a.i(462820);let l=["dependencies","devDependencies","optionalDependencies"],m="watchpost/deps-",n=a=>"object"==typeof a&&null!==a&&!Array.isArray(a),o=(a,b)=>a.startsWith(m)&&/^watchpost\/deps-[0-9a-f]{8}$/.test(a)&&a!==b,p=a=>{let b=a.filter(a=>!a.companionOf);return b.length?b:a},q={npm:"npm install",pnpm:"pnpm install",yarn:"yarn install",bun:"bun install","package-json":"npm install"};a.s(["M",0,function(a,b){let c;try{c=JSON.parse(a)}catch{return null}if(!n(c))return null;for(let a of b){let b=c[a.group];if(!n(b)||b[a.package]!==a.from)return null;b[a.package]=a.to}let d=/^[{[]\r?\n([ \t]+)\S/.exec(a),e=d?d[1]:" ",f=a.includes("\r\n")?"\r\n":"\n",g=JSON.stringify(c,null,e);return"\r\n"===f&&(g=g.replace(/\n/g,"\r\n")),/\r?\n$/.test(a)?g+f:g},"U",0,function(a,b=null){let c=a.map(a=>`${a.package}@${a.to}`).sort().join(",");return`${m}${function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b.toString(16).padStart(8,"0")}(b?`${b}|${c}`:c)}`},"G",0,function(a){let b=p(a);return 1===b.length?`chore(deps): update ${b[0].package} to ${b[0].fixed} (security fix)`:`chore(deps): update ${b.length} packages for security fixes`},"c",0,o,"k",0,function(a,b){let c;try{c=JSON.parse(a)}catch{return null}if(!n(c))return null;let d=[];for(let a of b)if((0,j.L)(a.package)&&(0,j.C)(a.to))for(let b of l){let e=c[b];if(!n(e)||"string"!=typeof e[a.package])continue;let f=e[a.package],g=(0,j.Y)(f),h=function(a,b){let c=/^\s*(\^|~|>=|=)?\s*v?\d+(?:\.(?:\d+|x|\*))?(?:\.(?:\d+|x|\*))?(?:-[0-9A-Za-z.-]+)?\s*$/.exec(a);return c&&(0,j.C)(b)?`${c[1]??""}${b}`:null}(f,a.to);!g||!h||(0,i.f)(g,a.to)>=0||d.push({package:a.package,group:b,from:f,to:h,fixed:a.to,vulnIds:a.vulnIds,cves:a.cves,...a.companionOf?{companionOf:a.companionOf}:{}})}return d},"y",0,function(a,b,c=!1,d=null){let e=q[b??"npm"]??"npm install",f=`run \`${e}\`${d?` in \`${d}\``:""}`,g=a.filter(a=>!a.companionOf),h=a.filter(a=>a.companionOf),i=g.map(a=>{let b=[...a.cves,...a.vulnIds.filter(b=>!a.cves.includes(b))].slice(0,4).map(a=>`[${a}](https://osv.dev/vulnerability/${encodeURIComponent(a)})`).join(", ");return`| \`${a.package}\` | \`${a.from}\` | \`${a.to}\` | ${b||"-"} |`});return[c?"This PR was opened **automatically** by Watchbell (Automatic security fixes). Watchbell merges it itself when CI is green, the Vercel preview is READY and passes the smoke test, and auto-rollback is on; if anything fails, the PR stays open for you to check.":k.K.prApproved,"","These packages have known vulnerabilities (source: OSV.dev / GitHub Advisory) and a fixed version exists:","","| Package | Current version | New version | Advisory |","| --- | --- | --- | --- |",...i,"",...h.map(a=>`Updated to match ${a.companionOf} (no advisory of its own): \`${a.package}\` \`${a.from}\` → \`${a.to}\`.`),...h.length?[""]:[],"### Important: the lockfile is not updated","",c?`Watchbell only changes \`package.json\`; it can't regenerate the lockfile on the server. Vercel installs the new version at build time, so production is safe after the merge. Afterwards ${f} on the main branch and commit the lockfile to bring it up to date.`:`Watchbell only changes \`package.json\`; it can't regenerate the lockfile on the server. Before merging, check out this branch, ${f}, then commit the changed lockfile. Then make sure the build and tests still pass.`,"","Vulnerable packages that are only installed through other packages (transitive) are not changed here; check with `npm audit` after installing.","","_Nothing is pushed to the main branch: all changes are on this PR branch._"].join("\n")},"f",0,function(a,b=null){let c=p(a),d=b?` in ${b}`:"",e=1===c.length?`Watchbell: update ${c[0].package} to ${c[0].fixed}${d} (security fix)`:`Watchbell: update ${c.length} vulnerable packages${d} (${c.slice(0,2).map(a=>a.package).join(", ")}${c.length>2?", …":""})`;return e.length>200?`${e.slice(0,199)}…`:e}],117859);var r=a.i(760417);async function s(a,b,c,d,e,f=!1){let g,h=e.timeoutMs??8e3;try{g=await (e.fetch??fetch)(`https://api.github.com${b}`,{method:a,headers:{Authorization:`Bearer ${c}`,Accept:f?"application/vnd.github.raw+json":"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell",...void 0!==d?{"Content-Type":"application/json"}:{}},body:void 0!==d?JSON.stringify(d):void 0,signal:AbortSignal.timeout(h),cache:"no-store",redirect:"error"})}catch(a){return{ok:!1,kind:"transient",error:a instanceof DOMException&&("TimeoutError"===a.name||"AbortError"===a.name)?`GitHub didn't answer within ${Math.round(h/1e3)} seconds.`:"Couldn't reach GitHub."}}let i=await g.text().catch(()=>"");if(f&&g.ok)return{ok:!0,status:g.status,data:i};let j=null;try{j=i?JSON.parse(i):null}catch{j=null}if(g.ok)return{ok:!0,status:g.status,data:j};let k=g.status;return 401===k?{ok:!1,kind:"auth",status:k,error:"GitHub rejected the PR-write token (401). It may have expired or been revoked."}:429===k||403===k&&"0"===g.headers.get("x-ratelimit-remaining")?{ok:!1,kind:"transient",status:k,error:"GitHub's rate limit is used up for now. Try again later."}:403===k?{ok:!1,kind:"scope",status:k,error:"The GitHub PR-write token can't do this (403). It needs Contents and Pull requests: Read and write on this repository."}:404===k?{ok:!1,kind:"missing",status:k,error:"The PR-write token doesn't see this repository (404). Give it access to the repository."}:409===k||422===k?{ok:!1,kind:"format",status:k,error:`GitHub refused the change (${k}).`}:{ok:!1,kind:"transient",status:k,error:`GitHub returned an error (${k}).`}}let t=a=>({ok:!1,kind:"format",error:`GitHub answered ${a} in a format the console doesn't recognise.`}),u={ok:!1,kind:"format",error:"That isn't a repository or branch the console may write."};async function v(a,e,f={}){if(!(0,r.M)(e))return u;let g=await s("GET",`/repos/${(0,r.f)(e)}`,a,void 0,f);if(!g.ok)return g;let h=b.z.object({default_branch:c.z.string(),permissions:b.z.object({push:d.z.boolean()}).partial().optional()}).safeParse(g.data);return h.success&&(0,r.c)(h.data.default_branch)?{ok:!0,data:{defaultBranch:h.data.default_branch,canPush:h.data.permissions?.push??null}}:t("the repository")}async function w(a,d,e,f={}){if(!(0,r.M)(d)||!(0,r.c)(e))return u;let g=await s("GET",`/repos/${(0,r.f)(d)}/git/ref/heads/${e.split("/").map(encodeURIComponent).join("/")}`,a,void 0,f);if(!g.ok)return"missing"===g.kind?{ok:!0,data:null}:g;let h=b.z.object({object:b.z.object({sha:c.z.string().regex(/^[0-9a-f]{40}$/)})}).safeParse(g.data);return h.success?{ok:!0,data:h.data.object.sha}:t("the branch")}let x=/^(?:[A-Za-z0-9._-]{1,100}\/){0,6}package\.json$/,y=a=>x.test(a)&&!a.split("/").some(a=>"."===a||".."===a),z=(a,b)=>`/repos/${(0,r.f)(a)}/contents/${b.split("/").map(encodeURIComponent).join("/")}`;async function A(a,d,f,g={},h="package.json"){if(!(0,r.M)(d)||!(0,r.c)(f)||!y(h))return u;let i=await s("GET",`${z(d,h)}?ref=${encodeURIComponent(f)}`,a,void 0,g);if(!i.ok)return"missing"===i.kind?{ok:!0,data:null}:i;let j=b.z.object({sha:c.z.string(),encoding:e.z.literal("base64"),content:c.z.string()}).safeParse(i.data);return j.success?{ok:!0,data:{sha:j.data.sha,text:Buffer.from(j.data.content.replace(/\s/g,""),"base64").toString("utf8")}}:t("package.json")}let B=/^(?:[A-Za-z0-9._-]{1,100}\/){0,6}(?:package-lock|npm-shrinkwrap)\.json$/,C=a=>B.test(a)&&!a.split("/").some(a=>"."===a||".."===a);async function D(a,b,c,d,e={}){if(!(0,r.M)(b)||!(0,r.c)(c)||!C(d))return u;let f=await s("GET",`${z(b,d)}?ref=${encodeURIComponent(c)}`,a,void 0,{timeoutMs:2e4,...e},!0);return f.ok?"string"==typeof f.data?{ok:!0,data:f.data}:t("the lockfile"):"missing"===f.kind?{ok:!0,data:null}:f}async function E(a,b,c,d,e,f={}){if(!(0,r.M)(b)||!o(c,e)||!/^[0-9a-f]{40}$/.test(d))return u;let g=await s("POST",`/repos/${(0,r.f)(b)}/git/refs`,a,{ref:`refs/heads/${c}`,sha:d},f);return g.ok?{ok:!0,data:!0}:g}async function F(a,b,c,d,e,f,g,h={},i="package.json"){if(!(0,r.M)(b)||!o(c,d)||!y(i))return u;let j=await s("PUT",z(b,i),a,{message:g,content:Buffer.from(e,"utf8").toString("base64"),sha:f,branch:c},h);return j.ok?{ok:!0,data:!0}:j}let G=b.z.object({number:f.z.number(),html_url:c.z.string().startsWith("https://github.com/")});async function H(a,b,c,d,e,f={}){if(!(0,r.M)(b)||!o(d,e))return u;let h=new URLSearchParams({state:"open",head:`${c}:${d}`,per_page:"1"}),i=await s("GET",`/repos/${(0,r.f)(b)}/pulls?${h}`,a,void 0,f);if(!i.ok)return i;let j=g.z.array(G).safeParse(i.data);if(!j.success)return t("the pull requests");let k=j.data[0];return{ok:!0,data:k?{number:k.number,url:k.html_url}:null}}async function I(a,b,c,d,e,f,g={},h={}){if(!(0,r.M)(b)||!o(c,d)||!(0,r.c)(d))return u;let i=await s("POST",`/repos/${(0,r.f)(b)}/pulls`,a,{title:e,head:c,base:d,body:f,maintainer_can_modify:!0,...h.draft?{draft:!0}:{}},g);if(!i.ok)return i;let j=G.safeParse(i.data);return j.success?{ok:!0,data:{number:j.data.number,url:j.data.html_url}}:t("the new pull request")}let J=g.z.array(b.z.object({number:f.z.number(),title:c.z.string(),head:b.z.object({ref:c.z.string(),sha:c.z.string(),repo:b.z.object({full_name:c.z.string()}).nullable()}),base:b.z.object({ref:c.z.string()})}));async function K(a,b,c={}){if(!(0,r.M)(b))return u;let d=await s("GET",`/repos/${(0,r.f)(b)}/pulls?state=open&per_page=100`,a,void 0,c);if(!d.ok)return d;let e=J.safeParse(d.data);return e.success?{ok:!0,data:e.data.filter(a=>/^watchpost\/deps-[0-9a-f]{8}$/.test(a.head.ref)&&a.head.repo?.full_name===b).map(a=>({number:a.number,branch:a.head.ref,title:a.title,headSha:a.head.sha,base:a.base.ref}))}:t("the pull requests")}async function L(a,e,f,g={}){if(!(0,r.M)(e)||!Number.isInteger(f)||f<=0)return u;let i=await s("GET",`/repos/${(0,r.f)(e)}/pulls/${f}`,a,void 0,g);if(!i.ok)return i;let j=b.z.object({state:h.z.enum(["open","closed"]),merged:d.z.boolean().optional(),mergeable:d.z.boolean().nullable().optional(),head:b.z.object({ref:c.z.string(),sha:c.z.string().regex(/^[0-9a-f]{40}$/)}),base:b.z.object({ref:c.z.string()})}).safeParse(i.data);return j.success?{ok:!0,data:{state:j.data.state,merged:!0===j.data.merged,mergeable:j.data.mergeable??null,headSha:j.data.head.sha,branch:j.data.head.ref,base:j.data.base.ref}}:t("the pull request")}async function M(a,d,e,h={}){if(!(0,r.M)(d)||!/^[0-9a-f]{40}$/.test(e))return u;let[i,j]=await Promise.all([s("GET",`/repos/${(0,r.f)(d)}/commits/${e}/check-runs?per_page=100`,a,void 0,h),s("GET",`/repos/${(0,r.f)(d)}/commits/${e}/status`,a,void 0,h)]),k=a=>!a.ok&&("scope"===a.kind||"missing"===a.kind);if(!i.ok&&!k(i))return i;if(!j.ok&&!k(j))return j;let l=i.ok?b.z.object({check_runs:g.z.array(b.z.object({status:c.z.string(),conclusion:c.z.string().nullable()}))}).safeParse(i.data):null,m=j.ok?b.z.object({state:c.z.string(),total_count:f.z.number()}).safeParse(j.data):null;return{ok:!0,data:{checkRuns:l?.success?l.data.check_runs.map(a=>({status:a.status,conclusion:a.conclusion})):null,combined:m?.success?{state:m.data.state,total:m.data.total_count}:null}}}async function N(a,e,f,g,h,i,j,k={}){if(!(0,r.M)(e)||!o(g,h)||!/^[0-9a-f]{40}$/.test(i)||!Number.isInteger(f)||f<=0)return u;let l=await s("PUT",`/repos/${(0,r.f)(e)}/pulls/${f}/merge`,a,{merge_method:"squash",sha:i,commit_title:`Watchbell: ${j.replace(/^Watch(?:bell|post):\s*/,"")}`.slice(0,250)},k);if(!l.ok)return 405===l.status?{ok:!1,kind:"format",status:405,error:"GitHub says the PR can't be merged now (405)."}:409===l.status?{ok:!1,kind:"format",status:409,error:"The PR's head moved since the checks were read (409)."}:l;let m=b.z.object({merged:d.z.boolean(),sha:c.z.string()}).safeParse(l.data);return m.success&&m.data.merged?{ok:!0,data:{sha:m.data.sha}}:t("the merge")}async function O(a,d,e,f={}){if(!(0,r.M)(d)||!Number.isInteger(e)||e<=0)return u;let h=await s("GET",`/repos/${(0,r.f)(d)}/pulls/${e}/files?per_page=100`,a,void 0,f);if(!h.ok)return h;let i=g.z.array(b.z.object({filename:c.z.string(),previous_filename:c.z.string().optional()})).safeParse(h.data);return i.success?{ok:!0,data:i.data.map(a=>({filename:a.filename,previous:a.previous_filename??null}))}:t("the PR's files")}let P=b.z.object({name:c.z.string().optional(),email:c.z.string().optional()}).nullable().optional();async function Q(a,d,e,f={}){if(!(0,r.M)(d)||!Number.isInteger(e)||e<=0)return u;let h=await s("GET",`/repos/${(0,r.f)(d)}/pulls/${e}/commits?per_page=100`,a,void 0,f);if(!h.ok)return h;let i=g.z.array(b.z.object({sha:c.z.string().regex(/^[0-9a-f]{40}$/),author:b.z.object({login:c.z.string()}).nullable().optional(),commit:b.z.object({message:c.z.string(),author:P})})).safeParse(h.data);return i.success?{ok:!0,data:i.data.map(a=>({sha:a.sha,login:a.author?.login??null,name:a.commit.author?.name??"",email:a.commit.author?.email??"",message:a.commit.message}))}:t("the PR's commits")}async function R(a,d,e,f={}){if(!(0,r.M)(d)||!/^[0-9a-f]{40}$/.test(e))return u;let h=await s("GET",`/repos/${(0,r.f)(d)}/commits/${e}`,a,void 0,f);if(!h.ok)return h;let i=b.z.object({files:g.z.array(b.z.object({filename:c.z.string(),previous_filename:c.z.string().optional()}))}).safeParse(h.data);return i.success?{ok:!0,data:i.data.files.flatMap(a=>[a.filename,...a.previous_filename?[a.previous_filename]:[]])}:t("the commit")}async function S(a,d={}){let e=await s("GET","/user",a,void 0,d);if(!e.ok)return e;let f=b.z.object({login:c.z.string().min(1)}).safeParse(e.data);return f.success?{ok:!0,data:f.data.login}:t("the token's user")}async function T(a,b,c,d={}){if(!/^[A-Za-z0-9-]{1,39}\/[A-Za-z0-9._-]{1,100}$/.test(b))return u;let e=await s("POST",`/repos/${b}/dispatches`,a,{event_type:"watchpost-lockfile",client_payload:c},d);return e.ok?{ok:!0,data:!0}:e}a.s(["M",0,w,"s",0,M,"h",0,R,"k",0,E,"y",0,I,"B",0,T,"$",0,C,"l",0,D,"E",0,A,"C",0,N,"x",0,H,"e",0,K,"P",0,Q,"O",0,O,"b",0,L,"D",0,F,"H",0,v,"z",0,S],812092)}]})();
47
47
 
48
48
  //# sourceMappingURL=src_lib_0f_4mvf4-xxst._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[445710,634418,a=>{var b=a.i(93321),c=a.i(548734),d=a.i(837137),e=a.i(306556);let f=(a,c)=>null===c?(0,b.M)(a):(0,b.u)(a,c);async function g(a,g,h){let i=(0,e.G)(a.failStreak,g);return(await (0,c.f)().update(d.monitors).set({state:i.state,failStreak:i.failStreak,lastCheckedAt:h,lastStatus:g.statusCode,lastLatencyMs:g.latencyMs,lastError:g.error,...i.state!==a.state?{stateSince:h}:{},updatedAt:h}).where((0,b.b)((0,b.u)(d.monitors.id,a.id),null===a.lastCheckedAt?(0,b.M)(d.monitors.lastCheckedAt):(0,b.u)(d.monitors.lastCheckedAt,a.lastCheckedAt),(0,b.u)(d.monitors.state,a.state),(0,b.u)(d.monitors.failStreak,a.failStreak),(0,b.u)(d.monitors.url,a.url),(0,b.u)(d.monitors.expectedStatus,a.expectedStatus),f(d.monitors.bodyContains,a.bodyContains),f(d.monitors.jsonPath,a.jsonPath),f(d.monitors.jsonEquals,a.jsonEquals))).returning({id:d.monitors.id})).length>0}a.s(["T",0,f,"j",0,g],445710);let h={heartbeats:60,checks:60,vercel:60,supabase:300,supabaseUsage:3600,neon:300,firebase:300,firebaseUsage:3600,extraDbs:3600,cloudflare:3600,domains:21600,tls:3600,rdap:3600,eol:86400,status:300,logs:300,pageviews:1800,security:21600,alerts:60,digest:300},i={supabase:0,digest:0,neon:60,firebase:120,status:180,logs:240,pageviews:1620,supabaseUsage:660,extraDbs:960,firebaseUsage:1320,cloudflare:1980,tls:2460,rdap:3120,domains:5280,eol:13560,security:16560};function j(a,b){let c=1e3*h[a],d=(i[a]??0)*1e3;return Math.floor((b.getTime()+5e3-d)/c)*c+d}let k={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,security:11e3},l={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,status:null,alerts:null,digest:null,security:null},m={security:["hosting","devops"]},n=["supabase"];function o(a,b){return a.filter(a=>{let c=m[a];if(c)return c.some(a=>!b.has(a));let d=l[a];return null===d||!b.has(d)||n.includes(a)})}a.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"t",0,h,"P",0,function(a,b,c){let d=Math.min(a,b-c);return d<1e3?null:d},"S",0,function(a,b,c,d=new Set){let e=0;return o(Object.keys(h),d).filter(d=>{let f=a[d]?new Date(a[d]).getTime():null;if(h[d]<=60)return null===f||!!c||b.getTime()-f>=1e3*h[d]-1e4;let g=j(d,b);return(null===f||!(f>=g-5e3))&&(!(null===f||b.getTime()+5e3-g>=6e4)||!(e>=2)&&(e++,!0))})},"$",0,(a,b)=>{let c=l[a];return null!==c&&b.has(c)&&n.includes(a)},"B",0,function(a,b,c){return!c||!a||b.getTime()-a.getTime()>=5e4},"G",0,j,"z",0,function(a,b,c){return b-c>=(k[a]??0)},"_",0,function(a,b,c=new Set){if(!b||a.includes("security")||!o(["security"],c).length)return{due:[...a],early:!1};let d=Object.keys(h),e=a.findIndex(a=>d.indexOf(a)>d.indexOf("security")),f=[...a];return f.splice(e<0?f.length:e,0,"security"),{due:f,early:!0}}],634418)},895176,383487,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(903816),h=a.i(646324),i=a.i(33135),j=a.i(19809),k=a.i(445710),l=a.i(306556),m=a.i(634418),n=a.i(601219),o=a.i(436357),p=a.i(757902),q=a.i(519051),r=a.i(371289),s=a.i(201516),t=a.i(469762),u=a.i(968715),v=a.i(910697),w=a.i(767163);async function x(a,c=()=>!1,d=!1,g){let h=(await (0,e.f)().select({m:f.monitors}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)((0,b.u)(f.monitors.kind,"heartbeat"),(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt),...g?[(0,b.u)(f.monitors.id,g)]:[]))).filter(({m:b})=>void 0!==g||(0,m.B)(b.lastCheckedAt,a,d)),i=[],j=[];for(let{m:d}of h){let h=d.periodS??3600,k=d.graceS??600,n=(0,w.C)({lastPingAt:d.lastPingAt,lastPingKind:d.lastPingKind,periodS:h,graceS:k,createdAt:d.createdAt},a);if("unknown"===n.state)continue;let o=n.state!==d.state;(await (0,e.f)().update(f.monitors).set({state:n.state,failStreak:n.failStreak,lastCheckedAt:a,lastError:"ok"===n.state?null:n.text,...o?{stateSince:a}:{},updatedAt:a}).where((0,b.b)((0,b.u)(f.monitors.id,d.id),(0,b.u)(f.monitors.state,d.state),(0,b.u)(f.monitors.ownerPaused,!1),(0,b.u)(f.monitors.paused,!1),null===d.lastPingAt?(0,b.M)(f.monitors.lastPingAt):(0,b.u)(f.monitors.lastPingAt,d.lastPingAt),null===d.periodS?(0,b.M)(f.monitors.periodS):(0,b.u)(f.monitors.periodS,d.periodS),null===d.graceS?(0,b.M)(f.monitors.graceS):(0,b.u)(f.monitors.graceS,d.graceS))).returning({id:f.monitors.id})).length&&((void 0===g||(0,m.B)(d.lastCheckedAt,a,!0))&&j.push({monitorId:d.id,at:a,ok:"err"!==n.state,statusCode:null,latencyMs:null,error:"ok"===n.state?null:n.text,inMaintenance:c(d.id,d.resourceId)}),i.push((0,l.F)({resourceId:d.resourceId,path:d.name??"heartbeat",prev:d.state,next:n.state,code:null,error:n.text,at:a,heartbeat:!0})))}return j.length&&await (0,e.f)().insert(f.checks).values(j),await (0,n.f)(i),j.length}a.i(312573),a.i(323878),a.s(["f",0,x],383487);var y=a.i(714530),z=a.i(513701);function A(a){let b="heartbeat"===a.kind;return{id:a.id,appId:a.resourceId,url:a.url,path:b?a.name??"heartbeat":(0,h.K)(a.url),state:a.state,lastStatus:a.lastStatus,lastLatencyMs:a.lastLatencyMs,failStreak:a.failStreak,paused:a.paused,ownerPaused:a.ownerPaused,lastCheckedAt:a.lastCheckedAt,expectedStatus:a.expectedStatus,timeoutMs:a.timeoutMs,intervalS:a.intervalS,bodyContains:a.bodyContains,jsonPath:a.jsonPath,jsonEquals:a.jsonEquals,lastError:a.lastError,kind:b?"heartbeat":"http",name:a.name??null,periodS:a.periodS??null,graceS:a.graceS??null,lastPingAt:a.lastPingAt??null,stateSince:a.stateSince??null}}async function B(a){let d=await (0,e.f)().select({m:f.monitors,appName:f.resources.name,goneAt:f.resources.goneAt,appMeta:f.resources.meta}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0))).orderBy(f.resources.name,(0,c.A)(f.monitors.kind),f.monitors.url).limit(v.O.monitors),g=await (0,z._)(d.map(a=>a.m.id),a),h=await C(d.map(a=>({id:a.m.id,kind:a.m.kind,url:a.m.url,appId:a.m.resourceId,appName:a.appName,appMeta:a.appMeta,lastError:a.m.lastError})));return d.map(({m:b,appName:c,goneAt:d})=>({...A(b),appName:c,appGone:null!==d,days:g.get(b.id),uptime30:(0,u.Y)((0,u.w)(g.get(b.id),a,u.I)),move:h.get(b.id)??null}))}async function C(a){if(!a.some(a=>null!==(0,o.Y)(a.appMeta)))return new Map;let c=await (0,e.f)().select({id:f.resources.id,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).limit(500);return(0,o.P)(a,c)}let D={ok:!1,error:"That monitor no longer exists."},E={ok:!1,error:"This app already has a monitor for that address."},F={ok:!1,error:"That app isn't watched. Tick it in Connections → Sync first."},G="This app no longer exists at Vercel.",H={ok:!1,error:G},I="The app no longer exists at Vercel",J={ok:!0,message:"Already running."},K={ok:!1,error:"Someone else changed this monitor just now. Reopen it and try again."},L={ok:!1,error:"This app already has a heartbeat with that name."},M={ok:!1,error:"That monitor isn't a heartbeat."},N={ok:!1,error:"That monitor is a heartbeat. Edit it from its own menu."},O={ok:!1,error:"The console doesn't check a heartbeat. It waits for your job's ping."},P=a=>"heartbeat"===a.kind?a.name??"heartbeat":(0,t.F)(a.url);async function Q(){let a=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.kind,"app"),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).orderBy(f.resources.name).limit(v.O.apps);if(!a.length)return[];let c=await (0,e.f)().select({appId:f.monitors.resourceId,url:f.monitors.url}).from(f.monitors).where((0,b.b)((0,b.y)(f.monitors.resourceId,a.map(a=>a.id)),(0,b.u)(f.monitors.kind,"http"))).orderBy(f.monitors.createdAt);return a.map(a=>({...a,domain:(0,t.m)(a.name,c.filter(b=>b.appId===a.id).map(a=>a.url))}))}async function R(a){return(0,e.f)().transaction(async b=>(await b.execute(d.B`select pg_advisory_xact_lock(hashtext('ops.monitors'))`),a(b)))}async function S(a=(0,e.f)()){let[c]=await a.select({n:d.B`count(*)::int`}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)((0,b.u)(f.monitors.kind,"http"),(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)));return c?.n??0}async function T(a=(0,e.f)()){let[c]=await a.select({n:d.B`count(*)::int`}).from(f.monitors).where((0,b.u)(f.monitors.kind,"heartbeat"));return c?.n??0}async function U(a){let[c]=await (0,e.f)().select({m:f.monitors,watched:f.resources.monitored,goneAt:f.resources.goneAt}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.u)(f.monitors.id,a)).limit(1);return c??null}function V(a){let b=a?.code??a?.cause?.code;return"string"==typeof b?b:void 0}async function W(a,c){return R(async d=>{let[e]=await d.select({id:f.resources.id,goneAt:f.resources.goneAt}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.id,a),(0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0))).limit(1);if(!e)return F;if(e.goneAt)return H;let g=(0,s.g)(await S(d));return g?{ok:!1,error:g}:(await d.insert(f.monitors).values({resourceId:a,kind:"http",url:c.url,expectedStatus:c.expectedStatus,timeoutMs:c.timeoutMs,bodyContains:c.bodyContains,jsonPath:c.jsonPath,jsonEquals:c.jsonEquals}).onConflictDoNothing().returning({id:f.monitors.id})).length?{ok:!0,message:`Monitoring ${(0,t.F)(c.url)}. First result within a minute.`,audit:{message:`Monitor added: ${(0,t.F)(c.url)}`,resourceId:a}}:E})}async function X(a,c){let{token:d,hash:e}=(0,p.P)();return R(async g=>{let[h]=await g.select({id:f.resources.id,goneAt:f.resources.goneAt}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.id,a),(0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0))).limit(1);if(!h)return F;if(h.goneAt)return H;let i=(0,s.f)(await T(g));return i?{ok:!1,error:i}:(await g.insert(f.monitors).values({resourceId:a,kind:"heartbeat",url:(0,p.B)(c.name),name:c.name,tokenHash:e,periodS:c.periodS,graceS:c.graceS,state:"unknown"}).onConflictDoNothing().returning({id:f.monitors.id})).length?{ok:!0,message:`Added ${c.name}. It waits for the first ping.`,token:d,audit:{message:`Heartbeat added: ${c.name}`,resourceId:a}}:L})}async function Y(a,c){let d,g=await U(a);if(!g)return D;if("heartbeat"!==g.m.kind)return M;if(g.goneAt)return H;if(!g.watched)return F;let h=(0,p.B)(c.name),[i]=await (0,e.f)().select({id:f.monitors.id}).from(f.monitors).where((0,b.b)((0,b.u)(f.monitors.resourceId,g.m.resourceId),(0,b.u)(f.monitors.url,h),(0,b.c)(f.monitors.id,a))).limit(1);if(i)return L;try{d=await (0,e.f)().update(f.monitors).set({name:c.name,url:h,periodS:c.periodS,graceS:c.graceS,updatedAt:new Date}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.kind,"heartbeat"))).returning({id:f.monitors.id})}catch(a){if("23505"===V(a))return L;throw a}if(!d.length)return D;let j=g.m.name!==c.name;return{ok:!0,message:`Saved ${c.name}.`,audit:{message:`Heartbeat edited: ${c.name}`,...j&&g.m.name?{detail:`was ${g.m.name}`}:{},resourceId:g.m.resourceId}}}async function Z(a){let c=await U(a);if(!c)return D;if("heartbeat"!==c.m.kind)return M;let{token:d,hash:g}=(0,p.P)();if(!(await (0,e.f)().update(f.monitors).set({tokenHash:g,updatedAt:new Date}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.kind,"heartbeat"))).returning({id:f.monitors.id})).length)return D;let h=P(c.m);return{ok:!0,message:`New ping URL for ${h}. The old one no longer works.`,token:d,audit:{message:`Ping URL replaced: ${h}`,resourceId:c.m.resourceId}}}async function $(a,c,d=new Date){let g=await U(a);if(!g)return D;if("heartbeat"!==g.m.kind)return M;if(!(await (0,e.f)().update(f.monitors).set({lastPingAt:d,lastPingKind:c,updatedAt:d}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.kind,"heartbeat"))).returning({id:f.monitors.id})).length)return D;let h=P(g.m),i=`Test ping (${c}) recorded for ${h}`,j=!1;try{let b=await (0,y.w)();await x(new Date,(a,c)=>null!==(0,q.x)(b,{monitorId:a,appId:c},new Date),!0,a),j=!0}catch{console.warn("test ping: recompute failed")}return{ok:!0,message:j?`${i}.`:`${i}. The state updates within a minute.`,audit:{message:i,detail:"Test",resourceId:g.m.resourceId}}}async function _(a,c){let d,g=await U(a);if(!g)return D;if("heartbeat"===g.m.kind)return N;if(g.goneAt)return H;if(!g.watched)return F;let[h]=await (0,e.f)().select({id:f.monitors.id}).from(f.monitors).where((0,b.b)((0,b.u)(f.monitors.resourceId,g.m.resourceId),(0,b.u)(f.monitors.url,c.url),(0,b.c)(f.monitors.id,a))).limit(1);if(h)return E;let i=new Date,j={url:g.m.url,expectedStatus:g.m.expectedStatus,timeoutMs:g.m.timeoutMs,bodyContains:g.m.bodyContains,jsonPath:g.m.jsonPath,jsonEquals:g.m.jsonEquals},l=(0,s.V)(j,c)?{state:"unknown",failStreak:0,stateSince:i,lastCheckedAt:null,lastStatus:null,lastLatencyMs:null,lastError:null}:{};try{d=await (0,e.f)().update(f.monitors).set({url:c.url,expectedStatus:c.expectedStatus,timeoutMs:c.timeoutMs,bodyContains:c.bodyContains,jsonPath:c.jsonPath,jsonEquals:c.jsonEquals,...l,updatedAt:i}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.url,g.m.url),(0,b.u)(f.monitors.expectedStatus,g.m.expectedStatus),(0,k.T)(f.monitors.bodyContains,g.m.bodyContains),(0,k.T)(f.monitors.jsonPath,g.m.jsonPath),(0,k.T)(f.monitors.jsonEquals,g.m.jsonEquals))).returning({id:f.monitors.id})}catch(a){if("23505"===V(a))return E;throw a}if(!d.length)return await U(a)?K:D;let m=j.url!==c.url;return{ok:!0,message:g.m.ownerPaused?`Saved ${(0,t.F)(c.url)}. It's checked again once you resume it.`:`Checking ${(0,t.F)(c.url)} from the next run.`,audit:{message:`Monitor edited: ${(0,t.F)(c.url)}`,...m?{detail:`was ${(0,t.F)(j.url)}`}:{},resourceId:g.m.resourceId}}}async function aa(a,c){let d=await U(a);if(!d)return D;let g=new Date,h=P(d.m);if(c)return await (0,e.f)().update(f.monitors).set({ownerPaused:!0,updatedAt:g}).where((0,b.u)(f.monitors.id,a)),{ok:!0,message:`Paused ${h}. Its history is kept.`,audit:{message:`Monitor paused: ${h}`,resourceId:d.m.resourceId}};if(!d.m.ownerPaused)return J;let i=d.watched&&!d.goneAt;return R(async c=>{let e="heartbeat"===d.m.kind?null:(0,s.g)(await S(c),+!!i);return e?{ok:!1,error:e}:(await c.update(f.monitors).set({ownerPaused:!1,...i?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:g,updatedAt:g}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.ownerPaused,!0))).returning({id:f.monitors.id})).length?{ok:!0,message:i?`Resumed ${h}. First result within a minute.`:d.goneAt?`Resumed ${h}. ${I}, so it won't be checked.`:`Resumed ${h}. It's checked again once its app is watched.`,audit:{message:`Monitor resumed: ${h}`,resourceId:d.m.resourceId}}:(await c.select({id:f.monitors.id}).from(f.monitors).where((0,b.u)(f.monitors.id,a)).limit(1)).length?J:D})}async function ab(a,c){let d=await (0,e.f)().select({paused:f.monitors.paused,ownerPaused:f.monitors.ownerPaused,kind:f.monitors.kind}).from(f.monitors).where((0,b.u)(f.monitors.resourceId,a));if(!d.length)return{ok:!1,error:"This app has no monitors."};let g=new Date;if(c)return await (0,e.f)().update(f.monitors).set({ownerPaused:!0,updatedAt:g}).where((0,b.u)(f.monitors.resourceId,a)),{ok:!0,message:`Paused ${d.length} monitor${1===d.length?"":"s"}. Their history is kept.`,audit:{message:`Monitors paused: ${d.length}`,resourceId:a}};let[h]=await (0,e.f)().select({watched:f.resources.monitored,goneAt:f.resources.goneAt}).from(f.resources).where((0,b.u)(f.resources.id,a)).limit(1),i=!!h&&h.watched&&!h.goneAt,j=d.filter(a=>a.ownerPaused).length,k=1===j?"":"s",l=d.filter(a=>a.ownerPaused&&"heartbeat"!==a.kind).length;return R(async c=>{let d=(0,s.g)(await S(c),i?l:0);return d?{ok:!1,error:d}:(await c.update(f.monitors).set({ownerPaused:!1,...i?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:g,updatedAt:g}).where((0,b.b)((0,b.u)(f.monitors.resourceId,a),(0,b.u)(f.monitors.ownerPaused,!0))),{ok:!0,message:i?`Resumed ${j} monitor${k}. First results within a minute.`:h?.goneAt?`Resumed ${j} monitor${k}. ${I}, so they won't be checked.`:`Resumed ${j} monitor${k}. They're checked again once the app is watched.`,audit:{message:`Monitors resumed: ${j}`,resourceId:a}})})}async function ac(a){let c=await U(a);if(!c)return D;let e=c.watched&&!c.goneAt&&"heartbeat"!==c.m.kind,g=d.B`(select count(*) from ${f.monitors} where ${f.monitors.resourceId} = ${c.m.resourceId}) > 1`,h=await R(async c=>(await c.delete(f.monitors).where((0,b.b)((0,b.u)(f.monitors.id,a),e?g:void 0)).returning({id:f.monitors.id})).length?"deleted":e&&(await c.select({id:f.monitors.id}).from(f.monitors).where((0,b.u)(f.monitors.id,a)).limit(1)).length?"last":"gone");if("gone"===h)return D;if("last"===h)return{ok:!1,error:(0,s.p)({appWatched:!0,monitorsOfApp:1})??"That monitor no longer exists."};let i=P(c.m);return{ok:!0,message:`Deleted ${i}.`,audit:{message:`Monitor deleted: ${i}`,resourceId:c.m.resourceId}}}function ad(a,b){return!a.lastCheckedAt||b.getTime()-a.lastCheckedAt.getTime()>=m.O?null:{ok:!0,message:(0,s.T)({...a,lastCheckedAt:a.lastCheckedAt},b),passed:a.lastStatus===a.expectedStatus&&!a.lastError}}async function ae(a){let b=await U(a);if(!b)return D;if("heartbeat"===b.m.kind)return O;let c=b.goneAt?G:b.watched?(0,s.i)(b.m)?null:"Paused monitors aren't checked. Resume it first.":"Its app isn't watched. Tick it in Connections → Sync first.";if(c)return{ok:!1,error:c};let d=ad(b.m,new Date);if(d)return d;let m=await (0,y.w)(),o=(0,r.W)()?(0,j.M)(b.m.expectedStatus):await (0,i.b)(b.m.url,{expectedStatus:b.m.expectedStatus,timeoutMs:b.m.timeoutMs,body:(0,g.C)(b.m)}),p=new Date;if(!await (0,k.j)(b.m,o,p)){let b=await U(a);return b?ad(b.m,new Date)??{ok:!1,error:"The monitor changed while it was being checked. Try again."}:D}let u=null!==(0,q.x)(m,{monitorId:a,appId:b.m.resourceId},p);await (0,e.f)().insert(f.checks).values({monitorId:a,at:p,ok:o.ok,statusCode:o.statusCode,latencyMs:o.latencyMs,error:o.error,inMaintenance:u});let v=(0,l.G)(b.m.failStreak,o),w=(0,l.F)({resourceId:b.m.resourceId,path:(0,h.K)(b.m.url),prev:b.m.state,next:v.state,code:o.statusCode,error:o.error,at:p});return await (0,n.f)([w]),{ok:!0,message:(0,s.X)(o),passed:o.ok,audit:{message:`Check now: ${(0,t.F)(b.m.url)}`,resourceId:b.m.resourceId}}}a.s(["Q",0,S,"b",0,Q,"X",0,ae,"_",0,X,"$",0,W,"j",0,ac,"d",0,B,"J",0,C,"p",0,$,"R",0,Z,"f",0,ab,"C",0,aa,"M",0,A,"G",0,Y,"q",0,_,"e",0,R],895176)},757902,a=>{var b=a.i(666680);function c(a){return(0,b.createHash)("sha256").update(a).digest("hex")}a.s(["B",0,function(a){let c=a.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60);return`heartbeat:${c||(0,b.createHash)("sha256").update(a.trim().toLowerCase()).digest("hex").slice(0,16)}`},"P",0,function(){let a=`hb_${(0,b.randomBytes)(16).toString("hex")}`;return{token:a,hash:c(a)}},"C",0,c])}]})();
1
+ (()=>{"use strict";module.exports=[445710,634418,a=>{var b=a.i(93321),c=a.i(548734),d=a.i(837137),e=a.i(306556);let f=(a,c)=>null===c?(0,b.M)(a):(0,b.u)(a,c);async function g(a,g,h){let i=(0,e.G)(a.failStreak,g);return(await (0,c.f)().update(d.monitors).set({state:i.state,failStreak:i.failStreak,lastCheckedAt:h,lastStatus:g.statusCode,lastLatencyMs:g.latencyMs,lastError:g.error,...i.state!==a.state?{stateSince:h}:{},updatedAt:h}).where((0,b.b)((0,b.u)(d.monitors.id,a.id),null===a.lastCheckedAt?(0,b.M)(d.monitors.lastCheckedAt):(0,b.u)(d.monitors.lastCheckedAt,a.lastCheckedAt),(0,b.u)(d.monitors.state,a.state),(0,b.u)(d.monitors.failStreak,a.failStreak),(0,b.u)(d.monitors.url,a.url),(0,b.u)(d.monitors.expectedStatus,a.expectedStatus),f(d.monitors.bodyContains,a.bodyContains),f(d.monitors.jsonPath,a.jsonPath),f(d.monitors.jsonEquals,a.jsonEquals))).returning({id:d.monitors.id})).length>0}a.s(["T",0,f,"j",0,g],445710);let h={heartbeats:60,checks:60,vercel:60,supabase:300,supabaseUsage:3600,neon:300,firebase:300,firebaseUsage:3600,extraDbs:3600,cloudflare:3600,domains:21600,tls:3600,rdap:3600,eol:86400,status:300,logs:300,pageviews:1800,node:43200,security:21600,alerts:60,digest:300},i={supabase:0,digest:0,neon:60,firebase:120,status:180,logs:240,pageviews:1620,supabaseUsage:660,extraDbs:960,firebaseUsage:1320,cloudflare:1980,tls:2460,rdap:3120,domains:5280,eol:13560,node:13380,security:16560};function j(a,b){let c=1e3*h[a],d=(i[a]??0)*1e3;return Math.floor((b.getTime()+5e3-d)/c)*c+d}let k={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,node:6e3,security:11e3},l={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,node:null,status:null,alerts:null,digest:null,security:null},m={security:["hosting","devops"]},n=["supabase"];function o(a,b){return a.filter(a=>{let c=m[a];if(c)return c.some(a=>!b.has(a));let d=l[a];return null===d||!b.has(d)||n.includes(a)})}a.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"t",0,h,"P",0,function(a,b,c){let d=Math.min(a,b-c);return d<1e3?null:d},"S",0,function(a,b,c,d=new Set){let e=0;return o(Object.keys(h),d).filter(d=>{let f=a[d]?new Date(a[d]).getTime():null;if(h[d]<=60)return null===f||!!c||b.getTime()-f>=1e3*h[d]-1e4;let g=j(d,b);return(null===f||!(f>=g-5e3))&&(!(null===f||b.getTime()+5e3-g>=6e4)||!(e>=2)&&(e++,!0))})},"$",0,(a,b)=>{let c=l[a];return null!==c&&b.has(c)&&n.includes(a)},"B",0,function(a,b,c){return!c||!a||b.getTime()-a.getTime()>=5e4},"G",0,j,"z",0,function(a,b,c){return b-c>=(k[a]??0)},"_",0,function(a,b,c=new Set){if(!b||a.includes("security")||!o(["security"],c).length)return{due:[...a],early:!1};let d=Object.keys(h),e=a.findIndex(a=>d.indexOf(a)>d.indexOf("security")),f=[...a];return f.splice(e<0?f.length:e,0,"security"),{due:f,early:!0}}],634418)},895176,383487,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(903816),h=a.i(646324),i=a.i(33135),j=a.i(19809),k=a.i(445710),l=a.i(306556),m=a.i(634418),n=a.i(601219),o=a.i(436357),p=a.i(757902),q=a.i(519051),r=a.i(371289),s=a.i(201516),t=a.i(469762),u=a.i(968715),v=a.i(910697),w=a.i(767163);async function x(a,c=()=>!1,d=!1,g){let h=(await (0,e.f)().select({m:f.monitors}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)((0,b.u)(f.monitors.kind,"heartbeat"),(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt),...g?[(0,b.u)(f.monitors.id,g)]:[]))).filter(({m:b})=>void 0!==g||(0,m.B)(b.lastCheckedAt,a,d)),i=[],j=[];for(let{m:d}of h){let h=d.periodS??3600,k=d.graceS??600,n=(0,w.C)({lastPingAt:d.lastPingAt,lastPingKind:d.lastPingKind,periodS:h,graceS:k,createdAt:d.createdAt},a);if("unknown"===n.state)continue;let o=n.state!==d.state;(await (0,e.f)().update(f.monitors).set({state:n.state,failStreak:n.failStreak,lastCheckedAt:a,lastError:"ok"===n.state?null:n.text,...o?{stateSince:a}:{},updatedAt:a}).where((0,b.b)((0,b.u)(f.monitors.id,d.id),(0,b.u)(f.monitors.state,d.state),(0,b.u)(f.monitors.ownerPaused,!1),(0,b.u)(f.monitors.paused,!1),null===d.lastPingAt?(0,b.M)(f.monitors.lastPingAt):(0,b.u)(f.monitors.lastPingAt,d.lastPingAt),null===d.periodS?(0,b.M)(f.monitors.periodS):(0,b.u)(f.monitors.periodS,d.periodS),null===d.graceS?(0,b.M)(f.monitors.graceS):(0,b.u)(f.monitors.graceS,d.graceS))).returning({id:f.monitors.id})).length&&((void 0===g||(0,m.B)(d.lastCheckedAt,a,!0))&&j.push({monitorId:d.id,at:a,ok:"err"!==n.state,statusCode:null,latencyMs:null,error:"ok"===n.state?null:n.text,inMaintenance:c(d.id,d.resourceId)}),i.push((0,l.F)({resourceId:d.resourceId,path:d.name??"heartbeat",prev:d.state,next:n.state,code:null,error:n.text,at:a,heartbeat:!0})))}return j.length&&await (0,e.f)().insert(f.checks).values(j),await (0,n.f)(i),j.length}a.i(312573),a.i(323878),a.s(["f",0,x],383487);var y=a.i(714530),z=a.i(513701);function A(a){let b="heartbeat"===a.kind;return{id:a.id,appId:a.resourceId,url:a.url,path:b?a.name??"heartbeat":(0,h.K)(a.url),state:a.state,lastStatus:a.lastStatus,lastLatencyMs:a.lastLatencyMs,failStreak:a.failStreak,paused:a.paused,ownerPaused:a.ownerPaused,lastCheckedAt:a.lastCheckedAt,expectedStatus:a.expectedStatus,timeoutMs:a.timeoutMs,intervalS:a.intervalS,bodyContains:a.bodyContains,jsonPath:a.jsonPath,jsonEquals:a.jsonEquals,lastError:a.lastError,kind:b?"heartbeat":"http",name:a.name??null,periodS:a.periodS??null,graceS:a.graceS??null,lastPingAt:a.lastPingAt??null,stateSince:a.stateSince??null}}async function B(a){let d=await (0,e.f)().select({m:f.monitors,appName:f.resources.name,goneAt:f.resources.goneAt,appMeta:f.resources.meta}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0))).orderBy(f.resources.name,(0,c.A)(f.monitors.kind),f.monitors.url).limit(v.O.monitors),g=await (0,z._)(d.map(a=>a.m.id),a),h=await C(d.map(a=>({id:a.m.id,kind:a.m.kind,url:a.m.url,appId:a.m.resourceId,appName:a.appName,appMeta:a.appMeta,lastError:a.m.lastError})));return d.map(({m:b,appName:c,goneAt:d})=>({...A(b),appName:c,appGone:null!==d,days:g.get(b.id),uptime30:(0,u.Y)((0,u.w)(g.get(b.id),a,u.I)),move:h.get(b.id)??null}))}async function C(a){if(!a.some(a=>null!==(0,o.Y)(a.appMeta)))return new Map;let c=await (0,e.f)().select({id:f.resources.id,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).limit(500);return(0,o.P)(a,c)}let D={ok:!1,error:"That monitor no longer exists."},E={ok:!1,error:"This app already has a monitor for that address."},F={ok:!1,error:"That app isn't watched. Tick it in Connections → Sync first."},G="This app no longer exists at Vercel.",H={ok:!1,error:G},I="The app no longer exists at Vercel",J={ok:!0,message:"Already running."},K={ok:!1,error:"Someone else changed this monitor just now. Reopen it and try again."},L={ok:!1,error:"This app already has a heartbeat with that name."},M={ok:!1,error:"That monitor isn't a heartbeat."},N={ok:!1,error:"That monitor is a heartbeat. Edit it from its own menu."},O={ok:!1,error:"The console doesn't check a heartbeat. It waits for your job's ping."},P=a=>"heartbeat"===a.kind?a.name??"heartbeat":(0,t.F)(a.url);async function Q(){let a=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.kind,"app"),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).orderBy(f.resources.name).limit(v.O.apps);if(!a.length)return[];let c=await (0,e.f)().select({appId:f.monitors.resourceId,url:f.monitors.url}).from(f.monitors).where((0,b.b)((0,b.y)(f.monitors.resourceId,a.map(a=>a.id)),(0,b.u)(f.monitors.kind,"http"))).orderBy(f.monitors.createdAt);return a.map(a=>({...a,domain:(0,t.m)(a.name,c.filter(b=>b.appId===a.id).map(a=>a.url))}))}async function R(a){return(0,e.f)().transaction(async b=>(await b.execute(d.B`select pg_advisory_xact_lock(hashtext('ops.monitors'))`),a(b)))}async function S(a=(0,e.f)()){let[c]=await a.select({n:d.B`count(*)::int`}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)((0,b.u)(f.monitors.kind,"http"),(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1),(0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)));return c?.n??0}async function T(a=(0,e.f)()){let[c]=await a.select({n:d.B`count(*)::int`}).from(f.monitors).where((0,b.u)(f.monitors.kind,"heartbeat"));return c?.n??0}async function U(a){let[c]=await (0,e.f)().select({m:f.monitors,watched:f.resources.monitored,goneAt:f.resources.goneAt}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.u)(f.monitors.id,a)).limit(1);return c??null}function V(a){let b=a?.code??a?.cause?.code;return"string"==typeof b?b:void 0}async function W(a,c){return R(async d=>{let[e]=await d.select({id:f.resources.id,goneAt:f.resources.goneAt}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.id,a),(0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0))).limit(1);if(!e)return F;if(e.goneAt)return H;let g=(0,s.g)(await S(d));return g?{ok:!1,error:g}:(await d.insert(f.monitors).values({resourceId:a,kind:"http",url:c.url,expectedStatus:c.expectedStatus,timeoutMs:c.timeoutMs,bodyContains:c.bodyContains,jsonPath:c.jsonPath,jsonEquals:c.jsonEquals}).onConflictDoNothing().returning({id:f.monitors.id})).length?{ok:!0,message:`Monitoring ${(0,t.F)(c.url)}. First result within a minute.`,audit:{message:`Monitor added: ${(0,t.F)(c.url)}`,resourceId:a}}:E})}async function X(a,c){let{token:d,hash:e}=(0,p.P)();return R(async g=>{let[h]=await g.select({id:f.resources.id,goneAt:f.resources.goneAt}).from(f.resources).where((0,b.b)((0,b.u)(f.resources.id,a),(0,b.u)(f.resources.kind,"app"),(0,b.u)(f.resources.monitored,!0))).limit(1);if(!h)return F;if(h.goneAt)return H;let i=(0,s.f)(await T(g));return i?{ok:!1,error:i}:(await g.insert(f.monitors).values({resourceId:a,kind:"heartbeat",url:(0,p.B)(c.name),name:c.name,tokenHash:e,periodS:c.periodS,graceS:c.graceS,state:"unknown"}).onConflictDoNothing().returning({id:f.monitors.id})).length?{ok:!0,message:`Added ${c.name}. It waits for the first ping.`,token:d,audit:{message:`Heartbeat added: ${c.name}`,resourceId:a}}:L})}async function Y(a,c){let d,g=await U(a);if(!g)return D;if("heartbeat"!==g.m.kind)return M;if(g.goneAt)return H;if(!g.watched)return F;let h=(0,p.B)(c.name),[i]=await (0,e.f)().select({id:f.monitors.id}).from(f.monitors).where((0,b.b)((0,b.u)(f.monitors.resourceId,g.m.resourceId),(0,b.u)(f.monitors.url,h),(0,b.c)(f.monitors.id,a))).limit(1);if(i)return L;try{d=await (0,e.f)().update(f.monitors).set({name:c.name,url:h,periodS:c.periodS,graceS:c.graceS,updatedAt:new Date}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.kind,"heartbeat"))).returning({id:f.monitors.id})}catch(a){if("23505"===V(a))return L;throw a}if(!d.length)return D;let j=g.m.name!==c.name;return{ok:!0,message:`Saved ${c.name}.`,audit:{message:`Heartbeat edited: ${c.name}`,...j&&g.m.name?{detail:`was ${g.m.name}`}:{},resourceId:g.m.resourceId}}}async function Z(a){let c=await U(a);if(!c)return D;if("heartbeat"!==c.m.kind)return M;let{token:d,hash:g}=(0,p.P)();if(!(await (0,e.f)().update(f.monitors).set({tokenHash:g,updatedAt:new Date}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.kind,"heartbeat"))).returning({id:f.monitors.id})).length)return D;let h=P(c.m);return{ok:!0,message:`New ping URL for ${h}. The old one no longer works.`,token:d,audit:{message:`Ping URL replaced: ${h}`,resourceId:c.m.resourceId}}}async function $(a,c,d=new Date){let g=await U(a);if(!g)return D;if("heartbeat"!==g.m.kind)return M;if(!(await (0,e.f)().update(f.monitors).set({lastPingAt:d,lastPingKind:c,updatedAt:d}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.kind,"heartbeat"))).returning({id:f.monitors.id})).length)return D;let h=P(g.m),i=`Test ping (${c}) recorded for ${h}`,j=!1;try{let b=await (0,y.w)();await x(new Date,(a,c)=>null!==(0,q.x)(b,{monitorId:a,appId:c},new Date),!0,a),j=!0}catch{console.warn("test ping: recompute failed")}return{ok:!0,message:j?`${i}.`:`${i}. The state updates within a minute.`,audit:{message:i,detail:"Test",resourceId:g.m.resourceId}}}async function _(a,c){let d,g=await U(a);if(!g)return D;if("heartbeat"===g.m.kind)return N;if(g.goneAt)return H;if(!g.watched)return F;let[h]=await (0,e.f)().select({id:f.monitors.id}).from(f.monitors).where((0,b.b)((0,b.u)(f.monitors.resourceId,g.m.resourceId),(0,b.u)(f.monitors.url,c.url),(0,b.c)(f.monitors.id,a))).limit(1);if(h)return E;let i=new Date,j={url:g.m.url,expectedStatus:g.m.expectedStatus,timeoutMs:g.m.timeoutMs,bodyContains:g.m.bodyContains,jsonPath:g.m.jsonPath,jsonEquals:g.m.jsonEquals},l=(0,s.V)(j,c)?{state:"unknown",failStreak:0,stateSince:i,lastCheckedAt:null,lastStatus:null,lastLatencyMs:null,lastError:null}:{};try{d=await (0,e.f)().update(f.monitors).set({url:c.url,expectedStatus:c.expectedStatus,timeoutMs:c.timeoutMs,bodyContains:c.bodyContains,jsonPath:c.jsonPath,jsonEquals:c.jsonEquals,...l,updatedAt:i}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.url,g.m.url),(0,b.u)(f.monitors.expectedStatus,g.m.expectedStatus),(0,k.T)(f.monitors.bodyContains,g.m.bodyContains),(0,k.T)(f.monitors.jsonPath,g.m.jsonPath),(0,k.T)(f.monitors.jsonEquals,g.m.jsonEquals))).returning({id:f.monitors.id})}catch(a){if("23505"===V(a))return E;throw a}if(!d.length)return await U(a)?K:D;let m=j.url!==c.url;return{ok:!0,message:g.m.ownerPaused?`Saved ${(0,t.F)(c.url)}. It's checked again once you resume it.`:`Checking ${(0,t.F)(c.url)} from the next run.`,audit:{message:`Monitor edited: ${(0,t.F)(c.url)}`,...m?{detail:`was ${(0,t.F)(j.url)}`}:{},resourceId:g.m.resourceId}}}async function aa(a,c){let d=await U(a);if(!d)return D;let g=new Date,h=P(d.m);if(c)return await (0,e.f)().update(f.monitors).set({ownerPaused:!0,updatedAt:g}).where((0,b.u)(f.monitors.id,a)),{ok:!0,message:`Paused ${h}. Its history is kept.`,audit:{message:`Monitor paused: ${h}`,resourceId:d.m.resourceId}};if(!d.m.ownerPaused)return J;let i=d.watched&&!d.goneAt;return R(async c=>{let e="heartbeat"===d.m.kind?null:(0,s.g)(await S(c),+!!i);return e?{ok:!1,error:e}:(await c.update(f.monitors).set({ownerPaused:!1,...i?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:g,updatedAt:g}).where((0,b.b)((0,b.u)(f.monitors.id,a),(0,b.u)(f.monitors.ownerPaused,!0))).returning({id:f.monitors.id})).length?{ok:!0,message:i?`Resumed ${h}. First result within a minute.`:d.goneAt?`Resumed ${h}. ${I}, so it won't be checked.`:`Resumed ${h}. It's checked again once its app is watched.`,audit:{message:`Monitor resumed: ${h}`,resourceId:d.m.resourceId}}:(await c.select({id:f.monitors.id}).from(f.monitors).where((0,b.u)(f.monitors.id,a)).limit(1)).length?J:D})}async function ab(a,c){let d=await (0,e.f)().select({paused:f.monitors.paused,ownerPaused:f.monitors.ownerPaused,kind:f.monitors.kind}).from(f.monitors).where((0,b.u)(f.monitors.resourceId,a));if(!d.length)return{ok:!1,error:"This app has no monitors."};let g=new Date;if(c)return await (0,e.f)().update(f.monitors).set({ownerPaused:!0,updatedAt:g}).where((0,b.u)(f.monitors.resourceId,a)),{ok:!0,message:`Paused ${d.length} monitor${1===d.length?"":"s"}. Their history is kept.`,audit:{message:`Monitors paused: ${d.length}`,resourceId:a}};let[h]=await (0,e.f)().select({watched:f.resources.monitored,goneAt:f.resources.goneAt}).from(f.resources).where((0,b.u)(f.resources.id,a)).limit(1),i=!!h&&h.watched&&!h.goneAt,j=d.filter(a=>a.ownerPaused).length,k=1===j?"":"s",l=d.filter(a=>a.ownerPaused&&"heartbeat"!==a.kind).length;return R(async c=>{let d=(0,s.g)(await S(c),i?l:0);return d?{ok:!1,error:d}:(await c.update(f.monitors).set({ownerPaused:!1,...i?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:g,updatedAt:g}).where((0,b.b)((0,b.u)(f.monitors.resourceId,a),(0,b.u)(f.monitors.ownerPaused,!0))),{ok:!0,message:i?`Resumed ${j} monitor${k}. First results within a minute.`:h?.goneAt?`Resumed ${j} monitor${k}. ${I}, so they won't be checked.`:`Resumed ${j} monitor${k}. They're checked again once the app is watched.`,audit:{message:`Monitors resumed: ${j}`,resourceId:a}})})}async function ac(a){let c=await U(a);if(!c)return D;let e=c.watched&&!c.goneAt&&"heartbeat"!==c.m.kind,g=d.B`(select count(*) from ${f.monitors} where ${f.monitors.resourceId} = ${c.m.resourceId}) > 1`,h=await R(async c=>(await c.delete(f.monitors).where((0,b.b)((0,b.u)(f.monitors.id,a),e?g:void 0)).returning({id:f.monitors.id})).length?"deleted":e&&(await c.select({id:f.monitors.id}).from(f.monitors).where((0,b.u)(f.monitors.id,a)).limit(1)).length?"last":"gone");if("gone"===h)return D;if("last"===h)return{ok:!1,error:(0,s.p)({appWatched:!0,monitorsOfApp:1})??"That monitor no longer exists."};let i=P(c.m);return{ok:!0,message:`Deleted ${i}.`,audit:{message:`Monitor deleted: ${i}`,resourceId:c.m.resourceId}}}function ad(a,b){return!a.lastCheckedAt||b.getTime()-a.lastCheckedAt.getTime()>=m.O?null:{ok:!0,message:(0,s.T)({...a,lastCheckedAt:a.lastCheckedAt},b),passed:a.lastStatus===a.expectedStatus&&!a.lastError}}async function ae(a){let b=await U(a);if(!b)return D;if("heartbeat"===b.m.kind)return O;let c=b.goneAt?G:b.watched?(0,s.i)(b.m)?null:"Paused monitors aren't checked. Resume it first.":"Its app isn't watched. Tick it in Connections → Sync first.";if(c)return{ok:!1,error:c};let d=ad(b.m,new Date);if(d)return d;let m=await (0,y.w)(),o=(0,r.W)()?(0,j.M)(b.m.expectedStatus):await (0,i.b)(b.m.url,{expectedStatus:b.m.expectedStatus,timeoutMs:b.m.timeoutMs,body:(0,g.C)(b.m)}),p=new Date;if(!await (0,k.j)(b.m,o,p)){let b=await U(a);return b?ad(b.m,new Date)??{ok:!1,error:"The monitor changed while it was being checked. Try again."}:D}let u=null!==(0,q.x)(m,{monitorId:a,appId:b.m.resourceId},p);await (0,e.f)().insert(f.checks).values({monitorId:a,at:p,ok:o.ok,statusCode:o.statusCode,latencyMs:o.latencyMs,error:o.error,inMaintenance:u});let v=(0,l.G)(b.m.failStreak,o),w=(0,l.F)({resourceId:b.m.resourceId,path:(0,h.K)(b.m.url),prev:b.m.state,next:v.state,code:o.statusCode,error:o.error,at:p});return await (0,n.f)([w]),{ok:!0,message:(0,s.X)(o),passed:o.ok,audit:{message:`Check now: ${(0,t.F)(b.m.url)}`,resourceId:b.m.resourceId}}}a.s(["Q",0,S,"b",0,Q,"X",0,ae,"_",0,X,"$",0,W,"j",0,ac,"d",0,B,"J",0,C,"p",0,$,"R",0,Z,"f",0,ab,"C",0,aa,"M",0,A,"G",0,Y,"q",0,_,"e",0,R],895176)},757902,a=>{var b=a.i(666680);function c(a){return(0,b.createHash)("sha256").update(a).digest("hex")}a.s(["B",0,function(a){let c=a.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60);return`heartbeat:${c||(0,b.createHash)("sha256").update(a.trim().toLowerCase()).digest("hex").slice(0,16)}`},"P",0,function(){let a=`hb_${(0,b.randomBytes)(16).toString("hex")}`;return{token:a,hash:c(a)}},"C",0,c])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_1xwavi_m_li7p._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[50908,20060,a=>{"use strict";var b=a.i(93321),c=a.i(548734),d=a.i(837137);let e=/^v?(\d{1,9})\.(\d{1,9})\.(\d{1,9})(?:-([0-9A-Za-z.-]{1,64}))?(?:\+[0-9A-Za-z.-]{1,64})?$/,f=/^\d{4}-\d{2}-\d{2}$/;function g(a){let b="string"==typeof a?e.exec(a.trim()):null;if(!b)return null;let[c,d,f]=[b[1],b[2],b[3]].map(Number);return{major:c,minor:d,patch:f,pre:b[4]??null,text:`${c}.${d}.${f}${b[4]?`-${b[4]}`:""}`}}function h(a,b){return a.major!==b.major?a.major-b.major:a.minor!==b.minor?a.minor-b.minor:a.patch!==b.patch?a.patch-b.patch:a.pre===b.pre?0:null===a.pre?1:null===b.pre||a.pre<b.pre?-1:1}function i(a){let b=(a&&"object"==typeof a?a:null)?.result?.releases;if(!Array.isArray(b)||0===b.length)return null;let c=[];for(let a of b){if(!a||"object"!=typeof a||"string"!=typeof a.name||"boolean"!=typeof a.isEol||null!=a.eolFrom&&("string"!=typeof a.eolFrom||!f.test(a.eolFrom)))return null;c.push({name:a.name,isEol:a.isEol,eolFrom:a.eolFrom??null})}return c}var j=a.i(159203);let k="runtime.node";function l(a=process.env){let b=(0,j.N)(a,"NO_UPDATE_CHECK"),c=b?.value.trim()??"";return{off:""!==c&&!/^(0|false|no|off)$/i.test(c),name:b?.name??"WATCHBELL_NO_UPDATE_CHECK"}}async function m(a,b,c,d){let e;try{e=await c(a,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"},signal:AbortSignal.timeout(d),cache:"no-store"})}catch{return{ok:!1,error:`Couldn't reach ${b}`}}if(!e.ok)return{ok:!1,error:`${b} returned an error (${e.status})`};try{return{ok:!0,body:await e.json()}}catch{return{ok:!1,error:`${b} answered in a format the console doesn't recognise`}}}async function n(a={}){let b=a.fetch??fetch,c=a.timeoutMs??8e3,[d,e]=await Promise.all([m("https://nodejs.org/dist/index.json","nodejs.org",b,c),m("https://endoflife.date/api/v1/products/nodejs/","endoflife.date",b,c)]),f=d.ok?function(a){if(!Array.isArray(a)||0===a.length)return null;let b=[],c=new Map;for(let d of a){if(!d||"object"!=typeof d||"boolean"!=typeof d.security)return null;let a=g(d.version);if(!a||null!==a.pre||!String(d.version).startsWith("v"))return null;d.security&&b.push(a);let e=c.get(a.major);(!e||h(a,e)>0)&&c.set(a.major,a)}return b.sort((a,b)=>h(b,a)),{security:b.map(a=>a.text),latest:Object.fromEntries([...c].sort((a,b)=>b[0]-a[0]).map(([a,b])=>[String(a),b.text]))}}(d.body):null,j=e.ok?i(e.body):null,k=a=>`${a} answered in a format the console doesn't recognise`;return{index:f,indexError:d.ok?f?null:k("nodejs.org"):d.error,cycles:j,cyclesError:e.ok?j?null:k("endoflife.date"):e.error}}function o(a,b,c){let d=c.toISOString();return{index:b.index??a?.index??null,indexCheckedAt:d,indexError:b.indexError,cycles:b.cycles??a?.cycles??null,cyclesCheckedAt:d,cyclesError:b.cyclesError}}let p=a=>"string"==typeof a&&Number.isFinite(Date.parse(a))?a:null,q=a=>"string"==typeof a?a:null;function r(a){return a&&"object"==typeof a?{index:function(a){let b=a&&"object"==typeof a?a:null;if(!b||!Array.isArray(b.security)||!b.latest||"object"!=typeof b.latest)return null;let c=b.security.map(g),d=Object.entries(b.latest).map(([a,b])=>[a,g(b)]);return c.some(a=>!a)||d.some(([a,b])=>!b||String(b.major)!==a)?null:{security:c.map(a=>a.text),latest:Object.fromEntries(d.map(([a,b])=>[a,b.text]))}}(a.index),indexCheckedAt:p(a.indexCheckedAt),indexError:q(a.indexError),cycles:i({result:{releases:a.cycles}}),cyclesCheckedAt:p(a.cyclesCheckedAt),cyclesError:q(a.cyclesError)}:null}async function s(){let[a]=await (0,c.f)().select({value:d.settings.value}).from(d.settings).where((0,b.u)(d.settings.key,k)).limit(1);return a?r(a.value):null}async function t(a,b,e,f=process.env){if(l(f).off)return;let g=b-Date.now();if(g<1e3)throw Error("skipped, time budget used");let h=await n({timeoutMs:Math.min(8e3,g)}),i=await s();h.indexError&&e.push(`node: ${h.indexError}`),h.cyclesError&&e.push(`node: ${h.cyclesError}`);let j=o(i,h,a);await (0,c.f)().insert(d.settings).values({key:k,value:j}).onConflictDoUpdate({target:d.settings.key,set:{value:j,updatedAt:a}})}a.s(["o",0,k,"Y",0,8e3,"i",0,n,"T",0,o,"s",0,l,"m",0,r,"E",0,function(a,b,c,d={off:!1,name:""}){if(d.off)return{state:"off",text:`Node ${a.replace(/^v/,"")}: check turned off (${d.name})`,note:null};let e=b?.indexCheckedAt?Date.parse(b.indexCheckedAt):null,f=!!b?.index&&!b.indexError&&null!==e&&e<=c.getTime()&&c.getTime()-e<1296e5,i=function(a,{index:b,indexFresh:c,cycles:d},e){let f=g(a);if(!f)return{kind:"unknown",state:"unknown",version:null,fixedIn:null,eolFrom:null,text:`Node ${String(a)}: unknown (the version can't be read)`};let i=`Node ${f.text}`,j=a=>({kind:"unknown",state:"unknown",version:f.text,fixedIn:null,eolFrom:null,text:`${i}: unknown (${a})`}),k=d?.find(a=>a.name===String(f.major))??null,l=k?.eolFrom?Date.parse(`${k.eolFrom}T00:00:00Z`):null;if(k&&(k.isEol||null!==l&&l<=e))return{kind:"eol",state:"err",version:f.text,fixedIn:null,eolFrom:k.eolFrom,text:`${i}: end of life${k.eolFrom?` since ${k.eolFrom}`:""}, no more security fixes`};let m=b?.security.map(g).find(a=>a&&a.major===f.major&&h(a,f)>0)??null;return m?{kind:"vulnerable",state:"warn",version:f.text,fixedIn:m.text,eolFrom:null,text:`${i}: security fix available (${m.text})`}:b?c?b.latest[String(f.major)]?d?k?{kind:"ok",state:"ok",version:f.text,fixedIn:null,eolFrom:null,text:`${i}: ok`}:j(`endoflife.date has no Node ${f.major} line`):j("endoflife.date hasn't been read yet"):j(`nodejs.org lists no Node ${f.major} release`):j("nodejs.org couldn't be read on the last try"):j("nodejs.org hasn't been read yet")}(a,{index:b?.index??null,indexFresh:f,cycles:b?.cycles??null},c.getTime()),j=[b?.indexError,b?.cyclesError].filter(a=>!!a);return{state:i.state,text:i.text,note:j.length?`Last read: ${j.join("; ")}`:null}}],20060),a.s(["i",0,s,"q",0,t],50908)}];
2
+
3
+ //# sourceMappingURL=src_lib_collector_node-runtime_ts_0778fef3fi3zj._.js.map
@@ -1,9 +1,9 @@
1
- module.exports=[270432,a=>{"use strict";var b=a.i(93321),c=a.i(351674),d=a.i(548734),e=a.i(837137),f=a.i(436357),g=a.i(109068),h=a.i(678831),i=a.i(45617),j=a.i(455317),k=a.i(383487),l=a.i(714530),m=a.i(601219),n=a.i(358179),o=a.i(292321),p=a.i(49146),q=a.i(396667),r=a.i(33135),s=a.i(669943),t=a.i(26972),u=a.i(811365),v=a.i(689963),w=a.i(191179),x=a.i(427221),y=a.i(530174);let z=/not enabled/i,A=(a,b,c={})=>({ok:!1,kind:a,error:b,...c}),B="Vercel Web Analytics answered in a format the console doesn't recognise.",C=t.z.object({data:t.z.object({pageviews:u.z.number().finite().nonnegative(),visitors:u.z.number().finite().nonnegative()})}),D=t.z.object({data:v.z.array(w.z.unknown())}),E=t.z.object({timestamp:x.z.string().transform((a,b)=>{let c=Date.parse(a);return Number.isNaN(c)?(b.addIssue({code:"custom",message:"bad timestamp"}),y.z.NEVER):c}),pageviews:u.z.number().finite().nonnegative().nullish().catch(null)});async function F(a,b,c,d){let e=d.since.toISOString(),f=d.until.toISOString(),g=d.fetch??fetch,h=new AbortController,i=setTimeout(()=>h.abort(new DOMException("window","TimeoutError")),d.timeoutMs??8e3),j=d.signal?AbortSignal.any([h.signal,d.signal]):h.signal,k=(0,r.X)(j);async function l(i,l){let m=new URLSearchParams({projectId:c,teamId:b,...l,since:e,until:f});try{let b=await Promise.race([g(`https://api.vercel.com/v1/query/web-analytics/visits/${i}?${m}`,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"},signal:j,cache:"no-store"}),k]),c=null,d=!1;if(401===b.status||403===b.status)c=A("auth",`Vercel rejected this credential (${b.status}).`,{status:b.status});else if(429===b.status){let a=Number(b.headers.get("Retry-After"));c=A("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(a)&&a>0?a:60})}else if(400===b.status){let a=await Promise.race([b.text(),k]).catch(()=>"");z.test(a)?d=!0:c=A("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else b.ok||(c=A("transient",`Vercel Web Analytics returned an error (${b.status}).`,{status:b.status}));if(d)return{kind:"off"};if(c)return await b.body?.cancel().catch(()=>void 0),{kind:"fail",fail:c};try{return{kind:"body",body:await Promise.race([b.json(),k])}}catch(a){if(j.aborted)throw a;return{kind:"fail",fail:A("format",B)}}}catch{return{kind:"fail",fail:j.aborted?h.signal.aborted&&!d.signal?.aborted?A("transient","Vercel Web Analytics didn't answer in time."):A("transient","Reading Vercel Web Analytics was cancelled."):A("transient","Couldn't reach Vercel Web Analytics.")}}}try{let[a,b]=await Promise.all([l("count",{}),l("aggregate",{by:"hour"})]);if("off"===a.kind||"off"===b.kind)return{ok:!0,enabled:!1};let c=[a,b].flatMap(a=>"fail"===a.kind?[a.fail]:[]),d=c.find(a=>"auth"===a.kind);if(d)return d;let e="body"===b.kind?D.safeParse(b.body):null,f="fail"===b.kind?b.fail:e?.success?null:A("format",B),g=c.find(a=>"transient"===a.kind);if(g)return g;if(f)return f;if(!e?.success)return A("format",B);let h="body"===a.kind?C.safeParse(a.body):null,i=e.data.data.flatMap(a=>{let b=E.safeParse(a);return b.success?[b.data]:[]});if(i.length>0&&i.every(a=>null==a.pageviews))return A("format",B);let j=new Map;for(let a of i){let b=36e5*Math.floor(a.timestamp/36e5);j.set(b,(j.get(b)??0)+(a.pageviews??0))}let k=[...j].sort((a,b)=>a[0]-b[0]).slice(-24).map(([a,b])=>({at:new Date(a),views:b}));if(h?.success)return{ok:!0,enabled:!0,total:h.data.data.pageviews,visitors:h.data.data.visitors,hourly:k};return{ok:!0,enabled:!0,total:k.reduce((a,b)=>a+b.views,0),visitors:null,hourly:k}}finally{clearTimeout(i),h.abort()}}var G=a.i(631107);async function H(a,b,c){let d=await (0,o.g)(null);if(!d.length)return;let e=new Date(36e5*Math.floor(a.getTime()/36e5)-828e5);await (0,r.P)(d,3,async d=>{if(Date.now()+8500>b)return;let f=await F(d.token,d.teamId,d.projectId,{since:e,until:a});if(!f.ok)return void c.push(`pageviews/${d.appName}: ${f.error}`);try{await (0,s.r)(d.appId,{pageviews:(0,G.a)(f,a)},a)}catch{c.push(`pageviews/${d.appName}: couldn't save the page views`)}})}var I=a.i(634418),J=a.i(930270),K=a.i(242605),L=a.i(683439);let M="security.afterDeploy",N=a=>"object"==typeof a&&null!==a&&!Array.isArray(a),O=a=>"string"==typeof a&&a.length>0&&a.length<=100;function P(a){let b={pending:{},checked:{}};if(!N(a))return b;if(N(a.pending))for(let[c,d]of Object.entries(a.pending)){if(!(0,L.f)(c)||!N(d)||!O(d.id)||"string"!=typeof d.at||Number.isNaN(Date.parse(d.at)))continue;let a="number"==typeof d.attempts&&Number.isInteger(d.attempts)&&d.attempts>=0?Math.min(d.attempts,3):0;b.pending[c]={id:d.id,at:d.at,attempts:a,...!0===d.next?{next:!0}:{},...!0===d.deps?{deps:!0}:{}}}if(N(a.checked))for(let[c,d]of Object.entries(a.checked))(0,L.f)(c)&&O(d)&&(b.checked[c]=d);return b}function Q(a,b){let c,d={...a.pending},e={...a.checked};for(let a of b){let b=d[a];b&&(delete d[a],delete e[a],e[a]=b.id)}return{pending:d,checked:(c=Object.entries(e)).length<=500?e:Object.fromEntries(c.slice(c.length-500))}}let R=(a,b)=>Object.entries(a.pending).filter(([,a])=>!a[b]).map(([a])=>a);var S=a.i(46126);let T="security.slot",U=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0&&a.length<=100).slice(0,1e3):[],V=(a,b)=>[...new Set([...a,...b])].slice(0,1e3),W=a=>async()=>{let[c]=await (0,d.f)().select({value:e.settings.value}).from(e.settings).where((0,b.u)(e.settings.key,a)).limit(1);return c?.value??null},X=a=>async b=>{await (0,d.f)().insert(e.settings).values({key:a,value:b}).onConflictDoUpdate({target:e.settings.key,set:{value:b,updatedAt:new Date}})},Y={read:W(M),write:X(M),readSlot:W(T),writeSlot:X(T),nextCheck:K.h,depsStep:(a,b)=>(0,J.O)(a,b)};async function Z(a,b=Y){var c;let d,e=P(await b.read()),f=(c=a.now,(d=Object.entries(e.pending).filter(([,a])=>c.getTime()-Date.parse(a.at)>216e5).map(([a])=>a)).length?Q(e,d):e),g=!a.paused.has("hosting"),h=!a.paused.has("devops"),i=g?R(f,"next"):[],j=h?R(f,"deps"):[],k=a.early?null:function(a,b){let c=a&&"object"==typeof a&&!Array.isArray(a)?a:{};if(c.slot!==b)return{slot:b,runs:0,next:[],repos:[],cut:{},nextDone:!1,depsDone:!1};let d="number"==typeof c.runs&&Number.isInteger(c.runs)&&c.runs>=0?c.runs:0,e={};if(c.cut&&"object"==typeof c.cut&&!Array.isArray(c.cut))for(let[a,b]of Object.entries(c.cut).slice(0,1e3))a.length<=100&&"number"==typeof b&&Number.isInteger(b)&&b>0&&(e[a]=Math.min(b,2));return{slot:b,runs:d,next:U(c.next),repos:U(c.repos),cut:e,nextDone:!0===c.nextDone,depsDone:!0===c.depsDone}}(await b.readSlot(),new Date((0,I.G)("security",a.now)).toISOString()),l=!!k&&g&&!k.nextDone,m=!!k&&h&&!k.depsDone,n=g&&(i.length>0||l),o=h&&(j.length>0||m),p={hosting:g,devops:h,nextDone:new Set,nextStarted:new Set,depsDone:new Set},q=async()=>{let c=Math.min(Date.now()+S.y,!k&&o?a.deadline-2*J.d:a.deadline),d=l?[...k.next,...Object.entries(k.cut).filter(([,a])=>a>=2).map(([a])=>a)]:[],e=l?{first:i,skip:[...new Set(d)].filter(a=>!i.includes(a))}:{only:i},f=await b.nextCheck(c,e);for(let b of f.failed)a.errors.push(`security ${b}`);for(let a of f.done)p.nextDone.add(a);for(let a of i)f.listed.includes(a)||p.nextDone.add(a);for(let a of f.started)p.nextStarted.add(a);if(l){let a=new Set(f.done);for(let b of(k.next=V(k.next,f.done),f.started))a.has(b)||(k.cut[b]=Math.min((k.cut[b]??0)+1,2));k.nextDone=f.listed.every(b=>a.has(b)||(k.cut[b]??0)>=2)}},r=async()=>{let c=await b.depsStep(Math.min(Date.now()+J.o,a.deadline),m?{marked:j,onlyMarked:!1,skip:k.repos}:{marked:j,onlyMarked:!0});for(let b of(c.problem&&a.errors.push(`security deps: ${c.problem}`),c.settled))p.depsDone.add(b);m&&(k.repos=V(k.repos,c.done),k.depsDone=c.complete)};try{k&&k.runs++,k?(o&&await r(),n&&await q()):(n&&await q(),o&&await r())}finally{let a=null;if(k)try{await b.writeSlot(k)}catch(b){a=b}try{let a=function(a,b){let c={},d=[];for(let[e,f]of Object.entries(a.pending)){let a={...f};b.hosting&&!a.next&&(b.nextDone?.has(e)?a.next=!0:b.nextStarted?.has(e)&&(a.attempts=Math.min(a.attempts+1,3))),b.devops&&!a.deps&&b.depsDone?.has(e)&&(a.deps=!0),c[e]=a,((a.next||!b.hosting)&&(a.deps||!b.devops)||a.attempts>=3)&&d.push(e)}return Q({pending:c,checked:a.checked},d)}(f,p);JSON.stringify(a)!==JSON.stringify(e)&&await b.write(a)}catch(b){a??=b}if(a)throw a}return{complete:!k||(k.nextDone||!g)&&(k.depsDone||!h)||k.runs>=20}}async function $(a,b,c=Y){if(!a.length)return!1;let{state:d,changed:e}=function(a,b,c){let d={pending:{...a.pending},checked:{...a.checked}},e=!1;for(let a of b)(0,L.f)(a.appId)&&O(a.deploymentId)&&d.checked[a.appId]!==a.deploymentId&&d.pending[a.appId]?.id!==a.deploymentId&&(d.pending[a.appId]={id:a.deploymentId,at:c.toISOString(),attempts:0},e=!0);return{state:d,changed:e}}(P(await c.read()),a,b);return e&&await c.write(d),e}var _=a.i(46396),aa=a.i(492665),ab=a.i(519051),ac=a.i(572134),ad=a.i(646324),ae=a.i(443002),af=a.i(900477),ag=a.i(639271),ah=a.i(514670),ai=a.i(354448),aj=a.i(584897),ak=a.i(697365);async function al(a){let b=[await (0,ae.I)(()=>an(a)),await (0,ae.I)(()=>ap(a)),await (0,ae.I)(()=>aq(a))].find(a=>null!==a);if(b)throw b}let am=a=>a.toISOString();async function an(a){for(let{acc:b,credential:c}of(await (0,ae.O)("turso"))){if((0,ae.s)(a),!c){a.errors.push(`turso/${b.label}: credential can't be read`);continue}let d=await (0,ae.e)(b.id,"turso_database");if(!d.length)continue;let e=await (0,ai.u)(c,(0,ae.s)(a));if(!e.ok){await (0,ae.w)("turso",b,d,e,a);continue}let f=new Set(d.map(a=>String(a.r.meta.org??""))),g=[];for(let h of e.data.filter(a=>f.has(a.slug))){let[e,f]=await Promise.all([(0,ai.X)(c,h.slug,(0,ae.s)(a)),(0,ai.d)(c,h.slug,(0,ae.s)(a))]),i=d.filter(a=>a.r.meta.org===h.slug);if(!e.ok){for(let b of i)await (0,ae.a)(b,{state:"unknown",label:"Unknown",patch:{}},a.now);a.errors.push(`turso/${b.label}: ${e.error}`);continue}let j=new Map(e.data.map(a=>[a.id,a]));for(let b of i)g.push(await ao(b,j.get(b.r.externalId),h,f,a))}let h=new Set(e.data.map(a=>a.slug));for(let b of d.filter(a=>!h.has(String(a.r.meta.org??""))))g.push(await (0,ae.a)(b,{state:"off",label:"Organization not visible to this token",patch:{}},a.now));await (0,ae.M)(g)}}async function ao(a,b,c,d,e){if(!b)return(0,ae.a)(a,{state:"off",label:"Not found",patch:{}},e.now);let f=(0,ag.i)({blockReads:b.blockReads,blockWrites:b.blockWrites,orgBlockedReads:c.blockedReads,orgBlockedWrites:c.blockedWrites}),g={org:c.slug,group:b.group,primaryRegion:b.primaryRegion,plan:c.plan,blockReads:b.blockReads,blockWrites:b.blockWrites};if(d.ok){let a=d.data.byDb.get(b.id);Object.assign(g,{rowsRead:a?.rowsRead??null,rowsWritten:a?.rowsWritten??null,storageBytes:a?.storageBytes??null,orgRowsRead:d.data.org.rowsRead,orgRowsWritten:d.data.org.rowsWritten,orgStorageBytes:d.data.org.storageBytes,orgDatabases:d.data.org.databases,usageAt:am(e.now),usageError:null})}else"column"===(0,af.t)(d,!1)?g.usageError=d.error:e.errors.push(`turso/${a.r.name} usage: ${d.error}`);return(0,ae.a)(a,{...f,patch:g},e.now)}async function ap(a){for(let{acc:b,credential:c}of(await (0,ae.O)("upstash"))){(0,ae.s)(a);let d=c?(0,aj.L)(c):null;if(!d){a.errors.push(`upstash/${b.label}: credential can't be read`);continue}let e=await (0,ae.e)(b.id,"upstash_redis");if(!e.length)continue;let f=await (0,aj.M)(d,(0,ae.s)(a));if(!f.ok){await (0,ae.w)("upstash",b,e,f,a);continue}let g=new Map(f.data.map(a=>[a.id,a])),{out:h,skipped:i}=await (0,ae.T)(a,e,(a,b)=>g.has(a.r.externalId)?(0,aj.Z)(d,a.r.externalId,b):Promise.resolve(null)),j=[];for(let[b,c]of e.entries()){let d=g.get(c.r.externalId);if(!d){j.push(await (0,ae.a)(c,{state:"off",label:"Not found",patch:{}},a.now));continue}let e=(0,ag.t)(d.state),f={region:d.region,status:d.state,type:d.type},i=h[b];i?.ok?Object.assign(f,{...i.data,statsAt:am(a.now),statsError:null}):i&&"column"===(0,af.t)(i,!1)?f.statsError=i.error:i&&a.errors.push(`upstash/${c.r.name} stats: ${i.error}`),j.push(await (0,ae.a)(c,{...e,patch:f},a.now))}await (0,ae.M)(j),(0,ae.W)(i)}}async function aq(a){let b={};for(let{acc:c,credential:d}of(await (0,ae.O)("cloudflare"))){if((0,ae.s)(a),!d)continue;let e=await as(c.id,d,a);if(!e.length){b[c.id]={d1:"error",analytics:null,at:am(a.now),note:"No Cloudflare account found for this token"};continue}let f="ok",g=null;for(let b of e){let e=await (0,ah.L)(d,b,(0,ae.s)(a));if(!e.ok){"error"==(f="scope"===e.kind||"auth"===e.kind?"missing":"error")&&a.errors.push(`d1/${c.label}: ${e.error}`);continue}await at(c.id,b,e.data,a.now);let h=(await (0,ae.e)(c.id,"d1_database")).filter(a=>a.r.meta.accountId===b);if(!h.length)continue;let i=await (0,ah.t)(d,b,(0,ah.Y)(a.now),(0,ae.s)(a));g=i.ok?g??"ok":"scope"===i.kind?"missing":g??"error",i.ok||"scope"===i.kind||a.errors.push(`d1/${c.label} analytics: ${i.error}`);let{out:j,skipped:k}=await (0,ae.T)(a,h,(a,c)=>(0,ah.m)(d,b,a.r.externalId,c)),l=new Map((i.ok?i.data:[]).map(a=>[a.databaseId,a])),m=j.map(a=>a?.ok?a.data.sizeBytes??0:0),n={accountRowsRead:i.ok?i.data.reduce((a,b)=>a+b.rowsRead,0):null,accountRowsWritten:i.ok?i.data.reduce((a,b)=>a+b.rowsWritten,0):null,accountSizeBytes:j.every(a=>a?.ok)?m.reduce((a,b)=>a+b,0):null,accountDatabases:e.data.length},o=[];for(let[b,c]of h.entries()){let d=j[b];void 0!==d&&o.push(await ar(c,d,l.get(c.r.externalId)??null,i.ok,i.ok?null:i.error,n,a))}await (0,ae.M)(o),(0,ae.W)(k)}b[c.id]={d1:f,analytics:g,at:am(a.now),note:null}}await (0,d.f)().insert(e.settings).values({key:ak.F,value:b}).onConflictDoUpdate({target:e.settings.key,set:{value:b,updatedAt:a.now}})}async function ar(a,b,c,d,e,f,g){let h={accountId:a.r.meta.accountId??null,createdAt:a.r.meta.createdAt??null,accountDatabases:f.accountDatabases};if(b.ok?Object.assign(h,{sizeBytes:b.data.sizeBytes,numTables:b.data.numTables,readReplication:b.data.readReplication,detailsAt:am(g.now),detailsError:null}):"scope"===b.kind?h.detailsError=b.error:g.errors.push(`d1/${a.r.name}: ${b.error}`),d?Object.assign(h,{rowsRead:c?.rowsRead??0,rowsWritten:c?.rowsWritten??0,readQueries:c?.readQueries??0,writeQueries:c?.writeQueries??0,accountRowsRead:f.accountRowsRead,accountRowsWritten:f.accountRowsWritten,usageDay:(0,ah.Y)(g.now),usageAt:am(g.now),usageError:null}):h.usageError=e,null!==f.accountSizeBytes&&(h.accountSizeBytes=f.accountSizeBytes),!b.ok&&"transient"===b.kind)return(0,ae.a)(a,{state:"unknown",label:"Unknown",patch:{}},g.now);let i=(0,ag.c)(d?f:{accountRowsRead:null,accountRowsWritten:null});return(0,ae.a)(a,{...i,patch:h},g.now)}async function as(a,c,f){let g=new Set,h=await (0,ah.N)(c,(0,ae.s)(f));if(h.ok)for(let a of h.data)g.add(a.id);for(let c of(await (0,d.f)().select({meta:e.resources.meta}).from(e.resources).where((0,b.b)((0,b.u)(e.resources.accountId,a),(0,b.u)(e.resources.kind,"zone"),(0,b.M)(e.resources.goneAt))).limit(200)))"string"==typeof c.meta.accountId&&/^[0-9a-f]{32}$/i.test(c.meta.accountId)&&g.add(c.meta.accountId);return[...g].slice(0,5)}async function at(a,c,f,g){let h=(await (0,d.f)().select({id:e.resources.id,externalId:e.resources.externalId,meta:e.resources.meta,goneAt:e.resources.goneAt}).from(e.resources).where((0,b.b)((0,b.u)(e.resources.accountId,a),(0,b.u)(e.resources.kind,"d1_database")))).filter(a=>a.meta.accountId===c),i=new Map(h.map(a=>[a.externalId,a])),j=new Set(f.map(a=>a.uuid));await (0,d.f)().transaction(async d=>{for(let h of f){let f={accountId:c,createdAt:h.createdAt},j=i.get(h.uuid);j?await d.update(e.resources).set({name:h.name,meta:f,lastSeenAt:g,goneAt:null,updatedAt:g}).where((0,b.u)(e.resources.id,j.id)):await d.insert(e.resources).values({accountId:a,kind:"d1_database",externalId:h.uuid,name:h.name,meta:f,monitored:!0,lastSeenAt:g}).onConflictDoNothing({target:[e.resources.accountId,e.resources.kind,e.resources.externalId]})}let k=h.filter(a=>!j.has(a.externalId)&&!a.goneAt).map(a=>a.id);k.length&&await d.update(e.resources).set({goneAt:g,updatedAt:g}).where((0,b.y)(e.resources.id,k))})}var au=a.i(666680),av=a.i(263251);async function aw(a=new Date){let b=(0,au.randomUUID)(),e=new Date(a.getTime()+I.d).toISOString(),f=await (0,d.f)().execute(c.B`
1
+ module.exports=[270432,a=>{"use strict";var b=a.i(93321),c=a.i(351674),d=a.i(548734),e=a.i(837137),f=a.i(436357),g=a.i(109068),h=a.i(678831),i=a.i(45617),j=a.i(455317),k=a.i(383487),l=a.i(714530),m=a.i(601219),n=a.i(358179),o=a.i(292321),p=a.i(49146),q=a.i(396667),r=a.i(751263);async function s(a,f,g=new Map){if(!a.length)return 0;let h=await (0,d.f)().select({app:e.deployments.resourceId,id:e.deployments.externalId,source:e.deployments.source,branch:e.deployments.branch,sha:e.deployments.commitSha}).from(e.deployments).where((0,b.b)((0,b.y)(e.deployments.resourceId,a.map(a=>a.id)),(0,b.u)(e.deployments.isCurrent,!0))),i=0;for(let j of a){let a,k=h.find(a=>a.app===j.id);if(!k)continue;let l=(0,r.O)(j.meta?.productionSource),m=g.get(k.id),n={source:k.source??null,branch:k.branch??null,sha:k.sha??null};if(!(a=m?(0,r.s)({...n,branchFrom:m.branchFrom??null,gitDirty:!0===m.gitDirty}):l?.id===k.id?{kind:l.kind,...l.ref?{ref:l.ref}:{},...l.sha?{sha:l.sha}:{}}:"git"===n.source||"cli"===n.source?(0,r.s)(n):null)){if(l?.at&&l.id!==k.id){let a={...l};delete a.at,await (0,d.f)().update(e.resources).set({meta:c.B`${e.resources.meta} || ${JSON.stringify({productionSource:a})}::jsonb`}).where((0,b.u)(e.resources.id,j.id)),i++}continue}a={...a,id:k.id};let o=!!l?.at&&f.getTime()-Date.parse(l.at)<r.u;if((0,r.v)(l,a)&&o)continue;let p={...a,at:f.toISOString()};await (0,d.f)().update(e.resources).set({meta:c.B`${e.resources.meta} || ${JSON.stringify({productionSource:p})}::jsonb`}).where((0,b.u)(e.resources.id,j.id)),i++}return i}var t=a.i(33135),u=a.i(669943),v=a.i(26972),w=a.i(811365),x=a.i(689963),y=a.i(191179),z=a.i(427221),A=a.i(530174);let B=/not enabled/i,C=(a,b,c={})=>({ok:!1,kind:a,error:b,...c}),D="Vercel Web Analytics answered in a format the console doesn't recognise.",E=v.z.object({data:v.z.object({pageviews:w.z.number().finite().nonnegative(),visitors:w.z.number().finite().nonnegative()})}),F=v.z.object({data:x.z.array(y.z.unknown())}),G=v.z.object({timestamp:z.z.string().transform((a,b)=>{let c=Date.parse(a);return Number.isNaN(c)?(b.addIssue({code:"custom",message:"bad timestamp"}),A.z.NEVER):c}),pageviews:w.z.number().finite().nonnegative().nullish().catch(null)});async function H(a,b,c,d){let e=d.since.toISOString(),f=d.until.toISOString(),g=d.fetch??fetch,h=new AbortController,i=setTimeout(()=>h.abort(new DOMException("window","TimeoutError")),d.timeoutMs??8e3),j=d.signal?AbortSignal.any([h.signal,d.signal]):h.signal,k=(0,t.X)(j);async function l(i,l){let m=new URLSearchParams({projectId:c,teamId:b,...l,since:e,until:f});try{let b=await Promise.race([g(`https://api.vercel.com/v1/query/web-analytics/visits/${i}?${m}`,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"},signal:j,cache:"no-store"}),k]),c=null,d=!1;if(401===b.status||403===b.status)c=C("auth",`Vercel rejected this credential (${b.status}).`,{status:b.status});else if(429===b.status){let a=Number(b.headers.get("Retry-After"));c=C("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(a)&&a>0?a:60})}else if(400===b.status){let a=await Promise.race([b.text(),k]).catch(()=>"");B.test(a)?d=!0:c=C("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else b.ok||(c=C("transient",`Vercel Web Analytics returned an error (${b.status}).`,{status:b.status}));if(d)return{kind:"off"};if(c)return await b.body?.cancel().catch(()=>void 0),{kind:"fail",fail:c};try{return{kind:"body",body:await Promise.race([b.json(),k])}}catch(a){if(j.aborted)throw a;return{kind:"fail",fail:C("format",D)}}}catch{return{kind:"fail",fail:j.aborted?h.signal.aborted&&!d.signal?.aborted?C("transient","Vercel Web Analytics didn't answer in time."):C("transient","Reading Vercel Web Analytics was cancelled."):C("transient","Couldn't reach Vercel Web Analytics.")}}}try{let[a,b]=await Promise.all([l("count",{}),l("aggregate",{by:"hour"})]);if("off"===a.kind||"off"===b.kind)return{ok:!0,enabled:!1};let c=[a,b].flatMap(a=>"fail"===a.kind?[a.fail]:[]),d=c.find(a=>"auth"===a.kind);if(d)return d;let e="body"===b.kind?F.safeParse(b.body):null,f="fail"===b.kind?b.fail:e?.success?null:C("format",D),g=c.find(a=>"transient"===a.kind);if(g)return g;if(f)return f;if(!e?.success)return C("format",D);let h="body"===a.kind?E.safeParse(a.body):null,i=e.data.data.flatMap(a=>{let b=G.safeParse(a);return b.success?[b.data]:[]});if(i.length>0&&i.every(a=>null==a.pageviews))return C("format",D);let j=new Map;for(let a of i){let b=36e5*Math.floor(a.timestamp/36e5);j.set(b,(j.get(b)??0)+(a.pageviews??0))}let k=[...j].sort((a,b)=>a[0]-b[0]).slice(-24).map(([a,b])=>({at:new Date(a),views:b}));if(h?.success)return{ok:!0,enabled:!0,total:h.data.data.pageviews,visitors:h.data.data.visitors,hourly:k};return{ok:!0,enabled:!0,total:k.reduce((a,b)=>a+b.views,0),visitors:null,hourly:k}}finally{clearTimeout(i),h.abort()}}var I=a.i(631107);async function J(a,b,c){let d=await (0,o.g)(null);if(!d.length)return;let e=new Date(36e5*Math.floor(a.getTime()/36e5)-828e5);await (0,t.P)(d,3,async d=>{if(Date.now()+8500>b)return;let f=await H(d.token,d.teamId,d.projectId,{since:e,until:a});if(!f.ok)return void c.push(`pageviews/${d.appName}: ${f.error}`);try{await (0,u.r)(d.appId,{pageviews:(0,I.a)(f,a)},a)}catch{c.push(`pageviews/${d.appName}: couldn't save the page views`)}})}var K=a.i(634418),L=a.i(930270),M=a.i(242605),N=a.i(683439);let O="security.afterDeploy",P=a=>"object"==typeof a&&null!==a&&!Array.isArray(a),Q=a=>"string"==typeof a&&a.length>0&&a.length<=100;function R(a){let b={pending:{},checked:{}};if(!P(a))return b;if(P(a.pending))for(let[c,d]of Object.entries(a.pending)){if(!(0,N.f)(c)||!P(d)||!Q(d.id)||"string"!=typeof d.at||Number.isNaN(Date.parse(d.at)))continue;let a="number"==typeof d.attempts&&Number.isInteger(d.attempts)&&d.attempts>=0?Math.min(d.attempts,3):0;b.pending[c]={id:d.id,at:d.at,attempts:a,...!0===d.next?{next:!0}:{},...!0===d.deps?{deps:!0}:{}}}if(P(a.checked))for(let[c,d]of Object.entries(a.checked))(0,N.f)(c)&&Q(d)&&(b.checked[c]=d);return b}function S(a,b){let c,d={...a.pending},e={...a.checked};for(let a of b){let b=d[a];b&&(delete d[a],delete e[a],e[a]=b.id)}return{pending:d,checked:(c=Object.entries(e)).length<=500?e:Object.fromEntries(c.slice(c.length-500))}}let T=(a,b)=>Object.entries(a.pending).filter(([,a])=>!a[b]).map(([a])=>a);var U=a.i(46126);let V="security.slot",W=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0&&a.length<=100).slice(0,1e3):[],X=(a,b)=>[...new Set([...a,...b])].slice(0,1e3),Y=a=>async()=>{let[c]=await (0,d.f)().select({value:e.settings.value}).from(e.settings).where((0,b.u)(e.settings.key,a)).limit(1);return c?.value??null},Z=a=>async b=>{await (0,d.f)().insert(e.settings).values({key:a,value:b}).onConflictDoUpdate({target:e.settings.key,set:{value:b,updatedAt:new Date}})},$={read:Y(O),write:Z(O),readSlot:Y(V),writeSlot:Z(V),nextCheck:M.h,depsStep:(a,b)=>(0,L.O)(a,b)};async function _(a,b=$){var c;let d,e=R(await b.read()),f=(c=a.now,(d=Object.entries(e.pending).filter(([,a])=>c.getTime()-Date.parse(a.at)>216e5).map(([a])=>a)).length?S(e,d):e),g=!a.paused.has("hosting"),h=!a.paused.has("devops"),i=g?T(f,"next"):[],j=h?T(f,"deps"):[],k=a.early?null:function(a,b){let c=a&&"object"==typeof a&&!Array.isArray(a)?a:{};if(c.slot!==b)return{slot:b,runs:0,next:[],repos:[],cut:{},nextDone:!1,depsDone:!1};let d="number"==typeof c.runs&&Number.isInteger(c.runs)&&c.runs>=0?c.runs:0,e={};if(c.cut&&"object"==typeof c.cut&&!Array.isArray(c.cut))for(let[a,b]of Object.entries(c.cut).slice(0,1e3))a.length<=100&&"number"==typeof b&&Number.isInteger(b)&&b>0&&(e[a]=Math.min(b,2));return{slot:b,runs:d,next:W(c.next),repos:W(c.repos),cut:e,nextDone:!0===c.nextDone,depsDone:!0===c.depsDone}}(await b.readSlot(),new Date((0,K.G)("security",a.now)).toISOString()),l=!!k&&g&&!k.nextDone,m=!!k&&h&&!k.depsDone,n=g&&(i.length>0||l),o=h&&(j.length>0||m),p={hosting:g,devops:h,nextDone:new Set,nextStarted:new Set,depsDone:new Set},q=async()=>{let c=Math.min(Date.now()+U.y,!k&&o?a.deadline-2*L.d:a.deadline),d=l?[...k.next,...Object.entries(k.cut).filter(([,a])=>a>=2).map(([a])=>a)]:[],e=l?{first:i,skip:[...new Set(d)].filter(a=>!i.includes(a))}:{only:i},f=await b.nextCheck(c,e);for(let b of f.failed)a.errors.push(`security ${b}`);for(let a of f.done)p.nextDone.add(a);for(let a of i)f.listed.includes(a)||p.nextDone.add(a);for(let a of f.started)p.nextStarted.add(a);if(l){let a=new Set(f.done);for(let b of(k.next=X(k.next,f.done),f.started))a.has(b)||(k.cut[b]=Math.min((k.cut[b]??0)+1,2));k.nextDone=f.listed.every(b=>a.has(b)||(k.cut[b]??0)>=2)}},r=async()=>{let c=await b.depsStep(Math.min(Date.now()+L.o,a.deadline),m?{marked:j,onlyMarked:!1,skip:k.repos}:{marked:j,onlyMarked:!0});for(let b of(c.problem&&a.errors.push(`security deps: ${c.problem}`),c.settled))p.depsDone.add(b);m&&(k.repos=X(k.repos,c.done),k.depsDone=c.complete)};try{k&&k.runs++,k?(o&&await r(),n&&await q()):(n&&await q(),o&&await r())}finally{let a=null;if(k)try{await b.writeSlot(k)}catch(b){a=b}try{let a=function(a,b){let c={},d=[];for(let[e,f]of Object.entries(a.pending)){let a={...f};b.hosting&&!a.next&&(b.nextDone?.has(e)?a.next=!0:b.nextStarted?.has(e)&&(a.attempts=Math.min(a.attempts+1,3))),b.devops&&!a.deps&&b.depsDone?.has(e)&&(a.deps=!0),c[e]=a,((a.next||!b.hosting)&&(a.deps||!b.devops)||a.attempts>=3)&&d.push(e)}return S({pending:c,checked:a.checked},d)}(f,p);JSON.stringify(a)!==JSON.stringify(e)&&await b.write(a)}catch(b){a??=b}if(a)throw a}return{complete:!k||(k.nextDone||!g)&&(k.depsDone||!h)||k.runs>=20}}async function aa(a,b,c=$){if(!a.length)return!1;let{state:d,changed:e}=function(a,b,c){let d={pending:{...a.pending},checked:{...a.checked}},e=!1;for(let a of b)(0,N.f)(a.appId)&&Q(a.deploymentId)&&d.checked[a.appId]!==a.deploymentId&&d.pending[a.appId]?.id!==a.deploymentId&&(d.pending[a.appId]={id:a.deploymentId,at:c.toISOString(),attempts:0},e=!0);return{state:d,changed:e}}(R(await c.read()),a,b);return e&&await c.write(d),e}var ab=a.i(46396),ac=a.i(492665),ad=a.i(519051),ae=a.i(572134),af=a.i(646324),ag=a.i(443002),ah=a.i(900477),ai=a.i(639271),aj=a.i(514670),ak=a.i(354448),al=a.i(584897),am=a.i(697365);async function an(a){let b=[await (0,ag.I)(()=>ap(a)),await (0,ag.I)(()=>ar(a)),await (0,ag.I)(()=>as(a))].find(a=>null!==a);if(b)throw b}let ao=a=>a.toISOString();async function ap(a){for(let{acc:b,credential:c}of(await (0,ag.O)("turso"))){if((0,ag.s)(a),!c){a.errors.push(`turso/${b.label}: credential can't be read`);continue}let d=await (0,ag.e)(b.id,"turso_database");if(!d.length)continue;let e=await (0,ak.u)(c,(0,ag.s)(a));if(!e.ok){await (0,ag.w)("turso",b,d,e,a);continue}let f=new Set(d.map(a=>String(a.r.meta.org??""))),g=[];for(let h of e.data.filter(a=>f.has(a.slug))){let[e,f]=await Promise.all([(0,ak.X)(c,h.slug,(0,ag.s)(a)),(0,ak.d)(c,h.slug,(0,ag.s)(a))]),i=d.filter(a=>a.r.meta.org===h.slug);if(!e.ok){for(let b of i)await (0,ag.a)(b,{state:"unknown",label:"Unknown",patch:{}},a.now);a.errors.push(`turso/${b.label}: ${e.error}`);continue}let j=new Map(e.data.map(a=>[a.id,a]));for(let b of i)g.push(await aq(b,j.get(b.r.externalId),h,f,a))}let h=new Set(e.data.map(a=>a.slug));for(let b of d.filter(a=>!h.has(String(a.r.meta.org??""))))g.push(await (0,ag.a)(b,{state:"off",label:"Organization not visible to this token",patch:{}},a.now));await (0,ag.M)(g)}}async function aq(a,b,c,d,e){if(!b)return(0,ag.a)(a,{state:"off",label:"Not found",patch:{}},e.now);let f=(0,ai.i)({blockReads:b.blockReads,blockWrites:b.blockWrites,orgBlockedReads:c.blockedReads,orgBlockedWrites:c.blockedWrites}),g={org:c.slug,group:b.group,primaryRegion:b.primaryRegion,plan:c.plan,blockReads:b.blockReads,blockWrites:b.blockWrites};if(d.ok){let a=d.data.byDb.get(b.id);Object.assign(g,{rowsRead:a?.rowsRead??null,rowsWritten:a?.rowsWritten??null,storageBytes:a?.storageBytes??null,orgRowsRead:d.data.org.rowsRead,orgRowsWritten:d.data.org.rowsWritten,orgStorageBytes:d.data.org.storageBytes,orgDatabases:d.data.org.databases,usageAt:ao(e.now),usageError:null})}else"column"===(0,ah.t)(d,!1)?g.usageError=d.error:e.errors.push(`turso/${a.r.name} usage: ${d.error}`);return(0,ag.a)(a,{...f,patch:g},e.now)}async function ar(a){for(let{acc:b,credential:c}of(await (0,ag.O)("upstash"))){(0,ag.s)(a);let d=c?(0,al.L)(c):null;if(!d){a.errors.push(`upstash/${b.label}: credential can't be read`);continue}let e=await (0,ag.e)(b.id,"upstash_redis");if(!e.length)continue;let f=await (0,al.M)(d,(0,ag.s)(a));if(!f.ok){await (0,ag.w)("upstash",b,e,f,a);continue}let g=new Map(f.data.map(a=>[a.id,a])),{out:h,skipped:i}=await (0,ag.T)(a,e,(a,b)=>g.has(a.r.externalId)?(0,al.Z)(d,a.r.externalId,b):Promise.resolve(null)),j=[];for(let[b,c]of e.entries()){let d=g.get(c.r.externalId);if(!d){j.push(await (0,ag.a)(c,{state:"off",label:"Not found",patch:{}},a.now));continue}let e=(0,ai.t)(d.state),f={region:d.region,status:d.state,type:d.type},i=h[b];i?.ok?Object.assign(f,{...i.data,statsAt:ao(a.now),statsError:null}):i&&"column"===(0,ah.t)(i,!1)?f.statsError=i.error:i&&a.errors.push(`upstash/${c.r.name} stats: ${i.error}`),j.push(await (0,ag.a)(c,{...e,patch:f},a.now))}await (0,ag.M)(j),(0,ag.W)(i)}}async function as(a){let b={};for(let{acc:c,credential:d}of(await (0,ag.O)("cloudflare"))){if((0,ag.s)(a),!d)continue;let e=await au(c.id,d,a);if(!e.length){b[c.id]={d1:"error",analytics:null,at:ao(a.now),note:"No Cloudflare account found for this token"};continue}let f="ok",g=null;for(let b of e){let e=await (0,aj.L)(d,b,(0,ag.s)(a));if(!e.ok){"error"==(f="scope"===e.kind||"auth"===e.kind?"missing":"error")&&a.errors.push(`d1/${c.label}: ${e.error}`);continue}await av(c.id,b,e.data,a.now);let h=(await (0,ag.e)(c.id,"d1_database")).filter(a=>a.r.meta.accountId===b);if(!h.length)continue;let i=await (0,aj.t)(d,b,(0,aj.Y)(a.now),(0,ag.s)(a));g=i.ok?g??"ok":"scope"===i.kind?"missing":g??"error",i.ok||"scope"===i.kind||a.errors.push(`d1/${c.label} analytics: ${i.error}`);let{out:j,skipped:k}=await (0,ag.T)(a,h,(a,c)=>(0,aj.m)(d,b,a.r.externalId,c)),l=new Map((i.ok?i.data:[]).map(a=>[a.databaseId,a])),m=j.map(a=>a?.ok?a.data.sizeBytes??0:0),n={accountRowsRead:i.ok?i.data.reduce((a,b)=>a+b.rowsRead,0):null,accountRowsWritten:i.ok?i.data.reduce((a,b)=>a+b.rowsWritten,0):null,accountSizeBytes:j.every(a=>a?.ok)?m.reduce((a,b)=>a+b,0):null,accountDatabases:e.data.length},o=[];for(let[b,c]of h.entries()){let d=j[b];void 0!==d&&o.push(await at(c,d,l.get(c.r.externalId)??null,i.ok,i.ok?null:i.error,n,a))}await (0,ag.M)(o),(0,ag.W)(k)}b[c.id]={d1:f,analytics:g,at:ao(a.now),note:null}}await (0,d.f)().insert(e.settings).values({key:am.F,value:b}).onConflictDoUpdate({target:e.settings.key,set:{value:b,updatedAt:a.now}})}async function at(a,b,c,d,e,f,g){let h={accountId:a.r.meta.accountId??null,createdAt:a.r.meta.createdAt??null,accountDatabases:f.accountDatabases};if(b.ok?Object.assign(h,{sizeBytes:b.data.sizeBytes,numTables:b.data.numTables,readReplication:b.data.readReplication,detailsAt:ao(g.now),detailsError:null}):"scope"===b.kind?h.detailsError=b.error:g.errors.push(`d1/${a.r.name}: ${b.error}`),d?Object.assign(h,{rowsRead:c?.rowsRead??0,rowsWritten:c?.rowsWritten??0,readQueries:c?.readQueries??0,writeQueries:c?.writeQueries??0,accountRowsRead:f.accountRowsRead,accountRowsWritten:f.accountRowsWritten,usageDay:(0,aj.Y)(g.now),usageAt:ao(g.now),usageError:null}):h.usageError=e,null!==f.accountSizeBytes&&(h.accountSizeBytes=f.accountSizeBytes),!b.ok&&"transient"===b.kind)return(0,ag.a)(a,{state:"unknown",label:"Unknown",patch:{}},g.now);let i=(0,ai.c)(d?f:{accountRowsRead:null,accountRowsWritten:null});return(0,ag.a)(a,{...i,patch:h},g.now)}async function au(a,c,f){let g=new Set,h=await (0,aj.N)(c,(0,ag.s)(f));if(h.ok)for(let a of h.data)g.add(a.id);for(let c of(await (0,d.f)().select({meta:e.resources.meta}).from(e.resources).where((0,b.b)((0,b.u)(e.resources.accountId,a),(0,b.u)(e.resources.kind,"zone"),(0,b.M)(e.resources.goneAt))).limit(200)))"string"==typeof c.meta.accountId&&/^[0-9a-f]{32}$/i.test(c.meta.accountId)&&g.add(c.meta.accountId);return[...g].slice(0,5)}async function av(a,c,f,g){let h=(await (0,d.f)().select({id:e.resources.id,externalId:e.resources.externalId,meta:e.resources.meta,goneAt:e.resources.goneAt}).from(e.resources).where((0,b.b)((0,b.u)(e.resources.accountId,a),(0,b.u)(e.resources.kind,"d1_database")))).filter(a=>a.meta.accountId===c),i=new Map(h.map(a=>[a.externalId,a])),j=new Set(f.map(a=>a.uuid));await (0,d.f)().transaction(async d=>{for(let h of f){let f={accountId:c,createdAt:h.createdAt},j=i.get(h.uuid);j?await d.update(e.resources).set({name:h.name,meta:f,lastSeenAt:g,goneAt:null,updatedAt:g}).where((0,b.u)(e.resources.id,j.id)):await d.insert(e.resources).values({accountId:a,kind:"d1_database",externalId:h.uuid,name:h.name,meta:f,monitored:!0,lastSeenAt:g}).onConflictDoNothing({target:[e.resources.accountId,e.resources.kind,e.resources.externalId]})}let k=h.filter(a=>!j.has(a.externalId)&&!a.goneAt).map(a=>a.id);k.length&&await d.update(e.resources).set({goneAt:g,updatedAt:g}).where((0,b.y)(e.resources.id,k))})}var aw=a.i(666680),ax=a.i(263251);async function ay(a=new Date){let b=(0,aw.randomUUID)(),e=new Date(a.getTime()+K.d).toISOString(),f=await (0,d.f)().execute(c.B`
2
2
  insert into ops.settings (key, value) values ('collector.lease', ${JSON.stringify({until:e,owner:b})}::jsonb)
3
3
  on conflict (key) do update set value = excluded.value, updated_at = now()
4
4
  where (ops.settings.value->>'until')::timestamptz < ${a.toISOString()}::timestamptz
5
- returning key`);return(0,av.f)(f).length>0?b:null}async function ax(a){await (0,d.f)().execute(c.B`
5
+ returning key`);return(0,ax.f)(f).length>0?b:null}async function az(a){await (0,d.f)().execute(c.B`
6
6
  update ops.settings set value = jsonb_build_object('until', '1970-01-01T00:00:00Z'), updated_at = now()
7
- where key = 'collector.lease' and value->>'owner' = ${a}`)}var ay=a.i(418864),az=a.i(903816),aA=a.i(445710),aB=a.i(306556),aC=a.i(648338);a.i(569057);let aD="collector.lastRun",aE="vercel.backoffUntil",aF="vercel.currentMiss",aG={supabase:ae.P,supabaseUsage:ae.y,neon:ae.f,firebase:ae.g,firebaseUsage:ae.x,extraDbs:al};async function aH(){let a=await (0,d.f)().select({key:e.settings.key,value:e.settings.value}).from(e.settings).where((0,b.y)(e.settings.key,[aD,M])).limit(2);return{lastRun:a.find(a=>a.key===aD)?.value??{},afterDeploy:a.find(a=>a.key===M)?.value??null}}async function aI(a){await (0,d.f)().insert(e.settings).values({key:aD,value:a}).onConflictDoUpdate({target:e.settings.key,set:{value:a,updatedAt:new Date}})}let aJ=a=>(0,m.f)(a);async function aK(a,f,g,h,i=[]){let j=(await (0,d.f)().select({m:e.monitors,app:e.resources}).from(e.monitors).innerJoin(e.resources,(0,b.u)(e.resources.id,e.monitors.resourceId)).where((0,b.b)((0,b.u)(e.monitors.kind,"http"),(0,b.u)(e.monitors.paused,!1),(0,b.u)(e.monitors.ownerPaused,!1),(0,b.u)(e.resources.monitored,!0),(0,b.M)(e.resources.goneAt))).orderBy(c.B`${e.monitors.lastCheckedAt} asc nulls first`,e.monitors.id)).filter(({m:b})=>(0,I.B)(b.lastCheckedAt,a,h));if(!j.length)return 0;let k=await (0,r.P)(j,6,({m:a})=>{let b=(0,I.P)(a.timeoutMs,f,Date.now());return null===b?Promise.resolve(null):(0,r.b)(a.url,{expectedStatus:a.expectedStatus,timeoutMs:b,body:(0,az.C)(a)})}),l=j.flatMap((a,b)=>k[b]?[{...a,r:k[b]}]:[]);if(l.length<j.length&&g.push(`checks: ${j.length-l.length} monitors skipped, time budget used`),!l.length)return 0;let m=[];for(let b of l)await (0,aA.j)(b.m,b.r,a)&&m.push(b);return m.length?(await (0,d.f)().insert(e.checks).values(m.map(({m:b,app:c,r:d})=>({monitorId:b.id,at:a,ok:d.ok,statusCode:d.statusCode,latencyMs:d.latencyMs,error:d.error,inMaintenance:null!==(0,ab.x)(i,{monitorId:b.id,appId:c.id},a)}))),await aJ(m.map(({m:b,app:c,r:d})=>(0,aB.F)({resourceId:c.id,path:(0,ad.K)(b.url),prev:b.state,next:(0,aB.G)(b.failStreak,d).state,code:d.statusCode,error:d.error,at:a}))),m.length):0}let aL=["checks","heartbeats"];async function aM(a,b,c=l.w){if(!aL.some(b=>a.includes(b)))return[];try{return await c()}catch(a){return b.push(`maintenance: ${(0,aC.f)(a)}`),[]}}async function aN(a){let[c]=await (0,d.f)().select().from(e.settings).where((0,b.u)(e.settings.key,aE)).limit(1),f=c?.value?.until;return!!f&&a.getTime()<new Date(f).getTime()}async function aO(a,b){if("transient"!==a.kind||!a.retryAfterS)return!1;let c={until:new Date(b.getTime()+1e3*Math.min(a.retryAfterS,3600)).toISOString()};return await (0,d.f)().insert(e.settings).values({key:aE,value:c}).onConflictDoUpdate({target:e.settings.key,set:{value:c,updatedAt:b}}),!0}let aP=a=>c.B`coalesce(${e.deployments.externalId} = ${a}::text, false)`;async function aQ(a,f,g,h,i=$){let j=[];try{for(let i of a){let a=f.filter(a=>a.resourceId===i.id),{currentId:k,previousId:l}=(0,ad.a)(a.map(a=>({id:a.id,createdAt:a.createdAt??new Date(0)})),(i.externalId?g.get(i.externalId):null)??null),m=await (0,d.f)().update(e.deployments).set({isCurrent:aP(k),isPreviousProduction:aP(l),updatedAt:h.now}).where((0,b.b)((0,b.u)(e.deployments.resourceId,i.id),(0,b.F)(c.B`${e.deployments.isCurrent} is distinct from ${aP(k)}`,c.B`${e.deployments.isPreviousProduction} is distinct from ${aP(l)}`))).returning({id:e.deployments.externalId}),n=function(a){var b,c;let d=a.currentId;return d&&a.state.checked[a.appId]!==d&&a.state.pending[a.appId]?.id!==d&&(b=a.changedIds,((c=d)&&b.includes(c)?c:null)||a.createdAt&&a.now.getTime()-a.createdAt.getTime()<=216e5)?d:null}({appId:i.id,currentId:k,changedIds:m.map(a=>a.id),createdAt:a.find(a=>a.id===k)?.createdAt??null,state:h.afterDeploy,now:h.now});n&&j.push({appId:i.id,deploymentId:n})}}finally{if(j.length)try{await i(j,h.now)}catch(a){h.errors.push(`vercel/${h.label}: after-deploy security check not scheduled: ${(0,aC.f)(a)}`)}}}async function aR(a,c,f,h){if(await aN(a))return;let i=(0,aa.f)().OPS_ENCRYPTION_KEY;for(let j of(await (0,d.f)().select().from(e.accounts).where((0,b.b)((0,b.u)(e.accounts.provider,"vercel"),(0,b.u)(e.accounts.status,"ok"))))){let k=(0,n.V)({ciphertext:j.credentialCiphertext,iv:j.credentialIv},i);if((0,g.A)(k)||!k){f.push(`vercel/${j.label}: credential can't be read`);continue}let l=await (0,d.f)().select().from(e.resources).where((0,b.b)((0,b.u)(e.resources.accountId,j.id),(0,b.u)(e.resources.kind,"app"),(0,b.u)(e.resources.monitored,!0),(0,b.M)(e.resources.goneAt)));if(!l.length)continue;let m=new Map(l.map(a=>[a.externalId,a])),o=await (0,ac.X)(k);if(!o.ok){let c=(0,g.E)({ok:!1,kind:o.kind,error:o.error});if(c&&await (0,d.f)().update(e.accounts).set({...c,updatedAt:a}).where((0,b.u)(e.accounts.id,j.id)),f.push(`vercel/${j.label}: ${o.error}`),await aO(o,a))return;continue}let p=new Set(l.map(a=>String(a.meta.teamId)));for(let g of o.data.filter(a=>p.has(a.id))){if(Date.now()>c)return void f.push("vercel: skipped remaining teams, time budget used");let[i,j]=await Promise.all([(0,ac.W)(k,g),(0,ac.K)(k,g,{since:a.getTime()-6048e5,limit:100})]);if(!i.ok||!j.ok){let b=i.ok?j:i;if(f.push(`vercel/${g.name}: ${b.error}`),await aO(b,a))return;continue}let n=new Map(i.data.map(a=>[a.id,a.currentDeploymentId])),o=j.data.filter(a=>m.has(a.projectId)),p=new Map((o.length?await (0,d.f)().select({externalId:e.deployments.externalId,state:e.deployments.state,target:e.deployments.target,branch:e.deployments.branch,commitSha:e.deployments.commitSha,commitMessage:e.deployments.commitMessage,source:e.deployments.source,url:e.deployments.url,buildingAt:e.deployments.buildingAt,readyAt:e.deployments.readyAt}).from(e.deployments).where((0,b.y)(e.deployments.externalId,o.map(a=>a.id))):[]).map(a=>[a.externalId,a])),q=[];for(let b of o){let c=m.get(b.projectId),f=p.get(b.id),g={state:b.state,target:b.target,branch:b.branch,commitSha:b.sha,commitMessage:b.message,source:b.source,url:b.url,buildingAt:b.buildingAt,readyAt:b.readyAt};if((0,ad.E)(f,g)){let f={resourceId:c.id,externalId:b.id,...g,createdAtProvider:b.createdAt,updatedAt:a};await (0,d.f)().insert(e.deployments).values(f).onConflictDoUpdate({target:e.deployments.externalId,set:f})}q.push((0,aB.L)(f?.state,b,c.id,a))}await aJ(q);let r=l.filter(a=>String(a.meta.teamId)===g.id),s=await (0,d.f)().select({resourceId:e.deployments.resourceId,id:e.deployments.externalId,createdAt:e.deployments.createdAtProvider}).from(e.deployments).where((0,b.b)((0,b.y)(e.deployments.resourceId,r.map(a=>a.id)),(0,b.u)(e.deployments.target,"production"),(0,b.u)(e.deployments.state,"ready"))),[t]=await (0,d.f)().select().from(e.settings).where((0,b.u)(e.settings.key,aF)).limit(1),u=[],v=()=>u.length?(0,d.f)().insert(e.settings).values({key:aF,value:(0,ad.Y)(t?.value,u,a)}).onConflictDoUpdate({target:e.settings.key,set:{value:(0,ad.Y)(t?.value,u,a),updatedAt:a}}):Promise.resolve();for(let b of(0,ad.Q)(r,n,s,(0,ad.S)(t?.value,a))){if(Date.now()>c)break;let h=await (0,ac.S)(k,g,b.deploymentId);if(!h.ok){if(f.push(`vercel/${g.name}: current deployment: ${h.error}`),await aO(h,a))return void await v();u.push(b.deploymentId);continue}let i=h.data,j={resourceId:b.appId,externalId:i.id,state:i.state,target:i.target,branch:i.branch,commitSha:i.sha,commitMessage:i.message,source:i.source,url:i.url,buildingAt:i.buildingAt,readyAt:i.readyAt,createdAtProvider:i.createdAt,updatedAt:a};await (0,d.f)().insert(e.deployments).values(j).onConflictDoUpdate({target:e.deployments.externalId,set:j}),"ready"===i.state&&"production"===i.target?s.push({resourceId:b.appId,id:i.id,createdAt:i.createdAt}):u.push(b.deploymentId)}await v(),await aQ(r,s,n,{now:a,afterDeploy:h,errors:f,label:g.name})}}}async function aS(a){let g=await (0,d.f)().select().from(e.resources).where((0,b.b)((0,b.u)(e.resources.kind,"app"),(0,b.u)(e.resources.monitored,!0),(0,b.M)(e.resources.goneAt)));if(!g.length)return;let h=await (0,d.f)().select().from(e.monitors).where((0,b.b)((0,b.y)(e.monitors.resourceId,g.map(a=>a.id)),(0,b.u)(e.monitors.paused,!1),(0,b.u)(e.monitors.ownerPaused,!1))),i=new Set((await (0,d.f)().select({r:e.deployments.resourceId}).from(e.deployments).where((0,b.b)((0,b.y)(e.deployments.resourceId,g.map(a=>a.id)),(0,b.u)(e.deployments.target,"production"),(0,b.u)(e.deployments.state,"building"),(0,b.B)(e.deployments.createdAtProvider,new Date(a.getTime()-36e5))))).map(a=>a.r)),j=await (0,ae.q)(g.map(a=>a.id)),k=new Map((await (0,d.f)().select().from(e.snapshots).where((0,b.y)(e.snapshots.resourceId,g.map(a=>a.id)))).map(a=>[a.resourceId,a])),l=new Map(g.map(a=>[a.id,a])),m=(0,f.P)(h.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.resourceId,appName:l.get(a.resourceId)?.name??"",appMeta:l.get(a.resourceId)?.meta,lastError:a.lastError})),g),n=a=>m.has(a.id)&&"err"===a.state?"warn":a.state;for(let[a,i]of(0,f.R)(h.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.resourceId,appName:l.get(a.resourceId)?.name??"",appMeta:l.get(a.resourceId)?.meta,lastError:a.lastError})),g))await (0,d.f)().update(e.resources).set({meta:c.B`${e.resources.meta} || ${JSON.stringify({pastDomains:i})}::jsonb`}).where((0,b.u)(e.resources.id,a));for(let b of g){let f=h.filter(a=>a.resourceId===b.id),g=(0,aB.V)({monitors:f.map(n),building:i.has(b.id),dbPaused:j.has(b.id)}),l=f.find(a=>"err"===a.state)??f.find(a=>"warn"===a.state),m={code:l?.lastStatus??null,latencyMs:f.find(a=>"heartbeat"!==a.kind)?.lastLatencyMs??null,dbPaused:j.has(b.id)},o=k.get(b.id);await (0,d.f)().insert(e.snapshots).values({resourceId:b.id,state:g,data:m,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:e.snapshots.resourceId,set:{state:g,data:c.B`${e.snapshots.data} || ${JSON.stringify(m)}::jsonb`,collectedAt:a,...o?.state!==g?{stateSince:a}:{}}})}}async function aT(a,b={}){let c={writeLastRun:aI,refreshApps:aS,refreshNetwork:ay.x,invalidate:h.D,...b};try{await c.writeLastRun({...a.lastRun,...Object.fromEntries(a.done.map(b=>[b,a.started.toISOString()]))});try{await c.refreshApps(new Date)}catch(b){a.errors.push(`app-snapshots: ${(0,aC.f)(b)}`)}if(a.done.some(a=>ay.p.includes(a)))try{await c.refreshNetwork(new Date)}catch(b){a.errors.push(`network-states: ${(0,aC.f)(b)}`)}}finally{c.invalidate((0,i.o)(a.tried??a.done))}}async function aU(a,b,c,d={evaluate:j.$,deliver:p.q,digest:p.J}){let e=[];if(a.includes("alerts"))if(Date.now()>b)c.push("alerts: skipped, time budget used");else{let a=!0;try{await d.evaluate(new Date),console.info("collector alerts evaluated")}catch(b){a=!1,c.push(`alerts: ${(0,aC.f)(b)}`)}try{await d.deliver(new Date,b),console.info("collector notifications delivered")}catch(b){a=!1,c.push(`notify: ${(0,aC.f)(b)}`)}a&&e.push("alerts")}if(a.includes("digest")&&(0,I.z)("digest",b,Date.now()))try{await d.digest(new Date),console.info("collector digest done"),e.push("digest")}catch(a){c.push(`digest: ${(0,aC.f)(a)}`)}return e}async function aV(a,b,c,d){let e=[],f=[];for(let g of a){if(Date.now()>b){c.push(`${g}: skipped, time budget used`);continue}if((0,I.z)(g,b,Date.now())){f.push(g);try{await d(g),e.push(g)}catch(a){c.push(`${g}: ${(0,aC.f)(a)}`)}}}return{done:e,tried:f}}async function aW(a){let c,f=new Date,g=await aw(f);if(!g)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[c]=await (0,d.f)().insert(e.collectorRuns).values({startedAt:f,trigger:"builtin"===a?"manual":a}).returning({id:e.collectorRuns.id})}catch(a){throw await ax(g).catch(()=>void 0),a}let h=[],i=[],j=0,l=f.getTime()+I.p,m=a=>console.info(`collector ${a} +${Date.now()-f.getTime()}ms`);try{var n;m("start");let{lastRun:b,afterDeploy:c}=await aH(),d="cron_job_org"!==a&&"builtin"!==a,e=await (0,q.I)(),{due:g,early:p}=(0,I._)((0,I.S)(b,f,d,e),(n=P(c),Object.keys(n.pending).length>0),e),r=!1,s=a=>p||!r?a.filter(a=>"security"!==a):a,t=g.filter(a=>I.u.includes(a)),u=t.includes("alerts")?l-I.X:l,v=await aM(g,h);m(`due ${g.join(",")}`);let{done:w,tried:x}=await aV(g.filter(a=>!I.u.includes(a)),u,h,async a=>{if(m(`task ${a}`),"heartbeats"===a){let a=new Date;j+=await (0,k.f)(a,(b,c)=>null!==(0,ab.x)(v,{monitorId:b,appId:c},a),d)}"checks"===a&&(j+=await aK(new Date,u,h,d,v)),"vercel"===a&&await aR(new Date,u,h,P(c));let b=aG[a];b&&await b({now:new Date,deadline:u,errors:h,protectOnly:(0,I.$)(a,e)}),"cloudflare"===a&&await (0,ay.h)(new Date,u,h),"domains"===a&&await (0,ay.H)(new Date,u,h),"tls"===a&&await (0,ay.V)(new Date,u,h),"rdap"===a&&await (0,ay.W)(new Date,u,h),"eol"===a&&await (0,ay.i)(new Date,u,h),"status"===a&&await (0,_.i)(new Date),"logs"===a&&await (0,o._)(new Date,u,h),"pageviews"===a&&await H(new Date,u,h),"security"===a&&(r=(await Z({now:f,deadline:u,errors:h,paused:e,early:p})).complete)});i.push(...w),m("main done"),await aT({lastRun:b,done:s(i),tried:x,started:f,errors:h}),m("settled");let y=await aU(t,l,h);m("post done"),y.length&&await aI({...b,...Object.fromEntries(s([...i,...y]).map(a=>[a,f.toISOString()]))}),i.push(...y)}catch(a){h.push(`run: ${(0,aC.f)(a)}`)}finally{let a=Date.now()-f.getTime();await (0,d.f)().update(e.collectorRuns).set({finishedAt:new Date,ok:0===h.length,errorSummary:h.join("\n").slice(0,2e3)||null,durationMs:a,tasks:i,checks:j}).where((0,b.u)(e.collectorRuns.id,c.id)).catch(()=>void 0),await ax(g).catch(()=>void 0)}return{skipped:!1,ok:0===h.length,tasks:i,checks:j,durationMs:Date.now()-f.getTime(),errors:h}}a.s(["f",0,aW],270432)}];
7
+ where key = 'collector.lease' and value->>'owner' = ${a}`)}var aA=a.i(418864),aB=a.i(50908),aC=a.i(903816),aD=a.i(445710),aE=a.i(306556),aF=a.i(648338);a.i(569057);let aG="collector.lastRun",aH="vercel.backoffUntil",aI="vercel.currentMiss",aJ={supabase:ag.P,supabaseUsage:ag.y,neon:ag.f,firebase:ag.g,firebaseUsage:ag.x,extraDbs:an};async function aK(){let a=await (0,d.f)().select({key:e.settings.key,value:e.settings.value}).from(e.settings).where((0,b.y)(e.settings.key,[aG,O])).limit(2);return{lastRun:a.find(a=>a.key===aG)?.value??{},afterDeploy:a.find(a=>a.key===O)?.value??null}}async function aL(a){await (0,d.f)().insert(e.settings).values({key:aG,value:a}).onConflictDoUpdate({target:e.settings.key,set:{value:a,updatedAt:new Date}})}let aM=a=>(0,m.f)(a);async function aN(a,f,g,h,i=[]){let j=(await (0,d.f)().select({m:e.monitors,app:e.resources}).from(e.monitors).innerJoin(e.resources,(0,b.u)(e.resources.id,e.monitors.resourceId)).where((0,b.b)((0,b.u)(e.monitors.kind,"http"),(0,b.u)(e.monitors.paused,!1),(0,b.u)(e.monitors.ownerPaused,!1),(0,b.u)(e.resources.monitored,!0),(0,b.M)(e.resources.goneAt))).orderBy(c.B`${e.monitors.lastCheckedAt} asc nulls first`,e.monitors.id)).filter(({m:b})=>(0,K.B)(b.lastCheckedAt,a,h));if(!j.length)return 0;let k=await (0,t.P)(j,6,({m:a})=>{let b=(0,K.P)(a.timeoutMs,f,Date.now());return null===b?Promise.resolve(null):(0,t.b)(a.url,{expectedStatus:a.expectedStatus,timeoutMs:b,body:(0,aC.C)(a)})}),l=j.flatMap((a,b)=>k[b]?[{...a,r:k[b]}]:[]);if(l.length<j.length&&g.push(`checks: ${j.length-l.length} monitors skipped, time budget used`),!l.length)return 0;let m=[];for(let b of l)await (0,aD.j)(b.m,b.r,a)&&m.push(b);return m.length?(await (0,d.f)().insert(e.checks).values(m.map(({m:b,app:c,r:d})=>({monitorId:b.id,at:a,ok:d.ok,statusCode:d.statusCode,latencyMs:d.latencyMs,error:d.error,inMaintenance:null!==(0,ad.x)(i,{monitorId:b.id,appId:c.id},a)}))),await aM(m.map(({m:b,app:c,r:d})=>(0,aE.F)({resourceId:c.id,path:(0,af.K)(b.url),prev:b.state,next:(0,aE.G)(b.failStreak,d).state,code:d.statusCode,error:d.error,at:a}))),m.length):0}let aO=["checks","heartbeats"];async function aP(a,b,c=l.w){if(!aO.some(b=>a.includes(b)))return[];try{return await c()}catch(a){return b.push(`maintenance: ${(0,aF.f)(a)}`),[]}}async function aQ(a){let[c]=await (0,d.f)().select().from(e.settings).where((0,b.u)(e.settings.key,aH)).limit(1),f=c?.value?.until;return!!f&&a.getTime()<new Date(f).getTime()}async function aR(a,b){if("transient"!==a.kind||!a.retryAfterS)return!1;let c={until:new Date(b.getTime()+1e3*Math.min(a.retryAfterS,3600)).toISOString()};return await (0,d.f)().insert(e.settings).values({key:aH,value:c}).onConflictDoUpdate({target:e.settings.key,set:{value:c,updatedAt:b}}),!0}let aS=a=>c.B`coalesce(${e.deployments.externalId} = ${a}::text, false)`;async function aT(a,f,g,h,i=aa){let j=[];try{for(let i of a){let a=f.filter(a=>a.resourceId===i.id),{currentId:k,previousId:l}=(0,af.a)(a.map(a=>({id:a.id,createdAt:a.createdAt??new Date(0)})),(i.externalId?g.get(i.externalId):null)??null),m=await (0,d.f)().update(e.deployments).set({isCurrent:aS(k),isPreviousProduction:aS(l),updatedAt:h.now}).where((0,b.b)((0,b.u)(e.deployments.resourceId,i.id),(0,b.F)(c.B`${e.deployments.isCurrent} is distinct from ${aS(k)}`,c.B`${e.deployments.isPreviousProduction} is distinct from ${aS(l)}`))).returning({id:e.deployments.externalId}),n=function(a){var b,c;let d=a.currentId;return d&&a.state.checked[a.appId]!==d&&a.state.pending[a.appId]?.id!==d&&(b=a.changedIds,((c=d)&&b.includes(c)?c:null)||a.createdAt&&a.now.getTime()-a.createdAt.getTime()<=216e5)?d:null}({appId:i.id,currentId:k,changedIds:m.map(a=>a.id),createdAt:a.find(a=>a.id===k)?.createdAt??null,state:h.afterDeploy,now:h.now});n&&j.push({appId:i.id,deploymentId:n})}}finally{if(j.length)try{await i(j,h.now)}catch(a){h.errors.push(`vercel/${h.label}: after-deploy security check not scheduled: ${(0,aF.f)(a)}`)}}}let aU=a=>new Map(a.map(a=>[a.id,{...a.branchFrom?{branchFrom:a.branchFrom}:{},...a.gitDirty?{gitDirty:!0}:{}}]));async function aV(a,b,c,d,e=new Map,f=s){try{await f(a,b,e)}catch(a){c.push(`vercel/${d}: production source not saved: ${(0,aF.f)(a)}`)}}async function aW(a,c,f,h){if(await aQ(a))return;let i=(0,ac.f)().OPS_ENCRYPTION_KEY;for(let j of(await (0,d.f)().select().from(e.accounts).where((0,b.b)((0,b.u)(e.accounts.provider,"vercel"),(0,b.u)(e.accounts.status,"ok"))))){let k=(0,n.V)({ciphertext:j.credentialCiphertext,iv:j.credentialIv},i);if((0,g.A)(k)||!k){f.push(`vercel/${j.label}: credential can't be read`);continue}let l=await (0,d.f)().select().from(e.resources).where((0,b.b)((0,b.u)(e.resources.accountId,j.id),(0,b.u)(e.resources.kind,"app"),(0,b.u)(e.resources.monitored,!0),(0,b.M)(e.resources.goneAt)));if(!l.length)continue;let m=new Map(l.map(a=>[a.externalId,a])),o=await (0,ae.X)(k);if(!o.ok){let c=(0,g.E)({ok:!1,kind:o.kind,error:o.error});if(c&&await (0,d.f)().update(e.accounts).set({...c,updatedAt:a}).where((0,b.u)(e.accounts.id,j.id)),f.push(`vercel/${j.label}: ${o.error}`),await aR(o,a))return;continue}let p=new Set(l.map(a=>String(a.meta.teamId)));for(let g of o.data.filter(a=>p.has(a.id))){if(Date.now()>c)return void f.push("vercel: skipped remaining teams, time budget used");let[i,j]=await Promise.all([(0,ae.W)(k,g),(0,ae.K)(k,g,{since:a.getTime()-6048e5,limit:100})]);if(!i.ok||!j.ok){let b=i.ok?j:i;if(f.push(`vercel/${g.name}: ${b.error}`),await aR(b,a))return;continue}let n=new Map(i.data.map(a=>[a.id,a.currentDeploymentId])),o=j.data.filter(a=>m.has(a.projectId)),p=aU(o),q=new Map((o.length?await (0,d.f)().select({externalId:e.deployments.externalId,state:e.deployments.state,target:e.deployments.target,branch:e.deployments.branch,commitSha:e.deployments.commitSha,commitMessage:e.deployments.commitMessage,source:e.deployments.source,url:e.deployments.url,buildingAt:e.deployments.buildingAt,readyAt:e.deployments.readyAt}).from(e.deployments).where((0,b.y)(e.deployments.externalId,o.map(a=>a.id))):[]).map(a=>[a.externalId,a])),r=[];for(let b of o){let c=m.get(b.projectId),f=q.get(b.id),g={state:b.state,target:b.target,branch:b.branch,commitSha:b.sha,commitMessage:b.message,source:b.source,url:b.url,buildingAt:b.buildingAt,readyAt:b.readyAt};if((0,af.E)(f,g)){let f={resourceId:c.id,externalId:b.id,...g,createdAtProvider:b.createdAt,updatedAt:a};await (0,d.f)().insert(e.deployments).values(f).onConflictDoUpdate({target:e.deployments.externalId,set:f})}r.push((0,aE.L)(f?.state,b,c.id,a))}await aM(r);let s=l.filter(a=>String(a.meta.teamId)===g.id),t=await (0,d.f)().select({resourceId:e.deployments.resourceId,id:e.deployments.externalId,createdAt:e.deployments.createdAtProvider}).from(e.deployments).where((0,b.b)((0,b.y)(e.deployments.resourceId,s.map(a=>a.id)),(0,b.u)(e.deployments.target,"production"),(0,b.u)(e.deployments.state,"ready"))),[u]=await (0,d.f)().select().from(e.settings).where((0,b.u)(e.settings.key,aI)).limit(1),v=[],w=()=>v.length?(0,d.f)().insert(e.settings).values({key:aI,value:(0,af.Y)(u?.value,v,a)}).onConflictDoUpdate({target:e.settings.key,set:{value:(0,af.Y)(u?.value,v,a),updatedAt:a}}):Promise.resolve();for(let b of(0,af.Q)(s,n,t,(0,af.S)(u?.value,a))){if(Date.now()>c)break;let h=await (0,ae.S)(k,g,b.deploymentId);if(!h.ok){if(f.push(`vercel/${g.name}: current deployment: ${h.error}`),await aR(h,a))return void await w();v.push(b.deploymentId);continue}let i=h.data;for(let[a,b]of aU([i]))p.set(a,b);let j={resourceId:b.appId,externalId:i.id,state:i.state,target:i.target,branch:i.branch,commitSha:i.sha,commitMessage:i.message,source:i.source,url:i.url,buildingAt:i.buildingAt,readyAt:i.readyAt,createdAtProvider:i.createdAt,updatedAt:a};await (0,d.f)().insert(e.deployments).values(j).onConflictDoUpdate({target:e.deployments.externalId,set:j}),"ready"===i.state&&"production"===i.target?t.push({resourceId:b.appId,id:i.id,createdAt:i.createdAt}):v.push(b.deploymentId)}await w(),await aT(s,t,n,{now:a,afterDeploy:h,errors:f,label:g.name}),await aV(s,a,f,g.name,p)}}}async function aX(a){let g=await (0,d.f)().select().from(e.resources).where((0,b.b)((0,b.u)(e.resources.kind,"app"),(0,b.u)(e.resources.monitored,!0),(0,b.M)(e.resources.goneAt)));if(!g.length)return;let h=await (0,d.f)().select().from(e.monitors).where((0,b.b)((0,b.y)(e.monitors.resourceId,g.map(a=>a.id)),(0,b.u)(e.monitors.paused,!1),(0,b.u)(e.monitors.ownerPaused,!1))),i=new Set((await (0,d.f)().select({r:e.deployments.resourceId}).from(e.deployments).where((0,b.b)((0,b.y)(e.deployments.resourceId,g.map(a=>a.id)),(0,b.u)(e.deployments.target,"production"),(0,b.u)(e.deployments.state,"building"),(0,b.B)(e.deployments.createdAtProvider,new Date(a.getTime()-36e5))))).map(a=>a.r)),j=await (0,ag.q)(g.map(a=>a.id)),k=new Map((await (0,d.f)().select().from(e.snapshots).where((0,b.y)(e.snapshots.resourceId,g.map(a=>a.id)))).map(a=>[a.resourceId,a])),l=new Map(g.map(a=>[a.id,a])),m=(0,f.P)(h.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.resourceId,appName:l.get(a.resourceId)?.name??"",appMeta:l.get(a.resourceId)?.meta,lastError:a.lastError})),g),n=a=>m.has(a.id)&&"err"===a.state?"warn":a.state;for(let[a,i]of(0,f.R)(h.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.resourceId,appName:l.get(a.resourceId)?.name??"",appMeta:l.get(a.resourceId)?.meta,lastError:a.lastError})),g))await (0,d.f)().update(e.resources).set({meta:c.B`${e.resources.meta} || ${JSON.stringify({pastDomains:i})}::jsonb`}).where((0,b.u)(e.resources.id,a));for(let b of g){let f=h.filter(a=>a.resourceId===b.id),g=(0,aE.V)({monitors:f.map(n),building:i.has(b.id),dbPaused:j.has(b.id)}),l=f.find(a=>"err"===a.state)??f.find(a=>"warn"===a.state),m={code:l?.lastStatus??null,latencyMs:f.find(a=>"heartbeat"!==a.kind)?.lastLatencyMs??null,dbPaused:j.has(b.id)},o=k.get(b.id);await (0,d.f)().insert(e.snapshots).values({resourceId:b.id,state:g,data:m,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:e.snapshots.resourceId,set:{state:g,data:c.B`${e.snapshots.data} || ${JSON.stringify(m)}::jsonb`,collectedAt:a,...o?.state!==g?{stateSince:a}:{}}})}}async function aY(a,b={}){let c={writeLastRun:aL,refreshApps:aX,refreshNetwork:aA.x,invalidate:h.D,...b};try{await c.writeLastRun({...a.lastRun,...Object.fromEntries(a.done.map(b=>[b,a.started.toISOString()]))});try{await c.refreshApps(new Date)}catch(b){a.errors.push(`app-snapshots: ${(0,aF.f)(b)}`)}if(a.done.some(a=>aA.p.includes(a)))try{await c.refreshNetwork(new Date)}catch(b){a.errors.push(`network-states: ${(0,aF.f)(b)}`)}}finally{c.invalidate((0,i.o)(a.tried??a.done))}}async function aZ(a,b,c,d={evaluate:j.$,deliver:p.q,digest:p.J}){let e=[];if(a.includes("alerts"))if(Date.now()>b)c.push("alerts: skipped, time budget used");else{let a=!0;try{await d.evaluate(new Date),console.info("collector alerts evaluated")}catch(b){a=!1,c.push(`alerts: ${(0,aF.f)(b)}`)}try{await d.deliver(new Date,b),console.info("collector notifications delivered")}catch(b){a=!1,c.push(`notify: ${(0,aF.f)(b)}`)}a&&e.push("alerts")}if(a.includes("digest")&&(0,K.z)("digest",b,Date.now()))try{await d.digest(new Date),console.info("collector digest done"),e.push("digest")}catch(a){c.push(`digest: ${(0,aF.f)(a)}`)}return e}async function a$(a,b,c,d){let e=[],f=[];for(let g of a){if(Date.now()>b){c.push(`${g}: skipped, time budget used`);continue}if((0,K.z)(g,b,Date.now())){f.push(g);try{await d(g),e.push(g)}catch(a){c.push(`${g}: ${(0,aF.f)(a)}`)}}}return{done:e,tried:f}}async function a_(a){let c,f=new Date,g=await ay(f);if(!g)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[c]=await (0,d.f)().insert(e.collectorRuns).values({startedAt:f,trigger:"builtin"===a?"manual":a}).returning({id:e.collectorRuns.id})}catch(a){throw await az(g).catch(()=>void 0),a}let h=[],i=[],j=0,l=f.getTime()+K.p,m=a=>console.info(`collector ${a} +${Date.now()-f.getTime()}ms`);try{var n;m("start");let{lastRun:b,afterDeploy:c}=await aK(),d="cron_job_org"!==a&&"builtin"!==a,e=await (0,q.I)(),{due:g,early:p}=(0,K._)((0,K.S)(b,f,d,e),(n=R(c),Object.keys(n.pending).length>0),e),r=!1,s=a=>p||!r?a.filter(a=>"security"!==a):a,t=g.filter(a=>K.u.includes(a)),u=t.includes("alerts")?l-K.X:l,v=await aP(g,h);m(`due ${g.join(",")}`);let{done:w,tried:x}=await a$(g.filter(a=>!K.u.includes(a)),u,h,async a=>{if(m(`task ${a}`),"heartbeats"===a){let a=new Date;j+=await (0,k.f)(a,(b,c)=>null!==(0,ad.x)(v,{monitorId:b,appId:c},a),d)}"checks"===a&&(j+=await aN(new Date,u,h,d,v)),"vercel"===a&&await aW(new Date,u,h,R(c));let b=aJ[a];b&&await b({now:new Date,deadline:u,errors:h,protectOnly:(0,K.$)(a,e)}),"cloudflare"===a&&await (0,aA.h)(new Date,u,h),"domains"===a&&await (0,aA.H)(new Date,u,h),"tls"===a&&await (0,aA.V)(new Date,u,h),"rdap"===a&&await (0,aA.W)(new Date,u,h),"eol"===a&&await (0,aA.i)(new Date,u,h),"node"===a&&await (0,aB.q)(new Date,u,h),"status"===a&&await (0,ab.i)(new Date),"logs"===a&&await (0,o._)(new Date,u,h),"pageviews"===a&&await J(new Date,u,h),"security"===a&&(r=(await _({now:f,deadline:u,errors:h,paused:e,early:p})).complete)});i.push(...w),m("main done"),await aY({lastRun:b,done:s(i),tried:x,started:f,errors:h}),m("settled");let y=await aZ(t,l,h);m("post done"),y.length&&await aL({...b,...Object.fromEntries(s([...i,...y]).map(a=>[a,f.toISOString()]))}),i.push(...y)}catch(a){h.push(`run: ${(0,aF.f)(a)}`)}finally{let a=Date.now()-f.getTime();await (0,d.f)().update(e.collectorRuns).set({finishedAt:new Date,ok:0===h.length,errorSummary:h.join("\n").slice(0,2e3)||null,durationMs:a,tasks:i,checks:j}).where((0,b.u)(e.collectorRuns.id,c.id)).catch(()=>void 0),await az(g).catch(()=>void 0)}return{skipped:!1,ok:0===h.length,tasks:i,checks:j,durationMs:Date.now()-f.getTime(),errors:h}}a.s(["f",0,a_],270432)}];
8
8
 
9
9
  //# sourceMappingURL=src_lib_collector_run_ts_0-q8is8s0y9cq._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[840784,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(469762),h=a.i(631107),i=a.i(968715),j=a.i(910697),k=a.i(72019),l=a.i(519051),m=a.i(858806),n=a.i(601219),o=a.i(714530),p=a.i(513701),q=a.i(895176),r=a.i(242605);let s=a=>"string"==typeof a&&a?a:null;async function t(a,n){let t=await (0,d.f)().select({r:e.resources,s:e.snapshots,sec:e.appSecurity,accStatus:e.accounts.status}).from(e.resources).leftJoin(e.accounts,(0,b.u)(e.accounts.id,e.resources.accountId)).leftJoin(e.snapshots,(0,b.u)(e.snapshots.resourceId,e.resources.id)).leftJoin(e.appSecurity,(0,b.u)(e.appSecurity.resourceId,e.resources.id)).where((0,b.b)((0,b.u)(e.resources.kind,"app"),(0,b.u)(e.resources.monitored,!0),n?(0,b.u)(e.resources.id,n):void 0)).orderBy(e.resources.name).limit(j.O.apps);if(!t.length)return[];let u=t.map(a=>a.r.id),v=(await (0,d.f)().select().from(e.monitors).where((0,b.y)(e.monitors.resourceId,u)).orderBy(e.monitors.createdAt).limit(j.O.monitors)).map(q.M),w=await (0,d.f)().selectDistinctOn([e.deployments.resourceId]).from(e.deployments).where((0,b.b)((0,b.y)(e.deployments.resourceId,u),(0,b.u)(e.deployments.target,"production"))).orderBy(e.deployments.resourceId,(0,c.A)(e.deployments.createdAtProvider)),x=await (0,p._)(v.map(a=>a.id),a),y=new Map(t.map(a=>[a.r.id,a.r])),z=await (0,q.J)(v.map(a=>({id:a.id,kind:a.kind,url:a.url,appId:a.appId,appName:y.get(a.appId)?.name??"",appMeta:y.get(a.appId)?.meta,lastError:a.lastError}))),A=new Map;for(let a of(await (0,d.f)().select({parentId:e.resources.parentId,name:e.resources.name,meta:e.resources.meta}).from(e.resources).where((0,b.b)((0,b.u)(e.resources.kind,"domain"),(0,b.y)(e.resources.parentId,u),(0,b.M)(e.resources.goneAt))))){if(!a.parentId)continue;let b=A.get(a.parentId)??{};b[a.name.toLowerCase()]={redirect:s(a.meta.redirect),verified:!1!==a.meta.verified},A.set(a.parentId,b)}let B=await (0,p.Q)(u,a),C=await (0,k.F)(u),D=v.length?await (0,o.w)():[];return t.map(({r:b,s:c,sec:d,accStatus:e})=>{let k=v.filter(a=>a.appId===b.id).map(b=>({...b,maintUntil:(0,l.x)(D,{monitorId:b.id,appId:b.appId},a)?.end??null,move:z.get(b.id)??null})),n=s(b.meta.createdAt),o=w.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,f.Y)(b.meta)?.primaryDomain??(0,g.m)(b.name,k.map(a=>a.url)),domainLines:function(a,b,c){let d=(0,f.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),g=[...new Set(d.pastDomains)].filter(a=>!e.includes(a)).reverse(),h=e.map((a,c)=>{let d=b[a],f={name:a,target:d?.redirect?d.redirect.replace(/^https?:\/\//i,"").replace(/\/.*$/,"").toLowerCase():null};return 0===c?{...f,tag:e.length>1||g.length?"primary":null}:{...f,tag:d?.redirect?"redirect":d&&!d.verified?"pending":null}});return h.push(...g.slice(0,3).map(a=>({name:a,tag:"former",target:null}))),{lines:h,more:Math.max(0,g.length-3)}}(b.meta,A.get(b.id)??{},(0,f.Y)(b.meta)?.primaryDomain??(0,g.m)(b.name,k.map(a=>a.url))),framework:s(b.meta.framework),productionBranch:s(b.meta.productionBranch),createdAt:n?new Date(n):null,teamName:s(b.meta.teamName),teamSlug:s(b.meta.teamSlug),repo:s(b.meta.repo),repoType:s(b.meta.repoType),functionRegions:Array.isArray(b.meta.functionRegions)?b.meta.functionRegions.filter(a=>"string"==typeof a):[],monitors:k,lastDeploy:o?(0,m.u)(o):null,uptime30:(0,i.Y)(k.flatMap(b=>(0,i.w)(x.get(b.id),a,i.I))),response:B.get(b.id)??{hourly:Array.from({length:j.A.responseHours},()=>null),p95:null,p50:null},days:new Map(k.flatMap(a=>{let b=x.get(a.id);return b?[[a.id,b]]:[]})),security:d?(0,r.Z)(d):null,database:C.get(b.id)??null,dbPaused:c?.data.dbPaused===!0,pageViews:(0,h.G)(c?.data),pageViewsNote:(0,h.R)({gone:null!==b.goneAt,teamId:s(b.meta.teamId),accountOk:"ok"===e,hasProductionDeploy:void 0!==o})}})}async function u(a,b){return(await t(b,a))[0]??null}async function v(a,c){let[f]=await (0,d.f)().select({id:e.resources.id,name:e.resources.name}).from(e.resources).where((0,b.b)((0,b.u)(e.resources.id,a),(0,b.u)(e.resources.kind,"app"))).limit(1);return f?(await (0,d.f)().transaction(async d=>{let g=new Date;await d.update(e.resources).set({monitored:!1,updatedAt:g}).where((0,b.u)(e.resources.id,a)),await d.delete(e.monitors).where((0,b.u)(e.monitors.resourceId,a)),await d.delete(e.deployments).where((0,b.u)(e.deployments.resourceId,a)),await d.delete(e.snapshots).where((0,b.u)(e.snapshots.resourceId,a)),await d.delete(e.appSecurity).where((0,b.u)(e.appSecurity.resourceId,a)),await d.delete(e.resources).where((0,b.b)((0,b.u)(e.resources.kind,"domain"),(0,b.u)(e.resources.parentId,a))),await (0,n.f)([{type:"action",kind:"ok",message:`${f.name} removed from the console`,detail:null,resourceId:a,actorUserId:c}],d)}),{ok:!0,message:`${f.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,u,"G",0,t,"a",0,v],840784)}];
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
2
 
3
3
  //# sourceMappingURL=src_lib_data_apps-db_ts_02ovqtci8e7o6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[579739,a=>{"use strict";let b,c=()=>b??=Promise.all([a.A(372153),a.A(106706)]);async function d(a){let[{currentDemoVisitor:b},{withDemoDb:d}]=await c(),e=await b();return d(e.seed,a,e.email)}async function e(){let[{readDemoVisitor:a},{withDemoDb:b}]=await c(),d=await a();d&&await b(d.seed,async()=>void 0,d.email)}a.s(["demoPglite",0,{query:(a,b,c)=>d(d=>d.query(a,b,c)),exec:(a,b)=>d(c=>c.exec(a,b)),transaction:a=>d(b=>b.transaction(a))},"openDemoDb",0,e])},106706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__04tkts7c9ylma._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(601533)))}];
1
+ module.exports=[579739,a=>{"use strict";let b,c=()=>b??=Promise.all([a.A(372153),a.A(106706)]);async function d(a){let[{currentDemoVisitor:b},{withDemoDb:d}]=await c(),e=await b();return d(e.seed,a,e.email)}async function e(){let[{readDemoVisitor:a},{withDemoDb:b}]=await c(),d=await a();d&&await b(d.seed,async()=>void 0,d.email)}a.s(["demoPglite",0,{query:(a,b,c)=>d(d=>d.query(a,b,c)),exec:(a,b)=>d(c=>c.exec(a,b)),transaction:a=>d(b=>b.transaction(a))},"openDemoDb",0,e])},106706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0p5znbfo0wgsu._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/src_lib_demo_0a5wqvhuj5hjh._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(601533)))}];
2
2
 
3
- //# sourceMappingURL=src_lib_demo_15okweo0amos4._.js.map
3
+ //# sourceMappingURL=src_lib_demo_1wu-a6lubzph6._.js.map
@@ -1,3 +1,3 @@
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()}),E=a=>"string"==typeof a&&a.length?a:null,F=a=>a?new Date(a):null;function G(a,b){let c=a.readyState??a.state??"BUILDING",d=a.meta??{};return{id:b,projectId:a.projectId,state:"READY"===c?"ready":"ERROR"===c?"error":"CANCELED"===c?"canceled":"building",rawState:c,target:"production"===a.target?"production":"preview",branch:E(d.githubCommitRef)??E(d.gitCommitRef),sha:E(d.githubCommitSha)??E(d.gitCommitSha),message:E(d.githubCommitMessage)??E(d.gitCommitMessage),source:a.source??null,url:a.url??null,createdAt:new Date(a.createdAt??a.created??0),buildingAt:F(a.buildingAt),readyAt:F(a.ready)}}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")}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,"u",0,S,"l",0,T,"L",0,Q,"E",0,R,"N",0,P,"o",0,w],572134);let aa=a=>Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.length>0).map(a=>a.toLowerCase()):[];function ab(a){let b="string"==typeof a?.primaryDomain&&a.primaryDomain?a.primaryDomain.toLowerCase():null;return b?{primaryDomain:b,domains:aa(a?.domains),pastDomains:aa(a?.pastDomains)}:null}function ac(a){try{let b=new URL(a);return"https:"===b.protocol||"http:"===b.protocol?b.hostname.toLowerCase():null}catch{return null}}let ad=a=>/ · DEPLOYMENT_NOT_FOUND$/.test(a.lastError??"");function ae(a,b,c=[],d={}){let e=ac(a),f=ab(b.meta);return!(!e||!f||function(a,b,c=[]){let d=ab(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=ab(a.meta);return null!==b&&(b.primaryDomain===e||b.domains.includes(e))})}(e,b,c))&&(f.pastDomains.includes(e)||ad(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([...aa(d?.pastDomains),...aa(d?.domains)])].filter(a=>!f.has(a)).slice(-20);return{domains:e,primaryDomain:t(a,b,c).toLowerCase(),pastDomains:g}},"u",0,ae,"P",0,function(a,b){let c=new Map;for(let d of a){if("heartbeat"===d.kind)continue;let a=ae(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||!ad({lastError:d.lastError}))continue;let a=ab(d.appMeta),e=ac(d.url);if(!a||!e)continue;let f=c.get(d.appId)??a.pastDomains;!f.includes(e)&&ae(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,ab],436357)}];
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
2
 
3
3
  //# sourceMappingURL=src_lib_domain-move_ts_04stiet1-xpe2._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[715208,a=>{"use strict";var b=a.i(893893),c=a.i(656298),d=a.i(688275),e=a.i(672319),f=a.i(245710),g=a.i(556987),h=a.i(469762),i=a.i(505237);let j=a=>Math.round(100*a)/100,k=a=>a?new Date(a):null,l=(a,b)=>`${a} ${b}${1===a?"":"s"}`;function m(a){return null==a?"—":a>=0x40000000?`${(a/0x40000000).toFixed(1)} GB`:`${Math.round(a/1048576)} MB`}function n(a,b,c){return"unknown"!==a?{state:a,label:b}:{state:"unknown",label:c&&c in i.X?`Unknown \xb7 last seen ${i.X[c]}`:"Unknown"}}function o(a,c,e=g.a){return a.map(a=>{let i=(0,b.k)(b.s,a.data),k=i.endpoints??[],l=[...i.branches??[]].sort((a,b)=>Number(b.isDefault)-Number(a.isDefault)),o=l.reduce((a,b)=>a+(b.logicalSize??0),0),p=null!=i.computeSeconds?(0,d.g)(i.computeSeconds):null,q="unknown"===a.state;return{id:a.id,name:a.name,alias:(0,g.X)(e,a.id),account:a.account,region:i.region??null,pg:i.pgVersion??null,usedBy:a.usedBy,stale:q,collectedAt:a.collectedAt,status:n(a.state,(0,d.p)({endpoints:k,computeSeconds:i.computeSeconds??null}).label,i.lastGoodState),cu:null===p?null:{value:p,pct:j(p/d.a.cuHours*100)},storage:{text:m(o),pct:j(o/d.a.storageBytes*100)},transfer:null!=i.transferBytes?{text:m(i.transferBytes),pct:j(i.transferBytes/d.a.transferBytes*100)}:null,resets:i.periodEnd?(0,f.L)(new Date(i.periodEnd)):null,activeHours:null!=i.activeSeconds?Math.round(i.activeSeconds/360)/10:null,branches:l.map(a=>{let b=k.find(b=>b.branchId===a.id),e=b?(0,d.T)(b):{state:"off",label:"No compute"};return{id:a.id,name:a.name,isDefault:a.isDefault,endpoint:b?.id??null,status:q?n("unknown","",e.state):e,autoscaling:b?(0,d.c)(b.minCu,b.maxCu):"—",size:m(a.logicalSize),lastActive:b?.lastActive?(0,h.J)(new Date(b.lastActive),c):"—"}})}})}function p(a,b){if(!a.length||!a.every(a=>"unknown"===a.state))return null;let c=a.map(a=>a.collectedAt).filter(a=>null!==a).sort((a,b)=>b.getTime()-a.getTime())[0];return`API not responding${c?` \xb7 data from ${(0,h.J)(c,b)}`:""}`}a.s(["R",0,m,"r",0,function(a,b,c=g.a){return a.filter(a=>a.paused&&!a.stale).map(a=>{let d=a.usedBy.map(a=>a.name),e=d.length?`${d.join(", ")} ${d.length>1?"get":"gets"} errors until it's restored. `:"",f=b.find(b=>b.account===a.account),h=(0,g.G)(a.account),i=f?f.activeIds.map(a=>(0,g.X)(c,a)):[],j=f?f.left>0?`Account ${h} has a free slot to restore it.`:`Account ${h} already uses both free slots${i.length?` (${i.join(", ")})`:""}. Pause one of them first, or move ${a.alias} to an account with a free slot.`:"";return{key:`db-${a.id}`,tone:"warning",title:`Supabase project ${a.alias} is paused`,body:(0,g.G)(`${e}${j}`.trim()),action:{label:"Open Supabase",href:"/supabase"}}})},"V",0,function(a,b){if(!a.length)return{state:"unknown",sub:"No projects watched yet"};let c=p(a,b);if(c)return{state:"unknown",sub:c};let d=a.filter(a=>"ok"!==a.state).length;return{state:(0,i.S)(a.map(a=>a.state)),sub:d?`${d} of ${a.length} unreachable`:`${l(a.length,"project")} reachable`}},"U",0,function(a,d=g.a){return a.map(a=>{var e;let f=(0,b.k)(b.w,a.data),h=(a,b)=>null==a?null:{n:a,pct:j(a/b*100)};return{id:a.id,name:a.name,alias:(0,g.X)(d,a.id),projectId:a.externalId,account:a.account,stale:"unknown"===a.state,health:n(a.state,(e=a.state,"ok"===e?`Reachable \xb7 ${f.latencyMs??"—"} ms`:"off"===e?"No Firestore database":(0,c.z)({kind:f.pingKind,reason:f.pingReason}).label),f.lastGoodState),ops:f.opsError&&null==f.reads?{note:f.opsError}:{reads:h(f.reads,c.T.reads),writes:h(f.writes,c.T.writes),deletes:h(f.deletes,c.T.deletes)},users:f.authUsers??null,usersNote:f.authError??null,usedBy:a.usedBy}})},"D",0,o,"_",0,function(a,b,c=g.a){if(!a.length)return{state:"unknown",sub:"No projects watched yet"};let e=p(a,b);if(e)return{state:"unknown",sub:e};let f=o(a,b,c);if(1===f.length){let b=f[0];return{state:a[0].state,sub:`${b.alias} ${b.status.label.toLowerCase()}${b.cu?` \xb7 ${Math.round(b.cu.value)} of ${d.a.cuHours} CU-h`:""}`}}return{state:(0,i.S)(a.map(a=>a.state)),sub:`${l(a.length,"project")} \xb7 ${a.filter(a=>"ok"===a.state).length} active`}},"d",0,function(a){return[...new Set(a.map(a=>a.account))].sort().map(b=>{let c=a.filter(a=>a.account===b),d=c.filter(a=>!1!==a.freeOrg&&(0,e.Z)(a.status));return{account:b,...(0,e._)(c),active:d.map(a=>a.name),activeIds:d.map(a=>a.id)}})},"i",0,function(a){let b=a.filter(a=>null!==a.sizeBytes);return{text:m(b.reduce((a,b)=>a+(b.sizeBytes??0),0)),count:b.length}},"x",0,function(a,b){if(!a.length)return{state:"unknown",sub:"No projects watched yet"};let c=p(a,b);if(c)return{state:"unknown",sub:c};let d=a.filter(a=>"paused"===a.state).length,e=a.filter(a=>"warn"===a.state||"err"===a.state).length,f=[l(new Set(a.map(a=>a.account)).size,"account"),d?`${d} paused`:null,e?`${e} unhealthy`:null];return{state:(0,i.S)(a.map(a=>a.state)),sub:f.filter(Boolean).join(" · ")}},"Y",0,function(a,c,d=g.a){return a.map(a=>{let i=(0,b.k)(b.B,a.data),l=i.status??"",o=i.pgVersion?`Postgres ${i.pgVersion.split(".").slice(0,2).join(".")}`:null,p="paused"===a.state||"unknown"===a.state&&"paused"===i.lastGoodState;return{id:a.id,name:a.name,alias:(0,g.X)(d,a.id),ref:a.externalId,account:a.account,sub:[i.region,o].filter(Boolean).join(" · "),status:n(a.state,(0,e.P)(l).label,i.lastGoodState),since:a.stateSince&&"unknown"!==a.state?(0,f.$)(a.stateSince,c):null,size:null!=i.sizeBytes?{text:m(i.sizeBytes),pct:j(i.sizeBytes/e.R*100),asOf:i.sizeAt?(0,f.$)(new Date(i.sizeAt),c):"—"}:null,sizeNote:i.sizeError??(null!=i.sizeBytes?null:"ACTIVE_HEALTHY"===l?"Read once a day while the project is in use":"Read only while the project is active"),traffic:i.trafficAt&&!i.trafficError?i.lastTrafficAt?(0,h.J)(new Date(i.lastTrafficAt),c):"None in 7 days":"—",trafficNote:i.trafficError??null,risk:(0,e.g)({status:p?"INACTIVE":l,lastTrafficAt:k(i.lastTrafficAt),trafficCheckedAt:k(i.trafficAt),pausedSince:p?a.stateSince:null,pausedBeforeSeen:i.pausedBeforeSeen??!1,now:c}),usedBy:a.usedBy,stale:"unknown"===a.state,paused:p,sizeBytes:i.sizeBytes??null}})}])}];
1
+ module.exports=[715208,a=>{"use strict";var b=a.i(893893),c=a.i(656298),d=a.i(688275),e=a.i(672319),f=a.i(245710),g=a.i(556987),h=a.i(469762),i=a.i(505237);let j=a=>Math.round(100*a)/100,k=a=>a?new Date(a):null,l=(a,b)=>`${a} ${b}${1===a?"":"s"}`;function m(a){return null==a?"—":a>=0x40000000?`${(a/0x40000000).toFixed(1)} GB`:`${Math.round(a/1048576)} MB`}function n(a,b,c){return"unknown"!==a?{state:a,label:b}:{state:"unknown",label:c&&c in i.X?`Unknown \xb7 last seen ${i.X[c]}`:"Unknown"}}function o(a,c,e=g.a){return a.map(a=>{let i=(0,b.k)(b.s,a.data),k=i.endpoints??[],l=[...i.branches??[]].sort((a,b)=>Number(b.isDefault)-Number(a.isDefault)),o=l.reduce((a,b)=>a+(b.logicalSize??0),0),p=null!=i.computeSeconds?(0,d.g)(i.computeSeconds):null,q="unknown"===a.state;return{id:a.id,name:a.name,alias:(0,g.X)(e,a.id),account:a.account,region:i.region??null,pg:i.pgVersion??null,usedBy:a.usedBy,stale:q,collectedAt:a.collectedAt,status:n(a.state,(0,d.p)({endpoints:k,computeSeconds:i.computeSeconds??null}).label,i.lastGoodState),cu:null===p?null:{value:p,pct:j(p/d.a.cuHours*100)},storage:{text:m(o),pct:j(o/d.a.storageBytes*100)},transfer:null!=i.transferBytes?{text:m(i.transferBytes),pct:j(i.transferBytes/d.a.transferBytes*100)}:null,resets:i.periodEnd?(0,f.L)(new Date(i.periodEnd)):null,activeHours:null!=i.activeSeconds?Math.round(i.activeSeconds/360)/10:null,branches:l.map(a=>{let b=k.find(b=>b.branchId===a.id),e=b?(0,d.T)(b):{state:"off",label:"No compute"};return{id:a.id,name:a.name,isDefault:a.isDefault,endpoint:b?.id??null,status:q?n("unknown","",e.state):e,autoscaling:b?(0,d.c)(b.minCu,b.maxCu):"—",size:m(a.logicalSize),lastActive:b?.lastActive?(0,h.J)(new Date(b.lastActive),c):"—"}})}})}function p(a,b){if(!a.length||!a.every(a=>"unknown"===a.state))return null;let c=a.map(a=>a.collectedAt).filter(a=>null!==a).sort((a,b)=>b.getTime()-a.getTime())[0];return`API not responding${c?` \xb7 data from ${(0,h.J)(c,b)}`:""}`}a.s(["R",0,m,"r",0,function(a,b,c=g.a){return a.filter(a=>a.paused&&!a.stale).map(a=>{let d=a.usedBy.map(a=>a.name),e=d.length?`${d.join(", ")} ${d.length>1?"get":"gets"} errors until it's restored. `:"",f=b.find(b=>b.account===a.account),h=(0,g.G)(a.account),i=f?f.activeIds.map(a=>(0,g.X)(c,a)):[],j=f?f.left>0?`Account ${h} has a free slot to restore it.`:`Account ${h} already uses both free slots${i.length?` (${i.join(", ")})`:""}. Pause one of them first, or move ${a.alias} to an account with a free slot.`:"";return{key:`db-${a.id}`,tone:"warning",title:`Supabase project ${a.alias} is paused`,body:(0,g.G)(`${e}${j}`.trim()),action:{label:"Open Supabase",href:"/supabase"}}})},"V",0,function(a,b){if(!a.length)return{state:"unknown",sub:"No projects watched yet"};let c=p(a,b);if(c)return{state:"unknown",sub:c};let d=a.filter(a=>"ok"!==a.state).length;return{state:(0,i.S)(a.map(a=>a.state)),sub:d?`${d} of ${a.length} unreachable`:`${l(a.length,"project")} reachable`}},"U",0,function(a,d=g.a){return a.map(a=>{var e;let f=(0,b.k)(b.w,a.data),h=(a,b)=>null==a?null:{n:a,pct:j(a/b*100)};return{id:a.id,name:a.name,alias:(0,g.X)(d,a.id),projectId:a.externalId,account:a.account,stale:"unknown"===a.state,health:n(a.state,(e=a.state,"ok"===e?`Reachable \xb7 ${f.latencyMs??"—"} ms`:"off"===e?"No Firestore database":(0,c.z)({kind:f.pingKind,reason:f.pingReason}).label),f.lastGoodState),ops:f.opsError&&null==f.reads?{note:f.opsError}:{reads:h(f.reads,c.T.reads),writes:h(f.writes,c.T.writes),deletes:h(f.deletes,c.T.deletes)},users:f.authUsers??null,usersNote:f.authError??null,usedBy:a.usedBy}})},"D",0,o,"_",0,function(a,b,c=g.a){if(!a.length)return{state:"unknown",sub:"No projects watched yet"};let e=p(a,b);if(e)return{state:"unknown",sub:e};let f=o(a,b,c);if(1===f.length){let b=f[0],c="Idle"===b.status.label?"is asleep":b.status.label.toLowerCase();return{state:a[0].state,sub:`${b.alias} ${c}${b.cu?` \xb7 ${Math.round(b.cu.value)} of ${d.a.cuHours} compute hours used this month`:""}`}}return{state:(0,i.S)(a.map(a=>a.state)),sub:`${l(a.length,"project")} \xb7 ${a.filter(a=>"ok"===a.state).length} active`}},"d",0,function(a){return[...new Set(a.map(a=>a.account))].sort().map(b=>{let c=a.filter(a=>a.account===b),d=c.filter(a=>!1!==a.freeOrg&&(0,e.Z)(a.status));return{account:b,...(0,e._)(c),active:d.map(a=>a.name),activeIds:d.map(a=>a.id)}})},"i",0,function(a){let b=a.filter(a=>null!==a.sizeBytes);return{text:m(b.reduce((a,b)=>a+(b.sizeBytes??0),0)),count:b.length}},"x",0,function(a,b){if(!a.length)return{state:"unknown",sub:"No projects watched yet"};let c=p(a,b);if(c)return{state:"unknown",sub:c};let d=a.filter(a=>"paused"===a.state).length,e=a.filter(a=>"warn"===a.state||"err"===a.state).length,f=[l(new Set(a.map(a=>a.account)).size,"account"),d?`${d} paused`:null,e?`${e} unhealthy`:null];return{state:(0,i.S)(a.map(a=>a.state)),sub:f.filter(Boolean).join(" · ")}},"Y",0,function(a,c,d=g.a){return a.map(a=>{let i=(0,b.k)(b.B,a.data),l=i.status??"",o=i.pgVersion?`Postgres ${i.pgVersion.split(".").slice(0,2).join(".")}`:null,p="paused"===a.state||"unknown"===a.state&&"paused"===i.lastGoodState;return{id:a.id,name:a.name,alias:(0,g.X)(d,a.id),ref:a.externalId,account:a.account,sub:[i.region,o].filter(Boolean).join(" · "),status:n(a.state,(0,e.P)(l).label,i.lastGoodState),since:a.stateSince&&"unknown"!==a.state?(0,f.$)(a.stateSince,c):null,size:null!=i.sizeBytes?{text:m(i.sizeBytes),pct:j(i.sizeBytes/e.R*100),asOf:i.sizeAt?(0,f.$)(new Date(i.sizeAt),c):"—"}:null,sizeNote:i.sizeError??(null!=i.sizeBytes?null:"ACTIVE_HEALTHY"===l?"Read once a day while the project is in use":"Read only while the project is active"),traffic:i.trafficAt&&!i.trafficError?i.lastTrafficAt?(0,h.J)(new Date(i.lastTrafficAt),c):"None in 7 days":"—",trafficNote:i.trafficError??null,risk:(0,e.g)({status:p?"INACTIVE":l,lastTrafficAt:k(i.lastTrafficAt),trafficCheckedAt:k(i.trafficAt),pausedSince:p?a.stateSince:null,pausedBeforeSeen:i.pausedBeforeSeen??!1,now:c}),usedBy:a.usedBy,stale:"unknown"===a.state,paused:p,sizeBytes:i.sizeBytes??null}})}])}];
2
2
 
3
3
  //# sourceMappingURL=src_lib_view_databases_ts_1ovdbo8spjhf9._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[556987,a=>{"use strict";let b=new Set(["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","db","fs"]);function c(a){let b=a+1,c="";for(;b>0;)c=String.fromCharCode(97+(b-1)%26)+c,b=Math.floor((b-1)/26);return c}let d=a=>(a instanceof Date?a:new Date(a)).getTime(),e=(a,b)=>d(a.firstSeenAt)-d(b.firstSeenAt)||(a.id<b.id?-1:+(a.id>b.id));function f(a,b){return[...a].sort(e).map((a,d)=>({id:a.id,name:a.name,alias:`${b}-${c(d)}`}))}function g(a,b){return a.db.find(a=>a.id===b)?.alias??"db-?"}let h=/[\p{L}\p{N}._%+-]+@[\p{L}\p{N}-]+(?:\.[\p{L}\p{N}-]+)*\.[\p{L}]{2,}/gu;function i(a){return a.replace(h,"[email hidden]")}let j=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),k="[\\p{L}\\p{N}_-]",l=new WeakMap;function m(a,b,c){let d;if(!a)return a;let e=c?b.db.find(a=>a.id===c):void 0,f=e&&e.name.trim().length>=2?a.replace((d=e.name,RegExp(`(?<!${k})${j(d)}(?!${k})`,"giu")),e.alias):a,g=function(a){if(l.has(a))return l.get(a);let b=new Set(a.app.map(a=>a.name.toLowerCase())),c=[...new Set(a.db.map(a=>a.name).filter(a=>a.trim().length>=2&&!b.has(a.toLowerCase())))].sort((a,b)=>b.length-a.length),d=new Map;for(let b of a.db)d.has(b.name.toLowerCase())||d.set(b.name.toLowerCase(),b.alias);let e=c.length?{re:RegExp(`(?<!${k})(?:${c.map(j).join("|")})(?!${k})`,"giu"),alias:d}:null;return l.set(a,e),e}(b);return g&&(f=f.replace(g.re,a=>g.alias.get(a.toLowerCase())??a)),i(f)}let n=(a,b)=>!!b&&a.db.some(a=>a.id===b);String.raw`[\p{L}\p{N}_.-]`,String.raw`(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])`,new WeakMap,a.s(["a",0,{db:[],app:[]},"k",0,"oc-shot","r",0,(a,b)=>a.app.find(a=>a.name===b)?.alias??"app-?","n",0,function(a,g=[]){let h=a.filter(a=>"app"===a.kind),i=f(h,"app"),j=[...g].sort((a,b)=>d(a.createdAt)-d(b.createdAt)||(a.id<b.id?-1:+(a.id>b.id))).map((a,b)=>({id:a.id,name:a.label,alias:`account-${b+1}`}));return{db:f(a.filter(a=>{let c;return null!=(c=a.kind)&&b.has(c)}),"db"),app:i,account:j,host:function(a,b){let d=[],f=new Set,g=(a,b,c)=>{let e=b.toLowerCase();f.has(e)||(f.add(e),d.push({id:a,name:e,alias:c}))},h=new Map(b.map(a=>[a.id,a])),i=a.filter(a=>"domain"===a.kind).sort(e),j=new Map;for(let a of i){let b=a.parentId?h.get(a.parentId):void 0;if(!b)continue;let c=(j.get(b.id)??0)+1;j.set(b.id,c),g(a.id,a.name,`${b.alias}${c>1?`-${c}`:""}.example`)}for(let a of b)g(`${a.id}:vercel`,`${a.name}.vercel.app`,`${a.alias}${j.has(a.id)?"-vercel":""}.example`);return a.filter(a=>"zone"===a.kind||"domain"===a.kind&&!(a.parentId&&h.has(a.parentId))).sort(e).filter(a=>!f.has(a.name.toLowerCase())).forEach((a,b)=>g(a.id,a.name,`site-${c(b)}.example`)),d}(a,i),team:function(a){let b=[];for(let c of[...a].sort(e)){let a=c.team?.trim();a&&!b.some(b=>b.name===a)&&b.push({id:`team:${a}`,name:a,alias:`team-${b.length+1}`})}return b}(h)}},"X",0,g,"o",0,function(a,b){return{...a,title:n(b,a.resourceId)?g(b,a.resourceId):m(a.title,b,a.resourceId),message:m(a.message,b,a.resourceId),causedBy:m(a.causedBy,b)}},"G",0,i,"p",0,function(a,b){return{...a,resource:n(b,a.resourceId)?g(b,a.resourceId):m(a.resource,b),message:m(a.message,b,a.resourceId),detail:m(a.detail,b,a.resourceId)}},"J",0,m,"d",0,function(a,b){let c=/^db-unlinked:(.+)$/.exec(a.key)?.[1];return{...a,subject:c?g(b,c):m(a.subject,b),title:m(a.title,b,c),why:m(a.why,b,c),fix:m(a.fix,b,c)}},"h",0,function(a,b=[]){return[...a,...b].filter(a=>!!a).join(" ")}])}];
1
+ module.exports=[556987,a=>{"use strict";let b=new Set(["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","db","fs"]);function c(a){let b=a+1,c="";for(;b>0;)c=String.fromCharCode(97+(b-1)%26)+c,b=Math.floor((b-1)/26);return c}let d=a=>(a instanceof Date?a:new Date(a)).getTime(),e=(a,b)=>d(a.firstSeenAt)-d(b.firstSeenAt)||(a.id<b.id?-1:+(a.id>b.id));function f(a,b){return[...a].sort(e).map((a,d)=>({id:a.id,name:a.name,alias:`${b}-${c(d)}`}))}function g(a,b){return a.db.find(a=>a.id===b)?.alias??"db-?"}let h=/[\p{L}\p{N}._%+-]+@[\p{L}\p{N}-]+(?:\.[\p{L}\p{N}-]+)*\.[\p{L}]{2,}/gu;function i(a){return a.replace(h,"[email hidden]")}let j=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),k="[\\p{L}\\p{N}_-]",l=new WeakMap;function m(a,b,c){let d;if(!a)return a;let e=c?b.db.find(a=>a.id===c):void 0,f=e&&e.name.trim().length>=2?a.replace((d=e.name,RegExp(`(?<!${k})${j(d)}(?!${k})`,"giu")),e.alias):a,g=function(a){if(l.has(a))return l.get(a);let b=new Set(a.app.map(a=>a.name.toLowerCase())),c=[...new Set(a.db.map(a=>a.name).filter(a=>a.trim().length>=2&&!b.has(a.toLowerCase())))].sort((a,b)=>b.length-a.length),d=new Map;for(let b of a.db)d.has(b.name.toLowerCase())||d.set(b.name.toLowerCase(),b.alias);let e=c.length?{re:RegExp(`(?<!${k})(?:${c.map(j).join("|")})(?!${k})`,"giu"),alias:d}:null;return l.set(a,e),e}(b);return g&&(f=f.replace(g.re,a=>g.alias.get(a.toLowerCase())??a)),i(f)}let n=(a,b)=>!!b&&a.db.some(a=>a.id===b),o=String.raw`[\p{L}\p{N}_.-]`,p=String.raw`(?![\p{L}\p{N}_-]|\.[\p{L}\p{N}])`;new WeakMap;let q=new WeakMap;a.s(["a",0,{db:[],app:[]},"k",0,"oc-shot","r",0,(a,b)=>a.app.find(a=>a.name===b)?.alias??"app-?","n",0,function(a,g=[]){let h=a.filter(a=>"app"===a.kind),i=f(h,"app"),j=[...g].sort((a,b)=>d(a.createdAt)-d(b.createdAt)||(a.id<b.id?-1:+(a.id>b.id))).map((a,b)=>({id:a.id,name:a.label,alias:`account-${b+1}`}));return{db:f(a.filter(a=>{let c;return null!=(c=a.kind)&&b.has(c)}),"db"),app:i,account:j,host:function(a,b){let d=[],f=new Set,g=(a,b,c)=>{let e=b.toLowerCase();f.has(e)||(f.add(e),d.push({id:a,name:e,alias:c}))},h=new Map(b.map(a=>[a.id,a])),i=a.filter(a=>"domain"===a.kind).sort(e),j=new Map;for(let a of i){let b=a.parentId?h.get(a.parentId):void 0;if(!b)continue;let c=(j.get(b.id)??0)+1;j.set(b.id,c),g(a.id,a.name,`${b.alias}${c>1?`-${c}`:""}.example`)}for(let a of b)g(`${a.id}:vercel`,`${a.name}.vercel.app`,`${a.alias}${j.has(a.id)?"-vercel":""}.example`);return a.filter(a=>"zone"===a.kind||"domain"===a.kind&&!(a.parentId&&h.has(a.parentId))).sort(e).filter(a=>!f.has(a.name.toLowerCase())).forEach((a,b)=>g(a.id,a.name,`site-${c(b)}.example`)),d}(a,i),team:function(a){let b=[];for(let c of[...a].sort(e)){let a=c.team?.trim();a&&!b.some(b=>b.name===a)&&b.push({id:`team:${a}`,name:a,alias:`team-${b.length+1}`})}return b}(h)}},"X",0,g,"o",0,function(a,b){return{...a,title:n(b,a.resourceId)?g(b,a.resourceId):m(a.title,b,a.resourceId),message:m(a.message,b,a.resourceId),causedBy:m(a.causedBy,b)}},"G",0,i,"p",0,function(a,b){return{...a,resource:n(b,a.resourceId)?g(b,a.resourceId):m(a.resource,b),message:m(a.message,b,a.resourceId),detail:m(a.detail,b,a.resourceId)}},"J",0,m,"d",0,function(a,b){let c=/^db-unlinked:(.+)$/.exec(a.key)?.[1];return{...a,subject:c?g(b,c):m(a.subject,b),title:m(a.title,b,c),why:m(a.why,b,c),fix:m(a.fix,b,c)}},"q",0,function(a,b){if(!a)return a;let c=function(a){let b=q.get(a);if(b)return b;let c=new Map((a.host??[]).map(a=>[a.alias.toLowerCase(),a.name])),d=new Map;for(let b of[...a.app,...a.db])b.name.trim()&&!d.has(b.alias.toLowerCase())&&d.set(b.alias.toLowerCase(),b.name);let e=a=>[...a].sort((a,b)=>b.length-a.length).map(j).join("|"),f={host:c.size?RegExp(String.raw`(?<![\p{L}\p{N}_-])(?:${e(c.keys())})${p}`,"giu"):null,hostName:c,names:d.size?RegExp(`(?<!${o})(?:${e(d.keys())})${p}`,"giu"):null,realName:d};return q.set(a,f),f}(b),d=a;return c.host&&(d=d.replace(c.host,a=>c.hostName.get(a.toLowerCase())??a)),c.names&&(d=d.replace(c.names,a=>c.realName.get(a.toLowerCase())??a)),i(d)},"h",0,function(a,b=[]){return[...a,...b].filter(a=>!!a).join(" ")}])}];
2
2
 
3
3
  //# sourceMappingURL=src_lib_view_display-name_ts_0xoimm6j7bwnf._.js.map