watchbell 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +123 -84
  3. package/bin/watchbell.mjs +593 -23
  4. package/package.json +1 -1
  5. package/server/.next/BUILD_ID +1 -1
  6. package/server/.next/app-path-routes-manifest.json +1 -0
  7. package/server/.next/build-manifest.json +116 -105
  8. package/server/.next/prerender-manifest.json +3 -3
  9. package/server/.next/routes-manifest.json +6 -0
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
  11. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +61 -58
  13. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
  17. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +61 -58
  18. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
  21. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
  22. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +61 -58
  23. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
  26. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
  27. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +61 -58
  28. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
  31. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
  32. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +61 -58
  33. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
  36. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
  37. package/server/.next/server/app/(console)/(private)/ai/models/page.js +61 -58
  38. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
  41. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
  42. package/server/.next/server/app/(console)/(private)/ai/page.js +61 -58
  43. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
  46. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
  47. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +61 -58
  48. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
  51. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
  52. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +61 -58
  53. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  54. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  55. package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
  56. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
  57. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +61 -58
  58. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  59. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  60. package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
  61. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
  62. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +61 -58
  63. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
  66. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
  67. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +61 -58
  68. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  69. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  70. package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
  71. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
  72. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +61 -58
  73. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  74. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  75. package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
  76. package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
  77. package/server/.next/server/app/(console)/[...slug]/page.js +62 -59
  78. package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
  79. package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
  80. package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
  81. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
  82. package/server/.next/server/app/(console)/alerts/page.js +61 -58
  83. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
  86. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +23 -23
  87. package/server/.next/server/app/(console)/apps/[id]/page.js +61 -58
  88. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  89. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  90. package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
  91. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +11 -11
  92. package/server/.next/server/app/(console)/apps/page.js +61 -58
  93. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
  96. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
  97. package/server/.next/server/app/(console)/backups/page.js +61 -58
  98. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  99. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  100. package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
  101. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
  102. package/server/.next/server/app/(console)/catalog/page.js +61 -58
  103. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
  106. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +54 -54
  107. package/server/.next/server/app/(console)/connections/page.js +67 -64
  108. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
  111. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
  112. package/server/.next/server/app/(console)/d1/page.js +61 -58
  113. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  114. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  115. package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
  116. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +14 -14
  117. package/server/.next/server/app/(console)/deployments/page.js +61 -58
  118. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  119. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  120. package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
  121. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
  122. package/server/.next/server/app/(console)/dns/page.js +61 -58
  123. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
  126. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
  127. package/server/.next/server/app/(console)/domains/page.js +61 -58
  128. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  129. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  130. package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
  131. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
  132. package/server/.next/server/app/(console)/events/page.js +61 -58
  133. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  134. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  135. package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
  136. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +15 -15
  137. package/server/.next/server/app/(console)/firebase/page.js +62 -59
  138. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
  141. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
  142. package/server/.next/server/app/(console)/logs/page.js +61 -58
  143. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/manage/sections/page/app-paths-manifest.json +3 -0
  146. package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
  147. package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
  148. package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
  149. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
  150. package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
  151. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
  152. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
  153. package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
  154. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
  155. package/server/.next/server/app/(console)/neon/page.js +61 -58
  156. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  157. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  158. package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
  159. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +16 -16
  160. package/server/.next/server/app/(console)/overview/page.js +61 -58
  161. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  162. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  163. package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
  164. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
  165. package/server/.next/server/app/(console)/repos/[id]/page.js +61 -58
  166. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
  169. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
  170. package/server/.next/server/app/(console)/repos/page.js +61 -58
  171. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  172. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  173. package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
  174. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
  175. package/server/.next/server/app/(console)/settings/page.js +61 -58
  176. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  177. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  178. package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
  179. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
  180. package/server/.next/server/app/(console)/sql/page.js +61 -58
  181. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  182. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  183. package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
  184. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
  185. package/server/.next/server/app/(console)/status/page.js +61 -58
  186. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  187. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  188. package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
  189. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +27 -27
  190. package/server/.next/server/app/(console)/supabase/page.js +61 -58
  191. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  192. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  193. package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
  194. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
  195. package/server/.next/server/app/(console)/topology/page.js +61 -58
  196. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  197. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  198. package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
  199. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
  200. package/server/.next/server/app/(console)/turso/page.js +61 -58
  201. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  202. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
  204. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
  205. package/server/.next/server/app/(console)/upstash/page.js +61 -58
  206. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  207. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  208. package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
  209. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +22 -22
  210. package/server/.next/server/app/(console)/uptime/page.js +61 -58
  211. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  212. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  213. package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
  214. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
  215. package/server/.next/server/app/(console)/welcome/page.js +62 -59
  216. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  217. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
  219. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  220. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  221. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  222. package/server/.next/server/app/_global-error.html +1 -1
  223. package/server/.next/server/app/_global-error.rsc +3 -3
  224. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  225. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  226. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  227. package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
  228. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  229. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  230. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  231. package/server/.next/server/app/_not-found.html +1 -1
  232. package/server/.next/server/app/_not-found.rsc +4 -4
  233. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  234. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  235. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  236. package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
  237. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  238. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  239. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  240. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  241. package/server/.next/server/app/api/collect/route.js +78 -73
  242. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  243. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  244. package/server/.next/server/app/api/daily/route.js +77 -72
  245. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  246. package/server/.next/server/app/api/health/route.js.nft.json +1 -1
  247. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  248. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  249. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  250. package/server/.next/server/app/api/telegram/webhook/route.js +75 -70
  251. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  252. package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
  253. package/server/.next/server/app/api/v1/advice/route.js +20 -19
  254. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  255. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +2 -2
  256. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  257. package/server/.next/server/app/api/v1/ai/models/route.js +2 -2
  258. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  259. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
  260. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  261. package/server/.next/server/app/api/v1/ai/questions/route.js +24 -23
  262. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  263. package/server/.next/server/app/api/v1/mcp/route.js +22 -21
  264. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  265. package/server/.next/server/app/api/v1/me/route.js +1 -1
  266. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  267. package/server/.next/server/app/api/v1/openapi.json/route.js +10 -9
  268. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  269. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +20 -19
  270. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  271. package/server/.next/server/app/api/v1/status/route.js +20 -19
  272. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  273. package/server/.next/server/app/api/watchdog/route.js +21 -19
  274. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  275. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  276. package/server/.next/server/app/auth/google/callback/route.js +18 -17
  277. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  278. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  279. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  280. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  281. package/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  282. package/server/.next/server/app/invite/page/build-manifest.json +3 -3
  283. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  284. package/server/.next/server/app/invite/page.js +4 -3
  285. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  286. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  287. package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
  288. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  289. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  290. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  291. package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
  292. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  293. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  294. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  295. package/server/.next/server/app/page/build-manifest.json +3 -3
  296. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  297. package/server/.next/server/app/page.js.nft.json +1 -1
  298. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  299. package/server/.next/server/app/s/[slug]/badge/[file]/route.js +9 -8
  300. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  301. package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
  302. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  303. package/server/.next/server/app/s/[slug]/page.js +8 -8
  304. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  305. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  306. package/server/.next/server/app/setup/page/build-manifest.json +3 -3
  307. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  308. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  309. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  310. package/server/.next/server/app/signin/page/build-manifest.json +3 -3
  311. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  312. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  313. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  314. package/server/.next/server/app-paths-manifest.json +1 -0
  315. package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
  316. package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
  317. package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
  318. package/server/.next/server/chunks/{[root-of-the-server]__0_6eq1806attx._.js → [root-of-the-server]__00hb7hqa7qktx._.js} +1 -1
  319. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  320. package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
  321. package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
  323. package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
  325. package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
  326. package/server/.next/server/chunks/{[root-of-the-server]__06iz-tlpv7pqm._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
  327. package/server/.next/server/chunks/{[root-of-the-server]__0mtlynfv-vklo._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
  328. package/server/.next/server/chunks/{[root-of-the-server]__0j0medewrv95l._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
  329. package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
  330. package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
  331. package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
  333. package/server/.next/server/chunks/{[root-of-the-server]__09qqv-zsz9qhr._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
  334. package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
  335. package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__0znb_m_wygjdc._.js → [root-of-the-server]__0erdelc9_06nk._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__018ux7xja83l6._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
  339. package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
  340. package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__02ihdvnmhshoe._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
  342. package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0grtjjr51j6xe._.js} +1 -1
  343. package/server/.next/server/chunks/{[root-of-the-server]__1jrqehmo6kq8x._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
  344. package/server/.next/server/chunks/{[root-of-the-server]__08801yoxfe_os._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
  345. package/server/.next/server/chunks/{[root-of-the-server]__081ywec7cjq3d._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
  346. package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
  347. package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
  348. package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
  349. package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
  350. package/server/.next/server/chunks/{[root-of-the-server]__0-ok-3r9xtz0y._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
  351. package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
  352. package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
  353. package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
  354. package/server/.next/server/chunks/[root-of-the-server]__0qmkpydmx3ljf._.js +3 -0
  355. package/server/.next/server/chunks/[root-of-the-server]__0r-zdzq6ki5gr._.js +3 -0
  356. package/server/.next/server/chunks/{[root-of-the-server]__0mhtnnebbepzx._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
  357. package/server/.next/server/chunks/{[root-of-the-server]__0u66-8g4ql645._.js → [root-of-the-server]__0sivlmcvkc1uq._.js} +1 -1
  358. package/server/.next/server/chunks/[root-of-the-server]__0t8d8b4qkw3y-._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__1z3-s7wc9-uc6._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
  361. package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__1x9tt_2yhozwe._.js → [root-of-the-server]__0vp-x4ifpr3p9._.js} +2 -2
  364. package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
  365. package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
  366. package/server/.next/server/chunks/[root-of-the-server]__0z-07azr3zk8s._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__0z-41cwvkliev._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__0zxyfd7u67hmv._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1-rqermjb77se._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
  371. package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
  372. package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
  373. package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
  374. package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
  376. package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
  377. package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
  378. package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
  379. package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__13be7gbo81td4._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
  382. package/server/.next/server/chunks/{[root-of-the-server]__0wt74rsaz-308._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
  383. package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
  384. package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
  385. package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
  386. package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
  387. package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
  388. package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
  389. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
  390. package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
  391. package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
  392. package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
  393. package/server/.next/server/chunks/{[root-of-the-server]__0qpf0qusq792k._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
  394. package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
  395. package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
  397. package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
  398. package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
  399. package/server/.next/server/chunks/[root-of-the-server]__1j26i51ankv-z._.js +3 -0
  400. package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
  401. package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
  402. package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
  403. package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
  404. package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
  405. package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
  406. package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
  407. package/server/.next/server/chunks/{[root-of-the-server]__0q691wec2busx._.js → [root-of-the-server]__1objhlwwrjfjk._.js} +2 -2
  408. package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
  409. package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
  410. package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
  411. package/server/.next/server/chunks/{[root-of-the-server]__0tb-63ts77gqd._.js → [root-of-the-server]__1tefe1f5835t_._.js} +2 -2
  412. package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +3 -0
  413. package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
  414. package/server/.next/server/chunks/{[root-of-the-server]__132wlw6sbwt1d._.js → [root-of-the-server]__1vi0u2vkv3tk0._.js} +2 -2
  415. package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
  416. package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +3 -0
  417. package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
  418. package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
  419. package/server/.next/server/chunks/{[root-of-the-server]__18mztbxkzaxjs._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
  420. package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
  421. package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
  422. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  423. package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
  424. package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
  425. package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
  426. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  427. package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
  428. package/server/.next/server/chunks/_0ejcrge5k4quv._.js +9 -9
  429. package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
  430. package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
  431. package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
  432. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +3 -0
  433. package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
  434. package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
  435. package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
  436. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
  437. package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
  438. package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
  439. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
  440. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  441. package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
  442. package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
  443. package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
  444. package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
  445. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
  446. package/server/.next/server/chunks/_103ai6ybnpq1k._.js +1 -1
  447. package/server/.next/server/chunks/_108e86rhye0o1._.js +1 -1
  448. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  449. package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
  450. package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
  451. package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
  452. package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
  453. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
  454. package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +9 -9
  455. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
  456. package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
  457. package/server/.next/server/chunks/_1kcmwgs544mo-._.js +1 -1
  458. package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +1 -1
  459. package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
  460. package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +3 -0
  461. package/server/.next/server/chunks/_1nuf-l7izvfl_._.js +1 -1
  462. package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
  463. package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +1 -1
  464. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
  465. package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
  466. package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
  467. package/server/.next/server/chunks/{src_0uxqs7150nhx2._.js → src_014zbodp4djeb._.js} +2 -2
  468. package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
  469. package/server/.next/server/chunks/{src_0n42os1q41rha._.js → src_04pgj--n_d4w5._.js} +2 -2
  470. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  471. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
  472. package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +3 -0
  473. package/server/.next/server/chunks/{src_01wdnb4skk1wz._.js → src_0kwnhwi77unm7._.js} +2 -2
  474. package/server/.next/server/chunks/src_0o4-snj7wkaav._.js +1 -1
  475. package/server/.next/server/chunks/{src_0d-zi077mzm6v._.js → src_0xqorb3-ef3ub._.js} +2 -2
  476. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
  477. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  478. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  479. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
  480. package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
  481. package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
  482. package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
  483. package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
  484. package/server/.next/server/chunks/{src_1-r51arho90p7._.js → src_1no_yh953mran._.js} +2 -2
  485. package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
  486. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
  487. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
  488. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
  489. package/server/.next/server/chunks/src_instrumentation-node_ts_1c--sr1k7_8k2._.js +3 -0
  490. package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +2 -2
  491. package/server/.next/server/chunks/src_lib_0cbs2jlrw1qbh._.js +3 -0
  492. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  493. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  494. package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +6 -0
  495. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
  496. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
  497. package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +1 -1
  498. package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
  499. package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
  500. package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +2 -2
  501. package/server/.next/server/chunks/src_lib_13g9xjx8ci00z._.js +3 -0
  502. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
  503. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
  504. package/server/.next/server/chunks/src_lib_1p21oczr6lh5a._.js +3 -0
  505. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
  506. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  507. package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +2 -2
  508. package/server/.next/server/chunks/src_lib_1yd94hta5y1hx._.js +3 -0
  509. package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
  510. package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
  511. package/server/.next/server/chunks/src_lib_brand-env_ts_1wcm1bjuismq_._.js +3 -0
  512. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
  513. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
  514. package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +1 -1
  515. package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +1 -1
  516. package/server/.next/server/chunks/src_lib_data_backup-db_ts_19rtzbv84xz_h._.js +2 -2
  517. package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  518. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  519. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  520. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +9 -9
  521. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
  522. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +9 -9
  523. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  524. package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  525. package/server/.next/server/chunks/src_lib_time_ts_1__07rt8x18k-._.js +3 -0
  526. package/server/.next/server/chunks/src_lib_time_ts_1a27wp71yhgti._.js +3 -0
  527. package/server/.next/server/chunks/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  528. package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
  529. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  530. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  531. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
  532. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
  533. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
  534. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
  535. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
  536. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
  537. package/server/.next/server/chunks/ssr/{[externals]__1u-jgivpw0_oh._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
  538. package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.js +1 -1
  539. package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
  540. package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
  541. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0aahjz4fnt4c_._.js → [root-of-the-server]__052_cprs0alpy._.js} +2 -2
  542. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11-ssp_43878t._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
  543. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ijk9z1ot_xi4._.js → [root-of-the-server]__08479d23kb1xv._.js} +2 -2
  544. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1csz822qejxk-._.js → [root-of-the-server]__08fqg76puqdfr._.js} +2 -2
  545. package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
  546. package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
  547. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0lks-6wz-rmk5._.js → [root-of-the-server]__0acmauri7z1sg._.js} +2 -2
  548. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
  549. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tkmutq84zkeh._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
  550. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h9gtpapca7i_._.js +3 -0
  551. package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
  552. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
  553. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
  554. package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
  555. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
  556. package/server/.next/server/chunks/ssr/[root-of-the-server]__0op0kqh43wd-a._.js +3 -0
  557. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
  558. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
  559. package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
  560. package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
  561. package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
  562. package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
  563. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1fdzriy6yyu5d._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
  564. package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
  565. package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
  566. package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
  567. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  568. package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
  569. package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
  570. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryb947ux5cq7._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
  571. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
  572. package/server/.next/server/chunks/ssr/[root-of-the-server]__1owrn7crnsybx._.js +3 -0
  573. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.js +1 -1
  574. package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
  575. package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
  576. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
  577. package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
  578. package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
  579. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
  580. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  581. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
  583. package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
  584. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  585. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
  587. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  588. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  589. package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
  590. package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
  592. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
  593. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
  594. package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
  596. package/server/.next/server/chunks/ssr/{_18t7ov64ycb-w._.js → _0ooh0hh-r_12s._.js} +2 -2
  597. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  598. package/server/.next/server/chunks/ssr/{_14bz_443syxhi._.js → _0pn3dn9s9es51._.js} +2 -2
  599. package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
  600. package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
  601. package/server/.next/server/chunks/ssr/{_06_f735j-1i20._.js → _0r04c1-snv6jw._.js} +2 -2
  602. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
  603. package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
  604. package/server/.next/server/chunks/ssr/{_0i6y4bkm-0cm3._.js → _0tnfblwwlyvq2._.js} +2 -2
  605. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
  606. package/server/.next/server/chunks/ssr/{_0o0-2ela2_qqd._.js → _0x1vi7mal3bqd._.js} +2 -2
  607. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  608. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  609. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
  610. package/server/.next/server/chunks/ssr/_11w5w9dpxcf1w._.js +3 -0
  611. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
  612. package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
  613. package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
  614. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
  615. package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
  616. package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
  617. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  618. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  619. package/server/.next/server/chunks/ssr/{_08y82qdosn7ga._.js → _1_ojvke28lw3y._.js} +2 -2
  620. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
  621. package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
  622. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
  623. package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
  624. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  625. package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
  626. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
  627. package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
  628. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  629. package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
  630. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
  631. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  632. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  633. package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
  634. package/server/.next/server/chunks/ssr/_1qt1czw3w8dww._.js +3 -0
  635. package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
  636. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
  637. package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
  638. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  639. package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
  640. package/server/.next/server/chunks/ssr/_20ln-4gu85-yt._.js +3 -0
  641. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
  642. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
  643. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
  644. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
  645. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
  646. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
  647. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
  648. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
  649. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
  650. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
  651. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
  652. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
  653. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
  654. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
  655. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
  656. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  657. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  658. package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
  659. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
  660. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
  661. package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
  662. package/server/.next/server/chunks/ssr/src_00ze92e3aolj8._.js +1 -1
  663. package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
  664. package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
  665. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  666. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  667. package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
  668. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  671. package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
  672. package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +3 -0
  673. package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
  674. package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
  675. package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
  676. package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
  679. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
  680. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  681. package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
  682. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  683. package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
  684. package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
  686. package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
  687. package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.js +1 -1
  688. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  689. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_11iuy79j_finh._.js +3 -0
  691. package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
  692. package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
  693. package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
  694. package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
  695. package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
  696. package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
  697. package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
  698. package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
  699. package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
  700. package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
  701. package/server/.next/server/chunks/ssr/{src_1eermasnm2cgy._.js → src_1ottjkdvhje3g._.js} +2 -2
  702. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  703. package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
  705. package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
  707. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
  710. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
  711. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  712. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
  713. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_connect-view_tsx_04abz05n7hdsd._.js +15 -15
  714. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
  716. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
  717. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.js +1 -1
  718. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  719. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
  724. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  731. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
  732. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
  733. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  734. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
  735. package/server/.next/server/chunks/ssr/{src_app_(console)_1ppp9j5e2rtqf._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
  736. package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
  737. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  738. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  739. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_088bs149wsgca._.js +1 -1
  740. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  741. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  742. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  743. package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
  744. package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
  745. package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
  746. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  747. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +3 -0
  748. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  749. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  750. package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
  751. package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
  752. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  753. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  754. package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
  755. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +1 -1
  756. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  757. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +3 -0
  758. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
  759. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  760. package/server/.next/server/chunks/ssr/src_app_(console)_neon_1ubea__gt06o0._.js +1 -1
  761. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  762. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  763. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  764. package/server/.next/server/chunks/ssr/src_app_(console)_sql_16-sh45tpob8n._.js +1 -1
  765. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  766. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  767. package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
  768. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  769. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  770. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  771. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
  772. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  773. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  774. package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
  775. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  776. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  777. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  778. package/server/.next/server/chunks/ssr/{src_app_signin_124xn9wb2fasu._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
  779. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +3 -0
  780. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  781. package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
  782. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +3 -3
  783. package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
  784. package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +1 -1
  785. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +1 -1
  786. package/server/.next/server/chunks/ssr/{src_lib_1l8ej-zoyyegd._.js → src_lib_1p21oczr6lh5a._.js} +2 -2
  787. package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +1 -1
  788. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  789. package/server/.next/server/chunks/ssr/src_lib_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
  790. package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
  791. package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  792. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  793. package/server/.next/server/chunks/ssr/{src_lib_demo_20hj85e_64pp1._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
  794. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  795. package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  796. package/server/.next/server/chunks/ssr/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  797. package/server/.next/server/chunks/ssr/src_lib_time_ts_1ualgyi3irm1z._.js +3 -0
  798. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  799. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  800. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  801. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  802. package/server/.next/server/chunks/ssr/src_private_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
  803. package/server/.next/server/chunks/ssr/src_private_ai_views-db_ts_1jbnr41mskha2._.js +1 -1
  804. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +3 -3
  805. package/server/.next/server/chunks/ssr/src_private_explorer_explorer_tsx_04m_tdottspjs._.js +1 -1
  806. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  807. package/server/.next/server/middleware-build-manifest.js +116 -105
  808. package/server/.next/server/next-font-manifest.js +1 -1
  809. package/server/.next/server/next-font-manifest.json +4 -0
  810. package/server/.next/server/pages/404.html +1 -1
  811. package/server/.next/server/pages/500.html +1 -1
  812. package/server/.next/server/preview-props.json +3 -3
  813. package/server/.next/server/server-reference-manifest.js +1 -1
  814. package/server/.next/server/server-reference-manifest.json +210 -164
  815. package/server/.next/static/chunks/08dak2kh1c6_7.js +1 -0
  816. package/server/.next/static/chunks/{2v14aqfx8wv9o.js → 0b9slopuz4e8a.js} +1 -1
  817. package/server/.next/static/chunks/{36ureqoyz5e06.js → 0dp-tuwkw7xf8.js} +2 -2
  818. package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
  819. package/server/.next/static/chunks/{2k9ytb8jmg14_.js → 0h9i512dn01kj.js} +1 -1
  820. package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
  821. package/server/.next/static/chunks/0icohez16w-ei.js +1 -0
  822. package/server/.next/static/chunks/{1ieazx9t3vl5p.js → 0j1wzqg4ukm70.js} +1 -1
  823. package/server/.next/static/chunks/{43_va15lk2zc1.js → 0j_5norjm-kef.js} +1 -1
  824. package/server/.next/static/chunks/{1-1hfgat2l_o9.js → 0kscmnb071fci.js} +1 -1
  825. package/server/.next/static/chunks/{0c7pskzfstcdh.js → 0ld78j1d4j201.js} +1 -1
  826. package/server/.next/static/chunks/0qlb-l1uyqku5.js +1 -0
  827. package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
  828. package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
  829. package/server/.next/static/chunks/{1ts_fd_r1kcrv.js → 1-oetq3mwlhds.js} +1 -1
  830. package/server/.next/static/chunks/{2fj4o7-stsvht.js → 11ywzwmfd_pt0.js} +1 -1
  831. package/server/.next/static/chunks/1j18pg23fzwv_.js +1 -0
  832. package/server/.next/static/chunks/1jaozq01v9r6e.js +1 -0
  833. package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
  834. package/server/.next/static/chunks/{0cannaigw8lhi.js → 1lsu_fxiyaeiz.js} +1 -1
  835. package/server/.next/static/chunks/1o3_amrh-sxr3.js +1 -0
  836. package/server/.next/static/chunks/{0wtboeftyamyk.js → 1w9o_jo_pejc5.js} +1 -1
  837. package/server/.next/static/chunks/1xy80z39ducub.js +1 -0
  838. package/server/.next/static/chunks/1yvbs41m8_4nc.js +7 -0
  839. package/server/.next/static/chunks/22alexnun_rdm.js +1 -0
  840. package/server/.next/static/chunks/{1o_q7_4ulcq9x.js → 27qwmt1w6-iri.js} +1 -1
  841. package/server/.next/static/chunks/29humkd2-_1oo.js +1 -0
  842. package/server/.next/static/chunks/29j96yfhxsf41.js +1 -0
  843. package/server/.next/static/chunks/29qnnsjsgsia6.js +1 -0
  844. package/server/.next/static/chunks/{2cjfogw85k3h-.js → 2ii8j9xuvv604.js} +1 -1
  845. package/server/.next/static/chunks/{30fczssqw6xys.js → 2m0ftj__ody0m.js} +1 -1
  846. package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
  847. package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
  848. package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
  849. package/server/.next/static/chunks/{0li9-xjc40g51.js → 2toeyr9b_nk0e.js} +1 -1
  850. package/server/.next/static/chunks/{2fo6iuxb0ec7f.js → 2w7qxt7ux-m1-.js} +1 -1
  851. package/server/.next/static/chunks/{1gmof0n5nswkk.js → 2zc1osymeruya.js} +1 -1
  852. package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
  853. package/server/.next/static/chunks/{026asl66kuq3f.js → 340ecjh1jzqjd.js} +15 -15
  854. package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
  855. package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
  856. package/server/.next/static/chunks/{3tqh7fwtd_k_l.js → 3gl2k6v182lli.js} +2 -2
  857. package/server/.next/static/chunks/{3f5sxz8awpdog.js → 3gurl_36kr7sg.js} +1 -1
  858. package/server/.next/static/chunks/{1gb8jvw-g7fr7.js → 3h-i_hcaaf7vs.js} +1 -1
  859. package/server/.next/static/chunks/{2jlv5ekbb0wu2.js → 3kznplgmzot89.js} +1 -1
  860. package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
  861. package/server/.next/static/chunks/{3dokgd9nungcr.js → 3n_n6yeienmn-.js} +1 -1
  862. package/server/.next/static/chunks/3nqciag05fif0.js +1 -0
  863. package/server/.next/static/chunks/{1zi37go-xtasg.js → 3o45i7xbzm0w-.js} +1 -1
  864. package/server/.next/static/chunks/{1c4fx4kipvnqz.js → 3oe302ug_esoe.js} +1 -1
  865. package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
  866. package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
  867. package/server/.next/static/chunks/{2rdmebof0d_c4.js → 3shbvizselyoq.js} +1 -1
  868. package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
  869. package/server/.next/static/chunks/{2z1xy8l4s3usi.js → 3yv-enyk37whg.js} +1 -1
  870. package/server/node_modules/@next/env/package.json +1 -1
  871. package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
  872. package/server/node_modules/next/dist/build/index.js +3 -3
  873. package/server/node_modules/next/dist/build/swc/index.js +1 -1
  874. package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
  875. package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
  876. package/server/node_modules/next/dist/build/webpack-config.js +3 -3
  877. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
  878. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
  879. package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
  880. package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  881. package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
  882. package/server/node_modules/next/dist/server/config.js +1 -1
  883. package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  884. package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  885. package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  886. package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
  887. package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
  888. package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
  889. package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
  890. package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
  891. package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
  892. package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  893. package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  894. package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
  895. package/server/node_modules/next/package.json +11 -11
  896. package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
  897. package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
  898. package/server/.next/server/chunks/[root-of-the-server]__08n3x1x850wqc._.js +0 -3
  899. package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
  900. package/server/.next/server/chunks/[root-of-the-server]__0grnl7ncqcjft._.js +0 -3
  901. package/server/.next/server/chunks/[root-of-the-server]__0hju4mctdmvz9._.js +0 -3
  902. package/server/.next/server/chunks/[root-of-the-server]__0i3n8l6ecdb4u._.js +0 -3
  903. package/server/.next/server/chunks/[root-of-the-server]__0m8w2-7618scn._.js +0 -3
  904. package/server/.next/server/chunks/[root-of-the-server]__0p_b0m2cstlrl._.js +0 -3
  905. package/server/.next/server/chunks/[root-of-the-server]__0uyagcs61c0t_._.js +0 -3
  906. package/server/.next/server/chunks/[root-of-the-server]__0v1kcolrxwmob._.js +0 -3
  907. package/server/.next/server/chunks/[root-of-the-server]__0vctt_0kj1gz4._.js +0 -3
  908. package/server/.next/server/chunks/[root-of-the-server]__0x0x6v75re5_e._.js +0 -3
  909. package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
  910. package/server/.next/server/chunks/[root-of-the-server]__0ymon9r-17xe_._.js +0 -3
  911. package/server/.next/server/chunks/[root-of-the-server]__0zxjft8y2r575._.js +0 -3
  912. package/server/.next/server/chunks/[root-of-the-server]__114vjjaqb2wyv._.js +0 -3
  913. package/server/.next/server/chunks/[root-of-the-server]__12uyws-qe6wxs._.js +0 -3
  914. package/server/.next/server/chunks/[root-of-the-server]__139pgc0wpc7kg._.js +0 -3
  915. package/server/.next/server/chunks/[root-of-the-server]__157yb_wl7w4ly._.js +0 -3
  916. package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
  917. package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
  918. package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
  919. package/server/.next/server/chunks/[root-of-the-server]__1_5q9zgl6p5_3._.js +0 -3
  920. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
  921. package/server/.next/server/chunks/[root-of-the-server]__1bwgi7nn5-hc3._.js +0 -3
  922. package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
  923. package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
  924. package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
  925. package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
  926. package/server/.next/server/chunks/[root-of-the-server]__1k8s02gwythps._.js +0 -3
  927. package/server/.next/server/chunks/[root-of-the-server]__1lf_lo1wqcbcg._.js +0 -3
  928. package/server/.next/server/chunks/[root-of-the-server]__1n32c8l_j8jt4._.js +0 -3
  929. package/server/.next/server/chunks/[root-of-the-server]__1niiijc82bgoj._.js +0 -3
  930. package/server/.next/server/chunks/[root-of-the-server]__1on_3p53yn6fs._.js +0 -3
  931. package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
  932. package/server/.next/server/chunks/[root-of-the-server]__1q90luznbe9-l._.js +0 -3
  933. package/server/.next/server/chunks/[root-of-the-server]__1r15vmrh2r06l._.js +0 -3
  934. package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
  935. package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
  936. package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
  937. package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
  938. package/server/.next/server/chunks/[root-of-the-server]__1woerg3tb4ls3._.js +0 -3
  939. package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
  940. package/server/.next/server/chunks/[root-of-the-server]__1zaomh_4901_f._.js +0 -3
  941. package/server/.next/server/chunks/[root-of-the-server]__20lwsd6a4wnpe._.js +0 -3
  942. package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
  943. package/server/.next/server/chunks/_03bua_9n4apok._.js +0 -3
  944. package/server/.next/server/chunks/_0594j_bb0l80e._.js +0 -3
  945. package/server/.next/server/chunks/_076dwl7r_5vcl._.js +0 -34
  946. package/server/.next/server/chunks/_08tppw9ujlpke._.js +0 -34
  947. package/server/.next/server/chunks/_08y82qdosn7ga._.js +0 -3
  948. package/server/.next/server/chunks/_0m49djgc1t4wg._.js +0 -3
  949. package/server/.next/server/chunks/_0n5m3o7at0adm._.js +0 -34
  950. package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
  951. package/server/.next/server/chunks/_0r4am1mgz4dg_._.js +0 -3
  952. package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
  953. package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
  954. package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
  955. package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
  956. package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
  957. package/server/.next/server/chunks/_11p2ejgai2a78._.js +0 -3
  958. package/server/.next/server/chunks/_1bcsmpznxhk9h._.js +0 -3
  959. package/server/.next/server/chunks/_1he3nioua8ee5._.js +0 -3
  960. package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
  961. package/server/.next/server/chunks/_1lpcbqj4uzrsh._.js +0 -3
  962. package/server/.next/server/chunks/_1rw6_0nf-3sxs._.js +0 -34
  963. package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
  964. package/server/.next/server/chunks/src_0l-no1yc1_izn._.js +0 -3
  965. package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
  966. package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
  967. package/server/.next/server/chunks/src_156ewlek-4a4z._.js +0 -3
  968. package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
  969. package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
  970. package/server/.next/server/chunks/src_lib_0-ylqsh7whlj2._.js +0 -3
  971. package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
  972. package/server/.next/server/chunks/src_lib_0f0p6-l5vvduu._.js +0 -3
  973. package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
  974. package/server/.next/server/chunks/src_lib_15a3m-j_urkkp._.js +0 -3
  975. package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
  976. package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
  977. package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
  978. package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
  979. package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
  980. package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
  981. package/server/.next/server/chunks/ssr/[root-of-the-server]__06s-dfcfuperv._.js +0 -3
  982. package/server/.next/server/chunks/ssr/[root-of-the-server]__07or1m2vwon1m._.js +0 -3
  983. package/server/.next/server/chunks/ssr/[root-of-the-server]__0d9lwldljqtvx._.js +0 -3
  984. package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
  985. package/server/.next/server/chunks/ssr/[root-of-the-server]__0uklr553mp86_._.js +0 -3
  986. package/server/.next/server/chunks/ssr/[root-of-the-server]__1cykncw1_xcno._.js +0 -3
  987. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ih2a_fbqu7ko._.js +0 -3
  988. package/server/.next/server/chunks/ssr/[root-of-the-server]__1j7_a902k_8es._.js +0 -3
  989. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ofzjllv-b0o0._.js +0 -3
  990. package/server/.next/server/chunks/ssr/_040ixxsgfs0vi._.js +0 -3
  991. package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
  992. package/server/.next/server/chunks/ssr/_0ux6eo_w1x155._.js +0 -3
  993. package/server/.next/server/chunks/ssr/_12o9qqjoik4q4._.js +0 -3
  994. package/server/.next/server/chunks/ssr/_1k2q3yt1h6cfs._.js +0 -3
  995. package/server/.next/server/chunks/ssr/_1zhtvg8t3jtxe._.js +0 -3
  996. package/server/.next/server/chunks/ssr/_200p6me5_kp2j._.js +0 -3
  997. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
  998. package/server/.next/server/chunks/ssr/src_00s82lfm2ga7-._.js +0 -3
  999. package/server/.next/server/chunks/ssr/src_13hsrg6rdvh-d._.js +0 -3
  1000. package/server/.next/server/chunks/ssr/src_1xgsz_do2xpr2._.js +0 -3
  1001. package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
  1002. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
  1003. package/server/.next/server/chunks/ssr/src_components_shell_shell_tsx_1cpq-hbch_dvj._.js +0 -3
  1004. package/server/.next/server/chunks/ssr/src_lib_0y40wht-o-oc2._.js +0 -3
  1005. package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
  1006. package/server/.next/static/chunks/03qto0oyf2r1n.js +0 -1
  1007. package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
  1008. package/server/.next/static/chunks/0n_l4a3za5-q8.js +0 -1
  1009. package/server/.next/static/chunks/0t96fqp1vsmrp.js +0 -1
  1010. package/server/.next/static/chunks/0wlc502815llk.js +0 -1
  1011. package/server/.next/static/chunks/158-i6phe17yl.js +0 -1
  1012. package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
  1013. package/server/.next/static/chunks/1mlvn70-zqjvi.js +0 -1
  1014. package/server/.next/static/chunks/1sm8wxvlpowwg.js +0 -1
  1015. package/server/.next/static/chunks/1teh52nh5dujq.js +0 -1
  1016. package/server/.next/static/chunks/1v4hl1z0y1npd.js +0 -1
  1017. package/server/.next/static/chunks/1vh2psoqw3ddc.js +0 -1
  1018. package/server/.next/static/chunks/1xau8pf40_upi.js +0 -7
  1019. package/server/.next/static/chunks/1z2rcngn3-7i5.js +0 -1
  1020. package/server/.next/static/chunks/210qrsqvmgaet.js +0 -1
  1021. package/server/.next/static/chunks/29p15vj15jcsb.js +0 -1
  1022. package/server/.next/static/chunks/2kmerzslng988.js +0 -1
  1023. package/server/.next/static/chunks/2llric-1orr3y.js +0 -1
  1024. package/server/.next/static/chunks/2wb9a1xth0yhf.js +0 -1
  1025. package/server/.next/static/chunks/34gs6c2dsgtqy.js +0 -1
  1026. package/server/.next/static/chunks/3ag6t3ta58rih.js +0 -1
  1027. package/server/.next/static/chunks/3gkta99h3_5i2.js +0 -1
  1028. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
  1029. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
  1030. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
@@ -1,9 +1,9 @@
1
- (()=>{"use strict";module.exports=[537622,e=>{var t=e.i(665044),a=e.i(77193);e.s(["f",0,function(e){if((0,a.r)())for(let a of new Set(e))try{let e;e=a,(0,t.revalidateTag)(e,{expire:0})}catch(e){console.warn(`cache: couldn't expire ${a}: ${e instanceof Error?e.message.slice(0,120):"unknown"}`)}}])},140318,977832,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(921991),o=e.i(656083),l=e.i(629955),u=e.i(497867);function d(e){if(!e)return null;if("unknown"!==e.state)return e.state;let t=e.data?.lastGoodState;return"string"==typeof t&&u.f.includes(t)?t:null}let c={turso_database:"Turso database",upstash_redis:"Upstash Redis",d1_database:"D1 database"};function f(e){let{prev:t,next:a}=e;if(null===t||"unknown"===t||"unknown"===a||t===a)return null;let r={resourceId:e.resourceId,type:"database",at:e.at};if("supabase_project"===e.kind)return"paused"===a?{...r,reason:"DatabasePaused",kind:"paused",message:"Supabase project paused",detail:"Status changed to INACTIVE"}:"ok"===a?{...r,reason:"DatabaseRestored",kind:"ok",message:"Supabase project active again",detail:"Status changed to ACTIVE_HEALTHY"}:"warn"===a?{...r,reason:"DatabaseUnhealthy",kind:"warn",message:"Supabase project unhealthy",detail:e.label}:"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`Supabase project: ${e.label.toLowerCase()}`,detail:e.label}:null;if("neon_project"===e.kind)return"err"===a?{...r,reason:"NeonSuspended",kind:"err",message:"Neon compute suspended",detail:e.label}:"err"===t&&("ok"===a||"idle"===a)?{...r,reason:"NeonAvailable",kind:"ok",message:"Neon compute available again",detail:e.label}:null;let n=c[e.kind];if(n)return"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`${n}: ${e.label.toLowerCase()}`,detail:e.label}:"off"===a?{...r,reason:"DatabaseMissing",kind:"off",message:`${n} missing`,detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"DatabaseRestored",kind:"ok",message:`${n} available again`,detail:e.label}:null;if("err"===a){let t="Daily quota used up"===e.label;return{...r,reason:t?"FirestoreQuotaUsedUp":"FirestoreUnreachable",kind:"err",message:t?"Firestore daily quota used up":"Firestore not reachable",detail:e.label}}return"off"===a?{...r,reason:"FirestoreMissing",kind:"off",message:"Firestore database missing",detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"FirestoreReachable",kind:"ok",message:"Firestore reachable again",detail:e.label}:null}function p(e,t){return"auth"===e.kind?"auth":"scope"===e.kind?t?"auth":"column":"missing"===e.kind?t?"unknown":"column":"unknown"}e.s(["t",0,p,"K",0,f,"F",0,d],977832);var w=e.i(960063),m=e.i(800366),g=e.i(326003),h=e.i(843448),b=e.i(547499),k=e.i(795194),y=e.i(780148),I=e.i(443917),v=e.i(342833),A=e.i(442473);let S="skipped the rest, time budget used";function $(e){let t=e.deadline-Date.now()-500;if(t<250)throw Error(S);return{timeoutMs:Math.min(5e3,t)}}async function D(e,t,a){let r=!1;return{out:await (0,A.P)(t,3,async t=>{let n;try{n=$(e)}catch{r=!0;return}return a(t,n)}),skipped:r}}function x(e){if(e)throw Error(S)}async function R(e){let a=await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,e),(0,t.u)(n.accounts.status,"ok"))),s=(0,b.f)().OPS_ENCRYPTION_KEY;return a.map(e=>({acc:e,credential:(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},s)}))}function M(e,a){return(0,r.f)().select({r:n.resources,s:n.snapshots}).from(n.resources).leftJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,a),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).limit(100)}let E=e=>a.B`${n.snapshots.data} || ${JSON.stringify(e)}::jsonb`;async function j(e,t,a){let s=d(e.s?{state:e.s.state,data:e.s.data}:null),i="unknown"===t.state,o=i?s?{lastGoodState:s}:{}:{...t.patch,lastGoodState:t.state},l=!i&&s!==t.state;return await (0,r.f)().insert(n.snapshots).values({resourceId:e.r.id,state:t.state,data:o,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:t.state,data:E(o),...i?{}:{collectedAt:a},...l?{stateSince:a}:{}}}),i?null:f({kind:e.r.kind,resourceId:e.r.id,prev:s,next:t.state,label:t.label,at:a})}async function P(e,a){await (0,r.f)().update(n.snapshots).set({data:E(a)}).where((0,t.u)(n.snapshots.resourceId,e.r.id))}let z=e=>(0,o.f)(e);async function N(e,a,i,o,l){if("auth"===p(o,!0)){let e=(0,s.E)({ok:!1,kind:"auth",error:o.error});e&&await (0,r.f)().update(n.accounts).set({...e,updatedAt:l.now}).where((0,t.u)(n.accounts.id,a.id))}for(let e of i)await j(e,{state:"unknown",label:"Unknown",patch:{}},l.now);l.errors.push(`${e}/${a.label}: ${o.error}`)}let B=e=>e.toISOString();async function O(e){return e.length?new Set((await (0,r.f)().select({app:n.links.fromResourceId,state:n.snapshots.state,data:n.snapshots.data}).from(n.links).innerJoin(n.resources,(0,t.u)(n.resources.id,n.links.toResourceId)).innerJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.links.kind,"uses_db"),(0,t.y)(n.links.fromResourceId,e),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)))).filter(e=>"paused"===e.state||"unknown"===e.state&&"paused"===e.data.lastGoodState).map(e=>e.app)):new Set}async function T(e){for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a){e.errors.push(`supabase/${t.label}: credential can't be read`);continue}let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=await (0,v.W)(a,$(e));if(!n.ok){await N("supabase",t,r,n,e);continue}let s=new Map(n.data.map(e=>[e.ref,e])),i=[];for(let t of r){let a=s.get(t.r.externalId);if(!a){i.push(await j(t,{state:"off",label:"Not found",patch:{status:"REMOVED"}},e.now));continue}let r=(0,h.P)(a.status),n=d(t.s?{state:t.s.state,data:t.s.data}:null),o={status:a.status,region:a.region,pgVersion:a.pgVersion,orgSlug:a.orgSlug};"paused"===r.state&&"paused"!==n&&(o.pausedBeforeSeen=null===n),i.push(await j(t,{state:r.state,label:r.label,patch:o},e.now))}await z(i);let o=new Map(r.map(e=>[e.r.externalId,e.r.id])),u=n.data.map(e=>({resourceId:o.get(e.ref)??null,accountId:t.id,status:e.status,orgSlug:e.orgSlug}));await (0,l.z)(e.now,u,e.deadline).catch(()=>{console.warn("auto-restore failed"),e.errors.push("auto-restore failed")})}}async function C(e){for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a)continue;let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=new Map(r.map(e=>[e.r.id,(0,g.k)(g.B,e.s?.data)])),s=new Map;for(let r of new Set([...n.values()].map(e=>e.orgSlug).filter(e=>!!e))){let n=await (0,v.K)(a,r,$(e));s.set(r,n.ok&&null!==n.data?"free"===n.data:null),n.ok||"scope"===n.kind||e.errors.push(`supabase/${t.label} plan: ${n.error}`)}let{skipped:i}=await D(e,r,async(t,r)=>{let i=n.get(t.r.id),o={freeOrg:i.orgSlug?s.get(i.orgSlug)??null:null};if((i.status??"").startsWith("ACTIVE_")){let[n,s]=await Promise.all([(0,v.F)(a,t.r.externalId,r),(0,v.Z)(a,t.r.externalId,r)]);n.ok?Object.assign(o,{health:n.data.map(({name:e,status:t})=>({name:e,status:t})),healthAt:B(e.now),healthError:null}):"column"===p(n,!1)?o.healthError=n.error:e.errors.push(`supabase/${t.r.name} health: ${n.error}`),s.ok?Object.assign(o,{lastTrafficAt:(0,h.H)(s.data)?.toISOString()??null,trafficAt:B(e.now),trafficError:null}):"column"===p(s,!1)?o.trafficError=s.error:e.errors.push(`supabase/${t.r.name} traffic: ${s.error}`)}await P(t,o)});x(i)}}async function W(e){for(let{acc:t,credential:a}of(await R("neon"))){if($(e),!a){e.errors.push(`neon/${t.label}: credential can't be read`);continue}let r=await M(t.id,"neon_project");if(!r.length)continue;let{out:n,skipped:s}=await D(e,r,(e,t)=>Promise.all([(0,I.Z)(a,e.r.externalId,t),(0,I.k)(a,e.r.externalId,t),(0,I.e)(a,e.r.externalId,t)])),i=n.flat().find(e=>void 0!==e&&!e.ok&&"auth"===e.kind);if(i){await N("neon",t,r,i,e);continue}let o=[];for(let[t,a]of r.entries()){let r=n[t];if(!r)continue;let[s,i,l]=r;if(!s.ok||!i.ok||!l.ok){let t=[s,i,l].find(e=>!e.ok);"missing"===t.kind?o.push(await j(a,{state:"off",label:"Not found",patch:{}},e.now)):(await j(a,{state:"unknown",label:"Unknown",patch:{}},e.now),e.errors.push(`neon/${a.r.name}: ${t.error}`));continue}let u=(0,m.p)({endpoints:i.data,computeSeconds:s.data.computeSeconds});o.push(await j(a,{state:u.state,label:u.label,patch:{region:s.data.region,pgVersion:s.data.pgVersion,computeSeconds:s.data.computeSeconds,transferBytes:s.data.transferBytes,activeSeconds:s.data.activeSeconds,periodStart:s.data.periodStart,periodEnd:s.data.periodEnd,endpoints:i.data,branches:l.data}},e.now))}await z(o),x(s)}}async function _(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,y.p)(a):null;if(!r){e.errors.push(`firebase/${t.label}: credential can't be read`);continue}let n=await M(t.id,"firestore");if(!n.length)continue;let s=await (0,y.X)(r,$(e));if(!s.ok){await N("firebase",t,n,s,e);continue}let{out:i,skipped:o}=await D(e,n,(e,t)=>(0,k.G)(s.data,e.r.externalId,t)),l=[];for(let[t,a]of n.entries()){let r=i[t];if(!r)continue;let n=(0,w.g)(r);"unknown"!==n.state||r.ok||e.errors.push(`firebase/${a.r.name}: ${r.error}`);let s=r.ok?{latencyMs:r.data.latencyMs,pingError:null,pingReason:null,pingKind:null}:{pingError:r.error,pingReason:r.reason??null,pingKind:r.kind};l.push(await j(a,{...n,patch:s},e.now))}await z(l),x(o)}}async function U(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,y.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,y.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let i=(0,w.a)(e.now),{skipped:o}=await D(e,n,async(t,a)=>{let r=await (0,k.W)(s.data,t.r.externalId,i,e.now,a);r.ok?await P(t,{...r.data,opsAt:B(e.now),opsError:null}):"column"===p(r,!1)?await P(t,{reads:null,writes:null,deletes:null,opsAt:B(e.now),opsError:/requires billing/i.test(r.message??"")?"Not available on Spark: Firestore usage needs billing (Blaze plan)":"SERVICE_DISABLED"===r.reason?"Not readable: the Cloud Monitoring API is off in this project":"Not readable: the service account needs monitoring.viewer"}):e.errors.push(`firebase/${t.r.name} usage: ${r.error}`)});x(o)}}async function V(e){let t=Date.now()+2*Math.max(0,e.deadline-Date.now())/3,a=await F(()=>q({...e,deadline:t})),r=await F(()=>L(e));if(a)throw a;if(r)throw r}async function F(e){try{return await e(),null}catch(e){return e instanceof Error?e:Error(String(e))}}async function q(e){for(let{acc:t,credential:a}of(await R("supabase")))if($(e),a)for(let r of(await M(t.id,"supabase_project"))){let t=(0,g.k)(g.B,r.s?.data);if(!(0,h.z)({status:t.status??"",lastTrafficAt:t.lastTrafficAt?new Date(t.lastTrafficAt):null,sizeAt:t.sizeAt?new Date(t.sizeAt):null,now:e.now}))continue;let n=await (0,v.r)(a,r.r.externalId,$(e));n.ok?await P(r,{sizeBytes:n.data,sizeAt:B(e.now),sizeError:null}):"column"===p(n,!1)?await P(r,{sizeError:n.error}):e.errors.push(`supabase/${r.r.name} size: ${n.error}`)}}async function L(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,y.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,y.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let{skipped:i}=await D(e,n,async(t,a)=>{let r=await (0,k.q)(s.data,t.r.externalId,a);r.ok?await P(t,{authUsers:r.data,authAt:B(e.now),authError:null}):"column"===p(r,!1)?await P(t,{authError:"Not readable: the service account needs firebaseauth.viewer"}):e.errors.push(`firebase/${t.r.name} users: ${r.error}`)});x(i)}}e.s(["w",0,N,"O",0,R,"q",0,O,"T",0,D,"W",0,x,"M",0,z,"I",0,F,"f",0,V,"g",0,_,"x",0,U,"h",0,W,"N",0,T,"y",0,C,"e",0,M,"s",0,$,"a",0,j],140318)},956846,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(537622),o=e.i(749124),l=e.i(532148),u=e.i(988294),d=e.i(739886),c=e.i(656083),f=e.i(921991),p=e.i(381725),w=e.i(483100),m=e.i(948736),g=e.i(762504),h=e.i(547499),b=e.i(275426),k=e.i(177706),y=e.i(61926),I=e.i(140318),v=e.i(977832),A=e.i(89491),S=e.i(592951),$=e.i(691734),D=e.i(43790),x=e.i(11552);async function R(e){let t=[await (0,I.I)(()=>E(e)),await (0,I.I)(()=>P(e)),await (0,I.I)(()=>z(e))].find(e=>null!==e);if(t)throw t}let M=e=>e.toISOString();async function E(e){for(let{acc:t,credential:a}of(await (0,I.O)("turso"))){if((0,I.s)(e),!a){e.errors.push(`turso/${t.label}: credential can't be read`);continue}let r=await (0,I.e)(t.id,"turso_database");if(!r.length)continue;let n=await (0,$.u)(a,(0,I.s)(e));if(!n.ok){await (0,I.w)("turso",t,r,n,e);continue}let s=new Set(r.map(e=>String(e.r.meta.org??""))),i=[];for(let o of n.data.filter(e=>s.has(e.slug))){let[n,s]=await Promise.all([(0,$.X)(a,o.slug,(0,I.s)(e)),(0,$.d)(a,o.slug,(0,I.s)(e))]),l=r.filter(e=>e.r.meta.org===o.slug);if(!n.ok){for(let t of l)await (0,I.a)(t,{state:"unknown",label:"Unknown",patch:{}},e.now);e.errors.push(`turso/${t.label}: ${n.error}`);continue}let u=new Map(n.data.map(e=>[e.id,e]));for(let t of l)i.push(await j(t,u.get(t.r.externalId),o,s,e))}let o=new Set(n.data.map(e=>e.slug));for(let t of r.filter(e=>!o.has(String(e.r.meta.org??""))))i.push(await (0,I.a)(t,{state:"off",label:"Organization not visible to this token",patch:{}},e.now));await (0,I.M)(i)}}async function j(e,t,a,r,n){if(!t)return(0,I.a)(e,{state:"off",label:"Not found",patch:{}},n.now);let s=(0,A.h)({blockReads:t.blockReads,blockWrites:t.blockWrites,orgBlockedReads:a.blockedReads,orgBlockedWrites:a.blockedWrites}),i={org:a.slug,group:t.group,primaryRegion:t.primaryRegion,plan:a.plan,blockReads:t.blockReads,blockWrites:t.blockWrites};if(r.ok){let e=r.data.byDb.get(t.id);Object.assign(i,{rowsRead:e?.rowsRead??null,rowsWritten:e?.rowsWritten??null,storageBytes:e?.storageBytes??null,orgRowsRead:r.data.org.rowsRead,orgRowsWritten:r.data.org.rowsWritten,orgStorageBytes:r.data.org.storageBytes,orgDatabases:r.data.org.databases,usageAt:M(n.now),usageError:null})}else"column"===(0,v.t)(r,!1)?i.usageError=r.error:n.errors.push(`turso/${e.r.name} usage: ${r.error}`);return(0,I.a)(e,{...s,patch:i},n.now)}async function P(e){for(let{acc:t,credential:a}of(await (0,I.O)("upstash"))){(0,I.s)(e);let r=a?(0,D.L)(a):null;if(!r){e.errors.push(`upstash/${t.label}: credential can't be read`);continue}let n=await (0,I.e)(t.id,"upstash_redis");if(!n.length)continue;let s=await (0,D.M)(r,(0,I.s)(e));if(!s.ok){await (0,I.w)("upstash",t,n,s,e);continue}let i=new Map(s.data.map(e=>[e.id,e])),{out:o,skipped:l}=await (0,I.T)(e,n,(e,t)=>i.has(e.r.externalId)?(0,D.Z)(r,e.r.externalId,t):Promise.resolve(null)),u=[];for(let[t,a]of n.entries()){let r=i.get(a.r.externalId);if(!r){u.push(await (0,I.a)(a,{state:"off",label:"Not found",patch:{}},e.now));continue}let n=(0,A.t)(r.state),s={region:r.region,status:r.state,type:r.type},l=o[t];l?.ok?Object.assign(s,{...l.data,statsAt:M(e.now),statsError:null}):l&&"column"===(0,v.t)(l,!1)?s.statsError=l.error:l&&e.errors.push(`upstash/${a.r.name} stats: ${l.error}`),u.push(await (0,I.a)(a,{...n,patch:s},e.now))}await (0,I.M)(u),(0,I.W)(l)}}async function z(e){let t={};for(let{acc:a,credential:r}of(await (0,I.O)("cloudflare"))){if((0,I.s)(e),!r)continue;let n=await B(a.id,r,e);if(!n.length){t[a.id]={d1:"error",analytics:null,at:M(e.now),note:"No Cloudflare account found for this token"};continue}let s="ok",i=null;for(let t of n){let n=await (0,S.L)(r,t,(0,I.s)(e));if(!n.ok){"error"==(s="scope"===n.kind||"auth"===n.kind?"missing":"error")&&e.errors.push(`d1/${a.label}: ${n.error}`);continue}await O(a.id,t,n.data,e.now);let o=(await (0,I.e)(a.id,"d1_database")).filter(e=>e.r.meta.accountId===t);if(!o.length)continue;let l=await (0,S.t)(r,t,(0,S.Y)(e.now),(0,I.s)(e));i=l.ok?i??"ok":"scope"===l.kind?"missing":i??"error",l.ok||"scope"===l.kind||e.errors.push(`d1/${a.label} analytics: ${l.error}`);let{out:u,skipped:d}=await (0,I.T)(e,o,(e,a)=>(0,S.m)(r,t,e.r.externalId,a)),c=new Map((l.ok?l.data:[]).map(e=>[e.databaseId,e])),f=u.map(e=>e?.ok?e.data.sizeBytes??0:0),p={accountRowsRead:l.ok?l.data.reduce((e,t)=>e+t.rowsRead,0):null,accountRowsWritten:l.ok?l.data.reduce((e,t)=>e+t.rowsWritten,0):null,accountSizeBytes:u.every(e=>e?.ok)?f.reduce((e,t)=>e+t,0):null,accountDatabases:n.data.length},w=[];for(let[t,a]of o.entries()){let r=u[t];void 0!==r&&w.push(await N(a,r,c.get(a.r.externalId)??null,l.ok,l.ok?null:l.error,p,e))}await (0,I.M)(w),(0,I.W)(d)}t[a.id]={d1:s,analytics:i,at:M(e.now),note:null}}await (0,r.f)().insert(n.settings).values({key:x.f,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:e.now}})}async function N(e,t,a,r,n,s,i){let o={accountId:e.r.meta.accountId??null,createdAt:e.r.meta.createdAt??null,accountDatabases:s.accountDatabases};if(t.ok?Object.assign(o,{sizeBytes:t.data.sizeBytes,numTables:t.data.numTables,readReplication:t.data.readReplication,detailsAt:M(i.now),detailsError:null}):"scope"===t.kind?o.detailsError=t.error:i.errors.push(`d1/${e.r.name}: ${t.error}`),r?Object.assign(o,{rowsRead:a?.rowsRead??0,rowsWritten:a?.rowsWritten??0,readQueries:a?.readQueries??0,writeQueries:a?.writeQueries??0,accountRowsRead:s.accountRowsRead,accountRowsWritten:s.accountRowsWritten,usageDay:(0,S.Y)(i.now),usageAt:M(i.now),usageError:null}):o.usageError=n,null!==s.accountSizeBytes&&(o.accountSizeBytes=s.accountSizeBytes),!t.ok&&"transient"===t.kind)return(0,I.a)(e,{state:"unknown",label:"Unknown",patch:{}},i.now);let l=(0,A.c)(r?s:{accountRowsRead:null,accountRowsWritten:null});return(0,I.a)(e,{...l,patch:o},i.now)}async function B(e,a,s){let i=new Set,o=await (0,S.N)(a,(0,I.s)(s));if(o.ok)for(let e of o.data)i.add(e.id);for(let a of(await (0,r.f)().select({meta:n.resources.meta}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"zone"),(0,t.M)(n.resources.goneAt))).limit(200)))"string"==typeof a.meta.accountId&&/^[0-9a-f]{32}$/i.test(a.meta.accountId)&&i.add(a.meta.accountId);return[...i].slice(0,5)}async function O(e,a,s,i){let o=(await (0,r.f)().select({id:n.resources.id,externalId:n.resources.externalId,meta:n.resources.meta,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"d1_database")))).filter(e=>e.meta.accountId===a),l=new Map(o.map(e=>[e.externalId,e])),u=new Set(s.map(e=>e.uuid));await (0,r.f)().transaction(async r=>{for(let o of s){let s={accountId:a,createdAt:o.createdAt},u=l.get(o.uuid);u?await r.update(n.resources).set({name:o.name,meta:s,lastSeenAt:i,goneAt:null,updatedAt:i}).where((0,t.u)(n.resources.id,u.id)):await r.insert(n.resources).values({accountId:e,kind:"d1_database",externalId:o.uuid,name:o.name,meta:s,monitored:!0,lastSeenAt:i}).onConflictDoNothing({target:[n.resources.accountId,n.resources.kind,n.resources.externalId]})}let d=o.filter(e=>!u.has(e.externalId)&&!e.goneAt).map(e=>e.id);d.length&&await r.update(n.resources).set({goneAt:i,updatedAt:i}).where((0,t.y)(n.resources.id,d))})}var T=e.i(442473),C=e.i(666680),W=e.i(473283),_=e.i(422067);async function U(e=new Date){let t=(0,C.randomUUID)(),n=new Date(e.getTime()+_.d).toISOString(),s=await (0,r.f)().execute(a.B`
1
+ (()=>{"use strict";module.exports=[537622,e=>{var t=e.i(665044),a=e.i(77193);e.s(["f",0,function(e){if((0,a.r)())for(let a of new Set(e))try{let e;e=a,(0,t.revalidateTag)(e,{expire:0})}catch(e){console.warn(`cache: couldn't expire ${a}: ${e instanceof Error?e.message.slice(0,120):"unknown"}`)}}])},140318,977832,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(921991),o=e.i(656083),l=e.i(629955),u=e.i(497867);function d(e){if(!e)return null;if("unknown"!==e.state)return e.state;let t=e.data?.lastGoodState;return"string"==typeof t&&u.f.includes(t)?t:null}let c={turso_database:"Turso database",upstash_redis:"Upstash Redis",d1_database:"D1 database"};function f(e){let{prev:t,next:a}=e;if(null===t||"unknown"===t||"unknown"===a||t===a)return null;let r={resourceId:e.resourceId,type:"database",at:e.at};if("supabase_project"===e.kind)return"paused"===a?{...r,reason:"DatabasePaused",kind:"paused",message:"Supabase project paused",detail:"Status changed to INACTIVE"}:"ok"===a?{...r,reason:"DatabaseRestored",kind:"ok",message:"Supabase project active again",detail:"Status changed to ACTIVE_HEALTHY"}:"warn"===a?{...r,reason:"DatabaseUnhealthy",kind:"warn",message:"Supabase project unhealthy",detail:e.label}:"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`Supabase project: ${e.label.toLowerCase()}`,detail:e.label}:null;if("neon_project"===e.kind)return"err"===a?{...r,reason:"NeonSuspended",kind:"err",message:"Neon compute suspended",detail:e.label}:"err"===t&&("ok"===a||"idle"===a)?{...r,reason:"NeonAvailable",kind:"ok",message:"Neon compute available again",detail:e.label}:null;let n=c[e.kind];if(n)return"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`${n}: ${e.label.toLowerCase()}`,detail:e.label}:"off"===a?{...r,reason:"DatabaseMissing",kind:"off",message:`${n} missing`,detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"DatabaseRestored",kind:"ok",message:`${n} available again`,detail:e.label}:null;if("err"===a){let t="Daily quota used up"===e.label;return{...r,reason:t?"FirestoreQuotaUsedUp":"FirestoreUnreachable",kind:"err",message:t?"Firestore daily quota used up":"Firestore not reachable",detail:e.label}}return"off"===a?{...r,reason:"FirestoreMissing",kind:"off",message:"Firestore database missing",detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"FirestoreReachable",kind:"ok",message:"Firestore reachable again",detail:e.label}:null}function p(e,t){return"auth"===e.kind?"auth":"scope"===e.kind?t?"auth":"column":"missing"===e.kind?t?"unknown":"column":"unknown"}e.s(["t",0,p,"K",0,f,"F",0,d],977832);var w=e.i(960063),g=e.i(800366),m=e.i(326003),h=e.i(843448),b=e.i(547499),y=e.i(795194),k=e.i(780148),I=e.i(443917),v=e.i(342833),A=e.i(442473);let S="skipped the rest, time budget used";function $(e){let t=e.deadline-Date.now()-500;if(t<250)throw Error(S);return{timeoutMs:Math.min(5e3,t)}}async function D(e,t,a){let r=!1;return{out:await (0,A.P)(t,3,async t=>{let n;try{n=$(e)}catch{r=!0;return}return a(t,n)}),skipped:r}}function x(e){if(e)throw Error(S)}async function R(e){let a=await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,e),(0,t.u)(n.accounts.status,"ok"))),s=(0,b.f)().OPS_ENCRYPTION_KEY;return a.map(e=>({acc:e,credential:(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},s)}))}function M(e,a){return(0,r.f)().select({r:n.resources,s:n.snapshots}).from(n.resources).leftJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,a),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).limit(100)}let E=e=>a.B`${n.snapshots.data} || ${JSON.stringify(e)}::jsonb`;async function j(e,t,a){let s=d(e.s?{state:e.s.state,data:e.s.data}:null),i="unknown"===t.state,o=i?s?{lastGoodState:s}:{}:{...t.patch,lastGoodState:t.state},l=!i&&s!==t.state;return await (0,r.f)().insert(n.snapshots).values({resourceId:e.r.id,state:t.state,data:o,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:t.state,data:E(o),...i?{}:{collectedAt:a},...l?{stateSince:a}:{}}}),i?null:f({kind:e.r.kind,resourceId:e.r.id,prev:s,next:t.state,label:t.label,at:a})}async function P(e,a){await (0,r.f)().update(n.snapshots).set({data:E(a)}).where((0,t.u)(n.snapshots.resourceId,e.r.id))}let O=e=>(0,o.f)(e);async function z(e,a,i,o,l){if("auth"===p(o,!0)){let e=(0,s.E)({ok:!1,kind:"auth",error:o.error});e&&await (0,r.f)().update(n.accounts).set({...e,updatedAt:l.now}).where((0,t.u)(n.accounts.id,a.id))}for(let e of i)await j(e,{state:"unknown",label:"Unknown",patch:{}},l.now);l.errors.push(`${e}/${a.label}: ${o.error}`)}let N=e=>e.toISOString();async function B(e){return e.length?new Set((await (0,r.f)().select({app:n.links.fromResourceId,state:n.snapshots.state,data:n.snapshots.data}).from(n.links).innerJoin(n.resources,(0,t.u)(n.resources.id,n.links.toResourceId)).innerJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.links.kind,"uses_db"),(0,t.y)(n.links.fromResourceId,e),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)))).filter(e=>"paused"===e.state||"unknown"===e.state&&"paused"===e.data.lastGoodState).map(e=>e.app)):new Set}async function T(e){if(!e.protectOnly||await (0,l.g)())for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a){e.errors.push(`supabase/${t.label}: credential can't be read`);continue}let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=await (0,v.W)(a,$(e));if(!n.ok){e.protectOnly?e.errors.push(`supabase/${t.label}: ${n.error}`):await z("supabase",t,r,n,e);continue}let s=new Map(n.data.map(e=>[e.ref,e])),i=[];for(let t of e.protectOnly?[]:r){let a=s.get(t.r.externalId);if(!a){i.push(await j(t,{state:"off",label:"Not found",patch:{status:"REMOVED"}},e.now));continue}let r=(0,h.P)(a.status),n=d(t.s?{state:t.s.state,data:t.s.data}:null),o={status:a.status,region:a.region,pgVersion:a.pgVersion,orgSlug:a.orgSlug};"paused"===r.state&&"paused"!==n&&(o.pausedBeforeSeen=null===n),i.push(await j(t,{state:r.state,label:r.label,patch:o},e.now))}await O(i);let o=new Map(r.map(e=>[e.r.externalId,e.r.id])),u=n.data.map(e=>({resourceId:o.get(e.ref)??null,accountId:t.id,status:e.status,orgSlug:e.orgSlug}));await (0,l.z)(e.now,u,e.deadline).catch(()=>{console.warn("auto-restore failed"),e.errors.push("auto-restore failed")})}}async function C(e){for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a)continue;let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=new Map(r.map(e=>[e.r.id,(0,m.k)(m.B,e.s?.data)])),s=new Map;for(let r of new Set([...n.values()].map(e=>e.orgSlug).filter(e=>!!e))){let n=await (0,v.K)(a,r,$(e));s.set(r,n.ok&&null!==n.data?"free"===n.data:null),n.ok||"scope"===n.kind||e.errors.push(`supabase/${t.label} plan: ${n.error}`)}let{skipped:i}=await D(e,r,async(t,r)=>{let i=n.get(t.r.id),o={freeOrg:i.orgSlug?s.get(i.orgSlug)??null:null};if((i.status??"").startsWith("ACTIVE_")){let[n,s]=await Promise.all([(0,v.F)(a,t.r.externalId,r),(0,v.Z)(a,t.r.externalId,r)]);n.ok?Object.assign(o,{health:n.data.map(({name:e,status:t})=>({name:e,status:t})),healthAt:N(e.now),healthError:null}):"column"===p(n,!1)?o.healthError=n.error:e.errors.push(`supabase/${t.r.name} health: ${n.error}`),s.ok?Object.assign(o,{lastTrafficAt:(0,h.H)(s.data)?.toISOString()??null,trafficAt:N(e.now),trafficError:null}):"column"===p(s,!1)?o.trafficError=s.error:e.errors.push(`supabase/${t.r.name} traffic: ${s.error}`)}await P(t,o)});x(i)}}async function W(e){for(let{acc:t,credential:a}of(await R("neon"))){if($(e),!a){e.errors.push(`neon/${t.label}: credential can't be read`);continue}let r=await M(t.id,"neon_project");if(!r.length)continue;let{out:n,skipped:s}=await D(e,r,(e,t)=>Promise.all([(0,I.Z)(a,e.r.externalId,t),(0,I.k)(a,e.r.externalId,t),(0,I.e)(a,e.r.externalId,t)])),i=n.flat().find(e=>void 0!==e&&!e.ok&&"auth"===e.kind);if(i){await z("neon",t,r,i,e);continue}let o=[];for(let[t,a]of r.entries()){let r=n[t];if(!r)continue;let[s,i,l]=r;if(!s.ok||!i.ok||!l.ok){let t=[s,i,l].find(e=>!e.ok);"missing"===t.kind?o.push(await j(a,{state:"off",label:"Not found",patch:{}},e.now)):(await j(a,{state:"unknown",label:"Unknown",patch:{}},e.now),e.errors.push(`neon/${a.r.name}: ${t.error}`));continue}let u=(0,g.p)({endpoints:i.data,computeSeconds:s.data.computeSeconds});o.push(await j(a,{state:u.state,label:u.label,patch:{region:s.data.region,pgVersion:s.data.pgVersion,computeSeconds:s.data.computeSeconds,transferBytes:s.data.transferBytes,activeSeconds:s.data.activeSeconds,periodStart:s.data.periodStart,periodEnd:s.data.periodEnd,endpoints:i.data,branches:l.data}},e.now))}await O(o),x(s)}}async function _(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r){e.errors.push(`firebase/${t.label}: credential can't be read`);continue}let n=await M(t.id,"firestore");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){await z("firebase",t,n,s,e);continue}let{out:i,skipped:o}=await D(e,n,(e,t)=>(0,y.G)(s.data,e.r.externalId,t)),l=[];for(let[t,a]of n.entries()){let r=i[t];if(!r)continue;let n=(0,w.g)(r);"unknown"!==n.state||r.ok||e.errors.push(`firebase/${a.r.name}: ${r.error}`);let s=r.ok?{latencyMs:r.data.latencyMs,pingError:null,pingReason:null,pingKind:null}:{pingError:r.error,pingReason:r.reason??null,pingKind:r.kind};l.push(await j(a,{...n,patch:s},e.now))}await O(l),x(o)}}async function U(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let i=(0,w.a)(e.now),{skipped:o}=await D(e,n,async(t,a)=>{let r=await (0,y.W)(s.data,t.r.externalId,i,e.now,a);r.ok?await P(t,{...r.data,opsAt:N(e.now),opsError:null}):"column"===p(r,!1)?await P(t,{reads:null,writes:null,deletes:null,opsAt:N(e.now),opsError:/requires billing/i.test(r.message??"")?"Not available on Spark: Firestore usage needs billing (Blaze plan)":"SERVICE_DISABLED"===r.reason?"Not readable: the Cloud Monitoring API is off in this project":"Not readable: the service account needs monitoring.viewer"}):e.errors.push(`firebase/${t.r.name} usage: ${r.error}`)});x(o)}}async function V(e){let t=Date.now()+2*Math.max(0,e.deadline-Date.now())/3,a=await F(()=>q({...e,deadline:t})),r=await F(()=>L(e));if(a)throw a;if(r)throw r}async function F(e){try{return await e(),null}catch(e){return e instanceof Error?e:Error(String(e))}}async function q(e){for(let{acc:t,credential:a}of(await R("supabase")))if($(e),a)for(let r of(await M(t.id,"supabase_project"))){let t=(0,m.k)(m.B,r.s?.data);if(!(0,h.z)({status:t.status??"",lastTrafficAt:t.lastTrafficAt?new Date(t.lastTrafficAt):null,sizeAt:t.sizeAt?new Date(t.sizeAt):null,now:e.now}))continue;let n=await (0,v.r)(a,r.r.externalId,$(e));n.ok?await P(r,{sizeBytes:n.data,sizeAt:N(e.now),sizeError:null}):"column"===p(n,!1)?await P(r,{sizeError:n.error}):e.errors.push(`supabase/${r.r.name} size: ${n.error}`)}}async function L(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let{skipped:i}=await D(e,n,async(t,a)=>{let r=await (0,y.q)(s.data,t.r.externalId,a);r.ok?await P(t,{authUsers:r.data,authAt:N(e.now),authError:null}):"column"===p(r,!1)?await P(t,{authError:"Not readable: the service account needs firebaseauth.viewer"}):e.errors.push(`firebase/${t.r.name} users: ${r.error}`)});x(i)}}e.s(["w",0,z,"O",0,R,"q",0,B,"T",0,D,"W",0,x,"M",0,O,"I",0,F,"f",0,V,"g",0,_,"x",0,U,"h",0,W,"N",0,T,"y",0,C,"e",0,M,"s",0,$,"a",0,j],140318)},956846,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(537622),o=e.i(749124),l=e.i(532148),u=e.i(988294),d=e.i(739886),c=e.i(656083),f=e.i(921991),p=e.i(381725),w=e.i(483100),g=e.i(111970),m=e.i(948736),h=e.i(762504),b=e.i(547499),y=e.i(275426),k=e.i(177706),I=e.i(61926),v=e.i(140318),A=e.i(977832),S=e.i(89491),$=e.i(592951),D=e.i(691734),x=e.i(43790),R=e.i(11552);async function M(e){let t=[await (0,v.I)(()=>j(e)),await (0,v.I)(()=>O(e)),await (0,v.I)(()=>z(e))].find(e=>null!==e);if(t)throw t}let E=e=>e.toISOString();async function j(e){for(let{acc:t,credential:a}of(await (0,v.O)("turso"))){if((0,v.s)(e),!a){e.errors.push(`turso/${t.label}: credential can't be read`);continue}let r=await (0,v.e)(t.id,"turso_database");if(!r.length)continue;let n=await (0,D.u)(a,(0,v.s)(e));if(!n.ok){await (0,v.w)("turso",t,r,n,e);continue}let s=new Set(r.map(e=>String(e.r.meta.org??""))),i=[];for(let o of n.data.filter(e=>s.has(e.slug))){let[n,s]=await Promise.all([(0,D.X)(a,o.slug,(0,v.s)(e)),(0,D.d)(a,o.slug,(0,v.s)(e))]),l=r.filter(e=>e.r.meta.org===o.slug);if(!n.ok){for(let t of l)await (0,v.a)(t,{state:"unknown",label:"Unknown",patch:{}},e.now);e.errors.push(`turso/${t.label}: ${n.error}`);continue}let u=new Map(n.data.map(e=>[e.id,e]));for(let t of l)i.push(await P(t,u.get(t.r.externalId),o,s,e))}let o=new Set(n.data.map(e=>e.slug));for(let t of r.filter(e=>!o.has(String(e.r.meta.org??""))))i.push(await (0,v.a)(t,{state:"off",label:"Organization not visible to this token",patch:{}},e.now));await (0,v.M)(i)}}async function P(e,t,a,r,n){if(!t)return(0,v.a)(e,{state:"off",label:"Not found",patch:{}},n.now);let s=(0,S.h)({blockReads:t.blockReads,blockWrites:t.blockWrites,orgBlockedReads:a.blockedReads,orgBlockedWrites:a.blockedWrites}),i={org:a.slug,group:t.group,primaryRegion:t.primaryRegion,plan:a.plan,blockReads:t.blockReads,blockWrites:t.blockWrites};if(r.ok){let e=r.data.byDb.get(t.id);Object.assign(i,{rowsRead:e?.rowsRead??null,rowsWritten:e?.rowsWritten??null,storageBytes:e?.storageBytes??null,orgRowsRead:r.data.org.rowsRead,orgRowsWritten:r.data.org.rowsWritten,orgStorageBytes:r.data.org.storageBytes,orgDatabases:r.data.org.databases,usageAt:E(n.now),usageError:null})}else"column"===(0,A.t)(r,!1)?i.usageError=r.error:n.errors.push(`turso/${e.r.name} usage: ${r.error}`);return(0,v.a)(e,{...s,patch:i},n.now)}async function O(e){for(let{acc:t,credential:a}of(await (0,v.O)("upstash"))){(0,v.s)(e);let r=a?(0,x.L)(a):null;if(!r){e.errors.push(`upstash/${t.label}: credential can't be read`);continue}let n=await (0,v.e)(t.id,"upstash_redis");if(!n.length)continue;let s=await (0,x.M)(r,(0,v.s)(e));if(!s.ok){await (0,v.w)("upstash",t,n,s,e);continue}let i=new Map(s.data.map(e=>[e.id,e])),{out:o,skipped:l}=await (0,v.T)(e,n,(e,t)=>i.has(e.r.externalId)?(0,x.Z)(r,e.r.externalId,t):Promise.resolve(null)),u=[];for(let[t,a]of n.entries()){let r=i.get(a.r.externalId);if(!r){u.push(await (0,v.a)(a,{state:"off",label:"Not found",patch:{}},e.now));continue}let n=(0,S.t)(r.state),s={region:r.region,status:r.state,type:r.type},l=o[t];l?.ok?Object.assign(s,{...l.data,statsAt:E(e.now),statsError:null}):l&&"column"===(0,A.t)(l,!1)?s.statsError=l.error:l&&e.errors.push(`upstash/${a.r.name} stats: ${l.error}`),u.push(await (0,v.a)(a,{...n,patch:s},e.now))}await (0,v.M)(u),(0,v.W)(l)}}async function z(e){let t={};for(let{acc:a,credential:r}of(await (0,v.O)("cloudflare"))){if((0,v.s)(e),!r)continue;let n=await B(a.id,r,e);if(!n.length){t[a.id]={d1:"error",analytics:null,at:E(e.now),note:"No Cloudflare account found for this token"};continue}let s="ok",i=null;for(let t of n){let n=await (0,$.L)(r,t,(0,v.s)(e));if(!n.ok){"error"==(s="scope"===n.kind||"auth"===n.kind?"missing":"error")&&e.errors.push(`d1/${a.label}: ${n.error}`);continue}await T(a.id,t,n.data,e.now);let o=(await (0,v.e)(a.id,"d1_database")).filter(e=>e.r.meta.accountId===t);if(!o.length)continue;let l=await (0,$.t)(r,t,(0,$.Y)(e.now),(0,v.s)(e));i=l.ok?i??"ok":"scope"===l.kind?"missing":i??"error",l.ok||"scope"===l.kind||e.errors.push(`d1/${a.label} analytics: ${l.error}`);let{out:u,skipped:d}=await (0,v.T)(e,o,(e,a)=>(0,$.m)(r,t,e.r.externalId,a)),c=new Map((l.ok?l.data:[]).map(e=>[e.databaseId,e])),f=u.map(e=>e?.ok?e.data.sizeBytes??0:0),p={accountRowsRead:l.ok?l.data.reduce((e,t)=>e+t.rowsRead,0):null,accountRowsWritten:l.ok?l.data.reduce((e,t)=>e+t.rowsWritten,0):null,accountSizeBytes:u.every(e=>e?.ok)?f.reduce((e,t)=>e+t,0):null,accountDatabases:n.data.length},w=[];for(let[t,a]of o.entries()){let r=u[t];void 0!==r&&w.push(await N(a,r,c.get(a.r.externalId)??null,l.ok,l.ok?null:l.error,p,e))}await (0,v.M)(w),(0,v.W)(d)}t[a.id]={d1:s,analytics:i,at:E(e.now),note:null}}await (0,r.f)().insert(n.settings).values({key:R.f,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:e.now}})}async function N(e,t,a,r,n,s,i){let o={accountId:e.r.meta.accountId??null,createdAt:e.r.meta.createdAt??null,accountDatabases:s.accountDatabases};if(t.ok?Object.assign(o,{sizeBytes:t.data.sizeBytes,numTables:t.data.numTables,readReplication:t.data.readReplication,detailsAt:E(i.now),detailsError:null}):"scope"===t.kind?o.detailsError=t.error:i.errors.push(`d1/${e.r.name}: ${t.error}`),r?Object.assign(o,{rowsRead:a?.rowsRead??0,rowsWritten:a?.rowsWritten??0,readQueries:a?.readQueries??0,writeQueries:a?.writeQueries??0,accountRowsRead:s.accountRowsRead,accountRowsWritten:s.accountRowsWritten,usageDay:(0,$.Y)(i.now),usageAt:E(i.now),usageError:null}):o.usageError=n,null!==s.accountSizeBytes&&(o.accountSizeBytes=s.accountSizeBytes),!t.ok&&"transient"===t.kind)return(0,v.a)(e,{state:"unknown",label:"Unknown",patch:{}},i.now);let l=(0,S.c)(r?s:{accountRowsRead:null,accountRowsWritten:null});return(0,v.a)(e,{...l,patch:o},i.now)}async function B(e,a,s){let i=new Set,o=await (0,$.N)(a,(0,v.s)(s));if(o.ok)for(let e of o.data)i.add(e.id);for(let a of(await (0,r.f)().select({meta:n.resources.meta}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"zone"),(0,t.M)(n.resources.goneAt))).limit(200)))"string"==typeof a.meta.accountId&&/^[0-9a-f]{32}$/i.test(a.meta.accountId)&&i.add(a.meta.accountId);return[...i].slice(0,5)}async function T(e,a,s,i){let o=(await (0,r.f)().select({id:n.resources.id,externalId:n.resources.externalId,meta:n.resources.meta,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"d1_database")))).filter(e=>e.meta.accountId===a),l=new Map(o.map(e=>[e.externalId,e])),u=new Set(s.map(e=>e.uuid));await (0,r.f)().transaction(async r=>{for(let o of s){let s={accountId:a,createdAt:o.createdAt},u=l.get(o.uuid);u?await r.update(n.resources).set({name:o.name,meta:s,lastSeenAt:i,goneAt:null,updatedAt:i}).where((0,t.u)(n.resources.id,u.id)):await r.insert(n.resources).values({accountId:e,kind:"d1_database",externalId:o.uuid,name:o.name,meta:s,monitored:!0,lastSeenAt:i}).onConflictDoNothing({target:[n.resources.accountId,n.resources.kind,n.resources.externalId]})}let d=o.filter(e=>!u.has(e.externalId)&&!e.goneAt).map(e=>e.id);d.length&&await r.update(n.resources).set({goneAt:i,updatedAt:i}).where((0,t.y)(n.resources.id,d))})}var C=e.i(442473),W=e.i(666680),_=e.i(473283),U=e.i(422067);async function V(e=new Date){let t=(0,W.randomUUID)(),n=new Date(e.getTime()+U.d).toISOString(),s=await (0,r.f)().execute(a.B`
2
2
  insert into ops.settings (key, value) values ('collector.lease', ${JSON.stringify({until:n,owner:t})}::jsonb)
3
3
  on conflict (key) do update set value = excluded.value, updated_at = now()
4
4
  where (ops.settings.value->>'until')::timestamptz < ${e.toISOString()}::timestamptz
5
- returning key`);return(0,W.f)(s).length>0?t:null}async function V(e){await (0,r.f)().execute(a.B`
5
+ returning key`);return(0,_.f)(s).length>0?t:null}async function F(e){await (0,r.f)().execute(a.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' = ${e}`)}var F=e.i(679270),q=e.i(515743),L=e.i(336030),Y=e.i(905685),J=e.i(751762);e.i(794713);let K="collector.lastRun",X="vercel.backoffUntil",G="vercel.currentMiss",Q={supabase:I.N,supabaseUsage:I.y,neon:I.h,firebase:I.g,firebaseUsage:I.x,extraDbs:R};async function Z(){let[e]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,K)).limit(1);return e?.value??{}}async function H(e){await (0,r.f)().insert(n.settings).values({key:K,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}let ee=e=>(0,c.f)(e);async function et(e,s,i,o,l=[]){let u=(await (0,r.f)().select({m:n.monitors,app:n.resources}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.u)(n.monitors.kind,"http"),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy(a.B`${n.monitors.lastCheckedAt} asc nulls first`,n.monitors.id)).filter(({m:t})=>(0,_.B)(t.lastCheckedAt,e,o));if(!u.length)return 0;let d=await (0,T.P)(u,6,({m:e})=>{let t=(0,_.P)(e.timeoutMs,s,Date.now());return null===t?Promise.resolve(null):(0,T.b)(e.url,{expectedStatus:e.expectedStatus,timeoutMs:t,body:(0,q.C)(e)})}),c=u.flatMap((e,t)=>d[t]?[{...e,r:d[t]}]:[]);if(c.length<u.length&&i.push(`checks: ${u.length-c.length} monitors skipped, time budget used`),!c.length)return 0;let f=[];for(let t of c)await (0,L.f)(t.m,t.r,e)&&f.push(t);return f.length?(await (0,r.f)().insert(n.checks).values(f.map(({m:t,app:a,r})=>({monitorId:t.id,at:e,ok:r.ok,statusCode:r.statusCode,latencyMs:r.latencyMs,error:r.error,inMaintenance:null!==(0,b.x)(l,{monitorId:t.id,appId:a.id},e)}))),await ee(f.map(({m:t,app:a,r})=>(0,Y.F)({resourceId:a.id,path:(0,y.K)(t.url),prev:t.state,next:(0,Y.G)(t.failStreak,r).state,code:r.statusCode,error:r.error,at:e}))),f.length):0}let ea=["checks","heartbeats"];async function er(e,t,a=d.f){if(!ea.some(t=>e.includes(t)))return[];try{return await a()}catch(e){return t.push(`maintenance: ${(0,J.f)(e)}`),[]}}async function en(e){let[a]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,X)).limit(1),s=a?.value?.until;return!!s&&e.getTime()<new Date(s).getTime()}async function es(e,t){if("transient"!==e.kind||!e.retryAfterS)return!1;let a={until:new Date(t.getTime()+1e3*Math.min(e.retryAfterS,3600)).toISOString()};return await (0,r.f)().insert(n.settings).values({key:X,value:a}).onConflictDoUpdate({target:n.settings.key,set:{value:a,updatedAt:t}}),!0}let ei=e=>a.B`coalesce(${n.deployments.externalId} = ${e}::text, false)`;async function eo(e,i,o){if(await en(e))return;let l=(0,h.f)().OPS_ENCRYPTION_KEY;for(let u of(await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))))){let d=(0,f.V)({ciphertext:u.credentialCiphertext,iv:u.credentialIv},l);if((0,s.A)(d)||!d){o.push(`vercel/${u.label}: credential can't be read`);continue}let c=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,u.id),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!c.length)continue;let p=new Map(c.map(e=>[e.externalId,e])),w=await (0,k.X)(d);if(!w.ok){let a=(0,s.E)({ok:!1,kind:w.kind,error:w.error});if(a&&await (0,r.f)().update(n.accounts).set({...a,updatedAt:e}).where((0,t.u)(n.accounts.id,u.id)),o.push(`vercel/${u.label}: ${w.error}`),await es(w,e))return;continue}let m=new Set(c.map(e=>String(e.meta.teamId)));for(let s of w.data.filter(e=>m.has(e.id))){if(Date.now()>i)return void o.push("vercel: skipped remaining teams, time budget used");let[l,u]=await Promise.all([(0,k.W)(d,s),(0,k.K)(d,s,{since:e.getTime()-6048e5,limit:100})]);if(!l.ok||!u.ok){let t=l.ok?u:l;if(o.push(`vercel/${s.name}: ${t.error}`),await es(t,e))return;continue}let f=new Map(l.data.map(e=>[e.id,e.currentDeploymentId])),w=u.data.filter(e=>p.has(e.projectId)),m=new Map((w.length?await (0,r.f)().select({externalId:n.deployments.externalId,state:n.deployments.state,target:n.deployments.target,branch:n.deployments.branch,commitSha:n.deployments.commitSha,commitMessage:n.deployments.commitMessage,source:n.deployments.source,url:n.deployments.url,buildingAt:n.deployments.buildingAt,readyAt:n.deployments.readyAt}).from(n.deployments).where((0,t.y)(n.deployments.externalId,w.map(e=>e.id))):[]).map(e=>[e.externalId,e])),g=[];for(let t of w){let a=p.get(t.projectId),s=m.get(t.id),i={state:t.state,target:t.target,branch:t.branch,commitSha:t.sha,commitMessage:t.message,source:t.source,url:t.url,buildingAt:t.buildingAt,readyAt:t.readyAt};if((0,y.E)(s,i)){let s={resourceId:a.id,externalId:t.id,...i,createdAtProvider:t.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(s).onConflictDoUpdate({target:n.deployments.externalId,set:s})}g.push((0,Y.L)(s?.state,t,a.id,e))}await ee(g);let h=c.filter(e=>String(e.meta.teamId)===s.id),b=await (0,r.f)().select({resourceId:n.deployments.resourceId,id:n.deployments.externalId,createdAt:n.deployments.createdAtProvider}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,h.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"ready"))),[I]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,G)).limit(1),v=[],A=()=>v.length?(0,r.f)().insert(n.settings).values({key:G,value:(0,y.Y)(I?.value,v,e)}).onConflictDoUpdate({target:n.settings.key,set:{value:(0,y.Y)(I?.value,v,e),updatedAt:e}}):Promise.resolve();for(let t of(0,y.Q)(h,f,b,(0,y.S)(I?.value,e))){if(Date.now()>i)break;let a=await (0,k.S)(d,s,t.deploymentId);if(!a.ok){if(o.push(`vercel/${s.name}: current deployment: ${a.error}`),await es(a,e))return void await A();v.push(t.deploymentId);continue}let l=a.data,u={resourceId:t.appId,externalId:l.id,state:l.state,target:l.target,branch:l.branch,commitSha:l.sha,commitMessage:l.message,source:l.source,url:l.url,buildingAt:l.buildingAt,readyAt:l.readyAt,createdAtProvider:l.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(u).onConflictDoUpdate({target:n.deployments.externalId,set:u}),"ready"===l.state&&"production"===l.target?b.push({resourceId:t.appId,id:l.id,createdAt:l.createdAt}):v.push(t.deploymentId)}for(let s of(await A(),h)){let{currentId:i,previousId:o}=(0,y.a)(b.filter(e=>e.resourceId===s.id),f.get(s.externalId)??null);await (0,r.f)().update(n.deployments).set({isCurrent:ei(i),isPreviousProduction:ei(o),updatedAt:e}).where((0,t.b)((0,t.u)(n.deployments.resourceId,s.id),(0,t.F)(a.B`${n.deployments.isCurrent} is distinct from ${ei(i)}`,a.B`${n.deployments.isPreviousProduction} is distinct from ${ei(o)}`)))}}}}async function el(e){let s=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!s.length)return;let i=await (0,r.f)().select().from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,s.map(e=>e.id)),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1))),o=new Set((await (0,r.f)().select({r:n.deployments.resourceId}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,s.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"building"),(0,t.B)(n.deployments.createdAtProvider,new Date(e.getTime()-36e5))))).map(e=>e.r)),l=await (0,I.q)(s.map(e=>e.id)),u=new Map((await (0,r.f)().select().from(n.snapshots).where((0,t.y)(n.snapshots.resourceId,s.map(e=>e.id)))).map(e=>[e.resourceId,e]));for(let t of s){let s=i.filter(e=>e.resourceId===t.id),d=(0,Y.V)({monitors:s.map(e=>e.state),building:o.has(t.id),dbPaused:l.has(t.id)}),c=s.find(e=>"err"===e.state)??s.find(e=>"warn"===e.state),f={code:c?.lastStatus??null,latencyMs:s.find(e=>"heartbeat"!==e.kind)?.lastLatencyMs??null,dbPaused:l.has(t.id)},p=u.get(t.id);await (0,r.f)().insert(n.snapshots).values({resourceId:t.id,state:d,data:f,collectedAt:e,stateSince:e}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:d,data:a.B`${n.snapshots.data} || ${JSON.stringify(f)}::jsonb`,collectedAt:e,...p?.state!==d?{stateSince:e}:{}}})}}async function eu(e,t={}){let a={writeLastRun:H,refreshApps:el,refreshNetwork:F.x,invalidate:i.f,...t};try{await a.writeLastRun({...e.lastRun,...Object.fromEntries(e.done.map(t=>[t,e.started.toISOString()]))});try{await a.refreshApps(new Date)}catch(t){e.errors.push(`app-snapshots: ${(0,J.f)(t)}`)}if(e.done.some(e=>F.p.includes(e)))try{await a.refreshNetwork(new Date)}catch(t){e.errors.push(`network-states: ${(0,J.f)(t)}`)}}finally{a.invalidate((0,o.o)(e.tried??e.done))}}async function ed(e,t,a,r={evaluate:l.$,deliver:w.q,digest:w.J}){let n=[];if(e.includes("alerts"))if(Date.now()>t)a.push("alerts: skipped, time budget used");else{let e=!0;try{await r.evaluate(new Date),console.info("collector alerts evaluated")}catch(t){e=!1,a.push(`alerts: ${(0,J.f)(t)}`)}try{await r.deliver(new Date,t),console.info("collector notifications delivered")}catch(t){e=!1,a.push(`notify: ${(0,J.f)(t)}`)}e&&n.push("alerts")}if(e.includes("digest")&&(0,_.z)("digest",t,Date.now()))try{await r.digest(new Date),console.info("collector digest done"),n.push("digest")}catch(e){a.push(`digest: ${(0,J.f)(e)}`)}return n}async function ec(e,t,a,r){let n=[],s=[];for(let i of e){if(Date.now()>t){a.push(`${i}: skipped, time budget used`);continue}if((0,_.z)(i,t,Date.now())){s.push(i);try{await r(i),n.push(i)}catch(e){a.push(`${i}: ${(0,J.f)(e)}`)}}}return{done:n,tried:s}}async function ef(e){let a,s=new Date,i=await U(s);if(!i)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[a]=await (0,r.f)().insert(n.collectorRuns).values({startedAt:s,trigger:"builtin"===e?"manual":e}).returning({id:n.collectorRuns.id})}catch(e){throw await V(i).catch(()=>void 0),e}let o=[],l=[],d=0,c=s.getTime()+_.p,f=e=>console.info(`collector ${e} +${Date.now()-s.getTime()}ms`);try{f("start");let t=await Z(),a="cron_job_org"!==e&&"builtin"!==e,r=(0,_.S)(t,s,a),n=r.filter(e=>_.u.includes(e)),i=n.includes("alerts")?c-_.X:c,w=await er(r,o);f(`due ${r.join(",")}`);let{done:h,tried:k}=await ec(r.filter(e=>!_.u.includes(e)),i,o,async e=>{if(f(`task ${e}`),"heartbeats"===e){let e=new Date;d+=await (0,u.r)(e,(t,a)=>null!==(0,b.x)(w,{monitorId:t,appId:a},e),a)}"checks"===e&&(d+=await et(new Date,i,o,a,w)),"vercel"===e&&await eo(new Date,i,o);let t=Q[e];t&&await t({now:new Date,deadline:i,errors:o}),"cloudflare"===e&&await (0,F.h)(new Date,i,o),"domains"===e&&await (0,F.H)(new Date,i,o),"tls"===e&&await (0,F.V)(new Date,i,o),"rdap"===e&&await (0,F.W)(new Date,i,o),"eol"===e&&await (0,F.i)(new Date,i,o),"status"===e&&await (0,g.i)(new Date),"logs"===e&&await (0,p._)(new Date,i,o),"pageviews"===e&&await (0,m.f)(new Date,i,o)});l.push(...h),f("main done"),await eu({lastRun:t,done:l,tried:k,started:s,errors:o}),f("settled");let y=await ed(n,c,o);f("post done"),y.length&&await H({...t,...Object.fromEntries([...l,...y].map(e=>[e,s.toISOString()]))}),l.push(...y)}catch(e){o.push(`run: ${(0,J.f)(e)}`)}finally{let e=Date.now()-s.getTime();await (0,r.f)().update(n.collectorRuns).set({finishedAt:new Date,ok:0===o.length,errorSummary:o.join("\n").slice(0,2e3)||null,durationMs:e,tasks:l,checks:d}).where((0,t.u)(n.collectorRuns.id,a.id)).catch(()=>void 0),await V(i).catch(()=>void 0)}return{skipped:!1,ok:0===o.length,tasks:l,checks:d,durationMs:Date.now()-s.getTime(),errors:o}}e.s(["f",0,ef],956846)},948736,e=>{var t=e.i(442473),a=e.i(381725),r=e.i(767512),n=e.i(971724),s=e.i(206033),i=e.i(455744),o=e.i(469755),l=e.i(105954),u=e.i(857897);let d=/not enabled/i,c=(e,t,a={})=>({ok:!1,kind:e,error:t,...a}),f="Vercel Web Analytics answered in a format the console doesn't recognise.",p=n.z.object({data:n.z.object({pageviews:s.z.number().finite().nonnegative(),visitors:s.z.number().finite().nonnegative()})}),w=n.z.object({data:i.z.array(o.z.unknown())}),m=n.z.object({timestamp:l.z.string().transform((e,t)=>{let a=Date.parse(e);return Number.isNaN(a)?(t.addIssue({code:"custom",message:"bad timestamp"}),u.z.NEVER):a}),pageviews:s.z.number().finite().nonnegative().nullish().catch(null)});async function g(e,a,r,n){let s=n.since.toISOString(),i=n.until.toISOString(),o=n.fetch??fetch,l=new AbortController,u=setTimeout(()=>l.abort(new DOMException("window","TimeoutError")),n.timeoutMs??8e3),g=n.signal?AbortSignal.any([l.signal,n.signal]):l.signal,h=(0,t.X)(g);async function b(t,u){let p=new URLSearchParams({projectId:r,teamId:a,...u,since:s,until:i});try{let a=await Promise.race([o(`https://api.vercel.com/v1/query/web-analytics/visits/${t}?${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:g,cache:"no-store"}),h]),r=null,n=!1;if(401===a.status||403===a.status)r=c("auth",`Vercel rejected this credential (${a.status}).`,{status:a.status});else if(429===a.status){let e=Number(a.headers.get("Retry-After"));r=c("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===a.status){let e=await Promise.race([a.text(),h]).catch(()=>"");d.test(e)?n=!0:r=c("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else a.ok||(r=c("transient",`Vercel Web Analytics returned an error (${a.status}).`,{status:a.status}));if(n)return{kind:"off"};if(r)return await a.body?.cancel().catch(()=>void 0),{kind:"fail",fail:r};try{return{kind:"body",body:await Promise.race([a.json(),h])}}catch(e){if(g.aborted)throw e;return{kind:"fail",fail:c("format",f)}}}catch{return{kind:"fail",fail:g.aborted?l.signal.aborted&&!n.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[e,t]=await Promise.all([b("count",{}),b("aggregate",{by:"hour"})]);if("off"===e.kind||"off"===t.kind)return{ok:!0,enabled:!1};let a=[e,t].flatMap(e=>"fail"===e.kind?[e.fail]:[]),r=a.find(e=>"auth"===e.kind);if(r)return r;let n="body"===t.kind?w.safeParse(t.body):null,s="fail"===t.kind?t.fail:n?.success?null:c("format",f),i=a.find(e=>"transient"===e.kind);if(i)return i;if(s)return s;if(!n?.success)return c("format",f);let o="body"===e.kind?p.safeParse(e.body):null,l=n.data.data.flatMap(e=>{let t=m.safeParse(e);return t.success?[t.data]:[]});if(l.length>0&&l.every(e=>null==e.pageviews))return c("format",f);let u=new Map;for(let e of l){let t=36e5*Math.floor(e.timestamp/36e5);u.set(t,(u.get(t)??0)+(e.pageviews??0))}let d=[...u].sort((e,t)=>e[0]-t[0]).slice(-24).map(([e,t])=>({at:new Date(e),views:t}));if(o?.success)return{ok:!0,enabled:!0,total:o.data.data.pageviews,visitors:o.data.data.visitors,hourly:d};return{ok:!0,enabled:!0,total:d.reduce((e,t)=>e+t.views,0),visitors:null,hourly:d}}finally{clearTimeout(u),l.abort()}}var h=e.i(943816);async function b(e,n,s){let i=await (0,a.g)(null);if(!i.length)return;let o=new Date(36e5*Math.floor(e.getTime()/36e5)-828e5);await (0,t.P)(i,3,async t=>{if(Date.now()+8500>n)return;let a=await g(t.token,t.teamId,t.projectId,{since:o,until:e});if(!a.ok)return void s.push(`pageviews/${t.appName}: ${a.error}`);try{await (0,r.r)(t.appId,{pageviews:(0,h.Z)(a,e)},e)}catch{s.push(`pageviews/${t.appName}: couldn't save the page views`)}})}e.s(["f",0,b],948736)}]})();
7
+ where key = 'collector.lease' and value->>'owner' = ${e}`)}var q=e.i(679270),L=e.i(515743),Y=e.i(336030),J=e.i(905685),K=e.i(751762);e.i(794713);let X="collector.lastRun",G="vercel.backoffUntil",Q="vercel.currentMiss",Z={supabase:v.N,supabaseUsage:v.y,neon:v.h,firebase:v.g,firebaseUsage:v.x,extraDbs:M};async function H(){let[e]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,X)).limit(1);return e?.value??{}}async function ee(e){await (0,r.f)().insert(n.settings).values({key:X,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}let et=e=>(0,c.f)(e);async function ea(e,s,i,o,l=[]){let u=(await (0,r.f)().select({m:n.monitors,app:n.resources}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.u)(n.monitors.kind,"http"),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy(a.B`${n.monitors.lastCheckedAt} asc nulls first`,n.monitors.id)).filter(({m:t})=>(0,U.B)(t.lastCheckedAt,e,o));if(!u.length)return 0;let d=await (0,C.P)(u,6,({m:e})=>{let t=(0,U.P)(e.timeoutMs,s,Date.now());return null===t?Promise.resolve(null):(0,C.b)(e.url,{expectedStatus:e.expectedStatus,timeoutMs:t,body:(0,L.C)(e)})}),c=u.flatMap((e,t)=>d[t]?[{...e,r:d[t]}]:[]);if(c.length<u.length&&i.push(`checks: ${u.length-c.length} monitors skipped, time budget used`),!c.length)return 0;let f=[];for(let t of c)await (0,Y.f)(t.m,t.r,e)&&f.push(t);return f.length?(await (0,r.f)().insert(n.checks).values(f.map(({m:t,app:a,r})=>({monitorId:t.id,at:e,ok:r.ok,statusCode:r.statusCode,latencyMs:r.latencyMs,error:r.error,inMaintenance:null!==(0,y.x)(l,{monitorId:t.id,appId:a.id},e)}))),await et(f.map(({m:t,app:a,r})=>(0,J.F)({resourceId:a.id,path:(0,I.K)(t.url),prev:t.state,next:(0,J.G)(t.failStreak,r).state,code:r.statusCode,error:r.error,at:e}))),f.length):0}let er=["checks","heartbeats"];async function en(e,t,a=d.f){if(!er.some(t=>e.includes(t)))return[];try{return await a()}catch(e){return t.push(`maintenance: ${(0,K.f)(e)}`),[]}}async function es(e){let[a]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,G)).limit(1),s=a?.value?.until;return!!s&&e.getTime()<new Date(s).getTime()}async function ei(e,t){if("transient"!==e.kind||!e.retryAfterS)return!1;let a={until:new Date(t.getTime()+1e3*Math.min(e.retryAfterS,3600)).toISOString()};return await (0,r.f)().insert(n.settings).values({key:G,value:a}).onConflictDoUpdate({target:n.settings.key,set:{value:a,updatedAt:t}}),!0}let eo=e=>a.B`coalesce(${n.deployments.externalId} = ${e}::text, false)`;async function el(e,i,o){if(await es(e))return;let l=(0,b.f)().OPS_ENCRYPTION_KEY;for(let u of(await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))))){let d=(0,f.V)({ciphertext:u.credentialCiphertext,iv:u.credentialIv},l);if((0,s.A)(d)||!d){o.push(`vercel/${u.label}: credential can't be read`);continue}let c=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,u.id),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!c.length)continue;let p=new Map(c.map(e=>[e.externalId,e])),w=await (0,k.X)(d);if(!w.ok){let a=(0,s.E)({ok:!1,kind:w.kind,error:w.error});if(a&&await (0,r.f)().update(n.accounts).set({...a,updatedAt:e}).where((0,t.u)(n.accounts.id,u.id)),o.push(`vercel/${u.label}: ${w.error}`),await ei(w,e))return;continue}let g=new Set(c.map(e=>String(e.meta.teamId)));for(let s of w.data.filter(e=>g.has(e.id))){if(Date.now()>i)return void o.push("vercel: skipped remaining teams, time budget used");let[l,u]=await Promise.all([(0,k.W)(d,s),(0,k.K)(d,s,{since:e.getTime()-6048e5,limit:100})]);if(!l.ok||!u.ok){let t=l.ok?u:l;if(o.push(`vercel/${s.name}: ${t.error}`),await ei(t,e))return;continue}let f=new Map(l.data.map(e=>[e.id,e.currentDeploymentId])),w=u.data.filter(e=>p.has(e.projectId)),g=new Map((w.length?await (0,r.f)().select({externalId:n.deployments.externalId,state:n.deployments.state,target:n.deployments.target,branch:n.deployments.branch,commitSha:n.deployments.commitSha,commitMessage:n.deployments.commitMessage,source:n.deployments.source,url:n.deployments.url,buildingAt:n.deployments.buildingAt,readyAt:n.deployments.readyAt}).from(n.deployments).where((0,t.y)(n.deployments.externalId,w.map(e=>e.id))):[]).map(e=>[e.externalId,e])),m=[];for(let t of w){let a=p.get(t.projectId),s=g.get(t.id),i={state:t.state,target:t.target,branch:t.branch,commitSha:t.sha,commitMessage:t.message,source:t.source,url:t.url,buildingAt:t.buildingAt,readyAt:t.readyAt};if((0,I.E)(s,i)){let s={resourceId:a.id,externalId:t.id,...i,createdAtProvider:t.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(s).onConflictDoUpdate({target:n.deployments.externalId,set:s})}m.push((0,J.L)(s?.state,t,a.id,e))}await et(m);let h=c.filter(e=>String(e.meta.teamId)===s.id),b=await (0,r.f)().select({resourceId:n.deployments.resourceId,id:n.deployments.externalId,createdAt:n.deployments.createdAtProvider}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,h.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"ready"))),[y]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,Q)).limit(1),v=[],A=()=>v.length?(0,r.f)().insert(n.settings).values({key:Q,value:(0,I.Y)(y?.value,v,e)}).onConflictDoUpdate({target:n.settings.key,set:{value:(0,I.Y)(y?.value,v,e),updatedAt:e}}):Promise.resolve();for(let t of(0,I.Q)(h,f,b,(0,I.S)(y?.value,e))){if(Date.now()>i)break;let a=await (0,k.S)(d,s,t.deploymentId);if(!a.ok){if(o.push(`vercel/${s.name}: current deployment: ${a.error}`),await ei(a,e))return void await A();v.push(t.deploymentId);continue}let l=a.data,u={resourceId:t.appId,externalId:l.id,state:l.state,target:l.target,branch:l.branch,commitSha:l.sha,commitMessage:l.message,source:l.source,url:l.url,buildingAt:l.buildingAt,readyAt:l.readyAt,createdAtProvider:l.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(u).onConflictDoUpdate({target:n.deployments.externalId,set:u}),"ready"===l.state&&"production"===l.target?b.push({resourceId:t.appId,id:l.id,createdAt:l.createdAt}):v.push(t.deploymentId)}for(let s of(await A(),h)){let{currentId:i,previousId:o}=(0,I.a)(b.filter(e=>e.resourceId===s.id),f.get(s.externalId)??null);await (0,r.f)().update(n.deployments).set({isCurrent:eo(i),isPreviousProduction:eo(o),updatedAt:e}).where((0,t.b)((0,t.u)(n.deployments.resourceId,s.id),(0,t.F)(a.B`${n.deployments.isCurrent} is distinct from ${eo(i)}`,a.B`${n.deployments.isPreviousProduction} is distinct from ${eo(o)}`)))}}}}async function eu(e){let s=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!s.length)return;let i=await (0,r.f)().select().from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,s.map(e=>e.id)),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1))),o=new Set((await (0,r.f)().select({r:n.deployments.resourceId}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,s.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"building"),(0,t.B)(n.deployments.createdAtProvider,new Date(e.getTime()-36e5))))).map(e=>e.r)),l=await (0,v.q)(s.map(e=>e.id)),u=new Map((await (0,r.f)().select().from(n.snapshots).where((0,t.y)(n.snapshots.resourceId,s.map(e=>e.id)))).map(e=>[e.resourceId,e]));for(let t of s){let s=i.filter(e=>e.resourceId===t.id),d=(0,J.V)({monitors:s.map(e=>e.state),building:o.has(t.id),dbPaused:l.has(t.id)}),c=s.find(e=>"err"===e.state)??s.find(e=>"warn"===e.state),f={code:c?.lastStatus??null,latencyMs:s.find(e=>"heartbeat"!==e.kind)?.lastLatencyMs??null,dbPaused:l.has(t.id)},p=u.get(t.id);await (0,r.f)().insert(n.snapshots).values({resourceId:t.id,state:d,data:f,collectedAt:e,stateSince:e}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:d,data:a.B`${n.snapshots.data} || ${JSON.stringify(f)}::jsonb`,collectedAt:e,...p?.state!==d?{stateSince:e}:{}}})}}async function ed(e,t={}){let a={writeLastRun:ee,refreshApps:eu,refreshNetwork:q.x,invalidate:i.f,...t};try{await a.writeLastRun({...e.lastRun,...Object.fromEntries(e.done.map(t=>[t,e.started.toISOString()]))});try{await a.refreshApps(new Date)}catch(t){e.errors.push(`app-snapshots: ${(0,K.f)(t)}`)}if(e.done.some(e=>q.p.includes(e)))try{await a.refreshNetwork(new Date)}catch(t){e.errors.push(`network-states: ${(0,K.f)(t)}`)}}finally{a.invalidate((0,o.o)(e.tried??e.done))}}async function ec(e,t,a,r={evaluate:l.$,deliver:w.q,digest:w.J}){let n=[];if(e.includes("alerts"))if(Date.now()>t)a.push("alerts: skipped, time budget used");else{let e=!0;try{await r.evaluate(new Date),console.info("collector alerts evaluated")}catch(t){e=!1,a.push(`alerts: ${(0,K.f)(t)}`)}try{await r.deliver(new Date,t),console.info("collector notifications delivered")}catch(t){e=!1,a.push(`notify: ${(0,K.f)(t)}`)}e&&n.push("alerts")}if(e.includes("digest")&&(0,U.z)("digest",t,Date.now()))try{await r.digest(new Date),console.info("collector digest done"),n.push("digest")}catch(e){a.push(`digest: ${(0,K.f)(e)}`)}return n}async function ef(e,t,a,r){let n=[],s=[];for(let i of e){if(Date.now()>t){a.push(`${i}: skipped, time budget used`);continue}if((0,U.z)(i,t,Date.now())){s.push(i);try{await r(i),n.push(i)}catch(e){a.push(`${i}: ${(0,K.f)(e)}`)}}}return{done:n,tried:s}}async function ep(e){let a,s=new Date,i=await V(s);if(!i)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[a]=await (0,r.f)().insert(n.collectorRuns).values({startedAt:s,trigger:"builtin"===e?"manual":e}).returning({id:n.collectorRuns.id})}catch(e){throw await F(i).catch(()=>void 0),e}let o=[],l=[],d=0,c=s.getTime()+U.p,f=e=>console.info(`collector ${e} +${Date.now()-s.getTime()}ms`);try{f("start");let t=await H(),a="cron_job_org"!==e&&"builtin"!==e,r=await (0,g.I)(),n=(0,U.S)(t,s,a,r),i=n.filter(e=>U.u.includes(e)),w=i.includes("alerts")?c-U.X:c,b=await en(n,o);f(`due ${n.join(",")}`);let{done:k,tried:I}=await ef(n.filter(e=>!U.u.includes(e)),w,o,async e=>{if(f(`task ${e}`),"heartbeats"===e){let e=new Date;d+=await (0,u.r)(e,(t,a)=>null!==(0,y.x)(b,{monitorId:t,appId:a},e),a)}"checks"===e&&(d+=await ea(new Date,w,o,a,b)),"vercel"===e&&await el(new Date,w,o);let t=Z[e];t&&await t({now:new Date,deadline:w,errors:o,protectOnly:(0,U.$)(e,r)}),"cloudflare"===e&&await (0,q.h)(new Date,w,o),"domains"===e&&await (0,q.H)(new Date,w,o),"tls"===e&&await (0,q.V)(new Date,w,o),"rdap"===e&&await (0,q.W)(new Date,w,o),"eol"===e&&await (0,q.i)(new Date,w,o),"status"===e&&await (0,h.i)(new Date),"logs"===e&&await (0,p._)(new Date,w,o),"pageviews"===e&&await (0,m.f)(new Date,w,o)});l.push(...k),f("main done"),await ed({lastRun:t,done:l,tried:I,started:s,errors:o}),f("settled");let v=await ec(i,c,o);f("post done"),v.length&&await ee({...t,...Object.fromEntries([...l,...v].map(e=>[e,s.toISOString()]))}),l.push(...v)}catch(e){o.push(`run: ${(0,K.f)(e)}`)}finally{let e=Date.now()-s.getTime();await (0,r.f)().update(n.collectorRuns).set({finishedAt:new Date,ok:0===o.length,errorSummary:o.join("\n").slice(0,2e3)||null,durationMs:e,tasks:l,checks:d}).where((0,t.u)(n.collectorRuns.id,a.id)).catch(()=>void 0),await F(i).catch(()=>void 0)}return{skipped:!1,ok:0===o.length,tasks:l,checks:d,durationMs:Date.now()-s.getTime(),errors:o}}e.s(["f",0,ep],956846)},948736,e=>{var t=e.i(442473),a=e.i(381725),r=e.i(767512),n=e.i(971724),s=e.i(206033),i=e.i(455744),o=e.i(469755),l=e.i(105954),u=e.i(857897);let d=/not enabled/i,c=(e,t,a={})=>({ok:!1,kind:e,error:t,...a}),f="Vercel Web Analytics answered in a format the console doesn't recognise.",p=n.z.object({data:n.z.object({pageviews:s.z.number().finite().nonnegative(),visitors:s.z.number().finite().nonnegative()})}),w=n.z.object({data:i.z.array(o.z.unknown())}),g=n.z.object({timestamp:l.z.string().transform((e,t)=>{let a=Date.parse(e);return Number.isNaN(a)?(t.addIssue({code:"custom",message:"bad timestamp"}),u.z.NEVER):a}),pageviews:s.z.number().finite().nonnegative().nullish().catch(null)});async function m(e,a,r,n){let s=n.since.toISOString(),i=n.until.toISOString(),o=n.fetch??fetch,l=new AbortController,u=setTimeout(()=>l.abort(new DOMException("window","TimeoutError")),n.timeoutMs??8e3),m=n.signal?AbortSignal.any([l.signal,n.signal]):l.signal,h=(0,t.X)(m);async function b(t,u){let p=new URLSearchParams({projectId:r,teamId:a,...u,since:s,until:i});try{let a=await Promise.race([o(`https://api.vercel.com/v1/query/web-analytics/visits/${t}?${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),h]),r=null,n=!1;if(401===a.status||403===a.status)r=c("auth",`Vercel rejected this credential (${a.status}).`,{status:a.status});else if(429===a.status){let e=Number(a.headers.get("Retry-After"));r=c("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===a.status){let e=await Promise.race([a.text(),h]).catch(()=>"");d.test(e)?n=!0:r=c("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else a.ok||(r=c("transient",`Vercel Web Analytics returned an error (${a.status}).`,{status:a.status}));if(n)return{kind:"off"};if(r)return await a.body?.cancel().catch(()=>void 0),{kind:"fail",fail:r};try{return{kind:"body",body:await Promise.race([a.json(),h])}}catch(e){if(m.aborted)throw e;return{kind:"fail",fail:c("format",f)}}}catch{return{kind:"fail",fail:m.aborted?l.signal.aborted&&!n.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[e,t]=await Promise.all([b("count",{}),b("aggregate",{by:"hour"})]);if("off"===e.kind||"off"===t.kind)return{ok:!0,enabled:!1};let a=[e,t].flatMap(e=>"fail"===e.kind?[e.fail]:[]),r=a.find(e=>"auth"===e.kind);if(r)return r;let n="body"===t.kind?w.safeParse(t.body):null,s="fail"===t.kind?t.fail:n?.success?null:c("format",f),i=a.find(e=>"transient"===e.kind);if(i)return i;if(s)return s;if(!n?.success)return c("format",f);let o="body"===e.kind?p.safeParse(e.body):null,l=n.data.data.flatMap(e=>{let t=g.safeParse(e);return t.success?[t.data]:[]});if(l.length>0&&l.every(e=>null==e.pageviews))return c("format",f);let u=new Map;for(let e of l){let t=36e5*Math.floor(e.timestamp/36e5);u.set(t,(u.get(t)??0)+(e.pageviews??0))}let d=[...u].sort((e,t)=>e[0]-t[0]).slice(-24).map(([e,t])=>({at:new Date(e),views:t}));if(o?.success)return{ok:!0,enabled:!0,total:o.data.data.pageviews,visitors:o.data.data.visitors,hourly:d};return{ok:!0,enabled:!0,total:d.reduce((e,t)=>e+t.views,0),visitors:null,hourly:d}}finally{clearTimeout(u),l.abort()}}var h=e.i(943816);async function b(e,n,s){let i=await (0,a.g)(null);if(!i.length)return;let o=new Date(36e5*Math.floor(e.getTime()/36e5)-828e5);await (0,t.P)(i,3,async t=>{if(Date.now()+8500>n)return;let a=await m(t.token,t.teamId,t.projectId,{since:o,until:e});if(!a.ok)return void s.push(`pageviews/${t.appName}: ${a.error}`);try{await (0,r.r)(t.appId,{pageviews:(0,h.Z)(a,e)},e)}catch{s.push(`pageviews/${t.appName}: couldn't save the page views`)}})}e.s(["f",0,b],948736)}]})();
8
8
 
9
9
  //# sourceMappingURL=src_lib_15wd7ab4u5nrn._.js.map
@@ -0,0 +1,15 @@
1
+ (()=>{"use strict";module.exports=[220642,765359,e=>{var t=e.i(218331);let a=e=>`${e} hari`,r=(e,t)=>0>Number(e)?`${t} udah habis.`:`${t} habis dalam ${a(e)}.`,i={"the job reported a failure":"job-nya lapor gagal","started but didn't finish":"udah mulai tapi nggak selesai","never pinged":"belum pernah ping","no ping in time":"nggak ada ping tepat waktu"},n={critical:"kritis",high:"tinggi",moderate:"sedang",low:"rendah",unknown:"nggak diketahui"},s={MonitorDown:[[/^(.+): no ping for (\d+ (?:min|h|days?))\.$/,(e,t,a)=>`${t}: nggak ada ping selama ${a.replace(/^(\d+) min$/,"$1 menit").replace(/^(\d+) h$/,"$1 jam").replace(/^(\d+) days?$/,"$1 hari")}.`],[/^(.+): (the job reported a failure|started but didn't finish|never pinged|no ping in time)\.$/,(e,t,a)=>`${t}: ${i[a]}.`],[/^(.+) failed its check \((.*)\) on (\d+) consecutive checks\.$/,(e,t,a,r)=>`${t}: ${r} cek gagal berturut-turut (${a}).`],[/^(.+) returned no answer on (\d+) consecutive checks\.$/,(e,t,a)=>`${t}: ${a} cek gagal berturut-turut (nggak ada jawaban).`],[/^(.+) returned (HTTP \d+) on (\d+) consecutive checks\.$/,(e,t,a,r)=>`${t}: ${r} cek gagal berturut-turut (${a}).`],[/^(.+) answers again\.$/,(e,t)=>`${t} udah jawab lagi.`]],CollectorStale:[[/^The collector hasn't finished a run yet\.$/,()=>"Collector belum pernah selesai jalan."],[/^The last minute run finished ([\d,]+) min ago\.$/,(e,t)=>`Collector terakhir selesai jalan ${t} menit lalu.`]],HighLatency:[[/^p95 ([\d,]+) ms over the last 10 minutes \(limit ([\d,]+) ms\)\.$/,(e,t,a)=>`p95 ${t} ms selama 10 menit terakhir (batas ${a} ms).`]],DeploymentFailed:[[/^Production deployment \(no commit\) failed\.$/,()=>"Deploy production (tanpa commit) gagal."],[/^Production deployment (\S+) failed\.$/,(e,t)=>`Deploy production ${t} gagal.`]],DatabasePaused:[[/^Supabase project (.+) is paused\.$/,(e,t)=>`Project Supabase ${t} lagi di-pause.`]],CertExpiringSoon:[[/^The TLS certificate of (.+) expires in (-?\d+) days?\.$/,(e,t,a)=>r(a,`Sertifikat TLS ${t}`)]],DomainExpiringSoon:[[/^(.+) expires in (-?\d+) days?\.$/,(e,t,a)=>r(a,t)]],StorageAlmostFull:[[/^(.+) uses ([\d,]+) MB of ([\d,]+) MB \(([\d,]+)%\)\.$/,(e,t,a,r,i)=>`${t} pakai ${a} MB dari ${r} MB (${i}%).`]],NeonComputeHigh:[[/^(.+) used ([\d,]+) of ([\d,]+) CU-hours this month\.$/,(e,t,a,r)=>`${t} udah pakai ${a} dari ${r} CU-hours bulan ini.`]],FirestoreQuotaHigh:[[/^(.+) hit a Firestore quota \(RESOURCE_EXHAUSTED\)\.$/,(e,t)=>`${t} kena kuota Firestore (RESOURCE_EXHAUSTED).`],[/^(.+) read ([\d,]+) of ([\d,]+) documents today \(([\d,]+)%\)\.$/,(e,t,a,r,i)=>`${t} udah baca ${a} dari ${r} dokumen hari ini (${i}%).`]],AutoPauseRisk:[[/^No API traffic for (\d+) days?\. Supabase pauses free projects after about 7 days\.$/,(e,t)=>`Nggak ada traffic API selama ${a(t)}. Supabase nge-pause project free setelah sekitar 7 hari.`]],DnsProxiedToVercel:[[/^(.+) points to Vercel through the Cloudflare proxy\. Vercel recommends DNS only\.$/,(e,t)=>`${t} ngarah ke Vercel lewat proxy Cloudflare. Vercel nyaranin DNS only.`]],DbQuotaHigh:[[/^(.+): (.+) at ([\d,]+)% of the free plan\.$/,(e,t,a,r)=>`${t}: ${a.replace(/^Rows read/,"baris dibaca").replace(/^Rows written/,"baris ditulis").replace(/^Commands/,"command").replace(/^usage$/,"pemakaian").replace(/ today\b/," hari ini").replace(/\bof ([^ ]+(?: [A-Z]+)?)\b/,"dari $1").replace(/ this month\b/," bulan ini").replace(/\(account\)/,"(akun)")} udah ${r}% dari kuota gratis.`]],ComputeHigh:[[/^(.+) compute is back under the limits\.$/,(e,t)=>`Compute ${t} udah balik di bawah batas.`],[/^(.+): ((?:CPU|RAM|disk|connections) .+)\.$/,(e,t,a)=>`${t}: ${a.replace(/ for (\d+) min/g," selama $1 menit").replace(/\(limit /g,"(batas ").replace(/\bconnections (\d+) of (\d+)/g,"koneksi $1 dari $2")}.`]],CredentialExpiring:[[/^Google Drive access was removed \(invalid_grant\)\. Reconnect it\.$/,()=>"Akses Google Drive dicabut (invalid_grant). Sambungin lagi ya."],[/^The (\S+) credential (.+) has expired\.$/,(e,t,a)=>`Credential ${t} ${a} udah kedaluwarsa.`],[/^The (\S+) credential (.+) expires in (-?\d+) days?\.$/,(e,t,a,i)=>r(i,`Credential ${t} ${a}`)]],VulnerableDependency:[[/^(.+) has no high or critical dependency advisories\.$/,(e,t)=>`${t} nggak punya advisory dependency tinggi atau kritis.`],[/^(\d+) vulnerable packages? \(([^)]*)\): (.*)$/,(e,t,a,r)=>`${t} paket rentan (${a.replace(/\b(critical|high|moderate|low|unknown)\b/g,e=>n[e])}): ${r.replace(/ \(no fix yet\)/g," (belum ada fix)").replace(/, \+(\d+) more\.$/,", +$1 lagi.")}`]]};function o(e,t){for(let[a,r]of Object.hasOwn(s,e)?s[e]:[]){let e=a.exec(t);if(e)return r(...e)}return t}e.s(["f",0,o],765359);let l={en:{open:"FIRING",repeat:"REPEAT",resolve:"RESOLVED"},id:{open:"MUNCUL",repeat:"ULANG",resolve:"PULIH"}},d={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},c={en:{firing:"firing",resolved:"resolved",since:"since",open:"Open alerts",more:"more on the Alerts page",causedBy:"caused by",incident:"reports an incident",step:"Next step"},id:{firing:"aktif",resolved:"pulih",since:"sejak",open:"Buka Alerts",more:"lagi di halaman Alerts",causedBy:"gara-gara",incident:"lagi ada insiden",step:"Langkah"}},u=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),p={critical:0,warning:1,info:2};function g(e,t){let a=e.filter(e=>"resolve"!==e.kind).length,r=e.length-a;return[a?`${a} ${c[t].firing}`:"",r?`${r} ${c[t].resolved}`:""].filter(Boolean).join(", ")}function f(e,t,a,r,i,n){let s=[...e].sort((e,t)=>("resolve"===e.kind)-("resolve"===t.kind)||p[e.severity]-p[t.severity]),o=[r],l=r.length+i.length+40;for(let e=0;e<s.length;e++){let r=a(s[e]);if(l+r.length+1>t){o.push(n(s.length-e));break}o.push(r),l+=r.length+1}return o.push(i),o.join("\n").slice(0,t)}let h={en:{CollectorStale:"the watchdog already runs the collector itself every 5 minutes. Check the job on cron-job.org and the latest Vercel deploy.",DomainExpiringSoon:"renew the domain at its registrar; Watchbell can't pay for it.",StorageAlmostFull:"delete old data or shorten retention in that database; the free tier can't add storage.",NeonComputeHigh:"cut queries or make Neon auto-suspend sooner; the quota resets at the start of the month.",FirestoreQuotaHigh:"cut Firestore reads (cache in the app); the quota resets daily.",DbQuotaHigh:"cut queries to that database until its quota resets.",ComputeHigh:"check the Pool card on the Supabase page (idle connections close automatically at 10 of 15); for CPU or disk, look for heavy queries.",DnsProxiedToVercel:"turn off the proxy (orange cloud) for that record in Cloudflare; Vercel needs DNS only.",CredentialExpiring:"create a new token and replace it in Settings → Connections before it expires."},id:{CollectorStale:"watchdog udah jalanin collector sendiri tiap 5 menit. Cek job di cron-job.org dan deploy terakhir di Vercel.",DomainExpiringSoon:"perpanjang domain di registrar-nya, Watchbell nggak bisa bayar.",StorageAlmostFull:"hapus data lama atau pendekin retensi di database itu, free tier nggak bisa nambah storage.",NeonComputeHigh:"kurangin query atau percepat auto-suspend Neon, kuota reset awal bulan.",FirestoreQuotaHigh:"kurangin read Firestore (cache di app), kuota reset tiap hari.",DbQuotaHigh:"kurangin query ke database itu sampai kuotanya reset.",ComputeHigh:"cek kartu Pool di halaman Supabase (koneksi nganggur ditutup otomatis di 10 dari 15), kalau CPU/disk cari query yang berat.",DnsProxiedToVercel:"matiin proxy (awan oranye) record itu di Cloudflare, Vercel butuh DNS only.",CredentialExpiring:"bikin token baru dan ganti di Settings → Connections sebelum habis."}};e.s(["Z",0,d,"l",0,function(e,a,r,i="en"){let n=`${r.replace(/\/+$/,"")}/alerts`,s=c[i],p=e=>`${l[i][e.kind]} \xb7 ${d[i][e.severity]} \xb7 `,m=e=>"id"===i?o(e.ruleKey,e.message):e.message,k=e=>"resolve"===e.kind?null:((e,t="en")=>{let a=Object.hasOwn(h[t],e)?h[t][e]:void 0;return a?`${c[t].step}: ${a}`:null})(e.ruleKey,i),$=e=>[e.causedBy?`${s.causedBy} ${e.causedBy}`:"",e.provider?`${e.provider} ${s.incident}`:""].filter(Boolean).join(" · "),y=e=>`
2
+ +${e} ${s.more}`;return{telegram:f(e,4096,e=>`
3
+ <b>${p(e)}${u(e.ruleKey)} \xb7 ${u(e.title)}</b>
4
+ ${u(m(e))}${$(e)?`
5
+ <i>${u($(e))}</i>`:""}${k(e)?`
6
+ 👉 ${u(k(e))}`:""}
7
+ ${s.since} ${(0,t.U)(e.startedAt)} ${(0,t.J)(e.startedAt)}`,`<b>Watchbell</b>: ${g(e,i)} \xb7 ${(0,t.U)(a)} ${(0,t.J)(a)}`,`
8
+ <a href="${u(n)}">${s.open}</a>`,y),discord:f(e,2e3,e=>`
9
+ **${p(e)}${e.ruleKey} \xb7 ${e.title.replace(/[*_`~|\[\]<>]/g,"")}**
10
+ ${m(e).replace(/[*_`~|\[\]<>]/g,"")}${$(e)?`
11
+ _${$(e)}_`:""}${k(e)?`
12
+ 👉 ${k(e)}`:""}`,`**Watchbell**: ${g(e,i)} \xb7 ${(0,t.U)(a)} ${(0,t.J)(a)}`,`
13
+ ${n}`,y)}},"H",0,u],220642)},895625,e=>{var t=e.i(971724),a=e.i(105954),r=e.i(140561),i=e.i(600205),n=e.i(77193);let s=t.z.object({COLLECTOR_SECRET:a.z.string().min(32),CRON_SECRET:a.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:a.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:a.z.string().min(10)}),o=s.extend({QSTASH_CURRENT_SIGNING_KEY:r.z.union([i.z.literal(""),a.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:r.z.union([i.z.literal(""),a.z.string().min(10)]).default("")}),l=!1;e.s(["f",0,function(){try{var e=process.env;let t=("selfhost"===(0,n.c)(e)?o:s).safeParse(e);if(!t.success)throw Error(`Missing or invalid scheduler settings: ${t.error.issues.map(e=>e.path.join(".")).join(", ")}`);return t.data}catch(e){return l||(l=!0,console.warn(e instanceof Error?e.message:"Missing or invalid scheduler settings")),null}}])},629955,11827,e=>{var t=e.i(875225),a=e.i(349129),r=e.i(924924),i=e.i(618916),n=e.i(921991),s=e.i(656083),o=e.i(472832);let l="Pause requested · ";function d(e,t){if(!e.keep||"ACTIVE_HEALTHY"!==e.status)return!1;let a=e.lastTraffic??e.trackedSince;return t.getTime()-a.getTime()>=432e6}function c(e,t){return e.autoRestore?"INACTIVE"!==e.status?{act:!1,reason:"not-paused"}:e.accessDenied?{act:!1,reason:"denied"}:e.lastAutoRestoreAt&&t.getTime()-e.lastAutoRestoreAt.getTime()<216e5?{act:!1,reason:"too-soon"}:e.slotsLeft<=0?{act:!1,reason:"no-slot"}:{act:!0}:{act:!1,reason:"off"}}e.s(["B",0,l,"F",0,c,"v",0,d],11827);var u=e.i(326003),p=e.i(843448),g=e.i(547499),f=e.i(628448),h=e.i(342833);async function m(e){let a=await (0,r.f)().select({data:i.snapshots.data}).from(i.resources).innerJoin(i.snapshots,(0,t.u)(i.snapshots.resourceId,i.resources.id)).where((0,t.b)((0,t.u)(i.resources.accountId,e),(0,t.u)(i.resources.kind,"supabase_project"))),n=new Map;for(let{data:e}of a){let t=(0,u.k)(u.B,e);t.orgSlug&&void 0!==t.freeOrg&&n.set(t.orgSlug,t.freeOrg)}return n}let k=e=>`${e} day${1===e?"":"s"}`,$=e=>e instanceof Error?e.name:"unknown";async function y(e,a,n){try{let s=await (0,r.f)().select({k:i.keepActive,r:i.resources,s:i.snapshots,a:i.accounts}).from(i.keepActive).innerJoin(i.resources,(0,t.u)(i.resources.id,i.keepActive.resourceId)).innerJoin(i.accounts,(0,t.u)(i.accounts.id,i.resources.accountId)).leftJoin(i.snapshots,(0,t.u)(i.snapshots.resourceId,i.resources.id)).where((0,t.b)((0,t.u)(i.keepActive.keep,!0),(0,t.u)(i.resources.kind,"supabase_project"),(0,t.u)(i.resources.monitored,!0),(0,t.M)(i.resources.goneAt),(0,t.u)(i.accounts.status,"ok"))).limit(100),o=(0,g.f)().OPS_ENCRYPTION_KEY;for(let[t,{k:r,r:i,s:l,a:d}]of s.entries()){let c=a-Date.now()-500;if(c<250)return void n.push(`keep-active: ${s.length-t} left for the next run, time budget used`);if(!(r.lastKeepAliveAt&&e.getTime()-r.lastKeepAliveAt.getTime()<72e6))try{await w(i,l,d,e,o,c,n)}catch(e){console.warn("keep-active failed:",$(e)),n.push(`keep-active/${i.name}: ${$(e)}`)}}}catch(e){console.warn("keep-active failed:",$(e)),n.push(`keep-active: ${$(e)}`)}}async function w(e,a,o,l,c,g,m){let $=(0,u.k)(u.B,a?.data),y=$.lastTrafficAt?new Date($.lastTrafficAt):$.trafficAt?new Date(new Date($.trafficAt).getTime()-6048e5):null;if(!d({status:$.status??"",keep:!0,lastTraffic:y,trackedSince:e.firstSeenAt},l))return;let w=Math.floor((l.getTime()-(y??e.firstSeenAt).getTime())/864e5),v=(0,n.V)({ciphertext:o.credentialCiphertext,iv:o.credentialIv},c);if(!v)return void m.push(`keep-active/${o.label}: credential can't be read`);let b=await (0,h.i)(v,e.externalId,{timeoutMs:Math.min(5e3,g)});if(b.ok)await (0,r.f)().update(i.keepActive).set({lastKeepAliveAt:l}).where((0,t.u)(i.keepActive.resourceId,e.id)),await (0,s.f)([{at:l,type:"action",kind:"ok",resourceId:e.id,actorUserId:null,message:`Keep-alive: sent to ${e.name} (no API traffic for ${k(w)})`,detail:null}]);else{let t=Math.max(1,p.e-w);await (0,s.f)([{at:l,type:"action",kind:"warn",resourceId:e.id,actorUserId:null,reason:"KeepAliveFailed",message:`Keep-alive failed for ${e.name}; it may pause in about ${k(t)}`,detail:"scope"===b.kind?"This token can't run the read-only query (Database read).":(0,f.S)(b.error)}]),m.push(`keep-active/${e.name}: ${b.error}`)}}async function v(e){let[n]=await (0,r.f)().select({at:i.events.at}).from(i.events).where((0,t.b)((0,t.u)(i.events.reason,"Action"),(0,t.u)(i.events.resourceId,e),(0,t.u)(i.events.type,"action"),(0,t.y)(i.events.kind,["ok","err"]),(0,t.E)(i.events.actorUserId),(0,t.D)(i.events.message,`${l}%`))).orderBy((0,a.A)(i.events.at)).limit(1);return n?.at??null}async function b(){return(await (0,r.f)().select({id:i.keepActive.resourceId}).from(i.keepActive).where((0,t.u)(i.keepActive.autoRestore,!0)).limit(1)).length>0}async function A(e,a,l=1/0){let d=a.filter(e=>!!e.resourceId&&"INACTIVE"===e.status),u=()=>l-Date.now()-500;if(!d.length||250>u())return;let k=await (0,r.f)().select({k:i.keepActive,id:i.resources.id,name:i.resources.name,ref:i.resources.externalId,accountId:i.resources.accountId,label:i.accounts.label,lastTestAt:i.accounts.lastTestAt,ciphertext:i.accounts.credentialCiphertext,iv:i.accounts.credentialIv}).from(i.keepActive).innerJoin(i.resources,(0,t.u)(i.resources.id,i.keepActive.resourceId)).innerJoin(i.accounts,(0,t.u)(i.accounts.id,i.resources.accountId)).where((0,t.b)((0,t.u)(i.keepActive.autoRestore,!0),(0,t.y)(i.keepActive.resourceId,d.map(e=>e.resourceId)),(0,t.u)(i.resources.kind,"supabase_project"),(0,t.M)(i.resources.goneAt)));if(!k.length)return;let y=await (0,o.f)([...new Set(k.map(e=>e.accountId))]),w=new Map,b=new Map;for(let l of k)try{let d=a.filter(e=>e.accountId===l.accountId),k=d.find(e=>e.resourceId===l.id)?.orgSlug??"";if(!w.has(l.accountId)){let e=await m(l.accountId);w.set(l.accountId,e),b.set(l.accountId,(0,p._)(d.map(t=>({status:t.status,freeOrg:e.get(t.orgSlug??"")??null}))).left)}let $=!1===w.get(l.accountId).get(k),A=$?1/0:b.get(l.accountId),I=y.get(l.accountId),S=Math.max(l.k.updatedAt.getTime(),l.lastTestAt?.getTime()??0),T=I?.write==="denied"&&new Date(I.at).getTime()>S,x=c({status:"INACTIVE",autoRestore:!0,lastAutoRestoreAt:l.k.lastAutoRestoreAt,slotsLeft:A,accessDenied:T},e);if(!x.act){"no-slot"===x.reason&&await (0,s.f)([{at:e,type:"action",kind:"info",resourceId:l.id,actorUserId:null,reason:"AutoRestoreWaits",message:`Auto-restore: ${l.name} waits, account ${l.label} has no free slot`,detail:"Pause another project in this account, or restore it by hand once a slot is free."}]);continue}let C=await v(l.id);if(C&&C.getTime()>l.k.updatedAt.getTime())continue;let D=u();if(D<250)return;await (0,r.f)().update(i.keepActive).set({lastAutoRestoreAt:e}).where((0,t.u)(i.keepActive.resourceId,l.id));let E=(0,n.V)({ciphertext:l.ciphertext,iv:l.iv},(0,g.f)().OPS_ENCRYPTION_KEY);if(!E)continue;let j=await (0,h.G)(E,l.ref,{timeoutMs:Math.min(5e3,D)});j.ok?($||b.set(l.accountId,b.get(l.accountId)-1),await (0,o.y)(l.accountId,"ok"),await (0,s.f)([{at:e,type:"action",kind:"ok",resourceId:l.id,actorUserId:null,message:`Auto-restore: restoring ${l.name}`,detail:null}])):("scope"===j.kind&&await (0,o.y)(l.accountId,"denied"),await (0,s.f)([{at:e,type:"action",kind:"err",resourceId:l.id,actorUserId:null,message:`Auto-restore: ${l.name} couldn't be restored`,detail:"scope"===j.kind?`${(0,f.b)("supabase",{})} Auto-restore stops until then.`:(0,f.S)(j.error)}]))}catch(e){console.warn("auto-restore failed:",$(e))}}async function I(e,a,n=o.W,s=new Date){let l=await (0,o.q)(e.id,"keep-alive",a);if(l)return{ok:!1,error:l};let d=await (0,o.p)(a,"supabase_project");if(!d)return{ok:!1,error:"This project isn't watched any more, or its credential can't be read."};let[c]=await (0,r.f)().select({last:i.keepActive.lastKeepAliveAt}).from(i.keepActive).where((0,t.u)(i.keepActive.resourceId,a)).limit(1);if(c?.last&&s.getTime()-c.last.getTime()<72e6)return n({done:!1,message:"A keep-alive was already sent in the last 20 hours."},e,d.account.id);let u=d.resource.name,p=await (0,h.i)(d.token,d.resource.externalId,{timeoutMs:5e3});return p.ok&&await (0,r.f)().insert(i.keepActive).values({resourceId:a,lastKeepAliveAt:s}).onConflictDoUpdate({target:i.keepActive.resourceId,set:{lastKeepAliveAt:s}}),n(p.ok?{done:!0,message:`Keep-alive sent to ${u}.`,audit:{message:`Keep-alive sent \xb7 ${u}`,resourceId:a}}:{done:!1,failed:{ok:!1,kind:p.kind,error:"scope"===p.kind?"This token can't run the read-only query (Database read).":p.error,...p.status?{status:p.status}:{}},audit:{message:`Keep-alive failed \xb7 ${u}`,resourceId:a}},e,d.account.id)}e.s(["m",0,m,"z",0,A,"g",0,b,"v",0,I,"V",0,y,"G",0,function(e,t,a){return!1===t.get(a)?1/0:(0,p._)(e.map(e=>({status:e.status,freeOrg:t.get(e.orgSlug)??null}))).left}],629955)},483100,e=>{var t=e.i(875225),a=e.i(349129),r=e.i(518899),i=e.i(924924),n=e.i(618916),s=e.i(220642),o=e.i(921991),l=e.i(656083),d=e.i(209576),c=e.i(111970),u=e.i(762504),p=e.i(547499),g=e.i(224382),f=e.i(600273),h=e.i(968068),m=e.i(695811),k=e.i(633974),$=e.i(76012),y=e.i(298397),w=e.i(218331),v=e.i(146394);let b="digest.lastSentDay",A="digest.state";async function I(e){let[a]=await (0,i.f)().select().from(n.channels).where((0,t.u)(n.channels.kind,e)).limit(1);if(!a)return null;try{return{row:a,config:JSON.parse((0,o.K)({ciphertext:a.configCiphertext,iv:a.configIv},(0,p.f)().OPS_ENCRYPTION_KEY))}}catch{return null}}async function S(){let e=(0,h.f)(),[t,a]=await Promise.all([I("telegram"),I("discord")]),r=new Set;return e.telegramToken&&t?.row.enabled&&t.config?.chatId&&r.add("telegram"),a?.row.enabled&&a.config?.url&&r.add("discord"),{send:(r,i)=>"telegram"===r?(0,$.I)(e.telegramToken,t.config.chatId,i):(0,g.f)(a.config.url,i),configured:r}}async function T(){let e=(0,h.f)().telegramToken;if(!e)return null;let t=await I("telegram");return t?.row.enabled&&t.config?.chatId?{token:e,chatId:t.config.chatId}:null}async function x(){let e=await I("discord");return e?.row.enabled&&e.config?.url?{url:e.config.url}:null}let C=()=>(0,d.f)().catch(()=>y.a);async function D(e,o,l={}){var d;if(o-Date.now()<6e3)return{sent:0,dropped:0};let u=await (0,c.I)(),g=await (0,i.f)().select({a:n.alerts,channels:n.alertRules.channels}).from(n.alerts).innerJoin(n.alertRules,(0,t.u)(n.alertRules.key,n.alerts.ruleKey)).where((0,t.b)((0,t.E)(n.alerts.pending),r.B`(${n.alerts.pending} = 'resolve') = (${n.alerts.resolvedAt} is not null)`,(0,c.s)(u))).orderBy((0,a.M)(n.alerts.pendingSince)).limit(50);if(!g.length)return{sent:0,dropped:0};let f=new Set((await (0,i.f)().update(n.alerts).set({claimedAt:e}).where((d=g.map(e=>e.a.id),(0,t.b)((0,t.y)(n.alerts.id,d),(0,t.E)(n.alerts.pending),(0,t.F)((0,t.M)(n.alerts.claimedAt),(0,t.S)(n.alerts.claimedAt,new Date(e.getTime()-12e4)))))).returning({id:n.alerts.id})).map(e=>e.id)),h=g.filter(e=>f.has(e.a.id));if(!h.length)return{sent:0,dropped:0};let{send:k,configured:$}=l.sender??await S(),w=new Set(h.filter(({a:t})=>"resolve"!==t.pending&&(t.silencedUntilResolved||null!==t.silencedUntil&&t.silencedUntil.getTime()>e.getTime())).map(({a:e})=>e.id)),[v,b]=await Promise.all([C(),(0,m.B)()]),A=new Set;for(let a of["telegram","discord"]){if(!$.has(a))continue;let r=h.filter(e=>e.channels.includes(a)&&!w.has(e.a.id));if(!r.length)continue;let o=r.map(({a:e})=>{let t=(0,y.o)(e,v);return{kind:e.pending,ruleKey:e.ruleKey,severity:e.severity,title:t.title,message:t.message,startedAt:e.startedAt,causedBy:t.causedBy,provider:e.providerIncident}}),l=(0,s.l)(o,e,(0,p.f)().SITE_URL,b[a]),d=await k(a,(0,y.G)("telegram"===a?l.telegram:l.discord));await (0,i.f)().update(n.channels).set(d.ok?{lastSentAt:e,lastError:null}:{lastError:d.error}).where((0,t.u)(n.channels.kind,a)),d.ok&&r.forEach(({a:e})=>A.add(e.id))}let I=0,T=0,x=[];for(let{a,channels:r}of h){let s=r.some(e=>$.has(e)),o=null!==a.pendingSince&&e.getTime()-a.pendingSince.getTime()>18e5;A.has(a.id)?(I++,await (0,i.f)().update(n.alerts).set({pending:null,pendingSince:null,lastNotifiedAt:e,claimedAt:null,..."open"===a.pending?{notifiedOpen:!0}:{}}).where((0,t.u)(n.alerts.id,a.id))):w.has(a.id)||!s||o?(T++,await (0,i.f)().update(n.alerts).set({pending:null,claimedAt:null}).where((0,t.u)(n.alerts.id,a.id))):x.push(a.id)}return x.length&&await (0,i.f)().update(n.alerts).set({claimedAt:null}).where((0,t.y)(n.alerts.id,x)),{sent:I,dropped:T}}async function E(e){let s=new Date(e.getTime()-864e5),o=await (0,c.I)(),l=r.B`case ${n.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`,[d,p,g,f,h]=await Promise.all([(0,i.f)().select({ruleKey:n.alerts.ruleKey,severity:n.alerts.severity,title:n.alerts.title,message:n.alerts.message,resourceId:n.alerts.resourceId,startedAt:n.alerts.startedAt}).from(n.alerts).where((0,t.b)((0,t.M)(n.alerts.resolvedAt),(0,c.s)(o))).orderBy(l,(0,a.A)(n.alerts.startedAt)).limit(50),(0,i.f)().select({n:r.B`count(*)::int`}).from(n.alerts).where((0,t.B)(n.alerts.startedAt,s)),(0,i.f)().select({ruleKey:n.alerts.ruleKey,title:n.alerts.title,resourceId:n.alerts.resourceId,startedAt:n.alerts.startedAt,resolvedAt:n.alerts.resolvedAt}).from(n.alerts).where((0,t.b)((0,t.E)(n.alerts.resolvedAt),(0,t.B)(n.alerts.resolvedAt,s))).orderBy((0,a.A)(n.alerts.resolvedAt)).limit(20),(0,i.f)().select({id:n.resources.id,name:n.resources.name}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy(n.resources.name).limit(v.O.apps),(0,u.h)(e)]),m=f.map(e=>e.id),[k,$]=m.length?await Promise.all([(0,i.f)().select({id:n.monitors.resourceId,total:r.B`count(*)::int`,bad:r.B`(count(*) filter (where not ${n.checks.ok}))::int`}).from(n.checks).innerJoin(n.monitors,(0,t.u)(n.monitors.id,n.checks.monitorId)).where((0,t.b)((0,t.y)(n.monitors.resourceId,m),(0,t.B)(n.checks.at,s),(0,t.u)(n.checks.inMaintenance,!1))).groupBy(n.monitors.resourceId),(0,i.f)().select({id:n.storedLogs.resourceId,n:r.B`count(*)::int`}).from(n.storedLogs).where((0,t.b)((0,t.y)(n.storedLogs.resourceId,m),(0,t.B)(n.storedLogs.at,s))).groupBy(n.storedLogs.resourceId)]):[[],[]],w=new Map(k.map(e=>[e.id,e])),b=new Map($.map(e=>[e.id,e.n])),A=await C();return{now:e,opened:p[0]?.n??0,firing:d.map(({resourceId:e,...t})=>{let a=(0,y.o)({...t,resourceId:e,causedBy:null},A);return{...t,title:a.title,message:a.message}}),resolved:g.flatMap(e=>e.resolvedAt?[{ruleKey:e.ruleKey,title:(0,y.o)({title:e.title,message:"",causedBy:null,resourceId:e.resourceId},A).title,took:function(e,t){let a=Math.max(1,Math.round((t.getTime()-e.getTime())/6e4));if(a<60)return`${a} min`;let r=Math.floor(a/60);return r<24?`${r} h ${a%60} min`:`${Math.floor(r/24)} d ${r%24} h`}(e.startedAt,e.resolvedAt)}]:[]),apps:f.map(e=>{let t=w.get(e.id);return{name:e.name,uptime:t&&t.total>0?(t.total-t.bad)/t.total*100:null,errors:b.get(e.id)??0}}),providers:h.filter(e=>"ok"!==e.state).map(e=>({label:e.label,text:e.text}))}}async function j(e,a,r){await (0,i.f)().update(n.channels).set(a.ok?{lastSentAt:r,lastError:null}:{lastError:a.error}).where((0,t.u)(n.channels.kind,e))}async function _(e){let[t,a]=await Promise.all([E(e),(0,m.H)("email")]);return(0,f.J)({...t,siteUrl:(0,p.f)().SITE_URL},a)}async function N(e,a={}){let r=await (0,i.f)().select().from(n.settings).where((0,t.y)(n.settings.key,[b,A])),s=r.find(e=>e.key===b)?.value,o="string"==typeof s?s:null;if(!(0,f.A)(e,o))return;let d=(0,h.f)(),c=await I("email_digest");if(!d.resendKey||!d.digestFrom||!c?.row.enabled||!c.config?.to)return;let{resendKey:u,digestFrom:p}=d,g=c.config.to,m=(0,w.x)(e),$=await (0,f.K)(e,{lastSentDay:o,state:r.find(e=>e.key===A)?.value??null,build:a.build??(()=>_(e)),send:a.send??(e=>(0,k.f)(u,{from:p,to:g,...e,idempotencyKey:`digest-${m}`}))});$.acted&&($.result&&await j("email_digest",$.result,e),$.state?await (0,i.f)().insert(n.settings).values({key:A,value:$.state}).onConflictDoUpdate({target:n.settings.key,set:{value:$.state,updatedAt:e}}):await (0,i.f)().delete(n.settings).where((0,t.u)(n.settings.key,A)),$.sentDay&&await (0,i.f)().insert(n.settings).values({key:b,value:$.sentDay}).onConflictDoUpdate({target:n.settings.key,set:{value:$.sentDay,updatedAt:e}}),$.event&&await (0,l.f)([{type:"system",kind:"warn",message:$.event.message,detail:$.event.detail,resourceId:null,reason:"DigestFailed",at:e}]))}e.s(["q",0,D,"G",0,x,"P",0,j,"J",0,N,"Q",0,T],483100)},472832,628448,e=>{var t=e.i(875225),a=e.i(665044),r=e.i(924924),i=e.i(618916),n=e.i(921991),s=e.i(407602),o=e.i(547499),l=e.i(479301),d=e.i(189104);function c(e,t){return"member"===e?`Too many actions. Try again in ${(0,d.H)(t)}.`:"That was just done. Wait a minute before trying again."}function u(e){let t=e.replace(/\s+/g," ").trim();return t.length>200?`${t.slice(0,199)}…`:t}e.s(["G",0,"This changed since you opened it. Reload and try again.","z",0,c,"b",0,function(e,t){return"supabase"===e?"This token is read-only; replace it with one that has Project admin write.":"cloudflare"===e?'This Cloudflare token can\'t edit DNS; add "Zone → DNS → Edit" to it, or replace it with a token that has it.':"vercel"===e?`This token can't change projects in team ${t.team||"this team"}; replace it with one whose scope includes that team.`:`This API key can't manage project ${t.project||"this project"}; replace it with a personal or organization key, or a key for this project.`},"S",0,u],628448);var p=e.i(593111);let g="access.";async function f(e,a){if(!(0,l.f)(e))return null;let[s]=await (0,r.f)().select({r:i.resources,a:i.accounts}).from(i.resources).innerJoin(i.accounts,(0,t.u)(i.accounts.id,i.resources.accountId)).where((0,t.b)((0,t.u)(i.resources.id,e),(0,t.u)(i.resources.kind,a),(0,t.M)(i.resources.goneAt))).limit(1);if(!s)return null;let d=(0,n.V)({ciphertext:s.a.credentialCiphertext,iv:s.a.credentialIv},(0,o.f)().OPS_ENCRYPTION_KEY);return d?{resource:s.r,account:{id:s.a.id,label:s.a.label,provider:s.a.provider,scopeNote:s.a.scopeNote},token:d}:null}async function h(e,t,a){let r=await (0,p.f)(d.t.providerAction,e);if(!r.allowed)return c("member",r.retryAfter);let i=await (0,p.f)(d.t.actionTarget,`${t}:${a}`);return i.allowed?null:c("target",i.retryAfter)}async function m(e,t,a){let n={write:t,at:new Date().toISOString(),...a?{scope:a}:{}};await (0,r.f)().insert(i.settings).values({key:`${g}${e}`,value:n}).onConflictDoUpdate({target:i.settings.key,set:{value:n,updatedAt:new Date}})}async function k(e){let a=new Map,n=e.filter(l.f);if(0===n.length)return a;for(let e of(await (0,r.f)().select().from(i.settings).where((0,t.y)(i.settings.key,n.map(e=>`${g}${e}`))))){let t=e.value;t&&("ok"===t.write||"denied"===t.write)&&"string"==typeof t.at&&a.set(e.key.slice(g.length),{write:t.write,at:t.at,..."string"==typeof t.scope?{scope:t.scope}:{}})}return a}async function $(e,t,r,i={}){if(!("audit"in e))return{ok:!1,error:e.message};let n="failed"in e?e.failed:null,o="failed"in e?"":e.message,l=n?n.error:"failed"in e?void 0:e.audit.detail;try{await (0,s.f)({kind:n?"err":"ok",message:`${i.auditPrefix??""}${e.audit.message}`,resourceId:e.audit.resourceId,actorUserId:t.userId,...l?{detail:u(l)}:{}})}catch{console.warn("audit event failed")}if(!n||"scope"===n.kind)try{await m(r,n?"denied":"ok")}catch{console.warn("access write failed")}return!1!==i.refresh&&(0,a.refresh)(),n?{ok:!1,error:n.error}:{ok:!0,message:o}}e.s(["W",0,$,"p",0,f,"y",0,m,"q",0,h,"f",0,k],472832)},224382,600273,e=>{var t=e.i(425498),a=e.i(77193);let r=/^https:\/\/(?:(?:canary|ptb)\.)?discord(?:app)?\.com\/api\/webhooks\/\d{5,25}\/[\w-]{20,}$/;async function i(e,n,s={}){let o;if((0,a.W)())return{ok:!1,kind:"config",error:t.Y};if(r.test(e.trim())?null:"Paste the whole webhook URL from Discord.")return{ok:!1,kind:"config",error:"The saved Discord webhook URL isn't valid."};try{o=await (s.fetch??fetch)(e,{method:"POST",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(s.timeoutMs??5e3),cache:"no-store",body:JSON.stringify({content:n.slice(0,2e3),username:"Watchbell",allowed_mentions:{parse:[]}})})}catch{return{ok:!1,kind:"transient",error:"Discord didn't answer."}}if(204===o.status||o.ok)return{ok:!0};if(429===o.status){let e=await o.json().catch(()=>null),t=Math.ceil(e?.retry_after??5);return{ok:!1,kind:"transient",retryAfterS:t,error:`Discord asked us to wait ${t} s.`}}return 404===o.status||401===o.status?{ok:!1,kind:"config",error:"Discord says this webhook no longer exists."}:{ok:!1,kind:o.status>=500?"transient":"config",error:`Discord returned an error (${o.status}).`}}e.s(["f",0,i],224382);var n=e.i(220642),s=e.i(765359),o=e.i(218331),l=e.i(195191),d=e.i(298397);function c(e,t){return(0,o.M)(e,t)&&(0,o.z)(e).hour>=7}let u={en:{firing:"firing",opened:"opened",resolved:"resolved",last24:"in the last 24 hours.",stillHead:"Still firing",noFiring:"Nothing is firing.",resolvedHead:"Resolved",noResolved:"Nothing resolved.",appsHead:"Applications (24 h)",providersHead:"Providers",open:"Open alerts",after:"after",up:"up",took:e=>e,noChecks:"no checks",errors:e=>`${e} stored error${1===e?"":"s"}`},id:{firing:"aktif",opened:"baru",resolved:"pulih",last24:"dalam 24 jam terakhir.",stillHead:"Masih aktif",noFiring:"Nggak ada yang aktif.",resolvedHead:"Pulih",noResolved:"Nggak ada yang pulih.",appsHead:"Aplikasi (24 jam)",providersHead:"Provider",open:"Buka Alerts",after:"setelah",up:"aktif",took:e=>e.replace(/\b(\d+) min\b/g,"$1 menit").replace(/\b(\d+) h\b/g,"$1 jam").replace(/\b(\d+) d\b/g,"$1 hari"),noChecks:"belum ada cek",errors:e=>`${e} error tersimpan`}},p={May:"Mei",Aug:"Agu",Oct:"Okt",Dec:"Des"},g=[5,15,30,60];async function f(e,t){let a={acted:!1,state:t.state,sentDay:null,event:null,result:null};if(!c(e,t.lastSentDay))return a;let r=(0,o.x)(e),i=t.state&&t.state.day===r?t.state:null;if(i?.stopped)return{...a,state:i};if(i&&i.attempts>0){let t=(g[i.attempts-1]??g[g.length-1])*6e4;if(i.lastAttemptAt&&e.getTime()-new Date(i.lastAttemptAt).getTime()<t)return{...a,state:i}}i??={day:r,...await t.build(),attempts:0,lastAttemptAt:null,stopped:!1,lastError:null};let n=await t.send({subject:i.subject,html:i.html,text:i.text});if(n.ok)return{acted:!0,state:null,sentDay:r,event:null,result:n};let s=i.attempts+1,l="config"===n.kind||s>=5,d="config"===n.kind?`${n.error}. Fix it and the next digest goes out tomorrow.`:`${n.error} Gave up after ${s} attempts today.`;return{acted:!0,sentDay:null,result:n,state:{...i,attempts:s,lastAttemptAt:e.toISOString(),stopped:l,lastError:n.error},event:l?{message:"Daily digest not sent",detail:d}:null}}e.s(["J",0,function(e,t="en"){let a=u[t],r=`${e.siteUrl.replace(/\/+$/,"")}/alerts`,i=((e,t)=>{let{day:a,month:r}=(0,o.e)(e);return`${a} ${"id"===t?p[r]??r:r}`})(e.now,t),c=`${e.firing.length} ${a.firing}, ${e.opened} ${a.opened}, ${e.resolved.length} ${a.resolved}`,g=`Watchbell \xb7 ${i} \xb7 ${c}`,f=[...e.apps].sort((e,t)=>(e.uptime??101)-(t.uptime??101)||t.errors-e.errors||e.name.localeCompare(t.name)),h=e.firing.map(e=>`${n.Z[t][e.severity]} \xb7 ${e.ruleKey} \xb7 ${e.title}: ${"id"===t?(0,s.f)(e.ruleKey,e.message):e.message}`),m=e.resolved.map(e=>`${e.ruleKey} \xb7 ${e.title} (${a.after} ${a.took(e.took)})`),k=f.map(e=>`${e.name}: ${null===e.uptime?a.noChecks:`${(0,l.C)(e.uptime)} ${a.up}`}, ${a.errors(e.errors)}`),$=e.providers.map(e=>`${e.label}: ${e.text}`),y=[`Watchbell \xb7 ${i}`,`${c} ${a.last24}`,"",a.stillHead,...h.length?h.map(e=>`- ${e}`):[a.noFiring],"",a.resolvedHead,...m.length?m.map(e=>`- ${e}`):[a.noResolved],...k.length?["",a.appsHead,...k.map(e=>`- ${e}`)]:[],...$.length?["",a.providersHead,...$.map(e=>`- ${e}`)]:[],"",`${a.open}: ${r}`].join("\n"),w=e=>`<h3 style="font:600 14px system-ui,sans-serif;margin:18px 0 6px">${(0,n.H)(e)}</h3>`,v=(e,t)=>e.length?`<ul style="margin:0;padding-left:18px">${e.map(e=>`<li style="margin:2px 0">${(0,n.H)(e)}</li>`).join("")}</ul>`:`<p style="margin:0;color:#596170">${(0,n.H)(t)}</p>`,b=['<div style="font:14px/1.5 system-ui,sans-serif;color:#14171f;max-width:560px">',`<h2 style="font:600 16px system-ui,sans-serif;margin:0 0 4px">Watchbell \xb7 ${(0,n.H)(i)}</h2>`,`<p style="margin:0;color:#596170">${(0,n.H)(`${c} ${a.last24}`)}</p>`,w(a.stillHead),v(h,a.noFiring),w(a.resolvedHead),v(m,a.noResolved),...k.length?[w(a.appsHead),v(k,"")]:[],...$.length?[w(a.providersHead),v($,"")]:[],`<p style="margin:18px 0 0"><a href="${(0,n.H)(r).replace(/"/g,"&quot;")}" style="color:#1f45c9">${(0,n.H)(a.open)}</a></p>`,"</div>"].join("");return{subject:(0,d.G)(g),html:(0,d.G)(b),text:(0,d.G)(y)}},"A",0,c,"K",0,f],600273)},968068,e=>{e.s(["f",0,function(e=process.env){let t=e.TELEGRAM_BOT_TOKEN?.trim()??"",a=e.RESEND_API_KEY?.trim()??"",r=e.DIGEST_FROM?.trim()??"";return{telegramToken:/^\d+:[\w-]{20,}$/.test(t)?t:null,resendKey:a.startsWith("re_")?a:null,digestFrom:/<?[^\s<>@]+@[^\s<>@]+\.[^\s<>@]+>?$/.test(r)?r:null}}])},695811,e=>{var t=e.i(960049);function a(e){let t=e&&"object"==typeof e?e:null,a=t?t.lang:e,r=e=>{var r;return"string"==typeof(r=t&&e in t?t[e]:a)&&"id"===r.trim().toLowerCase()?"id":"en"};return{telegram:r("telegram"),discord:r("discord"),email:r("email")}}async function r(){try{return a(await (0,t.l)())}catch{return a(null)}}async function i(e="telegram"){return(await r())[e]}e.s(["H",0,i,"B",0,r,"t",0,function(e,t,a){return e[t][a]}])},633974,e=>{var t=e.i(425498),a=e.i(77193);async function r(e,i,n={}){let s;if((0,a.W)())return{ok:!1,kind:"config",error:t.Y};try{s=await (n.fetch??fetch)("https://api.resend.com/emails",{method:"POST",signal:AbortSignal.timeout(5e3),cache:"no-store",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","User-Agent":"OpsConsole/1.0","Idempotency-Key":i.idempotencyKey},body:JSON.stringify({from:i.from,to:[i.to],subject:i.subject,html:i.html,text:i.text})})}catch{return{ok:!1,kind:"transient",error:"Resend didn't answer."}}if(s.ok)return{ok:!0};let o=await s.json().catch(()=>null);return 429===s.status||s.status>=500?{ok:!1,kind:"transient",error:`Resend returned an error (${s.status}).`}:{ok:!1,kind:"config",error:`Resend: ${String(o?.message??s.status).slice(0,200)}`}}e.s(["f",0,r])},76012,e=>{var t=e.i(425498),a=e.i(77193);async function r(e,i,n,s,o=5e3){let l;if((0,a.W)())return{ok:!1,code:null,description:t.Y,retryAfter:null};try{l=await s(`https://api.telegram.org/bot${e}/${i}`,{...n,signal:AbortSignal.timeout(o),cache:"no-store"})}catch{return{ok:!1,code:null,description:"Telegram didn't answer.",retryAfter:null}}let d=await l.json().catch(()=>null);return d?.ok?{ok:!0,result:d.result}:{ok:!1,code:d?.error_code??l.status,description:String(d?.description??`HTTP ${l.status}`).slice(0,200),retryAfter:d?.parameters?.retry_after??null}}async function i(e,t,a,n={}){let s=await r(e,"sendMessage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:t,text:a,parse_mode:"HTML",link_preview_options:{is_disabled:!0},...n.replyMarkup?{reply_markup:n.replyMarkup}:{}})},n.fetch??fetch);return s.ok?{ok:!0}:429===s.code?{ok:!1,kind:"transient",retryAfterS:s.retryAfter??30,error:`Telegram asked us to wait ${s.retryAfter??30} s.`}:null===s.code||s.code>=500?{ok:!1,kind:"transient",error:null===s.code?s.description:`Telegram returned an error (${s.code}).`}:{ok:!1,kind:"config",error:`Telegram: ${s.description}`}}e.s(["I",0,i,"z",0,r])}]})();
14
+
15
+ //# sourceMappingURL=src_lib_1en6omqx66g9d._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[646324,t=>{let e=t=>t?t.getTime():null;function n(t,e){return!t||"object"!=typeof t||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(t=>"string"==typeof t[1]&&new Date(t[1]).getTime()>e.getTime()))}t.s(["Q",0,function(t,e,n,r=new Set){let a=new Set(n.map(t=>`${t.resourceId}/${t.id}`));return t.flatMap(t=>{let n=e.get(t.externalId);return!n||r.has(n)||a.has(`${t.id}/${n}`)?[]:[{appId:t.id,deploymentId:n}]})},"E",0,function(t,n){return!t||t.state!==n.state||t.target!==n.target||t.branch!==n.branch||t.commitSha!==n.commitSha||t.commitMessage!==n.commitMessage||t.source!==n.source||t.url!==n.url||e(t.buildingAt)!==e(n.buildingAt)||e(t.readyAt)!==e(n.readyAt)},"Y",0,function(t,e,r){let a=new Date(r.getTime()+216e5).toISOString();return{...n(t,r),...Object.fromEntries(e.map(t=>[t,a]))}},"K",0,function(t){try{return new URL(t).pathname}catch{return"/"}},"a",0,function(t,e){let n=[...new Map(t.map(t=>[t.id,t])).values()].sort((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()),r=e??n[0]?.id??null,a=n.findIndex(t=>t.id===r);return{currentId:r,previousId:a>=0?n[a+1]?.id??null:null}},"S",0,(t,e)=>new Set(Object.keys(n(t,e)))])},683439,t=>{let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;t.s(["f",0,t=>"string"==typeof t&&e.test(t)])},469762,t=>{var e=t.i(245710);function n(t,e){let n=Math.max(0,e.getTime()-t.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}function r(t){let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;let n=Math.floor(e/60);return n<60?`${n}m ${String(e%60).padStart(2,"0")}s`:`${Math.floor(n/60)}h ${String(n%60).padStart(2,"0")}m`}t.s(["m",0,function(t,e){for(let t of e)try{let e=new URL(t);if("https:"!==e.protocol&&"http:"!==e.protocol||!e.host)continue;return e.host}catch{}return`${t}.vercel.app`},"W",0,function(t){return t?t.split(/\r?\n|\r/).map(t=>t.trim()).find(t=>""!==t)??"":""},"h",0,function(t,r){let a=r.getTime()-t.getTime();return a<36e5?n(t,r):(0,e.m)(t,r)?(0,e.U)(t):`${Math.max(1,Math.floor(a/864e5))} d ago`},"A",0,function(t,e){return"building"===t.state?`${r(e.getTime()-(t.buildingAt??t.createdAt).getTime())} elapsed`:t.readyAt&&t.buildingAt?r(t.readyAt.getTime()-t.buildingAt.getTime()):"—"},"v",0,function(t,n){return(0,e.m)(t,n)?(0,e.U)(t):`${(0,e.L)(t)} ${(0,e.U)(t)}`},"o",0,function(t,e){let n=Math.max(0,e.getTime()-t.getTime()),r=(t,e)=>`${t} ${e}${1===t?"":"s"}`;return n<36e5?r(Math.max(1,Math.floor(n/6e4)),"minute"):n<864e5?r(Math.floor(n/36e5),"hour"):r(Math.floor(n/864e5),"day")},"F",0,function(t){try{let e=new URL(t);return`${e.host}${e.pathname}`}catch{return t}},"$",0,function(t,a){if(!t)return"—";if("building"===t.state)return`building ${r(a.getTime()-(t.buildingAt??t.createdAt).getTime())}`;let i=t.readyAt??t.createdAt;return"error"===t.state?`failed ${(0,e.m)(i,a)?(0,e.U)(i):n(i,a)}`:"canceled"===t.state?`canceled ${n(i,a)}`:n(i,a)},"H",0,function(t){let{day:n,month:r,year:a}=(0,e.e)(t);return`${n} ${r} ${a}`},"p",0,t=>null===t?"—":`${Math.round(t)} ms`,"C",0,t=>null===t?"—":`${(Math.floor(100*t+1e-6)/100).toFixed(2)}%`,"J",0,n,"_",0,t=>t?t.slice(0,7):"—"])},968715,t=>{var e=t.i(245710);function n(t,n){let[r,a,i]=(0,e.x)(t).split("-").map(Number);return Array.from({length:n},(t,e)=>new Date(Date.UTC(r,a-1,i-(n-1-e))).toISOString().slice(0,10))}let r=Date.UTC(2e3,0,1);t.s(["F",0,90,"I",0,30,"W",0,n,"D",0,function(t,e,n){return r+Math.floor((t.getTime()-r)/e)*e-(n-1)*e},"w",0,function(t,e,r){return n(e,r).map(e=>t?.get(e))},"C",0,function(t){let e=new Map;for(let n of t){let t=e.get(n.monitorId);t||(t=new Map,e.set(n.monitorId,t));let r=t.get(n.day);t.set(n.day,{day:n.day,checks:(r?.checks??0)+n.checks,failures:(r?.failures??0)+n.failures,maint:(r?.maint??0)+(n.maint??0)})}return e},"f",0,function(t,e,n,r,a=null){let i=Array.from({length:r},()=>a);for(let a of t){let t=Math.round((a.t-e)/n);t>=0&&t<r&&(i[t]=a.v)}return i},"j",0,function(t){let e={ok:0,warn:0,err:0,maint:0,paused:0};for(let n of t)!n.appGone&&("ok"===n.state||"warn"===n.state||"err"===n.state||"maint"===n.state?e[n.state]++:("paused"===n.state||"off"===n.state)&&e.paused++);return e},"h",0,function(t,e,r=90,a){return n(e,r).map((e,n)=>{let i,o=t?.get(e),u=o&&(0!==o.checks||o.maint)?0===o.checks?"maint":0===o.failures?"ok":o.failures<3?"warn":"err":"none",l=0==(i=r-1-n)?"Today":1===i?"1 day ago":`${i} days ago`,s=a?.get(e),c=o&&"none"!==u?"maint"===u?`${l} \xb7 maintenance, not counted`:`${l} \xb7 ${o.failures} failed of ${o.checks}`:`${l} \xb7 no data`;return{day:e,tone:u,title:s?`${c} \xb7 deployed ${s}`:c,deploy:s}})},"Y",0,function(t){let e=0,n=0;for(let r of t)r&&(e+=r.checks,n+=r.failures);return e?(e-n)/e*100:null}])},910697,t=>{t.s(["O",0,{events:200,deployments:200,apps:200,monitors:200,domains:200,databases:200,recentEvents:5,ongoingBuilds:5},"A",0,{rawChecksMs:6048e5,healthBuckets:30,metricBuckets:48,responseHours:24}])}]})();
2
+
3
+ //# sourceMappingURL=src_lib_1p21oczr6lh5a._.js.map
@@ -0,0 +1,15 @@
1
+ (()=>{"use strict";module.exports=[220642,765359,e=>{var t=e.i(218331);let a=e=>`${e} hari`,r=(e,t)=>0>Number(e)?`${t} udah habis.`:`${t} habis dalam ${a(e)}.`,i={"the job reported a failure":"job-nya lapor gagal","started but didn't finish":"udah mulai tapi nggak selesai","never pinged":"belum pernah ping","no ping in time":"nggak ada ping tepat waktu"},n={critical:"kritis",high:"tinggi",moderate:"sedang",low:"rendah",unknown:"nggak diketahui"},s={MonitorDown:[[/^(.+): no ping for (\d+ (?:min|h|days?))\.$/,(e,t,a)=>`${t}: nggak ada ping selama ${a.replace(/^(\d+) min$/,"$1 menit").replace(/^(\d+) h$/,"$1 jam").replace(/^(\d+) days?$/,"$1 hari")}.`],[/^(.+): (the job reported a failure|started but didn't finish|never pinged|no ping in time)\.$/,(e,t,a)=>`${t}: ${i[a]}.`],[/^(.+) failed its check \((.*)\) on (\d+) consecutive checks\.$/,(e,t,a,r)=>`${t}: ${r} cek gagal berturut-turut (${a}).`],[/^(.+) returned no answer on (\d+) consecutive checks\.$/,(e,t,a)=>`${t}: ${a} cek gagal berturut-turut (nggak ada jawaban).`],[/^(.+) returned (HTTP \d+) on (\d+) consecutive checks\.$/,(e,t,a,r)=>`${t}: ${r} cek gagal berturut-turut (${a}).`],[/^(.+) answers again\.$/,(e,t)=>`${t} udah jawab lagi.`]],CollectorStale:[[/^The collector hasn't finished a run yet\.$/,()=>"Collector belum pernah selesai jalan."],[/^The last minute run finished ([\d,]+) min ago\.$/,(e,t)=>`Collector terakhir selesai jalan ${t} menit lalu.`]],HighLatency:[[/^p95 ([\d,]+) ms over the last 10 minutes \(limit ([\d,]+) ms\)\.$/,(e,t,a)=>`p95 ${t} ms selama 10 menit terakhir (batas ${a} ms).`]],DeploymentFailed:[[/^Production deployment \(no commit\) failed\.$/,()=>"Deploy production (tanpa commit) gagal."],[/^Production deployment (\S+) failed\.$/,(e,t)=>`Deploy production ${t} gagal.`]],DatabasePaused:[[/^Supabase project (.+) is paused\.$/,(e,t)=>`Project Supabase ${t} lagi di-pause.`]],CertExpiringSoon:[[/^The TLS certificate of (.+) expires in (-?\d+) days?\.$/,(e,t,a)=>r(a,`Sertifikat TLS ${t}`)]],DomainExpiringSoon:[[/^(.+) expires in (-?\d+) days?\.$/,(e,t,a)=>r(a,t)]],StorageAlmostFull:[[/^(.+) uses ([\d,]+) MB of ([\d,]+) MB \(([\d,]+)%\)\.$/,(e,t,a,r,i)=>`${t} pakai ${a} MB dari ${r} MB (${i}%).`]],NeonComputeHigh:[[/^(.+) used ([\d,]+) of ([\d,]+) CU-hours this month\.$/,(e,t,a,r)=>`${t} udah pakai ${a} dari ${r} CU-hours bulan ini.`]],FirestoreQuotaHigh:[[/^(.+) hit a Firestore quota \(RESOURCE_EXHAUSTED\)\.$/,(e,t)=>`${t} kena kuota Firestore (RESOURCE_EXHAUSTED).`],[/^(.+) read ([\d,]+) of ([\d,]+) documents today \(([\d,]+)%\)\.$/,(e,t,a,r,i)=>`${t} udah baca ${a} dari ${r} dokumen hari ini (${i}%).`]],AutoPauseRisk:[[/^No API traffic for (\d+) days?\. Supabase pauses free projects after about 7 days\.$/,(e,t)=>`Nggak ada traffic API selama ${a(t)}. Supabase nge-pause project free setelah sekitar 7 hari.`]],DnsProxiedToVercel:[[/^(.+) points to Vercel through the Cloudflare proxy\. Vercel recommends DNS only\.$/,(e,t)=>`${t} ngarah ke Vercel lewat proxy Cloudflare. Vercel nyaranin DNS only.`]],DbQuotaHigh:[[/^(.+): (.+) at ([\d,]+)% of the free plan\.$/,(e,t,a,r)=>`${t}: ${a.replace(/^Rows read/,"baris dibaca").replace(/^Rows written/,"baris ditulis").replace(/^Commands/,"command").replace(/^usage$/,"pemakaian").replace(/ today\b/," hari ini").replace(/\bof ([^ ]+(?: [A-Z]+)?)\b/,"dari $1").replace(/ this month\b/," bulan ini").replace(/\(account\)/,"(akun)")} udah ${r}% dari kuota gratis.`]],ComputeHigh:[[/^(.+) compute is back under the limits\.$/,(e,t)=>`Compute ${t} udah balik di bawah batas.`],[/^(.+): ((?:CPU|RAM|disk|connections) .+)\.$/,(e,t,a)=>`${t}: ${a.replace(/ for (\d+) min/g," selama $1 menit").replace(/\(limit /g,"(batas ").replace(/\bconnections (\d+) of (\d+)/g,"koneksi $1 dari $2")}.`]],CredentialExpiring:[[/^Google Drive access was removed \(invalid_grant\)\. Reconnect it\.$/,()=>"Akses Google Drive dicabut (invalid_grant). Sambungin lagi ya."],[/^The (\S+) credential (.+) has expired\.$/,(e,t,a)=>`Credential ${t} ${a} udah kedaluwarsa.`],[/^The (\S+) credential (.+) expires in (-?\d+) days?\.$/,(e,t,a,i)=>r(i,`Credential ${t} ${a}`)]],VulnerableDependency:[[/^(.+) has no high or critical dependency advisories\.$/,(e,t)=>`${t} nggak punya advisory dependency tinggi atau kritis.`],[/^(\d+) vulnerable packages? \(([^)]*)\): (.*)$/,(e,t,a,r)=>`${t} paket rentan (${a.replace(/\b(critical|high|moderate|low|unknown)\b/g,e=>n[e])}): ${r.replace(/ \(no fix yet\)/g," (belum ada fix)").replace(/, \+(\d+) more\.$/,", +$1 lagi.")}`]]};function o(e,t){for(let[a,r]of Object.hasOwn(s,e)?s[e]:[]){let e=a.exec(t);if(e)return r(...e)}return t}e.s(["f",0,o],765359);let l={en:{open:"FIRING",repeat:"REPEAT",resolve:"RESOLVED"},id:{open:"MUNCUL",repeat:"ULANG",resolve:"PULIH"}},d={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},c={en:{firing:"firing",resolved:"resolved",since:"since",open:"Open alerts",more:"more on the Alerts page",causedBy:"caused by",incident:"reports an incident",step:"Next step"},id:{firing:"aktif",resolved:"pulih",since:"sejak",open:"Buka Alerts",more:"lagi di halaman Alerts",causedBy:"gara-gara",incident:"lagi ada insiden",step:"Langkah"}},u=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),p={critical:0,warning:1,info:2};function g(e,t){let a=e.filter(e=>"resolve"!==e.kind).length,r=e.length-a;return[a?`${a} ${c[t].firing}`:"",r?`${r} ${c[t].resolved}`:""].filter(Boolean).join(", ")}function f(e,t,a,r,i,n){let s=[...e].sort((e,t)=>("resolve"===e.kind)-("resolve"===t.kind)||p[e.severity]-p[t.severity]),o=[r],l=r.length+i.length+40;for(let e=0;e<s.length;e++){let r=a(s[e]);if(l+r.length+1>t){o.push(n(s.length-e));break}o.push(r),l+=r.length+1}return o.push(i),o.join("\n").slice(0,t)}let h={en:{CollectorStale:"the watchdog already runs the collector itself every 5 minutes. Check the job on cron-job.org and the latest Vercel deploy.",DomainExpiringSoon:"renew the domain at its registrar; Watchbell can't pay for it.",StorageAlmostFull:"delete old data or shorten retention in that database; the free tier can't add storage.",NeonComputeHigh:"cut queries or make Neon auto-suspend sooner; the quota resets at the start of the month.",FirestoreQuotaHigh:"cut Firestore reads (cache in the app); the quota resets daily.",DbQuotaHigh:"cut queries to that database until its quota resets.",ComputeHigh:"check the Pool card on the Supabase page (idle connections close automatically at 10 of 15); for CPU or disk, look for heavy queries.",DnsProxiedToVercel:"turn off the proxy (orange cloud) for that record in Cloudflare; Vercel needs DNS only.",CredentialExpiring:"create a new token and replace it in Settings → Connections before it expires."},id:{CollectorStale:"watchdog udah jalanin collector sendiri tiap 5 menit. Cek job di cron-job.org dan deploy terakhir di Vercel.",DomainExpiringSoon:"perpanjang domain di registrar-nya, Watchbell nggak bisa bayar.",StorageAlmostFull:"hapus data lama atau pendekin retensi di database itu, free tier nggak bisa nambah storage.",NeonComputeHigh:"kurangin query atau percepat auto-suspend Neon, kuota reset awal bulan.",FirestoreQuotaHigh:"kurangin read Firestore (cache di app), kuota reset tiap hari.",DbQuotaHigh:"kurangin query ke database itu sampai kuotanya reset.",ComputeHigh:"cek kartu Pool di halaman Supabase (koneksi nganggur ditutup otomatis di 10 dari 15), kalau CPU/disk cari query yang berat.",DnsProxiedToVercel:"matiin proxy (awan oranye) record itu di Cloudflare, Vercel butuh DNS only.",CredentialExpiring:"bikin token baru dan ganti di Settings → Connections sebelum habis."}};e.s(["Z",0,d,"l",0,function(e,a,r,i="en"){let n=`${r.replace(/\/+$/,"")}/alerts`,s=c[i],p=e=>`${l[i][e.kind]} \xb7 ${d[i][e.severity]} \xb7 `,m=e=>"id"===i?o(e.ruleKey,e.message):e.message,k=e=>"resolve"===e.kind?null:((e,t="en")=>{let a=Object.hasOwn(h[t],e)?h[t][e]:void 0;return a?`${c[t].step}: ${a}`:null})(e.ruleKey,i),$=e=>[e.causedBy?`${s.causedBy} ${e.causedBy}`:"",e.provider?`${e.provider} ${s.incident}`:""].filter(Boolean).join(" · "),y=e=>`
2
+ +${e} ${s.more}`;return{telegram:f(e,4096,e=>`
3
+ <b>${p(e)}${u(e.ruleKey)} \xb7 ${u(e.title)}</b>
4
+ ${u(m(e))}${$(e)?`
5
+ <i>${u($(e))}</i>`:""}${k(e)?`
6
+ 👉 ${u(k(e))}`:""}
7
+ ${s.since} ${(0,t.U)(e.startedAt)} ${(0,t.J)(e.startedAt)}`,`<b>Watchbell</b>: ${g(e,i)} \xb7 ${(0,t.U)(a)} ${(0,t.J)(a)}`,`
8
+ <a href="${u(n)}">${s.open}</a>`,y),discord:f(e,2e3,e=>`
9
+ **${p(e)}${e.ruleKey} \xb7 ${e.title.replace(/[*_`~|\[\]<>]/g,"")}**
10
+ ${m(e).replace(/[*_`~|\[\]<>]/g,"")}${$(e)?`
11
+ _${$(e)}_`:""}${k(e)?`
12
+ 👉 ${k(e)}`:""}`,`**Watchbell**: ${g(e,i)} \xb7 ${(0,t.U)(a)} ${(0,t.J)(a)}`,`
13
+ ${n}`,y)}},"H",0,u],220642)},895625,e=>{var t=e.i(971724),a=e.i(105954),r=e.i(140561),i=e.i(600205),n=e.i(77193);let s=t.z.object({COLLECTOR_SECRET:a.z.string().min(32),CRON_SECRET:a.z.string().min(16),QSTASH_CURRENT_SIGNING_KEY:a.z.string().min(10),QSTASH_NEXT_SIGNING_KEY:a.z.string().min(10)}),o=s.extend({QSTASH_CURRENT_SIGNING_KEY:r.z.union([i.z.literal(""),a.z.string().min(10)]).default(""),QSTASH_NEXT_SIGNING_KEY:r.z.union([i.z.literal(""),a.z.string().min(10)]).default("")}),l=!1;e.s(["f",0,function(){try{var e=process.env;let t=("selfhost"===(0,n.c)(e)?o:s).safeParse(e);if(!t.success)throw Error(`Missing or invalid scheduler settings: ${t.error.issues.map(e=>e.path.join(".")).join(", ")}`);return t.data}catch(e){return l||(l=!0,console.warn(e instanceof Error?e.message:"Missing or invalid scheduler settings")),null}}])},629955,11827,e=>{var t=e.i(875225),a=e.i(349129),r=e.i(924924),i=e.i(618916),n=e.i(921991),s=e.i(656083),o=e.i(472832);let l="Pause requested · ";function d(e,t){if(!e.keep||"ACTIVE_HEALTHY"!==e.status)return!1;let a=e.lastTraffic??e.trackedSince;return t.getTime()-a.getTime()>=432e6}function c(e,t){return e.autoRestore?"INACTIVE"!==e.status?{act:!1,reason:"not-paused"}:e.accessDenied?{act:!1,reason:"denied"}:e.lastAutoRestoreAt&&t.getTime()-e.lastAutoRestoreAt.getTime()<216e5?{act:!1,reason:"too-soon"}:e.slotsLeft<=0?{act:!1,reason:"no-slot"}:{act:!0}:{act:!1,reason:"off"}}e.s(["B",0,l,"F",0,c,"v",0,d],11827);var u=e.i(326003),p=e.i(843448),g=e.i(547499),f=e.i(628448),h=e.i(342833);async function m(e){let a=await (0,r.f)().select({data:i.snapshots.data}).from(i.resources).innerJoin(i.snapshots,(0,t.u)(i.snapshots.resourceId,i.resources.id)).where((0,t.b)((0,t.u)(i.resources.accountId,e),(0,t.u)(i.resources.kind,"supabase_project"))),n=new Map;for(let{data:e}of a){let t=(0,u.k)(u.B,e);t.orgSlug&&void 0!==t.freeOrg&&n.set(t.orgSlug,t.freeOrg)}return n}let k=e=>`${e} day${1===e?"":"s"}`,$=e=>e instanceof Error?e.name:"unknown";async function y(e,a,n){try{let s=await (0,r.f)().select({k:i.keepActive,r:i.resources,s:i.snapshots,a:i.accounts}).from(i.keepActive).innerJoin(i.resources,(0,t.u)(i.resources.id,i.keepActive.resourceId)).innerJoin(i.accounts,(0,t.u)(i.accounts.id,i.resources.accountId)).leftJoin(i.snapshots,(0,t.u)(i.snapshots.resourceId,i.resources.id)).where((0,t.b)((0,t.u)(i.keepActive.keep,!0),(0,t.u)(i.resources.kind,"supabase_project"),(0,t.u)(i.resources.monitored,!0),(0,t.M)(i.resources.goneAt),(0,t.u)(i.accounts.status,"ok"))).limit(100),o=(0,g.f)().OPS_ENCRYPTION_KEY;for(let[t,{k:r,r:i,s:l,a:d}]of s.entries()){let c=a-Date.now()-500;if(c<250)return void n.push(`keep-active: ${s.length-t} left for the next run, time budget used`);if(!(r.lastKeepAliveAt&&e.getTime()-r.lastKeepAliveAt.getTime()<72e6))try{await w(i,l,d,e,o,c,n)}catch(e){console.warn("keep-active failed:",$(e)),n.push(`keep-active/${i.name}: ${$(e)}`)}}}catch(e){console.warn("keep-active failed:",$(e)),n.push(`keep-active: ${$(e)}`)}}async function w(e,a,o,l,c,g,m){let $=(0,u.k)(u.B,a?.data),y=$.lastTrafficAt?new Date($.lastTrafficAt):$.trafficAt?new Date(new Date($.trafficAt).getTime()-6048e5):null;if(!d({status:$.status??"",keep:!0,lastTraffic:y,trackedSince:e.firstSeenAt},l))return;let w=Math.floor((l.getTime()-(y??e.firstSeenAt).getTime())/864e5),v=(0,n.V)({ciphertext:o.credentialCiphertext,iv:o.credentialIv},c);if(!v)return void m.push(`keep-active/${o.label}: credential can't be read`);let b=await (0,h.i)(v,e.externalId,{timeoutMs:Math.min(5e3,g)});if(b.ok)await (0,r.f)().update(i.keepActive).set({lastKeepAliveAt:l}).where((0,t.u)(i.keepActive.resourceId,e.id)),await (0,s.f)([{at:l,type:"action",kind:"ok",resourceId:e.id,actorUserId:null,message:`Keep-alive: sent to ${e.name} (no API traffic for ${k(w)})`,detail:null}]);else{let t=Math.max(1,p.e-w);await (0,s.f)([{at:l,type:"action",kind:"warn",resourceId:e.id,actorUserId:null,reason:"KeepAliveFailed",message:`Keep-alive failed for ${e.name}; it may pause in about ${k(t)}`,detail:"scope"===b.kind?"This token can't run the read-only query (Database read).":(0,f.S)(b.error)}]),m.push(`keep-active/${e.name}: ${b.error}`)}}async function v(e){let[n]=await (0,r.f)().select({at:i.events.at}).from(i.events).where((0,t.b)((0,t.u)(i.events.reason,"Action"),(0,t.u)(i.events.resourceId,e),(0,t.u)(i.events.type,"action"),(0,t.y)(i.events.kind,["ok","err"]),(0,t.E)(i.events.actorUserId),(0,t.D)(i.events.message,`${l}%`))).orderBy((0,a.A)(i.events.at)).limit(1);return n?.at??null}async function b(){return(await (0,r.f)().select({id:i.keepActive.resourceId}).from(i.keepActive).where((0,t.u)(i.keepActive.autoRestore,!0)).limit(1)).length>0}async function A(e,a,l=1/0){let d=a.filter(e=>!!e.resourceId&&"INACTIVE"===e.status),u=()=>l-Date.now()-500;if(!d.length||250>u())return;let k=await (0,r.f)().select({k:i.keepActive,id:i.resources.id,name:i.resources.name,ref:i.resources.externalId,accountId:i.resources.accountId,label:i.accounts.label,lastTestAt:i.accounts.lastTestAt,ciphertext:i.accounts.credentialCiphertext,iv:i.accounts.credentialIv}).from(i.keepActive).innerJoin(i.resources,(0,t.u)(i.resources.id,i.keepActive.resourceId)).innerJoin(i.accounts,(0,t.u)(i.accounts.id,i.resources.accountId)).where((0,t.b)((0,t.u)(i.keepActive.autoRestore,!0),(0,t.y)(i.keepActive.resourceId,d.map(e=>e.resourceId)),(0,t.u)(i.resources.kind,"supabase_project"),(0,t.M)(i.resources.goneAt)));if(!k.length)return;let y=await (0,o.f)([...new Set(k.map(e=>e.accountId))]),w=new Map,b=new Map;for(let l of k)try{let d=a.filter(e=>e.accountId===l.accountId),k=d.find(e=>e.resourceId===l.id)?.orgSlug??"";if(!w.has(l.accountId)){let e=await m(l.accountId);w.set(l.accountId,e),b.set(l.accountId,(0,p._)(d.map(t=>({status:t.status,freeOrg:e.get(t.orgSlug??"")??null}))).left)}let $=!1===w.get(l.accountId).get(k),A=$?1/0:b.get(l.accountId),I=y.get(l.accountId),S=Math.max(l.k.updatedAt.getTime(),l.lastTestAt?.getTime()??0),T=I?.write==="denied"&&new Date(I.at).getTime()>S,x=c({status:"INACTIVE",autoRestore:!0,lastAutoRestoreAt:l.k.lastAutoRestoreAt,slotsLeft:A,accessDenied:T},e);if(!x.act){"no-slot"===x.reason&&await (0,s.f)([{at:e,type:"action",kind:"info",resourceId:l.id,actorUserId:null,reason:"AutoRestoreWaits",message:`Auto-restore: ${l.name} waits, account ${l.label} has no free slot`,detail:"Pause another project in this account, or restore it by hand once a slot is free."}]);continue}let C=await v(l.id);if(C&&C.getTime()>l.k.updatedAt.getTime())continue;let D=u();if(D<250)return;await (0,r.f)().update(i.keepActive).set({lastAutoRestoreAt:e}).where((0,t.u)(i.keepActive.resourceId,l.id));let E=(0,n.V)({ciphertext:l.ciphertext,iv:l.iv},(0,g.f)().OPS_ENCRYPTION_KEY);if(!E)continue;let j=await (0,h.G)(E,l.ref,{timeoutMs:Math.min(5e3,D)});j.ok?($||b.set(l.accountId,b.get(l.accountId)-1),await (0,o.y)(l.accountId,"ok"),await (0,s.f)([{at:e,type:"action",kind:"ok",resourceId:l.id,actorUserId:null,message:`Auto-restore: restoring ${l.name}`,detail:null}])):("scope"===j.kind&&await (0,o.y)(l.accountId,"denied"),await (0,s.f)([{at:e,type:"action",kind:"err",resourceId:l.id,actorUserId:null,message:`Auto-restore: ${l.name} couldn't be restored`,detail:"scope"===j.kind?`${(0,f.b)("supabase",{})} Auto-restore stops until then.`:(0,f.S)(j.error)}]))}catch(e){console.warn("auto-restore failed:",$(e))}}async function I(e,a,n=o.W,s=new Date){let l=await (0,o.q)(e.id,"keep-alive",a);if(l)return{ok:!1,error:l};let d=await (0,o.p)(a,"supabase_project");if(!d)return{ok:!1,error:"This project isn't watched any more, or its credential can't be read."};let[c]=await (0,r.f)().select({last:i.keepActive.lastKeepAliveAt}).from(i.keepActive).where((0,t.u)(i.keepActive.resourceId,a)).limit(1);if(c?.last&&s.getTime()-c.last.getTime()<72e6)return n({done:!1,message:"A keep-alive was already sent in the last 20 hours."},e,d.account.id);let u=d.resource.name,p=await (0,h.i)(d.token,d.resource.externalId,{timeoutMs:5e3});return p.ok&&await (0,r.f)().insert(i.keepActive).values({resourceId:a,lastKeepAliveAt:s}).onConflictDoUpdate({target:i.keepActive.resourceId,set:{lastKeepAliveAt:s}}),n(p.ok?{done:!0,message:`Keep-alive sent to ${u}.`,audit:{message:`Keep-alive sent \xb7 ${u}`,resourceId:a}}:{done:!1,failed:{ok:!1,kind:p.kind,error:"scope"===p.kind?"This token can't run the read-only query (Database read).":p.error,...p.status?{status:p.status}:{}},audit:{message:`Keep-alive failed \xb7 ${u}`,resourceId:a}},e,d.account.id)}e.s(["m",0,m,"z",0,A,"g",0,b,"v",0,I,"V",0,y,"G",0,function(e,t,a){return!1===t.get(a)?1/0:(0,p._)(e.map(e=>({status:e.status,freeOrg:t.get(e.orgSlug)??null}))).left}],629955)},483100,e=>{var t=e.i(875225),a=e.i(349129),r=e.i(518899),i=e.i(924924),n=e.i(618916),s=e.i(220642),o=e.i(921991),l=e.i(656083),d=e.i(209576),c=e.i(111970),u=e.i(762504),p=e.i(547499),g=e.i(224382),f=e.i(600273),h=e.i(968068),m=e.i(695811),k=e.i(633974),$=e.i(76012),y=e.i(298397),w=e.i(218331),v=e.i(146394);let b="digest.lastSentDay",A="digest.state";async function I(e){let[a]=await (0,i.f)().select().from(n.channels).where((0,t.u)(n.channels.kind,e)).limit(1);if(!a)return null;try{return{row:a,config:JSON.parse((0,o.K)({ciphertext:a.configCiphertext,iv:a.configIv},(0,p.f)().OPS_ENCRYPTION_KEY))}}catch{return null}}async function S(){let e=(0,h.f)(),[t,a]=await Promise.all([I("telegram"),I("discord")]),r=new Set;return e.telegramToken&&t?.row.enabled&&t.config?.chatId&&r.add("telegram"),a?.row.enabled&&a.config?.url&&r.add("discord"),{send:(r,i)=>"telegram"===r?(0,$.I)(e.telegramToken,t.config.chatId,i):(0,g.f)(a.config.url,i),configured:r}}async function T(){let e=(0,h.f)().telegramToken;if(!e)return null;let t=await I("telegram");return t?.row.enabled&&t.config?.chatId?{token:e,chatId:t.config.chatId}:null}async function x(){let e=await I("discord");return e?.row.enabled&&e.config?.url?{url:e.config.url}:null}let C=()=>(0,d.f)().catch(()=>y.a);async function D(e,o,l={}){var d;if(o-Date.now()<6e3)return{sent:0,dropped:0};let u=await (0,c.I)(),g=await (0,i.f)().select({a:n.alerts,channels:n.alertRules.channels}).from(n.alerts).innerJoin(n.alertRules,(0,t.u)(n.alertRules.key,n.alerts.ruleKey)).where((0,t.b)((0,t.E)(n.alerts.pending),r.B`(${n.alerts.pending} = 'resolve') = (${n.alerts.resolvedAt} is not null)`,(0,c.s)(u))).orderBy((0,a.M)(n.alerts.pendingSince)).limit(50);if(!g.length)return{sent:0,dropped:0};let f=new Set((await (0,i.f)().update(n.alerts).set({claimedAt:e}).where((d=g.map(e=>e.a.id),(0,t.b)((0,t.y)(n.alerts.id,d),(0,t.E)(n.alerts.pending),(0,t.F)((0,t.M)(n.alerts.claimedAt),(0,t.S)(n.alerts.claimedAt,new Date(e.getTime()-12e4)))))).returning({id:n.alerts.id})).map(e=>e.id)),h=g.filter(e=>f.has(e.a.id));if(!h.length)return{sent:0,dropped:0};let{send:k,configured:$}=l.sender??await S(),w=new Set(h.filter(({a:t})=>"resolve"!==t.pending&&(t.silencedUntilResolved||null!==t.silencedUntil&&t.silencedUntil.getTime()>e.getTime())).map(({a:e})=>e.id)),[v,b]=await Promise.all([C(),(0,m.B)()]),A=new Set;for(let a of["telegram","discord"]){if(!$.has(a))continue;let r=h.filter(e=>e.channels.includes(a)&&!w.has(e.a.id));if(!r.length)continue;let o=r.map(({a:e})=>{let t=(0,y.o)(e,v);return{kind:e.pending,ruleKey:e.ruleKey,severity:e.severity,title:t.title,message:t.message,startedAt:e.startedAt,causedBy:t.causedBy,provider:e.providerIncident}}),l=(0,s.l)(o,e,(0,p.f)().SITE_URL,b[a]),d=await k(a,(0,y.G)("telegram"===a?l.telegram:l.discord));await (0,i.f)().update(n.channels).set(d.ok?{lastSentAt:e,lastError:null}:{lastError:d.error}).where((0,t.u)(n.channels.kind,a)),d.ok&&r.forEach(({a:e})=>A.add(e.id))}let I=0,T=0,x=[];for(let{a,channels:r}of h){let s=r.some(e=>$.has(e)),o=null!==a.pendingSince&&e.getTime()-a.pendingSince.getTime()>18e5;A.has(a.id)?(I++,await (0,i.f)().update(n.alerts).set({pending:null,pendingSince:null,lastNotifiedAt:e,claimedAt:null,..."open"===a.pending?{notifiedOpen:!0}:{}}).where((0,t.u)(n.alerts.id,a.id))):w.has(a.id)||!s||o?(T++,await (0,i.f)().update(n.alerts).set({pending:null,claimedAt:null}).where((0,t.u)(n.alerts.id,a.id))):x.push(a.id)}return x.length&&await (0,i.f)().update(n.alerts).set({claimedAt:null}).where((0,t.y)(n.alerts.id,x)),{sent:I,dropped:T}}async function E(e){let s=new Date(e.getTime()-864e5),o=await (0,c.I)(),l=r.B`case ${n.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`,[d,p,g,f,h]=await Promise.all([(0,i.f)().select({ruleKey:n.alerts.ruleKey,severity:n.alerts.severity,title:n.alerts.title,message:n.alerts.message,resourceId:n.alerts.resourceId,startedAt:n.alerts.startedAt}).from(n.alerts).where((0,t.b)((0,t.M)(n.alerts.resolvedAt),(0,c.s)(o))).orderBy(l,(0,a.A)(n.alerts.startedAt)).limit(50),(0,i.f)().select({n:r.B`count(*)::int`}).from(n.alerts).where((0,t.B)(n.alerts.startedAt,s)),(0,i.f)().select({ruleKey:n.alerts.ruleKey,title:n.alerts.title,resourceId:n.alerts.resourceId,startedAt:n.alerts.startedAt,resolvedAt:n.alerts.resolvedAt}).from(n.alerts).where((0,t.b)((0,t.E)(n.alerts.resolvedAt),(0,t.B)(n.alerts.resolvedAt,s))).orderBy((0,a.A)(n.alerts.resolvedAt)).limit(20),(0,i.f)().select({id:n.resources.id,name:n.resources.name}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy(n.resources.name).limit(v.O.apps),(0,u.h)(e)]),m=f.map(e=>e.id),[k,$]=m.length?await Promise.all([(0,i.f)().select({id:n.monitors.resourceId,total:r.B`count(*)::int`,bad:r.B`(count(*) filter (where not ${n.checks.ok}))::int`}).from(n.checks).innerJoin(n.monitors,(0,t.u)(n.monitors.id,n.checks.monitorId)).where((0,t.b)((0,t.y)(n.monitors.resourceId,m),(0,t.B)(n.checks.at,s),(0,t.u)(n.checks.inMaintenance,!1))).groupBy(n.monitors.resourceId),(0,i.f)().select({id:n.storedLogs.resourceId,n:r.B`count(*)::int`}).from(n.storedLogs).where((0,t.b)((0,t.y)(n.storedLogs.resourceId,m),(0,t.B)(n.storedLogs.at,s))).groupBy(n.storedLogs.resourceId)]):[[],[]],w=new Map(k.map(e=>[e.id,e])),b=new Map($.map(e=>[e.id,e.n])),A=await C();return{now:e,opened:p[0]?.n??0,firing:d.map(({resourceId:e,...t})=>{let a=(0,y.o)({...t,resourceId:e,causedBy:null},A);return{...t,title:a.title,message:a.message}}),resolved:g.flatMap(e=>e.resolvedAt?[{ruleKey:e.ruleKey,title:(0,y.o)({title:e.title,message:"",causedBy:null,resourceId:e.resourceId},A).title,took:function(e,t){let a=Math.max(1,Math.round((t.getTime()-e.getTime())/6e4));if(a<60)return`${a} min`;let r=Math.floor(a/60);return r<24?`${r} h ${a%60} min`:`${Math.floor(r/24)} d ${r%24} h`}(e.startedAt,e.resolvedAt)}]:[]),apps:f.map(e=>{let t=w.get(e.id);return{name:e.name,uptime:t&&t.total>0?(t.total-t.bad)/t.total*100:null,errors:b.get(e.id)??0}}),providers:h.filter(e=>"ok"!==e.state).map(e=>({label:e.label,text:e.text}))}}async function j(e,a,r){await (0,i.f)().update(n.channels).set(a.ok?{lastSentAt:r,lastError:null}:{lastError:a.error}).where((0,t.u)(n.channels.kind,e))}async function _(e){let[t,a]=await Promise.all([E(e),(0,m.H)("email")]);return(0,f.J)({...t,siteUrl:(0,p.f)().SITE_URL},a)}async function N(e,a={}){let r=await (0,i.f)().select().from(n.settings).where((0,t.y)(n.settings.key,[b,A])),s=r.find(e=>e.key===b)?.value,o="string"==typeof s?s:null;if(!(0,f.A)(e,o))return;let d=(0,h.f)(),c=await I("email_digest");if(!d.resendKey||!d.digestFrom||!c?.row.enabled||!c.config?.to)return;let{resendKey:u,digestFrom:p}=d,g=c.config.to,m=(0,w.x)(e),$=await (0,f.K)(e,{lastSentDay:o,state:r.find(e=>e.key===A)?.value??null,build:a.build??(()=>_(e)),send:a.send??(e=>(0,k.f)(u,{from:p,to:g,...e,idempotencyKey:`digest-${m}`}))});$.acted&&($.result&&await j("email_digest",$.result,e),$.state?await (0,i.f)().insert(n.settings).values({key:A,value:$.state}).onConflictDoUpdate({target:n.settings.key,set:{value:$.state,updatedAt:e}}):await (0,i.f)().delete(n.settings).where((0,t.u)(n.settings.key,A)),$.sentDay&&await (0,i.f)().insert(n.settings).values({key:b,value:$.sentDay}).onConflictDoUpdate({target:n.settings.key,set:{value:$.sentDay,updatedAt:e}}),$.event&&await (0,l.f)([{type:"system",kind:"warn",message:$.event.message,detail:$.event.detail,resourceId:null,reason:"DigestFailed",at:e}]))}e.s(["q",0,D,"G",0,x,"P",0,j,"J",0,N,"Q",0,T],483100)},472832,628448,e=>{var t=e.i(875225),a=e.i(665044),r=e.i(924924),i=e.i(618916),n=e.i(921991),s=e.i(407602),o=e.i(547499),l=e.i(479301),d=e.i(189104);function c(e,t){return"member"===e?`Too many actions. Try again in ${(0,d.H)(t)}.`:"That was just done. Wait a minute before trying again."}function u(e){let t=e.replace(/\s+/g," ").trim();return t.length>200?`${t.slice(0,199)}…`:t}e.s(["G",0,"This changed since you opened it. Reload and try again.","z",0,c,"b",0,function(e,t){return"supabase"===e?"This token is read-only; replace it with one that has Project admin write.":"cloudflare"===e?'This Cloudflare token can\'t edit DNS; add "Zone → DNS → Edit" to it, or replace it with a token that has it.':"vercel"===e?`This token can't change projects in team ${t.team||"this team"}; replace it with one whose scope includes that team.`:`This API key can't manage project ${t.project||"this project"}; replace it with a personal or organization key, or a key for this project.`},"S",0,u],628448);var p=e.i(593111);let g="access.";async function f(e,a){if(!(0,l.f)(e))return null;let[s]=await (0,r.f)().select({r:i.resources,a:i.accounts}).from(i.resources).innerJoin(i.accounts,(0,t.u)(i.accounts.id,i.resources.accountId)).where((0,t.b)((0,t.u)(i.resources.id,e),(0,t.u)(i.resources.kind,a),(0,t.M)(i.resources.goneAt))).limit(1);if(!s)return null;let d=(0,n.V)({ciphertext:s.a.credentialCiphertext,iv:s.a.credentialIv},(0,o.f)().OPS_ENCRYPTION_KEY);return d?{resource:s.r,account:{id:s.a.id,label:s.a.label,provider:s.a.provider,scopeNote:s.a.scopeNote},token:d}:null}async function h(e,t,a){let r=await (0,p.f)(d.t.providerAction,e);if(!r.allowed)return c("member",r.retryAfter);let i=await (0,p.f)(d.t.actionTarget,`${t}:${a}`);return i.allowed?null:c("target",i.retryAfter)}async function m(e,t,a){let n={write:t,at:new Date().toISOString(),...a?{scope:a}:{}};await (0,r.f)().insert(i.settings).values({key:`${g}${e}`,value:n}).onConflictDoUpdate({target:i.settings.key,set:{value:n,updatedAt:new Date}})}async function k(e){let a=new Map,n=e.filter(l.f);if(0===n.length)return a;for(let e of(await (0,r.f)().select().from(i.settings).where((0,t.y)(i.settings.key,n.map(e=>`${g}${e}`))))){let t=e.value;t&&("ok"===t.write||"denied"===t.write)&&"string"==typeof t.at&&a.set(e.key.slice(g.length),{write:t.write,at:t.at,..."string"==typeof t.scope?{scope:t.scope}:{}})}return a}async function $(e,t,r,i={}){if(!("audit"in e))return{ok:!1,error:e.message};let n="failed"in e?e.failed:null,o="failed"in e?"":e.message,l=n?n.error:"failed"in e?void 0:e.audit.detail;try{await (0,s.f)({kind:n?"err":"ok",message:`${i.auditPrefix??""}${e.audit.message}`,resourceId:e.audit.resourceId,actorUserId:t.userId,...l?{detail:u(l)}:{}})}catch{console.warn("audit event failed")}if(!n||"scope"===n.kind)try{await m(r,n?"denied":"ok")}catch{console.warn("access write failed")}return!1!==i.refresh&&(0,a.refresh)(),n?{ok:!1,error:n.error}:{ok:!0,message:o}}e.s(["W",0,$,"p",0,f,"y",0,m,"q",0,h,"f",0,k],472832)},224382,600273,e=>{var t=e.i(425498),a=e.i(77193);let r=/^https:\/\/(?:(?:canary|ptb)\.)?discord(?:app)?\.com\/api\/webhooks\/\d{5,25}\/[\w-]{20,}$/;async function i(e,n,s={}){let o;if((0,a.W)())return{ok:!1,kind:"config",error:t.Y};if(r.test(e.trim())?null:"Paste the whole webhook URL from Discord.")return{ok:!1,kind:"config",error:"The saved Discord webhook URL isn't valid."};try{o=await (s.fetch??fetch)(e,{method:"POST",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(s.timeoutMs??5e3),cache:"no-store",body:JSON.stringify({content:n.slice(0,2e3),username:"Watchbell",allowed_mentions:{parse:[]}})})}catch{return{ok:!1,kind:"transient",error:"Discord didn't answer."}}if(204===o.status||o.ok)return{ok:!0};if(429===o.status){let e=await o.json().catch(()=>null),t=Math.ceil(e?.retry_after??5);return{ok:!1,kind:"transient",retryAfterS:t,error:`Discord asked us to wait ${t} s.`}}return 404===o.status||401===o.status?{ok:!1,kind:"config",error:"Discord says this webhook no longer exists."}:{ok:!1,kind:o.status>=500?"transient":"config",error:`Discord returned an error (${o.status}).`}}e.s(["f",0,i],224382);var n=e.i(220642),s=e.i(765359),o=e.i(218331),l=e.i(195191),d=e.i(298397);function c(e,t){return(0,o.M)(e,t)&&(0,o.z)(e).hour>=7}let u={en:{firing:"firing",opened:"opened",resolved:"resolved",last24:"in the last 24 hours.",stillHead:"Still firing",noFiring:"Nothing is firing.",resolvedHead:"Resolved",noResolved:"Nothing resolved.",appsHead:"Applications (24 h)",providersHead:"Providers",open:"Open alerts",after:"after",up:"up",took:e=>e,noChecks:"no checks",errors:e=>`${e} stored error${1===e?"":"s"}`},id:{firing:"aktif",opened:"baru",resolved:"pulih",last24:"dalam 24 jam terakhir.",stillHead:"Masih aktif",noFiring:"Nggak ada yang aktif.",resolvedHead:"Pulih",noResolved:"Nggak ada yang pulih.",appsHead:"Aplikasi (24 jam)",providersHead:"Provider",open:"Buka Alerts",after:"setelah",up:"aktif",took:e=>e.replace(/\b(\d+) min\b/g,"$1 menit").replace(/\b(\d+) h\b/g,"$1 jam").replace(/\b(\d+) d\b/g,"$1 hari"),noChecks:"belum ada cek",errors:e=>`${e} error tersimpan`}},p={May:"Mei",Aug:"Agu",Oct:"Okt",Dec:"Des"},g=[5,15,30,60];async function f(e,t){let a={acted:!1,state:t.state,sentDay:null,event:null,result:null};if(!c(e,t.lastSentDay))return a;let r=(0,o.x)(e),i=t.state&&t.state.day===r?t.state:null;if(i?.stopped)return{...a,state:i};if(i&&i.attempts>0){let t=(g[i.attempts-1]??g[g.length-1])*6e4;if(i.lastAttemptAt&&e.getTime()-new Date(i.lastAttemptAt).getTime()<t)return{...a,state:i}}i??={day:r,...await t.build(),attempts:0,lastAttemptAt:null,stopped:!1,lastError:null};let n=await t.send({subject:i.subject,html:i.html,text:i.text});if(n.ok)return{acted:!0,state:null,sentDay:r,event:null,result:n};let s=i.attempts+1,l="config"===n.kind||s>=5,d="config"===n.kind?`${n.error}. Fix it and the next digest goes out tomorrow.`:`${n.error} Gave up after ${s} attempts today.`;return{acted:!0,sentDay:null,result:n,state:{...i,attempts:s,lastAttemptAt:e.toISOString(),stopped:l,lastError:n.error},event:l?{message:"Daily digest not sent",detail:d}:null}}e.s(["J",0,function(e,t="en"){let a=u[t],r=`${e.siteUrl.replace(/\/+$/,"")}/alerts`,i=((e,t)=>{let{day:a,month:r}=(0,o.e)(e);return`${a} ${"id"===t?p[r]??r:r}`})(e.now,t),c=`${e.firing.length} ${a.firing}, ${e.opened} ${a.opened}, ${e.resolved.length} ${a.resolved}`,g=`Watchbell \xb7 ${i} \xb7 ${c}`,f=[...e.apps].sort((e,t)=>(e.uptime??101)-(t.uptime??101)||t.errors-e.errors||e.name.localeCompare(t.name)),h=e.firing.map(e=>`${n.Z[t][e.severity]} \xb7 ${e.ruleKey} \xb7 ${e.title}: ${"id"===t?(0,s.f)(e.ruleKey,e.message):e.message}`),m=e.resolved.map(e=>`${e.ruleKey} \xb7 ${e.title} (${a.after} ${a.took(e.took)})`),k=f.map(e=>`${e.name}: ${null===e.uptime?a.noChecks:`${(0,l.C)(e.uptime)} ${a.up}`}, ${a.errors(e.errors)}`),$=e.providers.map(e=>`${e.label}: ${e.text}`),y=[`Watchbell \xb7 ${i}`,`${c} ${a.last24}`,"",a.stillHead,...h.length?h.map(e=>`- ${e}`):[a.noFiring],"",a.resolvedHead,...m.length?m.map(e=>`- ${e}`):[a.noResolved],...k.length?["",a.appsHead,...k.map(e=>`- ${e}`)]:[],...$.length?["",a.providersHead,...$.map(e=>`- ${e}`)]:[],"",`${a.open}: ${r}`].join("\n"),w=e=>`<h3 style="font:600 14px system-ui,sans-serif;margin:18px 0 6px">${(0,n.H)(e)}</h3>`,v=(e,t)=>e.length?`<ul style="margin:0;padding-left:18px">${e.map(e=>`<li style="margin:2px 0">${(0,n.H)(e)}</li>`).join("")}</ul>`:`<p style="margin:0;color:#596170">${(0,n.H)(t)}</p>`,b=['<div style="font:14px/1.5 system-ui,sans-serif;color:#14171f;max-width:560px">',`<h2 style="font:600 16px system-ui,sans-serif;margin:0 0 4px">Watchbell \xb7 ${(0,n.H)(i)}</h2>`,`<p style="margin:0;color:#596170">${(0,n.H)(`${c} ${a.last24}`)}</p>`,w(a.stillHead),v(h,a.noFiring),w(a.resolvedHead),v(m,a.noResolved),...k.length?[w(a.appsHead),v(k,"")]:[],...$.length?[w(a.providersHead),v($,"")]:[],`<p style="margin:18px 0 0"><a href="${(0,n.H)(r).replace(/"/g,"&quot;")}" style="color:#1f45c9">${(0,n.H)(a.open)}</a></p>`,"</div>"].join("");return{subject:(0,d.G)(g),html:(0,d.G)(b),text:(0,d.G)(y)}},"A",0,c,"K",0,f],600273)},968068,e=>{e.s(["f",0,function(e=process.env){let t=e.TELEGRAM_BOT_TOKEN?.trim()??"",a=e.RESEND_API_KEY?.trim()??"",r=e.DIGEST_FROM?.trim()??"";return{telegramToken:/^\d+:[\w-]{20,}$/.test(t)?t:null,resendKey:a.startsWith("re_")?a:null,digestFrom:/<?[^\s<>@]+@[^\s<>@]+\.[^\s<>@]+>?$/.test(r)?r:null}}])},695811,e=>{var t=e.i(960049);function a(e){let t=e&&"object"==typeof e?e:null,a=t?t.lang:e,r=e=>{var r;return"string"==typeof(r=t&&e in t?t[e]:a)&&"id"===r.trim().toLowerCase()?"id":"en"};return{telegram:r("telegram"),discord:r("discord"),email:r("email")}}async function r(){try{return a(await (0,t.l)())}catch{return a(null)}}async function i(e="telegram"){return(await r())[e]}e.s(["H",0,i,"B",0,r,"t",0,function(e,t,a){return e[t][a]}])},633974,e=>{var t=e.i(425498),a=e.i(77193);async function r(e,i,n={}){let s;if((0,a.W)())return{ok:!1,kind:"config",error:t.Y};try{s=await (n.fetch??fetch)("https://api.resend.com/emails",{method:"POST",signal:AbortSignal.timeout(5e3),cache:"no-store",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","User-Agent":"OpsConsole/1.0","Idempotency-Key":i.idempotencyKey},body:JSON.stringify({from:i.from,to:[i.to],subject:i.subject,html:i.html,text:i.text})})}catch{return{ok:!1,kind:"transient",error:"Resend didn't answer."}}if(s.ok)return{ok:!0};let o=await s.json().catch(()=>null);return 429===s.status||s.status>=500?{ok:!1,kind:"transient",error:`Resend returned an error (${s.status}).`}:{ok:!1,kind:"config",error:`Resend: ${String(o?.message??s.status).slice(0,200)}`}}e.s(["f",0,r])},76012,e=>{var t=e.i(425498),a=e.i(77193);async function r(e,i,n,s,o=5e3){let l;if((0,a.W)())return{ok:!1,code:null,description:t.Y,retryAfter:null};try{l=await s(`https://api.telegram.org/bot${e}/${i}`,{...n,signal:AbortSignal.timeout(o),cache:"no-store"})}catch{return{ok:!1,code:null,description:"Telegram didn't answer.",retryAfter:null}}let d=await l.json().catch(()=>null);return d?.ok?{ok:!0,result:d.result}:{ok:!1,code:d?.error_code??l.status,description:String(d?.description??`HTTP ${l.status}`).slice(0,200),retryAfter:d?.parameters?.retry_after??null}}async function i(e,t,a,n={}){let s=await r(e,"sendMessage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:t,text:a,parse_mode:"HTML",link_preview_options:{is_disabled:!0},...n.replyMarkup?{reply_markup:n.replyMarkup}:{}})},n.fetch??fetch);return s.ok?{ok:!0}:429===s.code?{ok:!1,kind:"transient",retryAfterS:s.retryAfter??30,error:`Telegram asked us to wait ${s.retryAfter??30} s.`}:null===s.code||s.code>=500?{ok:!1,kind:"transient",error:null===s.code?s.description:`Telegram returned an error (${s.code}).`}:{ok:!1,kind:"config",error:`Telegram: ${s.description}`}}e.s(["I",0,i,"z",0,r])}]})();
14
+
15
+ //# sourceMappingURL=src_lib_1qo6t00wwitz6._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[422067,t=>{let e={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,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},r={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3};t.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"P",0,function(t,e,i){let r=Math.min(t,e-i);return r<1e3?null:r},"S",0,function(t,r,a){let n=0;return Object.keys(e).filter(s=>{let o,l,u=t[s]?new Date(t[s]).getTime():null;if(e[s]<=60)return null===u||!!a||r.getTime()-u>=1e3*e[s]-1e4;let d=(o=1e3*e[s],l=(i[s]??0)*1e3,Math.floor((r.getTime()+5e3-l)/o)*o+l);return(null===u||!(u>=d-5e3))&&(!(null===u||r.getTime()+5e3-d>=6e4)||!(n>=2)&&(n++,!0))})},"B",0,function(t,e,i){return!i||!t||e.getTime()-t.getTime()>=5e4},"z",0,function(t,e,i){return e-i>=(r[t]??0)}])},988294,593111,t=>{var e=t.i(875225),i=t.i(924924),r=t.i(618916),a=t.i(905685),n=t.i(422067),s=t.i(656083),o=t.i(125160),l=t.i(984125),u=t.i(189104),d=t.i(518899);async function g(t,a){let[n]=await (0,i.f)().insert(r.rateLimits).values({key:t,windowStart:a,count:1}).onConflictDoUpdate({target:[r.rateLimits.key,r.rateLimits.windowStart],set:{count:d.B`${r.rateLimits.count} + 1`}}).returning({count:r.rateLimits.count});if(1===n.count)try{await (0,i.f)().delete(r.rateLimits).where((0,e.S)(r.rateLimits.windowStart,new Date(Date.now()-864e5)))}catch{console.warn("rate limit sweep failed")}return n.count}function c(t,e){return(0,u.A)(t,e,{hit:g})}async function f(t,a,n){let s=(0,l.f)(t),[o]=await (0,i.f)().select({id:r.monitors.id}).from(r.monitors).where((0,e.b)((0,e.u)(r.monitors.tokenHash,s),(0,e.u)(r.monitors.kind,"heartbeat"))).limit(1);if(!o)return{status:"unknown"};let d=await c(u.t.ping,s);return d.allowed?(await (0,i.f)().update(r.monitors).set({lastPingAt:n,lastPingKind:a,updatedAt:n}).where((0,e.u)(r.monitors.id,o.id)),{status:"ok"}):{status:"limited",retryAfter:d.retryAfter}}async function m(t,l=()=>!1,u=!1,d){let g=(await (0,i.f)().select({m:r.monitors}).from(r.monitors).innerJoin(r.resources,(0,e.u)(r.resources.id,r.monitors.resourceId)).where((0,e.b)((0,e.u)(r.monitors.kind,"heartbeat"),(0,e.u)(r.monitors.paused,!1),(0,e.u)(r.monitors.ownerPaused,!1),(0,e.u)(r.resources.monitored,!0),(0,e.M)(r.resources.goneAt),...d?[(0,e.u)(r.monitors.id,d)]:[]))).filter(({m:e})=>void 0!==d||(0,n.B)(e.lastCheckedAt,t,u)),c=[],f=[];for(let{m:s}of g){let u=s.periodS??3600,g=s.graceS??600,m=(0,o.C)({lastPingAt:s.lastPingAt,lastPingKind:s.lastPingKind,periodS:u,graceS:g,createdAt:s.createdAt},t);if("unknown"===m.state)continue;let h=m.state!==s.state;(await (0,i.f)().update(r.monitors).set({state:m.state,failStreak:m.failStreak,lastCheckedAt:t,lastError:"ok"===m.state?null:m.text,...h?{stateSince:t}:{},updatedAt:t}).where((0,e.b)((0,e.u)(r.monitors.id,s.id),(0,e.u)(r.monitors.state,s.state),(0,e.u)(r.monitors.ownerPaused,!1),(0,e.u)(r.monitors.paused,!1),null===s.lastPingAt?(0,e.M)(r.monitors.lastPingAt):(0,e.u)(r.monitors.lastPingAt,s.lastPingAt),null===s.periodS?(0,e.M)(r.monitors.periodS):(0,e.u)(r.monitors.periodS,s.periodS),null===s.graceS?(0,e.M)(r.monitors.graceS):(0,e.u)(r.monitors.graceS,s.graceS))).returning({id:r.monitors.id})).length&&((void 0===d||(0,n.B)(s.lastCheckedAt,t,!0))&&f.push({monitorId:s.id,at:t,ok:"err"!==m.state,statusCode:null,latencyMs:null,error:"ok"===m.state?null:m.text,inMaintenance:l(s.id,s.resourceId)}),c.push((0,a.F)({resourceId:s.resourceId,path:s.name??"heartbeat",prev:s.state,next:m.state,code:null,error:m.text,at:t,heartbeat:!0})))}return f.length&&await (0,i.f)().insert(r.checks).values(f),await (0,s.f)(c),f.length}t.s(["f",0,c],593111),t.s(["_",0,f,"r",0,m],988294)},984125,t=>{var e=t.i(666680);t.s(["f",0,function(t){return(0,e.createHash)("sha256").update(t).digest("hex")}])},125160,t=>{var e=t.i(905685);let i=/^hb_[0-9a-f]{32}$/,r=t=>{let e=Math.max(1,Math.floor(t/6e4));if(e<60)return`${e} min`;let i=Math.floor(e/60);return i<48?`${i} h`:`${Math.floor(i/24)} days`};t.s(["C",0,function(t,i){let a=t=>({state:"err",text:`Down \xb7 ${t}`,failStreak:e.I}),n=1e3*t.periodS,s=1e3*t.graceS;if(!t.lastPingAt)return i.getTime()-t.createdAt.getTime()<=n+s?{state:"unknown",text:"Waiting for the first ping",failStreak:0}:a("never pinged");let o=i.getTime()-t.lastPingAt.getTime();return"fail"===t.lastPingKind?a("the job reported a failure"):"start"===t.lastPingKind&&o>s?a("started but didn't finish"):o<=n?{state:"ok",text:`Up \xb7 pinged ${r(o)} ago`,failStreak:0}:o<=n+s?{state:"warn",text:`Late \xb7 last ping ${r(o)} ago`,failStreak:1}:a(`no ping for ${r(o)}`)},"r",0,function(t){let[e,r,...a]=t;return e&&i.test(e)&&!a.length?void 0===r?{token:e,kind:"ok"}:"fail"===r||"start"===r?{token:e,kind:r}:null:null},"i",0,function(t){let e=String(t??"").match(/(?<![0-9a-z_])hb_[0-9a-f]{32}(?![0-9a-zA-Z])/g)??[];return 1===e.length?e[0]:null}])}]})();
1
+ (()=>{"use strict";module.exports=[422067,t=>{let e={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,alerts:60,digest:300},a={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},i={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3},s={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},n=["supabase"];t.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"P",0,function(t,e,a){let i=Math.min(t,e-a);return i<1e3?null:i},"S",0,function(t,i,r,o=new Set){var l,u;let d=0;return(l=Object.keys(e),u=o,l.filter(t=>{let e=s[t];return null===e||!u.has(e)||n.includes(t)})).filter(s=>{let n,o,l=t[s]?new Date(t[s]).getTime():null;if(e[s]<=60)return null===l||!!r||i.getTime()-l>=1e3*e[s]-1e4;let u=(n=1e3*e[s],o=(a[s]??0)*1e3,Math.floor((i.getTime()+5e3-o)/n)*n+o);return(null===l||!(l>=u-5e3))&&(!(null===l||i.getTime()+5e3-u>=6e4)||!(d>=2)&&(d++,!0))})},"$",0,(t,e)=>{let a=s[t];return null!==a&&e.has(a)&&n.includes(t)},"B",0,function(t,e,a){return!a||!t||e.getTime()-t.getTime()>=5e4},"z",0,function(t,e,a){return e-a>=(i[t]??0)}])},988294,593111,t=>{var e=t.i(875225),a=t.i(924924),i=t.i(618916),s=t.i(905685),n=t.i(422067),r=t.i(656083),o=t.i(125160),l=t.i(984125),u=t.i(189104),d=t.i(518899);async function g(t,s){let[n]=await (0,a.f)().insert(i.rateLimits).values({key:t,windowStart:s,count:1}).onConflictDoUpdate({target:[i.rateLimits.key,i.rateLimits.windowStart],set:{count:d.B`${i.rateLimits.count} + 1`}}).returning({count:i.rateLimits.count});if(1===n.count)try{await (0,a.f)().delete(i.rateLimits).where((0,e.S)(i.rateLimits.windowStart,new Date(Date.now()-864e5)))}catch{console.warn("rate limit sweep failed")}return n.count}function c(t,e){return(0,u.A)(t,e,{hit:g})}async function f(t,s,n){let r=(0,l.f)(t),[o]=await (0,a.f)().select({id:i.monitors.id}).from(i.monitors).where((0,e.b)((0,e.u)(i.monitors.tokenHash,r),(0,e.u)(i.monitors.kind,"heartbeat"))).limit(1);if(!o)return{status:"unknown"};let d=await c(u.t.ping,r);return d.allowed?(await (0,a.f)().update(i.monitors).set({lastPingAt:n,lastPingKind:s,updatedAt:n}).where((0,e.u)(i.monitors.id,o.id)),{status:"ok"}):{status:"limited",retryAfter:d.retryAfter}}async function m(t,l=()=>!1,u=!1,d){let g=(await (0,a.f)().select({m:i.monitors}).from(i.monitors).innerJoin(i.resources,(0,e.u)(i.resources.id,i.monitors.resourceId)).where((0,e.b)((0,e.u)(i.monitors.kind,"heartbeat"),(0,e.u)(i.monitors.paused,!1),(0,e.u)(i.monitors.ownerPaused,!1),(0,e.u)(i.resources.monitored,!0),(0,e.M)(i.resources.goneAt),...d?[(0,e.u)(i.monitors.id,d)]:[]))).filter(({m:e})=>void 0!==d||(0,n.B)(e.lastCheckedAt,t,u)),c=[],f=[];for(let{m:r}of g){let u=r.periodS??3600,g=r.graceS??600,m=(0,o.C)({lastPingAt:r.lastPingAt,lastPingKind:r.lastPingKind,periodS:u,graceS:g,createdAt:r.createdAt},t);if("unknown"===m.state)continue;let h=m.state!==r.state;(await (0,a.f)().update(i.monitors).set({state:m.state,failStreak:m.failStreak,lastCheckedAt:t,lastError:"ok"===m.state?null:m.text,...h?{stateSince:t}:{},updatedAt:t}).where((0,e.b)((0,e.u)(i.monitors.id,r.id),(0,e.u)(i.monitors.state,r.state),(0,e.u)(i.monitors.ownerPaused,!1),(0,e.u)(i.monitors.paused,!1),null===r.lastPingAt?(0,e.M)(i.monitors.lastPingAt):(0,e.u)(i.monitors.lastPingAt,r.lastPingAt),null===r.periodS?(0,e.M)(i.monitors.periodS):(0,e.u)(i.monitors.periodS,r.periodS),null===r.graceS?(0,e.M)(i.monitors.graceS):(0,e.u)(i.monitors.graceS,r.graceS))).returning({id:i.monitors.id})).length&&((void 0===d||(0,n.B)(r.lastCheckedAt,t,!0))&&f.push({monitorId:r.id,at:t,ok:"err"!==m.state,statusCode:null,latencyMs:null,error:"ok"===m.state?null:m.text,inMaintenance:l(r.id,r.resourceId)}),c.push((0,s.F)({resourceId:r.resourceId,path:r.name??"heartbeat",prev:r.state,next:m.state,code:null,error:m.text,at:t,heartbeat:!0})))}return f.length&&await (0,a.f)().insert(i.checks).values(f),await (0,r.f)(c),f.length}t.s(["f",0,c],593111),t.s(["_",0,f,"r",0,m],988294)},984125,t=>{var e=t.i(666680);t.s(["f",0,function(t){return(0,e.createHash)("sha256").update(t).digest("hex")}])},125160,t=>{var e=t.i(905685);let a=/^hb_[0-9a-f]{32}$/,i=t=>{let e=Math.max(1,Math.floor(t/6e4));if(e<60)return`${e} min`;let a=Math.floor(e/60);return a<48?`${a} h`:`${Math.floor(a/24)} days`};t.s(["C",0,function(t,a){let s=t=>({state:"err",text:`Down \xb7 ${t}`,failStreak:e.I}),n=1e3*t.periodS,r=1e3*t.graceS;if(!t.lastPingAt)return a.getTime()-t.createdAt.getTime()<=n+r?{state:"unknown",text:"Waiting for the first ping",failStreak:0}:s("never pinged");let o=a.getTime()-t.lastPingAt.getTime();return"fail"===t.lastPingKind?s("the job reported a failure"):"start"===t.lastPingKind&&o>r?s("started but didn't finish"):o<=n?{state:"ok",text:`Up \xb7 pinged ${i(o)} ago`,failStreak:0}:o<=n+r?{state:"warn",text:`Late \xb7 last ping ${i(o)} ago`,failStreak:1}:s(`no ping for ${i(o)}`)},"r",0,function(t){let[e,i,...s]=t;return e&&a.test(e)&&!s.length?void 0===i?{token:e,kind:"ok"}:"fail"===i||"start"===i?{token:e,kind:i}:null:null},"i",0,function(t){let e=String(t??"").match(/(?<![0-9a-z_])hb_[0-9a-f]{32}(?![0-9a-zA-Z])/g)??[];return 1===e.length?e[0]:null}])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_1sz77jjn7xl7o._.js.map
@@ -1,4 +1,4 @@
1
- (()=>{"use strict";module.exports=[751762,e=>{e.s(["f",0,function(e){let t=e instanceof Error&&e.cause instanceof Error?e.cause:e,r=(t instanceof Error?t.message:"").split("\n")[0].replace(/Bearer\s+\S+/gi,"Bearer [hidden]").trim()||"failed";return r.length>200?`${r.slice(0,200)}…`:r}])},381725,857897,36995,e=>{var t=e.i(875225),r=e.i(349129),s=e.i(260338),a=e.i(518899),o=e.i(924924),n=e.i(618916),l=e.i(442473),i=e.i(921991),u=e.i(656083),d=e.i(547499),c=e.i(911191),h=e.i(666680),p=e.i(971724),g=e.i(455744),m=e.i(469755),f=e.i(180473),w=e.i(105954),y=e.i(562810);e.s(["z",0,y],857897);var y=y,I=e.i(206033);let b=["debug","info","warning","error","fatal","trace"],v=p.z.object({rows:g.z.array(m.z.unknown()).catch([]),hasMoreRows:f.z.boolean().catch(!1)}),M=p.z.object({requestId:w.z.string().min(1),timestamp:w.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),y.NEVER):new Date(r)}),deploymentId:w.z.string().nullish().catch(null),requestMethod:w.z.string().nullish().catch(null),requestPath:w.z.string().nullish().catch(null),statusCode:I.z.number().nullish().catch(null),logs:g.z.array(m.z.unknown()).nullish().catch(null),events:g.z.array(m.z.unknown()).nullish().catch(null)}),q=p.z.object({level:w.z.string().nullish().catch(null),message:w.z.string().nullish().catch(null)}),N=p.z.object({source:w.z.string().nullish().catch(null)}),L=(e,t)=>(0,h.createHash)("sha1").update(`${e}
2
- ${t}`).digest("hex").slice(0,8),$=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function z(e,t,r,s){let a=(s.now??new Date).getTime(),o=Math.max(s.since.getTime(),a-864e5),n=s.until.getTime();if(o>=n)return{ok:!0,lines:[],more:!1};let i=s.maxRows??300,u=s.levels?new Set(s.levels):null,d=e=>!u||u.has(e),c=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],h=s.fetch??fetch,p=new AbortController,g=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,f=(0,l.X)(m),w=()=>p.signal.aborted&&!s.signal?.aborted?$("transient","Vercel's log history didn't answer in time."):$("transient","Reading Vercel's log history was cancelled."),y=[],I=!1;try{for(let a=0;a<3;a++){let l,u=new URLSearchParams({projectId:r,ownerId:t,page:String(a),startDate:String(o),endDate:String(n)});s.deploymentId&&u.set("deploymentId",s.deploymentId),s.environment&&u.set("environment",s.environment),c.length&&u.set("level",c.join(","));let p=null;try{let t=await Promise.race([h(`https://vercel.com/api/logs/request-logs?${u}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),f]);if(401===t.status||403===t.status)p=$("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=$("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=$("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{l=await Promise.race([t.json(),f])}catch(e){if(m.aborted)throw e;p=$("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=$("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?w():$("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(l),t=e.success&&l&&"object"==typeof l?Object.keys(l):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=M.safeParse(e);if(!s.success)return[];let a=s.data,o={at:a.timestamp,requestMethod:a.requestMethod??null,requestPath:a.requestPath??null,statusCode:a.statusCode??null,deploymentId:a.deploymentId??null,source:(a.events??[]).map(e=>N.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},n=[],l=new Map;for(let e of a.logs??[]){let r=q.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":b.includes(t)?t:"info"}(r.data.level),i=L(s,r.data.message),u=l.get(i)??0;l.set(i,u+1),t(s)&&n.push({rowId:`${a.requestId}:${i}${u?`#${u}`:""}`,level:s,message:r.data.message,...o})}if(null!=a.statusCode&&a.statusCode>=500&&t("error")&&!n.some(e=>"error"===e.level||"fatal"===e.level)&&n.push({rowId:`${a.requestId}:status`,level:"error",message:`${a.requestMethod??"GET"} ${a.requestPath??"/"} → ${a.statusCode}`,...o}),r&&0===n.length){let e=a.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&n.push({rowId:`${a.requestId}:request`,level:r,message:`${a.requestMethod??"GET"} ${a.requestPath??"/"}${e>0?` → ${e}`:""}`,...o})}return n}(t,d,s.requests));if(!(I=e.data.hasMoreRows)||y.length>=i)break}else p=$("format","Vercel's log history answered in a format the console doesn't recognise.");else p=$("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===a)return p;I=!0;break}}}finally{clearTimeout(g),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>i&&(y.splice(0,y.length-i),I=!0),{ok:!0,lines:y,more:I}}e.s(["f",0,z],36995);var A=e.i(46574);let k=["warning","error","fatal"],P="logs_read_cursor";async function S(e){let[r]=await (0,o.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))).limit(1),s=r?(0,i.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,d.f)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,o.f)().select({appId:n.resources.id,appName:n.resources.name,projectId:n.resources.externalId,meta:n.resources.meta,deploymentId:n.deployments.externalId}).from(n.deployments).innerJoin(n.resources,(0,t.u)(n.resources.id,n.deployments.resourceId)).where((0,t.b)((0,t.u)(n.deployments.isCurrent,!0),(0,t.u)(n.resources.accountId,r.id),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt),...e?[(0,t.u)(n.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let D=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,c.l)((0,c.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,c.n)(t.requestPath?(0,c.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function j(e,r,i){let d,[c]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,"logs.disabled")).limit(1);if(c?.value===!0)return;let h=await S(null);if(!h.length)return;let p=(0,A.q)((0,A.m)(e)),g=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,n:a.B`count(*)::int`}).from(n.storedLogs).where((0,t.b)((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId)),(0,t.B)(n.storedLogs.at,p))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,at:(0,s.f)(n.storedLogs.at)}).from(n.storedLogs).where((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.at])),[f]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,P)).limit(1),w=(d=f?.value)&&"object"==typeof d&&!Array.isArray(d)?Object.fromEntries(Object.entries(d).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,I=await (0,l.P)(h,3,t=>{if(Date.now()+8500>r)return Promise.resolve(null);let s=[m.get(t.appId)?.getTime(),w[t.appId]?Date.parse(w[t.appId]):void 0].filter(e=>void 0!==e),a=new Date(Math.max(s.length?Math.max(...s)-3e5:y,y));return z(t.token,t.teamId,t.projectId,{since:a,until:e,now:e,levels:k,environment:"production",maxRows:300})}),b=h.map((e,t)=>{let r=I[t];return r?r.ok?(r.more&&i.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>k.includes(e.level))):(i.push(`logs/${e.appName}: ${r.error}`),[]):[]}),v=b.flat().map(e=>e.rowId),M=new Set(v.length?(await (0,o.f)().select({rowId:n.storedLogs.rowId}).from(n.storedLogs).where((0,t.y)(n.storedLogs.rowId,v))).map(e=>e.rowId):[]),q=[];for(let[e,t]of h.entries()){let r=b[e].filter(e=>!M.has(e.rowId));if(!r.length)continue;let s=g.get(t.appId)??0,a=Math.max(0,1e3-s),l=(a>=r.length?r:r.slice(r.length-a)).map(e=>D(t,e));l.length&&await (0,o.f)().insert(n.storedLogs).values(l).onConflictDoNothing({target:n.storedLogs.rowId}),s+r.length>=1e3&&q.push(t.appId)}let N=h.filter((e,t)=>I[t]?.ok);if(N.length){let t={};for(let e of h)w[e.appId]&&(t[e.appId]=w[e.appId]);for(let r of N)t[r.appId]=e.toISOString();await (0,o.f)().insert(n.settings).values({key:P,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})}await (0,u.f)(q.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}async function C(e,s={}){let a=new Date(e.getTime()-(s.sinceMs??6048e5));return(await (0,o.f)().select({l:n.storedLogs,app:n.resources.name}).from(n.storedLogs).innerJoin(n.resources,(0,t.u)(n.resources.id,n.storedLogs.resourceId)).where((0,t.b)((0,t.B)(n.storedLogs.at,a),...s.appId?[(0,t.u)(n.storedLogs.resourceId,s.appId)]:[])).orderBy((0,r.A)(n.storedLogs.at)).limit(500)).map(({l:e,app:t})=>({id:e.rowId,at:e.at,level:e.level,app:t,method:e.requestMethod,path:e.requestPath,status:e.statusCode,message:e.message})).reverse()}e.s(["M",0,C,"g",0,S,"_",0,j],381725)},943816,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let a=t(r.total24h),o=null===r.visitors24h?null:t(r.visitors24h);if(null===a||null===o&&null!==r.visitors24h)return null;let n=36e5*Math.floor(s/36e5),l=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let a=36e5*Math.floor(r/36e5);l.set(a,(l.get(a)??0)+s)}return{enabled:!0,total:a,visitors:o,hours:Array.from({length:24},(e,t)=>{let r=n-(23-t)*36e5;return{at:new Date(r),views:l.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])}]})();
1
+ (()=>{"use strict";module.exports=[751762,e=>{e.s(["f",0,function(e){let t=e instanceof Error&&e.cause instanceof Error?e.cause:e,r=(t instanceof Error?t.message:"").split("\n")[0].replace(/Bearer\s+\S+/gi,"Bearer [hidden]").trim()||"failed";return r.length>200?`${r.slice(0,200)}…`:r}])},381725,857897,36995,e=>{var t=e.i(875225),r=e.i(349129),s=e.i(260338),a=e.i(518899),o=e.i(924924),n=e.i(618916),l=e.i(442473),i=e.i(921991),u=e.i(656083),d=e.i(547499),c=e.i(911191),h=e.i(666680),p=e.i(971724),g=e.i(455744),m=e.i(469755),f=e.i(180473),w=e.i(105954),y=e.i(562810);e.s(["z",0,y],857897);var y=y,I=e.i(206033);let b=["debug","info","warning","error","fatal","trace"],v=p.z.object({rows:g.z.array(m.z.unknown()).catch([]),hasMoreRows:f.z.boolean().catch(!1)}),M=p.z.object({requestId:w.z.string().min(1),timestamp:w.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),y.NEVER):new Date(r)}),deploymentId:w.z.string().nullish().catch(null),requestMethod:w.z.string().nullish().catch(null),requestPath:w.z.string().nullish().catch(null),statusCode:I.z.number().nullish().catch(null),logs:g.z.array(m.z.unknown()).nullish().catch(null),events:g.z.array(m.z.unknown()).nullish().catch(null)}),N=p.z.object({level:w.z.string().nullish().catch(null),message:w.z.string().nullish().catch(null)}),q=p.z.object({source:w.z.string().nullish().catch(null)}),L=(e,t)=>(0,h.createHash)("sha1").update(`${e}
2
+ ${t}`).digest("hex").slice(0,8),$=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function z(e,t,r,s){let a=(s.now??new Date).getTime(),o=Math.max(s.since.getTime(),a-864e5),n=s.until.getTime();if(o>=n)return{ok:!0,lines:[],more:!1};let i=s.maxRows??300,u=s.levels?new Set(s.levels):null,d=e=>!u||u.has(e),c=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],h=s.fetch??fetch,p=new AbortController,g=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,f=(0,l.X)(m),w=()=>p.signal.aborted&&!s.signal?.aborted?$("transient","Vercel's log history didn't answer in time."):$("transient","Reading Vercel's log history was cancelled."),y=[],I=!1;try{for(let a=0;a<3;a++){let l,u=new URLSearchParams({projectId:r,ownerId:t,page:String(a),startDate:String(o),endDate:String(n)});s.deploymentId&&u.set("deploymentId",s.deploymentId),s.environment&&u.set("environment",s.environment),c.length&&u.set("level",c.join(","));let p=null;try{let t=await Promise.race([h(`https://vercel.com/api/logs/request-logs?${u}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),f]);if(401===t.status||403===t.status)p=$("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=$("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=$("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{l=await Promise.race([t.json(),f])}catch(e){if(m.aborted)throw e;p=$("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=$("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?w():$("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(l),t=e.success&&l&&"object"==typeof l?Object.keys(l):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=M.safeParse(e);if(!s.success)return[];let a=s.data,o={at:a.timestamp,requestMethod:a.requestMethod??null,requestPath:a.requestPath??null,statusCode:a.statusCode??null,deploymentId:a.deploymentId??null,source:(a.events??[]).map(e=>q.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},n=[],l=new Map;for(let e of a.logs??[]){let r=N.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":b.includes(t)?t:"info"}(r.data.level),i=L(s,r.data.message),u=l.get(i)??0;l.set(i,u+1),t(s)&&n.push({rowId:`${a.requestId}:${i}${u?`#${u}`:""}`,level:s,message:r.data.message,...o})}if(null!=a.statusCode&&a.statusCode>=500&&t("error")&&!n.some(e=>"error"===e.level||"fatal"===e.level)&&n.push({rowId:`${a.requestId}:status`,level:"error",message:`${a.requestMethod??"GET"} ${a.requestPath??"/"} → ${a.statusCode}`,...o}),r&&0===n.length){let e=a.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&n.push({rowId:`${a.requestId}:request`,level:r,message:`${a.requestMethod??"GET"} ${a.requestPath??"/"}${e>0?` → ${e}`:""}`,...o})}return n}(t,d,s.requests));if(!(I=e.data.hasMoreRows)||y.length>=i)break}else p=$("format","Vercel's log history answered in a format the console doesn't recognise.");else p=$("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===a)return p;I=!0;break}}}finally{clearTimeout(g),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>i&&(y.splice(0,y.length-i),I=!0),{ok:!0,lines:y,more:I}}e.s(["f",0,z],36995);var A=e.i(218331);let k=["warning","error","fatal"],P="logs_read_cursor";async function S(e){let[r]=await (0,o.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))).limit(1),s=r?(0,i.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,d.f)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,o.f)().select({appId:n.resources.id,appName:n.resources.name,projectId:n.resources.externalId,meta:n.resources.meta,deploymentId:n.deployments.externalId}).from(n.deployments).innerJoin(n.resources,(0,t.u)(n.resources.id,n.deployments.resourceId)).where((0,t.b)((0,t.u)(n.deployments.isCurrent,!0),(0,t.u)(n.resources.accountId,r.id),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt),...e?[(0,t.u)(n.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let D=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,c.l)((0,c.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,c.n)(t.requestPath?(0,c.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function j(e,r,i){let d,[c]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,"logs.disabled")).limit(1);if(c?.value===!0)return;let h=await S(null);if(!h.length)return;let p=(0,A.y)((0,A.x)(e)),g=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,n:a.B`count(*)::int`}).from(n.storedLogs).where((0,t.b)((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId)),(0,t.B)(n.storedLogs.at,p))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,at:(0,s.f)(n.storedLogs.at)}).from(n.storedLogs).where((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.at])),[f]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,P)).limit(1),w=(d=f?.value)&&"object"==typeof d&&!Array.isArray(d)?Object.fromEntries(Object.entries(d).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,I=await (0,l.P)(h,3,t=>{if(Date.now()+8500>r)return Promise.resolve(null);let s=[m.get(t.appId)?.getTime(),w[t.appId]?Date.parse(w[t.appId]):void 0].filter(e=>void 0!==e),a=new Date(Math.max(s.length?Math.max(...s)-3e5:y,y));return z(t.token,t.teamId,t.projectId,{since:a,until:e,now:e,levels:k,environment:"production",maxRows:300})}),b=h.map((e,t)=>{let r=I[t];return r?r.ok?(r.more&&i.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>k.includes(e.level))):(i.push(`logs/${e.appName}: ${r.error}`),[]):[]}),v=b.flat().map(e=>e.rowId),M=new Set(v.length?(await (0,o.f)().select({rowId:n.storedLogs.rowId}).from(n.storedLogs).where((0,t.y)(n.storedLogs.rowId,v))).map(e=>e.rowId):[]),N=[];for(let[e,t]of h.entries()){let r=b[e].filter(e=>!M.has(e.rowId));if(!r.length)continue;let s=g.get(t.appId)??0,a=Math.max(0,1e3-s),l=(a>=r.length?r:r.slice(r.length-a)).map(e=>D(t,e));l.length&&await (0,o.f)().insert(n.storedLogs).values(l).onConflictDoNothing({target:n.storedLogs.rowId}),s+r.length>=1e3&&N.push(t.appId)}let q=h.filter((e,t)=>I[t]?.ok);if(q.length){let t={};for(let e of h)w[e.appId]&&(t[e.appId]=w[e.appId]);for(let r of q)t[r.appId]=e.toISOString();await (0,o.f)().insert(n.settings).values({key:P,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})}await (0,u.f)(N.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}async function C(e,s={}){let a=new Date(e.getTime()-(s.sinceMs??6048e5));return(await (0,o.f)().select({l:n.storedLogs,app:n.resources.name}).from(n.storedLogs).innerJoin(n.resources,(0,t.u)(n.resources.id,n.storedLogs.resourceId)).where((0,t.b)((0,t.B)(n.storedLogs.at,a),...s.appId?[(0,t.u)(n.storedLogs.resourceId,s.appId)]:[])).orderBy((0,r.A)(n.storedLogs.at)).limit(500)).map(({l:e,app:t})=>({id:e.rowId,at:e.at,level:e.level,app:t,method:e.requestMethod,path:e.requestPath,status:e.statusCode,message:e.message})).reverse()}e.s(["M",0,C,"g",0,S,"_",0,j],381725)},943816,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let a=t(r.total24h),o=null===r.visitors24h?null:t(r.visitors24h);if(null===a||null===o&&null!==r.visitors24h)return null;let n=36e5*Math.floor(s/36e5),l=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let a=36e5*Math.floor(r/36e5);l.set(a,(l.get(a)??0)+s)}return{enabled:!0,total:a,visitors:o,hours:Array.from({length:24},(e,t)=>{let r=n-(23-t)*36e5;return{at:new Date(r),views:l.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])}]})();
3
3
 
4
4
  //# sourceMappingURL=src_lib_1tzoqx44yogsk._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[61926,t=>{let e=t=>t?t.getTime():null;function r(t,e){return!t||"object"!=typeof t||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(t=>"string"==typeof t[1]&&new Date(t[1]).getTime()>e.getTime()))}t.s(["Q",0,function(t,e,r,n=new Set){let a=new Set(r.map(t=>`${t.resourceId}/${t.id}`));return t.flatMap(t=>{let r=e.get(t.externalId);return!r||n.has(r)||a.has(`${t.id}/${r}`)?[]:[{appId:t.id,deploymentId:r}]})},"E",0,function(t,r){return!t||t.state!==r.state||t.target!==r.target||t.branch!==r.branch||t.commitSha!==r.commitSha||t.commitMessage!==r.commitMessage||t.source!==r.source||t.url!==r.url||e(t.buildingAt)!==e(r.buildingAt)||e(t.readyAt)!==e(r.readyAt)},"Y",0,function(t,e,n){let a=new Date(n.getTime()+216e5).toISOString();return{...r(t,n),...Object.fromEntries(e.map(t=>[t,a]))}},"K",0,function(t){try{return new URL(t).pathname}catch{return"/"}},"a",0,function(t,e){let r=[...new Map(t.map(t=>[t.id,t])).values()].sort((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()),n=e??r[0]?.id??null,a=r.findIndex(t=>t.id===n);return{currentId:n,previousId:a>=0?r[a+1]?.id??null:null}},"S",0,(t,e)=>new Set(Object.keys(r(t,e)))])},195191,t=>{var e=t.i(218331);function r(t,e){let r=Math.max(0,e.getTime()-t.getTime());return r<6e4?"now":r<36e5?`${Math.floor(r/6e4)} min ago`:r<864e5?`${Math.floor(r/36e5)} h ago`:`${Math.floor(r/864e5)} d ago`}t.s(["m",0,function(t,e){for(let t of e)try{let e=new URL(t);if("https:"!==e.protocol&&"http:"!==e.protocol||!e.host)continue;return e.host}catch{}return`${t}.vercel.app`},"F",0,function(t){try{let e=new URL(t);return`${e.host}${e.pathname}`}catch{return t}},"$",0,function(t,n){if(!t)return"—";if("building"===t.state)return`building ${function(t){let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;let r=Math.floor(e/60);return r<60?`${r}m ${String(e%60).padStart(2,"0")}s`:`${Math.floor(r/60)}h ${String(r%60).padStart(2,"0")}m`}(n.getTime()-(t.buildingAt??t.createdAt).getTime())}`;let a=t.readyAt??t.createdAt;return"error"===t.state?`failed ${(0,e.m)(a,n)?(0,e.U)(a):r(a,n)}`:"canceled"===t.state?`canceled ${r(a,n)}`:r(a,n)},"C",0,t=>null===t?"—":`${(Math.floor(100*t+1e-6)/100).toFixed(2)}%`,"_",0,t=>t?t.slice(0,7):"—"])}]})();
2
+
3
+ //# sourceMappingURL=src_lib_1yd94hta5y1hx._.js.map