watchbell 1.2.1 → 1.2.3

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 (1081) hide show
  1. package/README.md +34 -11
  2. package/bin/watchbell.mjs +735 -45
  3. package/package.json +1 -1
  4. package/scripts/node-runtime.mjs +166 -0
  5. package/scripts/selfhost-log.mjs +116 -0
  6. package/server/.next/BUILD_ID +1 -1
  7. package/server/.next/build-manifest.json +105 -105
  8. package/server/.next/prerender-manifest.json +4 -4
  9. package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +32 -22
  11. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +76 -74
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  13. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +30 -20
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +75 -73
  17. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  18. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +28 -18
  21. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +75 -73
  22. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  23. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +34 -24
  26. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +75 -73
  27. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  28. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +30 -20
  31. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +75 -73
  32. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  33. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
  35. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +48 -38
  36. package/server/.next/server/app/(console)/(private)/ai/models/page.js +75 -73
  37. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  38. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
  40. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +28 -18
  41. package/server/.next/server/app/(console)/(private)/ai/page.js +75 -73
  42. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  43. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
  45. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +34 -24
  46. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +75 -73
  47. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  48. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
  50. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +40 -30
  51. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +76 -74
  52. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  53. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  54. package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
  55. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +30 -20
  56. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +77 -75
  57. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  58. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  59. package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
  60. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +30 -20
  61. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +79 -76
  62. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  63. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  64. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
  65. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +28 -18
  66. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +75 -73
  67. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  68. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  69. package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
  70. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +30 -20
  71. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +75 -73
  72. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  73. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  74. package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
  75. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +74 -44
  76. package/server/.next/server/app/(console)/alerts/page.js +78 -75
  77. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  78. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  79. package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
  80. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +62 -52
  81. package/server/.next/server/app/(console)/apps/[id]/page.js +81 -79
  82. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  83. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  84. package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
  85. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +34 -24
  86. package/server/.next/server/app/(console)/apps/page.js +77 -75
  87. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  88. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  89. package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
  90. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +34 -24
  91. package/server/.next/server/app/(console)/backups/page.js +78 -76
  92. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  93. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  94. package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
  95. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +28 -18
  96. package/server/.next/server/app/(console)/catalog/page.js +76 -74
  97. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  98. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  99. package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
  100. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +50 -40
  101. package/server/.next/server/app/(console)/connections/page.js +79 -77
  102. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  103. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  104. package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
  105. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +28 -18
  106. package/server/.next/server/app/(console)/d1/page.js +77 -75
  107. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  108. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  109. package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
  110. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +40 -30
  111. package/server/.next/server/app/(console)/deployments/page.js +77 -75
  112. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  113. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  114. package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
  115. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +42 -32
  116. package/server/.next/server/app/(console)/dns/page.js +80 -78
  117. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  118. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  119. package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
  120. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +32 -22
  121. package/server/.next/server/app/(console)/domains/page.js +79 -77
  122. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  123. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  124. package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
  125. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +28 -18
  126. package/server/.next/server/app/(console)/events/page.js +76 -74
  127. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  128. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  129. package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
  130. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +42 -32
  131. package/server/.next/server/app/(console)/firebase/page.js +78 -76
  132. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  133. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  134. package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
  135. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +30 -20
  136. package/server/.next/server/app/(console)/logs/page.js +75 -73
  137. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  138. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  139. package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +3 -3
  140. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +30 -20
  141. package/server/.next/server/app/(console)/manage/sections/page.js +75 -73
  142. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
  143. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
  144. package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
  145. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +50 -40
  146. package/server/.next/server/app/(console)/neon/page.js +80 -78
  147. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  148. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  149. package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
  150. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +46 -36
  151. package/server/.next/server/app/(console)/overview/page.js +84 -82
  152. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  153. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  154. package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
  155. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +30 -20
  156. package/server/.next/server/app/(console)/repos/[id]/page.js +78 -76
  157. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  158. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  159. package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
  160. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +28 -18
  161. package/server/.next/server/app/(console)/repos/page.js +75 -73
  162. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  163. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  164. package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
  165. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +48 -38
  166. package/server/.next/server/app/(console)/settings/page.js +76 -74
  167. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  168. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  169. package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
  170. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +42 -32
  171. package/server/.next/server/app/(console)/sql/page.js +75 -73
  172. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  173. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  174. package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
  175. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +28 -18
  176. package/server/.next/server/app/(console)/status/page.js +78 -75
  177. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  178. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  179. package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
  180. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +68 -58
  181. package/server/.next/server/app/(console)/supabase/page.js +85 -84
  182. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  183. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  184. package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
  185. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +28 -18
  186. package/server/.next/server/app/(console)/topology/page.js +77 -75
  187. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  188. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  189. package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
  190. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +28 -18
  191. package/server/.next/server/app/(console)/turso/page.js +76 -74
  192. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  193. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  194. package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
  195. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +28 -18
  196. package/server/.next/server/app/(console)/upstash/page.js +76 -74
  197. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  198. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  199. package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
  200. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +56 -46
  201. package/server/.next/server/app/(console)/uptime/page.js +78 -76
  202. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  203. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  204. package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
  205. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +38 -28
  206. package/server/.next/server/app/(console)/welcome/page.js +75 -73
  207. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  208. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  209. package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
  210. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  211. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  212. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  213. package/server/.next/server/app/_global-error.html +1 -1
  214. package/server/.next/server/app/_global-error.rsc +4 -4
  215. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +3 -3
  216. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
  217. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  218. package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
  219. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  220. package/server/.next/server/app/_not-found/page.js +14 -11
  221. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  222. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  223. package/server/.next/server/app/_not-found.html +1 -1
  224. package/server/.next/server/app/_not-found.rsc +29 -24
  225. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +29 -24
  226. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +27 -24
  227. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  228. package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
  229. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  230. package/server/.next/server/app/account/password/page.js +17 -18
  231. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  232. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  233. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  234. package/server/.next/server/app/api/collect/route.js +24 -24
  235. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  236. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  237. package/server/.next/server/app/api/daily/route.js +24 -24
  238. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  239. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  240. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  241. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  242. package/server/.next/server/app/api/telegram/webhook/route.js +23 -23
  243. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  244. package/server/.next/server/app/api/v1/advice/route.js +3 -3
  245. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  246. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
  247. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  248. package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
  249. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  250. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  251. package/server/.next/server/app/api/v1/ai/questions/route.js +3 -3
  252. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  253. package/server/.next/server/app/api/v1/mcp/route.js +2 -2
  254. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  255. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  256. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  257. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +3 -3
  258. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  259. package/server/.next/server/app/api/v1/status/route.js +3 -3
  260. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  261. package/server/.next/server/app/api/watchdog/route.js +13 -13
  262. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  263. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  264. package/server/.next/server/app/auth/google/callback/route.js +2 -2
  265. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  266. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  267. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  268. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  269. package/server/.next/server/app/invite/page/build-manifest.json +3 -3
  270. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  271. package/server/.next/server/app/invite/page.js +22 -22
  272. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  273. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  274. package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
  275. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  276. package/server/.next/server/app/mfa/page.js +31 -32
  277. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  278. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  279. package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
  280. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  281. package/server/.next/server/app/mfa/setup/page.js +31 -32
  282. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  283. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  284. package/server/.next/server/app/page/build-manifest.json +3 -3
  285. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  286. package/server/.next/server/app/page.js +14 -11
  287. package/server/.next/server/app/page.js.nft.json +1 -1
  288. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  289. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  290. package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
  291. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  292. package/server/.next/server/app/s/[slug]/page.js +21 -20
  293. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  294. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  295. package/server/.next/server/app/setup/page/build-manifest.json +3 -3
  296. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  297. package/server/.next/server/app/setup/page.js +20 -18
  298. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  299. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  300. package/server/.next/server/app/signin/page/build-manifest.json +3 -3
  301. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  302. package/server/.next/server/app/signin/page.js +28 -28
  303. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  304. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  305. package/server/.next/server/chunks/{[externals]__0dolpidprtypa._.js → [externals]__0y_x27mdj85p4._.js} +1 -1
  306. package/server/.next/server/chunks/{[externals]__0pfohce9kbhcc._.js → [externals]__1fzfzd0ia0sk6._.js} +1 -1
  307. package/server/.next/server/chunks/{[externals]__1ou2ofma806s1._.js → [externals]__1qqyrxnupegg3._.js} +1 -1
  308. package/server/.next/server/chunks/{[root-of-the-server]__0wbhuhlkn_ueu._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +2 -2
  309. package/server/.next/server/chunks/{[root-of-the-server]__1cbg6fvn16har._.js → [root-of-the-server]__0032rbj2s87zo._.js} +2 -2
  310. package/server/.next/server/chunks/{[root-of-the-server]__1-bvfylgbkjso._.js → [root-of-the-server]__02n6y6aa6qp1b._.js} +2 -2
  311. package/server/.next/server/chunks/{[root-of-the-server]__163-eo1vkbzx1._.js → [root-of-the-server]__03i6yscmtbhhg._.js} +2 -2
  312. package/server/.next/server/chunks/{[root-of-the-server]__1x9u88f9545aa._.js → [root-of-the-server]__05qcc-0e8z1u8._.js} +2 -2
  313. package/server/.next/server/chunks/{[root-of-the-server]__1p1k8nq50cwfy._.js → [root-of-the-server]__07bw6o0jc31yr._.js} +2 -2
  314. package/server/.next/server/chunks/{[root-of-the-server]__14pgqdfdkuopi._.js → [root-of-the-server]__07eo--c90cju2._.js} +2 -2
  315. package/server/.next/server/chunks/{[root-of-the-server]__0iysztx_xio84._.js → [root-of-the-server]__07mzeijv31avl._.js} +2 -2
  316. package/server/.next/server/chunks/{[root-of-the-server]__05ht00n_eiksb._.js → [root-of-the-server]__090in165mp6av._.js} +1 -1
  317. package/server/.next/server/chunks/{[root-of-the-server]__02s57amypj_ye._.js → [root-of-the-server]__09odxyho_9vk_._.js} +2 -2
  318. package/server/.next/server/chunks/{[root-of-the-server]__0403hy52a1qcu._.js → [root-of-the-server]__0bmyll20mg_gf._.js} +1 -1
  319. package/server/.next/server/chunks/{[root-of-the-server]__08k886n7y6f_3._.js → [root-of-the-server]__0btybbrsr4abf._.js} +1 -1
  320. package/server/.next/server/chunks/{[root-of-the-server]__0hvejly8-nlkq._.js → [root-of-the-server]__0c-33noc8yn1-._.js} +1 -1
  321. package/server/.next/server/chunks/{[root-of-the-server]__1xrt934xl5wbd._.js → [root-of-the-server]__0d99wclm2suox._.js} +2 -2
  322. package/server/.next/server/chunks/{[root-of-the-server]__0b136ghrklbbn._.js → [root-of-the-server]__0dsy-9ts8s-pn._.js} +1 -1
  323. package/server/.next/server/chunks/{[root-of-the-server]__01estsu5k8l4t._.js → [root-of-the-server]__0g1cifa7hd790._.js} +1 -1
  324. package/server/.next/server/chunks/{[root-of-the-server]__0pwn8go30dm_3._.js → [root-of-the-server]__0gox66sv0bx47._.js} +2 -2
  325. package/server/.next/server/chunks/{[root-of-the-server]__0w8qhgmo5c23i._.js → [root-of-the-server]__0hblpf7wqke-j._.js} +2 -2
  326. package/server/.next/server/chunks/{[root-of-the-server]__0kgmy-sltdtb_._.js → [root-of-the-server]__0hlyn_aj72sn5._.js} +2 -2
  327. package/server/.next/server/chunks/{[root-of-the-server]__0cskq__p3tja8._.js → [root-of-the-server]__0hnljrh9qi9t-._.js} +2 -2
  328. package/server/.next/server/chunks/{[root-of-the-server]__0xgl1cg3z00iz._.js → [root-of-the-server]__0hrtz5c_46jkw._.js} +1 -1
  329. package/server/.next/server/chunks/[root-of-the-server]__0iicsi0n7tfa5._.js +3 -0
  330. package/server/.next/server/chunks/{[root-of-the-server]__0dc0pz57q73va._.js → [root-of-the-server]__0kp0yx909wtab._.js} +1 -1
  331. package/server/.next/server/chunks/{[root-of-the-server]__04ruh9diphqtp._.js → [root-of-the-server]__0ku7nva3gxa9p._.js} +2 -2
  332. package/server/.next/server/chunks/{[root-of-the-server]__1w-yk3b07wcf1._.js → [root-of-the-server]__0l6_iao04u72h._.js} +2 -2
  333. package/server/.next/server/chunks/{[root-of-the-server]__1yzaj148hs9a1._.js → [root-of-the-server]__0l9ja3579qrju._.js} +2 -2
  334. package/server/.next/server/chunks/{[root-of-the-server]__0_64c807n6q9e._.js → [root-of-the-server]__0noc6l63d3l9w._.js} +2 -2
  335. package/server/.next/server/chunks/[root-of-the-server]__0nqbue6i0l3qs._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__04zuzs7oruu3o._.js → [root-of-the-server]__0nrg8zzqizk69._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__1lbmzw1j9jufm._.js → [root-of-the-server]__0oy0hcm48kl-q._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__0l5v9itfv9nhr._.js → [root-of-the-server]__0r1men25anfgb._.js} +1 -1
  339. package/server/.next/server/chunks/{[root-of-the-server]__05jzukkrp2pvu._.js → [root-of-the-server]__0s5b-tdq7rndj._.js} +2 -2
  340. package/server/.next/server/chunks/{[root-of-the-server]__1ry92m8xlcebk._.js → [root-of-the-server]__0v-gc-c_e8pwl._.js} +2 -2
  341. package/server/.next/server/chunks/[root-of-the-server]__0wp6j3irilu76._.js +3 -0
  342. package/server/.next/server/chunks/{[root-of-the-server]__0t9o5ca5bzg0p._.js → [root-of-the-server]__0x487cn6dsn12._.js} +2 -2
  343. package/server/.next/server/chunks/{[root-of-the-server]__11qvos_7nf8z8._.js → [root-of-the-server]__0yuyew8m9dc6-._.js} +1 -1
  344. package/server/.next/server/chunks/{[root-of-the-server]__1w9hei9xe1odr._.js → [root-of-the-server]__0zni_2pv2fdgb._.js} +2 -2
  345. package/server/.next/server/chunks/{[root-of-the-server]__10mob-6xfy8b0._.js → [root-of-the-server]__125fkw52kl2ty._.js} +2 -2
  346. package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +3 -0
  347. package/server/.next/server/chunks/{[root-of-the-server]__0m9648az7bkus._.js → [root-of-the-server]__16lfk1wg0ejaa._.js} +2 -2
  348. package/server/.next/server/chunks/{[root-of-the-server]__1vmls0bkau925._.js → [root-of-the-server]__16waq6rapvngp._.js} +2 -2
  349. package/server/.next/server/chunks/[root-of-the-server]__18eg-mk5loj_8._.js +3 -0
  350. package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +3 -0
  351. package/server/.next/server/chunks/{[root-of-the-server]__1vutb2z9gw8el._.js → [root-of-the-server]__1adw_bv2u89kc._.js} +1 -1
  352. package/server/.next/server/chunks/[root-of-the-server]__1c653f_8qzrpd._.js +3 -0
  353. package/server/.next/server/chunks/{[root-of-the-server]__00wz8qo4hgq2i._.js → [root-of-the-server]__1c78cu7kb9vkl._.js} +2 -2
  354. package/server/.next/server/chunks/[root-of-the-server]__1d5y0cc5mg_07._.js +3 -0
  355. package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +3 -0
  356. package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +3 -0
  357. package/server/.next/server/chunks/[root-of-the-server]__1hv3hk5182t-o._.js +3 -0
  358. package/server/.next/server/chunks/[root-of-the-server]__1j6xniw630fg0._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__1cwr95yi8preu._.js → [root-of-the-server]__1jsf0jf_ljpsm._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__1fj8d0drhw1yx._.js → [root-of-the-server]__1lerees-l5-6c._.js} +2 -2
  361. package/server/.next/server/chunks/{[root-of-the-server]__1sb8d4e5b5pdl._.js → [root-of-the-server]__1lj1f2w2-w8nw._.js} +2 -2
  362. package/server/.next/server/chunks/[root-of-the-server]__1nu5isiy7d832._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__0sfnhgc5reef1._.js → [root-of-the-server]__1ooxluowhatjt._.js} +2 -2
  364. package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +3 -0
  365. package/server/.next/server/chunks/{[root-of-the-server]__0i3bs_98vlttu._.js → [root-of-the-server]__1rpgddeg42i-q._.js} +2 -2
  366. package/server/.next/server/chunks/{[root-of-the-server]__1r9j5o80kocvz._.js → [root-of-the-server]__1s4bwjevs4hd-._.js} +2 -2
  367. package/server/.next/server/chunks/[root-of-the-server]__1uox9a0td-o0-._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__1vvg0ur3_7o0p._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +3 -0
  370. package/server/.next/server/chunks/{[root-of-the-server]__1zcp6yrat15t5._.js → [root-of-the-server]__1wpdlr4uh1un4._.js} +2 -2
  371. package/server/.next/server/chunks/[root-of-the-server]__1x7en4waq21dd._.js +3 -0
  372. package/server/.next/server/chunks/[root-of-the-server]__1x813cg-b9rls._.js +3 -0
  373. package/server/.next/server/chunks/{[root-of-the-server]__1147qf6sf3ru4._.js → [root-of-the-server]__1xl6_spngp6k3._.js} +2 -2
  374. package/server/.next/server/chunks/{[root-of-the-server]__1lfidps4tcfkg._.js → [root-of-the-server]__1y2qf8ltxhk0o._.js} +2 -2
  375. package/server/.next/server/chunks/[root-of-the-server]__1z_0gt-w6bx9v._.js +3 -0
  376. package/server/.next/server/chunks/{[root-of-the-server]__1w_wtn9h9eu93._.js → [root-of-the-server]__1zvoez8iapsem._.js} +2 -2
  377. package/server/.next/server/chunks/[root-of-the-server]__209g3_0l-y67u._.js +3 -0
  378. package/server/.next/server/chunks/[root-of-the-server]__20pu-tixzpeev._.js +3 -0
  379. package/server/.next/server/chunks/_0-fp57b-utmuw._.js +1 -1
  380. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  381. package/server/.next/server/chunks/_004j-wbs3yn84._.js +1 -1
  382. package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
  383. package/server/.next/server/chunks/_06lf75x-xhl7v._.js +1 -1
  384. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  385. package/server/.next/server/chunks/_0brb2454uen18._.js +1 -1
  386. package/server/.next/server/chunks/_0dkhprw6wsizx._.js +1 -1
  387. package/server/.next/server/chunks/_0duxuj4kmjibl._.js +46 -0
  388. package/server/.next/server/chunks/_0gz8ldqeokdtn._.js +1 -1
  389. package/server/.next/server/chunks/_0kmhvts35imzs._.js +4 -4
  390. package/server/.next/server/chunks/_0l_hz-8cj94r7._.js +3 -0
  391. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
  392. package/server/.next/server/chunks/_0ofzzim090ezo._.js +1 -1
  393. package/server/.next/server/chunks/_0q3ygdztfvqq6._.js +3 -0
  394. package/server/.next/server/chunks/{_1msi9fy888xna._.js → _0q9a3ettj_h2s._.js} +2 -2
  395. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +7 -7
  396. package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +3 -0
  397. package/server/.next/server/chunks/_0rwuppwyvemfj._.js +4 -4
  398. package/server/.next/server/chunks/{_1z8__gxixw-z-._.js → _0ry4553j-m5fp._.js} +3 -3
  399. package/server/.next/server/chunks/_0s2odl9xacsg0._.js +1 -1
  400. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
  401. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  402. package/server/.next/server/chunks/_0voowig3y32v1._.js +4 -4
  403. package/server/.next/server/chunks/_0wtlf0x_depae._.js +3 -0
  404. package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +2 -2
  405. package/server/.next/server/chunks/_0zj10_al6r59j._.js +26 -26
  406. package/server/.next/server/chunks/_1-pcsy2hkg0il._.js +3 -0
  407. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +1 -1
  408. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  409. package/server/.next/server/chunks/_113ebzq_9i756._.js +46 -0
  410. package/server/.next/server/chunks/{_219klbycazlx_._.js → _16urxazbgm48y._.js} +3 -3
  411. package/server/.next/server/chunks/_17aiz6zt-yv52._.js +2 -2
  412. package/server/.next/server/chunks/_18p-vw2zmdx9f._.js +1 -1
  413. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
  414. package/server/.next/server/chunks/_1_xsrlijknnh3._.js +1 -1
  415. package/server/.next/server/chunks/_1a5vma58w9ytn._.js +4 -4
  416. package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +26 -26
  417. package/server/.next/server/chunks/{_060yqv0qyo-lp._.js → _1g8r-7wcf8sy3._.js} +3 -3
  418. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +7 -7
  419. package/server/.next/server/chunks/_1h73gul79s8pi._.js +1 -1
  420. package/server/.next/server/chunks/_1ihndlef8r00f._.js +46 -0
  421. package/server/.next/server/chunks/_1mwb214-ablfo._.js +46 -0
  422. package/server/.next/server/chunks/_1ngkjn56qmi2x._.js +3 -0
  423. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +4 -4
  424. package/server/.next/server/chunks/_1xs2ya_n7kb04._.js +4 -4
  425. package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +1 -1
  426. package/server/.next/server/chunks/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
  427. package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
  428. package/server/.next/server/chunks/{src_0lcm1yhnzhn2d._.js → src_00ixvrjrk_2h4._.js} +2 -2
  429. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  430. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
  431. package/server/.next/server/chunks/{src_0v67kw2p2wd_c._.js → src_0tdn7mun5rvc6._.js} +2 -2
  432. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
  433. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  434. package/server/.next/server/chunks/{src_0390zcofy42lg._.js → src_10vyvp9vy_69h._.js} +2 -2
  435. package/server/.next/server/chunks/{src_1v3tf1ye2jzyk._.js → src_13n1vi7uew4iu._.js} +2 -2
  436. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  437. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
  438. package/server/.next/server/chunks/{src_07vqa8fdgu9ah._.js → src_1il7wg_qjxny7._.js} +2 -2
  439. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +7 -4
  440. package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
  441. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
  442. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +7 -4
  443. package/server/.next/server/chunks/src_20ilndq84j3b3._.js +3 -0
  444. package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +6 -0
  445. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  446. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  447. package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +6 -0
  448. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -9
  449. package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +6 -0
  450. package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +9 -0
  451. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -9
  452. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -9
  453. package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +9 -0
  454. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  455. package/server/.next/server/chunks/src_lib_1xwavi_m_li7p._.js +1 -1
  456. package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +6 -0
  457. package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  458. package/server/.next/server/chunks/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
  459. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
  460. package/server/.next/server/chunks/src_lib_data_advisor-db_ts_0rl1ug3iana24._.js +1 -1
  461. package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
  462. package/server/.next/server/chunks/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
  463. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +6 -6
  464. package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
  465. package/server/.next/server/chunks/src_lib_local-auth_setup_ts_10d8-k_e6pvft._.js +2 -2
  466. package/server/.next/server/chunks/src_lib_notify_telegram-bot_ts_18y40dkchmcqd._.js +1 -1
  467. package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  468. package/server/.next/server/chunks/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
  469. package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  470. package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
  471. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  472. package/server/.next/server/chunks/src_private_ai_gateway_ts_1qtr4nyb8kgnd._.js +2 -2
  473. package/server/.next/server/chunks/src_private_assist_provider-answer_ts_10qv42t-5046y._.js +1 -1
  474. package/server/.next/server/chunks/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
  475. package/server/.next/server/chunks/src_private_assist_questions-db_ts_1pc4g504t-qmu._.js +1 -1
  476. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  477. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +3 -0
  478. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +3 -0
  479. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +4 -0
  480. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +3 -0
  481. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +3 -0
  482. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +3 -0
  483. package/server/.next/server/chunks/ssr/{[externals]__0jv_q8g96gubg._.js → [externals]__00tbi838eotwu._.js} +1 -1
  484. package/server/.next/server/chunks/ssr/{[externals]__1hqh7fi0-rtlc._.js → [externals]__01kgu896o9-9t._.js} +1 -1
  485. package/server/.next/server/chunks/ssr/{[externals]__1neu6qld_ilyx._.js → [externals]__078uqm46tk5mo._.js} +1 -1
  486. package/server/.next/server/chunks/ssr/{[externals]__0yzs5m5hot2o2._.js → [externals]__0i0hmh-a743jn._.js} +1 -1
  487. package/server/.next/server/chunks/ssr/{[externals]__0et8619os7o06._.js → [externals]__0qc7l-41h018j._.js} +1 -1
  488. package/server/.next/server/chunks/ssr/[externals]__194b54tqm6qaq._.js +3 -0
  489. package/server/.next/server/chunks/ssr/[externals]__1_ttbfsdm3x1-._.js +3 -0
  490. package/server/.next/server/chunks/ssr/{[externals]__0x50_fipcza3k._.js → [externals]__1devsqn7ez77y._.js} +1 -1
  491. package/server/.next/server/chunks/ssr/[externals]__1prfp5pzeoflz._.js +3 -0
  492. package/server/.next/server/chunks/ssr/[externals]__1zxtjc2qr2epg._.js +3 -0
  493. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0oayb8dm0iu8k._.js → [root-of-the-server]__004q78ed0nf0_._.js} +2 -2
  494. package/server/.next/server/chunks/ssr/[root-of-the-server]__01zthkv8nrlct._.js +3 -0
  495. package/server/.next/server/chunks/ssr/{[root-of-the-server]__050d99bknjdvq._.js → [root-of-the-server]__04_prmhm_cts4._.js} +2 -2
  496. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-jx3t8dg8n5t._.js → [root-of-the-server]__04nc91kiy757l._.js} +2 -2
  497. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xwqrik2sugmi._.js → [root-of-the-server]__09blzlbsxqvy9._.js} +2 -2
  498. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-o5i-5pqjk5v._.js → [root-of-the-server]__0_6on4a5w76va._.js} +1 -1
  499. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tco2ec6ha1k6._.js → [root-of-the-server]__0a3n6wzq8xui9._.js} +2 -2
  500. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ptdec0sozaqm._.js → [root-of-the-server]__0an0wsglj2bhh._.js} +2 -2
  501. package/server/.next/server/chunks/ssr/{[root-of-the-server]__18xb7pbdmiyiz._.js → [root-of-the-server]__0ban7lwqlko9y._.js} +2 -2
  502. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khp_gsot3jh_._.js → [root-of-the-server]__0c_q6tvcmsmt9._.js} +2 -2
  503. package/server/.next/server/chunks/ssr/{[root-of-the-server]__00wwav5k7xmy0._.js → [root-of-the-server]__0ct4apye0sfmc._.js} +2 -2
  504. package/server/.next/server/chunks/ssr/{[root-of-the-server]__15keslh0ov5mv._.js → [root-of-the-server]__0d2ry7-u1cv8c._.js} +2 -2
  505. package/server/.next/server/chunks/ssr/[root-of-the-server]__0e8ya6wyy2plv._.js +3 -0
  506. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h0txd7z3sxq7._.js +3 -0
  507. package/server/.next/server/chunks/ssr/{[root-of-the-server]__08w3ad-xux1g4._.js → [root-of-the-server]__0h1vffivfh242._.js} +1 -1
  508. package/server/.next/server/chunks/ssr/{[root-of-the-server]__05hw89gap74cw._.js → [root-of-the-server]__0i0_6dnnf0hov._.js} +2 -2
  509. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khvq0xdah931._.js → [root-of-the-server]__0jgapr1cnvhi6._.js} +2 -2
  510. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_1130gx52k-9._.js → [root-of-the-server]__0jn0o2e32mwcp._.js} +2 -2
  511. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ojywxj06986-._.js → [root-of-the-server]__0k29b_kblv6sv._.js} +1 -1
  512. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ejxk0jlgi4eb._.js → [root-of-the-server]__0keo0-hwsnkw9._.js} +2 -2
  513. package/server/.next/server/chunks/ssr/[root-of-the-server]__0klc2dyzyjeba._.js +3 -0
  514. package/server/.next/server/chunks/ssr/{[root-of-the-server]__16jkttbe1yoai._.js → [root-of-the-server]__0l50vsk8enxzj._.js} +2 -2
  515. package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +2 -2
  516. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11ham42w_feik._.js → [root-of-the-server]__0o0cpvobd-u0n._.js} +1 -1
  517. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0kr_tvfgqtb-o._.js → [root-of-the-server]__0paolyy3xkow9._.js} +2 -2
  518. package/server/.next/server/chunks/ssr/[root-of-the-server]__0qnly-gjvfntd._.js +3 -0
  519. package/server/.next/server/chunks/ssr/[root-of-the-server]__0qqcz9ynsgmgl._.js +3 -0
  520. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1k_hi9mbd4_by._.js → [root-of-the-server]__0qwds8dkahd2_._.js} +1 -1
  521. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0bn_thc_vtf_i._.js → [root-of-the-server]__0rdf04ziqasfz._.js} +2 -2
  522. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_677ii9bahoy._.js → [root-of-the-server]__0ronqmm1xpldk._.js} +2 -2
  523. package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +3 -0
  524. package/server/.next/server/chunks/ssr/[root-of-the-server]__0uxychcp_pldy._.js +3 -0
  525. package/server/.next/server/chunks/ssr/[root-of-the-server]__0vnfx03nb5vku._.js +3 -0
  526. package/server/.next/server/chunks/ssr/[root-of-the-server]__0x7w-5h8or6qr._.js +3 -0
  527. package/server/.next/server/chunks/ssr/{[root-of-the-server]__15wwi1pda8ims._.js → [root-of-the-server]__0xpkzaqer75i-._.js} +2 -2
  528. package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
  529. package/server/.next/server/chunks/ssr/{[root-of-the-server]__04klr3-4qi7-t._.js → [root-of-the-server]__107gjehjdhw8p._.js} +2 -2
  530. package/server/.next/server/chunks/ssr/[root-of-the-server]__10kuehp7saz8h._.js +3 -0
  531. package/server/.next/server/chunks/ssr/[root-of-the-server]__113zn8es2wp67._.js +3 -0
  532. package/server/.next/server/chunks/ssr/{[root-of-the-server]__04tkts7c9ylma._.js → [root-of-the-server]__13fabu66slkfb._.js} +2 -2
  533. package/server/.next/server/chunks/ssr/[root-of-the-server]__14ept-_l8j32m._.js +1 -1
  534. package/server/.next/server/chunks/ssr/[root-of-the-server]__15s9onrf73-k8._.js +3 -0
  535. package/server/.next/server/chunks/ssr/{[root-of-the-server]__10rhqv5xq9jaj._.js → [root-of-the-server]__191t_hhtr-k27._.js} +2 -2
  536. package/server/.next/server/chunks/ssr/[root-of-the-server]__19l_r5vy3kxo1._.js +3 -0
  537. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1096-q3_trmm9._.js → [root-of-the-server]__1_b_k8wgqyxy7._.js} +2 -2
  538. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  539. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0exp042uqhyqs._.js → [root-of-the-server]__1a7x--bos5pv8._.js} +2 -2
  540. package/server/.next/server/chunks/ssr/[root-of-the-server]__1adcmllk9wt5l._.js +3 -0
  541. package/server/.next/server/chunks/ssr/[root-of-the-server]__1d5tbv79yjhqm._.js +3 -0
  542. package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +2 -2
  543. package/server/.next/server/chunks/ssr/[root-of-the-server]__1itgt83qo1e77._.js +3 -0
  544. package/server/.next/server/chunks/ssr/{[root-of-the-server]__12ymdwm8dphvu._.js → [root-of-the-server]__1mumjk3h0om80._.js} +2 -2
  545. package/server/.next/server/chunks/ssr/[root-of-the-server]__1nat8lbog5imr._.js +1 -1
  546. package/server/.next/server/chunks/ssr/[root-of-the-server]__1p2oghl9lfgmk._.js +3 -0
  547. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tcu4-eowz9vt._.js → [root-of-the-server]__1pwd99rch8xyl._.js} +2 -2
  548. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0llh-w4ta1qbp._.js → [root-of-the-server]__1sw2q1p1t59y8._.js} +2 -2
  549. package/server/.next/server/chunks/ssr/{[root-of-the-server]__06uaa_2zbg57p._.js → [root-of-the-server]__1tj-iwvrxfd1a._.js} +2 -2
  550. package/server/.next/server/chunks/ssr/{[root-of-the-server]__12-a3tcnfdcyq._.js → [root-of-the-server]__1u_13nhw3kuz3._.js} +2 -2
  551. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0tjab3yn0asf7._.js → [root-of-the-server]__1uojs0x42k86p._.js} +1 -1
  552. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1kieqcc6kdywx._.js → [root-of-the-server]__1yx8ayym979jd._.js} +2 -2
  553. package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmavjo5fhryp._.js +3 -0
  554. package/server/.next/server/chunks/ssr/[root-of-the-server]__20of6xa16fwqa._.js +1 -1
  555. package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +3 -0
  556. package/server/.next/server/chunks/ssr/{_04ltmruop4rt3._.js → _02eudwc8ieb2r._.js} +3 -3
  557. package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +3 -0
  558. package/server/.next/server/chunks/ssr/_03od6e8ibcxtf._.js +3 -0
  559. package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +3 -0
  560. package/server/.next/server/chunks/ssr/{_090fib2x989oc._.js → _08xqk3eibu5aw._.js} +2 -2
  561. package/server/.next/server/chunks/ssr/{_01irlde8uxva8._.js → _0_8v3-nq-b4ug._.js} +2 -2
  562. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  563. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  564. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  565. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  566. package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
  567. package/server/.next/server/chunks/ssr/{_1ag8axv14phju._.js → _0cbbks0ms7i_u._.js} +3 -3
  568. package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
  569. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  570. package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +4 -0
  571. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  572. package/server/.next/server/chunks/ssr/{_14n2368190qms._.js → _0fq8thje0tuch._.js} +2 -2
  573. package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +4 -0
  574. package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +4 -0
  575. package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +4 -0
  576. package/server/.next/server/chunks/ssr/{_0tqc0bsnybvva._.js → _0ipnb60-_660b._.js} +2 -2
  577. package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +3 -0
  578. package/server/.next/server/chunks/ssr/{_022u_nnwo1yb4._.js → _0kxkg0dbp42ai._.js} +2 -2
  579. package/server/.next/server/chunks/ssr/_0lmcrl8r9dg49._.js +1 -1
  580. package/server/.next/server/chunks/ssr/_0mp5aext18ijx._.js +3 -0
  581. package/server/.next/server/chunks/ssr/_0ns_087lx5abm._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  583. package/server/.next/server/chunks/ssr/{_18lgd6o04ugow._.js → _0oub-njkja8gu._.js} +3 -3
  584. package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +4 -0
  585. package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
  587. package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +3 -0
  588. package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +4 -0
  589. package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +4 -0
  590. package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_0wb79bnj96x0g._.js +3 -0
  592. package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
  593. package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +4 -0
  594. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +5 -5
  596. package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
  597. package/server/.next/server/chunks/ssr/_11llsmv578p2i._.js +3 -0
  598. package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +4 -0
  599. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  600. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  601. package/server/.next/server/chunks/ssr/_1_xsrlijknnh3._.js +1 -1
  602. package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +4 -0
  603. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  604. package/server/.next/server/chunks/ssr/_1de6e6l7599fp._.js +1 -1
  605. package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +4 -0
  606. package/server/.next/server/chunks/ssr/_1dqf3jmb24s37._.js +1 -1
  607. package/server/.next/server/chunks/ssr/_1e47r3tlad52r._.js +3 -0
  608. package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +4 -0
  609. package/server/.next/server/chunks/ssr/{_1w_rq6clcs0ft._.js → _1fuywfexex2s8._.js} +3 -3
  610. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  611. package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
  612. package/server/.next/server/chunks/ssr/_1h93joqd_-1og._.js +1 -1
  613. package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +4 -0
  614. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  615. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  616. package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +4 -0
  617. package/server/.next/server/chunks/ssr/{_0hmxyfx7su4uk._.js → _1m4km_w39x5e9._.js} +2 -2
  618. package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +4 -0
  619. package/server/.next/server/chunks/ssr/_1qdox4yn1u4pc._.js +1 -1
  620. package/server/.next/server/chunks/ssr/_1qdqc9j_skd1q._.js +1 -1
  621. package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
  622. package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +4 -0
  623. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  624. package/server/.next/server/chunks/ssr/_20wy2moxkzhf0._.js +3 -0
  625. package/server/.next/server/chunks/ssr/{_026w_ig6vy9bt._.js → _218164gkxgum_._.js} +2 -2
  626. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +3 -0
  627. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +3 -0
  628. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +3 -0
  629. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +3 -0
  630. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +3 -0
  631. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +3 -0
  632. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +3 -0
  633. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +3 -0
  634. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +3 -0
  635. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +3 -0
  636. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +3 -0
  637. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +3 -0
  638. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +3 -0
  639. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +3 -0
  640. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  641. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  642. package/server/.next/server/chunks/ssr/node_modules_0bqq4kab3lt4c._.js +3 -0
  643. package/server/.next/server/chunks/ssr/{node_modules_05z64qbskywkh._.js → node_modules_1-uce_v-roeci._.js} +1 -1
  644. package/server/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_index_parts_mjs_0wvx70_xziwkw._.js +3 -0
  645. package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
  646. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kkewzcx4540.js +3 -0
  647. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00t5_cu_8xco2.js +3 -0
  648. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_028rm32yw9745.js +3 -0
  649. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02tytjla8gfpw.js +3 -0
  650. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05tff2l0grv3d.js +3 -0
  651. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08qavwdx-gipt.js +3 -0
  652. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09jdr97vksmwk.js +3 -0
  653. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c3z69fbbz6-a.js +3 -0
  654. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d4hxwzkts-8z.js +3 -0
  655. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dq-zslzf2s94.js +3 -0
  656. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_1q_82vyl-q7u6.js → node_modules_next_dist_esm_build_templates_app-page_0e-rjmezj0qkk.js} +2 -2
  657. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0ivgh76j_tu2x.js → node_modules_next_dist_esm_build_templates_app-page_0e50mslm8ys4t.js} +2 -2
  658. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0esqulnipbhj7.js +3 -0
  659. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0icasmc2qvtfa.js +3 -0
  660. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0idohkgskbja5.js +3 -0
  661. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ii2a6tud83pj.js +3 -0
  662. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ivr2dcq7hh5t.js +3 -0
  663. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mcwghl-di24f.js +3 -0
  664. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0n05qgf2t9o6n.js +3 -0
  665. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ntej2bo95ns3.js +3 -0
  666. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0o1l93c0tj-p8.js +3 -0
  667. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ollx_iq739y6.js +3 -0
  668. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v16m5nv0x43b.js +3 -0
  669. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0wa_9ywaoqxrf.js +3 -0
  670. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0y94b-zvw0vrq.js +3 -0
  671. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ydzswpddtx9q.js +3 -0
  672. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zwpkpyuh6z99.js +3 -0
  673. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14t5-0abqp0sm.js +3 -0
  674. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18h3ke4tl-fzl.js +3 -0
  675. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_14-4y3i6c1vxc.js → node_modules_next_dist_esm_build_templates_app-page_19kqs-fc2i0zv.js} +2 -2
  676. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_s_25znkg8mz.js +3 -0
  677. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_ysa6fs0tt59.js +3 -0
  678. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b4hixza89i52.js +3 -0
  679. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1brrqdx4msjzf.js +3 -0
  680. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1e74o7dar2z12.js +3 -0
  681. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eqpqmdz9jgs0.js +3 -0
  682. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1f3932777ye1o.js +3 -0
  683. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kx1n5-wqjvko.js +3 -0
  684. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1l6umnmh89nvy.js +3 -0
  685. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mdyuengydtxm.js +3 -0
  686. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmm1wm-dfm_v.js +3 -0
  687. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t-fn8blx1hp8.js +3 -0
  688. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tf9xiz17b3cq.js +3 -0
  689. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tffdbiasnszd.js +3 -0
  690. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uisz6sszlhwp.js +3 -0
  691. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1umag21mbk-rs.js +3 -0
  692. package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0i3p3qfjihm3f.js → node_modules_next_dist_esm_build_templates_app-page_1vakvu0qtsn07.js} +2 -2
  693. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wmviw4zw6t_r.js +3 -0
  694. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xq449tjypb4s.js +3 -0
  695. package/server/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
  696. package/server/.next/server/chunks/ssr/src_02ynbzyh8nn02._.js +3 -0
  697. package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +3 -0
  698. package/server/.next/server/chunks/ssr/{src_0oagnv9_4qww7._.js → src_05kvmrkq5nfyh._.js} +2 -2
  699. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  700. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  701. package/server/.next/server/chunks/ssr/{src_0905fjqu0qv57._.js → src_097wa6oc_utgr._.js} +2 -2
  702. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +6 -3
  703. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +3 -0
  705. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  707. package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  710. package/server/.next/server/chunks/ssr/{src_071xsnvnzlvj8._.js → src_1751lvujjc-tz._.js} +2 -2
  711. package/server/.next/server/chunks/ssr/src_1f1x6508qetmp._.js +3 -0
  712. package/server/.next/server/chunks/ssr/{src_1nse4o3frj33x._.js → src_1fomo1_as1-ea._.js} +2 -2
  713. package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +1 -1
  714. package/server/.next/server/chunks/ssr/src_1pd5lqhm1x4yf._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
  716. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  717. package/server/.next/server/chunks/ssr/src_1sv5tf2pk5-pn._.js +3 -0
  718. package/server/.next/server/chunks/ssr/{src_0widudneyf0oq._.js → src_1wnx8vxv7nd04._.js} +2 -2
  719. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +2 -2
  724. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_app_(console)_0p2-zm5eewkqo._.js +3 -0
  728. package/server/.next/server/chunks/ssr/src_app_(console)_1za4o0--zhso5._.js +3 -0
  729. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  731. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1jme7fm7ej_lr._.js +3 -0
  732. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  733. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  734. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  735. package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +1 -1
  736. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  737. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
  738. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  739. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  740. package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
  741. package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
  742. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  743. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  744. package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
  745. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
  746. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  747. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +1 -1
  748. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
  749. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  750. package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
  751. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  752. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  753. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  754. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  755. package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
  756. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  757. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  758. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  759. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  760. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  761. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  762. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  763. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  764. package/server/.next/server/chunks/ssr/{src_app_signin_06v-xlrxfp079._.js → src_app_signin_11vigmz4xm91m._.js} +2 -2
  765. package/server/.next/server/chunks/ssr/src_components_0-x11r8_844pu._.js +1 -1
  766. package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
  767. package/server/.next/server/chunks/ssr/src_components_0_xymno8nakru._.js +3 -0
  768. package/server/.next/server/chunks/ssr/src_components_0ozvphxxwb7d-._.js +3 -0
  769. package/server/.next/server/chunks/ssr/src_components_0tmtbf2etsx03._.js +1 -1
  770. package/server/.next/server/chunks/ssr/src_components_charts_tsx_0u0c5sxi3-7ug._.js +1 -1
  771. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  772. package/server/.next/server/chunks/ssr/src_components_live_tsx_1p2s3b807w0jt._.js +1 -1
  773. package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
  774. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +7 -1
  775. package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
  776. package/server/.next/server/chunks/ssr/src_lib_1xwavi_m_li7p._.js +1 -1
  777. package/server/.next/server/chunks/ssr/src_lib_1zgor_vrwl5kt._.js +5 -0
  778. package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
  779. package/server/.next/server/chunks/ssr/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
  780. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  781. package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +3 -0
  782. package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
  783. package/server/.next/server/chunks/ssr/src_lib_data_github-db_ts_02xuh84m-__8z._.js +1 -1
  784. package/server/.next/server/chunks/ssr/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
  785. package/server/.next/server/chunks/ssr/{src_lib_demo_15okweo0amos4._.js → src_lib_demo_07uq47fhms-3d._.js} +2 -2
  786. package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
  787. package/server/.next/server/chunks/ssr/src_lib_local-auth_setup_ts_05zj7z33ne4f5._.js +1 -1
  788. package/server/.next/server/chunks/ssr/src_lib_security_node-runtime_ts_1jei00s21d6v0._.js +3 -0
  789. package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
  790. package/server/.next/server/chunks/ssr/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
  791. package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
  792. package/server/.next/server/chunks/ssr/src_lib_view_network_ts_0toa7t-gw9cup._.js +1 -1
  793. package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +1 -1
  794. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  795. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  796. package/server/.next/server/chunks/ssr/src_private_actions_telegram-approvals_ts_14gvz6qi_j4aa._.js +1 -1
  797. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  798. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  799. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +6 -6
  800. package/server/.next/server/chunks/ssr/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
  801. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  802. package/server/.next/server/middleware-build-manifest.js +105 -105
  803. package/server/.next/server/pages/404.html +1 -1
  804. package/server/.next/server/pages/500.html +1 -1
  805. package/server/.next/server/preview-props.json +3 -3
  806. package/server/.next/server/server-reference-manifest.js +1 -1
  807. package/server/.next/server/server-reference-manifest.json +860 -674
  808. package/server/.next/static/chunks/04ospu_w--6p9.js +1 -0
  809. package/server/.next/static/chunks/06a83nde7riq-.js +1 -0
  810. package/server/.next/static/chunks/088c6cw88jmlb.js +7 -0
  811. package/server/.next/static/chunks/08f1euchlacye.js +1 -0
  812. package/server/.next/static/chunks/09e-vdlax9bp6.js +1 -0
  813. package/server/.next/static/chunks/{0rgn3-cks0udn.js → 0a-rekt06v0sv.js} +1 -1
  814. package/server/.next/static/chunks/{3zaeh5nbkqpyj.js → 0a4b85ckxbprh.js} +1 -1
  815. package/server/.next/static/chunks/0buwzrf7dpagn.js +1 -0
  816. package/server/.next/static/chunks/0dmql-jz-o69o.js +1 -0
  817. package/server/.next/static/chunks/0iyozrryj1w49.js +1 -0
  818. package/server/.next/static/chunks/{0r2z8zg4n43pd.js → 0jf5lpzwq4vh1.js} +1 -1
  819. package/server/.next/static/chunks/0p6hja9octhrd.js +1 -0
  820. package/server/.next/static/chunks/{2wd8yh_ni0lqj.js → 0qoql97izcn4l.js} +1 -1
  821. package/server/.next/static/chunks/0qsk0bb1x81nc.js +1 -0
  822. package/server/.next/static/chunks/{22ierqxhqtwn6.js → 0wkv5e-c430ea.js} +2 -2
  823. package/server/.next/static/chunks/0x41o1ud_ksl1.js +1 -0
  824. package/server/.next/static/chunks/0x_wb_w6fgkyt.js +1 -0
  825. package/server/.next/static/chunks/{0foc_dy1j2x52.js → 12bbufru1ui37.js} +1 -1
  826. package/server/.next/static/chunks/{25r6-t40ok5s9.js → 12zasgv1xisb5.js} +1 -1
  827. package/server/.next/static/chunks/{2yjh4ytp-sedv.js → 149lk0boxihnl.js} +1 -1
  828. package/server/.next/static/chunks/17lwu-2id6c_-.js +1 -0
  829. package/server/.next/static/chunks/{16lnw4itnfhw-.js → 1_93oj1b-nrla.js} +1 -1
  830. package/server/.next/static/chunks/1bt81ubbahkh6.js +1 -0
  831. package/server/.next/static/chunks/1c0s-ejiwfy2u.js +1 -0
  832. package/server/.next/static/chunks/1g_kip3m3h9q6.js +1 -0
  833. package/server/.next/static/chunks/1i8i1ieoh738i.js +1 -0
  834. package/server/.next/static/chunks/1s0s32oqy-54t.js +1 -0
  835. package/server/.next/static/chunks/1ss-6-h8nloc9.js +1 -0
  836. package/server/.next/static/chunks/1t8fe3w70uapo.js +1 -0
  837. package/server/.next/static/chunks/1t9f2pdc3crnr.js +1 -0
  838. package/server/.next/static/chunks/1urtw14pwufsv.js +1 -0
  839. package/server/.next/static/chunks/1wh-ps6a57yj1.js +1 -0
  840. package/server/.next/static/chunks/20ujg0hz_need.js +1 -0
  841. package/server/.next/static/chunks/23b9tctw1mn5a.js +76 -0
  842. package/server/.next/static/chunks/292uz-rsh422k.js +1 -0
  843. package/server/.next/static/chunks/{11gctw6uutyd7.js → 29xg947lkf4-x.js} +1 -1
  844. package/server/.next/static/chunks/2ac9gyn8mzqp4.js +1 -0
  845. package/server/.next/static/chunks/2fze_cnwk8j76.js +1 -0
  846. package/server/.next/static/chunks/2g9dossbqnlr7.js +1 -0
  847. package/server/.next/static/chunks/{2aerfowxsf234.js → 2l4upq4bwgvvu.js} +1 -1
  848. package/server/.next/static/chunks/{177dd6kiifsoi.js → 2pi0r5spn0slc.js} +1 -1
  849. package/server/.next/static/chunks/2rpa_j81h_45y.js +1 -0
  850. package/server/.next/static/chunks/2szc6dvuj3gxy.js +1 -0
  851. package/server/.next/static/chunks/2u3iceaxpiiws.js +1 -0
  852. package/server/.next/static/chunks/2z21xxtcmsmhe.js +1 -0
  853. package/server/.next/static/chunks/{1rt5heq1xn_az.js → 315s21b2dd7lg.js} +1 -1
  854. package/server/.next/static/chunks/35to2q1uretcv.js +1 -0
  855. package/server/.next/static/chunks/{2q88116332v43.js → 37zqf9hef7g0k.js} +1 -1
  856. package/server/.next/static/chunks/38-ay595f3xie.js +1 -0
  857. package/server/.next/static/chunks/38ao1jq4zw-nd.js +1 -0
  858. package/server/.next/static/chunks/38conxv_f-pgo.js +1 -0
  859. package/server/.next/static/chunks/3cyesi3hi6l1g.js +5 -0
  860. package/server/.next/static/chunks/{04lzxilmq17f_.js → 3efi_dyz4y0lj.js} +1 -1
  861. package/server/.next/static/chunks/3qjirj3rjf5mu.js +1 -0
  862. package/server/.next/static/chunks/3vpy-ra0rib9m.js +1 -0
  863. package/server/.next/static/chunks/{22h4lj0gp_6n5.js → 3xxcpv79l5tnh.js} +1 -1
  864. package/server/.next/static/chunks/3ybb15n1q3f-o.css +3 -0
  865. package/server/drizzle-selfhost/0007_webhook_channel.sql +5 -0
  866. package/server/drizzle-selfhost/meta/_journal.json +7 -0
  867. package/tools/reset-login.mjs +1 -1
  868. package/server/.next/server/chunks/[root-of-the-server]__0ych1y0j6e38k._.js +0 -3
  869. package/server/.next/server/chunks/[root-of-the-server]__0zhzy29i2vylk._.js +0 -3
  870. package/server/.next/server/chunks/[root-of-the-server]__0zwe7i-isx08p._.js +0 -3
  871. package/server/.next/server/chunks/[root-of-the-server]__10ee5dhzx78ne._.js +0 -3
  872. package/server/.next/server/chunks/[root-of-the-server]__10q3dc485yp4l._.js +0 -3
  873. package/server/.next/server/chunks/[root-of-the-server]__10u93zgn0-c5a._.js +0 -3
  874. package/server/.next/server/chunks/[root-of-the-server]__115yxhfn37r-k._.js +0 -3
  875. package/server/.next/server/chunks/[root-of-the-server]__14mz6mbk2m_e0._.js +0 -3
  876. package/server/.next/server/chunks/[root-of-the-server]__15y82djobfhof._.js +0 -3
  877. package/server/.next/server/chunks/[root-of-the-server]__165qlmqwvxmzr._.js +0 -3
  878. package/server/.next/server/chunks/[root-of-the-server]__1acps2oi9s0i7._.js +0 -3
  879. package/server/.next/server/chunks/[root-of-the-server]__1erq9v_t5jwp5._.js +0 -3
  880. package/server/.next/server/chunks/[root-of-the-server]__1ip0gr1i080kn._.js +0 -3
  881. package/server/.next/server/chunks/[root-of-the-server]__1mrpvwofqktnv._.js +0 -3
  882. package/server/.next/server/chunks/[root-of-the-server]__1ppnnpydkrs93._.js +0 -3
  883. package/server/.next/server/chunks/[root-of-the-server]__1qdo_hgivrawk._.js +0 -3
  884. package/server/.next/server/chunks/[root-of-the-server]__1qp_dvfy4vvsm._.js +0 -3
  885. package/server/.next/server/chunks/[root-of-the-server]__1rk6wb8qem46d._.js +0 -3
  886. package/server/.next/server/chunks/[root-of-the-server]__1s20vd1etiird._.js +0 -3
  887. package/server/.next/server/chunks/[root-of-the-server]__1s9_nmhp7chvj._.js +0 -3
  888. package/server/.next/server/chunks/[root-of-the-server]__1yc_xjjam78sg._.js +0 -3
  889. package/server/.next/server/chunks/[root-of-the-server]__2067x8gf07f-i._.js +0 -3
  890. package/server/.next/server/chunks/_0beox3lp9z58-._.js +0 -3
  891. package/server/.next/server/chunks/_0gobsd0_oxj5v._.js +0 -3
  892. package/server/.next/server/chunks/_0vwctvzwde-sz._.js +0 -37
  893. package/server/.next/server/chunks/_0yzmfi6iwa_sk._.js +0 -3
  894. package/server/.next/server/chunks/_1c3ksp22eq0rw._.js +0 -37
  895. package/server/.next/server/chunks/_1cjfskikk32wj._.js +0 -37
  896. package/server/.next/server/chunks/_1d9mf39gz0bv4._.js +0 -3
  897. package/server/.next/server/chunks/_1dlvqnaceqr-_._.js +0 -3
  898. package/server/.next/server/chunks/_1jveb9aojczvg._.js +0 -3
  899. package/server/.next/server/chunks/_1qw43v448l9e7._.js +0 -37
  900. package/server/.next/server/chunks/src_0yve3gn52i_mn._.js +0 -3
  901. package/server/.next/server/chunks/src_lib_0cbh80jxsdx3n._.js +0 -6
  902. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +0 -9
  903. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +0 -9
  904. package/server/.next/server/chunks/src_lib_15y0kwcot_7u0._.js +0 -6
  905. package/server/.next/server/chunks/src_lib_16y1secb8t9fj._.js +0 -6
  906. package/server/.next/server/chunks/src_lib_1iwyh213u9xts._.js +0 -6
  907. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +0 -3
  908. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +0 -3
  909. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +0 -4
  910. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +0 -3
  911. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +0 -3
  912. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +0 -3
  913. package/server/.next/server/chunks/ssr/[externals]__1mmmc4yhx5fm6._.js +0 -3
  914. package/server/.next/server/chunks/ssr/[externals]__1nv-uycpa6_lh._.js +0 -3
  915. package/server/.next/server/chunks/ssr/[externals]__1p5zuqwmfkoo1._.js +0 -3
  916. package/server/.next/server/chunks/ssr/[externals]__1thdbok76xtof._.js +0 -3
  917. package/server/.next/server/chunks/ssr/[root-of-the-server]__01mgajn73iwc7._.js +0 -5
  918. package/server/.next/server/chunks/ssr/[root-of-the-server]__05q-laapy00sk._.js +0 -3
  919. package/server/.next/server/chunks/ssr/[root-of-the-server]__0dd9rci1isdjf._.js +0 -3
  920. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lehuiyzxp78t._.js +0 -3
  921. package/server/.next/server/chunks/ssr/[root-of-the-server]__0p7d9dfmuhnvv._.js +0 -3
  922. package/server/.next/server/chunks/ssr/[root-of-the-server]__0tp9vtckbkk9o._.js +0 -3
  923. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +0 -3
  924. package/server/.next/server/chunks/ssr/[root-of-the-server]__10y2ig7dg3f-k._.js +0 -3
  925. package/server/.next/server/chunks/ssr/[root-of-the-server]__194546bqpq02e._.js +0 -3
  926. package/server/.next/server/chunks/ssr/[root-of-the-server]__1bvp2ia3h9qbs._.js +0 -3
  927. package/server/.next/server/chunks/ssr/[root-of-the-server]__1dyjzbqwy6o12._.js +0 -3
  928. package/server/.next/server/chunks/ssr/[root-of-the-server]__1l695djsioelp._.js +0 -3
  929. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pfk0fqey3ipf._.js +0 -3
  930. package/server/.next/server/chunks/ssr/[root-of-the-server]__1pgpryg9lkmoz._.js +0 -3
  931. package/server/.next/server/chunks/ssr/[root-of-the-server]__1t4thrxlv4zre._.js +0 -3
  932. package/server/.next/server/chunks/ssr/[root-of-the-server]__1tuftf7fags7x._.js +0 -5
  933. package/server/.next/server/chunks/ssr/[root-of-the-server]__1vyste6xyyu37._.js +0 -3
  934. package/server/.next/server/chunks/ssr/[root-of-the-server]__1yf4_oyl-3xp7._.js +0 -3
  935. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +0 -4
  936. package/server/.next/server/chunks/ssr/_06kn13xh_13da._.js +0 -3
  937. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +0 -4
  938. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +0 -4
  939. package/server/.next/server/chunks/ssr/_0i2a_ziqzhyq-._.js +0 -3
  940. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +0 -4
  941. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +0 -4
  942. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +0 -4
  943. package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +0 -3
  944. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +0 -3
  945. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +0 -4
  946. package/server/.next/server/chunks/ssr/_0ymtfa6vo-yz5._.js +0 -3
  947. package/server/.next/server/chunks/ssr/_0yn1xeumiigj0._.js +0 -3
  948. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +0 -4
  949. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +0 -4
  950. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +0 -4
  951. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +0 -4
  952. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +0 -4
  953. package/server/.next/server/chunks/ssr/_1dlvqnaceqr-_._.js +0 -3
  954. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +0 -4
  955. package/server/.next/server/chunks/ssr/_1e5zfwgdf0mm5._.js +0 -3
  956. package/server/.next/server/chunks/ssr/_1h5tfqxzqd2tz._.js +0 -3
  957. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +0 -4
  958. package/server/.next/server/chunks/ssr/_1k8rjvzlscs56._.js +0 -3
  959. package/server/.next/server/chunks/ssr/_1l-vlfiltmzu3._.js +0 -3
  960. package/server/.next/server/chunks/ssr/_1wssvwkmxcdn5._.js +0 -3
  961. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +0 -4
  962. package/server/.next/server/chunks/ssr/_20gx4od4pnj8d._.js +0 -3
  963. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +0 -4
  964. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +0 -3
  965. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +0 -3
  966. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +0 -3
  967. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +0 -3
  968. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +0 -3
  969. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +0 -3
  970. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +0 -3
  971. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +0 -3
  972. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +0 -3
  973. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +0 -3
  974. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +0 -3
  975. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +0 -3
  976. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +0 -3
  977. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +0 -3
  978. package/server/.next/server/chunks/ssr/node_modules_1_u5afwqp6brs._.js +0 -3
  979. package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +0 -3
  980. package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +0 -3
  981. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kg_ige9ehqj.js +0 -3
  982. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00k37tbaia8dh.js +0 -3
  983. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00z_p6szkga15.js +0 -3
  984. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01-utr59mtfg1.js +0 -3
  985. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_055hw7kwif935.js +0 -3
  986. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06fg_efdkc3kx.js +0 -3
  987. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08f3d08smwt6_.js +0 -3
  988. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcfro9qovjn.js +0 -3
  989. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c8wd69fns_0d.js +0 -3
  990. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0cha-3kg99u4h.js +0 -3
  991. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d_0he72lzkh9.js +0 -3
  992. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0f6chw8z5cuyg.js +0 -3
  993. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j9-_xhs21abp.js +0 -3
  994. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kwpdjujljna-.js +0 -3
  995. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rer2akuum5r-.js +0 -3
  996. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0umt_achusjjb.js +0 -3
  997. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0un7wq602mt3n.js +0 -3
  998. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vrdl9n7guitd.js +0 -3
  999. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vse2cboy4cms.js +0 -3
  1000. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0x7ey4_8b48_o.js +0 -3
  1001. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z8l8t55t65t_.js +0 -3
  1002. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zap6p0vuv-fp.js +0 -3
  1003. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-m49cfu6a7gl.js +0 -3
  1004. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-w3hswsbrppl.js +0 -3
  1005. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1167zbjp4ys_a.js +0 -3
  1006. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_129serqqq3xyq.js +0 -3
  1007. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12en3pdvxu0dy.js +0 -3
  1008. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1596hk9t3r1a5.js +0 -3
  1009. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17us24ry0om-z.js +0 -3
  1010. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_8xi22-aoxu1.js +0 -3
  1011. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_l32aoya75_m.js +0 -3
  1012. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ar0v26274uhj.js +0 -3
  1013. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dkgfjoaf_1g3.js +0 -3
  1014. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eg14m09zdg__.js +0 -3
  1015. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1h_y671y1la_8.js +0 -3
  1016. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mkokmyyp47hd.js +0 -3
  1017. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1msjiuu45famw.js +0 -3
  1018. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mw7isdchouml.js +0 -3
  1019. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n4cotiug2a_r.js +0 -3
  1020. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1njl24pr6dwrt.js +0 -3
  1021. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o1_3bydb-3j5.js +0 -3
  1022. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1pjor42_s9imf.js +0 -3
  1023. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qta4yeufzpz7.js +0 -3
  1024. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qxbl6k6dji0s.js +0 -3
  1025. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_21a3kf8buivxw.js +0 -3
  1026. package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +0 -3
  1027. package/server/.next/server/chunks/ssr/src_0ley8c3htc2q9._.js +0 -3
  1028. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +0 -3
  1029. package/server/.next/server/chunks/ssr/src_0ubtruqmercw2._.js +0 -3
  1030. package/server/.next/server/chunks/ssr/src_0vi30frvjgri2._.js +0 -3
  1031. package/server/.next/server/chunks/ssr/src_12sdm7skn8fr1._.js +0 -3
  1032. package/server/.next/server/chunks/ssr/src_16lx0qdi44evh._.js +0 -3
  1033. package/server/.next/server/chunks/ssr/src_17yq6_bqlwgvy._.js +0 -3
  1034. package/server/.next/server/chunks/ssr/src_1n-6pz04odixj._.js +0 -3
  1035. package/server/.next/server/chunks/ssr/src_app_(console)_05mlxmavgli8_._.js +0 -3
  1036. package/server/.next/server/chunks/ssr/src_app_(console)_0u1ec16rmzze6._.js +0 -3
  1037. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +0 -3
  1038. package/server/.next/server/chunks/ssr/src_components_1yp2m9j9dnsv-._.js +0 -3
  1039. package/server/.next/server/chunks/ssr/src_components_ui_dropdown-menu_tsx_1xyz_k6bpdu_5._.js +0 -3
  1040. package/server/.next/static/chunks/01mhc6kz81iwf.js +0 -1
  1041. package/server/.next/static/chunks/02byu0sw5d0g9.js +0 -1
  1042. package/server/.next/static/chunks/02e07gc948zdh.js +0 -1
  1043. package/server/.next/static/chunks/04yl9t4cn6zwm.js +0 -1
  1044. package/server/.next/static/chunks/08oksl0raetg5.js +0 -1
  1045. package/server/.next/static/chunks/0d556cjlmwiq4.js +0 -1
  1046. package/server/.next/static/chunks/0jm8a63677590.js +0 -1
  1047. package/server/.next/static/chunks/0lcmy-_tdtrqk.js +0 -1
  1048. package/server/.next/static/chunks/0ld0vtd027il_.js +0 -1
  1049. package/server/.next/static/chunks/0qciunoy58a03.js +0 -7
  1050. package/server/.next/static/chunks/0r-2mywc7qkb_.js +0 -1
  1051. package/server/.next/static/chunks/0xwz6ps1581qa.js +0 -1
  1052. package/server/.next/static/chunks/1-zyqj42cr9hy.css +0 -3
  1053. package/server/.next/static/chunks/12l7tr29-a97t.js +0 -1
  1054. package/server/.next/static/chunks/160mk2sltxl3e.js +0 -1
  1055. package/server/.next/static/chunks/1bn-7bluoi2vi.js +0 -1
  1056. package/server/.next/static/chunks/1d0mukiro5klq.js +0 -1
  1057. package/server/.next/static/chunks/1jc8ghvf721gg.js +0 -76
  1058. package/server/.next/static/chunks/1nfofl7nhy6fx.js +0 -1
  1059. package/server/.next/static/chunks/1x8bgprfjtt59.js +0 -1
  1060. package/server/.next/static/chunks/1yctclvh0qaxz.js +0 -1
  1061. package/server/.next/static/chunks/1zyyqxguxs96l.js +0 -1
  1062. package/server/.next/static/chunks/23scyaimkowfl.js +0 -1
  1063. package/server/.next/static/chunks/2lfa16b0tlnvj.js +0 -1
  1064. package/server/.next/static/chunks/2onhuya5-n3-e.js +0 -1
  1065. package/server/.next/static/chunks/2pn16qmann41d.js +0 -1
  1066. package/server/.next/static/chunks/2szlo15y09085.js +0 -1
  1067. package/server/.next/static/chunks/2v_f39dz8sa3-.js +0 -1
  1068. package/server/.next/static/chunks/2xhx4rma6gx5o.js +0 -1
  1069. package/server/.next/static/chunks/37f1rjolzxbiv.js +0 -1
  1070. package/server/.next/static/chunks/38c9rnljzl6iw.js +0 -1
  1071. package/server/.next/static/chunks/3_erdlvi2tz19.js +0 -1
  1072. package/server/.next/static/chunks/3qbk8r6jm8udo.js +0 -5
  1073. package/server/.next/static/chunks/3sg_npfod25zq.js +0 -1
  1074. package/server/.next/static/chunks/3tl9dgour-h9l.js +0 -1
  1075. package/server/.next/static/chunks/3vbz762vgy3dx.js +0 -1
  1076. package/server/.next/static/chunks/3wi43ltm1e5iy.js +0 -1
  1077. package/server/.next/static/chunks/3yljsdgzvrkdf.js +0 -1
  1078. package/server/.next/static/chunks/42z3imsp11da1.js +0 -1
  1079. /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_buildManifest.js +0 -0
  1080. /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_clientMiddlewareManifest.js +0 -0
  1081. /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_ssgManifest.js +0 -0
