watchbell 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +123 -84
  3. package/bin/watchbell.mjs +593 -23
  4. package/package.json +1 -1
  5. package/server/.next/BUILD_ID +1 -1
  6. package/server/.next/app-path-routes-manifest.json +1 -0
  7. package/server/.next/build-manifest.json +116 -105
  8. package/server/.next/prerender-manifest.json +3 -3
  9. package/server/.next/routes-manifest.json +6 -0
  10. package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
  11. package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
  12. package/server/.next/server/app/(console)/(private)/ai/agents/page.js +61 -58
  13. package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
  14. package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
  15. package/server/.next/server/app/(console)/(private)/ai/ask/page/build-manifest.json +3 -3
  16. package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
  17. package/server/.next/server/app/(console)/(private)/ai/ask/page.js +61 -58
  18. package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
  19. package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
  20. package/server/.next/server/app/(console)/(private)/ai/connect/page/build-manifest.json +3 -3
  21. package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
  22. package/server/.next/server/app/(console)/(private)/ai/connect/page.js +61 -58
  23. package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
  24. package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
  25. package/server/.next/server/app/(console)/(private)/ai/keys/page/build-manifest.json +3 -3
  26. package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
  27. package/server/.next/server/app/(console)/(private)/ai/keys/page.js +61 -58
  28. package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
  29. package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
  30. package/server/.next/server/app/(console)/(private)/ai/logs/page/build-manifest.json +3 -3
  31. package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
  32. package/server/.next/server/app/(console)/(private)/ai/logs/page.js +61 -58
  33. package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
  34. package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
  35. package/server/.next/server/app/(console)/(private)/ai/models/page/build-manifest.json +3 -3
  36. package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
  37. package/server/.next/server/app/(console)/(private)/ai/models/page.js +61 -58
  38. package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
  39. package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
  40. package/server/.next/server/app/(console)/(private)/ai/page/build-manifest.json +3 -3
  41. package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
  42. package/server/.next/server/app/(console)/(private)/ai/page.js +61 -58
  43. package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
  44. package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
  45. package/server/.next/server/app/(console)/(private)/ai/playground/page/build-manifest.json +3 -3
  46. package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
  47. package/server/.next/server/app/(console)/(private)/ai/playground/page.js +61 -58
  48. package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
  49. package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
  50. package/server/.next/server/app/(console)/(private)/ai/providers/page/build-manifest.json +3 -3
  51. package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
  52. package/server/.next/server/app/(console)/(private)/ai/providers/page.js +61 -58
  53. package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
  54. package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
  55. package/server/.next/server/app/(console)/(private)/ai/quota/page/build-manifest.json +3 -3
  56. package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
  57. package/server/.next/server/app/(console)/(private)/ai/quota/page.js +61 -58
  58. package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
  59. package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
  60. package/server/.next/server/app/(console)/(private)/ai/usage/page/build-manifest.json +3 -3
  61. package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
  62. package/server/.next/server/app/(console)/(private)/ai/usage/page.js +61 -58
  63. package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
  64. package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
  65. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/build-manifest.json +3 -3
  66. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
  67. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +61 -58
  68. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
  69. package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
  70. package/server/.next/server/app/(console)/(private)/auto-actions/page/build-manifest.json +3 -3
  71. package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
  72. package/server/.next/server/app/(console)/(private)/auto-actions/page.js +61 -58
  73. package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
  74. package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
  75. package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
  76. package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
  77. package/server/.next/server/app/(console)/[...slug]/page.js +62 -59
  78. package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
  79. package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
  80. package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
  81. package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
  82. package/server/.next/server/app/(console)/alerts/page.js +61 -58
  83. package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
  84. package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
  85. package/server/.next/server/app/(console)/apps/[id]/page/build-manifest.json +3 -3
  86. package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +23 -23
  87. package/server/.next/server/app/(console)/apps/[id]/page.js +61 -58
  88. package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
  89. package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
  90. package/server/.next/server/app/(console)/apps/page/build-manifest.json +3 -3
  91. package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +11 -11
  92. package/server/.next/server/app/(console)/apps/page.js +61 -58
  93. package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
  94. package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
  95. package/server/.next/server/app/(console)/backups/page/build-manifest.json +3 -3
  96. package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
  97. package/server/.next/server/app/(console)/backups/page.js +61 -58
  98. package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
  99. package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
  100. package/server/.next/server/app/(console)/catalog/page/build-manifest.json +3 -3
  101. package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
  102. package/server/.next/server/app/(console)/catalog/page.js +61 -58
  103. package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
  104. package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
  105. package/server/.next/server/app/(console)/connections/page/build-manifest.json +3 -3
  106. package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +54 -54
  107. package/server/.next/server/app/(console)/connections/page.js +67 -64
  108. package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
  109. package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
  110. package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
  111. package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
  112. package/server/.next/server/app/(console)/d1/page.js +61 -58
  113. package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
  114. package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
  115. package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
  116. package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +14 -14
  117. package/server/.next/server/app/(console)/deployments/page.js +61 -58
  118. package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
  119. package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
  120. package/server/.next/server/app/(console)/dns/page/build-manifest.json +3 -3
  121. package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
  122. package/server/.next/server/app/(console)/dns/page.js +61 -58
  123. package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
  124. package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
  125. package/server/.next/server/app/(console)/domains/page/build-manifest.json +3 -3
  126. package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
  127. package/server/.next/server/app/(console)/domains/page.js +61 -58
  128. package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
  129. package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
  130. package/server/.next/server/app/(console)/events/page/build-manifest.json +3 -3
  131. package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
  132. package/server/.next/server/app/(console)/events/page.js +61 -58
  133. package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
  134. package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
  135. package/server/.next/server/app/(console)/firebase/page/build-manifest.json +3 -3
  136. package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +15 -15
  137. package/server/.next/server/app/(console)/firebase/page.js +62 -59
  138. package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
  139. package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
  140. package/server/.next/server/app/(console)/logs/page/build-manifest.json +3 -3
  141. package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
  142. package/server/.next/server/app/(console)/logs/page.js +61 -58
  143. package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
  144. package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
  145. package/server/.next/server/app/(console)/manage/sections/page/app-paths-manifest.json +3 -0
  146. package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
  147. package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
  148. package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
  149. package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
  150. package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
  151. package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
  152. package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
  153. package/server/.next/server/app/(console)/neon/page/build-manifest.json +3 -3
  154. package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
  155. package/server/.next/server/app/(console)/neon/page.js +61 -58
  156. package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
  157. package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
  158. package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
  159. package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +16 -16
  160. package/server/.next/server/app/(console)/overview/page.js +61 -58
  161. package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  162. package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  163. package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
  164. package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
  165. package/server/.next/server/app/(console)/repos/[id]/page.js +61 -58
  166. package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
  167. package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
  168. package/server/.next/server/app/(console)/repos/page/build-manifest.json +3 -3
  169. package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
  170. package/server/.next/server/app/(console)/repos/page.js +61 -58
  171. package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
  172. package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
  173. package/server/.next/server/app/(console)/settings/page/build-manifest.json +3 -3
  174. package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
  175. package/server/.next/server/app/(console)/settings/page.js +61 -58
  176. package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  177. package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  178. package/server/.next/server/app/(console)/sql/page/build-manifest.json +3 -3
  179. package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
  180. package/server/.next/server/app/(console)/sql/page.js +61 -58
  181. package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
  182. package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
  183. package/server/.next/server/app/(console)/status/page/build-manifest.json +3 -3
  184. package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
  185. package/server/.next/server/app/(console)/status/page.js +61 -58
  186. package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
  187. package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
  188. package/server/.next/server/app/(console)/supabase/page/build-manifest.json +3 -3
  189. package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +27 -27
  190. package/server/.next/server/app/(console)/supabase/page.js +61 -58
  191. package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
  192. package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
  193. package/server/.next/server/app/(console)/topology/page/build-manifest.json +3 -3
  194. package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
  195. package/server/.next/server/app/(console)/topology/page.js +61 -58
  196. package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
  197. package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
  198. package/server/.next/server/app/(console)/turso/page/build-manifest.json +3 -3
  199. package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
  200. package/server/.next/server/app/(console)/turso/page.js +61 -58
  201. package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
  202. package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
  203. package/server/.next/server/app/(console)/upstash/page/build-manifest.json +3 -3
  204. package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
  205. package/server/.next/server/app/(console)/upstash/page.js +61 -58
  206. package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
  207. package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
  208. package/server/.next/server/app/(console)/uptime/page/build-manifest.json +3 -3
  209. package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +22 -22
  210. package/server/.next/server/app/(console)/uptime/page.js +61 -58
  211. package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
  212. package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
  213. package/server/.next/server/app/(console)/welcome/page/build-manifest.json +3 -3
  214. package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
  215. package/server/.next/server/app/(console)/welcome/page.js +62 -59
  216. package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
  217. package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
  218. package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
  219. package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  220. package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
  221. package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  222. package/server/.next/server/app/_global-error.html +1 -1
  223. package/server/.next/server/app/_global-error.rsc +3 -3
  224. package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  225. package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  226. package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  227. package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
  228. package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  229. package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
  230. package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  231. package/server/.next/server/app/_not-found.html +1 -1
  232. package/server/.next/server/app/_not-found.rsc +4 -4
  233. package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  234. package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  235. package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  236. package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
  237. package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
  238. package/server/.next/server/app/account/password/page.js.nft.json +1 -1
  239. package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
  240. package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
  241. package/server/.next/server/app/api/collect/route.js +78 -73
  242. package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
  243. package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
  244. package/server/.next/server/app/api/daily/route.js +77 -72
  245. package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
  246. package/server/.next/server/app/api/health/route.js.nft.json +1 -1
  247. package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
  248. package/server/.next/server/app/api/status/route.js.nft.json +1 -1
  249. package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
  250. package/server/.next/server/app/api/telegram/webhook/route.js +75 -70
  251. package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
  252. package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
  253. package/server/.next/server/app/api/v1/advice/route.js +20 -19
  254. package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
  255. package/server/.next/server/app/api/v1/ai/chat/completions/route.js +2 -2
  256. package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
  257. package/server/.next/server/app/api/v1/ai/models/route.js +2 -2
  258. package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
  259. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
  260. package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
  261. package/server/.next/server/app/api/v1/ai/questions/route.js +24 -23
  262. package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
  263. package/server/.next/server/app/api/v1/mcp/route.js +22 -21
  264. package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
  265. package/server/.next/server/app/api/v1/me/route.js +1 -1
  266. package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
  267. package/server/.next/server/app/api/v1/openapi.json/route.js +10 -9
  268. package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
  269. package/server/.next/server/app/api/v1/status/apps/[app]/route.js +20 -19
  270. package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
  271. package/server/.next/server/app/api/v1/status/route.js +20 -19
  272. package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
  273. package/server/.next/server/app/api/watchdog/route.js +21 -19
  274. package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
  275. package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
  276. package/server/.next/server/app/auth/google/callback/route.js +18 -17
  277. package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
  278. package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
  279. package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
  280. package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
  281. package/server/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  282. package/server/.next/server/app/invite/page/build-manifest.json +3 -3
  283. package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
  284. package/server/.next/server/app/invite/page.js +4 -3
  285. package/server/.next/server/app/invite/page.js.nft.json +1 -1
  286. package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
  287. package/server/.next/server/app/mfa/page/build-manifest.json +3 -3
  288. package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
  289. package/server/.next/server/app/mfa/page.js.nft.json +1 -1
  290. package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
  291. package/server/.next/server/app/mfa/setup/page/build-manifest.json +3 -3
  292. package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
  293. package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
  294. package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
  295. package/server/.next/server/app/page/build-manifest.json +3 -3
  296. package/server/.next/server/app/page/server-reference-manifest.json +1 -1
  297. package/server/.next/server/app/page.js.nft.json +1 -1
  298. package/server/.next/server/app/page_client-reference-manifest.js +1 -1
  299. package/server/.next/server/app/s/[slug]/badge/[file]/route.js +9 -8
  300. package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
  301. package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
  302. package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
  303. package/server/.next/server/app/s/[slug]/page.js +8 -8
  304. package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
  305. package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
  306. package/server/.next/server/app/setup/page/build-manifest.json +3 -3
  307. package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
  308. package/server/.next/server/app/setup/page.js.nft.json +1 -1
  309. package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  310. package/server/.next/server/app/signin/page/build-manifest.json +3 -3
  311. package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
  312. package/server/.next/server/app/signin/page.js.nft.json +1 -1
  313. package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  314. package/server/.next/server/app-paths-manifest.json +1 -0
  315. package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
  316. package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
  317. package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
  318. package/server/.next/server/chunks/{[root-of-the-server]__0_6eq1806attx._.js → [root-of-the-server]__00hb7hqa7qktx._.js} +1 -1
  319. package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
  320. package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
  321. package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
  322. package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
  323. package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
  324. package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
  325. package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
  326. package/server/.next/server/chunks/{[root-of-the-server]__06iz-tlpv7pqm._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
  327. package/server/.next/server/chunks/{[root-of-the-server]__0mtlynfv-vklo._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
  328. package/server/.next/server/chunks/{[root-of-the-server]__0j0medewrv95l._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
  329. package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
  330. package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
  331. package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
  332. package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
  333. package/server/.next/server/chunks/{[root-of-the-server]__09qqv-zsz9qhr._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
  334. package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
  335. package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +3 -0
  336. package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
  337. package/server/.next/server/chunks/{[root-of-the-server]__0znb_m_wygjdc._.js → [root-of-the-server]__0erdelc9_06nk._.js} +2 -2
  338. package/server/.next/server/chunks/{[root-of-the-server]__018ux7xja83l6._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
  339. package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
  340. package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
  341. package/server/.next/server/chunks/{[root-of-the-server]__02ihdvnmhshoe._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
  342. package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0grtjjr51j6xe._.js} +1 -1
  343. package/server/.next/server/chunks/{[root-of-the-server]__1jrqehmo6kq8x._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
  344. package/server/.next/server/chunks/{[root-of-the-server]__08801yoxfe_os._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
  345. package/server/.next/server/chunks/{[root-of-the-server]__081ywec7cjq3d._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
  346. package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
  347. package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
  348. package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
  349. package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
  350. package/server/.next/server/chunks/{[root-of-the-server]__0-ok-3r9xtz0y._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
  351. package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
  352. package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
  353. package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
  354. package/server/.next/server/chunks/[root-of-the-server]__0qmkpydmx3ljf._.js +3 -0
  355. package/server/.next/server/chunks/[root-of-the-server]__0r-zdzq6ki5gr._.js +3 -0
  356. package/server/.next/server/chunks/{[root-of-the-server]__0mhtnnebbepzx._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
  357. package/server/.next/server/chunks/{[root-of-the-server]__0u66-8g4ql645._.js → [root-of-the-server]__0sivlmcvkc1uq._.js} +1 -1
  358. package/server/.next/server/chunks/[root-of-the-server]__0t8d8b4qkw3y-._.js +3 -0
  359. package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
  360. package/server/.next/server/chunks/{[root-of-the-server]__1z3-s7wc9-uc6._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
  361. package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
  362. package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
  363. package/server/.next/server/chunks/{[root-of-the-server]__1x9tt_2yhozwe._.js → [root-of-the-server]__0vp-x4ifpr3p9._.js} +2 -2
  364. package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
  365. package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
  366. package/server/.next/server/chunks/[root-of-the-server]__0z-07azr3zk8s._.js +3 -0
  367. package/server/.next/server/chunks/[root-of-the-server]__0z-41cwvkliev._.js +3 -0
  368. package/server/.next/server/chunks/[root-of-the-server]__0zxyfd7u67hmv._.js +3 -0
  369. package/server/.next/server/chunks/[root-of-the-server]__1-rqermjb77se._.js +3 -0
  370. package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
  371. package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
  372. package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
  373. package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
  374. package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
  375. package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
  376. package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
  377. package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
  378. package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
  379. package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
  380. package/server/.next/server/chunks/[root-of-the-server]__13be7gbo81td4._.js +3 -0
  381. package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
  382. package/server/.next/server/chunks/{[root-of-the-server]__0wt74rsaz-308._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
  383. package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
  384. package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
  385. package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
  386. package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
  387. package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
  388. package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
  389. package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
  390. package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
  391. package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
  392. package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
  393. package/server/.next/server/chunks/{[root-of-the-server]__0qpf0qusq792k._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
  394. package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
  395. package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
  396. package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
  397. package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
  398. package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
  399. package/server/.next/server/chunks/[root-of-the-server]__1j26i51ankv-z._.js +3 -0
  400. package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
  401. package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
  402. package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
  403. package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
  404. package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
  405. package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
  406. package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
  407. package/server/.next/server/chunks/{[root-of-the-server]__0q691wec2busx._.js → [root-of-the-server]__1objhlwwrjfjk._.js} +2 -2
  408. package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
  409. package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
  410. package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
  411. package/server/.next/server/chunks/{[root-of-the-server]__0tb-63ts77gqd._.js → [root-of-the-server]__1tefe1f5835t_._.js} +2 -2
  412. package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +3 -0
  413. package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
  414. package/server/.next/server/chunks/{[root-of-the-server]__132wlw6sbwt1d._.js → [root-of-the-server]__1vi0u2vkv3tk0._.js} +2 -2
  415. package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
  416. package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +3 -0
  417. package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
  418. package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
  419. package/server/.next/server/chunks/{[root-of-the-server]__18mztbxkzaxjs._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
  420. package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
  421. package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
  422. package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
  423. package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
  424. package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
  425. package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
  426. package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
  427. package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
  428. package/server/.next/server/chunks/_0ejcrge5k4quv._.js +9 -9
  429. package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
  430. package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
  431. package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
  432. package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +3 -0
  433. package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
  434. package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
  435. package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
  436. package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
  437. package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
  438. package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
  439. package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
  440. package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
  441. package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
  442. package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
  443. package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
  444. package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
  445. package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
  446. package/server/.next/server/chunks/_103ai6ybnpq1k._.js +1 -1
  447. package/server/.next/server/chunks/_108e86rhye0o1._.js +1 -1
  448. package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
  449. package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
  450. package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
  451. package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
  452. package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
  453. package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
  454. package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +9 -9
  455. package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
  456. package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
  457. package/server/.next/server/chunks/_1kcmwgs544mo-._.js +1 -1
  458. package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +1 -1
  459. package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
  460. package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +3 -0
  461. package/server/.next/server/chunks/_1nuf-l7izvfl_._.js +1 -1
  462. package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
  463. package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +1 -1
  464. package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
  465. package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
  466. package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
  467. package/server/.next/server/chunks/{src_0uxqs7150nhx2._.js → src_014zbodp4djeb._.js} +2 -2
  468. package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
  469. package/server/.next/server/chunks/{src_0n42os1q41rha._.js → src_04pgj--n_d4w5._.js} +2 -2
  470. package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
  471. package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
  472. package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +3 -0
  473. package/server/.next/server/chunks/{src_01wdnb4skk1wz._.js → src_0kwnhwi77unm7._.js} +2 -2
  474. package/server/.next/server/chunks/src_0o4-snj7wkaav._.js +1 -1
  475. package/server/.next/server/chunks/{src_0d-zi077mzm6v._.js → src_0xqorb3-ef3ub._.js} +2 -2
  476. package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
  477. package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
  478. package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
  479. package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
  480. package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
  481. package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
  482. package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
  483. package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
  484. package/server/.next/server/chunks/{src_1-r51arho90p7._.js → src_1no_yh953mran._.js} +2 -2
  485. package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
  486. package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
  487. package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
  488. package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
  489. package/server/.next/server/chunks/src_instrumentation-node_ts_1c--sr1k7_8k2._.js +3 -0
  490. package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +2 -2
  491. package/server/.next/server/chunks/src_lib_0cbs2jlrw1qbh._.js +3 -0
  492. package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
  493. package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
  494. package/server/.next/server/chunks/src_lib_0oz4gm8agoidh._.js +6 -0
  495. package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
  496. package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
  497. package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +1 -1
  498. package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
  499. package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
  500. package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +2 -2
  501. package/server/.next/server/chunks/src_lib_13g9xjx8ci00z._.js +3 -0
  502. package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
  503. package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
  504. package/server/.next/server/chunks/src_lib_1p21oczr6lh5a._.js +3 -0
  505. package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
  506. package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
  507. package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +2 -2
  508. package/server/.next/server/chunks/src_lib_1yd94hta5y1hx._.js +3 -0
  509. package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
  510. package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
  511. package/server/.next/server/chunks/src_lib_brand-env_ts_1wcm1bjuismq_._.js +3 -0
  512. package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
  513. package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
  514. package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +1 -1
  515. package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +1 -1
  516. package/server/.next/server/chunks/src_lib_data_backup-db_ts_19rtzbv84xz_h._.js +2 -2
  517. package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  518. package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  519. package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  520. package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +9 -9
  521. package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
  522. package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +9 -9
  523. package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
  524. package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  525. package/server/.next/server/chunks/src_lib_time_ts_1__07rt8x18k-._.js +3 -0
  526. package/server/.next/server/chunks/src_lib_time_ts_1a27wp71yhgti._.js +3 -0
  527. package/server/.next/server/chunks/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  528. package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
  529. package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  530. package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  531. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
  532. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
  533. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
  534. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
  535. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
  536. package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
  537. package/server/.next/server/chunks/ssr/{[externals]__1u-jgivpw0_oh._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
  538. package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.js +1 -1
  539. package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
  540. package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
  541. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0aahjz4fnt4c_._.js → [root-of-the-server]__052_cprs0alpy._.js} +2 -2
  542. package/server/.next/server/chunks/ssr/{[root-of-the-server]__11-ssp_43878t._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
  543. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ijk9z1ot_xi4._.js → [root-of-the-server]__08479d23kb1xv._.js} +2 -2
  544. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1csz822qejxk-._.js → [root-of-the-server]__08fqg76puqdfr._.js} +2 -2
  545. package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
  546. package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
  547. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0lks-6wz-rmk5._.js → [root-of-the-server]__0acmauri7z1sg._.js} +2 -2
  548. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
  549. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tkmutq84zkeh._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
  550. package/server/.next/server/chunks/ssr/[root-of-the-server]__0h9gtpapca7i_._.js +3 -0
  551. package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
  552. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
  553. package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
  554. package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
  555. package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
  556. package/server/.next/server/chunks/ssr/[root-of-the-server]__0op0kqh43wd-a._.js +3 -0
  557. package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
  558. package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
  559. package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
  560. package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
  561. package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
  562. package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
  563. package/server/.next/server/chunks/ssr/{[root-of-the-server]__1fdzriy6yyu5d._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
  564. package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
  565. package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
  566. package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
  567. package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
  568. package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
  569. package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
  570. package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryb947ux5cq7._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
  571. package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
  572. package/server/.next/server/chunks/ssr/[root-of-the-server]__1owrn7crnsybx._.js +3 -0
  573. package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.js +1 -1
  574. package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
  575. package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
  576. package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
  577. package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
  578. package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
  579. package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
  580. package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
  581. package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
  582. package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
  583. package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
  584. package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
  585. package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
  586. package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
  587. package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
  588. package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
  589. package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
  590. package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
  591. package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
  592. package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
  593. package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
  594. package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
  595. package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
  596. package/server/.next/server/chunks/ssr/{_18t7ov64ycb-w._.js → _0ooh0hh-r_12s._.js} +2 -2
  597. package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
  598. package/server/.next/server/chunks/ssr/{_14bz_443syxhi._.js → _0pn3dn9s9es51._.js} +2 -2
  599. package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
  600. package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
  601. package/server/.next/server/chunks/ssr/{_06_f735j-1i20._.js → _0r04c1-snv6jw._.js} +2 -2
  602. package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
  603. package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
  604. package/server/.next/server/chunks/ssr/{_0i6y4bkm-0cm3._.js → _0tnfblwwlyvq2._.js} +2 -2
  605. package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
  606. package/server/.next/server/chunks/ssr/{_0o0-2ela2_qqd._.js → _0x1vi7mal3bqd._.js} +2 -2
  607. package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
  608. package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
  609. package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
  610. package/server/.next/server/chunks/ssr/_11w5w9dpxcf1w._.js +3 -0
  611. package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
  612. package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
  613. package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
  614. package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
  615. package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
  616. package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
  617. package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
  618. package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
  619. package/server/.next/server/chunks/ssr/{_08y82qdosn7ga._.js → _1_ojvke28lw3y._.js} +2 -2
  620. package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
  621. package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
  622. package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
  623. package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
  624. package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
  625. package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
  626. package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
  627. package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
  628. package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
  629. package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
  630. package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
  631. package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
  632. package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
  633. package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
  634. package/server/.next/server/chunks/ssr/_1qt1czw3w8dww._.js +3 -0
  635. package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
  636. package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
  637. package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
  638. package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
  639. package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
  640. package/server/.next/server/chunks/ssr/_20ln-4gu85-yt._.js +3 -0
  641. package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
  642. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
  643. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
  644. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
  645. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
  646. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
  647. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
  648. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
  649. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
  650. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
  651. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
  652. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
  653. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
  654. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
  655. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
  656. package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
  657. package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
  658. package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
  659. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
  660. package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
  661. package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
  662. package/server/.next/server/chunks/ssr/src_00ze92e3aolj8._.js +1 -1
  663. package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
  664. package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
  665. package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
  666. package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
  667. package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
  668. package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
  669. package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
  670. package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
  671. package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
  672. package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +3 -0
  673. package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
  674. package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
  675. package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
  676. package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
  677. package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
  678. package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
  679. package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
  680. package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
  681. package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
  682. package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
  683. package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
  684. package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
  685. package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
  686. package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
  687. package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.js +1 -1
  688. package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
  689. package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
  690. package/server/.next/server/chunks/ssr/src_11iuy79j_finh._.js +3 -0
  691. package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
  692. package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
  693. package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
  694. package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
  695. package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
  696. package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
  697. package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
  698. package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
  699. package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
  700. package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
  701. package/server/.next/server/chunks/ssr/{src_1eermasnm2cgy._.js → src_1ottjkdvhje3g._.js} +2 -2
  702. package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
  703. package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
  704. package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
  705. package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
  706. package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
  707. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
  708. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
  709. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
  710. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
  711. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
  712. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
  713. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_connect-view_tsx_04abz05n7hdsd._.js +15 -15
  714. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
  715. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
  716. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
  717. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.js +1 -1
  718. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
  719. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
  720. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
  721. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
  722. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
  723. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
  724. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
  725. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
  726. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
  727. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
  728. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
  729. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
  730. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
  731. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
  732. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
  733. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
  734. package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
  735. package/server/.next/server/chunks/ssr/{src_app_(console)_1ppp9j5e2rtqf._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
  736. package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
  737. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
  738. package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
  739. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_088bs149wsgca._.js +1 -1
  740. package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
  741. package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
  742. package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
  743. package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
  744. package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
  745. package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
  746. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
  747. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +3 -0
  748. package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
  749. package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
  750. package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
  751. package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.js +1 -1
  752. package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
  753. package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
  754. package/server/.next/server/chunks/ssr/src_app_(console)_domains_1ut499n11u8_r._.js +1 -1
  755. package/server/.next/server/chunks/ssr/src_app_(console)_firebase_page_tsx_0g20hm13dvbc-._.js +1 -1
  756. package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
  757. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_17htk-vea5fna._.js +3 -0
  758. package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
  759. package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
  760. package/server/.next/server/chunks/ssr/src_app_(console)_neon_1ubea__gt06o0._.js +1 -1
  761. package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
  762. package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
  763. package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.js +1 -1
  764. package/server/.next/server/chunks/ssr/src_app_(console)_sql_16-sh45tpob8n._.js +1 -1
  765. package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
  766. package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
  767. package/server/.next/server/chunks/ssr/src_app_(console)_status_page_tsx_1zvj799nv4kah._.js +1 -1
  768. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
  769. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_1ofufib3-zzt-._.js +1 -1
  770. package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
  771. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_148phfjye0539._.js +1 -1
  772. package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
  773. package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
  774. package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.js +1 -1
  775. package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
  776. package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
  777. package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
  778. package/server/.next/server/chunks/ssr/{src_app_signin_124xn9wb2fasu._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
  779. package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +3 -0
  780. package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
  781. package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
  782. package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +3 -3
  783. package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
  784. package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +1 -1
  785. package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +1 -1
  786. package/server/.next/server/chunks/ssr/{src_lib_1l8ej-zoyyegd._.js → src_lib_1p21oczr6lh5a._.js} +2 -2
  787. package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.js +1 -1
  788. package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
  789. package/server/.next/server/chunks/ssr/src_lib_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
  790. package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
  791. package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +1 -1
  792. package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
  793. package/server/.next/server/chunks/ssr/{src_lib_demo_20hj85e_64pp1._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
  794. package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
  795. package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
  796. package/server/.next/server/chunks/ssr/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
  797. package/server/.next/server/chunks/ssr/src_lib_time_ts_1ualgyi3irm1z._.js +3 -0
  798. package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
  799. package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
  800. package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
  801. package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
  802. package/server/.next/server/chunks/ssr/src_private_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
  803. package/server/.next/server/chunks/ssr/src_private_ai_views-db_ts_1jbnr41mskha2._.js +1 -1
  804. package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +3 -3
  805. package/server/.next/server/chunks/ssr/src_private_explorer_explorer_tsx_04m_tdottspjs._.js +1 -1
  806. package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
  807. package/server/.next/server/middleware-build-manifest.js +116 -105
  808. package/server/.next/server/next-font-manifest.js +1 -1
  809. package/server/.next/server/next-font-manifest.json +4 -0
  810. package/server/.next/server/pages/404.html +1 -1
  811. package/server/.next/server/pages/500.html +1 -1
  812. package/server/.next/server/preview-props.json +3 -3
  813. package/server/.next/server/server-reference-manifest.js +1 -1
  814. package/server/.next/server/server-reference-manifest.json +210 -164
  815. package/server/.next/static/chunks/08dak2kh1c6_7.js +1 -0
  816. package/server/.next/static/chunks/{2v14aqfx8wv9o.js → 0b9slopuz4e8a.js} +1 -1
  817. package/server/.next/static/chunks/{36ureqoyz5e06.js → 0dp-tuwkw7xf8.js} +2 -2
  818. package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
  819. package/server/.next/static/chunks/{2k9ytb8jmg14_.js → 0h9i512dn01kj.js} +1 -1
  820. package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
  821. package/server/.next/static/chunks/0icohez16w-ei.js +1 -0
  822. package/server/.next/static/chunks/{1ieazx9t3vl5p.js → 0j1wzqg4ukm70.js} +1 -1
  823. package/server/.next/static/chunks/{43_va15lk2zc1.js → 0j_5norjm-kef.js} +1 -1
  824. package/server/.next/static/chunks/{1-1hfgat2l_o9.js → 0kscmnb071fci.js} +1 -1
  825. package/server/.next/static/chunks/{0c7pskzfstcdh.js → 0ld78j1d4j201.js} +1 -1
  826. package/server/.next/static/chunks/0qlb-l1uyqku5.js +1 -0
  827. package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
  828. package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
  829. package/server/.next/static/chunks/{1ts_fd_r1kcrv.js → 1-oetq3mwlhds.js} +1 -1
  830. package/server/.next/static/chunks/{2fj4o7-stsvht.js → 11ywzwmfd_pt0.js} +1 -1
  831. package/server/.next/static/chunks/1j18pg23fzwv_.js +1 -0
  832. package/server/.next/static/chunks/1jaozq01v9r6e.js +1 -0
  833. package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
  834. package/server/.next/static/chunks/{0cannaigw8lhi.js → 1lsu_fxiyaeiz.js} +1 -1
  835. package/server/.next/static/chunks/1o3_amrh-sxr3.js +1 -0
  836. package/server/.next/static/chunks/{0wtboeftyamyk.js → 1w9o_jo_pejc5.js} +1 -1
  837. package/server/.next/static/chunks/1xy80z39ducub.js +1 -0
  838. package/server/.next/static/chunks/1yvbs41m8_4nc.js +7 -0
  839. package/server/.next/static/chunks/22alexnun_rdm.js +1 -0
  840. package/server/.next/static/chunks/{1o_q7_4ulcq9x.js → 27qwmt1w6-iri.js} +1 -1
  841. package/server/.next/static/chunks/29humkd2-_1oo.js +1 -0
  842. package/server/.next/static/chunks/29j96yfhxsf41.js +1 -0
  843. package/server/.next/static/chunks/29qnnsjsgsia6.js +1 -0
  844. package/server/.next/static/chunks/{2cjfogw85k3h-.js → 2ii8j9xuvv604.js} +1 -1
  845. package/server/.next/static/chunks/{30fczssqw6xys.js → 2m0ftj__ody0m.js} +1 -1
  846. package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
  847. package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
  848. package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
  849. package/server/.next/static/chunks/{0li9-xjc40g51.js → 2toeyr9b_nk0e.js} +1 -1
  850. package/server/.next/static/chunks/{2fo6iuxb0ec7f.js → 2w7qxt7ux-m1-.js} +1 -1
  851. package/server/.next/static/chunks/{1gmof0n5nswkk.js → 2zc1osymeruya.js} +1 -1
  852. package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
  853. package/server/.next/static/chunks/{026asl66kuq3f.js → 340ecjh1jzqjd.js} +15 -15
  854. package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
  855. package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
  856. package/server/.next/static/chunks/{3tqh7fwtd_k_l.js → 3gl2k6v182lli.js} +2 -2
  857. package/server/.next/static/chunks/{3f5sxz8awpdog.js → 3gurl_36kr7sg.js} +1 -1
  858. package/server/.next/static/chunks/{1gb8jvw-g7fr7.js → 3h-i_hcaaf7vs.js} +1 -1
  859. package/server/.next/static/chunks/{2jlv5ekbb0wu2.js → 3kznplgmzot89.js} +1 -1
  860. package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
  861. package/server/.next/static/chunks/{3dokgd9nungcr.js → 3n_n6yeienmn-.js} +1 -1
  862. package/server/.next/static/chunks/3nqciag05fif0.js +1 -0
  863. package/server/.next/static/chunks/{1zi37go-xtasg.js → 3o45i7xbzm0w-.js} +1 -1
  864. package/server/.next/static/chunks/{1c4fx4kipvnqz.js → 3oe302ug_esoe.js} +1 -1
  865. package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
  866. package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
  867. package/server/.next/static/chunks/{2rdmebof0d_c4.js → 3shbvizselyoq.js} +1 -1
  868. package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
  869. package/server/.next/static/chunks/{2z1xy8l4s3usi.js → 3yv-enyk37whg.js} +1 -1
  870. package/server/node_modules/@next/env/package.json +1 -1
  871. package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
  872. package/server/node_modules/next/dist/build/index.js +3 -3
  873. package/server/node_modules/next/dist/build/swc/index.js +1 -1
  874. package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
  875. package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
  876. package/server/node_modules/next/dist/build/webpack-config.js +3 -3
  877. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
  878. package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
  879. package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
  880. package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  881. package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
  882. package/server/node_modules/next/dist/server/config.js +1 -1
  883. package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  884. package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  885. package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  886. package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
  887. package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
  888. package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
  889. package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
  890. package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
  891. package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
  892. package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  893. package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  894. package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
  895. package/server/node_modules/next/package.json +11 -11
  896. package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
  897. package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
  898. package/server/.next/server/chunks/[root-of-the-server]__08n3x1x850wqc._.js +0 -3
  899. package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
  900. package/server/.next/server/chunks/[root-of-the-server]__0grnl7ncqcjft._.js +0 -3
  901. package/server/.next/server/chunks/[root-of-the-server]__0hju4mctdmvz9._.js +0 -3
  902. package/server/.next/server/chunks/[root-of-the-server]__0i3n8l6ecdb4u._.js +0 -3
  903. package/server/.next/server/chunks/[root-of-the-server]__0m8w2-7618scn._.js +0 -3
  904. package/server/.next/server/chunks/[root-of-the-server]__0p_b0m2cstlrl._.js +0 -3
  905. package/server/.next/server/chunks/[root-of-the-server]__0uyagcs61c0t_._.js +0 -3
  906. package/server/.next/server/chunks/[root-of-the-server]__0v1kcolrxwmob._.js +0 -3
  907. package/server/.next/server/chunks/[root-of-the-server]__0vctt_0kj1gz4._.js +0 -3
  908. package/server/.next/server/chunks/[root-of-the-server]__0x0x6v75re5_e._.js +0 -3
  909. package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
  910. package/server/.next/server/chunks/[root-of-the-server]__0ymon9r-17xe_._.js +0 -3
  911. package/server/.next/server/chunks/[root-of-the-server]__0zxjft8y2r575._.js +0 -3
  912. package/server/.next/server/chunks/[root-of-the-server]__114vjjaqb2wyv._.js +0 -3
  913. package/server/.next/server/chunks/[root-of-the-server]__12uyws-qe6wxs._.js +0 -3
  914. package/server/.next/server/chunks/[root-of-the-server]__139pgc0wpc7kg._.js +0 -3
  915. package/server/.next/server/chunks/[root-of-the-server]__157yb_wl7w4ly._.js +0 -3
  916. package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
  917. package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
  918. package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
  919. package/server/.next/server/chunks/[root-of-the-server]__1_5q9zgl6p5_3._.js +0 -3
  920. package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
  921. package/server/.next/server/chunks/[root-of-the-server]__1bwgi7nn5-hc3._.js +0 -3
  922. package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
  923. package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
  924. package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
  925. package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
  926. package/server/.next/server/chunks/[root-of-the-server]__1k8s02gwythps._.js +0 -3
  927. package/server/.next/server/chunks/[root-of-the-server]__1lf_lo1wqcbcg._.js +0 -3
  928. package/server/.next/server/chunks/[root-of-the-server]__1n32c8l_j8jt4._.js +0 -3
  929. package/server/.next/server/chunks/[root-of-the-server]__1niiijc82bgoj._.js +0 -3
  930. package/server/.next/server/chunks/[root-of-the-server]__1on_3p53yn6fs._.js +0 -3
  931. package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
  932. package/server/.next/server/chunks/[root-of-the-server]__1q90luznbe9-l._.js +0 -3
  933. package/server/.next/server/chunks/[root-of-the-server]__1r15vmrh2r06l._.js +0 -3
  934. package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
  935. package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
  936. package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
  937. package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
  938. package/server/.next/server/chunks/[root-of-the-server]__1woerg3tb4ls3._.js +0 -3
  939. package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
  940. package/server/.next/server/chunks/[root-of-the-server]__1zaomh_4901_f._.js +0 -3
  941. package/server/.next/server/chunks/[root-of-the-server]__20lwsd6a4wnpe._.js +0 -3
  942. package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
  943. package/server/.next/server/chunks/_03bua_9n4apok._.js +0 -3
  944. package/server/.next/server/chunks/_0594j_bb0l80e._.js +0 -3
  945. package/server/.next/server/chunks/_076dwl7r_5vcl._.js +0 -34
  946. package/server/.next/server/chunks/_08tppw9ujlpke._.js +0 -34
  947. package/server/.next/server/chunks/_08y82qdosn7ga._.js +0 -3
  948. package/server/.next/server/chunks/_0m49djgc1t4wg._.js +0 -3
  949. package/server/.next/server/chunks/_0n5m3o7at0adm._.js +0 -34
  950. package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
  951. package/server/.next/server/chunks/_0r4am1mgz4dg_._.js +0 -3
  952. package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
  953. package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
  954. package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
  955. package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
  956. package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
  957. package/server/.next/server/chunks/_11p2ejgai2a78._.js +0 -3
  958. package/server/.next/server/chunks/_1bcsmpznxhk9h._.js +0 -3
  959. package/server/.next/server/chunks/_1he3nioua8ee5._.js +0 -3
  960. package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
  961. package/server/.next/server/chunks/_1lpcbqj4uzrsh._.js +0 -3
  962. package/server/.next/server/chunks/_1rw6_0nf-3sxs._.js +0 -34
  963. package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
  964. package/server/.next/server/chunks/src_0l-no1yc1_izn._.js +0 -3
  965. package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
  966. package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
  967. package/server/.next/server/chunks/src_156ewlek-4a4z._.js +0 -3
  968. package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
  969. package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
  970. package/server/.next/server/chunks/src_lib_0-ylqsh7whlj2._.js +0 -3
  971. package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
  972. package/server/.next/server/chunks/src_lib_0f0p6-l5vvduu._.js +0 -3
  973. package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
  974. package/server/.next/server/chunks/src_lib_15a3m-j_urkkp._.js +0 -3
  975. package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
  976. package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
  977. package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
  978. package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
  979. package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
  980. package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
  981. package/server/.next/server/chunks/ssr/[root-of-the-server]__06s-dfcfuperv._.js +0 -3
  982. package/server/.next/server/chunks/ssr/[root-of-the-server]__07or1m2vwon1m._.js +0 -3
  983. package/server/.next/server/chunks/ssr/[root-of-the-server]__0d9lwldljqtvx._.js +0 -3
  984. package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
  985. package/server/.next/server/chunks/ssr/[root-of-the-server]__0uklr553mp86_._.js +0 -3
  986. package/server/.next/server/chunks/ssr/[root-of-the-server]__1cykncw1_xcno._.js +0 -3
  987. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ih2a_fbqu7ko._.js +0 -3
  988. package/server/.next/server/chunks/ssr/[root-of-the-server]__1j7_a902k_8es._.js +0 -3
  989. package/server/.next/server/chunks/ssr/[root-of-the-server]__1ofzjllv-b0o0._.js +0 -3
  990. package/server/.next/server/chunks/ssr/_040ixxsgfs0vi._.js +0 -3
  991. package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
  992. package/server/.next/server/chunks/ssr/_0ux6eo_w1x155._.js +0 -3
  993. package/server/.next/server/chunks/ssr/_12o9qqjoik4q4._.js +0 -3
  994. package/server/.next/server/chunks/ssr/_1k2q3yt1h6cfs._.js +0 -3
  995. package/server/.next/server/chunks/ssr/_1zhtvg8t3jtxe._.js +0 -3
  996. package/server/.next/server/chunks/ssr/_200p6me5_kp2j._.js +0 -3
  997. package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
  998. package/server/.next/server/chunks/ssr/src_00s82lfm2ga7-._.js +0 -3
  999. package/server/.next/server/chunks/ssr/src_13hsrg6rdvh-d._.js +0 -3
  1000. package/server/.next/server/chunks/ssr/src_1xgsz_do2xpr2._.js +0 -3
  1001. package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
  1002. package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
  1003. package/server/.next/server/chunks/ssr/src_components_shell_shell_tsx_1cpq-hbch_dvj._.js +0 -3
  1004. package/server/.next/server/chunks/ssr/src_lib_0y40wht-o-oc2._.js +0 -3
  1005. package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
  1006. package/server/.next/static/chunks/03qto0oyf2r1n.js +0 -1
  1007. package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
  1008. package/server/.next/static/chunks/0n_l4a3za5-q8.js +0 -1
  1009. package/server/.next/static/chunks/0t96fqp1vsmrp.js +0 -1
  1010. package/server/.next/static/chunks/0wlc502815llk.js +0 -1
  1011. package/server/.next/static/chunks/158-i6phe17yl.js +0 -1
  1012. package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
  1013. package/server/.next/static/chunks/1mlvn70-zqjvi.js +0 -1
  1014. package/server/.next/static/chunks/1sm8wxvlpowwg.js +0 -1
  1015. package/server/.next/static/chunks/1teh52nh5dujq.js +0 -1
  1016. package/server/.next/static/chunks/1v4hl1z0y1npd.js +0 -1
  1017. package/server/.next/static/chunks/1vh2psoqw3ddc.js +0 -1
  1018. package/server/.next/static/chunks/1xau8pf40_upi.js +0 -7
  1019. package/server/.next/static/chunks/1z2rcngn3-7i5.js +0 -1
  1020. package/server/.next/static/chunks/210qrsqvmgaet.js +0 -1
  1021. package/server/.next/static/chunks/29p15vj15jcsb.js +0 -1
  1022. package/server/.next/static/chunks/2kmerzslng988.js +0 -1
  1023. package/server/.next/static/chunks/2llric-1orr3y.js +0 -1
  1024. package/server/.next/static/chunks/2wb9a1xth0yhf.js +0 -1
  1025. package/server/.next/static/chunks/34gs6c2dsgtqy.js +0 -1
  1026. package/server/.next/static/chunks/3ag6t3ta58rih.js +0 -1
  1027. package/server/.next/static/chunks/3gkta99h3_5i2.js +0 -1
  1028. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
  1029. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
  1030. /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[840784,242605,e=>{var t=e.i(93321),r=e.i(530385),n=e.i(548734),s=e.i(837137),o=e.i(469762),i=e.i(631107),a=e.i(968715),u=e.i(910697),l=e.i(72019),c=e.i(519051),d=e.i(858806),p=e.i(601219),f=e.i(714530),m=e.i(513701),h=e.i(895176),g=e.i(351674);e.i(33135);var w=e.i(46126),y=e.i(84979),k=e.i(182357);function v(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function $(e){let r=await (0,n.f)().select({id:s.resources.id,name:s.resources.name,sec:s.appSecurity}).from(s.resources).leftJoin(s.appSecurity,(0,t.u)(s.appSecurity.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.kind,"app"),(0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt),e?(0,t.u)(s.resources.id,e):void 0)).orderBy(g.B`${s.appSecurity.checkedAt} asc nulls first`,s.resources.name).limit(u.O.apps);if(!r.length)return[];let i=await (0,n.f)().select({resourceId:s.monitors.resourceId,url:s.monitors.url}).from(s.monitors).where((0,t.y)(s.monitors.resourceId,r.map(e=>e.id))).orderBy(s.monitors.createdAt).limit(u.O.monitors);return r.map(e=>({id:e.id,name:e.name,prev:e.sec?v(e.sec):null,host:(0,o.m)(e.name,i.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function x(e,r){await (0,n.f)().transaction(async n=>{await n.execute(g.B`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[o]=await n.select().from(s.appSecurity).where((0,t.u)(s.appSecurity.resourceId,e.id)).limit(1),i=o?v(o):null;if(i&&i.checkedAt.getTime()>=r.checkedAt.getTime())return;let a="unknown"===r.status||"error"===r.status?{...r,version:i?i.version:r.version,findings:i?i.findings:r.findings}:r,u={framework:"next",version:a.version,status:a.status,findings:a.findings,reason:a.reason,checkedAt:a.checkedAt};await n.insert(s.appSecurity).values({resourceId:e.id,...u}).onConflictDoUpdate({target:s.appSecurity.resourceId,set:u,setWhere:g.B`${s.appSecurity.checkedAt} < excluded.checked_at`});let l=(0,y.t)(e.name,i,a);l&&await (0,p.f)([{type:"system",kind:l.kind,message:l.message,detail:l.detail,resourceId:e.id,at:a.checkedAt,reason:"ok"===l.kind?"NextClean":"NextVulnerable"}],n)})}async function A(e,t=2e4){let[r]=await $(e);if(!r)return{ok:!1,error:"That app is no longer in the console."};let n=await (0,w.f)(r.host,r.prev,{deadline:Date.now()+t});return n?(await x(r,n),{ok:!0,message:(0,k.I)(r.name,n),passed:"ok"===n.status||"vulnerable"===n.status,vulnerable:n.findings.length>0,audit:{message:`Security check: ${r.name}`,resourceId:r.id}}):{ok:!1,error:"The check took too long. Try again in a minute."}}e.s(["d",0,A,"Z",0,v],242605);let I=e=>"string"==typeof e&&e?e:null;async function b(e,p){let g=await (0,n.f)().select({r:s.resources,s:s.snapshots,sec:s.appSecurity,accStatus:s.accounts.status}).from(s.resources).leftJoin(s.accounts,(0,t.u)(s.accounts.id,s.resources.accountId)).leftJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).leftJoin(s.appSecurity,(0,t.u)(s.appSecurity.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.kind,"app"),(0,t.u)(s.resources.monitored,!0),p?(0,t.u)(s.resources.id,p):void 0)).orderBy(s.resources.name).limit(u.O.apps);if(!g.length)return[];let w=g.map(e=>e.r.id),y=(await (0,n.f)().select().from(s.monitors).where((0,t.y)(s.monitors.resourceId,w)).orderBy(s.monitors.createdAt).limit(u.O.monitors)).map(h.M),k=await (0,n.f)().selectDistinctOn([s.deployments.resourceId]).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,w),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,r.A)(s.deployments.createdAtProvider)),$=await (0,m._)(y.map(e=>e.id),e),x=await (0,m.Q)(w,e),A=await (0,l.F)(w),b=y.length?await (0,f.w)():[];return g.map(({r:t,s:r,sec:n,accStatus:s})=>{let l=y.filter(e=>e.appId===t.id).map(t=>({...t,maintUntil:(0,c.x)(b,{monitorId:t.id,appId:t.appId},e)?.end??null})),p=I(t.meta.createdAt),f=k.find(e=>e.resourceId===t.id);return{id:t.id,name:t.name,gone:null!==t.goneAt,state:r?.state??"unknown",stateSince:r?.stateSince??null,domain:(0,o.m)(t.name,l.map(e=>e.url)),framework:I(t.meta.framework),productionBranch:I(t.meta.productionBranch),createdAt:p?new Date(p):null,teamName:I(t.meta.teamName),teamSlug:I(t.meta.teamSlug),repo:I(t.meta.repo),repoType:I(t.meta.repoType),functionRegions:Array.isArray(t.meta.functionRegions)?t.meta.functionRegions.filter(e=>"string"==typeof e):[],monitors:l,lastDeploy:f?(0,d.u)(f):null,uptime30:(0,a.Y)(l.flatMap(t=>(0,a.w)($.get(t.id),e,a.I))),response:x.get(t.id)??{hourly:Array.from({length:u.A.responseHours},()=>null),p95:null,p50:null},days:new Map(l.flatMap(e=>{let t=$.get(e.id);return t?[[e.id,t]]:[]})),security:n?v(n):null,database:A.get(t.id)??null,dbPaused:r?.data.dbPaused===!0,pageViews:(0,i.G)(r?.data),pageViewsNote:(0,i.R)({gone:null!==t.goneAt,teamId:I(t.meta.teamId),accountOk:"ok"===s,hasProductionDeploy:void 0!==f})}})}async function S(e,t){return(await b(t,e))[0]??null}async function N(e,r){let[o]=await (0,n.f)().select({id:s.resources.id,name:s.resources.name}).from(s.resources).where((0,t.b)((0,t.u)(s.resources.id,e),(0,t.u)(s.resources.kind,"app"))).limit(1);return o?(await (0,n.f)().transaction(async n=>{let i=new Date;await n.update(s.resources).set({monitored:!1,updatedAt:i}).where((0,t.u)(s.resources.id,e)),await n.delete(s.monitors).where((0,t.u)(s.monitors.resourceId,e)),await n.delete(s.deployments).where((0,t.u)(s.deployments.resourceId,e)),await n.delete(s.snapshots).where((0,t.u)(s.snapshots.resourceId,e)),await n.delete(s.appSecurity).where((0,t.u)(s.appSecurity.resourceId,e)),await n.delete(s.resources).where((0,t.b)((0,t.u)(s.resources.kind,"domain"),(0,t.u)(s.resources.parentId,e))),await (0,p.f)([{type:"action",kind:"ok",message:`${o.name} removed from the console`,detail:null,resourceId:e,actorUserId:r}],n)}),{ok:!0,message:`${o.name} is no longer in the console. The Vercel project itself isn't touched.`}):{ok:!1,error:"That app is no longer in the console."}}e.s(["Z",0,S,"G",0,b,"a",0,N],840784)},46126,e=>{var t=e.i(33135);let r=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,n="[\"'`]";function s(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let o={"&amp;":"&","&quot;":'"',"&#39;":"'","&#x27;":"'","&#x2F;":"/","&#47;":"/"},i=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>o[e]??o[e.toLowerCase()]??e),a=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${n}(${r})${n}`,"g"),u=RegExp(String.raw`version\s*:\s*${n}(${r})${n}\s*,\s*appDir\s*:`,"g"),l=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${n}(${r})${n}`,"g"),c=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,d=e=>e.replace(/[$]/g,"\\$");var p=e.i(533957);async function f(e,o,m={}){let h=m.deadline??1/0,g=m.now??(()=>new Date),w=e=>Math.floor(Math.min(e,h)-Date.now()),y=Date.now()+15e3;if(0>=w(y))return null;let k=(e,t)=>({version:o?.version??null,status:e,findings:o?.findings??[],reason:t,checkedAt:g()}),v=(e,r)=>(0,t.K)(e,{maxBytes:3145728,timeoutMs:w(y),lookup:m.lookup,fetch:m.fetch,userAgent:"OpsConsole-Security/1.0 (+https://west-solutions.web.id)",sameOrigin:r}),$=await v(`https://${e}/`,"www");if(!$.ok&&$.error===t.l)return k("unknown","the site redirects to another host");if(!$.ok||200!==$.status)return Date.now()>=h?null:k("error",`Couldn't load the site: ${$.ok?`HTTP ${$.status}`:$.error}`);let x=(function(e,t){let r;try{r=new URL(t)}catch{return[]}let n=new Set,s=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(i(t[2].trim()),r)}catch{continue}if("https:"===e.protocol&&e.origin===r.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!n.has(e.href))){var o;n.add(e.href),s.push({href:e.href,rank:(o=e.pathname,/\/main-app[-.]/.test(o)?0:/\/(main|app-index)[-.]/.test(o)?1:/\/(webpack|polyfills|framework)[-.]/.test(o)?3:2),i:s.length})}}return s.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})($.body,$.url).slice(0,12);if(0===x.length)return k("unknown",$.body.includes("/_next/")?"version not exposed":"not a Next.js site");let A=null,I=0,b=!1;for(let e of x){if(0>=w(y)){b=!0;break}let t=await v(e,!0);if(t.ok&&200===t.status&&(I++,A=function(e){for(let t of e.matchAll(a))if(s(t[1]))return t[1];for(let t of[u,l])for(let r of e.matchAll(t))if(s(r[1]))return r[1];for(let t of e.matchAll(c)){let o=t[1]??"version",i=RegExp(String.raw`(?:^|[^\w$.])${d(o)}\s*=\s*${n}(${r})${n}`,"g"),a=null;for(let r of e.matchAll(i)){if((r.index??0)>=(t.index??0))break;a=r[1]}if(a&&s(a))return a}return null}(t.body)))break}if(!A)return Date.now()>=h?null:b||0>=w(y)?k("error","Reading the site's scripts took longer than 15 s"):0===I?k("error","Couldn't load the site's scripts"):k("unknown","version not exposed");let S=w(Date.now()+1e4);if(S<=0)return null;let N=await (0,p.y)(A,{timeoutMs:S,fetch:m.fetch});return N.ok?{version:A,status:N.findings.length?"vulnerable":"ok",findings:N.findings,reason:null,checkedAt:g()}:Date.now()>=h?null:k("error",N.error)}e.s(["f",0,f],46126)},182357,e=>{var t=e.i(84979);let r=e=>!!e&&e.findings.length>0,n=e=>/[.!?]$/.test(e)?e:`${e}.`;e.s(["y",0,{CRITICAL:"Critical",HIGH:"High",MODERATE:"Moderate",LOW:"Low",UNKNOWN:"Unknown"},"I",0,function(e,r){return"vulnerable"===r.status?`${e} runs Next.js ${r.version} with ${(0,t.q)(r.findings.length)}.`:"ok"===r.status?`No known vulnerabilities for Next.js ${r.version}.`:"unknown"===r.status?`Couldn't read the Next.js version: ${n(r.reason??"no reason given")}`:`The check failed: ${n(r.reason??"no reason given")}`},"f",0,function(e){if(!r(e))return null;let n=(0,t.N)(e.findings);return{label:"CVE",severe:(0,t.o)(n),title:`Next.js ${e.version}: ${(0,t.q)(e.findings.length)}, worst ${n.toLowerCase()}`}},"X",0,r,"v",0,function(e){let n=[];for(let s of e){if(s.gone||!r(s.security))continue;let e=s.security,o=(0,t.N)(e.findings),i=(0,t.r)(e.findings);n.push({key:`sec-${s.id}`,tone:(0,t.o)(o)?"danger":"warning",title:`${s.name} runs a vulnerable Next.js (${e.version??"unknown version"})`,body:`${(0,t.q)(e.findings.length)}, worst ${o.toLowerCase()}.${i?` Fixed in ${i}.`:""}`,action:{label:"Open app",href:`/apps/${s.id}`}})}return[...n.filter(e=>"danger"===e.tone),...n.filter(e=>"warning"===e.tone)]},"g",0,function(e){if(!e)return{state:"unknown",text:"Not checked yet. The daily job checks at 03:00 WIB."};if("ok"===e.status)return{state:"ok",text:`No known vulnerabilities for Next.js ${e.version}.`};let t=null!==e.version||e.findings.length>0?" Showing the result from before.":"";return"unknown"===e.status?{state:"unknown",text:`Couldn't read the Next.js version: ${n(e.reason??"no reason given")}${t}`}:"error"===e.status?{state:"warn",text:`The last check failed: ${n(e.reason??"no reason given")}${t}`}:null}])}]})();
1
+ (()=>{"use strict";module.exports=[840784,242605,e=>{var t=e.i(93321),r=e.i(530385),n=e.i(548734),s=e.i(837137),o=e.i(469762),i=e.i(631107),a=e.i(968715),u=e.i(910697),l=e.i(72019),c=e.i(519051),d=e.i(858806),p=e.i(601219),f=e.i(714530),m=e.i(513701),h=e.i(895176),g=e.i(351674);e.i(33135);var w=e.i(46126),y=e.i(84979),k=e.i(182357);function $(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function v(e){let r=await (0,n.f)().select({id:s.resources.id,name:s.resources.name,sec:s.appSecurity}).from(s.resources).leftJoin(s.appSecurity,(0,t.u)(s.appSecurity.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.kind,"app"),(0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt),e?(0,t.u)(s.resources.id,e):void 0)).orderBy(g.B`${s.appSecurity.checkedAt} asc nulls first`,s.resources.name).limit(u.O.apps);if(!r.length)return[];let i=await (0,n.f)().select({resourceId:s.monitors.resourceId,url:s.monitors.url}).from(s.monitors).where((0,t.y)(s.monitors.resourceId,r.map(e=>e.id))).orderBy(s.monitors.createdAt).limit(u.O.monitors);return r.map(e=>({id:e.id,name:e.name,prev:e.sec?$(e.sec):null,host:(0,o.m)(e.name,i.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function x(e,r){await (0,n.f)().transaction(async n=>{await n.execute(g.B`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[o]=await n.select().from(s.appSecurity).where((0,t.u)(s.appSecurity.resourceId,e.id)).limit(1),i=o?$(o):null;if(i&&i.checkedAt.getTime()>=r.checkedAt.getTime())return;let a="unknown"===r.status||"error"===r.status?{...r,version:i?i.version:r.version,findings:i?i.findings:r.findings}:r,u={framework:"next",version:a.version,status:a.status,findings:a.findings,reason:a.reason,checkedAt:a.checkedAt};await n.insert(s.appSecurity).values({resourceId:e.id,...u}).onConflictDoUpdate({target:s.appSecurity.resourceId,set:u,setWhere:g.B`${s.appSecurity.checkedAt} < excluded.checked_at`});let l=(0,y.t)(e.name,i,a);l&&await (0,p.f)([{type:"system",kind:l.kind,message:l.message,detail:l.detail,resourceId:e.id,at:a.checkedAt,reason:"ok"===l.kind?"NextClean":"NextVulnerable"}],n)})}async function A(e,t=2e4){let[r]=await v(e);if(!r)return{ok:!1,error:"That app is no longer in the console."};let n=await (0,w.f)(r.host,r.prev,{deadline:Date.now()+t});return n?(await x(r,n),{ok:!0,message:(0,k.I)(r.name,n),passed:"ok"===n.status||"vulnerable"===n.status,vulnerable:n.findings.length>0,audit:{message:`Security check: ${r.name}`,resourceId:r.id}}):{ok:!1,error:"The check took too long. Try again in a minute."}}e.s(["d",0,A,"Z",0,$],242605);let I=e=>"string"==typeof e&&e?e:null;async function b(e,p){let g=await (0,n.f)().select({r:s.resources,s:s.snapshots,sec:s.appSecurity,accStatus:s.accounts.status}).from(s.resources).leftJoin(s.accounts,(0,t.u)(s.accounts.id,s.resources.accountId)).leftJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).leftJoin(s.appSecurity,(0,t.u)(s.appSecurity.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.kind,"app"),(0,t.u)(s.resources.monitored,!0),p?(0,t.u)(s.resources.id,p):void 0)).orderBy(s.resources.name).limit(u.O.apps);if(!g.length)return[];let w=g.map(e=>e.r.id),y=(await (0,n.f)().select().from(s.monitors).where((0,t.y)(s.monitors.resourceId,w)).orderBy(s.monitors.createdAt).limit(u.O.monitors)).map(h.M),k=await (0,n.f)().selectDistinctOn([s.deployments.resourceId]).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,w),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,r.A)(s.deployments.createdAtProvider)),v=await (0,m._)(y.map(e=>e.id),e),x=await (0,m.Q)(w,e),A=await (0,l.F)(w),b=y.length?await (0,f.w)():[];return g.map(({r:t,s:r,sec:n,accStatus:s})=>{let l=y.filter(e=>e.appId===t.id).map(t=>({...t,maintUntil:(0,c.x)(b,{monitorId:t.id,appId:t.appId},e)?.end??null})),p=I(t.meta.createdAt),f=k.find(e=>e.resourceId===t.id);return{id:t.id,name:t.name,gone:null!==t.goneAt,state:r?.state??"unknown",stateSince:r?.stateSince??null,domain:(0,o.m)(t.name,l.map(e=>e.url)),framework:I(t.meta.framework),productionBranch:I(t.meta.productionBranch),createdAt:p?new Date(p):null,teamName:I(t.meta.teamName),teamSlug:I(t.meta.teamSlug),repo:I(t.meta.repo),repoType:I(t.meta.repoType),functionRegions:Array.isArray(t.meta.functionRegions)?t.meta.functionRegions.filter(e=>"string"==typeof e):[],monitors:l,lastDeploy:f?(0,d.u)(f):null,uptime30:(0,a.Y)(l.flatMap(t=>(0,a.w)(v.get(t.id),e,a.I))),response:x.get(t.id)??{hourly:Array.from({length:u.A.responseHours},()=>null),p95:null,p50:null},days:new Map(l.flatMap(e=>{let t=v.get(e.id);return t?[[e.id,t]]:[]})),security:n?$(n):null,database:A.get(t.id)??null,dbPaused:r?.data.dbPaused===!0,pageViews:(0,i.G)(r?.data),pageViewsNote:(0,i.R)({gone:null!==t.goneAt,teamId:I(t.meta.teamId),accountOk:"ok"===s,hasProductionDeploy:void 0!==f})}})}async function S(e,t){return(await b(t,e))[0]??null}async function N(e,r){let[o]=await (0,n.f)().select({id:s.resources.id,name:s.resources.name}).from(s.resources).where((0,t.b)((0,t.u)(s.resources.id,e),(0,t.u)(s.resources.kind,"app"))).limit(1);return o?(await (0,n.f)().transaction(async n=>{let i=new Date;await n.update(s.resources).set({monitored:!1,updatedAt:i}).where((0,t.u)(s.resources.id,e)),await n.delete(s.monitors).where((0,t.u)(s.monitors.resourceId,e)),await n.delete(s.deployments).where((0,t.u)(s.deployments.resourceId,e)),await n.delete(s.snapshots).where((0,t.u)(s.snapshots.resourceId,e)),await n.delete(s.appSecurity).where((0,t.u)(s.appSecurity.resourceId,e)),await n.delete(s.resources).where((0,t.b)((0,t.u)(s.resources.kind,"domain"),(0,t.u)(s.resources.parentId,e))),await (0,p.f)([{type:"action",kind:"ok",message:`${o.name} removed from the console`,detail:null,resourceId:e,actorUserId:r}],n)}),{ok:!0,message:`${o.name} is no longer in the console. The Vercel project itself isn't touched.`}):{ok:!1,error:"That app is no longer in the console."}}e.s(["Z",0,S,"G",0,b,"a",0,N],840784)},46126,e=>{var t=e.i(33135);let r=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,n="[\"'`]";function s(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let o={"&amp;":"&","&quot;":'"',"&#39;":"'","&#x27;":"'","&#x2F;":"/","&#47;":"/"},i=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>o[e]??o[e.toLowerCase()]??e),a=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${n}(${r})${n}`,"g"),u=RegExp(String.raw`version\s*:\s*${n}(${r})${n}\s*,\s*appDir\s*:`,"g"),l=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${n}(${r})${n}`,"g"),c=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,d=e=>e.replace(/[$]/g,"\\$");var p=e.i(533957);async function f(e,o,m={}){let h=m.deadline??1/0,g=m.now??(()=>new Date),w=e=>Math.floor(Math.min(e,h)-Date.now()),y=Date.now()+15e3;if(0>=w(y))return null;let k=(e,t)=>({version:o?.version??null,status:e,findings:o?.findings??[],reason:t,checkedAt:g()}),$=(e,r)=>(0,t.K)(e,{maxBytes:3145728,timeoutMs:w(y),lookup:m.lookup,fetch:m.fetch,userAgent:"OpsConsole-Security/1.0 (+https://west-solutions.web.id)",sameOrigin:r}),v=await $(`https://${e}/`,"www");if(!v.ok&&v.error===t.l)return k("unknown","the site redirects to another host");if(!v.ok||200!==v.status)return Date.now()>=h?null:k("error",`Couldn't load the site: ${v.ok?`HTTP ${v.status}`:v.error}`);let x=(function(e,t){let r;try{r=new URL(t)}catch{return[]}let n=new Set,s=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(i(t[2].trim()),r)}catch{continue}if("https:"===e.protocol&&e.origin===r.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!n.has(e.href))){var o;n.add(e.href),s.push({href:e.href,rank:(o=e.pathname,/\/main-app[-.]/.test(o)?0:/\/(main|app-index)[-.]/.test(o)?1:/\/(webpack|polyfills|framework)[-.]/.test(o)?3:2),i:s.length})}}return s.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})(v.body,v.url).slice(0,12);if(0===x.length)return k("unknown",v.body.includes("/_next/")?"version not exposed":"not a Next.js site");let A=null,I=0,b=!1;for(let e of x){if(0>=w(y)){b=!0;break}let t=await $(e,!0);if(t.ok&&200===t.status&&(I++,A=function(e){for(let t of e.matchAll(a))if(s(t[1]))return t[1];for(let t of[u,l])for(let r of e.matchAll(t))if(s(r[1]))return r[1];for(let t of e.matchAll(c)){let o=t[1]??"version",i=RegExp(String.raw`(?:^|[^\w$.])${d(o)}\s*=\s*${n}(${r})${n}`,"g"),a=null;for(let r of e.matchAll(i)){if((r.index??0)>=(t.index??0))break;a=r[1]}if(a&&s(a))return a}return null}(t.body)))break}if(!A)return Date.now()>=h?null:b||0>=w(y)?k("error","Reading the site's scripts took longer than 15 s"):0===I?k("error","Couldn't load the site's scripts"):k("unknown","version not exposed");let S=w(Date.now()+1e4);if(S<=0)return null;let N=await (0,p.y)(A,{timeoutMs:S,fetch:m.fetch});return N.ok?{version:A,status:N.findings.length?"vulnerable":"ok",findings:N.findings,reason:null,checkedAt:g()}:Date.now()>=h?null:k("error",N.error)}e.s(["f",0,f],46126)},182357,e=>{var t=e.i(84979),r=e.i(245710);let n=e=>!!e&&e.findings.length>0,s=e=>/[.!?]$/.test(e)?e:`${e}.`;e.s(["y",0,{CRITICAL:"Critical",HIGH:"High",MODERATE:"Moderate",LOW:"Low",UNKNOWN:"Unknown"},"I",0,function(e,r){return"vulnerable"===r.status?`${e} runs Next.js ${r.version} with ${(0,t.q)(r.findings.length)}.`:"ok"===r.status?`No known vulnerabilities for Next.js ${r.version}.`:"unknown"===r.status?`Couldn't read the Next.js version: ${s(r.reason??"no reason given")}`:`The check failed: ${s(r.reason??"no reason given")}`},"f",0,function(e){if(!n(e))return null;let r=(0,t.N)(e.findings);return{label:"CVE",severe:(0,t.o)(r),title:`Next.js ${e.version}: ${(0,t.q)(e.findings.length)}, worst ${r.toLowerCase()}`}},"X",0,n,"v",0,function(e){let r=[];for(let s of e){if(s.gone||!n(s.security))continue;let e=s.security,o=(0,t.N)(e.findings),i=(0,t.r)(e.findings);r.push({key:`sec-${s.id}`,tone:(0,t.o)(o)?"danger":"warning",title:`${s.name} runs a vulnerable Next.js (${e.version??"unknown version"})`,body:`${(0,t.q)(e.findings.length)}, worst ${o.toLowerCase()}.${i?` Fixed in ${i}.`:""}`,action:{label:"Open app",href:`/apps/${s.id}`}})}return[...r.filter(e=>"danger"===e.tone),...r.filter(e=>"warning"===e.tone)]},"g",0,function(e){if(!e)return{state:"unknown",text:`Not checked yet. The daily job checks at ${(0,r.G)()}.`};if("ok"===e.status)return{state:"ok",text:`No known vulnerabilities for Next.js ${e.version}.`};let t=null!==e.version||e.findings.length>0?" Showing the result from before.":"";return"unknown"===e.status?{state:"unknown",text:`Couldn't read the Next.js version: ${s(e.reason??"no reason given")}${t}`}:"error"===e.status?{state:"warn",text:`The last check failed: ${s(e.reason??"no reason given")}${t}`}:null}])}]})();
2
2
 
3
3
  //# sourceMappingURL=src_lib_0x4n8swwa3zn7._.js.map
@@ -0,0 +1,6 @@
1
+ (()=>{"use strict";module.exports=[658266,211256,e=>{var t=e.i(278619),n=e.i(959408),r=e.i(867274),a=e.i(413230);let s=e=>Math.round(e).toLocaleString("en-US"),i=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),l=(e,t)=>`${e} ${t}${1===e?"":"s"}`,o=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},u=e=>{try{return new URL(e).pathname}catch{return"/"}},d="Down · ",c=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),p=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,f=new Set(["turso","upstash","d1"]),m={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=c("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:u(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=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(d)?t.slice(d.length):"no ping in time"}.`}}return e.failStreak>=a?{...r,status:"firing",message:(0,n.H)(e)?`${o(e.url)} failed its check (${(0,n.H)(e)}) on ${a} consecutive checks.`:`${o(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${o(e.url)} answers again.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[c("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${s((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=c("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${u(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 ${s(e.p95Last10)} ms over the last 10 minutes (limit ${s(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=c("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=>c("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=c("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let a=i(n.tlsNotAfter,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${l(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=c("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let a=i(n.expiresAt,e.now);return{...r,status:a<(t??30)?"firing":"ok",message:`${n.name} expires in ${l(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=c("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:p(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 ${s(e.sizeBytes/1e6)} MB of ${s(e.sizeLimitBytes/1e6)} MB (${s(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=c("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 ${s(e.cuHours)} of ${s(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=c("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 ${s(e.readsToday)} of ${s(e.readsLimit)} documents today (${s(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=c("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 a=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${l(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>c("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=>f.has(e.provider)).map(e=>{let n=c("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:p(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${s(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let a=c("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),s=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===s?a:{...a,status:s.length?"firing":"ok",message:s.length?`${n.name}: ${s.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=c("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 a=i(n.expiresAt,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:a<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${l(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=c("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let s=(0,a.g)(t.vulns);return s?[{...r,status:"firing",message:(0,a.L)(t.vulns),..."critical"===s?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no high or critical dependency advisories.`}]}):null};e.s(["f",0,function(e,n,r){let a=[],s=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=m[i.key](e,i.threshold);n&&(s.add(i.key),a.push(...n))}return{observations:a,evaluated:s}}],658266);let h=["MonitorDown","HighLatency"],g=["telegram","discord"],y=e=>e.channels.some(e=>g.includes(e));function v(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&h.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let k=(e,t)=>"critical"===t&&"warning"===e?"critical":e,b=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),w=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,a,s){let i={open:[],touch:[],resolve:[]},l=new Map(a.map(e=>[e.key,e])),o=new Map(n.map(e=>[w(e.rule,e.subject),e])),u=new Set(e.map(e=>w(e.ruleKey,e.subject))),d=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=l.get(n.ruleKey),a=o.get(w(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!a){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===a.status)continue;let u=a.provider?s.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=v(a,s),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&s.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,l={id:n.id,okStreak:0,lastSampleAt:a.sampleAt??n.lastSampleAt,lastSeenAt:s.now,message:a.message,causedBy:t,providerIncident:u},o=!n.notifiedOpen&&(!n.pendingSince||s.now.getTime()-n.pendingSince.getTime()>=216e5);(r||o)&&!b(n,s.now)&&!t&&null===n.pending&&y(e)&&(l.pending=r?"repeat":"open"),i.touch.push(l);continue}if(!t._[n.ruleKey].sampled||null===a.sampleAt){d(n);continue}if(!(null===n.lastSampleAt||a.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?d(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of n){if("firing"!==e.status||u.has(w(e.rule,e.subject))||s.maintenance.has(e.subject)||e.resourceId&&s.maintenance.has(e.resourceId))continue;let t=l.get(e.rule);if(!t)continue;let n=v(e,s);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:k(t.severity,e.severity),title:e.title,message:e.message,startedAt:s.now,lastSeenAt:s.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?s.incidents.get(e.provider)??null:null,pending:n||!y(t)?null:"open"})}return i}],211256)},582748,e=>{var t=e.i(89491),n=e.i(960063),r=e.i(800366),a=e.i(326003),s=e.i(843448),i=e.i(647006),l=e.i(328203);e.s(["d",0,function(e,i){let o={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,a.k)(a.B,e.data),n=(0,l.Z)(t.lastTrafficAt),r=(0,l.Z)(t.trafficAt),i=n??(r&&!t.trafficError?new Date(r.getTime()-6048e5):null);return{...o,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:s.R,lastApiAt:i}}if("neon_project"===e.kind){let t=(0,a.k)(a.s,e.data),n=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...o,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,a.k)(a.w,e.data),r=(0,l.Z)(t.opsAt),s=null!=t.reads&&r&&r.getTime()>=(0,n.a)(i).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...o,provider:"firestore",readsToday:s,readsLimit:n.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let n=(0,a.k)(a.N,e.data),r=(0,t.u)((0,t.G)(n,i));return{...o,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,a.k)(a.e,e.data),r=(0,t.u)((0,t.$)(n,i));return{...o,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,a.k)(a.x,e.data),r=(0,t.u)((0,t.I)(n,i));return{...o,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),a=[];for(let e of n){let n=t.filter(t=>(0,l.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),s=[...new Set(n.flatMap(e=>(0,i.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,i.q)(e.data).records){if(!(0,l.l)(t,s))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);a.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,l.Z)((0,i.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,l.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),a=e.i(924924),s=e.i(618916),i=e.i(582748),l=e.i(794713),o=e.i(662860),u=e.i(433609);async function d(){return(0,a.f)().select({appId:s.links.fromResourceId,dbId:s.links.toResourceId}).from(s.links).where((0,t.u)(s.links.kind,"uses_db")).limit(500)}async function c(e){let c=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),[p,f,m,h,g]=await Promise.all([(0,l.d)(),(0,l.D)(),(0,a.f)().select({m:s.monitors,appName:s.resources.name}).from(s.monitors).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(c,(0,t.u)(s.monitors.paused,!1),(0,t.u)(s.monitors.ownerPaused,!1))),(0,a.f)().select({id:s.resources.id,name:s.resources.name}).from(s.resources).where((0,t.b)(c,(0,t.u)(s.resources.kind,"app"))),(0,a.f)().select({id:s.accounts.id,provider:s.accounts.provider,label:s.accounts.label,expiresAt:s.accounts.expiresAt,status:s.accounts.status,lastError:s.accounts.lastError}).from(s.accounts)]),y=m.map(e=>e.m.id),v=y.length?await (0,a.f)().select({id:s.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})::float8`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,y),(0,t.B)(s.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(s.checks.inMaintenance,!1))).groupBy(s.checks.monitorId):[],k=h.map(e=>e.id),b=k.length?await (0,a.f)().selectDistinctOn([s.deployments.resourceId],{appId:s.deployments.resourceId,state:s.deployments.state,sha:s.deployments.commitSha,createdAt:s.deployments.createdAtProvider}).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,k),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,n.A)(s.deployments.createdAtProvider)):[],w=await (0,a.f)().select({id:s.resources.id,name:s.resources.name,kind:s.resources.kind,state:s.snapshots.state,data:s.snapshots.data}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)(c,(0,t.y)(s.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),A=e=>w.filter(t=>t.kind===e),$=w.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),I=A("zone"),S=A("domain"),x=await d(),V=await (0,o.Y)().catch(()=>null),_=k.length?await (0,u.a)(k).catch(()=>null):null;return{now:e,lastMinuteRunAt:p,lastAnyRunAt:f,monitors:m.map(({m:e,appName:t})=>{let n=v.find(t=>t.id===e.id),r="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:r?e.name??"heartbeat":e.url,kind:r?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:n?.p95??null,checksLast10:n?.n??0}}),apps:h.map(e=>{let t=b.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:g,dbs:$.length?$.map(t=>(0,i.d)(t,e)).filter(e=>null!==e):null,domains:(0,i.r)(I,S),dns:(0,i.S)(I,S),links:x,compute:V,deps:_&&_.length?_:null}}e.s(["f",0,c])},532148,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),a=e.i(924924),s=e.i(618916),i=e.i(278619),l=e.i(658266),o=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,a.f)().select().from(s.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,b,w]=await Promise.all([(0,c.f)(e),h(),(0,a.f)().select().from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)),(0,a.f)().select({provider:s.providerStatus.provider,state:s.providerStatus.state}).from(s.providerStatus),(0,p.f)(),(0,f.I)()]),A=new Map(r.accounts.map(e=>[e.id,e.provider])),$=v.filter(e=>!(0,d.O)(w,e.ruleKey,e.accountId?A.get(e.accountId):null)),I=(0,l.f)(r,y,n.only),S=I.evaluated,x=I.observations.filter(e=>!(0,d.O)(w,e.rule,e.provider)),V=y.find(e=>"CollectorStale"===e.key),_=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,z=!!V?.enabled&&(!_||e.getTime()-_.getTime()>(V.threshold??5)*6e4),D=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),R=new Map(r.links.filter(e=>D.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${D.get(e.dbId)}`])),j=new Map(k.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,m[e.provider]??e.provider])),B=(0,u.u)(b,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),T=$.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})),M=(0,o.f)(T,x,S,y,{now:e,collectorStale:z,mutedApps:R,incidents:j,maintenance:B});return M.open.length||M.touch.length||M.resolve.length?(await (0,a.f)().transaction(async n=>{for(let t of M.open)await n.insert(s.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of M.touch){let{id:a,pending:i,...l}=r;await n.update(s.alerts).set({...l,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(s.alerts.id,a),(0,t.M)(s.alerts.resolvedAt)))}for(let r of M.resolve)await n.update(s.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(s.alerts.id,r.id),(0,t.M)(s.alerts.resolvedAt)))}),{opened:M.open.length,resolved:M.resolve.length}):{opened:0,resolved:0}}let y=r.B`case ${s.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function v(e=new Set){return(await (0,a.f)().select({a:s.alerts,name:s.resources.name,kind:s.resources.kind}).from(s.alerts).leftJoin(s.resources,(0,t.u)(s.resources.id,s.alerts.resourceId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,f.s)(e))).orderBy(y,(0,n.A)(s.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function k(e){return(await (0,a.f)().select({id:s.alerts.id,ruleKey:s.alerts.ruleKey,severity:s.alerts.severity,title:s.alerts.title,resourceId:s.alerts.resourceId,startedAt:s.alerts.startedAt,resolvedAt:s.alerts.resolvedAt}).from(s.alerts).where((0,t.b)((0,t.E)(s.alerts.resolvedAt),(0,t.B)(s.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(s.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}e.s(["$",0,g,"q",0,v,"I",0,k])},433609,455037,e=>{var t=e.i(90801),n=e.i(875225),r=e.i(349129),a=e.i(924924),s=e.i(618916),i=e.i(921991),l=e.i(547499),o=e.i(479301),u=e.i(32391),d=e.i(804581),c=e.i(891262),p=e.i(413230),f=e.i(455744),m=e.i(971724),h=e.i(105954),g=e.i(206033),y=e.i(180473);let v=e=>/^[A-Za-z0-9_.-]{1,100}\/[A-Za-z0-9_.-]{1,100}$/.test(e)&&!e.includes(".."),k=e=>e.split("/").map(encodeURIComponent).join("/");async function b(e,t,n,r="application/vnd.github+json"){let a,s=n.timeoutMs??5e3;try{a=await (n.fetch??fetch)(`https://api.github.com${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:r,"X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell"},signal:AbortSignal.timeout(s),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`GitHub didn't answer within ${Math.round(s/1e3)} seconds.`:"Couldn't reach GitHub."}}let i=await a.text().catch(()=>"");if(a.ok){let e=null;if(r.endsWith("+json")&&!r.includes(".raw"))try{e=JSON.parse(i)}catch{e=null}return{ok:!0,data:e,text:i,headers:a.headers}}let l=a.status;if(401===l)return{ok:!1,kind:"auth",status:l,error:"GitHub rejected this token (401). It may have expired or been revoked."};if((403===l||429===l)&&("0"===a.headers.get("x-ratelimit-remaining")||429===l)){let e=Number(a.headers.get("x-ratelimit-reset"));return{ok:!1,kind:"transient",status:l,retryAfterS:Number.isFinite(e)&&e>0?Math.max(1,e-Math.floor(Date.now()/1e3)):60,error:"GitHub's rate limit is used up for now. The next run tries again."}}return 403===l?{ok:!1,kind:"scope",status:l,error:"This token can't read that (403). It needs Metadata, Contents and Actions read on the repository."}:404===l?{ok:!1,kind:"missing",status:l,error:"GitHub doesn't show this to the token (404)."}:{ok:!1,kind:"transient",status:l,error:`GitHub returned an error (${l}).`}}let w=m.z.object({id:g.z.number(),name:h.z.string(),full_name:h.z.string(),owner:m.z.object({login:h.z.string()}),default_branch:h.z.string().nullish(),private:y.z.boolean(),archived:y.z.boolean().optional(),html_url:h.z.string().nullish(),pushed_at:h.z.string().nullish()}),A=e=>({ok:!1,kind:"format",error:`GitHub answered ${e} in a format the console doesn't recognise.`});async function $(e,t={}){let n=await b("/user",e,t);return n.ok?m.z.object({login:h.z.string()}).safeParse(n.data).success?{ok:!0,data:{expiresAt:function(e){let t=e.get("github-authentication-token-expiration")?.trim();if(!t)return null;let n=/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})\s*(UTC|Z|[+-]\d{2}:?\d{2})?$/.exec(t);if(!n)return null;let r=n[3]&&"UTC"!==n[3]&&"Z"!==n[3]?n[3].includes(":")?n[3]:`${n[3].slice(0,3)}:${n[3].slice(3)}`:"Z",a=new Date(`${n[1]}T${n[2]}${r}`);return Number.isNaN(a.getTime())?null:a}(n.headers)}}:A("the token check"):n}async function I(e,t={}){let n=[];for(let r=1;r<=3;r++){let a=await b(`/user/repos?per_page=100&page=${r}&sort=pushed&affiliation=owner,collaborator,organization_member`,e,t);if(!a.ok)return a;let s=f.z.array(w).safeParse(a.data);if(!s.success)return A("the repository list");for(let e of s.data){if(!v(e.full_name))continue;let t=e.pushed_at?new Date(e.pushed_at):null;n.push({id:String(e.id),owner:e.owner.login,name:e.name,fullName:e.full_name,defaultBranch:e.default_branch??null,private:e.private,archived:e.archived??!1,htmlUrl:e.html_url??null,pushedAt:t&&!Number.isNaN(t.getTime())?t:null})}if(s.data.length<100)return{ok:!0,data:{repos:n,truncated:!1}}}return{ok:!0,data:{repos:n,truncated:!0}}}async function S(e,t,n={}){if(!v(t))return{ok:!0,data:null};let r=await b(`/repos/${k(t)}/contents/package.json`,e,n,"application/vnd.github.raw+json");if(!r.ok)return"missing"===r.kind?{ok:!0,data:null}:r;if(r.text.length>262144)return{ok:!0,data:null};try{let e=JSON.parse(r.text).name;return{ok:!0,data:"string"==typeof e&&e.trim()&&e.length<=214?e.trim():null}}catch{return{ok:!0,data:null}}}let x=m.z.object({total_count:g.z.number(),workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish(),name:h.z.string().nullish(),display_title:h.z.string().nullish(),head_branch:h.z.string().nullish(),head_sha:h.z.string().nullish(),html_url:h.z.string().nullish(),run_number:g.z.number().nullish(),updated_at:h.z.string().nullish(),created_at:h.z.string().nullish()}))});async function V(e,t,n,r={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let a=new URLSearchParams({per_page:"1",exclude_pull_requests:"true",...n?{branch:n}:{}}),s=await b(`/repos/${k(t)}/actions/runs?${a}`,e,r);if(!s.ok)return s;let i=x.safeParse(s.data);if(!i.success)return A("the Actions runs");let l=i.data.workflow_runs[0];return l?{ok:!0,data:{status:l.status??"unknown",conclusion:l.conclusion??null,name:l.name??l.display_title??null,branch:l.head_branch??null,sha:l.head_sha??null,url:l.html_url?.startsWith("https://github.com/")?l.html_url:null,at:l.updated_at??l.created_at??null,runNumber:l.run_number??null}}:{ok:!0,data:{none:!0}}}let _=e=>/^[A-Za-z0-9._\/-]{1,200}$/.test(e)&&!e.includes("..")&&!e.startsWith("/")&&!e.endsWith("/");async function z(e,t,n,r,a,s={}){if(!v(t)||!_(r)||!n||n.split("/").includes("..")||n.startsWith("/"))return{ok:!1,kind:"format",error:"That isn't a file in a repository."};let i=n.split("/").map(encodeURIComponent).join("/"),l=await b(`/repos/${k(t)}/contents/${i}?ref=${encodeURIComponent(r)}`,e,s,"application/vnd.github.raw+json");return l.ok?Buffer.byteLength(l.text,"utf8")>a||l.text.includes("\0")||(l.text.match(/�/g)?.length??0)>8?{ok:!0,data:null}:{ok:!0,data:l.text}:l}async function D(e,t,n,r={}){if(!v(t)||!/^[0-9a-f]{40}$/.test(n))return{ok:!1,kind:"format",error:"That isn't a repository or commit."};let a=await b(`/repos/${k(t)}/actions/runs?head_sha=${n}&per_page=50`,e,r);if(!a.ok)return a;let s=m.z.object({workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish()}))}).safeParse(a.data);return s.success?{ok:!0,data:s.data.workflow_runs.map(e=>({status:e.status??"queued",conclusion:e.conclusion??null}))}:A("the Actions runs")}m.z.object({sha:h.z.string().optional(),truncated:y.z.boolean().optional(),tree:f.z.array(m.z.object({path:h.z.string(),type:h.z.string(),size:g.z.number().optional()}))}),e.s(["$",0,262144,"V",0,z,"j",0,b,"k",0,$,"M",0,v,"c",0,_,"W",0,V,"o",0,I,"q",0,S,"f",0,k,"L",0,D],455037);let R=f.z.array(m.z.object({name:h.z.string(),type:h.z.string(),sha:h.z.string(),size:g.z.number().optional()}));async function j(e,t,n,r={}){if(!v(t)||!_(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};let a=await b(`/repos/${k(t)}/contents/?ref=${encodeURIComponent(n)}`,e,r);if(!a.ok)return a;let s=R.safeParse(a.data);return s.success?{ok:!0,data:s.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."}}function B(e,t,n,r,a,s={}){return z(e,t,n,r,a,s)}async function T(e,t,n={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await b(`/repos/${k(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 a=(0,p.E)(r.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}async function M(){let[e]=await (0,a.f)().select().from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).orderBy((0,r.M)(s.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,i.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 C(){let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,n.u)(s.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}async function E(){let e={id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,scannedAt:s.dependencyScans.scannedAt},t=(0,n.b)((0,n.M)(s.githubRepos.goneAt),(0,n.u)(s.githubRepos.archived,!1)),r=await C()?await (0,a.f)().select(e).from(s.githubRepos).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500):await (0,a.f)().selectDistinct(e).from(s.appRepos).innerJoin(s.githubRepos,(0,n.u)(s.githubRepos.id,s.appRepos.repoId)).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500);return(0,p.M)(r)}let O=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function N(e,t){let n=new Date;await (0,a.f)().insert(s.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function L(e){return(0,a.f)().select({id:s.dependencyVulns.id,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,source:s.dependencyVulns.source}).from(s.dependencyVulns).where((0,n.b)((0,n.u)(s.dependencyVulns.repoId,e),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(2e3)}async function P(e,r,i,l={}){let o=()=>({...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),1e4))}),f=async e=>(await N(r.id,{error:O(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),m=r.defaultBranch??"HEAD",h=await j(e,r.fullName,m,o());if(!h.ok)return f(h.error);let g=function(e){for(let t of u.a){let n=e.find(e=>e.name===t.path);if(n)return{path:t.path,kind:t.kind,sha:n.sha}}return null}(h.data),y=h.data.find(e=>"package.json"===e.name)??null,v=g?g.sha:y?`pkg:${y.sha}`:null,[k]=await (0,a.f)().select().from(s.dependencyScans).where((0,n.u)(s.dependencyScans.repoId,r.id)).limit(1),b=new Date;if(!(0,p.U)(k??null,v,b,l.force))return{status:"unchanged"};if(!v){let e=await L(r.id);return e.length&&await (0,a.f)().update(s.dependencyVulns).set({resolvedAt:b}).where((0,n.y)(s.dependencyVulns.id,e.map(e=>e.id))),await N(r.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:b,queriedAt:b,error:null,note:"No package.json or lockfile at the repository root."}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let w=y?await B(e,r.fullName,"package.json",m,262144,o()):null;if(w&&!w.ok)return f(w.error);let A=w?.ok&&w.data?(0,u.b)(w.data):null,$=null,I="package-json",S=null;if(g){if(2e3>i-Date.now())return f("Time budget used before the lockfile was read; the next run tries again.");let t=await B(e,r.fullName,g.path,m,0xf00000,{...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),2e4))});if(!t.ok)return f(t.error);$=t.data?(0,u.D)(g.kind,t.data):null,I=g.kind,$||(S=`${g.path} couldn't be read; the versions come from package.json ranges (approximate).`)}if($){let e=(0,t.m)($,A);$=e.deps,e.stale.length&&(S=[S,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else $=A?(0,u.e)(A):[],I="package-json",S??=g?null:"No lockfile: the versions come from package.json ranges (approximate).";let x=await L(r.id),V=[];if($.length){let e=await (0,c.K)($,{fetch:l.fetch,deadline:i});if(!e.ok)return f(e.error);let t=(0,p.A)(x,!0===l.force),n=await (0,c.J)((0,p.z)($,e.ids,t),{fetch:l.fetch,deadline:i});if(!n.ok)return f(n.error);V=(0,d.i)($,e.ids,n.map,t)}if(i-Date.now()>1500){let t=await T(e,r.fullName,o());t.ok&&"alerts"in t.data?V=(0,p.R)(V,t.data.alerts,$):t.ok&&(S=[S,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let _=(0,p.h)(x,V,(0,u.K)(A)),z=new Date;return await (0,a.f)().transaction(async e=>{for(let t of(_.insert.length&&await e.insert(s.dependencyVulns).values(_.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:z,lastSeenAt:z}))).onConflictDoNothing(),_.update))await e.update(s.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:z}).where((0,n.u)(s.dependencyVulns.id,t.id));_.resolve.length&&await e.update(s.dependencyVulns).set({resolvedAt:z}).where((0,n.b)((0,n.y)(s.dependencyVulns.id,_.resolve),(0,n.M)(s.dependencyVulns.resolvedAt))),await e.insert(s.dependencyScans).values({repoId:r.id,lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}})}),{status:"scanned",vulns:_.insert.length+_.update.length,packages:$.length,note:"package-json"===I?S:null}}async function H(e,t={}){let r=await M();if("error"in r)return{error:r.error};let i=await E(),l={scanned:0,unchanged:0,failed:[],left:0};for(let[n,a]of i.entries()){if(e-Date.now()<4e3){l.left=i.length-n;break}try{let n=await P(r.token,a,e,t);"scanned"===n.status?l.scanned++:"unchanged"===n.status?l.unchanged++:l.failed.push(`${a.fullName}: ${n.error}`)}catch(e){l.failed.push(`${a.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(s.dependencyVulns).where((0,n.b)((0,n.E)(s.dependencyVulns.resolvedAt),(0,n.S)(s.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),l}async function U(e){let[t]=await (0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).limit(1);if(!t)return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let r=await H(e);if("error"in r){let e;return(e=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:r.error}let i=r.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),l=r.failed.length-i.length+(r.left??0);l&&console.info(`deps: ${l} repositor${1===l?"y":"ies"} wait for the next run`);let o=i.slice(0,3);return i.length>3&&o.push(`+${i.length-3} more`),o.length?o.join("; "):null}async function q(e){let t=e.filter(o.f);if(!t.length)return[];let r=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId,error:s.dependencyScans.error}).from(s.appRepos).innerJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.appRepos.repoId)).where((0,n.b)((0,n.y)(s.appRepos.appId,t),(0,n.E)(s.dependencyScans.scannedAt)));if(!r.length)return[];let i=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,severity:s.dependencyVulns.severity,summary:s.dependencyVulns.summary,dev:s.dependencyVulns.dev}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:i.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}))}))}async function W(e){let t=e.filter(o.f),r=new Map;if(!t.length)return r;let i=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,n.y)(s.appRepos.appId,t));if(!i.length)return r;let l=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,vulnId:s.dependencyVulns.vulnId,aliases:s.dependencyVulns.aliases,severity:s.dependencyVulns.severity,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(i.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt),(0,n.u)(s.dependencyVulns.direct,!0),(0,n.E)(s.dependencyVulns.fixedVersion))).limit(2e3);for(let e of i)(0,p.B)(l.filter(t=>t.repoId===e.repoId)).length&&r.set(e.appId,e.repoId);return r}e.s(["R",0,4e4,"o",0,12e3,"e",0,U,"C",0,W,"a",0,q],433609)},111970,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(347540),a=e.i(924924),s=e.i(473283),i=e.i(618916),l=e.i(659846),o=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,a.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,s.f)(t),p=c(r?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>l.f.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,o.N)(c(r?.off))}});async function f(){try{return(0,o.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:a}=(0,o.s)(e),s=[];if(r.length&&s.push(n.B`${i.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),a.length){let e=n.B.join(a.map(e=>n.B`${e}`),n.B`, `);s.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 s.length?(0,t.F)(...s):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),a=e.i(618916);e.i(154491);var s=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]},l=Object.keys(i),o=(e,t)=>"number"==typeof t&&i[e].includes(t);async function u(e){let[n]=await (0,r.f)().select({value:a.settings.value}).from(a.settings).where((0,t.u)(a.settings.key,e)).limit(1);return n?.value??null}let d=async()=>(function(e){let t={...s.f};if(!e||"object"!=typeof e)return t;for(let n of l){let r=e[n];o(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 ${a.settings.value} from ${a.settings} where ${a.settings.key} = ${"sections.off"})`],960049)},662860,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(755776),a=e.i(618916),s=e.i(921991),i=e.i(867274),l=e.i(547499);let o="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,n,r={}){let a;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 s=r.timeoutMs??8e3;try{a=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(s),cache:"no-store",redirect:"manual"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`${o} didn't answer within ${Math.round(s/1e3)} seconds.`:`Couldn't reach the ${o}.`}}if(401===a.status||403===a.status)return{ok:!1,kind:"auth",status:a.status,error:`Supabase rejected the metrics key (${a.status}). Replace it with a current Secret API key.`};if(404===a.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===a.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${o} says there were too many requests.`};if(!a.ok)return{ok:!1,kind:"transient",status:a.status,error:`${o} returned an error (${a.status}).`};let i=await a.text().catch(()=>null);return null===i||i.length>4e6||!/^(#|[A-Za-z_:])/m.test(i)?{ok:!1,kind:"format",error:`${o} answered in a format the console doesn't recognise.`}:{ok:!0,data:i}},key:()=>(0,l.f)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,s,l=d){if(!(0,i.T)(e,u))return null;u=e.getTime();let o=0,f=0;try{for(let{k:i,ref:u,state:d}of(await (0,n.f)().select({k:r.A,ref:a.resources.externalId,state:a.snapshots.state}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).leftJoin(a.snapshots,(0,t.u)(a.snapshots.resourceId,a.resources.id)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt))).limit(20))){let t=s-Date.now()-500;if(t<1e3)break;try{await m(i,u,d,e,Math.min(8e3,t),l)?o++: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:o,failed:f}}async function f(e,a,s){return await (0,n.f)().update(r.A).set({lastTryAt:a,lastError:s.slice(0,300)}).where((0,t.u)(r.A.resourceId,e)),!1}async function m(e,a,l,o,u,d){if("paused"===l)return f(e.resourceId,o,"The project is paused.");let c=(0,s.V)({ciphertext:e.keyCiphertext,iv:e.keyIv},d.key());if(!c)return f(e.resourceId,o,"The stored key can't be read. Add it again.");let p=await d.fetchMetrics(a,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,o,p.error);let m=(0,i.E)(e.latest??null,(0,i.c)((0,i.a)(p.data),a),o);await (0,n.f)().update(r.A).set({latest:m,lastTryAt:o,lastOkAt:o,lastError:null}).where((0,t.u)(r.A.resourceId,e.resourceId));let h=(0,i.b)(o),[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:a.resources.id,name:a.resources.name,latest:r.A.latest}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.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},a=(e,t)=>Math.round(e/t*1e3)/10,s=(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:a(e.accountRowsRead,r.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...n&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:a(e.accountRowsWritten,r.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:a(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 s(e.usageAt,n)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:a(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:a(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:a(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=s(e.statsAt,t);return[...r&&null!=e.monthlyRequests?[{label:"Commands",pct:a(e.monthlyRequests,n.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...r&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:a(e.monthlyBandwidthBytes,n.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:a(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,479301,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 a(e,n){let a=r.exec(e.trim()),s=r.exec(n.trim());return!!a&&!!s&&a[1]===s[1]&&("0"!==a[1]||a[2]===s[2])&&(0,t.f)(n,e)>=0}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));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!a(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 a=[...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])],s=[...e],i=[];for(let[e,r,l]of a){let a=(0,n.Y)(r);if(!a||!(0,n.C)(a))continue;let o=s.filter(t=>t.name===e);!o.length||o.some(e=>(0,t.f)(e.version,a)>=0)||((s=s.filter(t=>t.name!==e)).push({name:e,version:a,dev:o.every(e=>e.dev)&&l}),i.push(e))}return{deps:s,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){for(let n of t){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"}(n);if("all"===t||e.some(e=>t.includes(e)))return n}return null},"J",0,a],90801);let s=/^[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&&s.test(e)],479301)},891262,7494,267485,e=>{var t=e.i(442473);let n={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function r(e){return[...e].sort((e,t)=>n[t.severity]-n[e.severity]||(e.id<t.id?-1:+(e.id>t.id)))}e.s(["t",0,function(e,t,r){let a=new Set((t?.findings??[]).map(e=>e.id));if("vulnerable"===r.status&&r.findings.length>0){let t;if(r.findings.every(e=>a.has(e.id)))return null;let s=r.findings.reduce((e,t)=>n[t.severity]>n[e]?t.severity:e,"UNKNOWN");return{kind:n[s]>=n.HIGH?"err":"warn",message:`${e} runs Next.js ${r.version} with ${t=r.findings.length,`${t} known vulnerabilit${1===t?"y":"ies"}`} (${s.toLowerCase()})`,detail:r.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===r.status&&a.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${r.version})`,detail:null}:null},"I",0,r],7494);var a=e.i(250474);let s=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>Array.isArray(e)?e:[],o=e=>"string"==typeof e&&e?e:null,u=e=>i(e.package)&&"next"===e.package.name&&"npm"===e.package.ecosystem,d="OSV.dev sent an answer we couldn't read";async function c(e,n={}){let m=n.timeoutMs??1e4,h=n.maxBytes??2097152,g=AbortSignal.timeout(m),y=(0,t.X)(g),v=`OSV.dev didn't answer within ${f(m)}`,k=[],b=null;for(let r=0;r<3;r++){var w;let r,a;try{r=await (n.fetch??fetch)("https://api.osv.dev/v1/query",{method:"POST",headers:{"content-type":"application/json","user-agent":"OpsConsole-Security/1.0 (+https://west-solutions.web.id)"},body:JSON.stringify({package:{name:"next",ecosystem:"npm"},version:e,...b?{page_token:b}:{}}),redirect:"error",cache:"no-store",signal:g})}catch(e){return{ok:!1,error:p(e)?v:"Couldn't reach OSV.dev"}}if(!r.ok)return await r.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${r.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(r,h,y);if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};a=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:p(e)?v:d}}let s=i(w=a)?void 0===w.vulns?[]:Array.isArray(w.vulns)?w.vulns:null:null;if(null===s)return{ok:!1,error:d};if(k.push(...s),!(b=i(a)?o(a.next_page_token):null))break}let A=function(e,t){let n=[],d=0;for(let r of e){if(!i(r))continue;let e=o(r.id);e&&(d++,r.withdrawn||n.push({id:e.slice(0,64),cve:l(r.aliases).map(o).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(o(r.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=i(e.database_specific)?o(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":s.includes(t??"")?t:"UNKNOWN"}(r),fixed:function(e,t){let n=null;for(let r of l(e))if(i(r)&&u(r))for(let e of l(r.ranges)){if(!i(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let r=null;for(let s of l(e.events)){if(!i(s))continue;let e=o(s.introduced),l=o(s.fixed);e?r=e:l&&null!==r?((0,a.f)(t,r)>=0&&0>(0,a.f)(t,l)&&(null===n||0>(0,a.f)(l,n))&&(n=l),r=null):(o(s.last_affected)||o(s.limit))&&(r=null)}}return n}(r.affected,t)}))}return e.length>0&&0===d?null:r(n).slice(0,50)}(k,e);return null===A?{ok:!1,error:d}:{ok:!0,findings:A}}let p=e=>e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name),f=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`;e.s(["y",0,c,"t",0,p],267485);var m=e.i(804581);let h="OpsConsole-Deps/1.0 (+https://west-solutions.web.id)";async function g(e,t,n,r){let a=r.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(a);return v(e,{method:"POST",headers:{"content-type":"application/json","user-agent":h},body:JSON.stringify(t),signal:s},n,s,r)}async function y(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(r,8e3));return v(e,{method:"GET",headers:{"user-agent":h},signal:a},t,a,n)}async function v(e,n,r,a,s){let i;try{i=await (s.fetch??fetch)(e,{...n,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:p(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)(a));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:p(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function k(e,t){let n=[];for(let r of(0,m.f)(e)){let e=await g(m.n,r,4194304,t);if(!e.ok)return e;let a=(0,m.j)(e.body,r.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...a)}return{ok:!0,ids:n}}async function b(e,t){let n=[...new Set(e)].filter(m.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,a=null;for(let e=0;e<n.length&&!a;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await y(`${m.W}${encodeURIComponent(e)}`,1048576,t),s=n.ok?(0,m.O)(n.body):null;s?r.set(e,s):a??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return a?{ok:!1,error:a}:{ok:!0,map:r}}e.s(["J",0,b,"K",0,k],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:[],a=e=>"string"==typeof e&&e?e:null,s=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),i={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"},l=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",o=(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,s,i,l=new Map){let u=[];return e.forEach((e,d)=>{for(let c of s[d]??[]){let s=l.get(`${e.name}@${e.version}|${c}`);if(s){u.push({...s,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,s,i){let l=null;for(let u of r(e))if(n(u)&&o(u,s))for(let e of r(u.ranges)){if(!n(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let s=null;for(let o of r(e.events)){if(!n(o))continue;let e=a(o.introduced),r=a(o.fixed);e?s=e:r&&null!==s?((0,t.f)(i,s)>=0&&0>(0,t.f)(i,r)&&(null===l||0>(0,t.f)(r,l))&&(l=r),s=null):(a(o.last_affected)||a(o.limit))&&(s=null)}}return l}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),u},"G",0,s,"O",0,function(e){if(!n(e))return null;let t=a(e.id);return t&&s(t)?{id:t,aliases:[...new Set(r(e.aliases).map(a).filter(e=>!!e&&s(e)))].slice(0,20),summary:(a(e.summary)??a(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=n(e.database_specific)?a(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=a(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 a={N:.85,A:.62,L:.55,P:.2},s={L:.77,H:.44},i={N:.85,R:.62},l={H:.56,L:.22,N:0},o="C"===r.S,u=o?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![a[r.AV],s[r.AC],u[r.PR],i[r.UI],l[r.C],l[r.I],l[r.A]].every(e=>"number"==typeof e)||"U"!==r.S&&"C"!==r.S)return null;let d=1-(1-l[r.C])*(1-l[r.I])*(1-l[r.A]),c=o?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*a[r.AV]*s[r.AC]*u[r.PR]*i[r.UI];return c<=0?0:(t=Math.round(1e5*Math.min(o?1.08*(c+p):c+p,10)))%1e4==0?t/1e5:(Math.floor(t/1e4)+1)/10}(a(t.score)):null;if(null!==e)return l(e)}return(a(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!a(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)?a(e.id):null).filter(e=>!!e&&s(e)):[]):null}])},413230,e=>{var t=e.i(250474),n=e.i(32391),r=e.i(804581);let a=["critical","high","moderate","low","unknown"],s=e=>a.indexOf(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>"string"==typeof e&&e?e:null,o={critical:"critical",high:"high",medium:"moderate",moderate:"moderate",low:"low"},u=e=>`${e.package}@${e.installedVersion}|${e.vulnId}`;e.s(["g",0,function(e){let t=e.filter(e=>!e.dev);return t.some(e=>{let t;return"critical"===e.severity||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))})?"critical":t.some(e=>"high"===e.severity)?"warning":null},"L",0,function(e){let t=e.filter(e=>{let t;return!e.dev&&(s(e.severity)<=s("high")||(t=e.summary,/\bRCE\b|remote code execution/i.test(t)))}),n=[...t].sort((e,t)=>s(e.severity)-s(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 a=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),l=["critical","high","moderate","low","unknown"].filter(e=>i[e]>0).map(e=>`${i[e]} ${e}`).join(", "),o=`${a} vulnerable package${1===a?"":"s"} (${l}): ${r.slice(0,4).join(", ")}${r.length>4?`, +${r.length-4} more`:""}.`;return o.length>300?`${o.slice(0,299)}…`:o},"z",0,function(e,t,n){let r=new Set;return e.forEach((e,a)=>{for(let s of t[a]??[])n.has(`${e.name}@${e.version}|${s}`)||r.add(s)}),[...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 a=[...e];for(let e of n)if(!a.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 a=(0,t.f)(e,r[2]);return"<"===r[1]?a<0:"<="===r[1]?a<=0:">"===r[1]?a>0:">="===r[1]?a>=0:0===a})}(n.version,e.range)&&a.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 a},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let a of e){if(!i(a)||"open"!==a.state||!i(a.dependency)||!i(a.security_advisory))continue;let e=i(a.dependency.package)&&"npm"===a.dependency.package.ecosystem?l(a.dependency.package.name):null,s=l(a.security_advisory.ghsa_id);if(!e||!(0,n.L)(e)||!s||!(0,r.G)(s))continue;let u=i(a.security_vulnerability)?a.security_vulnerability:{},d=i(u.first_patched_version)?l(u.first_patched_version.identifier):null,c=l(a.security_advisory.cve_id);t.push({package:e,ghsaId:s,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(l(a.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,r.h),severity:o[(l(u.severity)??l(a.security_advisory.severity)??"").toLowerCase()]??"unknown",range:l(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===a.dependency.scope})}return t},"h",0,function(e,t,n){let a=new Map(e.map(e=>[u(e),e])),s=new Set,i={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(s.has(t))continue;s.add(t);let l={...e,aliases:e.aliases.slice(0,r.S),summary:e.summary.slice(0,r.h),direct:n.has(e.package)},o=a.get(t);o?i.update.push({id:o.id,severity:l.severity,fixedVersion:l.fixedVersion,summary:l.summary,aliases:l.aliases,dev:l.dev,direct:l.direct}):i.insert.push(l)}return i.resolve=e.filter(e=>!s.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;for(let r of e){if(!r.direct||!r.fixedVersion||0>=(0,t.f)(r.fixedVersion,r.installedVersion))continue;let e=n.get(r.package)??{package:r.package,to:r.fixedVersion,vulnIds:[],cves:[],severity:r.severity};for(let n of((0,t.f)(r.fixedVersion,e.to)>0&&(e.to=r.fixedVersion),e.vulnIds.includes(r.vulnId)||e.vulnIds.push(r.vulnId),r.aliases))/^CVE-/.test(n)&&!e.cves.includes(n)&&e.cves.push(n);s(r.severity)<s(e.severity)&&(e.severity=r.severity),n.set(r.package,e)}return[...n.values()].sort((e,t)=>s(e.severity)-s(t.severity)||(e.package<t.package?-1:1))}])},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 a(e){return Array.isArray(e)?t.filter(r=>"string"==typeof r&&t.includes(r)&&n.includes(r)&&e.includes(r)):[]}let s={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",CredentialExpiring:"account",CollectorStale:null},i=/^Log/;e.s(["D",0,r,"O",0,(e,t,n)=>{let a;if(!e.size)return!1;let l="account"===(a=s[t])?n?r[n]??null:null:void 0!==a?a:i.test(t)?"hosting":null;return null!==l&&e.has(l)},"N",0,a,"s",0,function(e){return{ruleKeys:Object.entries(s).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(a(e))])},250474,32391,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),a=t(n);for(let e=0;e<3;e++)if(r.nums[e]!==a.nums[e])return r.nums[e]-a.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,a=/^\d+$/.test(t[n])?Number(t[n]):null;if(null!==r&&null!==a){if(r!==a)return r-a}else if(null!==r||null!==a)return null!==r?-1:1;else if(e[n]!==t[n])return e[n]<t[n]?-1:1}return 0}(r.pre,a.pre)}],250474);let n=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,r=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,a=e=>e.length<=214&&n.test(e),s=e=>e.length<=100&&r.test(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function l(e){let t=new Map;for(let n of e){if(!a(n.name)||!s(n.version))continue;let e=`${n.name}@${n.version}`,r=t.get(e);if(r?r.dev=r.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 u=e=>{let t=e.lastIndexOf("node_modules/");return t<0?null:e.slice(t+13)||null},d=e=>e.trim().replace(/^['"]|['"]$/g,""),c=e=>i(e)?Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1])):{};function p(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,a]of Object.entries(e)){let e=p(a);e&&t.push({name:r,version:e,dev:n})}};return n(e.dependencies,!1),n(e.optionalDependencies,!1),n(e.devDependencies,!0),l(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,a,"C",0,s,"Y",0,p,"D",0,function(e,t){switch(e){case"npm":let n=o(t);if(!i(n))return null;let r=[];if(i(n.packages)){for(let[e,t]of Object.entries(n.packages)){if(!e||!i(t)||!0===t.link||"string"!=typeof t.version)continue;let n="string"==typeof t.name&&e.includes("node_modules/")?t.name:u(e);n&&r.push({name:n,version:t.version,dev:!0===t.dev})}return l(r)}if(i(n.dependencies)){let e=(t,n)=>{if(!(n>40))for(let[a,s]of Object.entries(t))i(s)&&("string"==typeof s.version&&r.push({name:a,version:s.version,dev:!0===s.dev}),i(s.dependencies)&&e(s.dependencies,n+1))};return e(n.dependencies,0),l(r)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let n=[],r=!1,s=null;for(let e of t){if(/^\S/.test(e)){r=/^packages:\s*$/.test(e),s=null;continue}if(!r)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=d(e).replace(/^\//,""),n=t.indexOf("(");n>0&&(t=t.slice(0,n));let r=t.lastIndexOf("@");if(r>0&&!t.slice(r+1).includes("/")&&a(t.slice(0,r)))return{name:t.slice(0,r),version:t.slice(r+1).split("_")[0]};let s=t.lastIndexOf("/");return s<=0?null:{name:t.slice(0,s),version:t.slice(s+1).split("_")[0]}}(t[1]);(s=e?{...e,dev:!1}:null)&&n.push(s);continue}s&&/^ {4}dev: true\s*$/.test(e)&&(s.dev=!0)}return l(n)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),n=[],r=null,a=!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=d(e),n=t.indexOf("@",+!!t.startsWith("@"));return n>0?t.slice(0,n):null}(t.split(/,\s*/)[0]),a=!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 a?l(n):null}(t);case"bun":let s=o(t.replace(/,(\s*[}\]])/g,"$1"));if(!i(s)||!i(s.packages))return null;let c=[];for(let e of Object.values(s.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 l(c)}},"b",0,function(e){let t=o(e);return i(t)?{dependencies:c(t.dependencies),devDependencies:c(t.devDependencies),optionalDependencies:c(t.optionalDependencies)}:null}],32391)}]})();
5
+
6
+ //# sourceMappingURL=src_lib_0y-obfzqjj0c6._.js.map
@@ -0,0 +1,6 @@
1
+ (()=>{"use strict";module.exports=[658266,211256,e=>{var t=e.i(278619),n=e.i(959408),r=e.i(867274),a=e.i(413230);let s=e=>Math.round(e).toLocaleString("en-US"),i=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),l=(e,t)=>`${e} ${t}${1===e?"":"s"}`,o=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},u=e=>{try{return new URL(e).pathname}catch{return"/"}},d="Down · ",c=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),p=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,f=new Set(["turso","upstash","d1"]),m={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=c("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:u(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=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(d)?t.slice(d.length):"no ping in time"}.`}}return e.failStreak>=a?{...r,status:"firing",message:(0,n.H)(e)?`${o(e.url)} failed its check (${(0,n.H)(e)}) on ${a} consecutive checks.`:`${o(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${o(e.url)} answers again.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[c("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${s((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=c("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${u(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 ${s(e.p95Last10)} ms over the last 10 minutes (limit ${s(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=c("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=>c("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=c("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let a=i(n.tlsNotAfter,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${l(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=c("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let a=i(n.expiresAt,e.now);return{...r,status:a<(t??30)?"firing":"ok",message:`${n.name} expires in ${l(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=c("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:p(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 ${s(e.sizeBytes/1e6)} MB of ${s(e.sizeLimitBytes/1e6)} MB (${s(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=c("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 ${s(e.cuHours)} of ${s(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=c("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 ${s(e.readsToday)} of ${s(e.readsLimit)} documents today (${s(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=c("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 a=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${l(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>c("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=>f.has(e.provider)).map(e=>{let n=c("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:p(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${s(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let a=c("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),s=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===s?a:{...a,status:s.length?"firing":"ok",message:s.length?`${n.name}: ${s.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=c("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 a=i(n.expiresAt,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:a<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${l(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=c("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let s=(0,a.g)(t.vulns);return s?[{...r,status:"firing",message:(0,a.L)(t.vulns),..."critical"===s?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no high or critical dependency advisories.`}]}):null};e.s(["f",0,function(e,n,r){let a=[],s=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=m[i.key](e,i.threshold);n&&(s.add(i.key),a.push(...n))}return{observations:a,evaluated:s}}],658266);let h=["MonitorDown","HighLatency"],g=["telegram","discord"],y=e=>e.channels.some(e=>g.includes(e));function v(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&h.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let k=(e,t)=>"critical"===t&&"warning"===e?"critical":e,b=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),w=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,a,s){let i={open:[],touch:[],resolve:[]},l=new Map(a.map(e=>[e.key,e])),o=new Map(n.map(e=>[w(e.rule,e.subject),e])),u=new Set(e.map(e=>w(e.ruleKey,e.subject))),d=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=l.get(n.ruleKey),a=o.get(w(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!a){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===a.status)continue;let u=a.provider?s.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=v(a,s),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&s.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,l={id:n.id,okStreak:0,lastSampleAt:a.sampleAt??n.lastSampleAt,lastSeenAt:s.now,message:a.message,causedBy:t,providerIncident:u},o=!n.notifiedOpen&&(!n.pendingSince||s.now.getTime()-n.pendingSince.getTime()>=216e5);(r||o)&&!b(n,s.now)&&!t&&null===n.pending&&y(e)&&(l.pending=r?"repeat":"open"),i.touch.push(l);continue}if(!t._[n.ruleKey].sampled||null===a.sampleAt){d(n);continue}if(!(null===n.lastSampleAt||a.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?d(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of n){if("firing"!==e.status||u.has(w(e.rule,e.subject))||s.maintenance.has(e.subject)||e.resourceId&&s.maintenance.has(e.resourceId))continue;let t=l.get(e.rule);if(!t)continue;let n=v(e,s);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:k(t.severity,e.severity),title:e.title,message:e.message,startedAt:s.now,lastSeenAt:s.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?s.incidents.get(e.provider)??null:null,pending:n||!y(t)?null:"open"})}return i}],211256)},582748,e=>{var t=e.i(89491),n=e.i(960063),r=e.i(800366),a=e.i(326003),s=e.i(843448),i=e.i(647006),l=e.i(328203);e.s(["d",0,function(e,i){let o={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,a.k)(a.B,e.data),n=(0,l.Z)(t.lastTrafficAt),r=(0,l.Z)(t.trafficAt),i=n??(r&&!t.trafficError?new Date(r.getTime()-6048e5):null);return{...o,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:s.R,lastApiAt:i}}if("neon_project"===e.kind){let t=(0,a.k)(a.s,e.data),n=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...o,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,a.k)(a.w,e.data),r=(0,l.Z)(t.opsAt),s=null!=t.reads&&r&&r.getTime()>=(0,n.a)(i).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...o,provider:"firestore",readsToday:s,readsLimit:n.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let n=(0,a.k)(a.N,e.data),r=(0,t.u)((0,t.G)(n,i));return{...o,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,a.k)(a.e,e.data),r=(0,t.u)((0,t.$)(n,i));return{...o,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,a.k)(a.x,e.data),r=(0,t.u)((0,t.I)(n,i));return{...o,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),a=[];for(let e of n){let n=t.filter(t=>(0,l.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),s=[...new Set(n.flatMap(e=>(0,i.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,i.q)(e.data).records){if(!(0,l.l)(t,s))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);a.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,l.Z)((0,i.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,l.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),a=e.i(924924),s=e.i(618916),i=e.i(582748),l=e.i(794713),o=e.i(662860),u=e.i(433609);async function d(){return(0,a.f)().select({appId:s.links.fromResourceId,dbId:s.links.toResourceId}).from(s.links).where((0,t.u)(s.links.kind,"uses_db")).limit(500)}async function c(e){let c=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),[p,f,m,h,g]=await Promise.all([(0,l.d)(),(0,l.D)(),(0,a.f)().select({m:s.monitors,appName:s.resources.name}).from(s.monitors).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(c,(0,t.u)(s.monitors.paused,!1),(0,t.u)(s.monitors.ownerPaused,!1))),(0,a.f)().select({id:s.resources.id,name:s.resources.name}).from(s.resources).where((0,t.b)(c,(0,t.u)(s.resources.kind,"app"))),(0,a.f)().select({id:s.accounts.id,provider:s.accounts.provider,label:s.accounts.label,expiresAt:s.accounts.expiresAt,status:s.accounts.status,lastError:s.accounts.lastError}).from(s.accounts)]),y=m.map(e=>e.m.id),v=y.length?await (0,a.f)().select({id:s.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})::float8`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,y),(0,t.B)(s.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(s.checks.inMaintenance,!1))).groupBy(s.checks.monitorId):[],k=h.map(e=>e.id),b=k.length?await (0,a.f)().selectDistinctOn([s.deployments.resourceId],{appId:s.deployments.resourceId,state:s.deployments.state,sha:s.deployments.commitSha,createdAt:s.deployments.createdAtProvider}).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,k),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,n.A)(s.deployments.createdAtProvider)):[],w=await (0,a.f)().select({id:s.resources.id,name:s.resources.name,kind:s.resources.kind,state:s.snapshots.state,data:s.snapshots.data}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)(c,(0,t.y)(s.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),A=e=>w.filter(t=>t.kind===e),$=w.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),I=A("zone"),S=A("domain"),x=await d(),V=await (0,o.Y)().catch(()=>null),_=k.length?await (0,u.a)(k).catch(()=>null):null;return{now:e,lastMinuteRunAt:p,lastAnyRunAt:f,monitors:m.map(({m:e,appName:t})=>{let n=v.find(t=>t.id===e.id),r="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:r?e.name??"heartbeat":e.url,kind:r?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:n?.p95??null,checksLast10:n?.n??0}}),apps:h.map(e=>{let t=b.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:g,dbs:$.length?$.map(t=>(0,i.d)(t,e)).filter(e=>null!==e):null,domains:(0,i.r)(I,S),dns:(0,i.S)(I,S),links:x,compute:V,deps:_&&_.length?_:null}}e.s(["f",0,c])},532148,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),a=e.i(924924),s=e.i(618916),i=e.i(278619),l=e.i(658266),o=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,a.f)().select().from(s.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,b,w]=await Promise.all([(0,c.f)(e),h(),(0,a.f)().select().from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)),(0,a.f)().select({provider:s.providerStatus.provider,state:s.providerStatus.state}).from(s.providerStatus),(0,p.f)(),(0,f.I)()]),A=new Map(r.accounts.map(e=>[e.id,e.provider])),$=v.filter(e=>!(0,d.O)(w,e.ruleKey,e.accountId?A.get(e.accountId):null)),I=(0,l.f)(r,y,n.only),S=I.evaluated,x=I.observations.filter(e=>!(0,d.O)(w,e.rule,e.provider)),V=y.find(e=>"CollectorStale"===e.key),_=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,z=!!V?.enabled&&(!_||e.getTime()-_.getTime()>(V.threshold??5)*6e4),D=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),R=new Map(r.links.filter(e=>D.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${D.get(e.dbId)}`])),j=new Map(k.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,m[e.provider]??e.provider])),B=(0,u.u)(b,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),T=$.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})),M=(0,o.f)(T,x,S,y,{now:e,collectorStale:z,mutedApps:R,incidents:j,maintenance:B});return M.open.length||M.touch.length||M.resolve.length?(await (0,a.f)().transaction(async n=>{for(let t of M.open)await n.insert(s.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of M.touch){let{id:a,pending:i,...l}=r;await n.update(s.alerts).set({...l,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(s.alerts.id,a),(0,t.M)(s.alerts.resolvedAt)))}for(let r of M.resolve)await n.update(s.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(s.alerts.id,r.id),(0,t.M)(s.alerts.resolvedAt)))}),{opened:M.open.length,resolved:M.resolve.length}):{opened:0,resolved:0}}let y=r.B`case ${s.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function v(e=new Set){return(await (0,a.f)().select({a:s.alerts,name:s.resources.name,kind:s.resources.kind}).from(s.alerts).leftJoin(s.resources,(0,t.u)(s.resources.id,s.alerts.resourceId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,f.s)(e))).orderBy(y,(0,n.A)(s.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function k(e){return(await (0,a.f)().select({id:s.alerts.id,ruleKey:s.alerts.ruleKey,severity:s.alerts.severity,title:s.alerts.title,resourceId:s.alerts.resourceId,startedAt:s.alerts.startedAt,resolvedAt:s.alerts.resolvedAt}).from(s.alerts).where((0,t.b)((0,t.E)(s.alerts.resolvedAt),(0,t.B)(s.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(s.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}e.s(["$",0,g,"q",0,v,"I",0,k])},433609,455037,e=>{var t=e.i(90801),n=e.i(875225),r=e.i(349129),a=e.i(924924),s=e.i(618916),i=e.i(921991),l=e.i(547499),o=e.i(479301),u=e.i(32391),d=e.i(804581),c=e.i(891262),p=e.i(413230),f=e.i(455744),m=e.i(971724),h=e.i(105954),g=e.i(206033),y=e.i(180473);let v=e=>/^[A-Za-z0-9_.-]{1,100}\/[A-Za-z0-9_.-]{1,100}$/.test(e)&&!e.includes(".."),k=e=>e.split("/").map(encodeURIComponent).join("/");async function b(e,t,n,r="application/vnd.github+json"){let a,s=n.timeoutMs??5e3;try{a=await (n.fetch??fetch)(`https://api.github.com${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:r,"X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell"},signal:AbortSignal.timeout(s),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`GitHub didn't answer within ${Math.round(s/1e3)} seconds.`:"Couldn't reach GitHub."}}let i=await a.text().catch(()=>"");if(a.ok){let e=null;if(r.endsWith("+json")&&!r.includes(".raw"))try{e=JSON.parse(i)}catch{e=null}return{ok:!0,data:e,text:i,headers:a.headers}}let l=a.status;if(401===l)return{ok:!1,kind:"auth",status:l,error:"GitHub rejected this token (401). It may have expired or been revoked."};if((403===l||429===l)&&("0"===a.headers.get("x-ratelimit-remaining")||429===l)){let e=Number(a.headers.get("x-ratelimit-reset"));return{ok:!1,kind:"transient",status:l,retryAfterS:Number.isFinite(e)&&e>0?Math.max(1,e-Math.floor(Date.now()/1e3)):60,error:"GitHub's rate limit is used up for now. The next run tries again."}}return 403===l?{ok:!1,kind:"scope",status:l,error:"This token can't read that (403). It needs Metadata, Contents and Actions read on the repository."}:404===l?{ok:!1,kind:"missing",status:l,error:"GitHub doesn't show this to the token (404)."}:{ok:!1,kind:"transient",status:l,error:`GitHub returned an error (${l}).`}}let w=m.z.object({id:g.z.number(),name:h.z.string(),full_name:h.z.string(),owner:m.z.object({login:h.z.string()}),default_branch:h.z.string().nullish(),private:y.z.boolean(),archived:y.z.boolean().optional(),html_url:h.z.string().nullish(),pushed_at:h.z.string().nullish()}),A=e=>({ok:!1,kind:"format",error:`GitHub answered ${e} in a format the console doesn't recognise.`});async function $(e,t={}){let n=await b("/user",e,t);return n.ok?m.z.object({login:h.z.string()}).safeParse(n.data).success?{ok:!0,data:{expiresAt:function(e){let t=e.get("github-authentication-token-expiration")?.trim();if(!t)return null;let n=/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})\s*(UTC|Z|[+-]\d{2}:?\d{2})?$/.exec(t);if(!n)return null;let r=n[3]&&"UTC"!==n[3]&&"Z"!==n[3]?n[3].includes(":")?n[3]:`${n[3].slice(0,3)}:${n[3].slice(3)}`:"Z",a=new Date(`${n[1]}T${n[2]}${r}`);return Number.isNaN(a.getTime())?null:a}(n.headers)}}:A("the token check"):n}async function I(e,t={}){let n=[];for(let r=1;r<=3;r++){let a=await b(`/user/repos?per_page=100&page=${r}&sort=pushed&affiliation=owner,collaborator,organization_member`,e,t);if(!a.ok)return a;let s=f.z.array(w).safeParse(a.data);if(!s.success)return A("the repository list");for(let e of s.data){if(!v(e.full_name))continue;let t=e.pushed_at?new Date(e.pushed_at):null;n.push({id:String(e.id),owner:e.owner.login,name:e.name,fullName:e.full_name,defaultBranch:e.default_branch??null,private:e.private,archived:e.archived??!1,htmlUrl:e.html_url??null,pushedAt:t&&!Number.isNaN(t.getTime())?t:null})}if(s.data.length<100)return{ok:!0,data:{repos:n,truncated:!1}}}return{ok:!0,data:{repos:n,truncated:!0}}}async function S(e,t,n={}){if(!v(t))return{ok:!0,data:null};let r=await b(`/repos/${k(t)}/contents/package.json`,e,n,"application/vnd.github.raw+json");if(!r.ok)return"missing"===r.kind?{ok:!0,data:null}:r;if(r.text.length>262144)return{ok:!0,data:null};try{let e=JSON.parse(r.text).name;return{ok:!0,data:"string"==typeof e&&e.trim()&&e.length<=214?e.trim():null}}catch{return{ok:!0,data:null}}}let x=m.z.object({total_count:g.z.number(),workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish(),name:h.z.string().nullish(),display_title:h.z.string().nullish(),head_branch:h.z.string().nullish(),head_sha:h.z.string().nullish(),html_url:h.z.string().nullish(),run_number:g.z.number().nullish(),updated_at:h.z.string().nullish(),created_at:h.z.string().nullish()}))});async function V(e,t,n,r={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let a=new URLSearchParams({per_page:"1",exclude_pull_requests:"true",...n?{branch:n}:{}}),s=await b(`/repos/${k(t)}/actions/runs?${a}`,e,r);if(!s.ok)return s;let i=x.safeParse(s.data);if(!i.success)return A("the Actions runs");let l=i.data.workflow_runs[0];return l?{ok:!0,data:{status:l.status??"unknown",conclusion:l.conclusion??null,name:l.name??l.display_title??null,branch:l.head_branch??null,sha:l.head_sha??null,url:l.html_url?.startsWith("https://github.com/")?l.html_url:null,at:l.updated_at??l.created_at??null,runNumber:l.run_number??null}}:{ok:!0,data:{none:!0}}}let _=e=>/^[A-Za-z0-9._\/-]{1,200}$/.test(e)&&!e.includes("..")&&!e.startsWith("/")&&!e.endsWith("/");async function z(e,t,n,r,a,s={}){if(!v(t)||!_(r)||!n||n.split("/").includes("..")||n.startsWith("/"))return{ok:!1,kind:"format",error:"That isn't a file in a repository."};let i=n.split("/").map(encodeURIComponent).join("/"),l=await b(`/repos/${k(t)}/contents/${i}?ref=${encodeURIComponent(r)}`,e,s,"application/vnd.github.raw+json");return l.ok?Buffer.byteLength(l.text,"utf8")>a||l.text.includes("\0")||(l.text.match(/�/g)?.length??0)>8?{ok:!0,data:null}:{ok:!0,data:l.text}:l}async function D(e,t,n,r={}){if(!v(t)||!/^[0-9a-f]{40}$/.test(n))return{ok:!1,kind:"format",error:"That isn't a repository or commit."};let a=await b(`/repos/${k(t)}/actions/runs?head_sha=${n}&per_page=50`,e,r);if(!a.ok)return a;let s=m.z.object({workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish()}))}).safeParse(a.data);return s.success?{ok:!0,data:s.data.workflow_runs.map(e=>({status:e.status??"queued",conclusion:e.conclusion??null}))}:A("the Actions runs")}m.z.object({sha:h.z.string().optional(),truncated:y.z.boolean().optional(),tree:f.z.array(m.z.object({path:h.z.string(),type:h.z.string(),size:g.z.number().optional()}))}),e.s(["$",0,262144,"V",0,z,"j",0,b,"k",0,$,"M",0,v,"c",0,_,"W",0,V,"o",0,I,"q",0,S,"f",0,k,"L",0,D],455037);let R=f.z.array(m.z.object({name:h.z.string(),type:h.z.string(),sha:h.z.string(),size:g.z.number().optional()}));async function j(e,t,n,r={}){if(!v(t)||!_(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};let a=await b(`/repos/${k(t)}/contents/?ref=${encodeURIComponent(n)}`,e,r);if(!a.ok)return a;let s=R.safeParse(a.data);return s.success?{ok:!0,data:s.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."}}function B(e,t,n,r,a,s={}){return z(e,t,n,r,a,s)}async function T(e,t,n={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await b(`/repos/${k(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 a=(0,p.E)(r.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}async function M(){let[e]=await (0,a.f)().select().from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).orderBy((0,r.M)(s.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,i.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 C(){let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,n.u)(s.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}async function E(){let e={id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,scannedAt:s.dependencyScans.scannedAt},t=(0,n.b)((0,n.M)(s.githubRepos.goneAt),(0,n.u)(s.githubRepos.archived,!1)),r=await C()?await (0,a.f)().select(e).from(s.githubRepos).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500):await (0,a.f)().selectDistinct(e).from(s.appRepos).innerJoin(s.githubRepos,(0,n.u)(s.githubRepos.id,s.appRepos.repoId)).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500);return(0,p.M)(r)}let O=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function N(e,t){let n=new Date;await (0,a.f)().insert(s.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function L(e){return(0,a.f)().select({id:s.dependencyVulns.id,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,source:s.dependencyVulns.source}).from(s.dependencyVulns).where((0,n.b)((0,n.u)(s.dependencyVulns.repoId,e),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(2e3)}async function P(e,r,i,l={}){let o=()=>({...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),1e4))}),f=async e=>(await N(r.id,{error:O(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),m=r.defaultBranch??"HEAD",h=await j(e,r.fullName,m,o());if(!h.ok)return f(h.error);let g=function(e){for(let t of u.a){let n=e.find(e=>e.name===t.path);if(n)return{path:t.path,kind:t.kind,sha:n.sha}}return null}(h.data),y=h.data.find(e=>"package.json"===e.name)??null,v=g?g.sha:y?`pkg:${y.sha}`:null,[k]=await (0,a.f)().select().from(s.dependencyScans).where((0,n.u)(s.dependencyScans.repoId,r.id)).limit(1),b=new Date;if(!(0,p.U)(k??null,v,b,l.force))return{status:"unchanged"};if(!v){let e=await L(r.id);return e.length&&await (0,a.f)().update(s.dependencyVulns).set({resolvedAt:b}).where((0,n.y)(s.dependencyVulns.id,e.map(e=>e.id))),await N(r.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:b,queriedAt:b,error:null,note:"No package.json or lockfile at the repository root."}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let w=y?await B(e,r.fullName,"package.json",m,262144,o()):null;if(w&&!w.ok)return f(w.error);let A=w?.ok&&w.data?(0,u.b)(w.data):null,$=null,I="package-json",S=null;if(g){if(2e3>i-Date.now())return f("Time budget used before the lockfile was read; the next run tries again.");let t=await B(e,r.fullName,g.path,m,0xf00000,{...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),2e4))});if(!t.ok)return f(t.error);$=t.data?(0,u.D)(g.kind,t.data):null,I=g.kind,$||(S=`${g.path} couldn't be read; the versions come from package.json ranges (approximate).`)}if($){let e=(0,t.m)($,A);$=e.deps,e.stale.length&&(S=[S,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else $=A?(0,u.e)(A):[],I="package-json",S??=g?null:"No lockfile: the versions come from package.json ranges (approximate).";let x=await L(r.id),V=[];if($.length){let e=await (0,c.K)($,{fetch:l.fetch,deadline:i});if(!e.ok)return f(e.error);let t=(0,p.A)(x,!0===l.force),n=await (0,c.J)((0,p.z)($,e.ids,t),{fetch:l.fetch,deadline:i});if(!n.ok)return f(n.error);V=(0,d.i)($,e.ids,n.map,t)}if(i-Date.now()>1500){let t=await T(e,r.fullName,o());t.ok&&"alerts"in t.data?V=(0,p.R)(V,t.data.alerts,$):t.ok&&(S=[S,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let _=(0,p.h)(x,V,(0,u.K)(A)),z=new Date;return await (0,a.f)().transaction(async e=>{for(let t of(_.insert.length&&await e.insert(s.dependencyVulns).values(_.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:z,lastSeenAt:z}))).onConflictDoNothing(),_.update))await e.update(s.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:z}).where((0,n.u)(s.dependencyVulns.id,t.id));_.resolve.length&&await e.update(s.dependencyVulns).set({resolvedAt:z}).where((0,n.b)((0,n.y)(s.dependencyVulns.id,_.resolve),(0,n.M)(s.dependencyVulns.resolvedAt))),await e.insert(s.dependencyScans).values({repoId:r.id,lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}})}),{status:"scanned",vulns:_.insert.length+_.update.length,packages:$.length,note:"package-json"===I?S:null}}async function H(e,t={}){let r=await M();if("error"in r)return{error:r.error};let i=await E(),l={scanned:0,unchanged:0,failed:[],left:0};for(let[n,a]of i.entries()){if(e-Date.now()<4e3){l.left=i.length-n;break}try{let n=await P(r.token,a,e,t);"scanned"===n.status?l.scanned++:"unchanged"===n.status?l.unchanged++:l.failed.push(`${a.fullName}: ${n.error}`)}catch(e){l.failed.push(`${a.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(s.dependencyVulns).where((0,n.b)((0,n.E)(s.dependencyVulns.resolvedAt),(0,n.S)(s.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),l}async function U(e){let[t]=await (0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).limit(1);if(!t)return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let r=await H(e);if("error"in r){let e;return(e=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:r.error}let i=r.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),l=r.failed.length-i.length+(r.left??0);l&&console.info(`deps: ${l} repositor${1===l?"y":"ies"} wait for the next run`);let o=i.slice(0,3);return i.length>3&&o.push(`+${i.length-3} more`),o.length?o.join("; "):null}async function q(e){let t=e.filter(o.f);if(!t.length)return[];let r=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId,error:s.dependencyScans.error}).from(s.appRepos).innerJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.appRepos.repoId)).where((0,n.b)((0,n.y)(s.appRepos.appId,t),(0,n.E)(s.dependencyScans.scannedAt)));if(!r.length)return[];let i=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,severity:s.dependencyVulns.severity,summary:s.dependencyVulns.summary,dev:s.dependencyVulns.dev}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:i.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}))}))}async function W(e){let t=e.filter(o.f),r=new Map;if(!t.length)return r;let i=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,n.y)(s.appRepos.appId,t));if(!i.length)return r;let l=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,vulnId:s.dependencyVulns.vulnId,aliases:s.dependencyVulns.aliases,severity:s.dependencyVulns.severity,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(i.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt),(0,n.u)(s.dependencyVulns.direct,!0),(0,n.E)(s.dependencyVulns.fixedVersion))).limit(2e3);for(let e of i)(0,p.B)(l.filter(t=>t.repoId===e.repoId)).length&&r.set(e.appId,e.repoId);return r}e.s(["R",0,4e4,"o",0,12e3,"e",0,U,"C",0,W,"a",0,q],433609)},111970,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(347540),a=e.i(924924),s=e.i(473283),i=e.i(618916),l=e.i(659846),o=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,a.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,s.f)(t),p=c(r?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>l.f.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,o.N)(c(r?.off))}});async function f(){try{return(0,o.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:a}=(0,o.s)(e),s=[];if(r.length&&s.push(n.B`${i.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),a.length){let e=n.B.join(a.map(e=>n.B`${e}`),n.B`, `);s.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 s.length?(0,t.F)(...s):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),a=e.i(618916);e.i(154491);var s=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]},l=Object.keys(i),o=(e,t)=>"number"==typeof t&&i[e].includes(t);async function u(e){let[n]=await (0,r.f)().select({value:a.settings.value}).from(a.settings).where((0,t.u)(a.settings.key,e)).limit(1);return n?.value??null}let d=async()=>(function(e){let t={...s.f};if(!e||"object"!=typeof e)return t;for(let n of l){let r=e[n];o(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 ${a.settings.value} from ${a.settings} where ${a.settings.key} = ${"sections.off"})`],960049)},662860,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(755776),a=e.i(618916),s=e.i(921991),i=e.i(867274),l=e.i(547499);let o="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,n,r={}){let a;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 s=r.timeoutMs??8e3;try{a=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(s),cache:"no-store",redirect:"manual"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`${o} didn't answer within ${Math.round(s/1e3)} seconds.`:`Couldn't reach the ${o}.`}}if(401===a.status||403===a.status)return{ok:!1,kind:"auth",status:a.status,error:`Supabase rejected the metrics key (${a.status}). Replace it with a current Secret API key.`};if(404===a.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===a.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${o} says there were too many requests.`};if(!a.ok)return{ok:!1,kind:"transient",status:a.status,error:`${o} returned an error (${a.status}).`};let i=await a.text().catch(()=>null);return null===i||i.length>4e6||!/^(#|[A-Za-z_:])/m.test(i)?{ok:!1,kind:"format",error:`${o} answered in a format the console doesn't recognise.`}:{ok:!0,data:i}},key:()=>(0,l.f)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,s,l=d){if(!(0,i.T)(e,u))return null;u=e.getTime();let o=0,f=0;try{for(let{k:i,ref:u,state:d}of(await (0,n.f)().select({k:r.A,ref:a.resources.externalId,state:a.snapshots.state}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).leftJoin(a.snapshots,(0,t.u)(a.snapshots.resourceId,a.resources.id)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt))).limit(20))){let t=s-Date.now()-500;if(t<1e3)break;try{await m(i,u,d,e,Math.min(8e3,t),l)?o++: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:o,failed:f}}async function f(e,a,s){return await (0,n.f)().update(r.A).set({lastTryAt:a,lastError:s.slice(0,300)}).where((0,t.u)(r.A.resourceId,e)),!1}async function m(e,a,l,o,u,d){if("paused"===l)return f(e.resourceId,o,"The project is paused.");let c=(0,s.V)({ciphertext:e.keyCiphertext,iv:e.keyIv},d.key());if(!c)return f(e.resourceId,o,"The stored key can't be read. Add it again.");let p=await d.fetchMetrics(a,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,o,p.error);let m=(0,i.E)(e.latest??null,(0,i.c)((0,i.a)(p.data),a),o);await (0,n.f)().update(r.A).set({latest:m,lastTryAt:o,lastOkAt:o,lastError:null}).where((0,t.u)(r.A.resourceId,e.resourceId));let h=(0,i.b)(o),[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:a.resources.id,name:a.resources.name,latest:r.A.latest}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.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},a=(e,t)=>Math.round(e/t*1e3)/10,s=(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:a(e.accountRowsRead,r.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...n&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:a(e.accountRowsWritten,r.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:a(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 s(e.usageAt,n)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:a(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:a(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:a(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=s(e.statsAt,t);return[...r&&null!=e.monthlyRequests?[{label:"Commands",pct:a(e.monthlyRequests,n.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...r&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:a(e.monthlyBandwidthBytes,n.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:a(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,479301,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 a(e,n){let a=r.exec(e.trim()),s=r.exec(n.trim());return!!a&&!!s&&a[1]===s[1]&&("0"!==a[1]||a[2]===s[2])&&(0,t.f)(n,e)>=0}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));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!a(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 a=[...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])],s=[...e],i=[];for(let[e,r,l]of a){let a=(0,n.Y)(r);if(!a||!(0,n.C)(a))continue;let o=s.filter(t=>t.name===e);!o.length||o.some(e=>(0,t.f)(e.version,a)>=0)||((s=s.filter(t=>t.name!==e)).push({name:e,version:a,dev:o.every(e=>e.dev)&&l}),i.push(e))}return{deps:s,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){for(let n of t){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"}(n);if("all"===t||e.some(e=>t.includes(e)))return n}return null},"J",0,a],90801);let s=/^[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&&s.test(e)],479301)},891262,7494,267485,e=>{var t=e.i(442473);let n={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function r(e){return[...e].sort((e,t)=>n[t.severity]-n[e.severity]||(e.id<t.id?-1:+(e.id>t.id)))}e.s(["t",0,function(e,t,r){let a=new Set((t?.findings??[]).map(e=>e.id));if("vulnerable"===r.status&&r.findings.length>0){let t;if(r.findings.every(e=>a.has(e.id)))return null;let s=r.findings.reduce((e,t)=>n[t.severity]>n[e]?t.severity:e,"UNKNOWN");return{kind:n[s]>=n.HIGH?"err":"warn",message:`${e} runs Next.js ${r.version} with ${t=r.findings.length,`${t} known vulnerabilit${1===t?"y":"ies"}`} (${s.toLowerCase()})`,detail:r.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===r.status&&a.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${r.version})`,detail:null}:null},"I",0,r],7494);var a=e.i(250474);let s=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>Array.isArray(e)?e:[],o=e=>"string"==typeof e&&e?e:null,u=e=>i(e.package)&&"next"===e.package.name&&"npm"===e.package.ecosystem,d="OSV.dev sent an answer we couldn't read";async function c(e,n={}){let m=n.timeoutMs??1e4,h=n.maxBytes??2097152,g=AbortSignal.timeout(m),y=(0,t.X)(g),v=`OSV.dev didn't answer within ${f(m)}`,k=[],b=null;for(let r=0;r<3;r++){var w;let r,a;try{r=await (n.fetch??fetch)("https://api.osv.dev/v1/query",{method:"POST",headers:{"content-type":"application/json","user-agent":"OpsConsole-Security/1.0 (+https://west-solutions.web.id)"},body:JSON.stringify({package:{name:"next",ecosystem:"npm"},version:e,...b?{page_token:b}:{}}),redirect:"error",cache:"no-store",signal:g})}catch(e){return{ok:!1,error:p(e)?v:"Couldn't reach OSV.dev"}}if(!r.ok)return await r.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${r.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(r,h,y);if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};a=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:p(e)?v:d}}let s=i(w=a)?void 0===w.vulns?[]:Array.isArray(w.vulns)?w.vulns:null:null;if(null===s)return{ok:!1,error:d};if(k.push(...s),!(b=i(a)?o(a.next_page_token):null))break}let A=function(e,t){let n=[],d=0;for(let r of e){if(!i(r))continue;let e=o(r.id);e&&(d++,r.withdrawn||n.push({id:e.slice(0,64),cve:l(r.aliases).map(o).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(o(r.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=i(e.database_specific)?o(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":s.includes(t??"")?t:"UNKNOWN"}(r),fixed:function(e,t){let n=null;for(let r of l(e))if(i(r)&&u(r))for(let e of l(r.ranges)){if(!i(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let r=null;for(let s of l(e.events)){if(!i(s))continue;let e=o(s.introduced),l=o(s.fixed);e?r=e:l&&null!==r?((0,a.f)(t,r)>=0&&0>(0,a.f)(t,l)&&(null===n||0>(0,a.f)(l,n))&&(n=l),r=null):(o(s.last_affected)||o(s.limit))&&(r=null)}}return n}(r.affected,t)}))}return e.length>0&&0===d?null:r(n).slice(0,50)}(k,e);return null===A?{ok:!1,error:d}:{ok:!0,findings:A}}let p=e=>e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name),f=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`;e.s(["y",0,c,"t",0,p],267485);var m=e.i(804581);let h="OpsConsole-Deps/1.0 (+https://west-solutions.web.id)";async function g(e,t,n,r){let a=r.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(a);return v(e,{method:"POST",headers:{"content-type":"application/json","user-agent":h},body:JSON.stringify(t),signal:s},n,s,r)}async function y(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(r,8e3));return v(e,{method:"GET",headers:{"user-agent":h},signal:a},t,a,n)}async function v(e,n,r,a,s){let i;try{i=await (s.fetch??fetch)(e,{...n,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:p(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)(a));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:p(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function k(e,t){let n=[];for(let r of(0,m.f)(e)){let e=await g(m.n,r,4194304,t);if(!e.ok)return e;let a=(0,m.j)(e.body,r.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...a)}return{ok:!0,ids:n}}async function b(e,t){let n=[...new Set(e)].filter(m.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,a=null;for(let e=0;e<n.length&&!a;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await y(`${m.W}${encodeURIComponent(e)}`,1048576,t),s=n.ok?(0,m.O)(n.body):null;s?r.set(e,s):a??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return a?{ok:!1,error:a}:{ok:!0,map:r}}e.s(["J",0,b,"K",0,k],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:[],a=e=>"string"==typeof e&&e?e:null,s=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),i={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"},l=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",o=(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,s,i,l=new Map){let u=[];return e.forEach((e,d)=>{for(let c of s[d]??[]){let s=l.get(`${e.name}@${e.version}|${c}`);if(s){u.push({...s,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,s,i){let l=null;for(let u of r(e))if(n(u)&&o(u,s))for(let e of r(u.ranges)){if(!n(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let s=null;for(let o of r(e.events)){if(!n(o))continue;let e=a(o.introduced),r=a(o.fixed);e?s=e:r&&null!==s?((0,t.f)(i,s)>=0&&0>(0,t.f)(i,r)&&(null===l||0>(0,t.f)(r,l))&&(l=r),s=null):(a(o.last_affected)||a(o.limit))&&(s=null)}}return l}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),u},"G",0,s,"O",0,function(e){if(!n(e))return null;let t=a(e.id);return t&&s(t)?{id:t,aliases:[...new Set(r(e.aliases).map(a).filter(e=>!!e&&s(e)))].slice(0,20),summary:(a(e.summary)??a(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=n(e.database_specific)?a(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=a(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 a={N:.85,A:.62,L:.55,P:.2},s={L:.77,H:.44},i={N:.85,R:.62},l={H:.56,L:.22,N:0},o="C"===r.S,u=o?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![a[r.AV],s[r.AC],u[r.PR],i[r.UI],l[r.C],l[r.I],l[r.A]].every(e=>"number"==typeof e)||"U"!==r.S&&"C"!==r.S)return null;let d=1-(1-l[r.C])*(1-l[r.I])*(1-l[r.A]),c=o?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*a[r.AV]*s[r.AC]*u[r.PR]*i[r.UI];return c<=0?0:(t=Math.round(1e5*Math.min(o?1.08*(c+p):c+p,10)))%1e4==0?t/1e5:(Math.floor(t/1e4)+1)/10}(a(t.score)):null;if(null!==e)return l(e)}return(a(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!a(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)?a(e.id):null).filter(e=>!!e&&s(e)):[]):null}])},413230,e=>{var t=e.i(250474),n=e.i(32391),r=e.i(804581);let a=["critical","high","moderate","low","unknown"],s=e=>a.indexOf(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>"string"==typeof e&&e?e:null,o={critical:"critical",high:"high",medium:"moderate",moderate:"moderate",low:"low"},u=e=>`${e.package}@${e.installedVersion}|${e.vulnId}`;e.s(["g",0,function(e){let t=e.filter(e=>!e.dev);return t.some(e=>{let t;return"critical"===e.severity||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))})?"critical":t.some(e=>"high"===e.severity)?"warning":null},"L",0,function(e){let t=e.filter(e=>{let t;return!e.dev&&(s(e.severity)<=s("high")||(t=e.summary,/\bRCE\b|remote code execution/i.test(t)))}),n=[...t].sort((e,t)=>s(e.severity)-s(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 a=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),l=["critical","high","moderate","low","unknown"].filter(e=>i[e]>0).map(e=>`${i[e]} ${e}`).join(", "),o=`${a} vulnerable package${1===a?"":"s"} (${l}): ${r.slice(0,4).join(", ")}${r.length>4?`, +${r.length-4} more`:""}.`;return o.length>300?`${o.slice(0,299)}…`:o},"z",0,function(e,t,n){let r=new Set;return e.forEach((e,a)=>{for(let s of t[a]??[])n.has(`${e.name}@${e.version}|${s}`)||r.add(s)}),[...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 a=[...e];for(let e of n)if(!a.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 a=(0,t.f)(e,r[2]);return"<"===r[1]?a<0:"<="===r[1]?a<=0:">"===r[1]?a>0:">="===r[1]?a>=0:0===a})}(n.version,e.range)&&a.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 a},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let a of e){if(!i(a)||"open"!==a.state||!i(a.dependency)||!i(a.security_advisory))continue;let e=i(a.dependency.package)&&"npm"===a.dependency.package.ecosystem?l(a.dependency.package.name):null,s=l(a.security_advisory.ghsa_id);if(!e||!(0,n.L)(e)||!s||!(0,r.G)(s))continue;let u=i(a.security_vulnerability)?a.security_vulnerability:{},d=i(u.first_patched_version)?l(u.first_patched_version.identifier):null,c=l(a.security_advisory.cve_id);t.push({package:e,ghsaId:s,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(l(a.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,r.h),severity:o[(l(u.severity)??l(a.security_advisory.severity)??"").toLowerCase()]??"unknown",range:l(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===a.dependency.scope})}return t},"h",0,function(e,t,n){let a=new Map(e.map(e=>[u(e),e])),s=new Set,i={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(s.has(t))continue;s.add(t);let l={...e,aliases:e.aliases.slice(0,r.S),summary:e.summary.slice(0,r.h),direct:n.has(e.package)},o=a.get(t);o?i.update.push({id:o.id,severity:l.severity,fixedVersion:l.fixedVersion,summary:l.summary,aliases:l.aliases,dev:l.dev,direct:l.direct}):i.insert.push(l)}return i.resolve=e.filter(e=>!s.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;for(let r of e){if(!r.direct||!r.fixedVersion||0>=(0,t.f)(r.fixedVersion,r.installedVersion))continue;let e=n.get(r.package)??{package:r.package,to:r.fixedVersion,vulnIds:[],cves:[],severity:r.severity};for(let n of((0,t.f)(r.fixedVersion,e.to)>0&&(e.to=r.fixedVersion),e.vulnIds.includes(r.vulnId)||e.vulnIds.push(r.vulnId),r.aliases))/^CVE-/.test(n)&&!e.cves.includes(n)&&e.cves.push(n);s(r.severity)<s(e.severity)&&(e.severity=r.severity),n.set(r.package,e)}return[...n.values()].sort((e,t)=>s(e.severity)-s(t.severity)||(e.package<t.package?-1:1))}])},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 a(e){return Array.isArray(e)?t.filter(r=>"string"==typeof r&&t.includes(r)&&n.includes(r)&&e.includes(r)):[]}let s={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",CredentialExpiring:"account",CollectorStale:null},i=/^Log/;e.s(["D",0,r,"O",0,(e,t,n)=>{let a;if(!e.size)return!1;let l="account"===(a=s[t])?n?r[n]??null:null:void 0!==a?a:i.test(t)?"hosting":null;return null!==l&&e.has(l)},"N",0,a,"s",0,function(e){return{ruleKeys:Object.entries(s).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(a(e))])},250474,32391,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),a=t(n);for(let e=0;e<3;e++)if(r.nums[e]!==a.nums[e])return r.nums[e]-a.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,a=/^\d+$/.test(t[n])?Number(t[n]):null;if(null!==r&&null!==a){if(r!==a)return r-a}else if(null!==r||null!==a)return null!==r?-1:1;else if(e[n]!==t[n])return e[n]<t[n]?-1:1}return 0}(r.pre,a.pre)}],250474);let n=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,r=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,a=e=>e.length<=214&&n.test(e),s=e=>e.length<=100&&r.test(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function l(e){let t=new Map;for(let n of e){if(!a(n.name)||!s(n.version))continue;let e=`${n.name}@${n.version}`,r=t.get(e);if(r?r.dev=r.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 u=e=>{let t=e.lastIndexOf("node_modules/");return t<0?null:e.slice(t+13)||null},d=e=>e.trim().replace(/^['"]|['"]$/g,""),c=e=>i(e)?Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1])):{};function p(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,a]of Object.entries(e)){let e=p(a);e&&t.push({name:r,version:e,dev:n})}};return n(e.dependencies,!1),n(e.optionalDependencies,!1),n(e.devDependencies,!0),l(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,a,"C",0,s,"Y",0,p,"D",0,function(e,t){switch(e){case"npm":let n=o(t);if(!i(n))return null;let r=[];if(i(n.packages)){for(let[e,t]of Object.entries(n.packages)){if(!e||!i(t)||!0===t.link||"string"!=typeof t.version)continue;let n="string"==typeof t.name&&e.includes("node_modules/")?t.name:u(e);n&&r.push({name:n,version:t.version,dev:!0===t.dev})}return l(r)}if(i(n.dependencies)){let e=(t,n)=>{if(!(n>40))for(let[a,s]of Object.entries(t))i(s)&&("string"==typeof s.version&&r.push({name:a,version:s.version,dev:!0===s.dev}),i(s.dependencies)&&e(s.dependencies,n+1))};return e(n.dependencies,0),l(r)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let n=[],r=!1,s=null;for(let e of t){if(/^\S/.test(e)){r=/^packages:\s*$/.test(e),s=null;continue}if(!r)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=d(e).replace(/^\//,""),n=t.indexOf("(");n>0&&(t=t.slice(0,n));let r=t.lastIndexOf("@");if(r>0&&!t.slice(r+1).includes("/")&&a(t.slice(0,r)))return{name:t.slice(0,r),version:t.slice(r+1).split("_")[0]};let s=t.lastIndexOf("/");return s<=0?null:{name:t.slice(0,s),version:t.slice(s+1).split("_")[0]}}(t[1]);(s=e?{...e,dev:!1}:null)&&n.push(s);continue}s&&/^ {4}dev: true\s*$/.test(e)&&(s.dev=!0)}return l(n)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),n=[],r=null,a=!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=d(e),n=t.indexOf("@",+!!t.startsWith("@"));return n>0?t.slice(0,n):null}(t.split(/,\s*/)[0]),a=!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 a?l(n):null}(t);case"bun":let s=o(t.replace(/,(\s*[}\]])/g,"$1"));if(!i(s)||!i(s.packages))return null;let c=[];for(let e of Object.values(s.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 l(c)}},"b",0,function(e){let t=o(e);return i(t)?{dependencies:c(t.dependencies),devDependencies:c(t.devDependencies),optionalDependencies:c(t.optionalDependencies)}:null}],32391)}]})();
5
+
6
+ //# sourceMappingURL=src_lib_10_w0ihgmx4e6._.js.map
@@ -1,4 +1,4 @@
1
- (()=>{"use strict";module.exports=[751762,e=>{e.s(["f",0,function(e){let t=e instanceof Error&&e.cause instanceof Error?e.cause:e,r=(t instanceof Error?t.message:"").split("\n")[0].replace(/Bearer\s+\S+/gi,"Bearer [hidden]").trim()||"failed";return r.length>200?`${r.slice(0,200)}…`:r}])},381725,857897,36995,e=>{var t=e.i(875225),r=e.i(349129),s=e.i(260338),a=e.i(518899),o=e.i(924924),n=e.i(618916),l=e.i(442473),i=e.i(921991),u=e.i(656083),d=e.i(547499),c=e.i(911191),h=e.i(666680),p=e.i(971724),g=e.i(455744),m=e.i(469755),f=e.i(180473),w=e.i(105954),y=e.i(562810);e.s(["z",0,y],857897);var y=y,I=e.i(206033);let b=["debug","info","warning","error","fatal","trace"],v=p.z.object({rows:g.z.array(m.z.unknown()).catch([]),hasMoreRows:f.z.boolean().catch(!1)}),M=p.z.object({requestId:w.z.string().min(1),timestamp:w.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),y.NEVER):new Date(r)}),deploymentId:w.z.string().nullish().catch(null),requestMethod:w.z.string().nullish().catch(null),requestPath:w.z.string().nullish().catch(null),statusCode:I.z.number().nullish().catch(null),logs:g.z.array(m.z.unknown()).nullish().catch(null),events:g.z.array(m.z.unknown()).nullish().catch(null)}),q=p.z.object({level:w.z.string().nullish().catch(null),message:w.z.string().nullish().catch(null)}),N=p.z.object({source:w.z.string().nullish().catch(null)}),L=(e,t)=>(0,h.createHash)("sha1").update(`${e}
2
- ${t}`).digest("hex").slice(0,8),$=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function z(e,t,r,s){let a=(s.now??new Date).getTime(),o=Math.max(s.since.getTime(),a-864e5),n=s.until.getTime();if(o>=n)return{ok:!0,lines:[],more:!1};let i=s.maxRows??300,u=s.levels?new Set(s.levels):null,d=e=>!u||u.has(e),c=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],h=s.fetch??fetch,p=new AbortController,g=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,f=(0,l.X)(m),w=()=>p.signal.aborted&&!s.signal?.aborted?$("transient","Vercel's log history didn't answer in time."):$("transient","Reading Vercel's log history was cancelled."),y=[],I=!1;try{for(let a=0;a<3;a++){let l,u=new URLSearchParams({projectId:r,ownerId:t,page:String(a),startDate:String(o),endDate:String(n)});s.deploymentId&&u.set("deploymentId",s.deploymentId),s.environment&&u.set("environment",s.environment),c.length&&u.set("level",c.join(","));let p=null;try{let t=await Promise.race([h(`https://vercel.com/api/logs/request-logs?${u}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),f]);if(401===t.status||403===t.status)p=$("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=$("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=$("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{l=await Promise.race([t.json(),f])}catch(e){if(m.aborted)throw e;p=$("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=$("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?w():$("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(l),t=e.success&&l&&"object"==typeof l?Object.keys(l):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=M.safeParse(e);if(!s.success)return[];let a=s.data,o={at:a.timestamp,requestMethod:a.requestMethod??null,requestPath:a.requestPath??null,statusCode:a.statusCode??null,deploymentId:a.deploymentId??null,source:(a.events??[]).map(e=>N.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},n=[],l=new Map;for(let e of a.logs??[]){let r=q.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":b.includes(t)?t:"info"}(r.data.level),i=L(s,r.data.message),u=l.get(i)??0;l.set(i,u+1),t(s)&&n.push({rowId:`${a.requestId}:${i}${u?`#${u}`:""}`,level:s,message:r.data.message,...o})}if(null!=a.statusCode&&a.statusCode>=500&&t("error")&&!n.some(e=>"error"===e.level||"fatal"===e.level)&&n.push({rowId:`${a.requestId}:status`,level:"error",message:`${a.requestMethod??"GET"} ${a.requestPath??"/"} → ${a.statusCode}`,...o}),r&&0===n.length){let e=a.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&n.push({rowId:`${a.requestId}:request`,level:r,message:`${a.requestMethod??"GET"} ${a.requestPath??"/"}${e>0?` → ${e}`:""}`,...o})}return n}(t,d,s.requests));if(!(I=e.data.hasMoreRows)||y.length>=i)break}else p=$("format","Vercel's log history answered in a format the console doesn't recognise.");else p=$("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===a)return p;I=!0;break}}}finally{clearTimeout(g),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>i&&(y.splice(0,y.length-i),I=!0),{ok:!0,lines:y,more:I}}e.s(["f",0,z],36995);var A=e.i(46574);let k=["warning","error","fatal"],P="logs_read_cursor";async function S(e){let[r]=await (0,o.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))).limit(1),s=r?(0,i.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,d.f)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,o.f)().select({appId:n.resources.id,appName:n.resources.name,projectId:n.resources.externalId,meta:n.resources.meta,deploymentId:n.deployments.externalId}).from(n.deployments).innerJoin(n.resources,(0,t.u)(n.resources.id,n.deployments.resourceId)).where((0,t.b)((0,t.u)(n.deployments.isCurrent,!0),(0,t.u)(n.resources.accountId,r.id),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt),...e?[(0,t.u)(n.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let D=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,c.l)((0,c.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,c.n)(t.requestPath?(0,c.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function j(e,r,i){let d,[c]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,"logs.disabled")).limit(1);if(c?.value===!0)return;let h=await S(null);if(!h.length)return;let p=(0,A.q)((0,A.m)(e)),g=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,n:a.B`count(*)::int`}).from(n.storedLogs).where((0,t.b)((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId)),(0,t.B)(n.storedLogs.at,p))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,at:(0,s.f)(n.storedLogs.at)}).from(n.storedLogs).where((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.at])),[f]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,P)).limit(1),w=(d=f?.value)&&"object"==typeof d&&!Array.isArray(d)?Object.fromEntries(Object.entries(d).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,I=await (0,l.P)(h,3,t=>{if(Date.now()+8500>r)return Promise.resolve(null);let s=[m.get(t.appId)?.getTime(),w[t.appId]?Date.parse(w[t.appId]):void 0].filter(e=>void 0!==e),a=new Date(Math.max(s.length?Math.max(...s)-3e5:y,y));return z(t.token,t.teamId,t.projectId,{since:a,until:e,now:e,levels:k,environment:"production",maxRows:300})}),b=h.map((e,t)=>{let r=I[t];return r?r.ok?(r.more&&i.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>k.includes(e.level))):(i.push(`logs/${e.appName}: ${r.error}`),[]):[]}),v=b.flat().map(e=>e.rowId),M=new Set(v.length?(await (0,o.f)().select({rowId:n.storedLogs.rowId}).from(n.storedLogs).where((0,t.y)(n.storedLogs.rowId,v))).map(e=>e.rowId):[]),q=[];for(let[e,t]of h.entries()){let r=b[e].filter(e=>!M.has(e.rowId));if(!r.length)continue;let s=g.get(t.appId)??0,a=Math.max(0,1e3-s),l=(a>=r.length?r:r.slice(r.length-a)).map(e=>D(t,e));l.length&&await (0,o.f)().insert(n.storedLogs).values(l).onConflictDoNothing({target:n.storedLogs.rowId}),s+r.length>=1e3&&q.push(t.appId)}let N=h.filter((e,t)=>I[t]?.ok);if(N.length){let t={};for(let e of h)w[e.appId]&&(t[e.appId]=w[e.appId]);for(let r of N)t[r.appId]=e.toISOString();await (0,o.f)().insert(n.settings).values({key:P,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})}await (0,u.f)(q.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}async function C(e,s={}){let a=new Date(e.getTime()-(s.sinceMs??6048e5));return(await (0,o.f)().select({l:n.storedLogs,app:n.resources.name}).from(n.storedLogs).innerJoin(n.resources,(0,t.u)(n.resources.id,n.storedLogs.resourceId)).where((0,t.b)((0,t.B)(n.storedLogs.at,a),...s.appId?[(0,t.u)(n.storedLogs.resourceId,s.appId)]:[])).orderBy((0,r.A)(n.storedLogs.at)).limit(500)).map(({l:e,app:t})=>({id:e.rowId,at:e.at,level:e.level,app:t,method:e.requestMethod,path:e.requestPath,status:e.statusCode,message:e.message})).reverse()}e.s(["M",0,C,"g",0,S,"_",0,j],381725)},943816,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let a=t(r.total24h),o=null===r.visitors24h?null:t(r.visitors24h);if(null===a||null===o&&null!==r.visitors24h)return null;let n=36e5*Math.floor(s/36e5),l=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let a=36e5*Math.floor(r/36e5);l.set(a,(l.get(a)??0)+s)}return{enabled:!0,total:a,visitors:o,hours:Array.from({length:24},(e,t)=>{let r=n-(23-t)*36e5;return{at:new Date(r),views:l.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])}]})();
1
+ (()=>{"use strict";module.exports=[751762,e=>{e.s(["f",0,function(e){let t=e instanceof Error&&e.cause instanceof Error?e.cause:e,r=(t instanceof Error?t.message:"").split("\n")[0].replace(/Bearer\s+\S+/gi,"Bearer [hidden]").trim()||"failed";return r.length>200?`${r.slice(0,200)}…`:r}])},381725,857897,36995,e=>{var t=e.i(875225),r=e.i(349129),s=e.i(260338),a=e.i(518899),o=e.i(924924),n=e.i(618916),l=e.i(442473),i=e.i(921991),u=e.i(656083),d=e.i(547499),c=e.i(911191),h=e.i(666680),p=e.i(971724),g=e.i(455744),m=e.i(469755),f=e.i(180473),w=e.i(105954),y=e.i(562810);e.s(["z",0,y],857897);var y=y,I=e.i(206033);let b=["debug","info","warning","error","fatal","trace"],v=p.z.object({rows:g.z.array(m.z.unknown()).catch([]),hasMoreRows:f.z.boolean().catch(!1)}),M=p.z.object({requestId:w.z.string().min(1),timestamp:w.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),y.NEVER):new Date(r)}),deploymentId:w.z.string().nullish().catch(null),requestMethod:w.z.string().nullish().catch(null),requestPath:w.z.string().nullish().catch(null),statusCode:I.z.number().nullish().catch(null),logs:g.z.array(m.z.unknown()).nullish().catch(null),events:g.z.array(m.z.unknown()).nullish().catch(null)}),N=p.z.object({level:w.z.string().nullish().catch(null),message:w.z.string().nullish().catch(null)}),q=p.z.object({source:w.z.string().nullish().catch(null)}),L=(e,t)=>(0,h.createHash)("sha1").update(`${e}
2
+ ${t}`).digest("hex").slice(0,8),$=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function z(e,t,r,s){let a=(s.now??new Date).getTime(),o=Math.max(s.since.getTime(),a-864e5),n=s.until.getTime();if(o>=n)return{ok:!0,lines:[],more:!1};let i=s.maxRows??300,u=s.levels?new Set(s.levels):null,d=e=>!u||u.has(e),c=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],h=s.fetch??fetch,p=new AbortController,g=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,f=(0,l.X)(m),w=()=>p.signal.aborted&&!s.signal?.aborted?$("transient","Vercel's log history didn't answer in time."):$("transient","Reading Vercel's log history was cancelled."),y=[],I=!1;try{for(let a=0;a<3;a++){let l,u=new URLSearchParams({projectId:r,ownerId:t,page:String(a),startDate:String(o),endDate:String(n)});s.deploymentId&&u.set("deploymentId",s.deploymentId),s.environment&&u.set("environment",s.environment),c.length&&u.set("level",c.join(","));let p=null;try{let t=await Promise.race([h(`https://vercel.com/api/logs/request-logs?${u}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),f]);if(401===t.status||403===t.status)p=$("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=$("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=$("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{l=await Promise.race([t.json(),f])}catch(e){if(m.aborted)throw e;p=$("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=$("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?w():$("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(l),t=e.success&&l&&"object"==typeof l?Object.keys(l):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=M.safeParse(e);if(!s.success)return[];let a=s.data,o={at:a.timestamp,requestMethod:a.requestMethod??null,requestPath:a.requestPath??null,statusCode:a.statusCode??null,deploymentId:a.deploymentId??null,source:(a.events??[]).map(e=>q.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},n=[],l=new Map;for(let e of a.logs??[]){let r=N.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":b.includes(t)?t:"info"}(r.data.level),i=L(s,r.data.message),u=l.get(i)??0;l.set(i,u+1),t(s)&&n.push({rowId:`${a.requestId}:${i}${u?`#${u}`:""}`,level:s,message:r.data.message,...o})}if(null!=a.statusCode&&a.statusCode>=500&&t("error")&&!n.some(e=>"error"===e.level||"fatal"===e.level)&&n.push({rowId:`${a.requestId}:status`,level:"error",message:`${a.requestMethod??"GET"} ${a.requestPath??"/"} → ${a.statusCode}`,...o}),r&&0===n.length){let e=a.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&n.push({rowId:`${a.requestId}:request`,level:r,message:`${a.requestMethod??"GET"} ${a.requestPath??"/"}${e>0?` → ${e}`:""}`,...o})}return n}(t,d,s.requests));if(!(I=e.data.hasMoreRows)||y.length>=i)break}else p=$("format","Vercel's log history answered in a format the console doesn't recognise.");else p=$("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===a)return p;I=!0;break}}}finally{clearTimeout(g),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>i&&(y.splice(0,y.length-i),I=!0),{ok:!0,lines:y,more:I}}e.s(["f",0,z],36995);var A=e.i(218331);let k=["warning","error","fatal"],P="logs_read_cursor";async function S(e){let[r]=await (0,o.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))).limit(1),s=r?(0,i.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,d.f)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,o.f)().select({appId:n.resources.id,appName:n.resources.name,projectId:n.resources.externalId,meta:n.resources.meta,deploymentId:n.deployments.externalId}).from(n.deployments).innerJoin(n.resources,(0,t.u)(n.resources.id,n.deployments.resourceId)).where((0,t.b)((0,t.u)(n.deployments.isCurrent,!0),(0,t.u)(n.resources.accountId,r.id),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt),...e?[(0,t.u)(n.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let D=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,c.l)((0,c.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,c.n)(t.requestPath?(0,c.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function j(e,r,i){let d,[c]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,"logs.disabled")).limit(1);if(c?.value===!0)return;let h=await S(null);if(!h.length)return;let p=(0,A.y)((0,A.x)(e)),g=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,n:a.B`count(*)::int`}).from(n.storedLogs).where((0,t.b)((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId)),(0,t.B)(n.storedLogs.at,p))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,at:(0,s.f)(n.storedLogs.at)}).from(n.storedLogs).where((0,t.y)(n.storedLogs.resourceId,h.map(e=>e.appId))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.at])),[f]=await (0,o.f)().select().from(n.settings).where((0,t.u)(n.settings.key,P)).limit(1),w=(d=f?.value)&&"object"==typeof d&&!Array.isArray(d)?Object.fromEntries(Object.entries(d).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,I=await (0,l.P)(h,3,t=>{if(Date.now()+8500>r)return Promise.resolve(null);let s=[m.get(t.appId)?.getTime(),w[t.appId]?Date.parse(w[t.appId]):void 0].filter(e=>void 0!==e),a=new Date(Math.max(s.length?Math.max(...s)-3e5:y,y));return z(t.token,t.teamId,t.projectId,{since:a,until:e,now:e,levels:k,environment:"production",maxRows:300})}),b=h.map((e,t)=>{let r=I[t];return r?r.ok?(r.more&&i.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>k.includes(e.level))):(i.push(`logs/${e.appName}: ${r.error}`),[]):[]}),v=b.flat().map(e=>e.rowId),M=new Set(v.length?(await (0,o.f)().select({rowId:n.storedLogs.rowId}).from(n.storedLogs).where((0,t.y)(n.storedLogs.rowId,v))).map(e=>e.rowId):[]),N=[];for(let[e,t]of h.entries()){let r=b[e].filter(e=>!M.has(e.rowId));if(!r.length)continue;let s=g.get(t.appId)??0,a=Math.max(0,1e3-s),l=(a>=r.length?r:r.slice(r.length-a)).map(e=>D(t,e));l.length&&await (0,o.f)().insert(n.storedLogs).values(l).onConflictDoNothing({target:n.storedLogs.rowId}),s+r.length>=1e3&&N.push(t.appId)}let q=h.filter((e,t)=>I[t]?.ok);if(q.length){let t={};for(let e of h)w[e.appId]&&(t[e.appId]=w[e.appId]);for(let r of q)t[r.appId]=e.toISOString();await (0,o.f)().insert(n.settings).values({key:P,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})}await (0,u.f)(N.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}async function C(e,s={}){let a=new Date(e.getTime()-(s.sinceMs??6048e5));return(await (0,o.f)().select({l:n.storedLogs,app:n.resources.name}).from(n.storedLogs).innerJoin(n.resources,(0,t.u)(n.resources.id,n.storedLogs.resourceId)).where((0,t.b)((0,t.B)(n.storedLogs.at,a),...s.appId?[(0,t.u)(n.storedLogs.resourceId,s.appId)]:[])).orderBy((0,r.A)(n.storedLogs.at)).limit(500)).map(({l:e,app:t})=>({id:e.rowId,at:e.at,level:e.level,app:t,method:e.requestMethod,path:e.requestPath,status:e.statusCode,message:e.message})).reverse()}e.s(["M",0,C,"g",0,S,"_",0,j],381725)},943816,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let a=t(r.total24h),o=null===r.visitors24h?null:t(r.visitors24h);if(null===a||null===o&&null!==r.visitors24h)return null;let n=36e5*Math.floor(s/36e5),l=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let a=36e5*Math.floor(r/36e5);l.set(a,(l.get(a)??0)+s)}return{enabled:!0,total:a,visitors:o,hours:Array.from({length:24},(e,t)=>{let r=n-(23-t)*36e5;return{at:new Date(r),views:l.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])}]})();
3
3
 
4
4
  //# sourceMappingURL=src_lib_10vqn6q0h8kls._.js.map
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[61926,t=>{let e=t=>t?t.getTime():null;function r(t,e){return!t||"object"!=typeof t||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(t=>"string"==typeof t[1]&&new Date(t[1]).getTime()>e.getTime()))}t.s(["Q",0,function(t,e,r,n=new Set){let a=new Set(r.map(t=>`${t.resourceId}/${t.id}`));return t.flatMap(t=>{let r=e.get(t.externalId);return!r||n.has(r)||a.has(`${t.id}/${r}`)?[]:[{appId:t.id,deploymentId:r}]})},"E",0,function(t,r){return!t||t.state!==r.state||t.target!==r.target||t.branch!==r.branch||t.commitSha!==r.commitSha||t.commitMessage!==r.commitMessage||t.source!==r.source||t.url!==r.url||e(t.buildingAt)!==e(r.buildingAt)||e(t.readyAt)!==e(r.readyAt)},"Y",0,function(t,e,n){let a=new Date(n.getTime()+216e5).toISOString();return{...r(t,n),...Object.fromEntries(e.map(t=>[t,a]))}},"K",0,function(t){try{return new URL(t).pathname}catch{return"/"}},"a",0,function(t,e){let r=[...new Map(t.map(t=>[t.id,t])).values()].sort((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()),n=e??r[0]?.id??null,a=r.findIndex(t=>t.id===n);return{currentId:n,previousId:a>=0?r[a+1]?.id??null:null}},"S",0,(t,e)=>new Set(Object.keys(r(t,e)))])},195191,t=>{var e=t.i(218331);function r(t,e){let r=Math.max(0,e.getTime()-t.getTime());return r<6e4?"now":r<36e5?`${Math.floor(r/6e4)} min ago`:r<864e5?`${Math.floor(r/36e5)} h ago`:`${Math.floor(r/864e5)} d ago`}t.s(["m",0,function(t,e){for(let t of e)try{let e=new URL(t);if("https:"!==e.protocol&&"http:"!==e.protocol||!e.host)continue;return e.host}catch{}return`${t}.vercel.app`},"F",0,function(t){try{let e=new URL(t);return`${e.host}${e.pathname}`}catch{return t}},"$",0,function(t,n){if(!t)return"—";if("building"===t.state)return`building ${function(t){let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;let r=Math.floor(e/60);return r<60?`${r}m ${String(e%60).padStart(2,"0")}s`:`${Math.floor(r/60)}h ${String(r%60).padStart(2,"0")}m`}(n.getTime()-(t.buildingAt??t.createdAt).getTime())}`;let a=t.readyAt??t.createdAt;return"error"===t.state?`failed ${(0,e.m)(a,n)?(0,e.U)(a):r(a,n)}`:"canceled"===t.state?`canceled ${r(a,n)}`:r(a,n)},"C",0,t=>null===t?"—":`${(Math.floor(100*t+1e-6)/100).toFixed(2)}%`,"_",0,t=>t?t.slice(0,7):"—"])}]})();
2
+
3
+ //# sourceMappingURL=src_lib_13g9xjx8ci00z._.js.map