@@ -0,0 +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),o=e.i(921991),i=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),h=e.i(326003),g=e.i(843448),y=e.i(547499),b=e.i(795194),k=e.i(780148),v=e.i(443917),I=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 E(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,y.f)().OPS_ENCRYPTION_KEY;return a.map(e=>({acc:e,credential:(0,o.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},s)}))}function j(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 M=e=>a.B`${n.snapshots.data} || ${JSON.stringify(e)}::jsonb`;async function O(e,t,a){let s=d(e.s?{state:e.s.state,data:e.s.data}:null),o="unknown"===t.state,i=o?s?{lastGoodState:s}:{}:{...t.patch,lastGoodState:t.state},l=!o&&s!==t.state;return await (0,r.f)().insert(n.snapshots).values({resourceId:e.r.id,state:t.state,data:i,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:t.state,data:M(i),...o?{}:{collectedAt:a},...l?{stateSince:a}:{}}}),o?null:f({kind:e.r.kind,resourceId:e.r.id,prev:s,next:t.state,label:t.label,at:a})}async function R(e,a){await (0,r.f)().update(n.snapshots).set({data:M(a)}).where((0,t.u)(n.snapshots.resourceId,e.r.id))}let N=e=>(0,i.f)(e);async function C(e,a,o,i,l){if("auth"===p(i,!0)){let e=(0,s.E)({ok:!1,kind:"auth",error:i.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 o)await O(e,{state:"unknown",label:"Unknown",patch:{}},l.now);l.errors.push(`${e}/${a.label}: ${i.error}`)}let P=e=>e.toISOString();async function T(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 z(e){if(!e.protectOnly||await (0,l.g)())for(let{acc:t,credential:a}of(await E("supabase"))){if($(e),!a){e.errors.push(`supabase/${t.label}: credential can't be read`);continue}let r=await j(t.id,"supabase_project");if(!r.length)continue;let n=await (0,I.W)(a,$(e));if(!n.ok){e.protectOnly?e.errors.push(`supabase/${t.label}: ${n.error}`):await C("supabase",t,r,n,e);continue}let s=new Map(n.data.map(e=>[e.ref,e])),o=[];for(let t of e.protectOnly?[]:r){let a=s.get(t.r.externalId);if(!a){o.push(await O(t,{state:"off",label:"Not found",patch:{status:"REMOVED"}},e.now));continue}let r=(0,g.P)(a.status),n=d(t.s?{state:t.s.state,data:t.s.data}:null),i={status:a.status,region:a.region,pgVersion:a.pgVersion,orgSlug:a.orgSlug};"paused"===r.state&&"paused"!==n&&(i.pausedBeforeSeen=null===n),o.push(await O(t,{state:r.state,label:r.label,patch:i},e.now))}await N(o);let i=new Map(r.map(e=>[e.r.externalId,e.r.id])),u=n.data.map(e=>({resourceId:i.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 B(e){for(let{acc:t,credential:a}of(await E("supabase"))){if($(e),!a)continue;let r=await j(t.id,"supabase_project");if(!r.length)continue;let n=new Map(r.map(e=>[e.r.id,(0,h.k)(h.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,I.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:o}=await D(e,r,async(t,r)=>{let o=n.get(t.r.id),i={freeOrg:o.orgSlug?s.get(o.orgSlug)??null:null};if((o.status??"").startsWith("ACTIVE_")){let[n,s]=await Promise.all([(0,I.F)(a,t.r.externalId,r),(0,I.Z)(a,t.r.externalId,r)]);n.ok?Object.assign(i,{health:n.data.map(({name:e,status:t})=>({name:e,status:t})),healthAt:P(e.now),healthError:null}):"column"===p(n,!1)?i.healthError=n.error:e.errors.push(`supabase/${t.r.name} health: ${n.error}`),s.ok?Object.assign(i,{lastTrafficAt:(0,g.H)(s.data)?.toISOString()??null,trafficAt:P(e.now),trafficError:null}):"column"===p(s,!1)?i.trafficError=s.error:e.errors.push(`supabase/${t.r.name} traffic: ${s.error}`)}await R(t,i)});x(o)}}async function _(e){for(let{acc:t,credential:a}of(await E("neon"))){if($(e),!a){e.errors.push(`neon/${t.label}: credential can't be read`);continue}let r=await j(t.id,"neon_project");if(!r.length)continue;let{out:n,skipped:s}=await D(e,r,(e,t)=>Promise.all([(0,v.Z)(a,e.r.externalId,t),(0,v.k)(a,e.r.externalId,t),(0,v.e)(a,e.r.externalId,t)])),o=n.flat().find(e=>void 0!==e&&!e.ok&&"auth"===e.kind);if(o){await C("neon",t,r,o,e);continue}let i=[];for(let[t,a]of r.entries()){let r=n[t];if(!r)continue;let[s,o,l]=r;if(!s.ok||!o.ok||!l.ok){let t=[s,o,l].find(e=>!e.ok);"missing"===t.kind?i.push(await O(a,{state:"off",label:"Not found",patch:{}},e.now)):(await O(a,{state:"unknown",label:"Unknown",patch:{}},e.now),e.errors.push(`neon/${a.r.name}: ${t.error}`));continue}let u=(0,m.p)({endpoints:o.data,computeSeconds:s.data.computeSeconds});i.push(await O(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:o.data,branches:l.data}},e.now))}await N(i),x(s)}}let W=e=>e.ok?{latencyMs:e.data.latencyMs,pingError:null,pingReason:null,pingKind:null}:{pingError:e.error,pingReason:e.reason??null,pingKind:e.kind};async function U(e){for(let{acc:t,credential:a}of(await E("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 j(t.id,"firestore");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){await C("firebase",t,n,s,e);continue}let{out:o,skipped:i}=await D(e,n,(e,t)=>(0,b.G)(s.data,e.r.externalId,t)),l=[];for(let[t,a]of n.entries()){let r=o[t];if(!r)continue;let n=(0,w.g)(r);"unknown"!==n.state||r.ok||e.errors.push(`firebase/${a.r.name}: ${r.error}`),l.push(await O(a,{...n,patch:W(r)},e.now))}await N(l),x(i)}}async function F(e){for(let{acc:t,credential:a}of(await E("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r)continue;let n=(await j(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 o=(0,w.a)(e.now),{skipped:i}=await D(e,n,async(t,a)=>{let r=await (0,b.W)(s.data,t.r.externalId,o,e.now,a);r.ok?await R(t,{...r.data,opsAt:P(e.now),opsError:null}):"column"===p(r,!1)?await R(t,{reads:null,writes:null,deletes:null,opsAt:P(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(i)}}async function V(e){let t=Date.now()+2*Math.max(0,e.deadline-Date.now())/3,a=await L(()=>J({...e,deadline:t})),r=await L(()=>Y(e));if(a)throw a;if(r)throw r}async function L(e){try{return await e(),null}catch(e){return e instanceof Error?e:Error(String(e))}}async function J(e){for(let{acc:t,credential:a}of(await E("supabase")))if($(e),a)for(let r of(await j(t.id,"supabase_project"))){let t=(0,h.k)(h.B,r.s?.data);if(!(0,g.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,I.r)(a,r.r.externalId,$(e));n.ok?await R(r,{sizeBytes:n.data,sizeAt:P(e.now),sizeError:null}):"column"===p(n,!1)?await R(r,{sizeError:n.error}):e.errors.push(`supabase/${r.r.name} size: ${n.error}`)}}async function Y(e){for(let{acc:t,credential:a}of(await E("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r)continue;let n=(await j(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:o}=await D(e,n,async(t,a)=>{let r=await (0,b.q)(s.data,t.r.externalId,a);r.ok?await R(t,{authUsers:r.data,authAt:P(e.now),authError:null}):"column"===p(r,!1)?await R(t,{authError:"Not readable: the service account needs firebaseauth.viewer"}):e.errors.push(`firebase/${t.r.name} users: ${r.error}`)});x(o)}}e.s(["w",0,C,"O",0,E,"q",0,T,"T",0,D,"W",0,x,"M",0,N,"I",0,L,"f",0,V,"g",0,U,"x",0,F,"h",0,_,"N",0,z,"y",0,B,"e",0,j,"s",0,$,"a",0,O],140318)},956846,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(764766),o=e.i(390775),i=e.i(537622),l=e.i(749124),u=e.i(532148),d=e.i(988294),c=e.i(739886),f=e.i(656083),p=e.i(921991),w=e.i(381725),m=e.i(483100),h=e.i(111970),g=e.i(703352),y=e.i(948736),b=e.i(655060),k=e.i(762504),v=e.i(547499),I=e.i(275426),A=e.i(873354),S=e.i(177706),$=e.i(61926),D=e.i(140318),x=e.i(977832),E=e.i(89491),j=e.i(592951),M=e.i(691734),O=e.i(43790),R=e.i(11552);async function N(e){let t=[await (0,D.I)(()=>P(e)),await (0,D.I)(()=>z(e)),await (0,D.I)(()=>B(e))].find(e=>null!==e);if(t)throw t}let C=e=>e.toISOString();async function P(e){for(let{acc:t,credential:a}of(await (0,D.O)("turso"))){if((0,D.s)(e),!a){e.errors.push(`turso/${t.label}: credential can't be read`);continue}let r=await (0,D.e)(t.id,"turso_database");if(!r.length)continue;let n=await (0,M.u)(a,(0,D.s)(e));if(!n.ok){await (0,D.w)("turso",t,r,n,e);continue}let s=new Set(r.map(e=>String(e.r.meta.org??""))),o=[];for(let i of n.data.filter(e=>s.has(e.slug))){let[n,s]=await Promise.all([(0,M.X)(a,i.slug,(0,D.s)(e)),(0,M.d)(a,i.slug,(0,D.s)(e))]),l=r.filter(e=>e.r.meta.org===i.slug);if(!n.ok){for(let t of l)await (0,D.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)o.push(await T(t,u.get(t.r.externalId),i,s,e))}let i=new Set(n.data.map(e=>e.slug));for(let t of r.filter(e=>!i.has(String(e.r.meta.org??""))))o.push(await (0,D.a)(t,{state:"off",label:"Organization not visible to this token",patch:{}},e.now));await (0,D.M)(o)}}async function T(e,t,a,r,n){if(!t)return(0,D.a)(e,{state:"off",label:"Not found",patch:{}},n.now);let s=(0,E.h)({blockReads:t.blockReads,blockWrites:t.blockWrites,orgBlockedReads:a.blockedReads,orgBlockedWrites:a.blockedWrites}),o={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(o,{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:C(n.now),usageError:null})}else"column"===(0,x.t)(r,!1)?o.usageError=r.error:n.errors.push(`turso/${e.r.name} usage: ${r.error}`);return(0,D.a)(e,{...s,patch:o},n.now)}async function z(e){for(let{acc:t,credential:a}of(await (0,D.O)("upstash"))){(0,D.s)(e);let r=a?(0,O.L)(a):null;if(!r){e.errors.push(`upstash/${t.label}: credential can't be read`);continue}let n=await (0,D.e)(t.id,"upstash_redis");if(!n.length)continue;let s=await (0,O.M)(r,(0,D.s)(e));if(!s.ok){await (0,D.w)("upstash",t,n,s,e);continue}let o=new Map(s.data.map(e=>[e.id,e])),{out:i,skipped:l}=await (0,D.T)(e,n,(e,t)=>o.has(e.r.externalId)?(0,O.Z)(r,e.r.externalId,t):Promise.resolve(null)),u=[];for(let[t,a]of n.entries()){let r=o.get(a.r.externalId);if(!r){u.push(await (0,D.a)(a,{state:"off",label:"Not found",patch:{}},e.now));continue}let n=(0,E.t)(r.state),s={region:r.region,status:r.state,type:r.type},l=i[t];l?.ok?Object.assign(s,{...l.data,statsAt:C(e.now),statsError:null}):l&&"column"===(0,x.t)(l,!1)?s.statsError=l.error:l&&e.errors.push(`upstash/${a.r.name} stats: ${l.error}`),u.push(await (0,D.a)(a,{...n,patch:s},e.now))}await (0,D.M)(u),(0,D.W)(l)}}async function B(e){let t={};for(let{acc:a,credential:r}of(await (0,D.O)("cloudflare"))){if((0,D.s)(e),!r)continue;let n=await W(a.id,r,e);if(!n.length){t[a.id]={d1:"error",analytics:null,at:C(e.now),note:"No Cloudflare account found for this token"};continue}let s="ok",o=null;for(let t of n){let n=await (0,j.L)(r,t,(0,D.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 U(a.id,t,n.data,e.now);let i=(await (0,D.e)(a.id,"d1_database")).filter(e=>e.r.meta.accountId===t);if(!i.length)continue;let l=await (0,j.t)(r,t,(0,j.Y)(e.now),(0,D.s)(e));o=l.ok?o??"ok":"scope"===l.kind?"missing":o??"error",l.ok||"scope"===l.kind||e.errors.push(`d1/${a.label} analytics: ${l.error}`);let{out:u,skipped:d}=await (0,D.T)(e,i,(e,a)=>(0,j.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 i.entries()){let r=u[t];void 0!==r&&w.push(await _(a,r,c.get(a.r.externalId)??null,l.ok,l.ok?null:l.error,p,e))}await (0,D.M)(w),(0,D.W)(d)}t[a.id]={d1:s,analytics:o,at:C(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 _(e,t,a,r,n,s,o){let i={accountId:e.r.meta.accountId??null,createdAt:e.r.meta.createdAt??null,accountDatabases:s.accountDatabases};if(t.ok?Object.assign(i,{sizeBytes:t.data.sizeBytes,numTables:t.data.numTables,readReplication:t.data.readReplication,detailsAt:C(o.now),detailsError:null}):"scope"===t.kind?i.detailsError=t.error:o.errors.push(`d1/${e.r.name}: ${t.error}`),r?Object.assign(i,{rowsRead:a?.rowsRead??0,rowsWritten:a?.rowsWritten??0,readQueries:a?.readQueries??0,writeQueries:a?.writeQueries??0,accountRowsRead:s.accountRowsRead,accountRowsWritten:s.accountRowsWritten,usageDay:(0,j.Y)(o.now),usageAt:C(o.now),usageError:null}):i.usageError=n,null!==s.accountSizeBytes&&(i.accountSizeBytes=s.accountSizeBytes),!t.ok&&"transient"===t.kind)return(0,D.a)(e,{state:"unknown",label:"Unknown",patch:{}},o.now);let l=(0,E.c)(r?s:{accountRowsRead:null,accountRowsWritten:null});return(0,D.a)(e,{...l,patch:i},o.now)}async function W(e,a,s){let o=new Set,i=await (0,j.N)(a,(0,D.s)(s));if(i.ok)for(let e of i.data)o.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)&&o.add(a.meta.accountId);return[...o].slice(0,5)}async function U(e,a,s,o){let i=(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(i.map(e=>[e.externalId,e])),u=new Set(s.map(e=>e.uuid));await (0,r.f)().transaction(async r=>{for(let i of s){let s={accountId:a,createdAt:i.createdAt},u=l.get(i.uuid);u?await r.update(n.resources).set({name:i.name,meta:s,lastSeenAt:o,goneAt:null,updatedAt:o}).where((0,t.u)(n.resources.id,u.id)):await r.insert(n.resources).values({accountId:e,kind:"d1_database",externalId:i.uuid,name:i.name,meta:s,monitored:!0,lastSeenAt:o}).onConflictDoNothing({target:[n.resources.accountId,n.resources.kind,n.resources.externalId]})}let d=i.filter(e=>!u.has(e.externalId)&&!e.goneAt).map(e=>e.id);d.length&&await r.update(n.resources).set({goneAt:o,updatedAt:o}).where((0,t.y)(n.resources.id,d))})}var F=e.i(442473),V=e.i(666680),L=e.i(473283),J=e.i(422067);async function Y(e=new Date){let t=(0,V.randomUUID)(),n=new Date(e.getTime()+J.d).toISOString(),s=await (0,r.f)().execute(a.B`
2
+ insert into ops.settings (key, value) values ('collector.lease', ${JSON.stringify({until:n,owner:t})}::jsonb)
3
+ on conflict (key) do update set value = excluded.value, updated_at = now()
4
+ where (ops.settings.value->>'until')::timestamptz < ${e.toISOString()}::timestamptz
5
+ returning key`);return(0,L.f)(s).length>0?t:null}async function q(e){await (0,r.f)().execute(a.B`
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 K=e.i(679270);let Z=/^v?(\d{1,9})\.(\d{1,9})\.(\d{1,9})(?:-([0-9A-Za-z.-]{1,64}))?(?:\+[0-9A-Za-z.-]{1,64})?$/,G=/^\d{4}-\d{2}-\d{2}$/;function X(e){let t="string"==typeof e?Z.exec(e.trim()):null;if(!t)return null;let[a,r,n]=[t[1],t[2],t[3]].map(Number);return{major:a,minor:r,patch:n,pre:t[4]??null,text:`${a}.${r}.${n}${t[4]?`-${t[4]}`:""}`}}function H(e,t){return e.major!==t.major?e.major-t.major:e.minor!==t.minor?e.minor-t.minor:e.patch!==t.patch?e.patch-t.patch:e.pre===t.pre?0:null===e.pre?1:null===t.pre||e.pre<t.pre?-1:1}function Q(e){let t=(e&&"object"==typeof e?e:null)?.result?.releases;if(!Array.isArray(t)||0===t.length)return null;let a=[];for(let e of t){if(!e||"object"!=typeof e||"string"!=typeof e.name||"boolean"!=typeof e.isEol||null!=e.eolFrom&&("string"!=typeof e.eolFrom||!G.test(e.eolFrom)))return null;a.push({name:e.name,isEol:e.isEol,eolFrom:e.eolFrom??null})}return a}var ee=e.i(583521);let et="runtime.node";function ea(e=process.env){let t=(0,ee.N)(e,"NO_UPDATE_CHECK"),a=t?.value.trim()??"";return{off:""!==a&&!/^(0|false|no|off)$/i.test(a),name:t?.name??"WATCHBELL_NO_UPDATE_CHECK"}}async function er(e,t,a,r){let n;try{n=await a(e,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"},signal:AbortSignal.timeout(r),cache:"no-store"})}catch{return{ok:!1,error:`Couldn't reach ${t}`}}if(!n.ok)return{ok:!1,error:`${t} returned an error (${n.status})`};try{return{ok:!0,body:await n.json()}}catch{return{ok:!1,error:`${t} answered in a format the console doesn't recognise`}}}async function en(e={}){let t=e.fetch??fetch,a=e.timeoutMs??8e3,[r,n]=await Promise.all([er("https://nodejs.org/dist/index.json","nodejs.org",t,a),er("https://endoflife.date/api/v1/products/nodejs/","endoflife.date",t,a)]),s=r.ok?function(e){if(!Array.isArray(e)||0===e.length)return null;let t=[],a=new Map;for(let r of e){if(!r||"object"!=typeof r||"boolean"!=typeof r.security)return null;let e=X(r.version);if(!e||null!==e.pre||!String(r.version).startsWith("v"))return null;r.security&&t.push(e);let n=a.get(e.major);(!n||H(e,n)>0)&&a.set(e.major,e)}return t.sort((e,t)=>H(t,e)),{security:t.map(e=>e.text),latest:Object.fromEntries([...a].sort((e,t)=>t[0]-e[0]).map(([e,t])=>[String(e),t.text]))}}(r.body):null,o=n.ok?Q(n.body):null,i=e=>`${e} answered in a format the console doesn't recognise`;return{index:s,indexError:r.ok?s?null:i("nodejs.org"):r.error,cycles:o,cyclesError:n.ok?o?null:i("endoflife.date"):n.error}}let es=e=>"string"==typeof e&&Number.isFinite(Date.parse(e))?e:null,eo=e=>"string"==typeof e?e:null;async function ei(){var e;let[a]=await (0,r.f)().select({value:n.settings.value}).from(n.settings).where((0,t.u)(n.settings.key,et)).limit(1);return a?(e=a.value)&&"object"==typeof e?{index:function(e){let t=e&&"object"==typeof e?e:null;if(!t||!Array.isArray(t.security)||!t.latest||"object"!=typeof t.latest)return null;let a=t.security.map(X),r=Object.entries(t.latest).map(([e,t])=>[e,X(t)]);return a.some(e=>!e)||r.some(([e,t])=>!t||String(t.major)!==e)?null:{security:a.map(e=>e.text),latest:Object.fromEntries(r.map(([e,t])=>[e,t.text]))}}(e.index),indexCheckedAt:es(e.indexCheckedAt),indexError:eo(e.indexError),cycles:Q({result:{releases:e.cycles}}),cyclesCheckedAt:es(e.cyclesCheckedAt),cyclesError:eo(e.cyclesError)}:null:null}async function el(e,t,a,s=process.env){let o;if(ea(s).off)return;let i=t-Date.now();if(i<1e3)throw Error("skipped, time budget used");let l=await en({timeoutMs:Math.min(8e3,i)}),u=await ei();l.indexError&&a.push(`node: ${l.indexError}`),l.cyclesError&&a.push(`node: ${l.cyclesError}`);let d=(o=e.toISOString(),{index:l.index??u?.index??null,indexCheckedAt:o,indexError:l.indexError,cycles:l.cycles??u?.cycles??null,cyclesCheckedAt:o,cyclesError:l.cyclesError});await (0,r.f)().insert(n.settings).values({key:et,value:d}).onConflictDoUpdate({target:n.settings.key,set:{value:d,updatedAt:e}})}var eu=e.i(77193);let ed=/^\d{1,4}\.\d{1,4}\.\d{1,6}$/,ec=e=>"string"==typeof e&&ed.test(e);async function ef(e={}){let t,a=e.fetch??fetch;try{t=await a("https://registry.npmjs.org/watchbell/latest",{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"},signal:AbortSignal.timeout(e.timeoutMs??6e3),cache:"no-store"})}catch{return{ok:!1,error:"Couldn't reach registry.npmjs.org"}}if(!t.ok)return{ok:!1,error:`registry.npmjs.org returned an error (${t.status})`};try{let e=await t.json();return ec(e.version)?{ok:!0,version:e.version}:{ok:!1,error:"registry.npmjs.org answered without a version"}}catch{return{ok:!1,error:"registry.npmjs.org answered in a format the console doesn't recognise"}}}async function ep(e,t,a,s=process.env,o){let i=function(e=process.env){let t=e.WATCHBELL_VERSION?.trim();return ec(t)?t:null}(s);if(!i||"selfhost"!==(0,eu.c)(s)||ea(s).off)return;let l=t-Date.now();if(l<1e3)return;let u=await ef({fetch:o,timeoutMs:Math.min(6e3,l)});if(u.ok){let t={version:u.version,checkedAt:e.toISOString()};await (0,r.f)().insert(n.settings).values({key:"watchbell.latest",value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:e}})}else a.push(`update check: ${u.error}`);await (0,r.f)().insert(n.settings).values({key:"watchbell.seenVersion",value:{version:i}}).onConflictDoNothing({target:n.settings.key})}var ew=e.i(515743),em=e.i(336030),eh=e.i(905685),eg=e.i(751762);e.i(794713);let ey="collector.lastRun",eb="vercel.backoffUntil",ek="vercel.currentMiss",ev={supabase:D.N,supabaseUsage:D.y,neon:D.h,firebase:D.g,firebaseUsage:D.x,extraDbs:N};async function eI(){let e=await (0,r.f)().select({key:n.settings.key,value:n.settings.value}).from(n.settings).where((0,t.y)(n.settings.key,[ey,A.Z])).limit(2);return{lastRun:e.find(e=>e.key===ey)?.value??{},afterDeploy:e.find(e=>e.key===A.Z)?.value??null}}async function eA(e){await (0,r.f)().insert(n.settings).values({key:ey,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}let eS=e=>(0,f.f)(e);async function e$(e,s,o,i,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,J.B)(t.lastCheckedAt,e,i));if(!u.length)return 0;let d=await (0,F.P)(u,6,({m:e})=>{let t=(0,J.P)(e.timeoutMs,s,Date.now());return null===t?Promise.resolve(null):(0,F.b)(e.url,{expectedStatus:e.expectedStatus,timeoutMs:t,body:(0,ew.C)(e)})}),c=u.flatMap((e,t)=>d[t]?[{...e,r:d[t]}]:[]);if(c.length<u.length&&o.push(`checks: ${u.length-c.length} monitors skipped, time budget used`),!c.length)return 0;let f=[];for(let t of c)await (0,em.j)(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,I.x)(l,{monitorId:t.id,appId:a.id},e)}))),await eS(f.map(({m:t,app:a,r})=>(0,eh.F)({resourceId:a.id,path:(0,$.K)(t.url),prev:t.state,next:(0,eh.G)(t.failStreak,r).state,code:r.statusCode,error:r.error,at:e}))),f.length):0}let eD=["checks","heartbeats"];async function ex(e,t,a=c.f){if(!eD.some(t=>e.includes(t)))return[];try{return await a()}catch(e){return t.push(`maintenance: ${(0,eg.f)(e)}`),[]}}async function eE(e){let[a]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,eb)).limit(1),s=a?.value?.until;return!!s&&e.getTime()<new Date(s).getTime()}async function ej(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:eb,value:a}).onConflictDoUpdate({target:n.settings.key,set:{value:a,updatedAt:t}}),!0}let eM=e=>a.B`coalesce(${n.deployments.externalId} = ${e}::text, false)`;async function eO(e,s,o,i,l=b.m){let u=[];try{for(let l of e){let e=s.filter(e=>e.resourceId===l.id),{currentId:d,previousId:c}=(0,$.a)(e.map(e=>({id:e.id,createdAt:e.createdAt??new Date(0)})),(l.externalId?o.get(l.externalId):null)??null),f=await (0,r.f)().update(n.deployments).set({isCurrent:eM(d),isPreviousProduction:eM(c),updatedAt:i.now}).where((0,t.b)((0,t.u)(n.deployments.resourceId,l.id),(0,t.F)(a.B`${n.deployments.isCurrent} is distinct from ${eM(d)}`,a.B`${n.deployments.isPreviousProduction} is distinct from ${eM(c)}`))).returning({id:n.deployments.externalId}),p=(0,A.X)({appId:l.id,currentId:d,changedIds:f.map(e=>e.id),createdAt:e.find(e=>e.id===d)?.createdAt??null,state:i.afterDeploy,now:i.now});p&&u.push({appId:l.id,deploymentId:p})}}finally{if(u.length)try{await l(u,i.now)}catch(e){i.errors.push(`vercel/${i.label}: after-deploy security check not scheduled: ${(0,eg.f)(e)}`)}}}let eR=e=>new Map(e.map(e=>[e.id,{...e.branchFrom?{branchFrom:e.branchFrom}:{},...e.gitDirty?{gitDirty:!0}:{}}]));async function eN(e,t,a,r,n=new Map,s=g.f){try{await s(e,t,n)}catch(e){a.push(`vercel/${r}: production source not saved: ${(0,eg.f)(e)}`)}}async function eC(e,a,s,i){if(await eE(e))return;let l=(0,v.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,p.V)({ciphertext:u.credentialCiphertext,iv:u.credentialIv},l);if((0,o.A)(d)||!d){s.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 f=new Map(c.map(e=>[e.externalId,e])),w=await (0,S.X)(d);if(!w.ok){let a=(0,o.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)),s.push(`vercel/${u.label}: ${w.error}`),await ej(w,e))return;continue}let m=new Set(c.map(e=>String(e.meta.teamId)));for(let o of w.data.filter(e=>m.has(e.id))){if(Date.now()>a)return void s.push("vercel: skipped remaining teams, time budget used");let[l,u]=await Promise.all([(0,S.W)(d,o),(0,S.K)(d,o,{since:e.getTime()-6048e5,limit:100})]);if(!l.ok||!u.ok){let t=l.ok?u:l;if(s.push(`vercel/${o.name}: ${t.error}`),await ej(t,e))return;continue}let p=new Map(l.data.map(e=>[e.id,e.currentDeploymentId])),w=u.data.filter(e=>f.has(e.projectId)),m=eR(w),h=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=f.get(t.projectId),s=h.get(t.id),o={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,$.E)(s,o)){let s={resourceId:a.id,externalId:t.id,...o,createdAtProvider:t.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(s).onConflictDoUpdate({target:n.deployments.externalId,set:s})}g.push((0,eh.L)(s?.state,t,a.id,e))}await eS(g);let y=c.filter(e=>String(e.meta.teamId)===o.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,y.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"ready"))),[k]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,ek)).limit(1),v=[],I=()=>v.length?(0,r.f)().insert(n.settings).values({key:ek,value:(0,$.Y)(k?.value,v,e)}).onConflictDoUpdate({target:n.settings.key,set:{value:(0,$.Y)(k?.value,v,e),updatedAt:e}}):Promise.resolve();for(let t of(0,$.Q)(y,p,b,(0,$.S)(k?.value,e))){if(Date.now()>a)break;let i=await (0,S.S)(d,o,t.deploymentId);if(!i.ok){if(s.push(`vercel/${o.name}: current deployment: ${i.error}`),await ej(i,e))return void await I();v.push(t.deploymentId);continue}let l=i.data;for(let[e,t]of eR([l]))m.set(e,t);let 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)}await I(),await eO(y,b,p,{now:e,afterDeploy:i,errors:s,label:o.name}),await eN(y,e,s,o.name,m)}}}async function eP(e){let o=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(!o.length)return;let i=await (0,r.f)().select().from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,o.map(e=>e.id)),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1))),l=new Set((await (0,r.f)().select({r:n.deployments.resourceId}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,o.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)),u=await (0,D.q)(o.map(e=>e.id)),d=new Map((await (0,r.f)().select().from(n.snapshots).where((0,t.y)(n.snapshots.resourceId,o.map(e=>e.id)))).map(e=>[e.resourceId,e])),c=new Map(o.map(e=>[e.id,e])),f=(0,s.P)(i.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.resourceId,appName:c.get(e.resourceId)?.name??"",appMeta:c.get(e.resourceId)?.meta,lastError:e.lastError})),o),p=e=>f.has(e.id)&&"err"===e.state?"warn":e.state;for(let[e,l]of(0,s.R)(i.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.resourceId,appName:c.get(e.resourceId)?.name??"",appMeta:c.get(e.resourceId)?.meta,lastError:e.lastError})),o))await (0,r.f)().update(n.resources).set({meta:a.B`${n.resources.meta} || ${JSON.stringify({pastDomains:l})}::jsonb`}).where((0,t.u)(n.resources.id,e));for(let t of o){let s=i.filter(e=>e.resourceId===t.id),o=(0,eh.V)({monitors:s.map(p),building:l.has(t.id),dbPaused:u.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:u.has(t.id)},w=d.get(t.id);await (0,r.f)().insert(n.snapshots).values({resourceId:t.id,state:o,data:f,collectedAt:e,stateSince:e}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:o,data:a.B`${n.snapshots.data} || ${JSON.stringify(f)}::jsonb`,collectedAt:e,...w?.state!==o?{stateSince:e}:{}}})}}async function eT(e,t={}){let a={writeLastRun:eA,refreshApps:eP,refreshNetwork:K.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,eg.f)(t)}`)}if(e.done.some(e=>K.p.includes(e)))try{await a.refreshNetwork(new Date)}catch(t){e.errors.push(`network-states: ${(0,eg.f)(t)}`)}}finally{a.invalidate((0,l.o)(e.tried??e.done))}}async function ez(e,t,a,r={evaluate:u.$,deliver:m.q,digest:m.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,eg.f)(t)}`)}try{await r.deliver(new Date,t),console.info("collector notifications delivered")}catch(t){e=!1,a.push(`notify: ${(0,eg.f)(t)}`)}e&&n.push("alerts")}if(e.includes("digest")&&(0,J.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,eg.f)(e)}`)}return n}async function eB(e,t,a,r){let n=[],s=[];for(let o of e){if(Date.now()>t){a.push(`${o}: skipped, time budget used`);continue}if((0,J.z)(o,t,Date.now())){s.push(o);try{await r(o),n.push(o)}catch(e){a.push(`${o}: ${(0,eg.f)(e)}`)}}}return{done:n,tried:s}}async function e_(e){let a,s=new Date,o=await Y(s);if(!o)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 q(o).catch(()=>void 0),e}let i=[],l=[],u=0,c=s.getTime()+J.p,f=e=>console.info(`collector ${e} +${Date.now()-s.getTime()}ms`);try{f("start");let{lastRun:t,afterDeploy:a}=await eI(),r="cron_job_org"!==e&&"builtin"!==e,n=await (0,h.I)(),{due:o,early:p}=(0,J._)((0,J.S)(t,s,r,n),(0,b.Y)(a),n),m=!1,g=e=>p||!m?e.filter(e=>"security"!==e):e,v=o.filter(e=>J.u.includes(e)),S=v.includes("alerts")?c-J.X:c,$=await ex(o,i);f(`due ${o.join(",")}`);let{done:D,tried:x}=await eB(o.filter(e=>!J.u.includes(e)),S,i,async e=>{if(f(`task ${e}`),"heartbeats"===e){let e=new Date;u+=await (0,d.r)(e,(t,a)=>null!==(0,I.x)($,{monitorId:t,appId:a},e),r)}"checks"===e&&(u+=await e$(new Date,S,i,r,$)),"vercel"===e&&await eC(new Date,S,i,(0,A.Y)(a));let t=ev[e];t&&await t({now:new Date,deadline:S,errors:i,protectOnly:(0,J.$)(e,n)}),"cloudflare"===e&&await (0,K.h)(new Date,S,i),"domains"===e&&await (0,K.H)(new Date,S,i),"tls"===e&&await (0,K.V)(new Date,S,i),"rdap"===e&&await (0,K.W)(new Date,S,i),"eol"===e&&await (0,K.i)(new Date,S,i),"node"===e&&(await el(new Date,S,i),await ep(new Date,S,i)),"status"===e&&await (0,k.i)(new Date),"logs"===e&&await (0,w._)(new Date,S,i),"pageviews"===e&&await (0,y.f)(new Date,S,i),"security"===e&&(m=(await (0,b.U)({now:s,deadline:S,errors:i,paused:n,early:p})).complete)});l.push(...D),f("main done"),await eT({lastRun:t,done:g(l),tried:x,started:s,errors:i}),f("settled");let E=await ez(v,c,i);f("post done"),E.length&&await eA({...t,...Object.fromEntries(g([...l,...E]).map(e=>[e,s.toISOString()]))}),l.push(...E)}catch(e){i.push(`run: ${(0,eg.f)(e)}`)}finally{let e=Date.now()-s.getTime();await (0,r.f)().update(n.collectorRuns).set({finishedAt:new Date,ok:0===i.length,errorSummary:i.join("\n").slice(0,2e3)||null,durationMs:e,tasks:l,checks:u}).where((0,t.u)(n.collectorRuns.id,a.id)).catch(()=>void 0),await q(o).catch(()=>void 0)}return{skipped:!1,ok:0===i.length,tasks:l,checks:u,durationMs:Date.now()-s.getTime(),errors:i}}e.s(["f",0,e_],956846)},703352,948736,873354,655060,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(502240);async function o(e,i,l=new Map){if(!e.length)return 0;let u=await (0,r.f)().select({app:n.deployments.resourceId,id:n.deployments.externalId,source:n.deployments.source,branch:n.deployments.branch,sha:n.deployments.commitSha}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,e.map(e=>e.id)),(0,t.u)(n.deployments.isCurrent,!0))),d=0;for(let o of e){let e,c=u.find(e=>e.app===o.id);if(!c)continue;let f=(0,s.O)(o.meta?.productionSource),p=l.get(c.id),w={source:c.source??null,branch:c.branch??null,sha:c.sha??null};if(!(e=p?(0,s.s)({...w,branchFrom:p.branchFrom??null,gitDirty:!0===p.gitDirty}):f?.id===c.id?{kind:f.kind,...f.ref?{ref:f.ref}:{},...f.sha?{sha:f.sha}:{}}:"git"===w.source||"cli"===w.source?(0,s.s)(w):null)){if(f?.at&&f.id!==c.id){let e={...f};delete e.at,await (0,r.f)().update(n.resources).set({meta:a.B`${n.resources.meta} || ${JSON.stringify({productionSource:e})}::jsonb`}).where((0,t.u)(n.resources.id,o.id)),d++}continue}e={...e,id:c.id};let m=!!f?.at&&i.getTime()-Date.parse(f.at)<s.u;if((0,s.v)(f,e)&&m)continue;let h={...e,at:i.toISOString()};await (0,r.f)().update(n.resources).set({meta:a.B`${n.resources.meta} || ${JSON.stringify({productionSource:h})}::jsonb`}).where((0,t.u)(n.resources.id,o.id)),d++}return d}e.s(["f",0,o],703352);var i=e.i(442473),l=e.i(381725),u=e.i(767512),d=e.i(971724),c=e.i(206033),f=e.i(455744),p=e.i(469755),w=e.i(105954),m=e.i(857897);let h=/not enabled/i,g=(e,t,a={})=>({ok:!1,kind:e,error:t,...a}),y="Vercel Web Analytics answered in a format the console doesn't recognise.",b=d.z.object({data:d.z.object({pageviews:c.z.number().finite().nonnegative(),visitors:c.z.number().finite().nonnegative()})}),k=d.z.object({data:f.z.array(p.z.unknown())}),v=d.z.object({timestamp:w.z.string().transform((e,t)=>{let a=Date.parse(e);return Number.isNaN(a)?(t.addIssue({code:"custom",message:"bad timestamp"}),m.z.NEVER):a}),pageviews:c.z.number().finite().nonnegative().nullish().catch(null)});async function I(e,t,a,r){let n=r.since.toISOString(),s=r.until.toISOString(),o=r.fetch??fetch,l=new AbortController,u=setTimeout(()=>l.abort(new DOMException("window","TimeoutError")),r.timeoutMs??8e3),d=r.signal?AbortSignal.any([l.signal,r.signal]):l.signal,c=(0,i.X)(d);async function f(i,u){let f=new URLSearchParams({projectId:a,teamId:t,...u,since:n,until:s});try{let t=await Promise.race([o(`https://api.vercel.com/v1/query/web-analytics/visits/${i}?${f}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:d,cache:"no-store"}),c]),a=null,r=!1;if(401===t.status||403===t.status)a=g("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));a=g("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status){let e=await Promise.race([t.text(),c]).catch(()=>"");h.test(e)?r=!0:a=g("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else t.ok||(a=g("transient",`Vercel Web Analytics returned an error (${t.status}).`,{status:t.status}));if(r)return{kind:"off"};if(a)return await t.body?.cancel().catch(()=>void 0),{kind:"fail",fail:a};try{return{kind:"body",body:await Promise.race([t.json(),c])}}catch(e){if(d.aborted)throw e;return{kind:"fail",fail:g("format",y)}}}catch{return{kind:"fail",fail:d.aborted?l.signal.aborted&&!r.signal?.aborted?g("transient","Vercel Web Analytics didn't answer in time."):g("transient","Reading Vercel Web Analytics was cancelled."):g("transient","Couldn't reach Vercel Web Analytics.")}}}try{let[e,t]=await Promise.all([f("count",{}),f("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?k.safeParse(t.body):null,s="fail"===t.kind?t.fail:n?.success?null:g("format",y),o=a.find(e=>"transient"===e.kind);if(o)return o;if(s)return s;if(!n?.success)return g("format",y);let i="body"===e.kind?b.safeParse(e.body):null,l=n.data.data.flatMap(e=>{let t=v.safeParse(e);return t.success?[t.data]:[]});if(l.length>0&&l.every(e=>null==e.pageviews))return g("format",y);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(i?.success)return{ok:!0,enabled:!0,total:i.data.data.pageviews,visitors:i.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 A=e.i(943816);async function S(e,t,a){let r=await (0,l.g)(null);if(!r.length)return;let n=new Date(36e5*Math.floor(e.getTime()/36e5)-828e5);await (0,i.P)(r,3,async r=>{if(Date.now()+8500>t)return;let s=await I(r.token,r.teamId,r.projectId,{since:n,until:e});if(!s.ok)return void a.push(`pageviews/${r.appName}: ${s.error}`);try{await (0,u.r)(r.appId,{pageviews:(0,A.Z)(s,e)},e)}catch{a.push(`pageviews/${r.appName}: couldn't save the page views`)}})}e.s(["f",0,S],948736);var $=e.i(422067),D=e.i(433609),x=e.i(800523),E=e.i(479301);let j="security.afterDeploy",M=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),O=e=>"string"==typeof e&&e.length>0&&e.length<=100;function R(e){let t={pending:{},checked:{}};if(!M(e))return t;if(M(e.pending))for(let[a,r]of Object.entries(e.pending)){if(!(0,E.f)(a)||!M(r)||!O(r.id)||"string"!=typeof r.at||Number.isNaN(Date.parse(r.at)))continue;let e="number"==typeof r.attempts&&Number.isInteger(r.attempts)&&r.attempts>=0?Math.min(r.attempts,3):0;t.pending[a]={id:r.id,at:r.at,attempts:e,...!0===r.next?{next:!0}:{},...!0===r.deps?{deps:!0}:{}}}if(M(e.checked))for(let[a,r]of Object.entries(e.checked))(0,E.f)(a)&&O(r)&&(t.checked[a]=r);return t}let N=e=>Object.keys(e.pending).length>0;function C(e,t,a){let r={pending:{...e.pending},checked:{...e.checked}},n=!1;for(let e of t)(0,E.f)(e.appId)&&O(e.deploymentId)&&r.checked[e.appId]!==e.deploymentId&&r.pending[e.appId]?.id!==e.deploymentId&&(r.pending[e.appId]={id:e.deploymentId,at:a.toISOString(),attempts:0},n=!0);return{state:r,changed:n}}function P(e,t){let a,r={...e.pending},n={...e.checked};for(let e of t){let t=r[e];t&&(delete r[e],delete n[e],n[e]=t.id)}return{pending:r,checked:(a=Object.entries(n)).length<=500?n:Object.fromEntries(a.slice(a.length-500))}}function T(e,t){let a=Object.entries(e.pending).filter(([,e])=>t.getTime()-Date.parse(e.at)>216e5).map(([e])=>e);return a.length?P(e,a):e}let z=(e,t)=>Object.entries(e.pending).filter(([,e])=>!e[t]).map(([e])=>e);function B(e,t){let a={},r=[];for(let[n,s]of Object.entries(e.pending)){let e={...s};t.hosting&&!e.next&&(t.nextDone?.has(n)?e.next=!0:t.nextStarted?.has(n)&&(e.attempts=Math.min(e.attempts+1,3))),t.devops&&!e.deps&&t.depsDone?.has(n)&&(e.deps=!0),a[n]=e,((e.next||!t.hosting)&&(e.deps||!t.devops)||e.attempts>=3)&&r.push(n)}return P({pending:a,checked:e.checked},r)}e.s(["Z",0,j,"X",0,function(e){var t,a;let r=e.currentId;return r&&e.state.checked[e.appId]!==r&&e.state.pending[e.appId]?.id!==r&&(t=e.changedIds,((a=r)&&t.includes(a)?a:null)||e.createdAt&&e.now.getTime()-e.createdAt.getTime()<=216e5)?r:null},"a",0,T,"A",0,N,"B",0,C,"p",0,z,"Y",0,R,"E",0,B],873354);var _=e.i(970465);let W="security.slot",U=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0&&e.length<=100).slice(0,1e3):[],F=(e,t)=>[...new Set([...e,...t])].slice(0,1e3),V=e=>async()=>{let[a]=await (0,r.f)().select({value:n.settings.value}).from(n.settings).where((0,t.u)(n.settings.key,e)).limit(1);return a?.value??null},L=e=>async t=>{await (0,r.f)().insert(n.settings).values({key:e,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})},J={read:V(j),write:L(j),readSlot:V(W),writeSlot:L(W),nextCheck:x.h,depsStep:(e,t)=>(0,D.O)(e,t)};async function Y(e,t=J){let a=R(await t.read()),r=T(a,e.now),n=!e.paused.has("hosting"),s=!e.paused.has("devops"),o=n?z(r,"next"):[],i=s?z(r,"deps"):[],l=e.early?null:function(e,t){let a=e&&"object"==typeof e&&!Array.isArray(e)?e:{};if(a.slot!==t)return{slot:t,runs:0,next:[],repos:[],cut:{},nextDone:!1,depsDone:!1};let r="number"==typeof a.runs&&Number.isInteger(a.runs)&&a.runs>=0?a.runs:0,n={};if(a.cut&&"object"==typeof a.cut&&!Array.isArray(a.cut))for(let[e,t]of Object.entries(a.cut).slice(0,1e3))e.length<=100&&"number"==typeof t&&Number.isInteger(t)&&t>0&&(n[e]=Math.min(t,2));return{slot:t,runs:r,next:U(a.next),repos:U(a.repos),cut:n,nextDone:!0===a.nextDone,depsDone:!0===a.depsDone}}(await t.readSlot(),new Date((0,$.G)("security",e.now)).toISOString()),u=!!l&&n&&!l.nextDone,d=!!l&&s&&!l.depsDone,c=n&&(o.length>0||u),f=s&&(i.length>0||d),p={hosting:n,devops:s,nextDone:new Set,nextStarted:new Set,depsDone:new Set},w=async()=>{let a=Math.min(Date.now()+_.y,!l&&f?e.deadline-2*D.d:e.deadline),r=u?[...l.next,...Object.entries(l.cut).filter(([,e])=>e>=2).map(([e])=>e)]:[],n=u?{first:o,skip:[...new Set(r)].filter(e=>!o.includes(e))}:{only:o},s=await t.nextCheck(a,n);for(let t of s.failed)e.errors.push(`security ${t}`);for(let e of s.done)p.nextDone.add(e);for(let e of o)s.listed.includes(e)||p.nextDone.add(e);for(let e of s.started)p.nextStarted.add(e);if(u){let e=new Set(s.done);for(let t of(l.next=F(l.next,s.done),s.started))e.has(t)||(l.cut[t]=Math.min((l.cut[t]??0)+1,2));l.nextDone=s.listed.every(t=>e.has(t)||(l.cut[t]??0)>=2)}},m=async()=>{let a=await t.depsStep(Math.min(Date.now()+D.o,e.deadline),d?{marked:i,onlyMarked:!1,skip:l.repos}:{marked:i,onlyMarked:!0});for(let t of(a.problem&&e.errors.push(`security deps: ${a.problem}`),a.settled))p.depsDone.add(t);d&&(l.repos=F(l.repos,a.done),l.depsDone=a.complete)};try{l&&l.runs++,l?(f&&await m(),c&&await w()):(c&&await w(),f&&await m())}finally{let e=null;if(l)try{await t.writeSlot(l)}catch(t){e=t}try{let e=B(r,p);JSON.stringify(e)!==JSON.stringify(a)&&await t.write(e)}catch(t){e??=t}if(e)throw e}return{complete:!l||(l.nextDone||!n)&&(l.depsDone||!s)||l.runs>=20}}async function q(e,t,a=J){if(!e.length)return!1;let{state:r,changed:n}=C(R(await a.read()),e,t);return n&&await a.write(r),n}e.s(["m",0,q,"Y",0,e=>N(R(e)),"U",0,Y],655060)}]})();
8
+
9
+ //# sourceMappingURL=src_lib_1sdusf16f07x-._.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,security:21600,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,security:16560};function i(t,i){let n=1e3*e[t],r=(a[t]??0)*1e3;return Math.floor((i.getTime()+5e3-r)/n)*n+r}let n={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,security:11e3},r={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,status:null,alerts:null,digest:null,security:null},s={security:["hosting","devops"]},o=["supabase"];function l(t,e){return t.filter(t=>{let a=s[t];if(a)return a.some(t=>!e.has(t));let i=r[t];return null===i||!e.has(i)||o.includes(t)})}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,a,n,r=new Set){let s=0;return l(Object.keys(e),r).filter(r=>{let o=t[r]?new Date(t[r]).getTime():null;if(e[r]<=60)return null===o||!!n||a.getTime()-o>=1e3*e[r]-1e4;let l=i(r,a);return(null===o||!(o>=l-5e3))&&(!(null===o||a.getTime()+5e3-l>=6e4)||!(s>=2)&&(s++,!0))})},"$",0,(t,e)=>{let a=r[t];return null!==a&&e.has(a)&&o.includes(t)},"B",0,function(t,e,a){return!a||!t||e.getTime()-t.getTime()>=5e4},"G",0,i,"z",0,function(t,e,a){return e-a>=(n[t]??0)},"_",0,function(t,a,i=new Set){if(!a||t.includes("security")||!l(["security"],i).length)return{due:[...t],early:!1};let n=Object.keys(e),r=t.findIndex(t=>n.indexOf(t)>n.indexOf("security")),s=[...t];return s.splice(r<0?s.length:r,0,"security"),{due:s,early:!0}}])},988294,593111,t=>{var e=t.i(875225),a=t.i(924924),i=t.i(618916),n=t.i(905685),r=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 c(t,n){let[r]=await (0,a.f)().insert(i.rateLimits).values({key:t,windowStart:n,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===r.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 r.count}function g(t,e){return(0,u.A)(t,e,{hit:c})}async function f(t,n,r){let s=(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,s),(0,e.u)(i.monitors.kind,"heartbeat"))).limit(1);if(!o)return{status:"unknown"};let d=await g(u.t.ping,s);return d.allowed?(await (0,a.f)().update(i.monitors).set({lastPingAt:r,lastPingKind:n,updatedAt:r}).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 c=(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,r.B)(e.lastCheckedAt,t,u)),g=[],f=[];for(let{m:s}of c){let u=s.periodS??3600,c=s.graceS??600,m=(0,o.C)({lastPingAt:s.lastPingAt,lastPingKind:s.lastPingKind,periodS:u,graceS:c,createdAt:s.createdAt},t);if("unknown"===m.state)continue;let h=m.state!==s.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,s.id),(0,e.u)(i.monitors.state,s.state),(0,e.u)(i.monitors.ownerPaused,!1),(0,e.u)(i.monitors.paused,!1),null===s.lastPingAt?(0,e.M)(i.monitors.lastPingAt):(0,e.u)(i.monitors.lastPingAt,s.lastPingAt),null===s.periodS?(0,e.M)(i.monitors.periodS):(0,e.u)(i.monitors.periodS,s.periodS),null===s.graceS?(0,e.M)(i.monitors.graceS):(0,e.u)(i.monitors.graceS,s.graceS))).returning({id:i.monitors.id})).length&&((void 0===d||(0,r.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)}),g.push((0,n.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,a.f)().insert(i.checks).values(f),await (0,s.f)(g),f.length}t.s(["f",0,g],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 n=t=>({state:"err",text:`Down \xb7 ${t}`,failStreak:e.I}),r=1e3*t.periodS,s=1e3*t.graceS;if(!t.lastPingAt)return a.getTime()-t.createdAt.getTime()<=r+s?{state:"unknown",text:"Waiting for the first ping",failStreak:0}:n("never pinged");let o=a.getTime()-t.lastPingAt.getTime();return"fail"===t.lastPingKind?n("the job reported a failure"):"start"===t.lastPingKind&&o>s?n("started but didn't finish"):o<=r?{state:"ok",text:`Up \xb7 pinged ${i(o)} ago`,failStreak:0}:o<=r+s?{state:"warn",text:`Late \xb7 last ping ${i(o)} ago`,failStreak:1}:n(`no ping for ${i(o)}`)},"r",0,function(t){let[e,i,...n]=t;return e&&a.test(e)&&!n.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}])}]})();
1
+ (()=>{"use strict";module.exports=[422067,e=>{let t={heartbeats:60,checks:60,vercel:60,supabase:300,supabaseUsage:3600,neon:300,firebase:300,firebaseUsage:3600,extraDbs:3600,cloudflare:3600,domains:21600,tls:3600,rdap:3600,eol:86400,status:300,logs:300,pageviews:1800,node:43200,security:21600,alerts:60,digest:300},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,node:13380,security:16560};function n(e,n){let i=1e3*t[e],r=(a[e]??0)*1e3;return Math.floor((n.getTime()+5e3-r)/i)*i+r}let i={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,node:6e3,security:11e3},r={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,node:null,status:null,alerts:null,digest:null,security:null},s={security:["hosting","devops"]},o=["supabase"];function l(e,t){return e.filter(e=>{let a=s[e];if(a)return a.some(e=>!t.has(e));let n=r[e];return null===n||!t.has(n)||o.includes(e)})}e.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"P",0,function(e,t,a){let n=Math.min(e,t-a);return n<1e3?null:n},"S",0,function(e,a,i,r=new Set){let s=0;return l(Object.keys(t),r).filter(r=>{let o=e[r]?new Date(e[r]).getTime():null;if(t[r]<=60)return null===o||!!i||a.getTime()-o>=1e3*t[r]-1e4;let l=n(r,a);return(null===o||!(o>=l-5e3))&&(!(null===o||a.getTime()+5e3-l>=6e4)||!(s>=2)&&(s++,!0))})},"$",0,(e,t)=>{let a=r[e];return null!==a&&t.has(a)&&o.includes(e)},"B",0,function(e,t,a){return!a||!e||t.getTime()-e.getTime()>=5e4},"G",0,n,"z",0,function(e,t,a){return t-a>=(i[e]??0)},"_",0,function(e,a,n=new Set){if(!a||e.includes("security")||!l(["security"],n).length)return{due:[...e],early:!1};let i=Object.keys(t),r=e.findIndex(e=>i.indexOf(e)>i.indexOf("security")),s=[...e];return s.splice(r<0?s.length:r,0,"security"),{due:s,early:!0}}])},988294,593111,e=>{var t=e.i(875225),a=e.i(924924),n=e.i(618916),i=e.i(905685),r=e.i(422067),s=e.i(656083),o=e.i(125160),l=e.i(984125),u=e.i(189104),d=e.i(518899);async function c(e,i){let[r]=await (0,a.f)().insert(n.rateLimits).values({key:e,windowStart:i,count:1}).onConflictDoUpdate({target:[n.rateLimits.key,n.rateLimits.windowStart],set:{count:d.B`${n.rateLimits.count} + 1`}}).returning({count:n.rateLimits.count});if(1===r.count)try{await (0,a.f)().delete(n.rateLimits).where((0,t.S)(n.rateLimits.windowStart,new Date(Date.now()-864e5)))}catch{console.warn("rate limit sweep failed")}return r.count}function g(e,t){return(0,u.A)(e,t,{hit:c})}async function f(e,i,r){let s=(0,l.f)(e),[o]=await (0,a.f)().select({id:n.monitors.id}).from(n.monitors).where((0,t.b)((0,t.u)(n.monitors.tokenHash,s),(0,t.u)(n.monitors.kind,"heartbeat"))).limit(1);if(!o)return{status:"unknown"};let d=await g(u.t.ping,s);return d.allowed?(await (0,a.f)().update(n.monitors).set({lastPingAt:r,lastPingKind:i,updatedAt:r}).where((0,t.u)(n.monitors.id,o.id)),{status:"ok"}):{status:"limited",retryAfter:d.retryAfter}}async function m(e,l=()=>!1,u=!1,d){let c=(await (0,a.f)().select({m:n.monitors}).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,"heartbeat"),(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),...d?[(0,t.u)(n.monitors.id,d)]:[]))).filter(({m:t})=>void 0!==d||(0,r.B)(t.lastCheckedAt,e,u)),g=[],f=[];for(let{m:s}of c){let u=s.periodS??3600,c=s.graceS??600,m=(0,o.C)({lastPingAt:s.lastPingAt,lastPingKind:s.lastPingKind,periodS:u,graceS:c,createdAt:s.createdAt},e);if("unknown"===m.state)continue;let h=m.state!==s.state;(await (0,a.f)().update(n.monitors).set({state:m.state,failStreak:m.failStreak,lastCheckedAt:e,lastError:"ok"===m.state?null:m.text,...h?{stateSince:e}:{},updatedAt:e}).where((0,t.b)((0,t.u)(n.monitors.id,s.id),(0,t.u)(n.monitors.state,s.state),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.monitors.paused,!1),null===s.lastPingAt?(0,t.M)(n.monitors.lastPingAt):(0,t.u)(n.monitors.lastPingAt,s.lastPingAt),null===s.periodS?(0,t.M)(n.monitors.periodS):(0,t.u)(n.monitors.periodS,s.periodS),null===s.graceS?(0,t.M)(n.monitors.graceS):(0,t.u)(n.monitors.graceS,s.graceS))).returning({id:n.monitors.id})).length&&((void 0===d||(0,r.B)(s.lastCheckedAt,e,!0))&&f.push({monitorId:s.id,at:e,ok:"err"!==m.state,statusCode:null,latencyMs:null,error:"ok"===m.state?null:m.text,inMaintenance:l(s.id,s.resourceId)}),g.push((0,i.F)({resourceId:s.resourceId,path:s.name??"heartbeat",prev:s.state,next:m.state,code:null,error:m.text,at:e,heartbeat:!0})))}return f.length&&await (0,a.f)().insert(n.checks).values(f),await (0,s.f)(g),f.length}e.s(["f",0,g],593111),e.s(["_",0,f,"r",0,m],988294)},984125,e=>{var t=e.i(666680);e.s(["f",0,function(e){return(0,t.createHash)("sha256").update(e).digest("hex")}])},125160,e=>{var t=e.i(905685);let a=/^hb_[0-9a-f]{32}$/,n=e=>{let t=Math.max(1,Math.floor(e/6e4));if(t<60)return`${t} min`;let a=Math.floor(t/60);return a<48?`${a} h`:`${Math.floor(a/24)} days`};e.s(["C",0,function(e,a){let i=e=>({state:"err",text:`Down \xb7 ${e}`,failStreak:t.I}),r=1e3*e.periodS,s=1e3*e.graceS;if(!e.lastPingAt)return a.getTime()-e.createdAt.getTime()<=r+s?{state:"unknown",text:"Waiting for the first ping",failStreak:0}:i("never pinged");let o=a.getTime()-e.lastPingAt.getTime();return"fail"===e.lastPingKind?i("the job reported a failure"):"start"===e.lastPingKind&&o>s?i("started but didn't finish"):o<=r?{state:"ok",text:`Up \xb7 pinged ${n(o)} ago`,failStreak:0}:o<=r+s?{state:"warn",text:`Late \xb7 last ping ${n(o)} ago`,failStreak:1}:i(`no ping for ${n(o)}`)},"r",0,function(e){let[t,n,...i]=e;return t&&a.test(t)&&!i.length?void 0===n?{token:t,kind:"ok"}:"fail"===n||"start"===n?{token:t,kind:n}:null:null},"i",0,function(e){let t=String(e??"").match(/(?<![0-9a-z_])hb_[0-9a-f]{32}(?![0-9a-zA-Z])/g)??[];return 1===t.length?t[0]:null}])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_1sz77jjn7xl7o._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[445710,634418,e=>{var t=e.i(93321),r=e.i(548734),s=e.i(837137),o=e.i(306556);let n=(e,r)=>null===r?(0,t.M)(e):(0,t.u)(e,r);async function a(e,a,i){let u=(0,o.G)(e.failStreak,a);return(await (0,r.f)().update(s.monitors).set({state:u.state,failStreak:u.failStreak,lastCheckedAt:i,lastStatus:a.statusCode,lastLatencyMs:a.latencyMs,lastError:a.error,...u.state!==e.state?{stateSince:i}:{},updatedAt:i}).where((0,t.b)((0,t.u)(s.monitors.id,e.id),null===e.lastCheckedAt?(0,t.M)(s.monitors.lastCheckedAt):(0,t.u)(s.monitors.lastCheckedAt,e.lastCheckedAt),(0,t.u)(s.monitors.state,e.state),(0,t.u)(s.monitors.failStreak,e.failStreak),(0,t.u)(s.monitors.url,e.url),(0,t.u)(s.monitors.expectedStatus,e.expectedStatus),n(s.monitors.bodyContains,e.bodyContains),n(s.monitors.jsonPath,e.jsonPath),n(s.monitors.jsonEquals,e.jsonEquals))).returning({id:s.monitors.id})).length>0}e.s(["T",0,n,"j",0,a],445710);let i={heartbeats:60,checks:60,vercel:60,supabase:300,supabaseUsage:3600,neon:300,firebase:300,firebaseUsage:3600,extraDbs:3600,cloudflare:3600,domains:21600,tls:3600,rdap:3600,eol:86400,status:300,logs:300,pageviews:1800,security:21600,alerts:60,digest:300},u={supabase:0,digest:0,neon:60,firebase:120,status:180,logs:240,pageviews:1620,supabaseUsage:660,extraDbs:960,firebaseUsage:1320,cloudflare:1980,tls:2460,rdap:3120,domains:5280,eol:13560,security:16560};function d(e,t){let r=1e3*i[e],s=(u[e]??0)*1e3;return Math.floor((t.getTime()+5e3-s)/r)*r+s}let l={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,security:11e3},m={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,status:null,alerts:null,digest:null,security:null},c={security:["hosting","devops"]},h=["supabase"];function g(e,t){return e.filter(e=>{let r=c[e];if(r)return r.some(e=>!t.has(e));let s=m[e];return null===s||!t.has(s)||h.includes(e)})}e.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"t",0,i,"P",0,function(e,t,r){let s=Math.min(e,t-r);return s<1e3?null:s},"S",0,function(e,t,r,s=new Set){let o=0;return g(Object.keys(i),s).filter(s=>{let n=e[s]?new Date(e[s]).getTime():null;if(i[s]<=60)return null===n||!!r||t.getTime()-n>=1e3*i[s]-1e4;let a=d(s,t);return(null===n||!(n>=a-5e3))&&(!(null===n||t.getTime()+5e3-a>=6e4)||!(o>=2)&&(o++,!0))})},"$",0,(e,t)=>{let r=m[e];return null!==r&&t.has(r)&&h.includes(e)},"B",0,function(e,t,r){return!r||!e||t.getTime()-e.getTime()>=5e4},"G",0,d,"z",0,function(e,t,r){return t-r>=(l[e]??0)},"_",0,function(e,t,r=new Set){if(!t||e.includes("security")||!g(["security"],r).length)return{due:[...e],early:!1};let s=Object.keys(i),o=e.findIndex(e=>s.indexOf(e)>s.indexOf("security")),n=[...e];return n.splice(o<0?n.length:o,0,"security"),{due:n,early:!0}}],634418)},895176,383487,e=>{var t=e.i(93321),r=e.i(530385),s=e.i(351674),o=e.i(548734),n=e.i(837137),a=e.i(903816),i=e.i(646324),u=e.i(33135),d=e.i(19809),l=e.i(445710),m=e.i(306556),c=e.i(634418),h=e.i(601219),g=e.i(436357),p=e.i(757902),f=e.i(519051),w=e.i(371289),k=e.i(201516),b=e.i(469762),y=e.i(968715),S=e.i(910697),A=e.i(767163);async function I(e,r=()=>!1,s=!1,a){let i=(await (0,o.f)().select({m:n.monitors}).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,"heartbeat"),(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),...a?[(0,t.u)(n.monitors.id,a)]:[]))).filter(({m:t})=>void 0!==a||(0,c.B)(t.lastCheckedAt,e,s)),u=[],d=[];for(let{m:s}of i){let i=s.periodS??3600,l=s.graceS??600,h=(0,A.C)({lastPingAt:s.lastPingAt,lastPingKind:s.lastPingKind,periodS:i,graceS:l,createdAt:s.createdAt},e);if("unknown"===h.state)continue;let g=h.state!==s.state;(await (0,o.f)().update(n.monitors).set({state:h.state,failStreak:h.failStreak,lastCheckedAt:e,lastError:"ok"===h.state?null:h.text,...g?{stateSince:e}:{},updatedAt:e}).where((0,t.b)((0,t.u)(n.monitors.id,s.id),(0,t.u)(n.monitors.state,s.state),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.monitors.paused,!1),null===s.lastPingAt?(0,t.M)(n.monitors.lastPingAt):(0,t.u)(n.monitors.lastPingAt,s.lastPingAt),null===s.periodS?(0,t.M)(n.monitors.periodS):(0,t.u)(n.monitors.periodS,s.periodS),null===s.graceS?(0,t.M)(n.monitors.graceS):(0,t.u)(n.monitors.graceS,s.graceS))).returning({id:n.monitors.id})).length&&((void 0===a||(0,c.B)(s.lastCheckedAt,e,!0))&&d.push({monitorId:s.id,at:e,ok:"err"!==h.state,statusCode:null,latencyMs:null,error:"ok"===h.state?null:h.text,inMaintenance:r(s.id,s.resourceId)}),u.push((0,m.F)({resourceId:s.resourceId,path:s.name??"heartbeat",prev:s.state,next:h.state,code:null,error:h.text,at:e,heartbeat:!0})))}return d.length&&await (0,o.f)().insert(n.checks).values(d),await (0,h.f)(u),d.length}e.i(312573),e.i(323878),e.s(["f",0,I],383487);var P=e.i(714530),$=e.i(513701);function M(e){let t="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,url:e.url,path:t?e.name??"heartbeat":(0,i.K)(e.url),state:e.state,lastStatus:e.lastStatus,lastLatencyMs:e.lastLatencyMs,failStreak:e.failStreak,paused:e.paused,ownerPaused:e.ownerPaused,lastCheckedAt:e.lastCheckedAt,expectedStatus:e.expectedStatus,timeoutMs:e.timeoutMs,intervalS:e.intervalS,bodyContains:e.bodyContains,jsonPath:e.jsonPath,jsonEquals:e.jsonEquals,lastError:e.lastError,kind:t?"heartbeat":"http",name:e.name??null,periodS:e.periodS??null,graceS:e.graceS??null,lastPingAt:e.lastPingAt??null,stateSince:e.stateSince??null}}async function C(e){let s=await (0,o.f)().select({m:n.monitors,appName:n.resources.name,goneAt:n.resources.goneAt,appMeta:n.resources.meta}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0))).orderBy(n.resources.name,(0,r.A)(n.monitors.kind),n.monitors.url).limit(S.O.monitors),a=await (0,$._)(s.map(e=>e.m.id),e),i=await x(s.map(e=>({id:e.m.id,kind:e.m.kind,url:e.m.url,appId:e.m.resourceId,appName:e.appName,appMeta:e.appMeta,lastError:e.m.lastError})));return s.map(({m:t,appName:r,goneAt:s})=>({...M(t),appName:r,appGone:null!==s,days:a.get(t.id),uptime30:(0,y.Y)((0,y.w)(a.get(t.id),e,y.I)),move:i.get(t.id)??null}))}async function x(e){if(!e.some(e=>null!==(0,g.Y)(e.appMeta)))return new Map;let r=await (0,o.f)().select({id:n.resources.id,name:n.resources.name,meta:n.resources.meta}).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))).limit(500);return(0,g.P)(e,r)}let T={ok:!1,error:"That monitor no longer exists."},j={ok:!1,error:"This app already has a monitor for that address."},v={ok:!1,error:"That app isn't watched. Tick it in Connections → Sync first."},E="This app no longer exists at Vercel.",D={ok:!1,error:E},B="The app no longer exists at Vercel",F={ok:!0,message:"Already running."},q={ok:!1,error:"Someone else changed this monitor just now. Reopen it and try again."},R={ok:!1,error:"This app already has a heartbeat with that name."},O={ok:!1,error:"That monitor isn't a heartbeat."},L={ok:!1,error:"That monitor is a heartbeat. Edit it from its own menu."},U={ok:!1,error:"The console doesn't check a heartbeat. It waits for your job's ping."},N=e=>"heartbeat"===e.kind?e.name??"heartbeat":(0,b.F)(e.url);async function _(){let e=await (0,o.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(S.O.apps);if(!e.length)return[];let r=await (0,o.f)().select({appId:n.monitors.resourceId,url:n.monitors.url}).from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,e.map(e=>e.id)),(0,t.u)(n.monitors.kind,"http"))).orderBy(n.monitors.createdAt);return e.map(e=>({...e,domain:(0,b.m)(e.name,r.filter(t=>t.appId===e.id).map(e=>e.url))}))}async function H(e){return(0,o.f)().transaction(async t=>(await t.execute(s.B`select pg_advisory_xact_lock(hashtext('ops.monitors'))`),e(t)))}async function K(e=(0,o.f)()){let[r]=await e.select({n:s.B`count(*)::int`}).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)));return r?.n??0}async function G(e=(0,o.f)()){let[r]=await e.select({n:s.B`count(*)::int`}).from(n.monitors).where((0,t.u)(n.monitors.kind,"heartbeat"));return r?.n??0}async function J(e){let[r]=await (0,o.f)().select({m:n.monitors,watched:n.resources.monitored,goneAt:n.resources.goneAt}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.u)(n.monitors.id,e)).limit(1);return r??null}function z(e){let t=e?.code??e?.cause?.code;return"string"==typeof t?t:void 0}async function V(e,r){return H(async s=>{let[o]=await s.select({id:n.resources.id,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.id,e),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0))).limit(1);if(!o)return v;if(o.goneAt)return D;let a=(0,k.g)(await K(s));return a?{ok:!1,error:a}:(await s.insert(n.monitors).values({resourceId:e,kind:"http",url:r.url,expectedStatus:r.expectedStatus,timeoutMs:r.timeoutMs,bodyContains:r.bodyContains,jsonPath:r.jsonPath,jsonEquals:r.jsonEquals}).onConflictDoNothing().returning({id:n.monitors.id})).length?{ok:!0,message:`Monitoring ${(0,b.F)(r.url)}. First result within a minute.`,audit:{message:`Monitor added: ${(0,b.F)(r.url)}`,resourceId:e}}:j})}async function X(e,r){let{token:s,hash:o}=(0,p.P)();return H(async a=>{let[i]=await a.select({id:n.resources.id,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.id,e),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0))).limit(1);if(!i)return v;if(i.goneAt)return D;let u=(0,k.f)(await G(a));return u?{ok:!1,error:u}:(await a.insert(n.monitors).values({resourceId:e,kind:"heartbeat",url:(0,p.B)(r.name),name:r.name,tokenHash:o,periodS:r.periodS,graceS:r.graceS,state:"unknown"}).onConflictDoNothing().returning({id:n.monitors.id})).length?{ok:!0,message:`Added ${r.name}. It waits for the first ping.`,token:s,audit:{message:`Heartbeat added: ${r.name}`,resourceId:e}}:R})}async function W(e,r){let s,a=await J(e);if(!a)return T;if("heartbeat"!==a.m.kind)return O;if(a.goneAt)return D;if(!a.watched)return v;let i=(0,p.B)(r.name),[u]=await (0,o.f)().select({id:n.monitors.id}).from(n.monitors).where((0,t.b)((0,t.u)(n.monitors.resourceId,a.m.resourceId),(0,t.u)(n.monitors.url,i),(0,t.c)(n.monitors.id,e))).limit(1);if(u)return R;try{s=await (0,o.f)().update(n.monitors).set({name:r.name,url:i,periodS:r.periodS,graceS:r.graceS,updatedAt:new Date}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.kind,"heartbeat"))).returning({id:n.monitors.id})}catch(e){if("23505"===z(e))return R;throw e}if(!s.length)return T;let d=a.m.name!==r.name;return{ok:!0,message:`Saved ${r.name}.`,audit:{message:`Heartbeat edited: ${r.name}`,...d&&a.m.name?{detail:`was ${a.m.name}`}:{},resourceId:a.m.resourceId}}}async function Y(e){let r=await J(e);if(!r)return T;if("heartbeat"!==r.m.kind)return O;let{token:s,hash:a}=(0,p.P)();if(!(await (0,o.f)().update(n.monitors).set({tokenHash:a,updatedAt:new Date}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.kind,"heartbeat"))).returning({id:n.monitors.id})).length)return T;let i=N(r.m);return{ok:!0,message:`New ping URL for ${i}. The old one no longer works.`,token:s,audit:{message:`Ping URL replaced: ${i}`,resourceId:r.m.resourceId}}}async function Q(e,r,s=new Date){let a=await J(e);if(!a)return T;if("heartbeat"!==a.m.kind)return O;if(!(await (0,o.f)().update(n.monitors).set({lastPingAt:s,lastPingKind:r,updatedAt:s}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.kind,"heartbeat"))).returning({id:n.monitors.id})).length)return T;let i=N(a.m),u=`Test ping (${r}) recorded for ${i}`,d=!1;try{let t=await (0,P.w)();await I(new Date,(e,r)=>null!==(0,f.x)(t,{monitorId:e,appId:r},new Date),!0,e),d=!0}catch{console.warn("test ping: recompute failed")}return{ok:!0,message:d?`${u}.`:`${u}. The state updates within a minute.`,audit:{message:u,detail:"Test",resourceId:a.m.resourceId}}}async function Z(e,r){let s,a=await J(e);if(!a)return T;if("heartbeat"===a.m.kind)return L;if(a.goneAt)return D;if(!a.watched)return v;let[i]=await (0,o.f)().select({id:n.monitors.id}).from(n.monitors).where((0,t.b)((0,t.u)(n.monitors.resourceId,a.m.resourceId),(0,t.u)(n.monitors.url,r.url),(0,t.c)(n.monitors.id,e))).limit(1);if(i)return j;let u=new Date,d={url:a.m.url,expectedStatus:a.m.expectedStatus,timeoutMs:a.m.timeoutMs,bodyContains:a.m.bodyContains,jsonPath:a.m.jsonPath,jsonEquals:a.m.jsonEquals},m=(0,k.V)(d,r)?{state:"unknown",failStreak:0,stateSince:u,lastCheckedAt:null,lastStatus:null,lastLatencyMs:null,lastError:null}:{};try{s=await (0,o.f)().update(n.monitors).set({url:r.url,expectedStatus:r.expectedStatus,timeoutMs:r.timeoutMs,bodyContains:r.bodyContains,jsonPath:r.jsonPath,jsonEquals:r.jsonEquals,...m,updatedAt:u}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.url,a.m.url),(0,t.u)(n.monitors.expectedStatus,a.m.expectedStatus),(0,l.T)(n.monitors.bodyContains,a.m.bodyContains),(0,l.T)(n.monitors.jsonPath,a.m.jsonPath),(0,l.T)(n.monitors.jsonEquals,a.m.jsonEquals))).returning({id:n.monitors.id})}catch(e){if("23505"===z(e))return j;throw e}if(!s.length)return await J(e)?q:T;let c=d.url!==r.url;return{ok:!0,message:a.m.ownerPaused?`Saved ${(0,b.F)(r.url)}. It's checked again once you resume it.`:`Checking ${(0,b.F)(r.url)} from the next run.`,audit:{message:`Monitor edited: ${(0,b.F)(r.url)}`,...c?{detail:`was ${(0,b.F)(d.url)}`}:{},resourceId:a.m.resourceId}}}async function ee(e,r){let s=await J(e);if(!s)return T;let a=new Date,i=N(s.m);if(r)return await (0,o.f)().update(n.monitors).set({ownerPaused:!0,updatedAt:a}).where((0,t.u)(n.monitors.id,e)),{ok:!0,message:`Paused ${i}. Its history is kept.`,audit:{message:`Monitor paused: ${i}`,resourceId:s.m.resourceId}};if(!s.m.ownerPaused)return F;let u=s.watched&&!s.goneAt;return H(async r=>{let o="heartbeat"===s.m.kind?null:(0,k.g)(await K(r),+!!u);return o?{ok:!1,error:o}:(await r.update(n.monitors).set({ownerPaused:!1,...u?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:a,updatedAt:a}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.ownerPaused,!0))).returning({id:n.monitors.id})).length?{ok:!0,message:u?`Resumed ${i}. First result within a minute.`:s.goneAt?`Resumed ${i}. ${B}, so it won't be checked.`:`Resumed ${i}. It's checked again once its app is watched.`,audit:{message:`Monitor resumed: ${i}`,resourceId:s.m.resourceId}}:(await r.select({id:n.monitors.id}).from(n.monitors).where((0,t.u)(n.monitors.id,e)).limit(1)).length?F:T})}async function et(e,r){let s=await (0,o.f)().select({paused:n.monitors.paused,ownerPaused:n.monitors.ownerPaused,kind:n.monitors.kind}).from(n.monitors).where((0,t.u)(n.monitors.resourceId,e));if(!s.length)return{ok:!1,error:"This app has no monitors."};let a=new Date;if(r)return await (0,o.f)().update(n.monitors).set({ownerPaused:!0,updatedAt:a}).where((0,t.u)(n.monitors.resourceId,e)),{ok:!0,message:`Paused ${s.length} monitor${1===s.length?"":"s"}. Their history is kept.`,audit:{message:`Monitors paused: ${s.length}`,resourceId:e}};let[i]=await (0,o.f)().select({watched:n.resources.monitored,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.u)(n.resources.id,e)).limit(1),u=!!i&&i.watched&&!i.goneAt,d=s.filter(e=>e.ownerPaused).length,l=1===d?"":"s",m=s.filter(e=>e.ownerPaused&&"heartbeat"!==e.kind).length;return H(async r=>{let s=(0,k.g)(await K(r),u?m:0);return s?{ok:!1,error:s}:(await r.update(n.monitors).set({ownerPaused:!1,...u?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:a,updatedAt:a}).where((0,t.b)((0,t.u)(n.monitors.resourceId,e),(0,t.u)(n.monitors.ownerPaused,!0))),{ok:!0,message:u?`Resumed ${d} monitor${l}. First results within a minute.`:i?.goneAt?`Resumed ${d} monitor${l}. ${B}, so they won't be checked.`:`Resumed ${d} monitor${l}. They're checked again once the app is watched.`,audit:{message:`Monitors resumed: ${d}`,resourceId:e}})})}async function er(e){let r=await J(e);if(!r)return T;let o=r.watched&&!r.goneAt&&"heartbeat"!==r.m.kind,a=s.B`(select count(*) from ${n.monitors} where ${n.monitors.resourceId} = ${r.m.resourceId}) > 1`,i=await H(async r=>(await r.delete(n.monitors).where((0,t.b)((0,t.u)(n.monitors.id,e),o?a:void 0)).returning({id:n.monitors.id})).length?"deleted":o&&(await r.select({id:n.monitors.id}).from(n.monitors).where((0,t.u)(n.monitors.id,e)).limit(1)).length?"last":"gone");if("gone"===i)return T;if("last"===i)return{ok:!1,error:(0,k.p)({appWatched:!0,monitorsOfApp:1})??"That monitor no longer exists."};let u=N(r.m);return{ok:!0,message:`Deleted ${u}.`,audit:{message:`Monitor deleted: ${u}`,resourceId:r.m.resourceId}}}function es(e,t){return!e.lastCheckedAt||t.getTime()-e.lastCheckedAt.getTime()>=c.O?null:{ok:!0,message:(0,k.T)({...e,lastCheckedAt:e.lastCheckedAt},t),passed:e.lastStatus===e.expectedStatus&&!e.lastError}}async function eo(e){let t=await J(e);if(!t)return T;if("heartbeat"===t.m.kind)return U;let r=t.goneAt?E:t.watched?(0,k.i)(t.m)?null:"Paused monitors aren't checked. Resume it first.":"Its app isn't watched. Tick it in Connections → Sync first.";if(r)return{ok:!1,error:r};let s=es(t.m,new Date);if(s)return s;let c=await (0,P.w)(),g=(0,w.W)()?(0,d.M)(t.m.expectedStatus):await (0,u.b)(t.m.url,{expectedStatus:t.m.expectedStatus,timeoutMs:t.m.timeoutMs,body:(0,a.C)(t.m)}),p=new Date;if(!await (0,l.j)(t.m,g,p)){let t=await J(e);return t?es(t.m,new Date)??{ok:!1,error:"The monitor changed while it was being checked. Try again."}:T}let y=null!==(0,f.x)(c,{monitorId:e,appId:t.m.resourceId},p);await (0,o.f)().insert(n.checks).values({monitorId:e,at:p,ok:g.ok,statusCode:g.statusCode,latencyMs:g.latencyMs,error:g.error,inMaintenance:y});let S=(0,m.G)(t.m.failStreak,g),A=(0,m.F)({resourceId:t.m.resourceId,path:(0,i.K)(t.m.url),prev:t.m.state,next:S.state,code:g.statusCode,error:g.error,at:p});return await (0,h.f)([A]),{ok:!0,message:(0,k.X)(g),passed:g.ok,audit:{message:`Check now: ${(0,b.F)(t.m.url)}`,resourceId:t.m.resourceId}}}e.s(["Q",0,K,"b",0,_,"X",0,eo,"_",0,X,"$",0,V,"j",0,er,"d",0,C,"J",0,x,"p",0,Q,"R",0,Y,"f",0,et,"C",0,ee,"M",0,M,"G",0,W,"q",0,Z,"e",0,H],895176)},757902,e=>{var t=e.i(666680);function r(e){return(0,t.createHash)("sha256").update(e).digest("hex")}e.s(["B",0,function(e){let r=e.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60);return`heartbeat:${r||(0,t.createHash)("sha256").update(e.trim().toLowerCase()).digest("hex").slice(0,16)}`},"P",0,function(){let e=`hb_${(0,t.randomBytes)(16).toString("hex")}`;return{token:e,hash:r(e)}},"C",0,r])}]})();
1
+ (()=>{"use strict";module.exports=[445710,634418,e=>{var t=e.i(93321),r=e.i(548734),s=e.i(837137),o=e.i(306556);let n=(e,r)=>null===r?(0,t.M)(e):(0,t.u)(e,r);async function a(e,a,i){let u=(0,o.G)(e.failStreak,a);return(await (0,r.f)().update(s.monitors).set({state:u.state,failStreak:u.failStreak,lastCheckedAt:i,lastStatus:a.statusCode,lastLatencyMs:a.latencyMs,lastError:a.error,...u.state!==e.state?{stateSince:i}:{},updatedAt:i}).where((0,t.b)((0,t.u)(s.monitors.id,e.id),null===e.lastCheckedAt?(0,t.M)(s.monitors.lastCheckedAt):(0,t.u)(s.monitors.lastCheckedAt,e.lastCheckedAt),(0,t.u)(s.monitors.state,e.state),(0,t.u)(s.monitors.failStreak,e.failStreak),(0,t.u)(s.monitors.url,e.url),(0,t.u)(s.monitors.expectedStatus,e.expectedStatus),n(s.monitors.bodyContains,e.bodyContains),n(s.monitors.jsonPath,e.jsonPath),n(s.monitors.jsonEquals,e.jsonEquals))).returning({id:s.monitors.id})).length>0}e.s(["T",0,n,"j",0,a],445710);let i={heartbeats:60,checks:60,vercel:60,supabase:300,supabaseUsage:3600,neon:300,firebase:300,firebaseUsage:3600,extraDbs:3600,cloudflare:3600,domains:21600,tls:3600,rdap:3600,eol:86400,status:300,logs:300,pageviews:1800,node:43200,security:21600,alerts:60,digest:300},u={supabase:0,digest:0,neon:60,firebase:120,status:180,logs:240,pageviews:1620,supabaseUsage:660,extraDbs:960,firebaseUsage:1320,cloudflare:1980,tls:2460,rdap:3120,domains:5280,eol:13560,node:13380,security:16560};function d(e,t){let r=1e3*i[e],s=(u[e]??0)*1e3;return Math.floor((t.getTime()+5e3-s)/r)*r+s}let l={status:6e3,logs:9e3,pageviews:9e3,digest:6e3,eol:6e3,node:6e3,security:11e3},m={heartbeats:"hosting",checks:"hosting",vercel:"hosting",cloudflare:"hosting",domains:"hosting",tls:"hosting",rdap:"hosting",logs:"hosting",pageviews:"hosting",supabase:"database",supabaseUsage:"database",neon:"database",firebase:"database",firebaseUsage:"database",extraDbs:"database",eol:null,node:null,status:null,alerts:null,digest:null,security:null},c={security:["hosting","devops"]},h=["supabase"];function g(e,t){return e.filter(e=>{let r=c[e];if(r)return r.some(e=>!t.has(e));let s=m[e];return null===s||!t.has(s)||h.includes(e)})}e.s(["X",0,3e3,"p",0,2e4,"d",0,55e3,"u",0,["alerts","digest"],"O",0,5e4,"t",0,i,"P",0,function(e,t,r){let s=Math.min(e,t-r);return s<1e3?null:s},"S",0,function(e,t,r,s=new Set){let o=0;return g(Object.keys(i),s).filter(s=>{let n=e[s]?new Date(e[s]).getTime():null;if(i[s]<=60)return null===n||!!r||t.getTime()-n>=1e3*i[s]-1e4;let a=d(s,t);return(null===n||!(n>=a-5e3))&&(!(null===n||t.getTime()+5e3-a>=6e4)||!(o>=2)&&(o++,!0))})},"$",0,(e,t)=>{let r=m[e];return null!==r&&t.has(r)&&h.includes(e)},"B",0,function(e,t,r){return!r||!e||t.getTime()-e.getTime()>=5e4},"G",0,d,"z",0,function(e,t,r){return t-r>=(l[e]??0)},"_",0,function(e,t,r=new Set){if(!t||e.includes("security")||!g(["security"],r).length)return{due:[...e],early:!1};let s=Object.keys(i),o=e.findIndex(e=>s.indexOf(e)>s.indexOf("security")),n=[...e];return n.splice(o<0?n.length:o,0,"security"),{due:n,early:!0}}],634418)},895176,383487,e=>{var t=e.i(93321),r=e.i(530385),s=e.i(351674),o=e.i(548734),n=e.i(837137),a=e.i(903816),i=e.i(646324),u=e.i(33135),d=e.i(19809),l=e.i(445710),m=e.i(306556),c=e.i(634418),h=e.i(601219),g=e.i(436357),p=e.i(757902),f=e.i(519051),w=e.i(371289),k=e.i(201516),b=e.i(469762),y=e.i(968715),S=e.i(910697),A=e.i(767163);async function I(e,r=()=>!1,s=!1,a){let i=(await (0,o.f)().select({m:n.monitors}).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,"heartbeat"),(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),...a?[(0,t.u)(n.monitors.id,a)]:[]))).filter(({m:t})=>void 0!==a||(0,c.B)(t.lastCheckedAt,e,s)),u=[],d=[];for(let{m:s}of i){let i=s.periodS??3600,l=s.graceS??600,h=(0,A.C)({lastPingAt:s.lastPingAt,lastPingKind:s.lastPingKind,periodS:i,graceS:l,createdAt:s.createdAt},e);if("unknown"===h.state)continue;let g=h.state!==s.state;(await (0,o.f)().update(n.monitors).set({state:h.state,failStreak:h.failStreak,lastCheckedAt:e,lastError:"ok"===h.state?null:h.text,...g?{stateSince:e}:{},updatedAt:e}).where((0,t.b)((0,t.u)(n.monitors.id,s.id),(0,t.u)(n.monitors.state,s.state),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.monitors.paused,!1),null===s.lastPingAt?(0,t.M)(n.monitors.lastPingAt):(0,t.u)(n.monitors.lastPingAt,s.lastPingAt),null===s.periodS?(0,t.M)(n.monitors.periodS):(0,t.u)(n.monitors.periodS,s.periodS),null===s.graceS?(0,t.M)(n.monitors.graceS):(0,t.u)(n.monitors.graceS,s.graceS))).returning({id:n.monitors.id})).length&&((void 0===a||(0,c.B)(s.lastCheckedAt,e,!0))&&d.push({monitorId:s.id,at:e,ok:"err"!==h.state,statusCode:null,latencyMs:null,error:"ok"===h.state?null:h.text,inMaintenance:r(s.id,s.resourceId)}),u.push((0,m.F)({resourceId:s.resourceId,path:s.name??"heartbeat",prev:s.state,next:h.state,code:null,error:h.text,at:e,heartbeat:!0})))}return d.length&&await (0,o.f)().insert(n.checks).values(d),await (0,h.f)(u),d.length}e.i(312573),e.i(323878),e.s(["f",0,I],383487);var P=e.i(714530),$=e.i(513701);function M(e){let t="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,url:e.url,path:t?e.name??"heartbeat":(0,i.K)(e.url),state:e.state,lastStatus:e.lastStatus,lastLatencyMs:e.lastLatencyMs,failStreak:e.failStreak,paused:e.paused,ownerPaused:e.ownerPaused,lastCheckedAt:e.lastCheckedAt,expectedStatus:e.expectedStatus,timeoutMs:e.timeoutMs,intervalS:e.intervalS,bodyContains:e.bodyContains,jsonPath:e.jsonPath,jsonEquals:e.jsonEquals,lastError:e.lastError,kind:t?"heartbeat":"http",name:e.name??null,periodS:e.periodS??null,graceS:e.graceS??null,lastPingAt:e.lastPingAt??null,stateSince:e.stateSince??null}}async function C(e){let s=await (0,o.f)().select({m:n.monitors,appName:n.resources.name,goneAt:n.resources.goneAt,appMeta:n.resources.meta}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0))).orderBy(n.resources.name,(0,r.A)(n.monitors.kind),n.monitors.url).limit(S.O.monitors),a=await (0,$._)(s.map(e=>e.m.id),e),i=await x(s.map(e=>({id:e.m.id,kind:e.m.kind,url:e.m.url,appId:e.m.resourceId,appName:e.appName,appMeta:e.appMeta,lastError:e.m.lastError})));return s.map(({m:t,appName:r,goneAt:s})=>({...M(t),appName:r,appGone:null!==s,days:a.get(t.id),uptime30:(0,y.Y)((0,y.w)(a.get(t.id),e,y.I)),move:i.get(t.id)??null}))}async function x(e){if(!e.some(e=>null!==(0,g.Y)(e.appMeta)))return new Map;let r=await (0,o.f)().select({id:n.resources.id,name:n.resources.name,meta:n.resources.meta}).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))).limit(500);return(0,g.P)(e,r)}let T={ok:!1,error:"That monitor no longer exists."},j={ok:!1,error:"This app already has a monitor for that address."},v={ok:!1,error:"That app isn't watched. Tick it in Connections → Sync first."},E="This app no longer exists at Vercel.",D={ok:!1,error:E},B="The app no longer exists at Vercel",F={ok:!0,message:"Already running."},q={ok:!1,error:"Someone else changed this monitor just now. Reopen it and try again."},R={ok:!1,error:"This app already has a heartbeat with that name."},O={ok:!1,error:"That monitor isn't a heartbeat."},L={ok:!1,error:"That monitor is a heartbeat. Edit it from its own menu."},U={ok:!1,error:"The console doesn't check a heartbeat. It waits for your job's ping."},N=e=>"heartbeat"===e.kind?e.name??"heartbeat":(0,b.F)(e.url);async function _(){let e=await (0,o.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(S.O.apps);if(!e.length)return[];let r=await (0,o.f)().select({appId:n.monitors.resourceId,url:n.monitors.url}).from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,e.map(e=>e.id)),(0,t.u)(n.monitors.kind,"http"))).orderBy(n.monitors.createdAt);return e.map(e=>({...e,domain:(0,b.m)(e.name,r.filter(t=>t.appId===e.id).map(e=>e.url))}))}async function H(e){return(0,o.f)().transaction(async t=>(await t.execute(s.B`select pg_advisory_xact_lock(hashtext('ops.monitors'))`),e(t)))}async function K(e=(0,o.f)()){let[r]=await e.select({n:s.B`count(*)::int`}).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)));return r?.n??0}async function G(e=(0,o.f)()){let[r]=await e.select({n:s.B`count(*)::int`}).from(n.monitors).where((0,t.u)(n.monitors.kind,"heartbeat"));return r?.n??0}async function J(e){let[r]=await (0,o.f)().select({m:n.monitors,watched:n.resources.monitored,goneAt:n.resources.goneAt}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.u)(n.monitors.id,e)).limit(1);return r??null}function z(e){let t=e?.code??e?.cause?.code;return"string"==typeof t?t:void 0}async function V(e,r){return H(async s=>{let[o]=await s.select({id:n.resources.id,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.id,e),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0))).limit(1);if(!o)return v;if(o.goneAt)return D;let a=(0,k.g)(await K(s));return a?{ok:!1,error:a}:(await s.insert(n.monitors).values({resourceId:e,kind:"http",url:r.url,expectedStatus:r.expectedStatus,timeoutMs:r.timeoutMs,bodyContains:r.bodyContains,jsonPath:r.jsonPath,jsonEquals:r.jsonEquals}).onConflictDoNothing().returning({id:n.monitors.id})).length?{ok:!0,message:`Monitoring ${(0,b.F)(r.url)}. First result within a minute.`,audit:{message:`Monitor added: ${(0,b.F)(r.url)}`,resourceId:e}}:j})}async function X(e,r){let{token:s,hash:o}=(0,p.P)();return H(async a=>{let[i]=await a.select({id:n.resources.id,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.id,e),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0))).limit(1);if(!i)return v;if(i.goneAt)return D;let u=(0,k.f)(await G(a));return u?{ok:!1,error:u}:(await a.insert(n.monitors).values({resourceId:e,kind:"heartbeat",url:(0,p.B)(r.name),name:r.name,tokenHash:o,periodS:r.periodS,graceS:r.graceS,state:"unknown"}).onConflictDoNothing().returning({id:n.monitors.id})).length?{ok:!0,message:`Added ${r.name}. It waits for the first ping.`,token:s,audit:{message:`Heartbeat added: ${r.name}`,resourceId:e}}:R})}async function W(e,r){let s,a=await J(e);if(!a)return T;if("heartbeat"!==a.m.kind)return O;if(a.goneAt)return D;if(!a.watched)return v;let i=(0,p.B)(r.name),[u]=await (0,o.f)().select({id:n.monitors.id}).from(n.monitors).where((0,t.b)((0,t.u)(n.monitors.resourceId,a.m.resourceId),(0,t.u)(n.monitors.url,i),(0,t.c)(n.monitors.id,e))).limit(1);if(u)return R;try{s=await (0,o.f)().update(n.monitors).set({name:r.name,url:i,periodS:r.periodS,graceS:r.graceS,updatedAt:new Date}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.kind,"heartbeat"))).returning({id:n.monitors.id})}catch(e){if("23505"===z(e))return R;throw e}if(!s.length)return T;let d=a.m.name!==r.name;return{ok:!0,message:`Saved ${r.name}.`,audit:{message:`Heartbeat edited: ${r.name}`,...d&&a.m.name?{detail:`was ${a.m.name}`}:{},resourceId:a.m.resourceId}}}async function Y(e){let r=await J(e);if(!r)return T;if("heartbeat"!==r.m.kind)return O;let{token:s,hash:a}=(0,p.P)();if(!(await (0,o.f)().update(n.monitors).set({tokenHash:a,updatedAt:new Date}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.kind,"heartbeat"))).returning({id:n.monitors.id})).length)return T;let i=N(r.m);return{ok:!0,message:`New ping URL for ${i}. The old one no longer works.`,token:s,audit:{message:`Ping URL replaced: ${i}`,resourceId:r.m.resourceId}}}async function Q(e,r,s=new Date){let a=await J(e);if(!a)return T;if("heartbeat"!==a.m.kind)return O;if(!(await (0,o.f)().update(n.monitors).set({lastPingAt:s,lastPingKind:r,updatedAt:s}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.kind,"heartbeat"))).returning({id:n.monitors.id})).length)return T;let i=N(a.m),u=`Test ping (${r}) recorded for ${i}`,d=!1;try{let t=await (0,P.w)();await I(new Date,(e,r)=>null!==(0,f.x)(t,{monitorId:e,appId:r},new Date),!0,e),d=!0}catch{console.warn("test ping: recompute failed")}return{ok:!0,message:d?`${u}.`:`${u}. The state updates within a minute.`,audit:{message:u,detail:"Test",resourceId:a.m.resourceId}}}async function Z(e,r){let s,a=await J(e);if(!a)return T;if("heartbeat"===a.m.kind)return L;if(a.goneAt)return D;if(!a.watched)return v;let[i]=await (0,o.f)().select({id:n.monitors.id}).from(n.monitors).where((0,t.b)((0,t.u)(n.monitors.resourceId,a.m.resourceId),(0,t.u)(n.monitors.url,r.url),(0,t.c)(n.monitors.id,e))).limit(1);if(i)return j;let u=new Date,d={url:a.m.url,expectedStatus:a.m.expectedStatus,timeoutMs:a.m.timeoutMs,bodyContains:a.m.bodyContains,jsonPath:a.m.jsonPath,jsonEquals:a.m.jsonEquals},m=(0,k.V)(d,r)?{state:"unknown",failStreak:0,stateSince:u,lastCheckedAt:null,lastStatus:null,lastLatencyMs:null,lastError:null}:{};try{s=await (0,o.f)().update(n.monitors).set({url:r.url,expectedStatus:r.expectedStatus,timeoutMs:r.timeoutMs,bodyContains:r.bodyContains,jsonPath:r.jsonPath,jsonEquals:r.jsonEquals,...m,updatedAt:u}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.url,a.m.url),(0,t.u)(n.monitors.expectedStatus,a.m.expectedStatus),(0,l.T)(n.monitors.bodyContains,a.m.bodyContains),(0,l.T)(n.monitors.jsonPath,a.m.jsonPath),(0,l.T)(n.monitors.jsonEquals,a.m.jsonEquals))).returning({id:n.monitors.id})}catch(e){if("23505"===z(e))return j;throw e}if(!s.length)return await J(e)?q:T;let c=d.url!==r.url;return{ok:!0,message:a.m.ownerPaused?`Saved ${(0,b.F)(r.url)}. It's checked again once you resume it.`:`Checking ${(0,b.F)(r.url)} from the next run.`,audit:{message:`Monitor edited: ${(0,b.F)(r.url)}`,...c?{detail:`was ${(0,b.F)(d.url)}`}:{},resourceId:a.m.resourceId}}}async function ee(e,r){let s=await J(e);if(!s)return T;let a=new Date,i=N(s.m);if(r)return await (0,o.f)().update(n.monitors).set({ownerPaused:!0,updatedAt:a}).where((0,t.u)(n.monitors.id,e)),{ok:!0,message:`Paused ${i}. Its history is kept.`,audit:{message:`Monitor paused: ${i}`,resourceId:s.m.resourceId}};if(!s.m.ownerPaused)return F;let u=s.watched&&!s.goneAt;return H(async r=>{let o="heartbeat"===s.m.kind?null:(0,k.g)(await K(r),+!!u);return o?{ok:!1,error:o}:(await r.update(n.monitors).set({ownerPaused:!1,...u?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:a,updatedAt:a}).where((0,t.b)((0,t.u)(n.monitors.id,e),(0,t.u)(n.monitors.ownerPaused,!0))).returning({id:n.monitors.id})).length?{ok:!0,message:u?`Resumed ${i}. First result within a minute.`:s.goneAt?`Resumed ${i}. ${B}, so it won't be checked.`:`Resumed ${i}. It's checked again once its app is watched.`,audit:{message:`Monitor resumed: ${i}`,resourceId:s.m.resourceId}}:(await r.select({id:n.monitors.id}).from(n.monitors).where((0,t.u)(n.monitors.id,e)).limit(1)).length?F:T})}async function et(e,r){let s=await (0,o.f)().select({paused:n.monitors.paused,ownerPaused:n.monitors.ownerPaused,kind:n.monitors.kind}).from(n.monitors).where((0,t.u)(n.monitors.resourceId,e));if(!s.length)return{ok:!1,error:"This app has no monitors."};let a=new Date;if(r)return await (0,o.f)().update(n.monitors).set({ownerPaused:!0,updatedAt:a}).where((0,t.u)(n.monitors.resourceId,e)),{ok:!0,message:`Paused ${s.length} monitor${1===s.length?"":"s"}. Their history is kept.`,audit:{message:`Monitors paused: ${s.length}`,resourceId:e}};let[i]=await (0,o.f)().select({watched:n.resources.monitored,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.u)(n.resources.id,e)).limit(1),u=!!i&&i.watched&&!i.goneAt,d=s.filter(e=>e.ownerPaused).length,l=1===d?"":"s",m=s.filter(e=>e.ownerPaused&&"heartbeat"!==e.kind).length;return H(async r=>{let s=(0,k.g)(await K(r),u?m:0);return s?{ok:!1,error:s}:(await r.update(n.monitors).set({ownerPaused:!1,...u?{paused:!1}:{},state:"unknown",failStreak:0,stateSince:a,updatedAt:a}).where((0,t.b)((0,t.u)(n.monitors.resourceId,e),(0,t.u)(n.monitors.ownerPaused,!0))),{ok:!0,message:u?`Resumed ${d} monitor${l}. First results within a minute.`:i?.goneAt?`Resumed ${d} monitor${l}. ${B}, so they won't be checked.`:`Resumed ${d} monitor${l}. They're checked again once the app is watched.`,audit:{message:`Monitors resumed: ${d}`,resourceId:e}})})}async function er(e){let r=await J(e);if(!r)return T;let o=r.watched&&!r.goneAt&&"heartbeat"!==r.m.kind,a=s.B`(select count(*) from ${n.monitors} where ${n.monitors.resourceId} = ${r.m.resourceId}) > 1`,i=await H(async r=>(await r.delete(n.monitors).where((0,t.b)((0,t.u)(n.monitors.id,e),o?a:void 0)).returning({id:n.monitors.id})).length?"deleted":o&&(await r.select({id:n.monitors.id}).from(n.monitors).where((0,t.u)(n.monitors.id,e)).limit(1)).length?"last":"gone");if("gone"===i)return T;if("last"===i)return{ok:!1,error:(0,k.p)({appWatched:!0,monitorsOfApp:1})??"That monitor no longer exists."};let u=N(r.m);return{ok:!0,message:`Deleted ${u}.`,audit:{message:`Monitor deleted: ${u}`,resourceId:r.m.resourceId}}}function es(e,t){return!e.lastCheckedAt||t.getTime()-e.lastCheckedAt.getTime()>=c.O?null:{ok:!0,message:(0,k.T)({...e,lastCheckedAt:e.lastCheckedAt},t),passed:e.lastStatus===e.expectedStatus&&!e.lastError}}async function eo(e){let t=await J(e);if(!t)return T;if("heartbeat"===t.m.kind)return U;let r=t.goneAt?E:t.watched?(0,k.i)(t.m)?null:"Paused monitors aren't checked. Resume it first.":"Its app isn't watched. Tick it in Connections → Sync first.";if(r)return{ok:!1,error:r};let s=es(t.m,new Date);if(s)return s;let c=await (0,P.w)(),g=(0,w.W)()?(0,d.M)(t.m.expectedStatus):await (0,u.b)(t.m.url,{expectedStatus:t.m.expectedStatus,timeoutMs:t.m.timeoutMs,body:(0,a.C)(t.m)}),p=new Date;if(!await (0,l.j)(t.m,g,p)){let t=await J(e);return t?es(t.m,new Date)??{ok:!1,error:"The monitor changed while it was being checked. Try again."}:T}let y=null!==(0,f.x)(c,{monitorId:e,appId:t.m.resourceId},p);await (0,o.f)().insert(n.checks).values({monitorId:e,at:p,ok:g.ok,statusCode:g.statusCode,latencyMs:g.latencyMs,error:g.error,inMaintenance:y});let S=(0,m.G)(t.m.failStreak,g),A=(0,m.F)({resourceId:t.m.resourceId,path:(0,i.K)(t.m.url),prev:t.m.state,next:S.state,code:g.statusCode,error:g.error,at:p});return await (0,h.f)([A]),{ok:!0,message:(0,k.X)(g),passed:g.ok,audit:{message:`Check now: ${(0,b.F)(t.m.url)}`,resourceId:t.m.resourceId}}}e.s(["Q",0,K,"b",0,_,"X",0,eo,"_",0,X,"$",0,V,"j",0,er,"d",0,C,"J",0,x,"p",0,Q,"R",0,Y,"f",0,et,"C",0,ee,"M",0,M,"G",0,W,"q",0,Z,"e",0,H],895176)},757902,e=>{var t=e.i(666680);function r(e){return(0,t.createHash)("sha256").update(e).digest("hex")}e.s(["B",0,function(e){let r=e.normalize("NFKD").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60);return`heartbeat:${r||(0,t.createHash)("sha256").update(e.trim().toLowerCase()).digest("hex").slice(0,16)}`},"P",0,function(){let e=`hb_${(0,t.randomBytes)(16).toString("hex")}`;return{token:e,hash:r(e)}},"C",0,r])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_1xwavi_m_li7p._.js.map
@@ -0,0 +1,6 @@
1
+ (()=>{"use strict";module.exports=[658266,618127,211256,e=>{var t=e.i(278619),n=e.i(959408),r=e.i(867274),s=e.i(413230),a=e.i(7494),i=e.i(250474),o=e.i(90801),l=e.i(32391);let u=["next","eslint-config-next"],d={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function c(e,t){if(!e||!(0,l.C)(e))return null;let n=t.map(e=>e.fixed).filter(t=>!!t&&(0,l.C)(t)&&(0,i.f)(t,e)>0);if(!n.length)return null;let r=n.filter(t=>(0,o.J)(e,t));return(r.length?r:n).reduce((e,t)=>(0,i.f)(t,e)>0?t:e)}function p(e,t){let n=c(e,t),r=n?t.map(e=>e.fixed).filter(e=>!!e&&(0,l.C)(e)&&(0,i.f)(e,n)>0):[],s=r.reduce((e,t)=>null===e||(0,i.f)(t,e)>0?t:e,null),o=s?` (${1===r.length?"one fix needs":"some fixes need"} Next.js ${s.split(".")[0]})`:"";return`Next.js ${e??"(unknown version)"} has ${(0,a.q)(t.length)} (${(0,a.N)(t).toLowerCase()}), ${n?`fixed in ${n}${o}`:"no fix yet"}.`}e.s(["P",0,p,"p",0,function(e){if(!e||"vulnerable"!==e.status||!e.findings.length||!e.version)return null;let t=c(e.version,e.findings);if(!t)return null;let n=d[(0,a.N)(e.findings)],r=[...new Set(e.findings.map(e=>e.id))],s=[...new Set(e.findings.flatMap(e=>e.cve?[e.cve]:[]))];return{from:e.version,to:t,upgrades:[{package:"next",to:t,vulnIds:r,cves:s,severity:n},{package:"eslint-config-next",to:t,vulnIds:[],cves:[],severity:n,companionOf:"next"}],installed:new Map(u.map(t=>[t,e.version]))}},"F",0,function(e){let t=e.find(e=>"next"===e.package&&!e.companionOf);return!t||e.some(e=>"eslint-config-next"===e.package)?e:[...e,{package:"eslint-config-next",to:t.to,vulnIds:[],cves:[],severity:t.severity,companionOf:"next"}]}],618127);let f=e=>Math.round(e).toLocaleString("en-US"),m=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),h=(e,t)=>`${e} ${t}${1===e?"":"s"}`,g=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},y=e=>{try{return new URL(e).host}catch{return e}},v=e=>{try{return new URL(e).pathname}catch{return"/"}},k="Down · ",w=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),b=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,$=new Set(["turso","upstash","d1"]),A={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=w("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:v(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),s=t??3;if("heartbeat"===e.kind){let t;return{...r,status:"err"===e.state?"firing":"ok"===e.state?"ok":"unknown",message:`${e.appName} \xb7 ${e.url}: ${t=e.lastError,t?.startsWith(k)?t.slice(k.length):"no ping in time"}.`}}return e.movedTo?{...r,status:"ok",message:`${y(e.url)} moved to ${e.movedTo}; MonitorDomainMoved takes over.`}:e.failStreak>=s?{...r,status:"firing",message:(0,n.H)(e)?`${g(e.url)} failed its check (${(0,n.H)(e)}) on ${s} consecutive checks.`:`${g(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${s} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${g(e.url)} answers again.`}}),MonitorDomainMoved:e=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let t=w("MonitorDomainMoved",e.id,{resourceId:e.appId,title:`${e.appName} ${v(e.url)}`,provider:"vercel"});return e.movedTo?{...t,status:"firing",message:`${y(e.url)} is no longer a domain of ${e.appName}; production is on ${e.movedTo}.`}:{...t,status:"ok",message:`The monitor checks ${y(e.url)}, a domain of ${e.appName}.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[w("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${f((e.now.getTime()-n.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(e,t)=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let n=w("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${v(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt});if(e.checksLast10<5||null===e.p95Last10)return n;let r=t??1500;return{...n,status:e.p95Last10>r?"firing":"ok",message:`p95 ${f(e.p95Last10)} ms over the last 10 minutes (limit ${f(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=w("DeploymentFailed",e.id,{resourceId:e.id,title:e.name,provider:"vercel"}),n=e.latestProduction;return n?"error"===n.state?{...t,status:"firing",message:`Production deployment ${n.sha?n.sha.slice(0,7):"(no commit)"} failed.`}:{...t,status:"building"===n.state?"unknown":"ok"}:{...t,status:"ok"}}),DatabasePaused:e=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(e=>w("DatabasePaused",e.id,{resourceId:e.id,title:e.name,provider:"supabase",status:"unknown"===e.state?"unknown":"paused"===e.state?"firing":"ok",message:`Supabase project ${e.name} is paused.`})),CertExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=w("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let s=m(n.tlsNotAfter,e.now);return{...r,status:s<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${h(s,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=w("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let s=m(n.expiresAt,e.now);return{...r,status:s<(t??30)?"firing":"ok",message:`${n.name} expires in ${h(s,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=w("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:b(e)});if(null===e.sizeBytes||!e.sizeLimitBytes)return n;let r=e.sizeBytes/e.sizeLimitBytes*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} uses ${f(e.sizeBytes/1e6)} MB of ${f(e.sizeLimitBytes/1e6)} MB (${f(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=w("NeonComputeHigh",e.id,{resourceId:e.id,title:e.name,provider:"neon"});return null===e.cuHours?n:{...n,status:e.cuHours>(t??80)?"firing":"ok",message:`${e.name} used ${f(e.cuHours)} of ${f(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=w("FirestoreQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:"firebase"});if(e.quotaExhausted)return{...n,status:"firing",message:`${e.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===e.readsToday||!e.readsLimit)return!1===e.quotaExhausted?{...n,status:"ok"}:n;let r=e.readsToday/e.readsLimit*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} read ${f(e.readsToday)} of ${f(e.readsLimit)} documents today (${f(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=w("AutoPauseRisk",n.id,{resourceId:n.id,title:n.name,provider:"supabase"});if("paused"===n.state)return{...r,status:"ok"};if(!n.lastApiAt)return r;let s=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:s>=(t??4)?"firing":"ok",message:`No API traffic for ${h(s,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>w("DnsProxiedToVercel",e.id,{resourceId:e.resourceId,title:e.name,provider:"cloudflare",status:e.proxied&&e.pointsToVercel?"firing":"ok",message:`${e.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>$.has(e.provider)).map(e=>{let n=w("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:b(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${f(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let s=w("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),a=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===a?s:{...s,status:a.length?"firing":"ok",message:a.length?`${n.name}: ${a.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=w("CredentialExpiring",n.id,{accountId:n.id,title:`${n.provider} \xb7 ${n.label}`,provider:n.provider});if("drive"===n.provider&&"error"===n.status&&n.lastError?.includes("invalid_grant"))return{...r,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!n.expiresAt)return{...r,status:"ok"};let s=m(n.expiresAt,e.now);return{...r,status:s<(t??14)?"firing":"ok",message:s<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${h(s,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=w("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let a=(0,s.g)(t.vulns);return a?[{...r,status:"firing",message:(0,s.L)(t.vulns),..."critical"===a?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:e=>e.frameworks?e.frameworks.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=w("FrameworkVulnerable",t.appId,{resourceId:t.appId,title:n.name});return"ok"===t.status?[{...r,status:"ok",message:`${n.name} runs Next.js ${t.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===t.status&&t.findings.length?[{...r,status:"firing",message:p(t.version,t.findings),..."CRITICAL"===(0,a.N)(t.findings)?{severity:"critical"}:{}}]:[r]}):null};e.s(["f",0,function(e,n,r){let s=[],a=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=A[i.key](e,i.threshold);n&&(a.add(i.key),s.push(...n))}return{observations:s,evaluated:a}}],658266);let I=["MonitorDown","HighLatency"],S=["telegram","discord","webhook","smtp"],x=e=>e.channels.some(e=>S.includes(e));function V(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&I.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let D=(e,t)=>"critical"===t&&"warning"===e?"critical":e,R=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),M=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,s,a){let i={open:[],touch:[],resolve:[]},o=new Map(s.map(e=>[e.key,e])),l=new Map(n.map(e=>[M(e.rule,e.subject),e])),u=new Set(e.map(e=>M(e.ruleKey,e.subject))),d=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=o.get(n.ruleKey),s=l.get(M(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!s){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===s.status)continue;let u=s.provider?a.incidents.get(s.provider)??null:null;if("firing"===s.status){let t=V(s,a),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&a.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,o={id:n.id,okStreak:0,lastSampleAt:s.sampleAt??n.lastSampleAt,lastSeenAt:a.now,message:s.message,causedBy:t,providerIncident:u},l=!n.notifiedOpen&&(!n.pendingSince||a.now.getTime()-n.pendingSince.getTime()>=216e5);(r||l)&&!R(n,a.now)&&!t&&null===n.pending&&x(e)&&(o.pending=r?"repeat":"open"),i.touch.push(o);continue}if(!t._[n.ruleKey].sampled||null===s.sampleAt){d(n);continue}if(!(null===n.lastSampleAt||s.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?d(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:s.sampleAt})}for(let e of n){if("firing"!==e.status||u.has(M(e.rule,e.subject))||a.maintenance.has(e.subject)||e.resourceId&&a.maintenance.has(e.resourceId))continue;let t=o.get(e.rule);if(!t)continue;let n=V(e,a);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:D(t.severity,e.severity),title:e.title,message:e.message,startedAt:a.now,lastSeenAt:a.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?a.incidents.get(e.provider)??null:null,pending:n||!x(t)?null:"open"})}return i}],211256)},582748,e=>{var t=e.i(89491),n=e.i(960063),r=e.i(800366),s=e.i(326003),a=e.i(843448),i=e.i(647006),o=e.i(328203);e.s(["d",0,function(e,i){let l={id:e.id,name:e.name,state:e.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===e.kind){let t=(0,s.k)(s.B,e.data),n=(0,o.Z)(t.lastTrafficAt),r=(0,o.Z)(t.trafficAt),i=n??(r&&!t.trafficError?new Date(r.getTime()-6048e5):null);return{...l,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:a.R,lastApiAt:i}}if("neon_project"===e.kind){let t=(0,s.k)(s.s,e.data),n=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...l,provider:"neon",cuHours:null==t.computeSeconds?null:t.computeSeconds/3600,cuLimit:r.a.cuHours,sizeBytes:n.length?n.reduce((e,t)=>e+t,0):null,sizeLimitBytes:r.a.storageBytes}}if("firestore"===e.kind){let t=(0,s.k)(s.w,e.data),r=(0,o.Z)(t.opsAt),a=null!=t.reads&&r&&r.getTime()>=(0,n.a)(i).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...l,provider:"firestore",readsToday:a,readsLimit:n.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let n=(0,s.k)(s.N,e.data),r=(0,t.u)((0,t.G)(n,i));return{...l,provider:"turso",sizeBytes:n.orgStorageBytes??null,sizeLimitBytes:t.g.storageBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}if("upstash_redis"===e.kind){let n=(0,s.k)(s.e,e.data),r=(0,t.u)((0,t.$)(n,i));return{...l,provider:"upstash",sizeBytes:n.storageBytes??null,sizeLimitBytes:t.W.storageBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}if("d1_database"===e.kind){let n=(0,s.k)(s.x,e.data),r=(0,t.u)((0,t.I)(n,i));return{...l,provider:"d1",sizeBytes:n.sizeBytes??null,sizeLimitBytes:t.M.dbBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}return null},"S",0,function(e,t){let n=e.filter(e=>Array.isArray(e.data.records));if(!n.length)return null;let r=e.map(e=>e.name),s=[];for(let e of n){let n=t.filter(t=>(0,o.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),a=[...new Set(n.flatMap(e=>(0,i.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,i.q)(e.data).records){if(!(0,o.l)(t,a))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);s.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return s},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,o.Z)((0,i.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,o.Z)((0,i.q)(e.data).tls?.notAfter),expiresAt:null}))]:null}])},485647,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),s=e.i(924924),a=e.i(618916),i=e.i(582748),o=e.i(794713),l=e.i(662860),u=e.i(764766),d=e.i(433609),c=e.i(800523);async function p(){return(0,s.f)().select({appId:a.links.fromResourceId,dbId:a.links.toResourceId}).from(a.links).where((0,t.u)(a.links.kind,"uses_db")).limit(500)}async function f(e){let f=(0,t.b)((0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt)),[m,h,g,y,v]=await Promise.all([(0,o.d)(),(0,o.D)(),(0,s.f)().select({m:a.monitors,appName:a.resources.name,appMeta:a.resources.meta}).from(a.monitors).innerJoin(a.resources,(0,t.u)(a.resources.id,a.monitors.resourceId)).where((0,t.b)(f,(0,t.u)(a.monitors.paused,!1),(0,t.u)(a.monitors.ownerPaused,!1))),(0,s.f)().select({id:a.resources.id,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.b)(f,(0,t.u)(a.resources.kind,"app"))),(0,s.f)().select({id:a.accounts.id,provider:a.accounts.provider,label:a.accounts.label,expiresAt:a.accounts.expiresAt,status:a.accounts.status,lastError:a.accounts.lastError}).from(a.accounts)]),k=g.map(e=>e.m.id),w=k.length?await (0,s.f)().select({id:a.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${a.checks.latencyMs})::float8`}).from(a.checks).where((0,t.b)((0,t.y)(a.checks.monitorId,k),(0,t.B)(a.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(a.checks.inMaintenance,!1))).groupBy(a.checks.monitorId):[],b=y.map(e=>e.id),$=b.length?await (0,s.f)().selectDistinctOn([a.deployments.resourceId],{appId:a.deployments.resourceId,state:a.deployments.state,sha:a.deployments.commitSha,createdAt:a.deployments.createdAtProvider}).from(a.deployments).where((0,t.b)((0,t.y)(a.deployments.resourceId,b),(0,t.u)(a.deployments.target,"production"))).orderBy(a.deployments.resourceId,(0,n.A)(a.deployments.createdAtProvider)):[],A=await (0,s.f)().select({id:a.resources.id,name:a.resources.name,kind:a.resources.kind,state:a.snapshots.state,data:a.snapshots.data}).from(a.resources).innerJoin(a.snapshots,(0,t.u)(a.snapshots.resourceId,a.resources.id)).where((0,t.b)(f,(0,t.y)(a.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),I=e=>A.filter(t=>t.kind===e),S=A.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),x=I("zone"),V=I("domain"),D=await p(),R=await (0,l.Y)().catch(()=>null),M=b.length?await (0,d.a)(b).catch(()=>null):null,B=b.length?await (0,c.F)(b).catch(()=>null):null;return{now:e,lastMinuteRunAt:m,lastAnyRunAt:h,monitors:g.map(({m:e,appName:t,appMeta:n})=>{let r=w.find(t=>t.id===e.id),s="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:s?e.name??"heartbeat":e.url,kind:s?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:r?.p95??null,checksLast10:r?.n??0,movedTo:s?null:(0,u.u)(e.url,{name:t,meta:n},y.filter(t=>t.id!==e.resourceId),{lastError:e.lastError})?.to??null}}),apps:y.map(e=>{let t=$.find(t=>t.appId===e.id);return{id:e.id,name:e.name,latestProduction:t?{state:t.state,sha:t.sha,createdAt:t.createdAt}:null}}),accounts:v,dbs:S.length?S.map(t=>(0,i.d)(t,e)).filter(e=>null!==e):null,domains:(0,i.r)(x,V),dns:(0,i.S)(x,V),links:D,compute:R,deps:M&&M.length?M:null,frameworks:B&&B.length?B:null}}e.s(["f",0,f])},532148,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),s=e.i(924924),a=e.i(618916),i=e.i(278619),o=e.i(658266),l=e.i(211256),u=e.i(275426),d=e.i(154491),c=e.i(485647),p=e.i(739886),f=e.i(111970);let m={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function h(){return(await (0,s.f)().select().from(a.alertRules)).filter(e=>(0,i.h)(e.key)).map(e=>({key:e.key,severity:e.severity,threshold:e.threshold,enabled:e.enabled,channels:e.channels}))}async function g(e,n={}){let[r,y,v,k,w,b]=await Promise.all([(0,c.f)(e),h(),(0,s.f)().select().from(a.alerts).where((0,t.M)(a.alerts.resolvedAt)),(0,s.f)().select({provider:a.providerStatus.provider,state:a.providerStatus.state}).from(a.providerStatus),(0,p.f)(),(0,f.I)()]),$=new Map(r.accounts.map(e=>[e.id,e.provider])),A=v.filter(e=>!(0,d.O)(b,e.ruleKey,e.accountId?$.get(e.accountId):null)),I=(0,o.f)(r,y,n.only),S=I.evaluated,x=I.observations.filter(e=>!(0,d.O)(b,e.rule,e.provider)),V=y.find(e=>"CollectorStale"===e.key),D=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,R=!!V?.enabled&&(!D||e.getTime()-D.getTime()>(V.threshold??5)*6e4),M=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),B=new Map(r.links.filter(e=>M.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${M.get(e.dbId)}`])),T=new Map(k.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,m[e.provider]??e.provider])),C=(0,u.u)(w,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),E=A.filter(e=>(0,i.h)(e.ruleKey)).map(e=>({id:e.id,ruleKey:e.ruleKey,subject:e.subject,okStreak:e.okStreak,lastSampleAt:e.lastSampleAt,silencedUntil:e.silencedUntil,silencedUntilResolved:e.silencedUntilResolved,notifiedOpen:e.notifiedOpen,lastNotifiedAt:e.lastNotifiedAt,pending:e.pending,pendingSince:e.pendingSince})),_=(0,l.f)(E,x,S,y,{now:e,collectorStale:R,mutedApps:B,incidents:T,maintenance:C});return _.open.length||_.touch.length||_.resolve.length?(await (0,s.f)().transaction(async n=>{for(let t of _.open)await n.insert(a.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of _.touch){let{id:s,pending:i,...o}=r;await n.update(a.alerts).set({...o,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(a.alerts.id,s),(0,t.M)(a.alerts.resolvedAt)))}for(let r of _.resolve)await n.update(a.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(a.alerts.id,r.id),(0,t.M)(a.alerts.resolvedAt)))}),{opened:_.open.length,resolved:_.resolve.length}):{opened:0,resolved:0}}let y=r.B`case ${a.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function v(e=new Set){return(await (0,s.f)().select({a:a.alerts,name:a.resources.name,kind:a.resources.kind}).from(a.alerts).leftJoin(a.resources,(0,t.u)(a.resources.id,a.alerts.resourceId)).where((0,t.b)((0,t.M)(a.alerts.resolvedAt),(0,f.s)(e))).orderBy(y,(0,n.A)(a.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function k(){return v(await (0,f.I)())}async function w(e){return(await (0,s.f)().select({id:a.alerts.id,ruleKey:a.alerts.ruleKey,severity:a.alerts.severity,title:a.alerts.title,resourceId:a.alerts.resourceId,startedAt:a.alerts.startedAt,resolvedAt:a.alerts.resolvedAt}).from(a.alerts).where((0,t.b)((0,t.E)(a.alerts.resolvedAt),(0,t.B)(a.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(a.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}e.s(["$",0,g,"q",0,v,"I",0,w,"i",0,k])},433609,751762,970465,800523,e=>{var t=e.i(90801),n=e.i(875225),r=e.i(349129),s=e.i(518899),a=e.i(924924),i=e.i(618916),o=e.i(921991),l=e.i(547499),u=e.i(479301),d=e.i(32391),c=e.i(804581),p=e.i(891262),f=e.i(581321),m=e.i(413230),h=e.i(455744),g=e.i(971724),y=e.i(105954),v=e.i(206033),k=e.i(455037);let w=h.z.array(g.z.object({name:y.z.string(),type:y.z.string(),sha:y.z.string(),size:v.z.number().optional()}));async function b(e,t,n,r={},s=null){if(!(0,k.M)(t)||!(0,k.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==s&&(0,f.Q)(s)!==s)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let a=s?s.split("/").map(encodeURIComponent).join("/"):"",i=await (0,k.j)(`/repos/${(0,k.f)(t)}/contents/${a}?ref=${encodeURIComponent(n)}`,e,r);if(!i.ok)return i;let o=w.safeParse(i.data);return o.success?{ok:!0,data:o.data.filter(e=>"file"===e.type&&/^[0-9a-f]{40}$/.test(e.sha)).map(e=>({name:e.name,sha:e.sha,size:e.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function $(e,t,n,r={}){if(!(0,k.M)(t)||!(0,k.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let s=await (0,k.j)(`/repos/${(0,k.f)(t)}/git/ref/heads/${n.split("/").map(encodeURIComponent).join("/")}`,e,r);return s.ok?{ok:!0,data:!0}:"missing"===s.kind?{ok:!0,data:!1}:s}function A(e,t,n,r,s,a={}){return(0,k.V)(e,t,n,r,s,a)}async function I(e,t,n={}){if(!(0,k.M)(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await (0,k.j)(`/repos/${(0,k.f)(t)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,e,n);if(!r.ok)return"scope"===r.kind||"missing"===r.kind?{ok:!0,data:{denied:!0}}:r;let s=(0,m.E)(r.data);return s?{ok:!0,data:{alerts:s}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var S=e.i(502240);async function x(){let[e]=await (0,a.f)().select().from(i.accounts).where((0,n.u)(i.accounts.provider,"github")).orderBy((0,r.M)(i.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,o.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,l.f)().OPS_ENCRYPTION_KEY);return t?{token:t,accountId:e.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function V(){let[e]=await (0,a.f)().select({value:i.settings.value}).from(i.settings).where((0,n.u)(i.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}let D=e=>{let t=(0,S.w)(e);return{dir:(0,f.Q)((e??{}).rootDirectory),unsupported:(0,f.l)((e??{}).rootDirectoryUnsupported),branch:(0,S.i)((0,S.V)(e),null),...t?{fallback:t}:{}}};async function R(e){let t=[...new Set(e.filter(u.f))],r=new Map;if(!t.length)return r;let s=await (0,a.f)().select({repoId:i.appRepos.repoId,name:i.resources.name,monitored:i.resources.monitored,meta:i.resources.meta}).from(i.appRepos).innerJoin(i.resources,(0,n.u)(i.resources.id,i.appRepos.appId)).where((0,n.b)((0,n.y)(i.appRepos.repoId,t),(0,n.M)(i.resources.goneAt))).limit(1e3);for(let e of(s.sort((e,t)=>Number(!!t.monitored)-Number(!!e.monitored)||(e.name<t.name?-1:+(e.name>t.name))),s))r.has(e.repoId)||r.set(e.repoId,D(e.meta));return r}async function M(){let e={id:i.githubRepos.id,fullName:i.githubRepos.fullName,defaultBranch:i.githubRepos.defaultBranch,scannedAt:i.dependencyScans.scannedAt},t=(0,n.b)((0,n.M)(i.githubRepos.goneAt),(0,n.u)(i.githubRepos.archived,!1)),r=await V()?await (0,a.f)().select(e).from(i.githubRepos).leftJoin(i.dependencyScans,(0,n.u)(i.dependencyScans.repoId,i.githubRepos.id)).where(t).limit(500):await (0,a.f)().selectDistinct(e).from(i.appRepos).innerJoin(i.githubRepos,(0,n.u)(i.githubRepos.id,i.appRepos.repoId)).leftJoin(i.dependencyScans,(0,n.u)(i.dependencyScans.repoId,i.githubRepos.id)).where(t).limit(500),s=r.length?await R(r.map(e=>e.id)):new Map;return(0,m.M)(r.map(e=>{let t=s.get(e.id);return{...e,rootDir:t?.dir??null,rootDirUnsupported:t?.unsupported??null,prodBranch:t?.branch??null,...t?.fallback?{prodFallback:t.fallback}:{}}}))}let B=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function T(e,t){let n=new Date;await (0,a.f)().insert(i.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:i.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function C(e){return(0,a.f)().select({id:i.dependencyVulns.id,package:i.dependencyVulns.package,installedVersion:i.dependencyVulns.installedVersion,vulnId:i.dependencyVulns.vulnId,severity:i.dependencyVulns.severity,fixedVersion:i.dependencyVulns.fixedVersion,summary:i.dependencyVulns.summary,aliases:i.dependencyVulns.aliases,dev:i.dependencyVulns.dev,direct:i.dependencyVulns.direct,source:i.dependencyVulns.source}).from(i.dependencyVulns).where((0,n.b)((0,n.u)(i.dependencyVulns.repoId,e),(0,n.M)(i.dependencyVulns.resolvedAt))).limit(2e3)}function E(e,t){for(let n of d.a){let r=e.find(e=>e.name===n.path);if(r)return{path:(0,f.H)(t,n.path),kind:n.kind,sha:r.sha}}return null}async function _(e,r,s,o={}){let l=()=>({...o,timeoutMs:Math.max(1e3,Math.min(s-Date.now(),1e4))}),u=async e=>(await T(r.id,{error:B(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),h=r.defaultBranch??"HEAD",g=null;for(let t of[r.prodBranch,r.prodFallback]){if(t&&t===r.defaultBranch)break;let n=(0,S.i)(t,r.defaultBranch);if(!n)continue;let s=await $(e,r.fullName,n,l());if(!s.ok)return u(s.error);if(s.data){g=n;break}}let y=null!==g;g&&(h=g);let v=y?`Scanned ${g}, the branch production is built from.`:null,w=(0,f.Q)(r.rootDir),x=w?null:(0,f.l)(r.rootDirUnsupported),V=x?`The Vercel Root Directory "${x}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,D=await b(e,r.fullName,h,l(),w);if(!D.ok)return u(w&&"missing"===D.kind?`The folder ${(0,f.x)(w)} isn't in ${r.fullName} on ${h}.`:D.error);let R=E(D.data,w),M=D.data.find(e=>"package.json"===e.name)??null,N=!1,j=null;if(w&&M&&!R){let t=await b(e,r.fullName,h,l());if(!t.ok)return u(t.error);N=null!==(R=E(j=t.data,null))}let O=R?R.sha:M?`pkg:${M.sha}`:null,L=O&&w?`${w}:${O}${N&&M?`+${M.sha}`:""}`:O&&x?`odd:${O}`:O,z=L&&y?`br:${g}:${L}`:L,[P]=await (0,a.f)().select().from(i.dependencyScans).where((0,n.u)(i.dependencyScans.repoId,r.id)).limit(1),H=new Date;if(!(0,m.U)(P??null,z,H,o.force))return{status:"unchanged"};if(!z){let e=await C(r.id);return e.length&&await (0,a.f)().update(i.dependencyVulns).set({resolvedAt:H}).where((0,n.y)(i.dependencyVulns.id,e.map(e=>e.id))),await T(r.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:H,queriedAt:H,error:null,note:B([v,V,`No package.json or lockfile ${w?"in":"at"} ${(0,f.x)(w)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let U=(0,f.H)(w,"package.json"),q=M?await A(e,r.fullName,U,h,k.$,l()):null;if(q&&!q.ok)return u(q.error);let W=q?.ok&&q.data?(0,d.b)(q.data):null,F=null,K="package-json",J=N&&R?`Scanned ${(0,f.x)(w)} with the repository root's ${R.path} (workspaces).`:null;if(R){if(2e3>s-Date.now())return u("Time budget used before the lockfile was read; the next run tries again.");let t=await A(e,r.fullName,R.path,h,0xf00000,{...o,timeoutMs:Math.max(1e3,Math.min(s-Date.now(),2e4))});if(!t.ok)return u(t.error);let n=!0;if(N&&w&&t.data&&!(0,f.p)(R.kind,t.data,w)){let t=j?.some(e=>"package.json"===e.name)?await A(e,r.fullName,"package.json",h,k.$,l()):null;if(t&&!t.ok)return u(t.error);n=(0,f.F)(t?.data??null,w)}n?(F=t.data?(0,d.D)(R.kind,t.data):null,K=R.kind,F||(J=[J,`${R.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(J=`The repository root's ${R.path} isn't a workspace that includes ${w}, so the versions come from ${U} ranges (approximate).`,R=null)}if(F){let e=(0,t.m)(F,W);F=e.deps,e.stale.length&&(J=[J,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else F=W?(0,d.e)(W):[],K="package-json",J??=R?null:"No lockfile: the versions come from package.json ranges (approximate).";let Z=await C(r.id),G=[];if(F.length){let e=await (0,p.K)(F,{fetch:o.fetch,deadline:s});if(!e.ok)return u(e.error);let t=(0,m.A)(Z,!0===o.force),n=await (0,p.J)((0,m.z)(F,e.ids,t),{fetch:o.fetch,deadline:s});if(!n.ok)return u(n.error);G=(0,c.i)(F,e.ids,n.map,t)}if(s-Date.now()>1500){let t=await I(e,r.fullName,l());t.ok&&"alerts"in t.data?G=(0,m.R)(G,t.data.alerts,F):t.ok&&(J=[J,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let Y=(0,m.h)(Z,G,(0,d.K)(W));J=[v,V,J].filter(Boolean).join(" ")||null;let Q=new Date;return await (0,a.f)().transaction(async e=>{for(let t of(Y.insert.length&&await e.insert(i.dependencyVulns).values(Y.insert.map(e=>({repoId:r.id,package:e.package,installedVersion:e.installedVersion,vulnId:e.vulnId,aliases:e.aliases,severity:e.severity,fixedVersion:e.fixedVersion,summary:e.summary,direct:e.direct,dev:e.dev,source:e.source,firstSeenAt:Q,lastSeenAt:Q}))).onConflictDoNothing(),Y.update))await e.update(i.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:Q}).where((0,n.u)(i.dependencyVulns.id,t.id));Y.resolve.length&&await e.update(i.dependencyVulns).set({resolvedAt:Q}).where((0,n.b)((0,n.y)(i.dependencyVulns.id,Y.resolve),(0,n.M)(i.dependencyVulns.resolvedAt))),await e.insert(i.dependencyScans).values({repoId:r.id,lockfilePath:R?.path??(M?U:null),lockfileSha:z,packageCount:F.length,scannedAt:Q,queriedAt:Q,error:null,note:J?B(J,300):null,updatedAt:Q}).onConflictDoUpdate({target:i.dependencyScans.repoId,set:{lockfilePath:R?.path??(M?U:null),lockfileSha:z,packageCount:F.length,scannedAt:Q,queriedAt:Q,error:null,note:J?B(J,300):null,updatedAt:Q}})}),{status:"scanned",vulns:Y.insert.length+Y.update.length,packages:F.length,note:"package-json"===K?J:null}}async function N(e,t={}){var r,s;let o,l,u,d,c=await x();if("error"in c)return{error:c.error};let{first:p,only:f,skip:m,...h}=t,g=(r=await M(),o=(s={first:p,only:f,skip:m}).only?new Set(s.only):null,l=new Set(s.skip??[]),u=(o?r.filter(e=>o.has(e.id)):r).filter(e=>!l.has(e.id)),d=new Set(s.first??[]),[...u.filter(e=>d.has(e.id)),...u.filter(e=>!d.has(e.id))]),y={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:g.map(e=>e.id)};for(let[t,n]of g.entries()){if(e-Date.now()<4e3){y.left=g.length-t;break}y.done.push(n.id);try{let t=await _(c.token,n,e,h);"scanned"===t.status?y.scanned++:"unchanged"===t.status?y.unchanged++:y.failed.push(`${n.fullName}: ${t.error}`)}catch(e){y.failed.push(`${n.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(i.dependencyVulns).where((0,n.b)((0,n.E)(i.dependencyVulns.resolvedAt),(0,n.S)(i.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),y}let j=async()=>(await (0,a.f)().select({id:i.accounts.id}).from(i.accounts).where((0,n.u)(i.accounts.provider,"github")).limit(1)).length>0;function O(e){let t=e.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),n=e.failed.length-t.length+(e.left??0);n&&console.info(`deps: ${n} repositor${1===n?"y":"ies"} wait for the next run`);let r=t.slice(0,3);return t.length>3&&r.push(`+${t.length-3} more`),r.length?r.join("; "):null}async function L(e){if(!await j())return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let t=await N(e);if("error"in t){let e;return(e=t.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:t.error}return O(t)}async function z(e,t,r={}){let{marked:s,onlyMarked:o}=t;if(!await j())return{problem:null,settled:[...s],done:[],complete:!0};let l=s.filter(u.f),d=l.length?await (0,a.f)().select({appId:i.appRepos.appId,repoId:i.appRepos.repoId}).from(i.appRepos).where((0,n.y)(i.appRepos.appId,l)).limit(5*l.length):[],c=[...new Set(d.map(e=>e.repoId))],p=e=>d.filter(t=>t.appId===e).map(e=>e.repoId),f=s.filter(e=>!p(e).length);if(o&&!c.length)return{problem:null,settled:[...s],done:[],complete:!0};if(e-Date.now()<4e3)return{problem:null,settled:f,done:[],complete:!1};let m=(t.skip??[]).filter(e=>!c.includes(e)),h=await N(e,{...r,first:c,...o?{only:c}:{skip:m}});if("error"in h){let e;return{problem:(e=h.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:h.error,settled:[...s],done:[],complete:!0}}let g=new Set([...h.done,...c.filter(e=>!h.listed.includes(e))]);return{problem:O(h),settled:s.filter(e=>p(e).every(e=>g.has(e))),done:h.done,complete:0===h.left}}async function P(e){let t=e.filter(u.f);if(!t.length)return[];let r=await (0,a.f)().select({appId:i.appRepos.appId,repoId:i.appRepos.repoId,error:i.dependencyScans.error}).from(i.appRepos).innerJoin(i.dependencyScans,(0,n.u)(i.dependencyScans.repoId,i.appRepos.repoId)).where((0,n.b)((0,n.y)(i.appRepos.appId,t),(0,n.E)(i.dependencyScans.scannedAt)));if(!r.length)return[];let s=await (0,a.f)().select({repoId:i.dependencyVulns.repoId,package:i.dependencyVulns.package,installedVersion:i.dependencyVulns.installedVersion,fixedVersion:i.dependencyVulns.fixedVersion,severity:i.dependencyVulns.severity,summary:i.dependencyVulns.summary,dev:i.dependencyVulns.dev,direct:i.dependencyVulns.direct}).from(i.dependencyVulns).where((0,n.b)((0,n.y)(i.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,n.M)(i.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:s.filter(t=>t.repoId===e.repoId).map(e=>({package:e.package,installedVersion:e.installedVersion,fixedVersion:e.fixedVersion,severity:e.severity,summary:e.summary,dev:e.dev,direct:e.direct}))}))}async function H(e,t=new Set){let r=e.filter(u.f),o=new Map;if(!r.length)return o;let l=await (0,a.f)().select({appId:i.appRepos.appId,repoId:i.appRepos.repoId}).from(i.appRepos).where((0,n.y)(i.appRepos.appId,r));if(!l.length)return o;let d=await (0,a.f)().select({repoId:i.dependencyVulns.repoId,package:i.dependencyVulns.package,installedVersion:i.dependencyVulns.installedVersion,fixedVersion:i.dependencyVulns.fixedVersion,vulnId:i.dependencyVulns.vulnId,aliases:i.dependencyVulns.aliases,severity:i.dependencyVulns.severity,direct:i.dependencyVulns.direct}).from(i.dependencyVulns).where((0,n.b)((0,n.y)(i.dependencyVulns.repoId,[...new Set(l.map(e=>e.repoId))]),(0,n.M)(i.dependencyVulns.resolvedAt),(0,n.u)(i.dependencyVulns.direct,!0),(0,n.E)(i.dependencyVulns.fixedVersion))).limit(2e3),c=d.some(e=>"next"===e.package)?new Set((await (0,a.f)().selectDistinct({appId:i.dependencyPrs.appId}).from(i.dependencyPrs).where((0,n.b)((0,n.y)(i.dependencyPrs.appId,r),(0,n.$)(i.dependencyPrs.stage,["merged","closed"]),(0,n.B)(i.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),s.B`${i.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(r.length)).map(e=>e.appId)):new Set;for(let e of l){let n=t.has(e.appId)||c.has(e.appId);(0,m.B)(d.filter(t=>t.repoId===e.repoId&&!(n&&"next"===t.package))).length&&o.set(e.appId,e.repoId)}return o}e.s(["R",0,4e4,"o",0,12e3,"d",0,4e3,"e",0,L,"O",0,z,"C",0,H,"a",0,P],433609);var U=e.i(442473);function q(e){let t=e instanceof Error&&e.cause instanceof Error?e.cause:e,n=(t instanceof Error?t.message:"").split("\n")[0].replace(/Bearer\s+\S+/gi,"Bearer [hidden]").trim()||"failed";return n.length>200?`${n.slice(0,200)}…`:n}e.s(["f",0,q],751762);var W=e.i(656083);let F=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,K="[\"'`]";function J(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let Z={"&amp;":"&","&quot;":'"',"&#39;":"'","&#x27;":"'","&#x2F;":"/","&#47;":"/"},G=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>Z[e]??Z[e.toLowerCase()]??e),Y=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${K}(${F})${K}`,"g"),Q=RegExp(String.raw`version\s*:\s*${K}(${F})${K}\s*,\s*appDir\s*:`,"g"),X=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${K}(${F})${K}`,"g"),ee=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,et=e=>e.replace(/[$]/g,"\\$");var en=e.i(267485);async function er(e,t,n={}){let r=n.deadline??1/0,s=n.now??(()=>new Date),a=e=>Math.floor(Math.min(e,r)-Date.now()),i=Date.now()+15e3;if(0>=a(i))return null;let o=(e,n)=>({version:t?.version??null,status:e,findings:t?.findings??[],reason:n,checkedAt:s()}),l=(e,t)=>(0,U.K)(e,{maxBytes:3145728,timeoutMs:a(i),lookup:n.lookup,fetch:n.fetch,userAgent:"OpsConsole-Security/1.0 (+https://watchbell.west-solutions.web.id)",sameOrigin:t}),u=await l(`https://${e}/`,"www");if(!u.ok&&u.error===U.l)return o("unknown","the site redirects to another host");if(!u.ok||200!==u.status)return Date.now()>=r?null:o("error",`Couldn't load the site: ${u.ok?`HTTP ${u.status}`:u.error}`);let d=(function(e,t){let n;try{n=new URL(t)}catch{return[]}let r=new Set,s=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(G(t[2].trim()),n)}catch{continue}if("https:"===e.protocol&&e.origin===n.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!r.has(e.href))){var a;r.add(e.href),s.push({href:e.href,rank:(a=e.pathname,/\/main-app[-.]/.test(a)?0:/\/(main|app-index)[-.]/.test(a)?1:/\/(webpack|polyfills|framework)[-.]/.test(a)?3:2),i:s.length})}}return s.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})(u.body,u.url).slice(0,12);if(0===d.length)return o("unknown",u.body.includes("/_next/")?"version not exposed":"not a Next.js site");let c=null,p=0,f=!1;for(let e of d){if(0>=a(i)){f=!0;break}let t=await l(e,!0);if(t.ok&&200===t.status&&(p++,c=function(e){for(let t of e.matchAll(Y))if(J(t[1]))return t[1];for(let t of[Q,X])for(let n of e.matchAll(t))if(J(n[1]))return n[1];for(let t of e.matchAll(ee)){let n=t[1]??"version",r=RegExp(String.raw`(?:^|[^\w$.])${et(n)}\s*=\s*${K}(${F})${K}`,"g"),s=null;for(let n of e.matchAll(r)){if((n.index??0)>=(t.index??0))break;s=n[1]}if(s&&J(s))return s}return null}(t.body)))break}if(!c)return Date.now()>=r?null:f||0>=a(i)?o("error","Reading the site's scripts took longer than 15 s"):0===p?o("error","Couldn't load the site's scripts"):o("unknown","version not exposed");let m=a(Date.now()+1e4);if(m<=0)return null;let h=await (0,en.y)(c,{timeoutMs:m,fetch:n.fetch});return h.ok?{version:c,status:h.findings.length?"vulnerable":"ok",findings:h.findings,reason:null,checkedAt:s()}:Date.now()>=r?null:o("error",h.error)}e.s(["y",0,35e3,"P",0,er,"F",0,function(e,t){return Math.min(t+35e3,e+55e3)}],970465);var es=e.i(7494),ea=e.i(764766),ei=e.i(195191),eo=e.i(146394);function el(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function eu(e={}){let t=e.only;if(t&&!t.length)return[];let r=e.first??[],o=e.skip??[],l=await (0,a.f)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta,sec:i.appSecurity}).from(i.resources).leftJoin(i.appSecurity,(0,n.u)(i.appSecurity.resourceId,i.resources.id)).where((0,n.b)((0,n.u)(i.resources.kind,"app"),(0,n.u)(i.resources.monitored,!0),(0,n.M)(i.resources.goneAt),t?(0,n.y)(i.resources.id,t):void 0,o.length?(0,n.$)(i.resources.id,[...o]):void 0)).orderBy(...r.length?[s.B`case when ${(0,n.y)(i.resources.id,r)} then 0 else 1 end`]:[],s.B`${i.appSecurity.checkedAt} asc nulls first`,i.resources.name).limit(eo.O.apps);if(!l.length)return[];r.length&&l.sort((e,t)=>Number(!r.includes(e.id))-Number(!r.includes(t.id)));let u=await (0,a.f)().select({resourceId:i.monitors.resourceId,url:i.monitors.url}).from(i.monitors).where((0,n.y)(i.monitors.resourceId,l.map(e=>e.id))).orderBy(i.monitors.createdAt).limit(eo.O.monitors);return l.map(e=>({id:e.id,name:e.name,prev:e.sec?el(e.sec):null,host:(0,ea.Y)(e.meta)?.primaryDomain??(0,ei.m)(e.name,u.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function ed(e,t){await (0,a.f)().transaction(async r=>{await r.execute(s.B`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[a]=await r.select().from(i.appSecurity).where((0,n.u)(i.appSecurity.resourceId,e.id)).limit(1),o=a?el(a):null;if(o&&o.checkedAt.getTime()>=t.checkedAt.getTime())return;let l="unknown"===t.status||"error"===t.status?{...t,version:o?o.version:t.version,findings:o?o.findings:t.findings}:t,u={framework:"next",version:l.version,status:l.status,findings:l.findings,reason:l.reason,checkedAt:l.checkedAt};await r.insert(i.appSecurity).values({resourceId:e.id,...u}).onConflictDoUpdate({target:i.appSecurity.resourceId,set:u,setWhere:s.B`${i.appSecurity.checkedAt} < excluded.checked_at`});let d=(0,es.t)(e.name,o,l);d&&await (0,W.f)([{type:"system",kind:d.kind,message:d.message,detail:d.detail,resourceId:e.id,at:l.checkedAt,reason:"ok"===d.kind?"NextClean":"NextVulnerable"}],r)})}async function ec(e,t={}){let n=await eu(t),r=0,s=0,a=[],i=[],o=[];return await (0,U.P)(n,3,async t=>{if(e-Date.now()<3e3)return void s++;o.push(t.id);try{let n=await er(t.host,t.prev,{deadline:e});if(!n)return void s++;await ed(t,n),r++,i.push(t.id)}catch(e){a.push(`${t.name}: ${q(e)}`),i.push(t.id)}}),{checked:r,skipped:s,failed:a,done:i,listed:n.map(e=>e.id),started:o}}async function ep(e){let t=e.filter(u.f);return t.length?(await (0,a.f)().select().from(i.appSecurity).where((0,n.y)(i.appSecurity.resourceId,t)).limit(t.length)).map(e=>{let t=el(e);return{appId:e.resourceId,version:t.version,status:t.status,findings:t.findings}}):[]}e.s(["F",0,ep,"h",0,ec,"Z",0,el],800523)},111970,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(347540),s=e.i(924924),a=e.i(473283),i=e.i(618916),o=e.i(659846),l=e.i(154491),u=e.i(960049);let d=["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"],c=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}},p=(0,r.cache)(async()=>{let e=n.B.join(d.map(e=>n.B`${e}`),n.B`, `),t=await (0,s.f)().execute(n.B`select
2
+ (select coalesce(jsonb_agg(distinct ${i.accounts.provider}::text), '[]'::jsonb) from ${i.accounts}) as providers,
3
+ exists(select 1 from ${i.resources} where ${i.resources.kind}::text in (${e}) and ${i.resources.goneAt} is null) as databases,
4
+ ${(0,u.W)()} as off`),[r]=(0,a.f)(t),p=c(r?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>o.f.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,l.N)(c(r?.off))}});async function f(){try{return(0,l.I)((await p()).off)}catch{return new Set}}e.s(["s",0,function(e){let r=function(e){if(!e.size)return;let{ruleKeys:r,providers:s}=(0,l.s)(e),a=[];if(r.length&&a.push(n.B`${i.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),s.length){let e=n.B.join(s.map(e=>n.B`${e}`),n.B`, `);a.push(n.B`(${i.alerts.ruleKey} = 'CredentialExpiring' and ${i.alerts.accountId} in (select ${i.accounts.id} from ${i.accounts} where ${i.accounts.provider}::text in (${e})))`)}return a.length?(0,t.F)(...a):void 0}(e);return r?(0,t.R)(r):void 0},"I",0,f])},960049,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(924924),s=e.i(618916);e.i(154491);var a=e.i(273083);let i={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},o=Object.keys(i),l=(e,t)=>"number"==typeof t&&i[e].includes(t);async function u(e){let[n]=await (0,r.f)().select({value:s.settings.value}).from(s.settings).where((0,t.u)(s.settings.key,e)).limit(1);return n?.value??null}let d=async()=>(function(e){let t={...a.f};if(!e||"object"!=typeof e)return t;for(let n of o){let r=e[n];l(n,r)&&(t[n]=r)}return t})(await u("retention.days"));e.s(["l",0,()=>u("notify.language"),"J",0,d,"W",0,()=>n.B`(select ${s.settings.value} from ${s.settings} where ${s.settings.key} = ${"sections.off"})`],960049)},662860,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(755776),s=e.i(618916),a=e.i(921991),i=e.i(867274),o=e.i(547499);let l="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,n,r={}){let s;if(!("string"==typeof t&&/^[a-z0-9]{8,40}$/.test(t)))return{ok:!1,kind:"format",error:"That isn't a Supabase project ref."};let a=r.timeoutMs??8e3;try{s=await (r.fetch??fetch)(`https://${t}.supabase.co/customer/v1/privileged/metrics`,{headers:{Authorization:`Basic ${Buffer.from(`service_role:${n}`).toString("base64")}`,Accept:"text/plain"},signal:AbortSignal.timeout(a),cache:"no-store",redirect:"manual"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`${l} didn't answer within ${Math.round(a/1e3)} seconds.`:`Couldn't reach the ${l}.`}}if(401===s.status||403===s.status)return{ok:!1,kind:"auth",status:s.status,error:`Supabase rejected the metrics key (${s.status}). Replace it with a current Secret API key.`};if(404===s.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===s.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${l} says there were too many requests.`};if(!s.ok)return{ok:!1,kind:"transient",status:s.status,error:`${l} returned an error (${s.status}).`};let i=await s.text().catch(()=>null);return null===i||i.length>4e6||!/^(#|[A-Za-z_:])/m.test(i)?{ok:!1,kind:"format",error:`${l} answered in a format the console doesn't recognise.`}:{ok:!0,data:i}},key:()=>(0,o.f)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,a,o=d){if(!(0,i.T)(e,u))return null;u=e.getTime();let l=0,f=0;try{for(let{k:i,ref:u,state:d}of(await (0,n.f)().select({k:r.A,ref:s.resources.externalId,state:s.snapshots.state}).from(r.A).innerJoin(s.resources,(0,t.u)(s.resources.id,r.A.resourceId)).leftJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.kind,"supabase_project"),(0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt))).limit(20))){let t=a-Date.now()-500;if(t<1e3)break;try{await m(i,u,d,e,Math.min(8e3,t),o)?l++:f++}catch(e){f++,console.warn("supabase-metrics: one project failed:",c(e))}}await (0,n.f)().delete(r.l).where((0,t.S)(r.l.hour,new Date(e.getTime()-24*i.x*36e5)))}catch(e){console.warn("supabase-metrics failed:",c(e))}return{scraped:l,failed:f}}async function f(e,s,a){return await (0,n.f)().update(r.A).set({lastTryAt:s,lastError:a.slice(0,300)}).where((0,t.u)(r.A.resourceId,e)),!1}async function m(e,s,o,l,u,d){if("paused"===o)return f(e.resourceId,l,"The project is paused.");let c=(0,a.V)({ciphertext:e.keyCiphertext,iv:e.keyIv},d.key());if(!c)return f(e.resourceId,l,"The stored key can't be read. Add it again.");let p=await d.fetchMetrics(s,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,l,p.error);let m=(0,i.E)(e.latest??null,(0,i.c)((0,i.a)(p.data),s),l);await (0,n.f)().update(r.A).set({latest:m,lastTryAt:l,lastOkAt:l,lastError:null}).where((0,t.u)(r.A.resourceId,e.resourceId));let h=(0,i.b)(l),[g]=await (0,n.f)().select().from(r.l).where((0,t.b)((0,t.u)(r.l.resourceId,e.resourceId),(0,t.u)(r.l.hour,h))).limit(1),y=(0,i.n)(g??null,m);return await (0,n.f)().insert(r.l).values({resourceId:e.resourceId,hour:h,...y}).onConflictDoUpdate({target:[r.l.resourceId,r.l.hour],set:y}),!0}async function h(){let e=await (0,n.f)().select({id:s.resources.id,name:s.resources.name,latest:r.A.latest}).from(r.A).innerJoin(s.resources,(0,t.u)(s.resources.id,r.A.resourceId)).where((0,t.b)((0,t.u)(s.resources.kind,"supabase_project"),(0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt))).limit(20);return e.length?e.map(e=>({id:e.id,name:e.name,latest:e.latest??null})):null}e.s(["Y",0,h,"E",0,p],662860)},89491,e=>{let t={databases:100,storageBytes:0x140000000,rowsRead:5e8,rowsWritten:1e7},n={storageBytes:262144e3,monthlyCommands:5e5,monthlyBandwidthBytes:0x280000000},r={databases:10,dbBytes:524288e3,accountBytes:0x140000000,rowsReadPerDay:5e6,rowsWrittenPerDay:1e5},s=(e,t)=>Math.round(e/t*1e3)/10,a=(e,t)=>!!e&&e.slice(0,7)===t.toISOString().slice(0,7);e.s(["M",0,r,"g",0,t,"W",0,n,"I",0,function(e,t){let n=e.usageDay===t.toISOString().slice(0,10);return[...n&&null!=e.accountRowsRead?[{label:"Rows read today",pct:s(e.accountRowsRead,r.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...n&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:s(e.accountRowsWritten,r.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:s(e.sizeBytes,r.dbBytes),text:"of 500 MB",kind:"storage"}]:[]]},"c",0,function(e){return(e.accountRowsRead??0)>=r.rowsReadPerDay?{state:"err",label:"Daily rows-read limit reached"}:(e.accountRowsWritten??0)>=r.rowsWrittenPerDay?{state:"err",label:"Daily rows-written limit reached"}:{state:"ok",label:"Available"}},"u",0,function(e){return e.filter(e=>"quota"===e.kind&&null!==e.pct).sort((e,t)=>(t.pct??0)-(e.pct??0))[0]??null},"G",0,function(e,n){return a(e.usageAt,n)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:s(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:s(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:s(e.orgStorageBytes,t.storageBytes),text:"of 5 GB (org)",kind:"storage"}]:[]]:[]},"h",0,function(e){return e.blockReads||e.orgBlockedReads?{state:"err",label:"Reads blocked"}:e.blockWrites||e.orgBlockedWrites?{state:"err",label:"Writes blocked"}:{state:"ok",label:"Available"}},"$",0,function(e,t){let r=a(e.statsAt,t);return[...r&&null!=e.monthlyRequests?[{label:"Commands",pct:s(e.monthlyRequests,n.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...r&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:s(e.monthlyBandwidthBytes,n.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:s(e.storageBytes,n.storageBytes),text:"of 250 MB",kind:"storage"}]:[]]},"t",0,function(e){let t=(e??"").toLowerCase();return"active"===t?{state:"ok",label:"Active"}:t.includes("suspend")||t.includes("block")||t.includes("disabled")?{state:"err",label:"Suspended"}:t.includes("delet")?{state:"off",label:"Deleting"}:{state:"unknown",label:e?`State: ${e}`:"Unknown"}}])},960063,e=>{e.s(["T",0,{reads:5e4,writes:2e4,deletes:2e4},"g",0,function(e){var t;if(e.ok)return e.data.noDatabase?{state:"off",label:"No Firestore database"}:{state:"ok",label:`Reachable \xb7 ${e.data.latencyMs} ms`};return"RESOURCE_EXHAUSTED"===(t=e).reason?{state:"err",label:"Daily quota used up"}:"SERVICE_DISABLED"===t.reason?{state:"err",label:"Firestore API is off in this project"}:"scope"===t.kind||"PERMISSION_DENIED"===t.reason||"scope"===t.reason?{state:"err",label:"No access: needs datastore.viewer"}:{state:"unknown",label:"Unknown"}},"a",0,function(e){let t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23"}).formatToParts(e),n=e=>Number(t.find(t=>t.type===e)?.value??0),r=(3600*n("hour")+60*n("minute")+n("second"))*1e3+e.getUTCMilliseconds();return new Date(e.getTime()-r)}])},90801,e=>{var t=e.i(250474),n=e.i(32391);let r=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function s(e,n){let s=r.exec(e.trim()),a=r.exec(n.trim());return!!s&&!!a&&s[1]===a[1]&&("0"!==s[1]||s[2]===a[2])&&(0,t.f)(n,e)>=0}let a=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,i=e=>a.exec(e)?.[1]??null;e.s(["M",0,e=>`Lockfile tertinggal — jalankan npm install (${e.slice(0,5).join(", ")}${e.length>5?`, +${e.length-5}`:""}).`,"a",0,function(e,t,n){if(!e.length)return{ok:!1,why:"nothing"};let r=e.filter(e=>n.includes(e.severity)&&!("moderate"===e.severity&&e.dev));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!s(n,e.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:r}},"m",0,function(e,r){if(!r)return{deps:e,stale:[]};let s=[...Object.entries(r.dependencies).map(([e,t])=>[e,t,!1]),...Object.entries(r.optionalDependencies).map(([e,t])=>[e,t,!1]),...Object.entries(r.devDependencies).map(([e,t])=>[e,t,!0])],a=[...e],i=[];for(let[e,r,o]of s){let s=(0,n.Y)(r);if(!s||!(0,n.C)(s))continue;let l=a.filter(t=>t.name===e);!l.length||l.some(e=>(0,t.f)(e.version,s)>=0)||((a=a.filter(t=>t.name!==e)).push({name:e,version:s,dev:l.every(e=>e.dev)&&o}),i.push(e))}return{deps:a,stale:i}},"D",0,function(e){let n=new Map;for(let r of e){if(!r.direct)continue;let e=n.get(r.package);(!e||0>(0,t.f)(r.installedVersion,e))&&n.set(r.package,r.installedVersion)}return n},"U",0,function(e,t,n=null){for(let r of t){if(i(r.title)!==n)continue;let t=function(e){if(e.packages?.length)return e.packages;let t=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(e.title);return t?[t[1]]:"all"}(r);if("all"===t||e.some(e=>t.includes(e)))return r}return null},"J",0,s])},32391,e=>{let t=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,n=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,r=e=>e.length<=214&&t.test(e),s=e=>e.length<=100&&n.test(e),a=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function i(e){let t=new Map;for(let n of e){if(!r(n.name)||!s(n.version))continue;let e=`${n.name}@${n.version}`,a=t.get(e);if(a?a.dev=a.dev&&n.dev:t.set(e,{...n}),t.size>=1e4)break}return[...t.values()].sort((e,t)=>e.name===t.name?e.version<t.version?-1:1:e.name<t.name?-1:1)}function o(e){try{return JSON.parse(e)}catch{return null}}let l=e=>{let t=e.lastIndexOf("node_modules/");return t<0?null:e.slice(t+13)||null},u=e=>e.trim().replace(/^['"]|['"]$/g,""),d=e=>a(e)?Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1])):{};function c(e){let t=/^\s*(?:\^|~|>=|=|v)?\s*v?(\d+)(?:\.(\d+|x|\*))?(?:\.(\d+|x|\*))?(-[0-9A-Za-z.-]+)?\s*$/.exec(e);if(!t)return null;let n=e=>e&&/^\d+$/.test(e)?e:"0";return`${t[1]}.${n(t[2])}.${n(t[3])}${t[4]??""}`}e.s(["a",0,[{path:"package-lock.json",kind:"npm"},{path:"npm-shrinkwrap.json",kind:"npm"},{path:"pnpm-lock.yaml",kind:"pnpm"},{path:"yarn.lock",kind:"yarn"},{path:"bun.lock",kind:"bun"}],"e",0,function(e){let t=[],n=(e,n)=>{for(let[r,s]of Object.entries(e)){let e=c(s);e&&t.push({name:r,version:e,dev:n})}};return n(e.dependencies,!1),n(e.optionalDependencies,!1),n(e.devDependencies,!0),i(t)},"K",0,function(e){return e?new Set([...Object.keys(e.dependencies),...Object.keys(e.devDependencies),...Object.keys(e.optionalDependencies)]):new Set},"L",0,r,"C",0,s,"Y",0,c,"D",0,function(e,t){switch(e){case"npm":let n=o(t);if(!a(n))return null;let s=[];if(a(n.packages)){for(let[e,t]of Object.entries(n.packages)){if(!e||!a(t)||!0===t.link||"string"!=typeof t.version)continue;let n="string"==typeof t.name&&e.includes("node_modules/")?t.name:l(e);n&&s.push({name:n,version:t.version,dev:!0===t.dev})}return i(s)}if(a(n.dependencies)){let e=(t,n)=>{if(!(n>40))for(let[r,i]of Object.entries(t))a(i)&&("string"==typeof i.version&&s.push({name:r,version:i.version,dev:!0===i.dev}),a(i.dependencies)&&e(i.dependencies,n+1))};return e(n.dependencies,0),i(s)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let n=[],s=!1,a=null;for(let e of t){if(/^\S/.test(e)){s=/^packages:\s*$/.test(e),a=null;continue}if(!s)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=u(e).replace(/^\//,""),n=t.indexOf("(");n>0&&(t=t.slice(0,n));let s=t.lastIndexOf("@");if(s>0&&!t.slice(s+1).includes("/")&&r(t.slice(0,s)))return{name:t.slice(0,s),version:t.slice(s+1).split("_")[0]};let a=t.lastIndexOf("/");return a<=0?null:{name:t.slice(0,a),version:t.slice(a+1).split("_")[0]}}(t[1]);(a=e?{...e,dev:!1}:null)&&n.push(a);continue}a&&/^ {4}dev: true\s*$/.test(e)&&(a.dev=!0)}return i(n)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),n=[],r=null,s=!1;for(let e of t){if(!e.trim()||e.trimStart().startsWith("#"))continue;if(/^\S/.test(e)){let t=e.replace(/:\s*$/,"");r=t.startsWith("__metadata")||/@(?:workspace|link|portal|file):/.test(t)?null:function(e){let t=u(e),n=t.indexOf("@",+!!t.startsWith("@"));return n>0?t.slice(0,n):null}(t.split(/,\s*/)[0]),s=!0;continue}let t=/^ {2}version:?\s+"?([^"\s]+)"?\s*$/.exec(e);t&&r&&(n.push({name:r,version:t[1],dev:!1}),r=null)}return s?i(n):null}(t);case"bun":let d=o(t.replace(/,(\s*[}\]])/g,"$1"));if(!a(d)||!a(d.packages))return null;let c=[];for(let e of Object.values(d.packages)){if(!Array.isArray(e)||"string"!=typeof e[0])continue;let t=e[0],n=t.lastIndexOf("@");n<=0||c.push({name:t.slice(0,n),version:t.slice(n+1),dev:!1})}return i(c)}},"b",0,function(e){let t=o(e);return a(t)?{dependencies:d(t.dependencies),devDependencies:d(t.devDependencies),optionalDependencies:d(t.optionalDependencies)}:null}])},891262,267485,e=>{var t=e.i(442473),n=e.i(7494),r=e.i(250474);let s=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],a=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),i=e=>Array.isArray(e)?e:[],o=e=>"string"==typeof e&&e?e:null,l=e=>a(e.package)&&"next"===e.package.name&&"npm"===e.package.ecosystem,u="OSV.dev sent an answer we couldn't read";async function d(e,f={}){let m=f.timeoutMs??1e4,h=f.maxBytes??2097152,g=AbortSignal.timeout(m),y=(0,t.X)(g),v=`OSV.dev didn't answer within ${p(m)}`,k=[],w=null;for(let n=0;n<3;n++){var b;let n,r;try{n=await (f.fetch??fetch)("https://api.osv.dev/v1/query",{method:"POST",headers:{"content-type":"application/json","user-agent":"OpsConsole-Security/1.0 (+https://watchbell.west-solutions.web.id)"},body:JSON.stringify({package:{name:"next",ecosystem:"npm"},version:e,...w?{page_token:w}:{}}),redirect:"error",cache:"no-store",signal:g})}catch(e){return{ok:!1,error:c(e)?v:"Couldn't reach OSV.dev"}}if(!n.ok)return await n.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${n.status}`};try{let{bytes:e,truncated:s}=await (0,t.z)(n,h,y);if(s)return{ok:!1,error:"OSV.dev sent too large an answer"};r=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:c(e)?v:u}}let s=a(b=r)?void 0===b.vulns?[]:Array.isArray(b.vulns)?b.vulns:null:null;if(null===s)return{ok:!1,error:u};if(k.push(...s),!(w=a(r)?o(r.next_page_token):null))break}let $=function(e,t){let u=[],d=0;for(let n of e){if(!a(n))continue;let e=o(n.id);e&&(d++,n.withdrawn||u.push({id:e.slice(0,64),cve:i(n.aliases).map(o).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(o(n.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=a(e.database_specific)?o(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":s.includes(t??"")?t:"UNKNOWN"}(n),fixed:function(e,t){let n=null;for(let s of i(e))if(a(s)&&l(s))for(let e of i(s.ranges)){if(!a(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let s=null;for(let l of i(e.events)){if(!a(l))continue;let e=o(l.introduced),i=o(l.fixed);e?s=e:i&&null!==s?((0,r.f)(t,s)>=0&&0>(0,r.f)(t,i)&&(null===n||0>(0,r.f)(i,n))&&(n=i),s=null):(o(l.last_affected)||o(l.limit))&&(s=null)}}return n}(n.affected,t)}))}return e.length>0&&0===d?null:(0,n.I)(u).slice(0,50)}(k,e);return null===$?{ok:!1,error:u}:{ok:!0,findings:$}}let c=e=>e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name),p=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`;e.s(["y",0,d,"t",0,c],267485);var f=e.i(804581);let m="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function h(e,t,n,r){let s=r.deadline-Date.now();if(s<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(s);return y(e,{method:"POST",headers:{"content-type":"application/json","user-agent":m},body:JSON.stringify(t),signal:a},n,a,r)}async function g(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(Math.min(r,8e3));return y(e,{method:"GET",headers:{"user-agent":m},signal:s},t,s,n)}async function y(e,n,r,s,a){let i;try{i=await (a.fetch??fetch)(e,{...n,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:c(e)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!i.ok)return await i.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${i.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(i,r,(0,t.X)(s));if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(e))}}catch(e){return{ok:!1,error:c(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function v(e,t){let n=[];for(let r of(0,f.f)(e)){let e=await h(f.n,r,4194304,t);if(!e.ok)return e;let s=(0,f.j)(e.body,r.queries.length);if(!s)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...s)}return{ok:!0,ids:n}}async function k(e,t){let n=[...new Set(e)].filter(f.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,s=null;for(let e=0;e<n.length&&!s;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await g(`${f.W}${encodeURIComponent(e)}`,1048576,t),a=n.ok?(0,f.O)(n.body):null;a?r.set(e,a):s??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return s?{ok:!1,error:s}:{ok:!0,map:r}}e.s(["J",0,k,"K",0,v],891262)},804581,e=>{var t=e.i(250474);let n=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),r=e=>Array.isArray(e)?e:[],s=e=>"string"==typeof e&&e?e:null,a=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),i={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"},o=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",l=(e,t)=>n(e.package)&&e.package.name===t&&"npm"===e.package.ecosystem;e.s(["S",0,20,"n",0,"https://api.osv.dev/v1/querybatch","W",0,"https://api.osv.dev/v1/vulns/","h",0,200,"f",0,function(e){let t=[];for(let n=0;n<e.length;n+=1e3)t.push({queries:e.slice(n,n+1e3).map(e=>({package:{name:e.name,ecosystem:"npm"},version:e.version}))});return t},"i",0,function(e,a,i,o=new Map){let u=[];return e.forEach((e,d)=>{for(let c of a[d]??[]){let a=o.get(`${e.name}@${e.version}|${c}`);if(a){u.push({...a,dev:e.dev});continue}let d=i.get(c);d&&!d.withdrawn&&u.push({package:e.name,installedVersion:e.version,vulnId:d.id,aliases:d.aliases,severity:d.severity,fixedVersion:function(e,a,i){let o=null;for(let u of r(e))if(n(u)&&l(u,a))for(let e of r(u.ranges)){if(!n(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let a=null;for(let l of r(e.events)){if(!n(l))continue;let e=s(l.introduced),r=s(l.fixed);e?a=e:r&&null!==a?((0,t.f)(i,a)>=0&&0>(0,t.f)(i,r)&&(null===o||0>(0,t.f)(r,o))&&(o=r),a=null):(s(l.last_affected)||s(l.limit))&&(a=null)}}return o}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),u},"G",0,a,"O",0,function(e){if(!n(e))return null;let t=s(e.id);return t&&a(t)?{id:t,aliases:[...new Set(r(e.aliases).map(s).filter(e=>!!e&&a(e)))].slice(0,20),summary:(s(e.summary)??s(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=n(e.database_specific)?s(e.database_specific.severity)?.toUpperCase():null;if(t&&i[t])return i[t];for(let t of r(e.severity)){if(!n(t)||"CVSS_V3"!==t.type&&"CVSS_V31"!==t.type)continue;let e=s(t.score)?function(e){let t,n=/^CVSS:3\.[01]\/(.+)$/.exec(e.trim());if(!n)return null;let r={};for(let e of n[1].split("/")){let[t,n]=e.split(":");t&&n&&(r[t]=n)}let s={N:.85,A:.62,L:.55,P:.2},a={L:.77,H:.44},i={N:.85,R:.62},o={H:.56,L:.22,N:0},l="C"===r.S,u=l?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![s[r.AV],a[r.AC],u[r.PR],i[r.UI],o[r.C],o[r.I],o[r.A]].every(e=>"number"==typeof e)||"U"!==r.S&&"C"!==r.S)return null;let d=1-(1-o[r.C])*(1-o[r.I])*(1-o[r.A]),c=l?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*s[r.AV]*a[r.AC]*u[r.PR]*i[r.UI];return c<=0?0:(t=Math.round(1e5*Math.min(l?1.08*(c+p):c+p,10)))%1e4==0?t/1e5:(Math.floor(t/1e4)+1)/10}(s(t.score)):null;if(null!==e)return o(e)}return(s(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!s(e.withdrawn),affected:e.affected}:null},"j",0,function(e,t){return n(e)&&Array.isArray(e.results)&&e.results.length===t?e.results.map(e=>n(e)?r(e.vulns).map(e=>n(e)?s(e.id):null).filter(e=>!!e&&a(e)):[]):null}])},413230,e=>{var t=e.i(250474),n=e.i(32391),r=e.i(804581);let s=["critical","high","moderate","low","unknown"],a=e=>s.indexOf(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),o=e=>"string"==typeof e&&e?e:null,l={critical:"critical",high:"high",medium:"moderate",moderate:"moderate",low:"low"},u=e=>`${e.package}@${e.installedVersion}|${e.vulnId}`,d=e=>{let t;return!e.dev&&(a(e.severity)<=a("high")||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))||"moderate"===e.severity&&!0===e.direct)};e.s(["g",0,function(e){let t=e.filter(d);return t.some(e=>{let t;return"critical"===e.severity||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))})?"critical":t.length?"warning":null},"L",0,function(e){let t=e.filter(d),n=[...t].sort((e,t)=>a(e.severity)-a(t.severity)||(e.package<t.package?-1:1)),r=[];for(let e of n){let t=`${e.package} ${e.installedVersion}${e.fixedVersion?` → ${e.fixedVersion}`:" (no fix yet)"}`;r.includes(t)||r.push(t)}let s=new Set(t.map(e=>e.package)).size,i=function(e){let t={critical:0,high:0,moderate:0,low:0,unknown:0};for(let n of e)t[n.severity]++;return t}(t),o=["critical","high","moderate","low","unknown"].filter(e=>i[e]>0).map(e=>`${i[e]} ${e}`).join(", "),l=`${s} vulnerable package${1===s?"":"s"} (${o}): ${r.slice(0,4).join(", ")}${r.length>4?`, +${r.length-4} more`:""}.`;return l.length>300?`${l.slice(0,299)}…`:l},"z",0,function(e,t,n){let r=new Set;return e.forEach((e,s)=>{for(let a of t[s]??[])n.has(`${e.name}@${e.version}|${a}`)||r.add(a)}),[...r]},"A",0,function(e,t){let n=new Map;if(t)return n;for(let t of e)t.fixedVersion&&"dependabot"!==t.source&&n.set(u(t),{package:t.package,installedVersion:t.installedVersion,vulnId:t.vulnId,aliases:t.aliases,severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,dev:t.dev,source:"osv"});return n},"R",0,function(e,n,r){let s=[...e];for(let e of n)if(!s.some(t=>t.package===e.package&&(t.vulnId===e.ghsaId||t.aliases.includes(e.ghsaId)||null!==e.cveId&&t.aliases.includes(e.cveId)))&&e.range)for(let n of r)n.name===e.package&&function(e,n){let r=n.split(",").map(e=>e.trim()).filter(Boolean);return!!r.length&&r.every(n=>{let r=/^(<=|>=|<|>|=)\s*v?(\S+)$/.exec(n);if(!r)return!1;let s=(0,t.f)(e,r[2]);return"<"===r[1]?s<0:"<="===r[1]?s<=0:">"===r[1]?s>0:">="===r[1]?s>=0:0===s})}(n.version,e.range)&&s.push({package:e.package,installedVersion:n.version,vulnId:e.ghsaId,aliases:e.cveId?[e.cveId]:[],severity:e.severity,fixedVersion:e.fixed,summary:e.summary,dev:e.dev||n.dev,source:"dependabot"});return s},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let s of e){if(!i(s)||"open"!==s.state||!i(s.dependency)||!i(s.security_advisory))continue;let e=i(s.dependency.package)&&"npm"===s.dependency.package.ecosystem?o(s.dependency.package.name):null,a=o(s.security_advisory.ghsa_id);if(!e||!(0,n.L)(e)||!a||!(0,r.G)(a))continue;let u=i(s.security_vulnerability)?s.security_vulnerability:{},d=i(u.first_patched_version)?o(u.first_patched_version.identifier):null,c=o(s.security_advisory.cve_id);t.push({package:e,ghsaId:a,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(o(s.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,r.h),severity:l[(o(u.severity)??o(s.security_advisory.severity)??"").toLowerCase()]??"unknown",range:o(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===s.dependency.scope})}return t},"h",0,function(e,t,n){let s=new Map(e.map(e=>[u(e),e])),a=new Set,i={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(a.has(t))continue;a.add(t);let o={...e,aliases:e.aliases.slice(0,r.S),summary:e.summary.slice(0,r.h),direct:n.has(e.package)},l=s.get(t);l?i.update.push({id:l.id,severity:o.severity,fixedVersion:o.fixedVersion,summary:o.summary,aliases:o.aliases,dev:o.dev,direct:o.direct}):i.insert.push(o)}return i.resolve=e.filter(e=>!a.has(u(e))).map(e=>e.id),i},"U",0,function(e,t,n,r=!1){return!!r||!e||!e.scannedAt||(e.error?n.getTime()-e.scannedAt.getTime()>=72e6||e.lockfileSha!==t:e.lockfileSha!==t||!e.queriedAt||n.getTime()-e.queriedAt.getTime()>=6048e5)},"M",0,function(e){return[...e].sort((e,t)=>(e.scannedAt?.getTime()??-1)-(t.scannedAt?.getTime()??-1)||(e.id<t.id?-1:1))},"B",0,function(e){let n=new Map,r=new Set;for(let s of e){if(!s.direct||!s.fixedVersion||0>=(0,t.f)(s.fixedVersion,s.installedVersion))continue;!0!==s.dev&&r.add(s.package);let e=n.get(s.package)??{package:s.package,to:s.fixedVersion,vulnIds:[],cves:[],severity:s.severity};for(let n of((0,t.f)(s.fixedVersion,e.to)>0&&(e.to=s.fixedVersion),e.vulnIds.includes(s.vulnId)||e.vulnIds.push(s.vulnId),s.aliases))/^CVE-/.test(n)&&!e.cves.includes(n)&&e.cves.push(n);a(s.severity)<a(e.severity)&&(e.severity=s.severity),n.set(s.package,e)}for(let e of n.values())r.has(e.package)||(e.dev=!0);return[...n.values()].sort((e,t)=>a(e.severity)-a(t.severity)||(e.package<t.package?-1:1))}])},479301,e=>{let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&t.test(e)])},911191,e=>{let t=[[/(?:\b|(?<=%2F))hb(?:_|%5F)[0-9a-f]{32}\b/gi,"hb_[hidden]"],[/(\/api(?:\/|%2F)ping(?:\/|%2F))(?!hb_\[hidden\])[^/?#\s]+/gi,"$1[hidden]"],[/\b(postgres(?:ql)?|mysql|mongodb(?:\+srv)?|redis|rediss):\/\/\S+/gi,"$1://[hidden]"],[/\b(https?):\/\/[^\s/@:]+:[^\s/@]+@/gi,"$1://[hidden]@"],[/\b(Bearer|Basic)\s+[^\s"',;]+/gi,"$1 [hidden]"],[/\b((?:access_|refresh_|id_)?token|secret|password|passwd|pwd|api[_-]?key|apikey|authorization|cookie|session|private_key)(["']?\s*[:=]\s*["']?)(?!Bearer\b|Basic\b)([^\s"'&,;}]+)/gi,"$1$2[hidden]"],[/\beyJ[\w-]{8,}\.[\w-]{8,}\.[\w-]{8,}/g,"[jwt]"],[/\b[\w.+-]+@[\w-]+(?:\.[\w-]+)+\b/g,"[email]"],[/\b[A-Fa-f0-9]{40,}\b/g,"[redacted]"],[/\b(?=[A-Za-z0-9_-]*\d)(?=[A-Za-z0-9_-]*[A-Za-z])[A-Za-z0-9_-]{40,}\b/g,"[redacted]"]];function n(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}e.s(["l",0,n,"n",0,function(e){return null===e?null:n(e.split(/[?#]/)[0]||"/",512)},"h",0,function(e){return t.reduce((e,[t,n])=>e.replace(t,n),e)}])},659846,e=>{e.s(["f",0,["vercel","supabase","neon","firebase","turso","upstash","cloudflare","github","github_write"]],659846)},154491,e=>{let t=["home","hosting","database","devops","manage"],n=["hosting","database","devops"],r={vercel:"hosting",cloudflare:"hosting",supabase:"database",neon:"database",firebase:"database",turso:"database",upstash:"database",github:"devops",github_write:"devops"};function s(e){return Array.isArray(e)?t.filter(r=>"string"==typeof r&&t.includes(r)&&n.includes(r)&&e.includes(r)):[]}let a={MonitorDown:"hosting",HighLatency:"hosting",DeploymentFailed:"hosting",CertExpiringSoon:"hosting",DomainExpiringSoon:"hosting",DnsProxiedToVercel:"hosting",DatabasePaused:"database",StorageAlmostFull:"database",NeonComputeHigh:"database",FirestoreQuotaHigh:"database",AutoPauseRisk:"database",ComputeHigh:"database",DbQuotaHigh:"database",VulnerableDependency:"devops",FrameworkVulnerable:"hosting",MonitorDomainMoved:"hosting",CredentialExpiring:"account",CollectorStale:null},i=/^Log/;e.s(["D",0,r,"O",0,(e,t,n)=>{let s;if(!e.size)return!1;let o="account"===(s=a[t])?n?r[n]??null:null:void 0!==s?s:i.test(t)?"hosting":null;return null!==o&&e.has(o)},"N",0,s,"s",0,function(e){return{ruleKeys:Object.entries(a).filter(([,t])=>null!==t&&"account"!==t&&e.has(t)).map(([e])=>e),providers:Object.entries(r).filter(([,t])=>e.has(t)).map(([e])=>e)}},"I",0,e=>new Set(s(e))])},7494,e=>{let t={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function n(e){return e.reduce((e,n)=>t[n.severity]>t[e]?n.severity:e,"UNKNOWN")}let r=e=>`${e} known vulnerabilit${1===e?"y":"ies"}`;e.s(["t",0,function(e,s,a){let i=new Set((s?.findings??[]).map(e=>e.id));if("vulnerable"===a.status&&a.findings.length>0){if(a.findings.every(e=>i.has(e.id)))return null;let s=n(a.findings);return{kind:t[s]>=t.HIGH?"err":"warn",message:`${e} runs Next.js ${a.version} with ${r(a.findings.length)} (${s.toLowerCase()})`,detail:a.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===a.status&&i.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${a.version})`,detail:null}:null},"I",0,function(e){return[...e].sort((e,n)=>t[n.severity]-t[e.severity]||(e.id<n.id?-1:+(e.id>n.id)))},"q",0,r,"N",0,n])},250474,e=>{function t(e){let[t,...n]=e.trim().split("-"),r=t.split(".").map(e=>Number.parseInt(e,10)||0);return{nums:[r[0]??0,r[1]??0,r[2]??0],pre:n.length?n.join("-").split("."):[]}}e.s(["f",0,function(e,n){let r=t(e),s=t(n);for(let e=0;e<3;e++)if(r.nums[e]!==s.nums[e])return r.nums[e]-s.nums[e];return function(e,t){if(!e.length||!t.length)return e.length?-1:+!!t.length;for(let n=0;n<Math.max(e.length,t.length);n++){if(void 0===e[n])return -1;if(void 0===t[n])return 1;let r=/^\d+$/.test(e[n])?Number(e[n]):null,s=/^\d+$/.test(t[n])?Number(t[n]):null;if(null!==r&&null!==s){if(r!==s)return r-s}else if(null!==r||null!==s)return null!==r?-1:1;else if(e[n]!==t[n])return e[n]<t[n]?-1:1}return 0}(r.pre,s.pre)}])}]})();
5
+
6
+ //# sourceMappingURL=src_lib_206j7lyff31-g._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[927262,e=>{"use strict";let n=e=>(e??0).toLocaleString("en-US"),o={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:e=>`${n(e)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:e=>`No collector run for ${n(e)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:e=>`p95 > ${n(e)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"Production deployment state = ERROR"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase status = INACTIVE"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:e=>`TLS certificate expires in < ${n(e)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:e=>`Domain expires in < ${n(e)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Database size > ${n(e)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:e=>`> ${n(e)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:e=>`Daily reads > ${n(e)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase project without API traffic for ${n(e)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase CPU > ${n(e)}% for 15 min, RAM > ${n(Math.min(99,(e??80)+10))}%, disk > ${n(e)}% or connections > ${n(e)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Turso, Upstash or D1 usage > ${n(e)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:e=>`Account credential expires in < ${n(e)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}},s=Object.keys(o),i=["critical","warning","info"],r=["telegram","discord","email_digest"];e.s(["_",0,o,"u",0,s,"h",0,e=>"string"==typeof e&&e in o,"N",0,function(e,s){let a=o[e],t={},d=i.find(e=>e===s.severity);d||(t.severity="Pick a severity.");let l=null;if(a.bounds){let e=String(s.threshold??"").replace(/,/g,"").trim(),o=/^\d+$/.test(e)?Number(e):0/0;!Number.isInteger(o)||o<a.bounds[0]||o>a.bounds[1]?t.threshold=`Enter a whole number from ${n(a.bounds[0])} to ${n(a.bounds[1])}.`:l=o}let u=Array.isArray(s.channels)?s.channels:[];return(u.every(e=>r.includes(e))||(t.channels="Pick from Telegram, Discord and the daily digest."),Object.keys(t).length||!d)?{ok:!1,fieldErrors:t}:{ok:!0,value:{severity:d,threshold:l,channels:[...new Set(u)],enabled:!0===s.enabled}}}])}];
1
+ module.exports=[927262,e=>{"use strict";let o=e=>(e??0).toLocaleString("en-US"),n={MonitorDown:{key:"MonitorDown",severity:"critical",threshold:3,bounds:[1,10],source:"own",needs:null,sampled:!0,condition:e=>`${o(e)} failed checks in a row`},CollectorStale:{key:"CollectorStale",severity:"critical",threshold:5,bounds:[3,60],source:"own",needs:null,sampled:!1,condition:e=>`No collector run for ${o(e)} min`},HighLatency:{key:"HighLatency",severity:"warning",threshold:1500,bounds:[100,3e4],source:"own",needs:null,sampled:!0,condition:e=>`Slowest 5% of checks over ${o(e)} ms for 10 min`},DeploymentFailed:{key:"DeploymentFailed",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A production deploy fails"},DatabasePaused:{key:"DatabasePaused",severity:"warning",threshold:null,bounds:null,source:"api",needs:"databases",sampled:!1,condition:()=>"Supabase pauses the project"},CertExpiringSoon:{key:"CertExpiringSoon",severity:"warning",threshold:14,bounds:[1,90],source:"own",needs:"domains",sampled:!1,condition:e=>`TLS certificate expires in < ${o(e)} days`},DomainExpiringSoon:{key:"DomainExpiringSoon",severity:"warning",threshold:30,bounds:[1,180],source:"api",needs:"domains",sampled:!1,condition:e=>`Domain expires in < ${o(e)} days`},StorageAlmostFull:{key:"StorageAlmostFull",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Database size > ${o(e)}% of free limit`},NeonComputeHigh:{key:"NeonComputeHigh",severity:"warning",threshold:80,bounds:[1,100],source:"api",needs:"databases",sampled:!1,condition:e=>`> ${o(e)} of 100 CU-hours this month`},FirestoreQuotaHigh:{key:"FirestoreQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"test",needs:"databases",sampled:!1,condition:e=>`Daily reads > ${o(e)}% of 50k`},AutoPauseRisk:{key:"AutoPauseRisk",severity:"info",threshold:4,bounds:[1,6],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase project without API traffic for ${o(e)}+ days`},DnsProxiedToVercel:{key:"DnsProxiedToVercel",severity:"info",threshold:null,bounds:null,source:"api",needs:"dns",sampled:!1,condition:()=>"Cloudflare record proxied in front of Vercel"},ComputeHigh:{key:"ComputeHigh",severity:"warning",threshold:80,bounds:[50,95],source:"api",needs:"databases",sampled:!1,condition:e=>`Supabase CPU > ${o(e)}% for 15 min, RAM > ${o(Math.min(99,(e??80)+10))}%, disk > ${o(e)}% or connections > ${o(e)}% of max`},DbQuotaHigh:{key:"DbQuotaHigh",severity:"warning",threshold:80,bounds:[10,100],source:"api",needs:"databases",sampled:!1,condition:e=>`Turso, Upstash or D1 usage > ${o(e)}% of a free-plan quota`},CredentialExpiring:{key:"CredentialExpiring",severity:"warning",threshold:14,bounds:[1,60],source:"api",needs:null,sampled:!1,condition:e=>`Account credential expires in < ${o(e)} days`},VulnerableDependency:{key:"VulnerableDependency",severity:"warning",threshold:null,bounds:null,source:"api",needs:null,sampled:!1,condition:()=>"A dependency has a critical or high advisory, or a moderate one on a direct dependency (OSV.dev)"},FrameworkVulnerable:{key:"FrameworkVulnerable",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The app's Next.js version has a known advisory (OSV.dev)"},MonitorDomainMoved:{key:"MonitorDomainMoved",severity:"warning",threshold:null,bounds:null,source:"own",needs:null,sampled:!1,condition:()=>"The monitor's domain is no longer one of the app's domains"}},s=Object.keys(n),i=e=>"string"==typeof e&&e in n,r=["critical","warning","info"],a=["telegram","discord","webhook","smtp","email_digest"],t={MonitorDown:"Site down",CollectorStale:"Checks stopped",HighLatency:"Slow responses",DeploymentFailed:"Deploy failed",DatabasePaused:"Database paused",CertExpiringSoon:"Certificate expiring",DomainExpiringSoon:"Domain expiring",StorageAlmostFull:"Database almost full",NeonComputeHigh:"Neon hours running out",FirestoreQuotaHigh:"Firestore reads running out",AutoPauseRisk:"Supabase may pause",DnsProxiedToVercel:"Cloudflare proxy in front of Vercel",ComputeHigh:"Supabase under load",DbQuotaHigh:"Free quota running out",CredentialExpiring:"Token expiring",VulnerableDependency:"Vulnerable package",FrameworkVulnerable:"Next.js needs a security update",MonitorDomainMoved:"App moved to a new domain"};e.s(["_",0,n,"u",0,s,"$",0,t,"h",0,i,"N",0,function(e,s){let i=n[e],t={},d=r.find(e=>e===s.severity);d||(t.severity="Pick a severity.");let l=null;if(i.bounds){let e=String(s.threshold??"").replace(/,/g,"").trim(),n=/^\d+$/.test(e)?Number(e):0/0;!Number.isInteger(n)||n<i.bounds[0]||n>i.bounds[1]?t.threshold=`Enter a whole number from ${o(i.bounds[0])} to ${o(i.bounds[1])}.`:l=n}let u=Array.isArray(s.channels)?s.channels:[];return(u.every(e=>a.includes(e))||(t.channels="Pick from Telegram, Discord and the daily digest."),Object.keys(t).length||!d)?{ok:!1,fieldErrors:t}:{ok:!0,value:{severity:d,threshold:l,channels:[...new Set(u)],enabled:!0===s.enabled}}},"v",0,e=>i(e)?t[e]:e])}];
2
2
 
3
3
  //# sourceMappingURL=src_lib_alerts_catalog_ts_1ndg28acul64q._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[109307,600079,e=>{"use strict";var r=e.i(93321);e.i(570396);var t=e.i(673727),i=e.i(800717),n=e.i(548734),a=e.i(837137),o=e.i(745614),s=e.i(19809),u=e.i(371289);class c extends Error{reason;constructor(e){super(e),this.reason=e}}let l={"signed-out":"Your session ended. Sign in again.","not-member":"Your email isn't on this console.",forbidden:"You don't have permission to do that.",mfa:"Confirm your sign-in with your authenticator code first.","password-change":"Change your temporary password first."};async function d(e,r,i,n){try{let t=await i.requireActionMember(e);if((0,u.W)()){if(!n)return{ok:!1,error:s.Y};return await ("local"===n?r(t):n(t))}return await r(t)}catch(r){if((0,t.unstable_rethrow)(r),r instanceof c)return{ok:!1,error:l[r.reason]};if((0,s.h)(r))return{ok:!1,error:s.Y};let e=(0,u.W)()?(0,o.E)(r):null;if(e)return{ok:!1,error:e};return console.error("action failed:",r instanceof Error?r.name:"unknown"),{ok:!1,error:"Something went wrong. Try again."}}}e.s(["W",0,c,"F",0,d],600079);var m=e.i(366443),w=e.i(753682),f=e.i(221246);let h=(0,i.cache)(async()=>(0,m.f)().sessionUser()),g="/auth/session-ended";async function b(e,r){if("aal2"===r)return"ok";let t=await (0,m.f)().hasVerifiedFactor(e.userId);return"signed-out"===t?"signed-out":(0,w.f)({role:e.role,aal:r,hasVerifiedFactor:t})}async function y(){let e=await h();e||(0,t.redirect)("/signin");let r=await p(e.userId);r||(0,t.redirect)("/auth/not-member");let i=await b(r,e.aal);return"signed-out"===i&&(0,t.redirect)(g),{member:r,step:i}}let p=(0,i.cache)(async e=>{let[t]=await (0,n.f)().select({id:a.members.id,userId:a.members.userId,email:a.members.email,role:a.members.role}).from(a.members).where((0,r.u)(a.members.userId,e)).limit(1);return t??null});async function k(e){let[t]=await (0,n.f)().select().from(a.invites).where((0,r.b)((0,r.u)(a.invites.email,e),(0,r.M)(a.invites.acceptedAt),(0,r.H)(a.invites.expiresAt,new Date))).limit(1);return t??null}async function v(){let e=await h();e||(0,t.redirect)("/signin");let r=await p(e.userId);if(r){let i=await b(r,e.aal);return"signed-out"===i&&(0,t.redirect)(g),"setup"===i&&(0,t.redirect)("/mfa/setup"),"challenge"===i&&(0,t.redirect)("/mfa"),e.mustChangePassword&&(0,t.redirect)("/account/password"),r}e.email&&await k(e.email)&&(0,t.redirect)("/invite"),(0,t.redirect)("/auth/not-member")}async function I(e){let r=await v();return{ok:(0,f.L)(r.role,e),member:r}}async function Y(e){let r=await h();if(!r)throw new c("signed-out");let t=await p(r.userId);if(!t)throw new c("not-member");if(!(0,f.L)(t.role,e))throw new c("forbidden");let i=await b(t,r.aal);if("signed-out"===i)throw new c("signed-out");if("ok"!==i)throw new c("mfa");if(r.mustChangePassword)throw new c("password-change");return t}e.s(["F",0,y,"M",0,k,"x",0,h,"B",0,I,"g",0,Y,"I",0,v],109307)}];
1
+ module.exports=[109307,600079,e=>{"use strict";var r=e.i(93321);e.i(570396);var t=e.i(673727),i=e.i(800717),n=e.i(548734),a=e.i(837137),o=e.i(745614),s=e.i(19809),u=e.i(371289);class l extends Error{reason;constructor(e){super(e),this.reason=e}}let c={"signed-out":"Your session ended. Sign in again.","not-member":"Your email isn't on this console.",forbidden:"You don't have permission to do that.",mfa:"Confirm your sign-in with your authenticator code first.","password-change":"Change your temporary password first."};async function d(e,r,i,n){try{let t=await i.requireActionMember(e);if((0,u.W)()){if(!n)return{ok:!1,error:s.Y};return await ("local"===n?r(t):n(t))}return await r(t)}catch(r){if((0,t.unstable_rethrow)(r),r instanceof l)return{ok:!1,error:c[r.reason]};if((0,s.h)(r))return{ok:!1,error:s.Y};let e=(0,u.W)()?(0,o.E)(r):null;if(e)return{ok:!1,error:e};return console.error("action failed:",r instanceof Error?r.name:"unknown"),{ok:!1,error:"That didn't go through, and Watchbell couldn't tell why. Try again in a moment; if it keeps failing, the server log has the details."}}}e.s(["W",0,l,"F",0,d],600079);var m=e.i(366443),f=e.i(753682),w=e.i(221246);let h=(0,i.cache)(async()=>(0,m.f)().sessionUser()),g="/auth/session-ended";async function b(e,r){if("aal2"===r)return"ok";let t=await (0,m.f)().hasVerifiedFactor(e.userId);return"signed-out"===t?"signed-out":(0,f.f)({role:e.role,aal:r,hasVerifiedFactor:t})}async function y(){let e=await h();e||(0,t.redirect)("/signin");let r=await p(e.userId);r||(0,t.redirect)("/auth/not-member");let i=await b(r,e.aal);return"signed-out"===i&&(0,t.redirect)(g),{member:r,step:i}}let p=(0,i.cache)(async e=>{let[t]=await (0,n.f)().select({id:a.members.id,userId:a.members.userId,email:a.members.email,role:a.members.role}).from(a.members).where((0,r.u)(a.members.userId,e)).limit(1);return t??null});async function k(e){let[t]=await (0,n.f)().select().from(a.invites).where((0,r.b)((0,r.u)(a.invites.email,e),(0,r.M)(a.invites.acceptedAt),(0,r.H)(a.invites.expiresAt,new Date))).limit(1);return t??null}async function v(){let e=await h();e||(0,t.redirect)("/signin");let r=await p(e.userId);if(r){let i=await b(r,e.aal);return"signed-out"===i&&(0,t.redirect)(g),"setup"===i&&(0,t.redirect)("/mfa/setup"),"challenge"===i&&(0,t.redirect)("/mfa"),e.mustChangePassword&&(0,t.redirect)("/account/password"),r}e.email&&await k(e.email)&&(0,t.redirect)("/invite"),(0,t.redirect)("/auth/not-member")}async function I(e){let r=await v();return{ok:(0,w.L)(r.role,e),member:r}}async function Y(e){let r=await h();if(!r)throw new l("signed-out");let t=await p(r.userId);if(!t)throw new l("not-member");if(!(0,w.L)(t.role,e))throw new l("forbidden");let i=await b(t,r.aal);if("signed-out"===i)throw new l("signed-out");if("ok"!==i)throw new l("mfa");if(r.mustChangePassword)throw new l("password-change");return t}e.s(["F",0,y,"M",0,k,"x",0,h,"B",0,I,"g",0,Y,"I",0,v],109307)}];
2
2
 
3
3
  //# sourceMappingURL=src_lib_auth_ts_11yt3pae6wy-o._.js.map