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,4 +1,4 @@
1
- module.exports=[612478,814964,e=>{"use strict";var t=e.i(875225),r=e.i(349129),s=e.i(924924),n=e.i(618916),a=e.i(727028),o=e.i(298397);let l=["January","February","March","April","May","June","July","August","September","October","November","December"];function i(e){let t=new Date(e.getTime()+252e5);return`${t.getUTCFullYear()}-${String(t.getUTCMonth()+1).padStart(2,"0")}`}function u(e){let[t,r]=e.split("-").map(Number);return{start:new Date(Date.UTC(t,r-1,1)-252e5),end:new Date(Date.UTC(t,r,1)-252e5)}}function c(e){let[t,r]=e.split("-").map(Number);return 1===r?`${t-1}-12`:`${t}-${String(r-1).padStart(2,"0")}`}function d(e){if(!e)return"";let t=new Date(e.getTime()+252e5),r=e=>String(e).padStart(2,"0");return`${t.getUTCFullYear()}-${r(t.getUTCMonth()+1)}-${r(t.getUTCDate())} ${r(t.getUTCHours())}:${r(t.getUTCMinutes())}`}let p=(e,t)=>e>0?Math.round((e-t)/e*1e5)/1e3:"",m=e=>{if(!e.length)return null;let t=[...e].sort((e,t)=>e-t),r=Math.floor(t.length/2);return t.length%2?t[r]:Math.round((t[r-1]+t[r])/2)},f=e=>e.reduce((e,t)=>e+t,0),h=e=>"production"===e.target,g=e=>"ERROR"===e.state,y={supabase_project:"Supabase",neon_project:"Neon",firestore:"Firebase"};function b(e,t){if(!e)return"";let r=Date.parse(e);return Number.isFinite(r)?Math.floor((r-t.getTime())/864e5):""}let k=e=>null===e?"":Math.round(e/1048576*10)/10;function v(e){if(null===e)return"";if("number"==typeof e||"boolean"==typeof e)return String(e);let t=/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return/[",\r\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t}let w=["record","at","subject","resource_id","checks","failures","p50_ms","p95_ms","max_ms","status_5xx","maintenance","type","kind","reason","count","message","detail"];e.s(["R",0,"Watchbell backups","C",0,"Watchpost backups","O",0,["Overview","Applications","Incidents","Databases","Domains"],"m",0,function(e){let{start:t,end:r}=u(e.month),s=e.partial&&e.generatedAt<r?e.generatedAt:r,n=e.deployments.filter(h),a=f(e.rollups.map(e=>e.checks)),l=f(e.rollups.map(e=>e.failures)),i=e=>(0,o.G)(e),c=[["Watchbell backup",e.month],["Covers",`${d(t)} to ${d(s)} WIB${e.partial?" (month so far)":""}`],["Kind",e.partial?"Partial: Back up now":"Full month"],["Generated",`${d(e.generatedAt)} WIB`],[],["Applications watched",e.apps.length],["Uptime, all monitors (%)",p(a,l)],["Checks (rolled-up hours)",a],["Failed checks",l],["Incidents (alerts opened)",e.alerts.length],["Critical incidents",e.alerts.filter(e=>"critical"===e.severity).length],["Production deployments",n.length],["Failed production deployments",n.filter(g).length],["Events",f(e.events.map(e=>e.count))]],v=[["Application","Monitors","Checks","Uptime (%)","p95 response, typical hour (ms)","p95 response, worst hour (ms)","5xx responses","Production deploys","Failed production deploys"]];for(let t of[...e.apps].sort((e,t)=>e.name.localeCompare(t.name))){let r=e.rollups.filter(e=>e.appId===t.id),s=r.map(e=>e.p95Ms).filter(e=>null!==e),a=n.filter(e=>e.appId===t.id);v.push([i(t.name),new Set(r.map(e=>e.monitorId)).size,f(r.map(e=>e.checks)),p(f(r.map(e=>e.checks)),f(r.map(e=>e.failures))),m(s),s.length?Math.max(...s):null,f(r.map(e=>e.status5xx)),a.length,a.filter(g).length])}let w=[["Rule","Severity","Subject","Started (WIB)","Resolved (WIB)","Duration","Message"]];for(let t of[...e.alerts].sort((e,t)=>e.startedAt.getTime()-t.startedAt.getTime())){let r=(0,o.o)({title:t.title,message:t.message,causedBy:null,resourceId:t.resourceId},e.book);w.push([t.ruleKey,t.severity,r.title,d(t.startedAt),d(t.resolvedAt),function(e,t,r){let s=Math.max(0,Math.round(((t??r).getTime()-e.getTime())/6e4)),n=s<60?`${s} min`:s<2880?`${Math.floor(s/60)} h ${s%60} min`:`${Math.round(s/1440)} days`;return t?n:`${n} (still open)`}(t.startedAt,t.resolvedAt,s),r.message])}let A=[["Database","Provider","Account","State at backup","Status changes this month","Size (MB)","Neon CU-hours this period","Firestore reads (last reading)"]];for(let t of[...e.databases].sort((t,r)=>(0,o.X)(e.book,t.id).localeCompare((0,o.X)(e.book,r.id)))){let r=f(e.events.filter(e=>"database"===e.type&&e.resourceId===t.id).map(e=>e.count));A.push([(0,o.X)(e.book,t.id),y[t.kind],i(t.account),t.state,r,k(t.sizeBytes),t.cuHours,t.reads])}let I=[["Domain","Application","TLS certificate expires","TLS days left at month end","Domain expires (RDAP)","Domain days left at month end","Registrar"]];for(let t of[...e.domains].sort((e,t)=>e.name.localeCompare(t.name)))I.push([t.name,t.app?i(t.app):"",t.tlsExpires??"",b(t.tlsExpires,s),t.domainExpires??"",b(t.domainExpires,s),t.registrar??""]);return[{title:"Overview",rows:c},{title:"Applications",rows:v},{title:"Incidents",rows:w},{title:"Databases",rows:A},{title:"Domains",rows:I}]},"V",0,e=>`watchbell-${e}-raw.csv.gz`,"p",0,function(e,t){let r=c(i(t)),s=new Map(e.map(e=>[e.month,e.status]));if("ok"!==s.get(r))return r;let n=r;for(let e=1;e<3;e++)if(n=c(n),"error"===s.get(n))return n;return null},"b",0,e=>(0,a.gzipSync)(Buffer.from(e,"utf8"),{level:9}),"n",0,function(e){let[t,r]=e.split("-").map(Number);return`${l[r-1]} ${t}`},"s",0,u,"E",0,function(e){let t=[w.join(",")];for(let r of[...e.rollups].sort((e,t)=>e.hour.getTime()-t.hour.getTime()||e.monitorId.localeCompare(t.monitorId)))t.push(["rollup",r.hour.toISOString(),(0,o.G)(`${r.app}${r.path}`),r.appId,r.checks,r.failures,r.p50Ms,r.p95Ms,r.maxMs,r.status5xx,r.maintenance,null,null,null,null,null,null].map(v).join(","));for(let r of[...e.events].sort((e,t)=>e.at.getTime()-t.at.getTime())){let s=r.resourceId&&e.book.db.some(e=>e.id===r.resourceId)?(0,o.X)(e.book,r.resourceId):(0,o.J)(r.resource??"",e.book);t.push(["event",r.at.toISOString(),s,r.resourceId,null,null,null,null,null,null,null,r.type,r.kind,r.reason,r.count,(0,o.J)(r.message,e.book,r.resourceId),(0,o.J)(r.detail,e.book,r.resourceId)].map(v).join(","))}return`${t.join("\r\n")}\r
2
- `},"c",0,function(e,t){let r=i(t),s=e.filter(e=>"ok"===e.status&&e.month<r).map(e=>e.month).sort().reverse().slice(0,3);if(s.length<3)return[];let n=s[s.length-1];return e.filter(e=>!e.trashedAt&&e.month<n&&(e.sheetFileId||e.csvFileId))},"F",0,e=>`Watchbell \xb7 ${e}`],814964);var A=e.i(921991),I=e.i(326003),M=e.i(547499),x=e.i(122143),S=e.i(209576),$=e.i(145647);let T="backup.folder";async function D(){let[e]=await (0,s.f)().select().from(n.accounts).where((0,t.u)(n.accounts.provider,"drive")).orderBy((0,r.M)(n.accounts.createdAt)).limit(1);if(!e)return null;let a=(0,A.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,M.f)().OPS_ENCRYPTION_KEY);return{id:e.id,status:e.status,lastError:e.lastError,lastTestAt:e.lastTestAt,refreshToken:a}}async function C(e,r){let a=new Date;await (0,s.f)().update(n.accounts).set({...r,lastTestAt:a,updatedAt:a}).where((0,t.u)(n.accounts.id,e))}async function B(e){let r=new Date,a={credentialCiphertext:e.ciphertext,credentialIv:e.iv,keyVersion:e.keyVersion,credentialKind:"OAuth refresh token",scopeNote:"drive.file: only the files it creates",status:"ok",lastError:null,lastTestAt:r,updatedAt:r},[o]=await (0,s.f)().select({id:n.accounts.id}).from(n.accounts).where((0,t.u)(n.accounts.provider,"drive")).limit(1);o?await (0,s.f)().update(n.accounts).set(a).where((0,t.u)(n.accounts.id,o.id)):await (0,s.f)().insert(n.accounts).values({provider:"drive",label:"Google Drive",...a})}async function E(){return(0,s.f)().select().from(n.backups).orderBy((0,r.A)(n.backups.month)).limit(120)}async function U(e){let[r]=await (0,s.f)().select().from(n.backups).where((0,t.u)(n.backups.month,e)).limit(1);return r??null}async function F(e,t){let r=new Date;await (0,s.f)().insert(n.backups).values({month:e,...t,updatedAt:r}).onConflictDoUpdate({target:n.backups.month,set:{...t,updatedAt:r}})}async function N(){let[e]=await (0,s.f)().select().from(n.settings).where((0,t.u)(n.settings.key,T)).limit(1),r=e?.value;return"string"==typeof r?.id&&r.id?{id:r.id,name:"string"==typeof r.name&&r.name?r.name:null}:null}async function J(e,t){let r=t?{id:e,name:t}:{id:e};await (0,s.f)().insert(n.settings).values({key:T,value:r}).onConflictDoUpdate({target:n.settings.key,set:{value:r,updatedAt:new Date}})}let P=e=>"number"==typeof e&&Number.isFinite(e)?e:null;async function _(e,a,o){let{start:l,end:i}=u(e),c=a&&o<i?o:i,[d,p,m,f,h,g,y,b]=await Promise.all([(0,S.f)(),(0,s.f)().select({id:n.resources.id,name:n.resources.name}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy((0,r.M)(n.resources.name)).limit(500),(0,s.f)().select({r:n.rollupsHourly,appId:n.monitors.resourceId,app:n.resources.name,url:n.monitors.url,kind:n.monitors.kind,name:n.monitors.name}).from(n.rollupsHourly).innerJoin(n.monitors,(0,t.u)(n.monitors.id,n.rollupsHourly.monitorId)).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.B)(n.rollupsHourly.hour,l),(0,t.S)(n.rollupsHourly.hour,c))).orderBy((0,r.M)(n.rollupsHourly.hour)).limit(5e4),(0,s.f)().select({e:n.events,resource:n.resources.name}).from(n.events).leftJoin(n.resources,(0,t.u)(n.resources.id,n.events.resourceId)).where((0,t.b)((0,t.B)(n.events.at,l),(0,t.S)(n.events.at,c))).orderBy((0,r.M)(n.events.at)).limit(5e4),(0,s.f)().select().from(n.alerts).where((0,t.b)((0,t.B)(n.alerts.startedAt,l),(0,t.S)(n.alerts.startedAt,c))).orderBy((0,r.M)(n.alerts.startedAt)).limit(5e3),(0,s.f)().select({appId:n.deployments.resourceId,target:n.deployments.target,state:n.deployments.state,createdAt:n.deployments.createdAtProvider}).from(n.deployments).where((0,t.b)((0,t.B)(n.deployments.createdAtProvider,l),(0,t.S)(n.deployments.createdAtProvider,c))).limit(1e4),(0,s.f)().select({r:n.resources,s:n.snapshots,account:n.accounts.label}).from(n.resources).innerJoin(n.accounts,(0,t.u)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.y)(n.resources.kind,[...x.H]),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).limit(500),(0,$.p)()]),k=y.map(({r:e,s:t,account:r})=>{let s=t?.data??{},n=e.kind,a="neon_project"===n?(0,I.k)(I.s,s):null,o="supabase_project"===n?P((0,I.k)(I.B,s).sizeBytes):a?(a.branches??[]).reduce((e,t)=>null===t.logicalSize?e:(e??0)+t.logicalSize,null):null;return{id:e.id,kind:n,account:r,state:t?.state??"unknown",sizeBytes:o,cuHours:a&&null!==P(a.computeSeconds)?Math.round(a.computeSeconds/3600*10)/10:null,reads:"firestore"===n?P((0,I.k)(I.w,s).reads):null}}),v=b.map(e=>({name:e.name,app:e.appName,tlsExpires:e.tls?.notAfter??null,domainExpires:e.rdap?.expiresAt??null,registrar:e.rdap?.registrar??null}));return{month:e,partial:a,generatedAt:o,book:d,apps:p,rollups:m.map(({r:e,appId:t,app:r,url:s,kind:n,name:a})=>({monitorId:e.monitorId,appId:t,app:r,path:(e=>{if("heartbeat"===e.kind)return` heartbeat ${e.name??""}`.trimEnd();try{return new URL(e.url).pathname}catch{return e.url}})({kind:n,name:a,url:s}),hour:e.hour,checks:e.checks,failures:e.failures,p50Ms:e.p50Ms,p95Ms:e.p95Ms,maxMs:e.maxMs,status5xx:e.status5xx,maintenance:e.maintenance})),events:f.map(({e,resource:t})=>({at:e.at,resourceId:e.resourceId,resource:t,type:e.type,kind:e.kind,reason:e.reason,count:e.count,message:e.message,detail:e.detail})),alerts:h.map(e=>({ruleKey:e.ruleKey,severity:e.severity,title:e.title,message:e.message,resourceId:e.resourceId,startedAt:e.startedAt,resolvedAt:e.resolvedAt})),deployments:g,databases:k,domains:v}}e.s(["N",0,D,"z",0,U,"e",0,E,"r",0,C,"f",0,_,"M",0,N,"W",0,F,"I",0,B,"s",0,J],612478)}];
1
+ module.exports=[612478,814964,e=>{"use strict";var t=e.i(875225),r=e.i(349129),s=e.i(924924),n=e.i(618916),o=e.i(727028),a=e.i(218331),l=e.i(298397);let i=["January","February","March","April","May","June","July","August","September","October","November","December"];function u(e){let t=(0,a.z)(e);return`${t.year}-${String(t.month).padStart(2,"0")}`}function c(e){return{start:(0,a.y)(`${e}-01`),end:(0,a.y)(`${function(e){let[t,r]=e.split("-").map(Number);return 12===r?`${t+1}-01`:`${t}-${String(r+1).padStart(2,"0")}`}(e)}-01`)}}function d(e){let[t,r]=e.split("-").map(Number);return 1===r?`${t-1}-12`:`${t}-${String(r-1).padStart(2,"0")}`}function p(e){if(!e)return"";let t=(0,a.z)(e),r=e=>String(e).padStart(2,"0");return`${t.year}-${r(t.month)}-${r(t.day)} ${r(t.hour)}:${r(t.minute)}`}let m=(e,t)=>e>0?Math.round((e-t)/e*1e5)/1e3:"",f=e=>{if(!e.length)return null;let t=[...e].sort((e,t)=>e-t),r=Math.floor(t.length/2);return t.length%2?t[r]:Math.round((t[r-1]+t[r])/2)},h=e=>e.reduce((e,t)=>e+t,0),y=e=>"production"===e.target,g=e=>"ERROR"===e.state,b={supabase_project:"Supabase",neon_project:"Neon",firestore:"Firebase"};function k(e,t){if(!e)return"";let r=Date.parse(e);return Number.isFinite(r)?Math.floor((r-t.getTime())/864e5):""}let v=e=>null===e?"":Math.round(e/1048576*10)/10;function A(e){if(null===e)return"";if("number"==typeof e||"boolean"==typeof e)return String(e);let t=/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return/[",\r\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t}let w=["record","at","subject","resource_id","checks","failures","p50_ms","p95_ms","max_ms","status_5xx","maintenance","type","kind","reason","count","message","detail"];e.s(["R",0,"Watchbell backups","C",0,"Watchpost backups","O",0,["Overview","Applications","Incidents","Databases","Domains"],"m",0,function(e){let{start:t,end:r}=c(e.month),s=e.partial&&e.generatedAt<r?e.generatedAt:r,n=e.deployments.filter(y),o=h(e.rollups.map(e=>e.checks)),i=h(e.rollups.map(e=>e.failures)),u=e=>(0,l.G)(e),d=[["Watchbell backup",e.month],["Covers",`${p(t)} to ${p(s)} ${(0,a.D)()}${e.partial?" (month so far)":""}`],["Kind",e.partial?"Partial: Back up now":"Full month"],["Generated",`${p(e.generatedAt)} ${(0,a.D)()}`],[],["Applications watched",e.apps.length],["Uptime, all monitors (%)",m(o,i)],["Checks (rolled-up hours)",o],["Failed checks",i],["Incidents (alerts opened)",e.alerts.length],["Critical incidents",e.alerts.filter(e=>"critical"===e.severity).length],["Production deployments",n.length],["Failed production deployments",n.filter(g).length],["Events",h(e.events.map(e=>e.count))]],A=[["Application","Monitors","Checks","Uptime (%)","p95 response, typical hour (ms)","p95 response, worst hour (ms)","5xx responses","Production deploys","Failed production deploys"]];for(let t of[...e.apps].sort((e,t)=>e.name.localeCompare(t.name))){let r=e.rollups.filter(e=>e.appId===t.id),s=r.map(e=>e.p95Ms).filter(e=>null!==e),o=n.filter(e=>e.appId===t.id);A.push([u(t.name),new Set(r.map(e=>e.monitorId)).size,h(r.map(e=>e.checks)),m(h(r.map(e=>e.checks)),h(r.map(e=>e.failures))),f(s),s.length?Math.max(...s):null,h(r.map(e=>e.status5xx)),o.length,o.filter(g).length])}let w=[["Rule","Severity","Subject",`Started (${(0,a.D)()})`,`Resolved (${(0,a.D)()})`,"Duration","Message"]];for(let t of[...e.alerts].sort((e,t)=>e.startedAt.getTime()-t.startedAt.getTime())){let r=(0,l.o)({title:t.title,message:t.message,causedBy:null,resourceId:t.resourceId},e.book);w.push([t.ruleKey,t.severity,r.title,p(t.startedAt),p(t.resolvedAt),function(e,t,r){let s=Math.max(0,Math.round(((t??r).getTime()-e.getTime())/6e4)),n=s<60?`${s} min`:s<2880?`${Math.floor(s/60)} h ${s%60} min`:`${Math.round(s/1440)} days`;return t?n:`${n} (still open)`}(t.startedAt,t.resolvedAt,s),r.message])}let I=[["Database","Provider","Account","State at backup","Status changes this month","Size (MB)","Neon CU-hours this period","Firestore reads (last reading)"]];for(let t of[...e.databases].sort((t,r)=>(0,l.X)(e.book,t.id).localeCompare((0,l.X)(e.book,r.id)))){let r=h(e.events.filter(e=>"database"===e.type&&e.resourceId===t.id).map(e=>e.count));I.push([(0,l.X)(e.book,t.id),b[t.kind],u(t.account),t.state,r,v(t.sizeBytes),t.cuHours,t.reads])}let $=[["Domain","Application","TLS certificate expires","TLS days left at month end","Domain expires (RDAP)","Domain days left at month end","Registrar"]];for(let t of[...e.domains].sort((e,t)=>e.name.localeCompare(t.name)))$.push([t.name,t.app?u(t.app):"",t.tlsExpires??"",k(t.tlsExpires,s),t.domainExpires??"",k(t.domainExpires,s),t.registrar??""]);return[{title:"Overview",rows:d},{title:"Applications",rows:A},{title:"Incidents",rows:w},{title:"Databases",rows:I},{title:"Domains",rows:$}]},"V",0,e=>`watchbell-${e}-raw.csv.gz`,"p",0,function(e,t){let r=d(u(t)),s=new Map(e.map(e=>[e.month,e.status]));if("ok"!==s.get(r))return r;let n=r;for(let e=1;e<3;e++)if(n=d(n),"error"===s.get(n))return n;return null},"b",0,e=>(0,o.gzipSync)(Buffer.from(e,"utf8"),{level:9}),"n",0,function(e){let[t,r]=e.split("-").map(Number);return`${i[r-1]} ${t}`},"s",0,c,"E",0,function(e){let t=[w.join(",")];for(let r of[...e.rollups].sort((e,t)=>e.hour.getTime()-t.hour.getTime()||e.monitorId.localeCompare(t.monitorId)))t.push(["rollup",r.hour.toISOString(),(0,l.G)(`${r.app}${r.path}`),r.appId,r.checks,r.failures,r.p50Ms,r.p95Ms,r.maxMs,r.status5xx,r.maintenance,null,null,null,null,null,null].map(A).join(","));for(let r of[...e.events].sort((e,t)=>e.at.getTime()-t.at.getTime())){let s=r.resourceId&&e.book.db.some(e=>e.id===r.resourceId)?(0,l.X)(e.book,r.resourceId):(0,l.J)(r.resource??"",e.book);t.push(["event",r.at.toISOString(),s,r.resourceId,null,null,null,null,null,null,null,r.type,r.kind,r.reason,r.count,(0,l.J)(r.message,e.book,r.resourceId),(0,l.J)(r.detail,e.book,r.resourceId)].map(A).join(","))}return`${t.join("\r\n")}\r
2
+ `},"c",0,function(e,t){let r=u(t),s=e.filter(e=>"ok"===e.status&&e.month<r).map(e=>e.month).sort().reverse().slice(0,3);if(s.length<3)return[];let n=s[s.length-1];return e.filter(e=>!e.trashedAt&&e.month<n&&(e.sheetFileId||e.csvFileId))},"F",0,e=>`Watchbell \xb7 ${e}`],814964);var I=e.i(921991),$=e.i(326003),M=e.i(547499),S=e.i(122143),x=e.i(209576),D=e.i(145647);let B="backup.folder";async function T(){let[e]=await (0,s.f)().select().from(n.accounts).where((0,t.u)(n.accounts.provider,"drive")).orderBy((0,r.M)(n.accounts.createdAt)).limit(1);if(!e)return null;let o=(0,I.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,M.f)().OPS_ENCRYPTION_KEY);return{id:e.id,status:e.status,lastError:e.lastError,lastTestAt:e.lastTestAt,refreshToken:o}}async function C(e,r){let o=new Date;await (0,s.f)().update(n.accounts).set({...r,lastTestAt:o,updatedAt:o}).where((0,t.u)(n.accounts.id,e))}async function E(e){let r=new Date,o={credentialCiphertext:e.ciphertext,credentialIv:e.iv,keyVersion:e.keyVersion,credentialKind:"OAuth refresh token",scopeNote:"drive.file: only the files it creates",status:"ok",lastError:null,lastTestAt:r,updatedAt:r},[a]=await (0,s.f)().select({id:n.accounts.id}).from(n.accounts).where((0,t.u)(n.accounts.provider,"drive")).limit(1);a?await (0,s.f)().update(n.accounts).set(o).where((0,t.u)(n.accounts.id,a.id)):await (0,s.f)().insert(n.accounts).values({provider:"drive",label:"Google Drive",...o})}async function N(){return(0,s.f)().select().from(n.backups).orderBy((0,r.A)(n.backups.month)).limit(120)}async function z(e){let[r]=await (0,s.f)().select().from(n.backups).where((0,t.u)(n.backups.month,e)).limit(1);return r??null}async function F(e,t){let r=new Date;await (0,s.f)().insert(n.backups).values({month:e,...t,updatedAt:r}).onConflictDoUpdate({target:n.backups.month,set:{...t,updatedAt:r}})}async function J(){let[e]=await (0,s.f)().select().from(n.settings).where((0,t.u)(n.settings.key,B)).limit(1),r=e?.value;return"string"==typeof r?.id&&r.id?{id:r.id,name:"string"==typeof r.name&&r.name?r.name:null}:null}async function P(e,t){let r=t?{id:e,name:t}:{id:e};await (0,s.f)().insert(n.settings).values({key:B,value:r}).onConflictDoUpdate({target:n.settings.key,set:{value:r,updatedAt:new Date}})}let _=e=>"number"==typeof e&&Number.isFinite(e)?e:null;async function j(e,o,a){let{start:l,end:i}=c(e),u=o&&a<i?a:i,[d,p,m,f,h,y,g,b]=await Promise.all([(0,x.f)(),(0,s.f)().select({id:n.resources.id,name:n.resources.name}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy((0,r.M)(n.resources.name)).limit(500),(0,s.f)().select({r:n.rollupsHourly,appId:n.monitors.resourceId,app:n.resources.name,url:n.monitors.url,kind:n.monitors.kind,name:n.monitors.name}).from(n.rollupsHourly).innerJoin(n.monitors,(0,t.u)(n.monitors.id,n.rollupsHourly.monitorId)).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.B)(n.rollupsHourly.hour,l),(0,t.S)(n.rollupsHourly.hour,u))).orderBy((0,r.M)(n.rollupsHourly.hour)).limit(5e4),(0,s.f)().select({e:n.events,resource:n.resources.name}).from(n.events).leftJoin(n.resources,(0,t.u)(n.resources.id,n.events.resourceId)).where((0,t.b)((0,t.B)(n.events.at,l),(0,t.S)(n.events.at,u))).orderBy((0,r.M)(n.events.at)).limit(5e4),(0,s.f)().select().from(n.alerts).where((0,t.b)((0,t.B)(n.alerts.startedAt,l),(0,t.S)(n.alerts.startedAt,u))).orderBy((0,r.M)(n.alerts.startedAt)).limit(5e3),(0,s.f)().select({appId:n.deployments.resourceId,target:n.deployments.target,state:n.deployments.state,createdAt:n.deployments.createdAtProvider}).from(n.deployments).where((0,t.b)((0,t.B)(n.deployments.createdAtProvider,l),(0,t.S)(n.deployments.createdAtProvider,u))).limit(1e4),(0,s.f)().select({r:n.resources,s:n.snapshots,account:n.accounts.label}).from(n.resources).innerJoin(n.accounts,(0,t.u)(n.accounts.id,n.resources.accountId)).leftJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.y)(n.resources.kind,[...S.H]),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).limit(500),(0,D.p)()]),k=g.map(({r:e,s:t,account:r})=>{let s=t?.data??{},n=e.kind,o="neon_project"===n?(0,$.k)($.s,s):null,a="supabase_project"===n?_((0,$.k)($.B,s).sizeBytes):o?(o.branches??[]).reduce((e,t)=>null===t.logicalSize?e:(e??0)+t.logicalSize,null):null;return{id:e.id,kind:n,account:r,state:t?.state??"unknown",sizeBytes:a,cuHours:o&&null!==_(o.computeSeconds)?Math.round(o.computeSeconds/3600*10)/10:null,reads:"firestore"===n?_((0,$.k)($.w,s).reads):null}}),v=b.map(e=>({name:e.name,app:e.appName,tlsExpires:e.tls?.notAfter??null,domainExpires:e.rdap?.expiresAt??null,registrar:e.rdap?.registrar??null}));return{month:e,partial:o,generatedAt:a,book:d,apps:p,rollups:m.map(({r:e,appId:t,app:r,url:s,kind:n,name:o})=>({monitorId:e.monitorId,appId:t,app:r,path:(e=>{if("heartbeat"===e.kind)return` heartbeat ${e.name??""}`.trimEnd();try{return new URL(e.url).pathname}catch{return e.url}})({kind:n,name:o,url:s}),hour:e.hour,checks:e.checks,failures:e.failures,p50Ms:e.p50Ms,p95Ms:e.p95Ms,maxMs:e.maxMs,status5xx:e.status5xx,maintenance:e.maintenance})),events:f.map(({e,resource:t})=>({at:e.at,resourceId:e.resourceId,resource:t,type:e.type,kind:e.kind,reason:e.reason,count:e.count,message:e.message,detail:e.detail})),alerts:h.map(e=>({ruleKey:e.ruleKey,severity:e.severity,title:e.title,message:e.message,resourceId:e.resourceId,startedAt:e.startedAt,resolvedAt:e.resolvedAt})),deployments:y,databases:k,domains:v}}e.s(["N",0,T,"z",0,z,"e",0,N,"r",0,C,"f",0,j,"M",0,J,"W",0,F,"I",0,E,"s",0,P],612478)}];
3
3
 
4
4
  //# sourceMappingURL=src_lib_data_backup-db_ts_19rtzbv84xz_h._.js.map
@@ -1,4 +1,4 @@
1
1
  module.exports=[292321,530174,658739,e=>{"use strict";var t=e.i(93321),s=e.i(530385),r=e.i(258261),a=e.i(351674),o=e.i(548734),n=e.i(837137),l=e.i(33135),i=e.i(358179),d=e.i(601219),u=e.i(492665),c=e.i(609007),m=e.i(666680),p=e.i(26972),g=e.i(689963),h=e.i(191179),f=e.i(83931),w=e.i(427221),I=e.i(954757);e.s(["z",0,I],530174);var I=I,y=e.i(811365);let v=["debug","info","warning","error","fatal","trace"],b=p.z.object({rows:g.z.array(h.z.unknown()).catch([]),hasMoreRows:f.z.boolean().catch(!1)}),q=p.z.object({requestId:w.z.string().min(1),timestamp:w.z.string().transform((e,t)=>{let s=Date.parse(e);return Number.isNaN(s)?(t.addIssue({code:"custom",message:"bad timestamp"}),I.NEVER):new Date(s)}),deploymentId:w.z.string().nullish().catch(null),requestMethod:w.z.string().nullish().catch(null),requestPath:w.z.string().nullish().catch(null),statusCode:y.z.number().nullish().catch(null),logs:g.z.array(h.z.unknown()).nullish().catch(null),events:g.z.array(h.z.unknown()).nullish().catch(null)}),M=p.z.object({level:w.z.string().nullish().catch(null),message:w.z.string().nullish().catch(null)}),$=p.z.object({source:w.z.string().nullish().catch(null)}),L=(e,t)=>(0,m.createHash)("sha1").update(`${e}
2
- ${t}`).digest("hex").slice(0,8),k=(e,t,s={})=>({ok:!1,kind:e,error:t,...s});async function z(e,t,s,r){let a=(r.now??new Date).getTime(),o=Math.max(r.since.getTime(),a-864e5),n=r.until.getTime();if(o>=n)return{ok:!0,lines:[],more:!1};let i=r.maxRows??300,d=r.levels?new Set(r.levels):null,u=e=>!d||d.has(e),c=r.levels?[...new Set(r.levels.map(e=>"fatal"===e?"error":e))]:[],m=r.fetch??fetch,p=new AbortController,g=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),r.timeoutMs??8e3),h=r.signal?AbortSignal.any([p.signal,r.signal]):p.signal,f=(0,l.X)(h),w=()=>p.signal.aborted&&!r.signal?.aborted?k("transient","Vercel's log history didn't answer in time."):k("transient","Reading Vercel's log history was cancelled."),I=[],y=!1;try{for(let a=0;a<3;a++){let l,d=new URLSearchParams({projectId:s,ownerId:t,page:String(a),startDate:String(o),endDate:String(n)});r.deploymentId&&d.set("deploymentId",r.deploymentId),r.environment&&d.set("environment",r.environment),c.length&&d.set("level",c.join(","));let p=null;try{let t=await Promise.race([m(`https://vercel.com/api/logs/request-logs?${d}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:h,cache:"no-store"}),f]);if(401===t.status||403===t.status)p=k("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=k("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=k("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(h.aborted)throw e;p=k("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=k("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=h.aborted?w():k("transient","Couldn't reach Vercel's log history.")}if(!p){let e=b.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)I.push(...function(e,t,s=!1){let r=q.safeParse(e);if(!r.success)return[];let a=r.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=>$.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},n=[],l=new Map;for(let e of a.logs??[]){let s=M.safeParse(e);if(!s.success||!s.data.message)continue;let r=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":v.includes(t)?t:"info"}(s.data.level),i=L(r,s.data.message),d=l.get(i)??0;l.set(i,d+1),t(r)&&n.push({rowId:`${a.requestId}:${i}${d?`#${d}`:""}`,level:r,message:s.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}),s&&0===n.length){let e=a.statusCode??0,s=e>=500?"error":e>=400?"warning":"info";t(s)&&n.push({rowId:`${a.requestId}:request`,level:s,message:`${a.requestMethod??"GET"} ${a.requestPath??"/"}${e>0?` → ${e}`:""}`,...o})}return n}(t,u,r.requests));if(!(y=e.data.hasMoreRows)||I.length>=i)break}else p=k("format","Vercel's log history answered in a format the console doesn't recognise.");else p=k("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===a)return p;y=!0;break}}}finally{clearTimeout(g),p.abort()}return I.sort((e,t)=>e.at.getTime()-t.at.getTime()),I.length>i&&(I.splice(0,I.length-i),y=!0),{ok:!0,lines:I,more:y}}e.s(["f",0,z],658739);var P=e.i(968715);let C=["warning","error","fatal"],N="logs_read_cursor";async function j(e){let[s]=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),r=s?(0,i.V)({ciphertext:s.credentialCiphertext,iv:s.credentialIv},(0,u.f)().OPS_ENCRYPTION_KEY):null;return s&&r?(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,s.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:r})):[]}let T=(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 D(e,s,i){let u,[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 m=await j(null);if(!m.length)return;let p=(0,P.q)((0,P.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,m.map(e=>e.appId)),(0,t.B)(n.storedLogs.at,p))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.n])),h=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,at:(0,r.y)(n.storedLogs.at)}).from(n.storedLogs).where((0,t.y)(n.storedLogs.resourceId,m.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,N)).limit(1),w=(u=f?.value)&&"object"==typeof u&&!Array.isArray(u)?Object.fromEntries(Object.entries(u).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},I=e.getTime()-864e5,y=await (0,l.P)(m,3,t=>{if(Date.now()+8500>s)return Promise.resolve(null);let r=[h.get(t.appId)?.getTime(),w[t.appId]?Date.parse(w[t.appId]):void 0].filter(e=>void 0!==e),a=new Date(Math.max(r.length?Math.max(...r)-3e5:I,I));return z(t.token,t.teamId,t.projectId,{since:a,until:e,now:e,levels:C,environment:"production",maxRows:300})}),v=m.map((e,t)=>{let s=y[t];return s?s.ok?(s.more&&i.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),s.lines.filter(e=>C.includes(e.level))):(i.push(`logs/${e.appName}: ${s.error}`),[]):[]}),b=v.flat().map(e=>e.rowId),q=new Set(b.length?(await (0,o.f)().select({rowId:n.storedLogs.rowId}).from(n.storedLogs).where((0,t.y)(n.storedLogs.rowId,b))).map(e=>e.rowId):[]),M=[];for(let[e,t]of m.entries()){let s=v[e].filter(e=>!q.has(e.rowId));if(!s.length)continue;let r=g.get(t.appId)??0,a=Math.max(0,1e3-r),l=(a>=s.length?s:s.slice(s.length-a)).map(e=>T(t,e));l.length&&await (0,o.f)().insert(n.storedLogs).values(l).onConflictDoNothing({target:n.storedLogs.rowId}),r+s.length>=1e3&&M.push(t.appId)}let $=m.filter((e,t)=>y[t]?.ok);if($.length){let t={};for(let e of m)w[e.appId]&&(t[e.appId]=w[e.appId]);for(let s of $)t[s.appId]=e.toISOString();await (0,o.f)().insert(n.settings).values({key:N,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})}await (0,d.f)(M.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 x(e,r={}){let a=new Date(e.getTime()-(r.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),...r.appId?[(0,t.u)(n.storedLogs.resourceId,r.appId)]:[])).orderBy((0,s.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()}async function S(e,t){let s=(await j(t)).slice(0,6),r=[],a=await (0,l.P)(s,6,t=>z(t.token,t.teamId,t.projectId,{since:new Date(e.getTime()-36e5),until:e,now:e,environment:"production",maxRows:300,requests:!0})),o=[];for(let[e,t]of s.entries()){let s=a[e];if(!s.ok){r.push(`${t.appName}: ${s.error}`);continue}for(let e of s.lines){let s=T(t,e);o.push({id:e.rowId,at:e.at,level:e.level,app:t.appName,method:s.requestMethod,path:s.requestPath,status:e.statusCode,message:s.message})}}return{lines:[...new Map([...await x(e,{appId:t??void 0,sinceMs:36e5}),...o].map(e=>[e.id,e])).values()].sort((e,t)=>e.at.getTime()-t.at.getTime()).slice(-500),readAt:new Date,problems:r}}e.s(["M",0,x,"$",0,S,"g",0,j,"_",0,D],292321)}];
2
+ ${t}`).digest("hex").slice(0,8),k=(e,t,s={})=>({ok:!1,kind:e,error:t,...s});async function z(e,t,s,r){let a=(r.now??new Date).getTime(),o=Math.max(r.since.getTime(),a-864e5),n=r.until.getTime();if(o>=n)return{ok:!0,lines:[],more:!1};let i=r.maxRows??300,d=r.levels?new Set(r.levels):null,u=e=>!d||d.has(e),c=r.levels?[...new Set(r.levels.map(e=>"fatal"===e?"error":e))]:[],m=r.fetch??fetch,p=new AbortController,g=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),r.timeoutMs??8e3),h=r.signal?AbortSignal.any([p.signal,r.signal]):p.signal,f=(0,l.X)(h),w=()=>p.signal.aborted&&!r.signal?.aborted?k("transient","Vercel's log history didn't answer in time."):k("transient","Reading Vercel's log history was cancelled."),I=[],y=!1;try{for(let a=0;a<3;a++){let l,d=new URLSearchParams({projectId:s,ownerId:t,page:String(a),startDate:String(o),endDate:String(n)});r.deploymentId&&d.set("deploymentId",r.deploymentId),r.environment&&d.set("environment",r.environment),c.length&&d.set("level",c.join(","));let p=null;try{let t=await Promise.race([m(`https://vercel.com/api/logs/request-logs?${d}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:h,cache:"no-store"}),f]);if(401===t.status||403===t.status)p=k("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=k("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=k("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(h.aborted)throw e;p=k("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=k("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=h.aborted?w():k("transient","Couldn't reach Vercel's log history.")}if(!p){let e=b.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)I.push(...function(e,t,s=!1){let r=q.safeParse(e);if(!r.success)return[];let a=r.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=>$.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},n=[],l=new Map;for(let e of a.logs??[]){let s=M.safeParse(e);if(!s.success||!s.data.message)continue;let r=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":v.includes(t)?t:"info"}(s.data.level),i=L(r,s.data.message),d=l.get(i)??0;l.set(i,d+1),t(r)&&n.push({rowId:`${a.requestId}:${i}${d?`#${d}`:""}`,level:r,message:s.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}),s&&0===n.length){let e=a.statusCode??0,s=e>=500?"error":e>=400?"warning":"info";t(s)&&n.push({rowId:`${a.requestId}:request`,level:s,message:`${a.requestMethod??"GET"} ${a.requestPath??"/"}${e>0?` → ${e}`:""}`,...o})}return n}(t,u,r.requests));if(!(y=e.data.hasMoreRows)||I.length>=i)break}else p=k("format","Vercel's log history answered in a format the console doesn't recognise.");else p=k("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===a)return p;y=!0;break}}}finally{clearTimeout(g),p.abort()}return I.sort((e,t)=>e.at.getTime()-t.at.getTime()),I.length>i&&(I.splice(0,I.length-i),y=!0),{ok:!0,lines:I,more:y}}e.s(["f",0,z],658739);var P=e.i(245710);let C=["warning","error","fatal"],N="logs_read_cursor";async function j(e){let[s]=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),r=s?(0,i.V)({ciphertext:s.credentialCiphertext,iv:s.credentialIv},(0,u.f)().OPS_ENCRYPTION_KEY):null;return s&&r?(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,s.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:r})):[]}let T=(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 D(e,s,i){let u,[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 m=await j(null);if(!m.length)return;let p=(0,P.y)((0,P.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,m.map(e=>e.appId)),(0,t.B)(n.storedLogs.at,p))).groupBy(n.storedLogs.resourceId)).map(e=>[e.id,e.n])),h=new Map((await (0,o.f)().select({id:n.storedLogs.resourceId,at:(0,r.y)(n.storedLogs.at)}).from(n.storedLogs).where((0,t.y)(n.storedLogs.resourceId,m.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,N)).limit(1),w=(u=f?.value)&&"object"==typeof u&&!Array.isArray(u)?Object.fromEntries(Object.entries(u).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},I=e.getTime()-864e5,y=await (0,l.P)(m,3,t=>{if(Date.now()+8500>s)return Promise.resolve(null);let r=[h.get(t.appId)?.getTime(),w[t.appId]?Date.parse(w[t.appId]):void 0].filter(e=>void 0!==e),a=new Date(Math.max(r.length?Math.max(...r)-3e5:I,I));return z(t.token,t.teamId,t.projectId,{since:a,until:e,now:e,levels:C,environment:"production",maxRows:300})}),v=m.map((e,t)=>{let s=y[t];return s?s.ok?(s.more&&i.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),s.lines.filter(e=>C.includes(e.level))):(i.push(`logs/${e.appName}: ${s.error}`),[]):[]}),b=v.flat().map(e=>e.rowId),q=new Set(b.length?(await (0,o.f)().select({rowId:n.storedLogs.rowId}).from(n.storedLogs).where((0,t.y)(n.storedLogs.rowId,b))).map(e=>e.rowId):[]),M=[];for(let[e,t]of m.entries()){let s=v[e].filter(e=>!q.has(e.rowId));if(!s.length)continue;let r=g.get(t.appId)??0,a=Math.max(0,1e3-r),l=(a>=s.length?s:s.slice(s.length-a)).map(e=>T(t,e));l.length&&await (0,o.f)().insert(n.storedLogs).values(l).onConflictDoNothing({target:n.storedLogs.rowId}),r+s.length>=1e3&&M.push(t.appId)}let $=m.filter((e,t)=>y[t]?.ok);if($.length){let t={};for(let e of m)w[e.appId]&&(t[e.appId]=w[e.appId]);for(let s of $)t[s.appId]=e.toISOString();await (0,o.f)().insert(n.settings).values({key:N,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:new Date}})}await (0,d.f)(M.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 x(e,r={}){let a=new Date(e.getTime()-(r.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),...r.appId?[(0,t.u)(n.storedLogs.resourceId,r.appId)]:[])).orderBy((0,s.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()}async function S(e,t){let s=(await j(t)).slice(0,6),r=[],a=await (0,l.P)(s,6,t=>z(t.token,t.teamId,t.projectId,{since:new Date(e.getTime()-36e5),until:e,now:e,environment:"production",maxRows:300,requests:!0})),o=[];for(let[e,t]of s.entries()){let s=a[e];if(!s.ok){r.push(`${t.appName}: ${s.error}`);continue}for(let e of s.lines){let s=T(t,e);o.push({id:e.rowId,at:e.at,level:e.level,app:t.appName,method:s.requestMethod,path:s.requestPath,status:e.statusCode,message:s.message})}}return{lines:[...new Map([...await x(e,{appId:t??void 0,sinceMs:36e5}),...o].map(e=>[e.id,e])).values()].sort((e,t)=>e.at.getTime()-t.at.getTime()).slice(-500),readAt:new Date,problems:r}}e.s(["M",0,x,"$",0,S,"g",0,j,"_",0,D],292321)}];
3
3
 
4
4
  //# sourceMappingURL=src_lib_data_logs-db_ts_1ddw07do12mmk._.js.map
@@ -0,0 +1,6 @@
1
+ module.exports=[396667,711251,532971,186133,e=>{"use strict";var t=e.i(93321),n=e.i(351674),r=e.i(800717),s=e.i(548734),a=e.i(263251),o=e.i(837137),i=e.i(686921),l=e.i(160147);let c="budget.limits",u={qstashPerDay:1e3,webAnalyticsEvents:5e4,vercelInvocations:1e6,vercelCpuHours:4,vercelMemoryGbH:360,warnPct:70,errPct:90},f=[{key:"qstashPerDay",label:"Upstash QStash messages",unit:"a day",min:1,max:1e7},{key:"webAnalyticsEvents",label:"Vercel Web Analytics events",unit:"a month",min:1,max:1e8},{key:"vercelInvocations",label:"Vercel function invocations",unit:"a month",min:1,max:1e9},{key:"vercelCpuHours",label:"Vercel active CPU",unit:"hours a month",min:1,max:1e4},{key:"vercelMemoryGbH",label:"Vercel provisioned memory",unit:"GB-hours a month",min:1,max:1e5},{key:"warnPct",label:"Warn from",unit:"% used",min:10,max:99},{key:"errPct",label:"Alarm from",unit:"% used",min:11,max:100}],m=(e,t)=>"number"==typeof t&&Number.isInteger(t)&&t>=e.min&&t<=e.max;function y(e){let t={...u};if(!e||"object"!=typeof e)return t;for(let n of f){let r=e[n.key];m(n,r)&&(t[n.key]=r)}return t.warnPct<t.errPct?t:{...t,warnPct:u.warnPct,errPct:u.errPct}}e.s(["o",0,u,"h",0,c,"S",0,function(e,t){let n=f.filter(n=>e[n.key]!==t[n.key]).map(n=>`${n.label} ${e[n.key].toLocaleString("en-US")} → ${t[n.key].toLocaleString("en-US")}`);return n.length?n.join(", "):null},"X",0,y,"R",0,function(e){let t=e&&"object"==typeof e?e:{},n={...u},r={};for(let e of f){let s=t[e.key],a="string"==typeof s?Number(s.replace(/[,_\s]/g,"")):s;m(e,a)?n[e.key]=a:r[e.key]=`Enter a whole number from ${e.min.toLocaleString("en-US")} to ${e.max.toLocaleString("en-US")}.`}return r.warnPct||r.errPct||!(n.warnPct>=n.errPct)||(r.errPct="Alarm must be above Warn."),Object.keys(r).length?{ok:!1,error:"Check the highlighted fields.",fieldErrors:r}:{ok:!0,value:n}}],711251);var d=e.i(655206);let h="retention.days",p={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]},b=Object.keys(p),g={checks:"Raw checks",rollupsHourly:"Hourly rollups",storedLogs:"Stored logs",deployments:"Deployments",events:"Events",alerts:"Alerts",collectorRuns:"Collector runs",recommendationDismissals:"Advisor dismissals"},k=(e,t)=>"number"==typeof t&&p[e].includes(t);function v(e){let t={...d.f};if(!e||"object"!=typeof e)return t;for(let n of b){let r=e[n];k(n,r)&&(t[n]=r)}return t}async function w(e){let[n]=await (0,s.f)().select({value:o.settings.value}).from(o.settings).where((0,t.u)(o.settings.key,e)).limit(1);return n?.value??null}async function $(e,t){await (0,s.f)().insert(o.settings).values({key:e,value:t}).onConflictDoUpdate({target:o.settings.key,set:{value:t,updatedAt:new Date}})}e.s(["L",0,b,"I",0,g,"H",0,h,"E",0,v,"b",0,function(e,t){let n=b.filter(n=>e[n]!==t[n]).map(n=>`${g[n]} ${e[n]} → ${t[n]} days`);return n.length?n.join(", "):null},"K",0,function(e){let t={},n={...d.f},r=e&&"object"==typeof e?e:{};for(let e of b){let s="string"==typeof r[e]?Number(r[e]):r[e];k(e,s)?n[e]=s:t[e]=`Pick ${p[e].join(", ")} days.`}return Object.keys(t).length?{ok:!1,error:"Check the highlighted fields.",fieldErrors:t}:{ok:!0,value:n}}],532971);let P=async()=>v(await w(h)),j=async()=>y(await w(c)),x="notify.language",B="sections.off",S=async()=>(0,l.N)(await w(B)),A=()=>n.B`(select ${o.settings.value} from ${o.settings} where ${o.settings.key} = ${B})`;e.s(["j",0,j,"l",0,()=>w(x),"J",0,P,"W",0,S,"x",0,e=>$(c,e),"U",0,e=>$(x,e),"A",0,e=>$(h,e),"Y",0,e=>$(B,(0,l.N)(e)),"X",0,A],186133);let C=["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"],H=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}},L=(0,r.cache)(async()=>{let e=n.B.join(C.map(e=>n.B`${e}`),n.B`, `),t=await (0,s.f)().execute(n.B`select
2
+ (select coalesce(jsonb_agg(distinct ${o.accounts.provider}::text), '[]'::jsonb) from ${o.accounts}) as providers,
3
+ exists(select 1 from ${o.resources} where ${o.resources.kind}::text in (${e}) and ${o.resources.goneAt} is null) as databases,
4
+ ${A()} as off`),[r]=(0,a.f)(t),c=H(r?.providers);return{providers:(Array.isArray(c)?c:[]).filter(e=>i.L.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,l.N)(H(r?.off))}});async function N(){let{providers:e,databases:t,off:n}=await L(),r={databases:t},s=[...(0,l.R)(e,r)];return{on:s.filter(e=>!n.includes(e)),available:s,off:n,providers:e,has:r}}async function U(){try{return(0,l.J)((await L()).off)}catch{return new Set}}function D(e){if(!e.size)return;let{ruleKeys:r,providers:s}=(0,l.s)(e),a=[];if(r.length&&a.push(n.B`${o.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),s.length){let e=n.B.join(s.map(e=>n.B`${e}`),n.B`, `);a.push(n.B`(${o.alerts.ruleKey} = 'CredentialExpiring' and ${o.alerts.accountId} in (select ${o.accounts.id} from ${o.accounts} where ${o.accounts.provider}::text in (${e})))`)}return a.length?(0,t.F)(...a):void 0}async function E(e,n){let r=D(new Set([e]));r&&await (0,s.f)().update(o.alerts).set({pendingSince:n}).where((0,t.b)((0,t.E)(o.alerts.pending),r))}async function _(){let e=await (0,s.f)().select({kind:o.monitors.kind,n:n.B`count(*)::int`}).from(o.monitors).where((0,t.b)((0,t.u)(o.monitors.paused,!1),(0,t.u)(o.monitors.ownerPaused,!1))).groupBy(o.monitors.kind),r=t=>Number(e.find(e=>e.kind===t)?.n??0);return{http:r("http"),heartbeat:r("heartbeat")}}e.s(["s",0,function(e){let n=D(e);return n?(0,t.R)(n):void 0},"F",0,_,"I",0,U,"e",0,E,"Q",0,N],396667)}];
5
+
6
+ //# sourceMappingURL=src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js.map
@@ -1,28 +1,28 @@
1
- module.exports=[601533,e=>{"use strict";var t=e.i(632019),a=e.i(7584),i=e.i(488077),n=e.i(614755),r=e.i(837137),s=e.i(159203),o=e.i(745614),d=e.i(351674),l=e.i(263251),c=e.i(927262),u=e.i(233711),p=e.i(469762),m=e.i(988866),g=e.i(109505);let h=(e,t)=>`${e} ${t}${1===e?"":"s"}`;async function f(e,t,a,i,n){let s,o,f,w,A,k,y,{db:I,seed:v,now:$}=e,_=(0,g.k)(v,"alerts"),S=(...e)=>(0,g.T)(v,"alert",...e),T=e=>t.apps.find(t=>t.id===e)?.name??"app",b=(0,l.f)(await I.execute(d.B`select resource_id, external_id, state, target, commit_sha, created_at_provider, is_current, is_previous_production from ops.deployments`)),x=b.find(e=>"error"===e.state&&"production"===e.target),D={appId:x.resource_id,appName:T(x.resource_id),sha:x.commit_sha.slice(0,7),createdAt:new Date(x.created_at_provider),currentExternalId:b.find(e=>e.resource_id===x.resource_id&&e.is_current)?.external_id??null},E=(e,t,a)=>{let i=a.resolvedAt??null;return{ruleKey:e,subject:t,severity:c._[e].severity,resourceId:null,accountId:null,okStreak:2*!!i,lastSeenAt:i??(0,m.$)($,1e3*_.int(5,55)),lastSampleAt:null,notifiedOpen:"info"!==c._[e].severity,lastNotifiedAt:i??new Date(a.startedAt.getTime()+m.E),pending:null,pendingSince:null,...a}},M=n.certSoon,C=(0,u.g)(M.notAfter,$)??0,O=n.zoneSoon,P=(0,u.g)(O.expiresAt,$)??0,z=[E("DeploymentFailed",D.appId,{id:S("firing","deploy"),resourceId:D.appId,title:D.appName,message:`Production deployment ${D.sha} failed.`,startedAt:new Date(D.createdAt.getTime()+1e3*_.int(60,150))}),E("CertExpiringSoon",M.id,{id:S("firing","cert"),resourceId:M.id,title:M.name,message:`The TLS certificate of ${M.name} expires in ${h(C,"day")}.`,startedAt:new Date(M.notAfter.getTime()-14*m.h+_.int(5,55)*m.E)}),E("DomainExpiringSoon",O.id,{id:S("firing","zone"),resourceId:O.id,title:O.name,message:`${O.name} expires in ${h(P,"day")}.`,startedAt:new Date(O.expiresAt.getTime()-30*m.h+_.int(5,55)*m.E)})],R=a.outage,B=a.monitors.find(e=>e.id===R.monitorId),j=t.apps.find(e=>e.id!==D.appId)??t.apps[0],U=e=>i.dbs.find(t=>t.kind===e),L=(e,t)=>(0,m.$)($,e*m.h+t*m.w+_.int(0,50)*m.E),N=(e,t)=>new Date(e.getTime()+t*m.E),F=(e,t)=>{let i=a.monitors.find(e=>e.id===t.monitorId);return E("HighLatency",i.id,{id:S("resolved",e),resourceId:i.appId,title:`${T(i.appId)} ${i.path}`,message:`p95 ${t.p95.toLocaleString("en-US")} ms over the last 10 minutes (limit 1,500 ms).`,startedAt:t.firedAt,resolvedAt:t.resolvedAt})},H={start:L(4,_.int(1,9)),sha:(0,g.p)(7,v,"old-failed",j.name)},K=U("upstash_redis"),V=U("firestore"),W=U("supabase_project"),G=i.cloudflare.label,Y={outage:E("MonitorDown",B.id,{id:S("resolved","outage"),resourceId:B.appId,title:`${T(B.appId)} ${B.path}`,message:`${(0,p.F)(B.url)} returned HTTP 503 on 3 consecutive checks.`,startedAt:new Date(R.startedAt.getTime()+10*m.E),resolvedAt:R.recoveredAt}),latencyA:F("latency-a",a.slow[0]),latencyB:F("latency-b",a.slow[1]),oldDeploy:E("DeploymentFailed",j.id,{id:S("resolved","old-deploy"),resourceId:j.id,title:j.name,message:`Production deployment ${H.sha} failed.`,startedAt:H.start,resolvedAt:N(H.start,_.int(35,70))}),collector:(s=L(6,_.int(1,10)),E("CollectorStale","collector",{id:S("resolved","collector"),title:"collector",message:"The last minute run finished 6 min ago.",startedAt:s,resolvedAt:N(s,_.int(4,9))})),autoPause:(o=L(6,_.int(12,20)),E("AutoPauseRisk",W.id,{id:S("resolved","auto-pause"),resourceId:W.id,title:W.name,message:"No API traffic for 4 days. Supabase pauses free projects after about 7 days.",startedAt:o,resolvedAt:N(o,60*_.int(20,30))})),quota:(f=L(6,_.int(1,8)),E("DbQuotaHigh",K.id,{id:S("resolved","db-quota"),resourceId:K.id,title:K.name,message:`${K.name}: Commands at ${_.int(81,88)}% of the free plan.`,startedAt:f,resolvedAt:N(f,60*_.int(3,6))})),firestore:(w=L(3,_.int(1,6)),E("FirestoreQuotaHigh",V.id,{id:S("resolved","firestore"),resourceId:V.id,title:V.name,message:`${V.name} read ${_.int(40500,46e3).toLocaleString("en-US")} of 50,000 documents today (${_.int(81,92)}%).`,startedAt:w,resolvedAt:N(w,60*_.int(2,5))})),proxied:(A=L(5,_.int(12,20)),E("DnsProxiedToVercel",(k=n.vercelRecord).id,{id:S("resolved","proxied"),resourceId:k.zoneId,title:k.name,message:`${k.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`,startedAt:A,resolvedAt:N(A,24*_.int(2,4)*60)})),credential:(y=L(6,_.int(14,22)),E("CredentialExpiring",i.cloudflare.accountId,{id:S("resolved","credential"),accountId:i.cloudflare.accountId,title:`cloudflare \xb7 ${G}`,message:`The cloudflare credential ${G} expires in 9 days.`,startedAt:y,resolvedAt:N(y,24*_.int(1,2)*60+_.int(10,300))}))};return await I.insert(r.alerts).values([...z,...Object.values(Y)]),{firing:{deploy:z[0].id,cert:z[1].id,zone:z[2].id},resolved:{outage:Y.outage.id,oldDeploy:{id:Y.oldDeploy.id,appId:j.id,appName:j.name,previousExternalId:b.find(e=>e.resource_id===j.id&&e.is_previous_production)?.external_id??null,startedAt:Y.oldDeploy.startedAt,resolvedAt:Y.oldDeploy.resolvedAt},credential:{title:Y.credential.title,resolvedAt:Y.credential.resolvedAt}},failedDeploy:D}}var w=e.i(646324),A=e.i(306556);let k=e=>`${e}.example`,y=["acme-shop","orbit-blog","nimbus-docs","pixel-forge","harbor-api","lumen-portal","quartz-admin","tidal-landing","ember-status","cobalt-store","willow-wiki","atlas-dash","sprout-crm","comet-links","fable-notes","maple-events"],I=[{name:"Juniper Labs",slug:"juniper-labs"},{name:"Kestrel Works",slug:"kestrel-works"},{name:"Brightfield Studio",slug:"brightfield-studio"},{name:"Saltmarsh Digital",slug:"saltmarsh-digital"}],v=["nextjs","nextjs","nextjs","vite","astro","sveltekit","remix"],$=["sin1","iad1","fra1","hnd1","sfo1"],_=["feat/checkout-v2","feat/dark-mode","fix/login-redirect","feat/search","chore/deps","fix/image-sizes","feat/newsletter","fix/cache-headers"],S=["Fix cart total rounding","Add dark mode toggle","Update dependencies","Speed up the product grid","Fix login redirect loop","Add sitemap","Tidy the footer links","Cache the pricing page","Add newsletter signup","Fix image sizes on mobile","Bump Next.js","Add search to the docs","Handle empty states","Retry failed webhooks","Move env checks to startup","Shorten the onboarding copy","Add health endpoint","Fix timezone in the event list","Split the dashboard bundle","Add RSS feed"],T={supabase_project:["shop-prod","portal-main","crm-core","store-db"],neon_project:["analytics","reporting","billing-ledger","metrics-pg"],firestore:["notes-app","mobile-sync","feedback-inbox","event-chat"],turso_database:["edge-cache","geo-lookup","docs-search","flags"],upstash_redis:["sessions","rate-limits","queue-cache","page-cache"],d1_database:["events-log","link-clicks","form-entries","audit-trail"]},b=["acme-studio","orbit-labs","nimbus-works","pixel-harbor","tidal-digital","ember-co"],x=[{level:"error",method:"POST",path:"/api/checkout",status:500,message:"TypeError: Cannot read properties of undefined (reading 'price')"},{level:"warning",method:"GET",path:"/products",status:200,message:"Slow query: products list took 1840 ms"},{level:"error",method:"GET",path:"/api/search",status:504,message:"Task timed out after 10.02 seconds"},{level:"warning",method:"GET",path:"/",status:200,message:"Image optimization fell back to the original file (unsupported format)"},{level:"error",method:"POST",path:"/api/webhooks/payments",status:401,message:"Webhook signature didn't match"},{level:"fatal",method:"GET",path:"/api/report",status:500,message:"Error: connect ECONNREFUSED (database connection pool exhausted)"},{level:"warning",method:"GET",path:"/blog/[slug]",status:404,message:'Post not found for slug "spring-sale-2025"'},{level:"error",method:"PUT",path:"/api/profile",status:422,message:"ZodError: email must be a valid email"}];async function D(e){let{db:t,seed:a,now:i}=e,n=(0,g.k)(a,"apps"),s=n.pick(I),o={id:`team_${(0,g.g)(24,a,"team")}`,name:s.name,slug:s.slug},d=(0,g.T)(a,"account","vercel"),l=(0,m.$)(i,n.int(120,300)*m.h),c=(0,m.$)(i,n.int(3,50)*m.E);await t.insert(r.accounts).values({id:d,provider:"vercel",label:o.name,credentialCiphertext:"demo",credentialIv:"demo",credentialKind:"Access token",status:"ok",lastTestAt:c,lastSyncAt:c,createdAt:l,updatedAt:c});let u=n.shuffle(y).slice(0,n.int(5,8)).sort().map((e,t)=>({id:(0,g.T)(a,"app",e),index:t,name:e,externalId:`prj_${(0,g.g)(28,a,"project",e)}`,host:k(e),createdAt:(0,m.$)(i,n.int(95,400)*m.h-n.int(0,23)*m.w)}));return await t.insert(r.resources).values(u.map(e=>({id:e.id,accountId:d,kind:"app",externalId:e.externalId,name:e.name,monitored:!0,firstSeenAt:e.createdAt,lastSeenAt:c,createdAt:e.createdAt,updatedAt:c,meta:{teamId:o.id,teamSlug:o.slug,teamName:o.name,framework:n.pick(v),productionBranch:"main",createdAt:e.createdAt.toISOString(),repo:`example-org/${e.name}`,repoType:"github",functionRegions:[n.pick($)]}}))),await t.insert(r.deployments).values(function(e,t){let{seed:a,now:i}=e,n=(0,g.k)(a,"deployments"),r=n.pick(t).id,s=n.pick(t).id,o=[];for(let e of t){let t=(t,r,s,d,l)=>{let c=(0,m.$)(i,s),u=new Date(c.getTime()+1e3*n.int(3,12)),p="ready"===d?new Date(u.getTime()+1e3*n.int(25,160)):null,h="production"===r?"main":n.pick(_);o.push({id:(0,g.T)(a,"deployment",e.name,t),resourceId:e.id,externalId:`dpl_${(0,g.g)(24,a,"deployment",e.name,t)}`,state:d,target:r,branch:h,commitSha:(0,g.p)(40,a,"commit",e.name,t),commitMessage:l??n.pick(S),source:"git",url:k(`${e.name}-git-${h.replace(/[^a-z0-9]+/g,"-")}-${(0,g.g)(9,a,"deployment-url",e.name,t).toLowerCase()}`),buildingAt:u,readyAt:p,createdAtProvider:c,isCurrent:!1,isPreviousProduction:!1,createdAt:c,updatedAt:p??u})},d=e.id===r,l=n.int(2,5);for(let e=0;e<l;e++){let a=0===e?Math.max(d?5*m.w:0,n.int(1,96)*m.w-n.int(0,40)*m.E):n.int(4+4*e,6+6*e)*m.h+n.int(0,23)*m.w;t(e,"production",a,"ready")}let c=n.int(0,3);for(let e=0;e<c;e++)t(10+e,"preview",n.int(2,240)*m.w+n.int(0,59)*m.E,"ready");d&&t(20,"production",n.int(30,240)*m.E,"error","Refactor the checkout form"),e.id===s&&t(21,"preview",n.int(1,6)*m.E,"building")}for(let e of t){let t=o.filter(t=>t.resourceId===e.id&&"production"===t.target&&"ready"===t.state).map(e=>({id:e.externalId,createdAt:e.createdAtProvider})),{currentId:a,previousId:i}=(0,w.a)(t,null);for(let t of o)t.resourceId===e.id&&(t.isCurrent=t.externalId===a,t.isPreviousProduction=t.externalId===i)}return o}(e,u)),{accountId:d,team:o,apps:u}}async function E(e,t,a){let{db:i,seed:n,now:s}=e,o=(0,g.k)(n,"snapshots"),d=(0,m.$)(s,1e3*o.int(5,40));await i.insert(r.snapshots).values(t.apps.map(e=>{var t,i;let n,r,l,c,u,p=a.filter(t=>t.appId===e.id),g=(0,A.V)({monitors:p.map(e=>e.state),building:!1,dbPaused:!1}),h=p.find(e=>"err"===e.state)??p.find(e=>"warn"===e.state),f=h?.stateSince??new Date(Math.max(...p.map(e=>e.stateSince.getTime())));return{resourceId:e.id,state:g,stateSince:f,collectedAt:d,data:{code:h?.lastStatus??null,latencyMs:p[0]?.lastLatencyMs??null,dbPaused:!1,pageviews:(t=o,i=s,r=Math.floor((n=(0,m.$)(i,t.int(2,25)*m.E)).getTime()/m.w)*m.w,l=t.int(20,400),{enabled:!0,total24h:u=(c=Array.from({length:24},(e,a)=>{let i=r-(23-a)*m.w,n=.15+.85*Math.max(0,Math.sin(((new Date(i).getUTCHours()+7)%24-6)/24*2*Math.PI));return[new Date(i).toISOString(),Math.round(l*n*(.7+.6*t.next()))]})).reduce((e,[,t])=>e+t,0),visitors24h:Math.round(u*(.3+.2*t.next())),hourly:c,readAt:n.toISOString()})}}}))}var M=e.i(169286),C=e.i(273133),O=e.i(688275),P=e.i(697365);let z="demo",R={supabase:"Access token",neon:"API key",firebase:"Service account",turso:"Platform API token",upstash:"Developer API key",cloudflare:"API token"};async function B(e,t){let{db:a,seed:i,now:n}=e,s=(0,g.k)(i,"databases"),o=t.team,d=e=>(0,g.T)(i,"account",e),l=(0,m.$)(n,s.int(4,40)*m.E);await a.insert(r.accounts).values(["supabase","neon","firebase","turso","upstash","cloudflare"].map(e=>{let t=(0,m.$)(n,s.int(60,280)*m.h);return{id:d(e),provider:e,label:"firebase"===e?`${o.slug}-firebase`:o.name,credentialCiphertext:z,credentialIv:z,credentialKind:R[e],status:"ok",lastTestAt:l,lastSyncAt:l,createdAt:t,updatedAt:l}}));let c=(0,g.p)(32,i,"cloudflare-account"),u=[{kind:"supabase_project",provider:"supabase",externalId:(0,g.g)(20,i,"supabase-ref").toLowerCase().replace(/[0-9]/g,"x")},{kind:"neon_project",provider:"neon",externalId:`${s.pick(["silent","quiet","misty","bold","calm"])}-${s.pick(["river","meadow","forest","harbor","dune"])}-${(0,g.p)(8,i,"neon-id")}`},{kind:"firestore",provider:"firebase",externalId:`${o.slug.split("-")[0]}-notes-${(0,g.p)(5,i,"firebase-id")}`},{kind:"turso_database",provider:"turso",externalId:(0,g.T)(i,"turso-db")},{kind:"upstash_redis",provider:"upstash",externalId:(0,g.T)(i,"upstash-db")},{kind:"d1_database",provider:"cloudflare",externalId:(0,g.T)(i,"d1-db")}].map(({kind:e,provider:t,externalId:a})=>{let r=s.pick(T[e]),l=(0,m.$)(n,s.int(40,300)*m.h),u="supabase_project"===e?{orgSlug:o.slug,region:"ap-southeast-1",pgVersion:"17.4.1.054",createdAt:l.toISOString(),status:"ACTIVE_HEALTHY"}:"neon_project"===e?{orgId:`org-${(0,g.p)(8,i,"neon-org")}`,region:"aws-ap-southeast-1",pgVersion:17,createdAt:l.toISOString()}:"firestore"===e?{projectId:a}:"turso_database"===e?{org:o.slug,group:"default",region:"sin"}:"upstash_redis"===e?{region:"ap-southeast-1",type:"free"}:{accountId:c,createdAt:l.toISOString()};return{id:(0,g.T)(i,"db",e),kind:e,name:r,externalId:a,accountId:d(t),meta:u,createdAt:l}});await a.insert(r.resources).values(u.map(e=>({id:e.id,accountId:e.accountId,kind:e.kind,externalId:e.externalId,name:e.name,monitored:!0,meta:e.meta,firstSeenAt:e.createdAt,lastSeenAt:l,createdAt:e.createdAt,updatedAt:l})));let p=e=>u.find(t=>t.kind===e),h=e=>(0,m.$)(n,e*m.E+1e3*s.int(0,50)),f=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)),w=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+1,1)),A=(n.getTime()-f.getTime())/(w.getTime()-f.getTime()),k=[{id:`ep-${(0,g.g)(12,i,"neon-ep").toLowerCase()}`,branchId:`br-${(0,g.g)(12,i,"neon-br-main").toLowerCase()}`,state:"idle",pendingState:null,disabled:!1,minCu:.25,maxCu:2,lastActive:(0,m.$)(n,s.int(20,300)*m.E).toISOString()}],y=Math.round((8+50*A+s.int(0,10))*3600),I=(0,O.p)({endpoints:k,computeSeconds:y}),v=[{id:p("supabase_project").id,state:"ok",since:(0,m.$)(n,s.int(20,90)*m.h),at:h(1),data:{status:"ACTIVE_HEALTHY",region:"ap-southeast-1",pgVersion:"17.4.1.054",orgSlug:o.slug,freeOrg:!0,lastTrafficAt:(0,m.$)(n,s.int(3,50)*m.E).toISOString(),trafficAt:(0,m.$)(n,s.int(1,4)*m.E).toISOString(),health:[{name:"db",status:"ACTIVE_HEALTHY"},{name:"auth",status:"ACTIVE_HEALTHY"},{name:"rest",status:"ACTIVE_HEALTHY"},{name:"storage",status:"ACTIVE_HEALTHY"}],healthAt:(0,m.$)(n,s.int(1,4)*m.E).toISOString(),sizeBytes:1048576*s.int(38,140)+s.int(0,1048576),sizeAt:(0,m.$)(n,s.int(4,20)*m.w).toISOString(),lastGoodState:"ok"}},{id:p("neon_project").id,state:"ok"===I.state?"ok":"idle",since:(0,m.$)(n,s.int(20,300)*m.E),at:h(s.int(2,9)),data:{region:"aws-ap-southeast-1",pgVersion:17,orgId:p("neon_project").meta.orgId,computeSeconds:y,transferBytes:Math.round((.2+1.6*A)*0x40000000),periodStart:f.toISOString(),periodEnd:w.toISOString(),activeSeconds:Math.round(y/1.4),endpoints:k,branches:[{id:k[0].branchId,name:"main",isDefault:!0,logicalSize:1048576*s.int(120,380)},{id:`br-${(0,g.g)(12,i,"neon-br-preview").toLowerCase()}`,name:"preview/reporting",isDefault:!1,logicalSize:1048576*s.int(60,160)}],lastGoodState:"ok"===I.state?"ok":"idle"}},{id:p("firestore").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(1),data:{displayName:p("firestore").name,latencyMs:s.int(70,190),reads:s.int(4e3,22e3),writes:s.int(800,6e3),deletes:s.int(20,400),opsAt:(0,m.$)(n,s.int(10,50)*m.E).toISOString(),authUsers:s.int(80,2400),authAt:(0,m.$)(n,s.int(2,20)*m.w).toISOString(),lastGoodState:"ok"}},{id:p("turso_database").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(s.int(5,50)),data:{org:o.slug,group:"default",primaryRegion:"sin",plan:"free",blockReads:!1,blockWrites:!1,rowsRead:Math.round((20+140*A)*1e6),rowsWritten:Math.round((.2+2.2*A)*1e6),storageBytes:1048576*s.int(40,600),orgRowsRead:Math.round((25+160*A)*1e6),orgRowsWritten:Math.round((.3+2.6*A)*1e6),orgStorageBytes:1048576*s.int(700,1400),orgDatabases:3,usageAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),lastGoodState:"ok"}},{id:p("upstash_redis").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(s.int(5,50)),data:{region:"ap-southeast-1",status:"active",type:"free",dailyCommands:s.int(2e3,9e3),monthlyRequests:Math.round((20+180*A)*1e3)+s.int(0,999),storageBytes:1048576*s.int(6,90),monthlyBandwidthBytes:Math.round((.1+2.4*A)*0x40000000),statsAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),lastGoodState:"ok"}},{id:p("d1_database").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(s.int(5,50)),data:{accountId:c,createdAt:p("d1_database").createdAt.toISOString(),sizeBytes:1048576*s.int(4,120),numTables:s.int(4,12),readReplication:"disabled",detailsAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),rowsRead:s.int(4e4,9e5),rowsWritten:s.int(1e3,3e4),readQueries:s.int(4e3,6e4),writeQueries:s.int(300,6e3),accountRowsRead:s.int(9e5,18e5),accountRowsWritten:s.int(3e4,55e3),accountSizeBytes:1048576*s.int(200,900),accountDatabases:2,usageDay:n.toISOString().slice(0,10),usageAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),lastGoodState:"ok"}}];await a.insert(r.snapshots).values(v.map(e=>({resourceId:e.id,state:e.state,stateSince:e.since,collectedAt:e.at,data:e.data}))),await a.insert(r.settings).values({key:P.F,value:{[d("cloudflare")]:{d1:"ok",analytics:"ok",at:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),note:null}},createdAt:(0,m.$)(n,30*m.h),updatedAt:n});let $=["supabase_project","neon_project","turso_database","upstash_redis","firestore","d1_database","supabase_project","neon_project"],_=t.apps.slice(0,Math.max(4,t.apps.length-1));return await a.insert(r.links).values(_.map((e,t)=>({id:(0,g.T)(i,"link",e.name),fromResourceId:e.id,toResourceId:p($[t]).id,kind:"uses_db",source:"manual",createdAt:(0,m.$)(n,s.int(20,90)*m.h),updatedAt:(0,m.$)(n,s.int(1,19)*m.h)}))),await j(e,p("supabase_project").id),await a.insert(r.keepActive).values({resourceId:p("supabase_project").id,keep:!0,autoRestore:!1,lastKeepAliveAt:(0,m.$)(n,s.int(2,20)*m.w),updatedAt:(0,m.$)(n,12*m.h)}),{dbs:u.map(({id:e,kind:t,name:a,externalId:i,accountId:n})=>({id:e,kind:t,name:a,externalId:i,accountId:n})),cloudflare:{accountId:d("cloudflare"),cfAccountId:c,label:o.name}}}async function j(e,t){let{db:a,seed:i,now:n}=e,r=(0,g.k)(i,"compute"),s=(0,m.$)(n,r.int(1,4)*m.E),o=Array.from({length:24},(e,a)=>{let i=new Date((0,C.b)(n).getTime()-a*m.w),s=Math.round((6+18*r.next())*10)/10,o=Math.round((34+14*r.next())*10)/10;return{resourceId:t,hour:i,samples:0===a?Math.max(1,Math.floor((n.getTime()-i.getTime())/(5*m.E))):12,cpuSamples:0===a?1:11,cpuAvg:s,cpuMax:Math.round(10*Math.min(70,s*(1.4+r.next())))/10,memAvg:o,memMax:Math.round(10*Math.min(85,o+6*r.next()))/10,diskPct:9.8,connUsed:r.int(8,22),connMax:60}}),d={cpuPct:o[0].cpuAvg,memPct:o[0].memAvg,diskPct:9.8,connUsed:o[0].connUsed,connMax:60,at:s.toISOString(),prev:null,recent:Array.from({length:6},(e,t)=>({at:(0,m.$)(s,(5-t)*5*m.E).toISOString(),cpu:Math.round((6+18*r.next())*10)/10}))};await a.insert(M.A).values({resourceId:t,keyCiphertext:z,keyIv:z,latest:d,lastTryAt:s,lastOkAt:s,createdAt:(0,m.$)(n,21*m.h),updatedAt:s}),await a.insert(M.l).values(o.filter(e=>e.hour.getTime()<=n.getTime()))}var U=e.i(615089);let L=7*m.h;async function N(e,t,a,i,n,s){let{db:o,seed:c,now:u}=e,h=(0,g.k)(c,"events"),f=[],w=(e,t)=>f.push({id:(0,g.T)(c,"event",e),count:1,...t});for(let e of(0,l.f)(await o.execute(d.B`select external_id, resource_id, state, branch, commit_sha, building_at, ready_at, created_at_provider from ops.deployments
2
- where created_at_provider > ${new Date(u.getTime()-L).toISOString()}::timestamptz`))){let t=`${e.branch??"unknown branch"} \xb7 ${e.commit_sha?e.commit_sha.slice(0,7):"no commit"}`,a=new Date(e.created_at_provider),i=e.building_at?new Date(e.building_at):a;w(`${e.external_id}:start`,{at:i,resourceId:e.resource_id,type:"deployment",kind:"build",message:"Deployment started",detail:t,reason:"DeployStarted"}),"ready"===e.state&&e.ready_at&&w(`${e.external_id}:ready`,{at:new Date(e.ready_at),resourceId:e.resource_id,type:"deployment",kind:"ok",message:"Deployment ready",detail:t,reason:"DeployReady"}),"error"===e.state&&w(`${e.external_id}:failed`,{at:new Date(i.getTime()+1e3*h.int(40,110)),resourceId:e.resource_id,type:"deployment",kind:"fail",message:"Deployment failed",detail:t,reason:"DeployFailed"})}let A=a.outage,k=a.monitors.find(e=>e.id===A.monitorId),y=(e,t,a,i,n,r,s)=>w(e,{at:t,resourceId:a,type:"monitor",kind:i,message:n,detail:r,reason:s});y("outage:warn",A.startedAt,A.appId,"warn","Monitor degraded","HTTP 503","MonitorDegraded"),y("outage:err",new Date(A.startedAt.getTime()+10*m.E),A.appId,"err","Monitor down","HTTP 503 on 3 checks in a row","MonitorDown"),y("outage:ok",A.recoveredAt,A.appId,"ok","Monitor recovered",`${k.path} answers again`,"MonitorRecovered"),a.degraded&&y("degraded:warn",a.degraded.since,a.degraded.appId,"warn","Monitor degraded","No answer within 5 s","MonitorDegraded");let I=n.certSoon,v=n.zoneSoon,$=new Date(I.notAfter.getTime()-14*m.h+h.int(5,50)*m.E),_=new Date(v.expiresAt.getTime()-30*m.h+h.int(5,50)*m.E);w("net:cert",{at:$,resourceId:I.id,type:"system",kind:"warn",message:`${I.name} needs attention`,detail:"Certificate expires in 13 days",reason:"NetworkAttention"}),w("net:zone",{at:_,resourceId:v.id,type:"system",kind:"warn",message:`${v.name} needs attention`,detail:"Domain expires in 29 days",reason:"NetworkAttention"});let S=new Date(u);S.setUTCHours(20,0,0,0),S.getTime()>u.getTime()-5*m.E&&S.setTime(S.getTime()-m.h);for(let e=0;e<7;e++){let t=new Date(S.getTime()-e*m.h+1e3*h.int(20,90));w(`daily:${e}`,{at:t,resourceId:null,type:"system",kind:"ok",message:"Daily jobs finished",detail:"Rollups, retention, certificates and domain expiry",reason:"DailyFinished"})}let T=(0,U.demoUserId)(c),b=(e,t,a,i,n=null)=>w(`action:${e}`,{at:(0,m.$)(u,t*m.h+h.int(1,10)*m.w+h.int(0,59)*m.E),resourceId:i,type:"action",kind:"ok",message:a,detail:n,actorUserId:T,reason:"Action"}),x=a.monitors.find(e=>"/api/health"===e.path)??a.monitors[0],D=t.apps[0],E=i.dbs.find(e=>"supabase_project"===e.kind);b("monitor-added",6,`Monitor added: ${(0,p.F)(x.url)}`,x.appId),b("db-link",5,`Database link: ${D.name} → ${E.name}`,D.id),b("keep-active",5,`Keep active on: ${E.name}`,E.id),b("rule",4,"Alert rule edited: HighLatency",null,"threshold 1,500 ms"),b("maintenance",3,"Maintenance window added",null,"Sundays 02:00 WIB, 30 min"),b("check-now",1,`Check now: ${(0,p.F)(k.url)}`,k.appId);let M=s.resolved.credential;w("action:credential",{at:new Date(M.resolvedAt.getTime()-h.int(2,9)*m.E),resourceId:null,type:"action",kind:"ok",message:`Credential replaced: ${M.title}`,detail:"Tested and stored; it no longer expires soon",actorUserId:T,reason:"Action"}),w("action:auto-recheck",{at:new Date(A.startedAt.getTime()+11*m.E+3e3),resourceId:k.appId,type:"action",kind:"err",message:`Auto-actions: Check now: ${(0,p.F)(k.url)}`,detail:null,actorUserId:null,reason:"Action"}),await o.insert(r.events).values(f.sort((e,t)=>e.at.getTime()-t.at.getTime()))}let F="76.76.21.21";async function H(e,t,a){let{db:i,seed:n,now:s}=e,o=(0,g.k)(n,"network"),d=e=>(0,m.$)(s,o.int(10,60*e)*m.E).toISOString(),l=a.cloudflare,c=o.shuffle(b).slice(0,2).map((e,t)=>({id:(0,g.T)(n,"zone",e),name:k(e),expiresAt:new Date(1===t?s.getTime()+o.int(12,24)*m.h+o.int(1,20)*m.w:s.getTime()+o.int(200,600)*m.h)})),p=e=>e.split("-").slice(1).join("-")||e,h=t.apps,f=[{name:c[0].name,app:h[0]},...[0,1,2].map(e=>({name:`${p(h[e].name)}.${c[0].name}`,app:h[e]})),...[3,4].map(e=>({name:`${p(h[e%h.length].name)}.${c[1].name}`,app:h[e%h.length]}))],w=o.int(1,3),A=f.map((e,t)=>({id:(0,g.T)(n,"domain",e.name),name:e.name,appId:e.app.id,notAfter:new Date(t===w?s.getTime()+o.int(4,9)*m.h+o.int(1,20)*m.w:s.getTime()+o.int(30,85)*m.h)})),y=(e,t,a,i,r,s=null)=>({id:(0,g.p)(32,n,"dns",e,t,a),type:t,name:a,content:i,proxied:r,ttl:r?1:300,comment:s}),I=c.map(e=>{let t=[...A.filter(t=>t.name===e.name||t.name.endsWith(`.${e.name}`)).map(t=>y(e.name,"A",t.name,F,!1,"Vercel")),y(e.name,"MX",e.name,k("mx1.mail"),!1),y(e.name,"TXT",e.name,`v=spf1 include:_spf.${k("mail")} ~all`,!1),y(e.name,"A",`legacy.${e.name}`,`192.0.2.${o.int(10,200)}`,!0,"Old server, kept for redirects")],a={expiresAt:e.expiresAt.toISOString(),registrar:"Example Registrar, Inc.",error:null,checkedAt:d(20)},i={status:"active",paused:!1,nameServers:[k("ada.ns"),k("bob.ns")],accountId:l.cfAccountId,checkedAt:d(1)},n=(0,u.G)({status:i.status,paused:i.paused,rdap:a},s),r={zone:i,ssl:{mode:"strict",error:null},records:t,recordsTruncated:!1,cfErrors:[],certs:[{type:"universal",status:"active",hosts:[e.name,`*.${e.name}`],expiresOn:new Date(s.getTime()+o.int(40,80)*m.h).toISOString()}],rdap:a,reasons:n.reasons};return{z:e,records:t,rdap:a,state:n.state,data:r}}),v=(0,m.$)(s,o.int(150,380)*m.h),$=(0,m.$)(s,o.int(5,50)*m.E);await i.insert(r.resources).values(c.map(e=>({id:e.id,accountId:l.accountId,kind:"zone",externalId:(0,g.p)(32,n,"zone-id",e.name),name:e.name,monitored:!0,meta:{status:"active",accountId:l.cfAccountId,accountName:l.label},firstSeenAt:v,lastSeenAt:$,createdAt:v,updatedAt:$}))),await i.insert(r.resources).values(A.map(e=>{let a=h.find(t=>t.id===e.appId);return{id:e.id,accountId:t.accountId,kind:"domain",externalId:e.name,name:e.name,parentId:e.appId,monitored:!0,meta:{redirect:null,verified:!0,projectId:a.externalId},firstSeenAt:v,lastSeenAt:$,createdAt:v,updatedAt:$}}));let _=["Let's Encrypt","Google Trust Services"];await i.insert(r.snapshots).values([...I.map(e=>({resourceId:e.z.id,state:e.state,stateSince:"ok"===e.state?v:new Date(e.z.expiresAt.getTime()-30*m.h),data:e.data,collectedAt:$})),...A.map(e=>{let t=I.find(t=>e.name===t.z.name||e.name.endsWith(`.${t.z.name}`)),a={notAfter:e.notAfter.toISOString(),issuer:o.pick(_),authorized:!0,error:null,checkedAt:d(19)},i={misconfigured:!1,configuredBy:"A",recommendedIps:[F],checkedAt:d(6)},n=(0,u.k)({host:e.name,tls:a,vercel:i,records:(0,u.Q)(e.name,t.records),zoneRdap:t.rdap},s),r="ok"===n.state?v:new Date(Math.min(e.notAfter.getTime()-14*m.h,t.z.expiresAt.getTime()-30*m.h));return{resourceId:e.id,state:n.state,stateSince:r,data:{tls:a,vercel:i,reasons:n.reasons},collectedAt:$}})]);let S=I[0].records.find(e=>"A"===e.type&&e.name===c[0].name&&e.content===F);return{zones:c,domains:A,certSoon:A[w],zoneSoon:c[1],vercelRecord:{id:S.id,name:S.name,zoneId:c[0].id}}}let K=["vercel","supabase","neon","cloudflare","firebase","gcp"];async function V(e,t){let{db:a,seed:i,now:n}=e,s=(0,g.k)(i,"logs"),o=(0,l.f)(await a.execute(d.B`select resource_id, external_id from ops.deployments where is_current`)),c=s.shuffle(t.apps).slice(0,3).flatMap((e,t)=>Array.from({length:s.int(4,8)},(a,r)=>{let d=s.pick(x);return{id:(0,g.T)(i,"log",e.name,r),resourceId:e.id,deploymentId:o.find(t=>t.resource_id===e.id)?.external_id??`dpl_${(0,g.g)(24,i,"log-dpl",t)}`,rowId:`${(0,g.g)(10,i,"log-row",e.name,r).toLowerCase()}-${r}`,at:(0,m.$)(n,s.int(3,2760)*m.E+1e3*s.int(0,59)),level:d.level,message:d.message,requestMethod:d.method,requestPath:d.path,statusCode:d.status,source:"serverless"}}));await a.insert(r.storedLogs).values(c)}async function W(e){let{db:t,seed:a,now:i}=e,n=(0,g.k)(a,"provider-status"),s=(0,m.$)(i,n.int(1,4)*m.E);await t.insert(r.providerStatus).values(K.map(e=>"cloudflare"===e?{provider:e,state:"info",indicator:"maintenance",description:"Scheduled maintenance",checkedAt:s,lastOkAt:s,error:null,incidents:[{name:"Scheduled maintenance in one Asia-Pacific data center",impact:"maintenance",startedAt:(0,m.$)(i,n.int(1,3)*m.w).toISOString(),url:null}]}:{provider:e,state:"ok",indicator:"none",description:"All Systems Operational",incidents:[],checkedAt:s,lastOkAt:s,error:null}))}async function G(e){let{db:t,seed:a,now:i}=e,n=(0,g.k)(a,"ai-usage"),r=(0,g.T)(a,"ai-agent","console"),s=n.int(70,140),o=[],l=[],c=[],u=[],p=[],h=[];for(let e=0;e<s;e++){o.push(i.getTime()-n.int(2,10080)*m.E);let e=n.chance(.04);p.push(e?429:200),l.push(e?0:n.int(600,4200)),c.push(e?0:n.int(80,700)),u.push(e?n.int(80,300):n.int(700,4800)),h.push(n.int(1,2))}let f=e=>e.reduce((e,t)=>e+t,0),w=new Date(Math.max(...o));await t.execute(d.B`
1
+ module.exports=[601533,e=>{"use strict";var t=e.i(632019),a=e.i(7584),i=e.i(488077),n=e.i(614755),r=e.i(837137),s=e.i(159203),o=e.i(745614),d=e.i(351674),l=e.i(263251),c=e.i(927262),u=e.i(233711),p=e.i(469762),m=e.i(988866),g=e.i(109505);let h=(e,t)=>`${e} ${t}${1===e?"":"s"}`;async function f(e,t,a,i,n){let s,o,f,w,A,k,y,{db:I,seed:v,now:$}=e,_=(0,g.k)(v,"alerts"),S=(...e)=>(0,g.T)(v,"alert",...e),T=e=>t.apps.find(t=>t.id===e)?.name??"app",b=(0,l.f)(await I.execute(d.B`select resource_id, external_id, state, target, commit_sha, created_at_provider, is_current, is_previous_production from ops.deployments`)),x=b.find(e=>"error"===e.state&&"production"===e.target),D={appId:x.resource_id,appName:T(x.resource_id),sha:x.commit_sha.slice(0,7),createdAt:new Date(x.created_at_provider),currentExternalId:b.find(e=>e.resource_id===x.resource_id&&e.is_current)?.external_id??null},E=(e,t,a)=>{let i=a.resolvedAt??null;return{ruleKey:e,subject:t,severity:c._[e].severity,resourceId:null,accountId:null,okStreak:2*!!i,lastSeenAt:i??(0,m.$)($,1e3*_.int(5,55)),lastSampleAt:null,notifiedOpen:"info"!==c._[e].severity,lastNotifiedAt:i??new Date(a.startedAt.getTime()+m.E),pending:null,pendingSince:null,...a}},M=n.certSoon,C=(0,u.g)(M.notAfter,$)??0,O=n.zoneSoon,P=(0,u.g)(O.expiresAt,$)??0,z=[E("DeploymentFailed",D.appId,{id:S("firing","deploy"),resourceId:D.appId,title:D.appName,message:`Production deployment ${D.sha} failed.`,startedAt:new Date(D.createdAt.getTime()+1e3*_.int(60,150))}),E("CertExpiringSoon",M.id,{id:S("firing","cert"),resourceId:M.id,title:M.name,message:`The TLS certificate of ${M.name} expires in ${h(C,"day")}.`,startedAt:new Date(M.notAfter.getTime()-14*m.h+_.int(5,55)*m.E)}),E("DomainExpiringSoon",O.id,{id:S("firing","zone"),resourceId:O.id,title:O.name,message:`${O.name} expires in ${h(P,"day")}.`,startedAt:new Date(O.expiresAt.getTime()-30*m.h+_.int(5,55)*m.E)})],R=a.outage,B=a.monitors.find(e=>e.id===R.monitorId),j=t.apps.find(e=>e.id!==D.appId)??t.apps[0],U=e=>i.dbs.find(t=>t.kind===e),L=(e,t)=>(0,m.$)($,e*m.h+t*m.w+_.int(0,50)*m.E),N=(e,t)=>new Date(e.getTime()+t*m.E),F=(e,t)=>{let i=a.monitors.find(e=>e.id===t.monitorId);return E("HighLatency",i.id,{id:S("resolved",e),resourceId:i.appId,title:`${T(i.appId)} ${i.path}`,message:`p95 ${t.p95.toLocaleString("en-US")} ms over the last 10 minutes (limit 1,500 ms).`,startedAt:t.firedAt,resolvedAt:t.resolvedAt})},H={start:L(4,_.int(1,9)),sha:(0,g.p)(7,v,"old-failed",j.name)},K=U("upstash_redis"),V=U("firestore"),G=U("supabase_project"),W=i.cloudflare.label,Y={outage:E("MonitorDown",B.id,{id:S("resolved","outage"),resourceId:B.appId,title:`${T(B.appId)} ${B.path}`,message:`${(0,p.F)(B.url)} returned HTTP 503 on 3 consecutive checks.`,startedAt:new Date(R.startedAt.getTime()+10*m.E),resolvedAt:R.recoveredAt}),latencyA:F("latency-a",a.slow[0]),latencyB:F("latency-b",a.slow[1]),oldDeploy:E("DeploymentFailed",j.id,{id:S("resolved","old-deploy"),resourceId:j.id,title:j.name,message:`Production deployment ${H.sha} failed.`,startedAt:H.start,resolvedAt:N(H.start,_.int(35,70))}),collector:(s=L(6,_.int(1,10)),E("CollectorStale","collector",{id:S("resolved","collector"),title:"collector",message:"The last minute run finished 6 min ago.",startedAt:s,resolvedAt:N(s,_.int(4,9))})),autoPause:(o=L(6,_.int(12,20)),E("AutoPauseRisk",G.id,{id:S("resolved","auto-pause"),resourceId:G.id,title:G.name,message:"No API traffic for 4 days. Supabase pauses free projects after about 7 days.",startedAt:o,resolvedAt:N(o,60*_.int(20,30))})),quota:(f=L(6,_.int(1,8)),E("DbQuotaHigh",K.id,{id:S("resolved","db-quota"),resourceId:K.id,title:K.name,message:`${K.name}: Commands at ${_.int(81,88)}% of the free plan.`,startedAt:f,resolvedAt:N(f,60*_.int(3,6))})),firestore:(w=L(3,_.int(1,6)),E("FirestoreQuotaHigh",V.id,{id:S("resolved","firestore"),resourceId:V.id,title:V.name,message:`${V.name} read ${_.int(40500,46e3).toLocaleString("en-US")} of 50,000 documents today (${_.int(81,92)}%).`,startedAt:w,resolvedAt:N(w,60*_.int(2,5))})),proxied:(A=L(5,_.int(12,20)),E("DnsProxiedToVercel",(k=n.vercelRecord).id,{id:S("resolved","proxied"),resourceId:k.zoneId,title:k.name,message:`${k.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`,startedAt:A,resolvedAt:N(A,24*_.int(2,4)*60)})),credential:(y=L(6,_.int(14,22)),E("CredentialExpiring",i.cloudflare.accountId,{id:S("resolved","credential"),accountId:i.cloudflare.accountId,title:`cloudflare \xb7 ${W}`,message:`The cloudflare credential ${W} expires in 9 days.`,startedAt:y,resolvedAt:N(y,24*_.int(1,2)*60+_.int(10,300))}))};return await I.insert(r.alerts).values([...z,...Object.values(Y)]),{firing:{deploy:z[0].id,cert:z[1].id,zone:z[2].id},resolved:{outage:Y.outage.id,oldDeploy:{id:Y.oldDeploy.id,appId:j.id,appName:j.name,previousExternalId:b.find(e=>e.resource_id===j.id&&e.is_previous_production)?.external_id??null,startedAt:Y.oldDeploy.startedAt,resolvedAt:Y.oldDeploy.resolvedAt},credential:{title:Y.credential.title,resolvedAt:Y.credential.resolvedAt}},failedDeploy:D}}var w=e.i(646324),A=e.i(306556);let k=e=>`${e}.example`,y=["acme-shop","orbit-blog","nimbus-docs","pixel-forge","harbor-api","lumen-portal","quartz-admin","tidal-landing","ember-status","cobalt-store","willow-wiki","atlas-dash","sprout-crm","comet-links","fable-notes","maple-events"],I=[{name:"Juniper Labs",slug:"juniper-labs"},{name:"Kestrel Works",slug:"kestrel-works"},{name:"Brightfield Studio",slug:"brightfield-studio"},{name:"Saltmarsh Digital",slug:"saltmarsh-digital"}],v=["nextjs","nextjs","nextjs","vite","astro","sveltekit","remix"],$=["sin1","iad1","fra1","hnd1","sfo1"],_=["feat/checkout-v2","feat/dark-mode","fix/login-redirect","feat/search","chore/deps","fix/image-sizes","feat/newsletter","fix/cache-headers"],S=["Fix cart total rounding","Add dark mode toggle","Update dependencies","Speed up the product grid","Fix login redirect loop","Add sitemap","Tidy the footer links","Cache the pricing page","Add newsletter signup","Fix image sizes on mobile","Bump Next.js","Add search to the docs","Handle empty states","Retry failed webhooks","Move env checks to startup","Shorten the onboarding copy","Add health endpoint","Fix timezone in the event list","Split the dashboard bundle","Add RSS feed"],T={supabase_project:["shop-prod","portal-main","crm-core","store-db"],neon_project:["analytics","reporting","billing-ledger","metrics-pg"],firestore:["notes-app","mobile-sync","feedback-inbox","event-chat"],turso_database:["edge-cache","geo-lookup","docs-search","flags"],upstash_redis:["sessions","rate-limits","queue-cache","page-cache"],d1_database:["events-log","link-clicks","form-entries","audit-trail"]},b=["acme-studio","orbit-labs","nimbus-works","pixel-harbor","tidal-digital","ember-co"],x=[{level:"error",method:"POST",path:"/api/checkout",status:500,message:"TypeError: Cannot read properties of undefined (reading 'price')"},{level:"warning",method:"GET",path:"/products",status:200,message:"Slow query: products list took 1840 ms"},{level:"error",method:"GET",path:"/api/search",status:504,message:"Task timed out after 10.02 seconds"},{level:"warning",method:"GET",path:"/",status:200,message:"Image optimization fell back to the original file (unsupported format)"},{level:"error",method:"POST",path:"/api/webhooks/payments",status:401,message:"Webhook signature didn't match"},{level:"fatal",method:"GET",path:"/api/report",status:500,message:"Error: connect ECONNREFUSED (database connection pool exhausted)"},{level:"warning",method:"GET",path:"/blog/[slug]",status:404,message:'Post not found for slug "spring-sale-2025"'},{level:"error",method:"PUT",path:"/api/profile",status:422,message:"ZodError: email must be a valid email"}];async function D(e){let{db:t,seed:a,now:i}=e,n=(0,g.k)(a,"apps"),s=n.pick(I),o={id:`team_${(0,g.g)(24,a,"team")}`,name:s.name,slug:s.slug},d=(0,g.T)(a,"account","vercel"),l=(0,m.$)(i,n.int(120,300)*m.h),c=(0,m.$)(i,n.int(3,50)*m.E);await t.insert(r.accounts).values({id:d,provider:"vercel",label:o.name,credentialCiphertext:"demo",credentialIv:"demo",credentialKind:"Access token",status:"ok",lastTestAt:c,lastSyncAt:c,createdAt:l,updatedAt:c});let u=n.shuffle(y).slice(0,n.int(5,8)).sort().map((e,t)=>({id:(0,g.T)(a,"app",e),index:t,name:e,externalId:`prj_${(0,g.g)(28,a,"project",e)}`,host:k(e),createdAt:(0,m.$)(i,n.int(95,400)*m.h-n.int(0,23)*m.w)}));return await t.insert(r.resources).values(u.map(e=>({id:e.id,accountId:d,kind:"app",externalId:e.externalId,name:e.name,monitored:!0,firstSeenAt:e.createdAt,lastSeenAt:c,createdAt:e.createdAt,updatedAt:c,meta:{teamId:o.id,teamSlug:o.slug,teamName:o.name,framework:n.pick(v),productionBranch:"main",createdAt:e.createdAt.toISOString(),repo:`example-org/${e.name}`,repoType:"github",functionRegions:[n.pick($)]}}))),await t.insert(r.deployments).values(function(e,t){let{seed:a,now:i}=e,n=(0,g.k)(a,"deployments"),r=n.pick(t).id,s=n.pick(t).id,o=[];for(let e of t){let t=(t,r,s,d,l)=>{let c=(0,m.$)(i,s),u=new Date(c.getTime()+1e3*n.int(3,12)),p="ready"===d?new Date(u.getTime()+1e3*n.int(25,160)):null,h="production"===r?"main":n.pick(_);o.push({id:(0,g.T)(a,"deployment",e.name,t),resourceId:e.id,externalId:`dpl_${(0,g.g)(24,a,"deployment",e.name,t)}`,state:d,target:r,branch:h,commitSha:(0,g.p)(40,a,"commit",e.name,t),commitMessage:l??n.pick(S),source:"git",url:k(`${e.name}-git-${h.replace(/[^a-z0-9]+/g,"-")}-${(0,g.g)(9,a,"deployment-url",e.name,t).toLowerCase()}`),buildingAt:u,readyAt:p,createdAtProvider:c,isCurrent:!1,isPreviousProduction:!1,createdAt:c,updatedAt:p??u})},d=e.id===r,l=n.int(2,5);for(let e=0;e<l;e++){let a=0===e?Math.max(d?5*m.w:0,n.int(1,96)*m.w-n.int(0,40)*m.E):n.int(4+4*e,6+6*e)*m.h+n.int(0,23)*m.w;t(e,"production",a,"ready")}let c=n.int(0,3);for(let e=0;e<c;e++)t(10+e,"preview",n.int(2,240)*m.w+n.int(0,59)*m.E,"ready");d&&t(20,"production",n.int(30,240)*m.E,"error","Refactor the checkout form"),e.id===s&&t(21,"preview",n.int(1,6)*m.E,"building")}for(let e of t){let t=o.filter(t=>t.resourceId===e.id&&"production"===t.target&&"ready"===t.state).map(e=>({id:e.externalId,createdAt:e.createdAtProvider})),{currentId:a,previousId:i}=(0,w.a)(t,null);for(let t of o)t.resourceId===e.id&&(t.isCurrent=t.externalId===a,t.isPreviousProduction=t.externalId===i)}return o}(e,u)),{accountId:d,team:o,apps:u}}async function E(e,t,a){let{db:i,seed:n,now:s}=e,o=(0,g.k)(n,"snapshots"),d=(0,m.$)(s,1e3*o.int(5,40));await i.insert(r.snapshots).values(t.apps.map(e=>{var t,i;let n,r,l,c,u,p=a.filter(t=>t.appId===e.id),g=(0,A.V)({monitors:p.map(e=>e.state),building:!1,dbPaused:!1}),h=p.find(e=>"err"===e.state)??p.find(e=>"warn"===e.state),f=h?.stateSince??new Date(Math.max(...p.map(e=>e.stateSince.getTime())));return{resourceId:e.id,state:g,stateSince:f,collectedAt:d,data:{code:h?.lastStatus??null,latencyMs:p[0]?.lastLatencyMs??null,dbPaused:!1,pageviews:(t=o,i=s,r=Math.floor((n=(0,m.$)(i,t.int(2,25)*m.E)).getTime()/m.w)*m.w,l=t.int(20,400),{enabled:!0,total24h:u=(c=Array.from({length:24},(e,a)=>{let i=r-(23-a)*m.w,n=.15+.85*Math.max(0,Math.sin(((new Date(i).getUTCHours()+7)%24-6)/24*2*Math.PI));return[new Date(i).toISOString(),Math.round(l*n*(.7+.6*t.next()))]})).reduce((e,[,t])=>e+t,0),visitors24h:Math.round(u*(.3+.2*t.next())),hourly:c,readAt:n.toISOString()})}}}))}var M=e.i(169286),C=e.i(273133),O=e.i(688275),P=e.i(697365);let z="demo",R={supabase:"Access token",neon:"API key",firebase:"Service account",turso:"Platform API token",upstash:"Developer API key",cloudflare:"API token"};async function B(e,t){let{db:a,seed:i,now:n}=e,s=(0,g.k)(i,"databases"),o=t.team,d=e=>(0,g.T)(i,"account",e),l=(0,m.$)(n,s.int(4,40)*m.E);await a.insert(r.accounts).values(["supabase","neon","firebase","turso","upstash","cloudflare"].map(e=>{let t=(0,m.$)(n,s.int(60,280)*m.h);return{id:d(e),provider:e,label:"firebase"===e?`${o.slug}-firebase`:o.name,credentialCiphertext:z,credentialIv:z,credentialKind:R[e],status:"ok",lastTestAt:l,lastSyncAt:l,createdAt:t,updatedAt:l}}));let c=(0,g.p)(32,i,"cloudflare-account"),u=[{kind:"supabase_project",provider:"supabase",externalId:(0,g.g)(20,i,"supabase-ref").toLowerCase().replace(/[0-9]/g,"x")},{kind:"neon_project",provider:"neon",externalId:`${s.pick(["silent","quiet","misty","bold","calm"])}-${s.pick(["river","meadow","forest","harbor","dune"])}-${(0,g.p)(8,i,"neon-id")}`},{kind:"firestore",provider:"firebase",externalId:`${o.slug.split("-")[0]}-notes-${(0,g.p)(5,i,"firebase-id")}`},{kind:"turso_database",provider:"turso",externalId:(0,g.T)(i,"turso-db")},{kind:"upstash_redis",provider:"upstash",externalId:(0,g.T)(i,"upstash-db")},{kind:"d1_database",provider:"cloudflare",externalId:(0,g.T)(i,"d1-db")}].map(({kind:e,provider:t,externalId:a})=>{let r=s.pick(T[e]),l=(0,m.$)(n,s.int(40,300)*m.h),u="supabase_project"===e?{orgSlug:o.slug,region:"ap-southeast-1",pgVersion:"17.4.1.054",createdAt:l.toISOString(),status:"ACTIVE_HEALTHY"}:"neon_project"===e?{orgId:`org-${(0,g.p)(8,i,"neon-org")}`,region:"aws-ap-southeast-1",pgVersion:17,createdAt:l.toISOString()}:"firestore"===e?{projectId:a}:"turso_database"===e?{org:o.slug,group:"default",region:"sin"}:"upstash_redis"===e?{region:"ap-southeast-1",type:"free"}:{accountId:c,createdAt:l.toISOString()};return{id:(0,g.T)(i,"db",e),kind:e,name:r,externalId:a,accountId:d(t),meta:u,createdAt:l}});await a.insert(r.resources).values(u.map(e=>({id:e.id,accountId:e.accountId,kind:e.kind,externalId:e.externalId,name:e.name,monitored:!0,meta:e.meta,firstSeenAt:e.createdAt,lastSeenAt:l,createdAt:e.createdAt,updatedAt:l})));let p=e=>u.find(t=>t.kind===e),h=e=>(0,m.$)(n,e*m.E+1e3*s.int(0,50)),f=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)),w=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+1,1)),A=(n.getTime()-f.getTime())/(w.getTime()-f.getTime()),k=[{id:`ep-${(0,g.g)(12,i,"neon-ep").toLowerCase()}`,branchId:`br-${(0,g.g)(12,i,"neon-br-main").toLowerCase()}`,state:"idle",pendingState:null,disabled:!1,minCu:.25,maxCu:2,lastActive:(0,m.$)(n,s.int(20,300)*m.E).toISOString()}],y=Math.round((8+50*A+s.int(0,10))*3600),I=(0,O.p)({endpoints:k,computeSeconds:y}),v=[{id:p("supabase_project").id,state:"ok",since:(0,m.$)(n,s.int(20,90)*m.h),at:h(1),data:{status:"ACTIVE_HEALTHY",region:"ap-southeast-1",pgVersion:"17.4.1.054",orgSlug:o.slug,freeOrg:!0,lastTrafficAt:(0,m.$)(n,s.int(3,50)*m.E).toISOString(),trafficAt:(0,m.$)(n,s.int(1,4)*m.E).toISOString(),health:[{name:"db",status:"ACTIVE_HEALTHY"},{name:"auth",status:"ACTIVE_HEALTHY"},{name:"rest",status:"ACTIVE_HEALTHY"},{name:"storage",status:"ACTIVE_HEALTHY"}],healthAt:(0,m.$)(n,s.int(1,4)*m.E).toISOString(),sizeBytes:1048576*s.int(38,140)+s.int(0,1048576),sizeAt:(0,m.$)(n,s.int(4,20)*m.w).toISOString(),lastGoodState:"ok"}},{id:p("neon_project").id,state:"ok"===I.state?"ok":"idle",since:(0,m.$)(n,s.int(20,300)*m.E),at:h(s.int(2,9)),data:{region:"aws-ap-southeast-1",pgVersion:17,orgId:p("neon_project").meta.orgId,computeSeconds:y,transferBytes:Math.round((.2+1.6*A)*0x40000000),periodStart:f.toISOString(),periodEnd:w.toISOString(),activeSeconds:Math.round(y/1.4),endpoints:k,branches:[{id:k[0].branchId,name:"main",isDefault:!0,logicalSize:1048576*s.int(120,380)},{id:`br-${(0,g.g)(12,i,"neon-br-preview").toLowerCase()}`,name:"preview/reporting",isDefault:!1,logicalSize:1048576*s.int(60,160)}],lastGoodState:"ok"===I.state?"ok":"idle"}},{id:p("firestore").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(1),data:{displayName:p("firestore").name,latencyMs:s.int(70,190),reads:s.int(4e3,22e3),writes:s.int(800,6e3),deletes:s.int(20,400),opsAt:(0,m.$)(n,s.int(10,50)*m.E).toISOString(),authUsers:s.int(80,2400),authAt:(0,m.$)(n,s.int(2,20)*m.w).toISOString(),lastGoodState:"ok"}},{id:p("turso_database").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(s.int(5,50)),data:{org:o.slug,group:"default",primaryRegion:"sin",plan:"free",blockReads:!1,blockWrites:!1,rowsRead:Math.round((20+140*A)*1e6),rowsWritten:Math.round((.2+2.2*A)*1e6),storageBytes:1048576*s.int(40,600),orgRowsRead:Math.round((25+160*A)*1e6),orgRowsWritten:Math.round((.3+2.6*A)*1e6),orgStorageBytes:1048576*s.int(700,1400),orgDatabases:3,usageAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),lastGoodState:"ok"}},{id:p("upstash_redis").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(s.int(5,50)),data:{region:"ap-southeast-1",status:"active",type:"free",dailyCommands:s.int(2e3,9e3),monthlyRequests:Math.round((20+180*A)*1e3)+s.int(0,999),storageBytes:1048576*s.int(6,90),monthlyBandwidthBytes:Math.round((.1+2.4*A)*0x40000000),statsAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),lastGoodState:"ok"}},{id:p("d1_database").id,state:"ok",since:(0,m.$)(n,s.int(10,60)*m.h),at:h(s.int(5,50)),data:{accountId:c,createdAt:p("d1_database").createdAt.toISOString(),sizeBytes:1048576*s.int(4,120),numTables:s.int(4,12),readReplication:"disabled",detailsAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),rowsRead:s.int(4e4,9e5),rowsWritten:s.int(1e3,3e4),readQueries:s.int(4e3,6e4),writeQueries:s.int(300,6e3),accountRowsRead:s.int(9e5,18e5),accountRowsWritten:s.int(3e4,55e3),accountSizeBytes:1048576*s.int(200,900),accountDatabases:2,usageDay:n.toISOString().slice(0,10),usageAt:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),lastGoodState:"ok"}}];await a.insert(r.snapshots).values(v.map(e=>({resourceId:e.id,state:e.state,stateSince:e.since,collectedAt:e.at,data:e.data}))),await a.insert(r.settings).values({key:P.F,value:{[d("cloudflare")]:{d1:"ok",analytics:"ok",at:(0,m.$)(n,s.int(5,50)*m.E).toISOString(),note:null}},createdAt:(0,m.$)(n,30*m.h),updatedAt:n});let $=["supabase_project","neon_project","turso_database","upstash_redis","firestore","d1_database","supabase_project","neon_project"],_=t.apps.slice(0,Math.max(4,t.apps.length-1));return await a.insert(r.links).values(_.map((e,t)=>({id:(0,g.T)(i,"link",e.name),fromResourceId:e.id,toResourceId:p($[t]).id,kind:"uses_db",source:"manual",createdAt:(0,m.$)(n,s.int(20,90)*m.h),updatedAt:(0,m.$)(n,s.int(1,19)*m.h)}))),await j(e,p("supabase_project").id),await a.insert(r.keepActive).values({resourceId:p("supabase_project").id,keep:!0,autoRestore:!1,lastKeepAliveAt:(0,m.$)(n,s.int(2,20)*m.w),updatedAt:(0,m.$)(n,12*m.h)}),{dbs:u.map(({id:e,kind:t,name:a,externalId:i,accountId:n})=>({id:e,kind:t,name:a,externalId:i,accountId:n})),cloudflare:{accountId:d("cloudflare"),cfAccountId:c,label:o.name}}}async function j(e,t){let{db:a,seed:i,now:n}=e,r=(0,g.k)(i,"compute"),s=(0,m.$)(n,r.int(1,4)*m.E),o=Array.from({length:24},(e,a)=>{let i=new Date((0,C.b)(n).getTime()-a*m.w),s=Math.round((6+18*r.next())*10)/10,o=Math.round((34+14*r.next())*10)/10;return{resourceId:t,hour:i,samples:0===a?Math.max(1,Math.floor((n.getTime()-i.getTime())/(5*m.E))):12,cpuSamples:0===a?1:11,cpuAvg:s,cpuMax:Math.round(10*Math.min(70,s*(1.4+r.next())))/10,memAvg:o,memMax:Math.round(10*Math.min(85,o+6*r.next()))/10,diskPct:9.8,connUsed:r.int(8,22),connMax:60}}),d={cpuPct:o[0].cpuAvg,memPct:o[0].memAvg,diskPct:9.8,connUsed:o[0].connUsed,connMax:60,at:s.toISOString(),prev:null,recent:Array.from({length:6},(e,t)=>({at:(0,m.$)(s,(5-t)*5*m.E).toISOString(),cpu:Math.round((6+18*r.next())*10)/10}))};await a.insert(M.A).values({resourceId:t,keyCiphertext:z,keyIv:z,latest:d,lastTryAt:s,lastOkAt:s,createdAt:(0,m.$)(n,21*m.h),updatedAt:s}),await a.insert(M.l).values(o.filter(e=>e.hour.getTime()<=n.getTime()))}var U=e.i(245710),L=e.i(615089);let N=7*m.h;async function F(e,t,a,i,n,s){let{db:o,seed:c,now:u}=e,h=(0,g.k)(c,"events"),f=[],w=(e,t)=>f.push({id:(0,g.T)(c,"event",e),count:1,...t});for(let e of(0,l.f)(await o.execute(d.B`select external_id, resource_id, state, branch, commit_sha, building_at, ready_at, created_at_provider from ops.deployments
2
+ where created_at_provider > ${new Date(u.getTime()-N).toISOString()}::timestamptz`))){let t=`${e.branch??"unknown branch"} \xb7 ${e.commit_sha?e.commit_sha.slice(0,7):"no commit"}`,a=new Date(e.created_at_provider),i=e.building_at?new Date(e.building_at):a;w(`${e.external_id}:start`,{at:i,resourceId:e.resource_id,type:"deployment",kind:"build",message:"Deployment started",detail:t,reason:"DeployStarted"}),"ready"===e.state&&e.ready_at&&w(`${e.external_id}:ready`,{at:new Date(e.ready_at),resourceId:e.resource_id,type:"deployment",kind:"ok",message:"Deployment ready",detail:t,reason:"DeployReady"}),"error"===e.state&&w(`${e.external_id}:failed`,{at:new Date(i.getTime()+1e3*h.int(40,110)),resourceId:e.resource_id,type:"deployment",kind:"fail",message:"Deployment failed",detail:t,reason:"DeployFailed"})}let A=a.outage,k=a.monitors.find(e=>e.id===A.monitorId),y=(e,t,a,i,n,r,s)=>w(e,{at:t,resourceId:a,type:"monitor",kind:i,message:n,detail:r,reason:s});y("outage:warn",A.startedAt,A.appId,"warn","Monitor degraded","HTTP 503","MonitorDegraded"),y("outage:err",new Date(A.startedAt.getTime()+10*m.E),A.appId,"err","Monitor down","HTTP 503 on 3 checks in a row","MonitorDown"),y("outage:ok",A.recoveredAt,A.appId,"ok","Monitor recovered",`${k.path} answers again`,"MonitorRecovered"),a.degraded&&y("degraded:warn",a.degraded.since,a.degraded.appId,"warn","Monitor degraded","No answer within 5 s","MonitorDegraded");let I=n.certSoon,v=n.zoneSoon,$=new Date(I.notAfter.getTime()-14*m.h+h.int(5,50)*m.E),_=new Date(v.expiresAt.getTime()-30*m.h+h.int(5,50)*m.E);w("net:cert",{at:$,resourceId:I.id,type:"system",kind:"warn",message:`${I.name} needs attention`,detail:"Certificate expires in 13 days",reason:"NetworkAttention"}),w("net:zone",{at:_,resourceId:v.id,type:"system",kind:"warn",message:`${v.name} needs attention`,detail:"Domain expires in 29 days",reason:"NetworkAttention"});let S=new Date(u);S.setUTCHours(20,0,0,0),S.getTime()>u.getTime()-5*m.E&&S.setTime(S.getTime()-m.h);for(let e=0;e<7;e++){let t=new Date(S.getTime()-e*m.h+1e3*h.int(20,90));w(`daily:${e}`,{at:t,resourceId:null,type:"system",kind:"ok",message:"Daily jobs finished",detail:"Rollups, retention, certificates and domain expiry",reason:"DailyFinished"})}let T=(0,L.demoUserId)(c),b=(e,t,a,i,n=null)=>w(`action:${e}`,{at:(0,m.$)(u,t*m.h+h.int(1,10)*m.w+h.int(0,59)*m.E),resourceId:i,type:"action",kind:"ok",message:a,detail:n,actorUserId:T,reason:"Action"}),x=a.monitors.find(e=>"/api/health"===e.path)??a.monitors[0],D=t.apps[0],E=i.dbs.find(e=>"supabase_project"===e.kind);b("monitor-added",6,`Monitor added: ${(0,p.F)(x.url)}`,x.appId),b("db-link",5,`Database link: ${D.name} → ${E.name}`,D.id),b("keep-active",5,`Keep active on: ${E.name}`,E.id),b("rule",4,"Alert rule edited: HighLatency",null,"threshold 1,500 ms"),b("maintenance",3,"Maintenance window added",null,`Sundays 02:00 ${(0,U.D)()}, 30 min`),b("check-now",1,`Check now: ${(0,p.F)(k.url)}`,k.appId);let M=s.resolved.credential;w("action:credential",{at:new Date(M.resolvedAt.getTime()-h.int(2,9)*m.E),resourceId:null,type:"action",kind:"ok",message:`Credential replaced: ${M.title}`,detail:"Tested and stored; it no longer expires soon",actorUserId:T,reason:"Action"}),w("action:auto-recheck",{at:new Date(A.startedAt.getTime()+11*m.E+3e3),resourceId:k.appId,type:"action",kind:"err",message:`Auto-actions: Check now: ${(0,p.F)(k.url)}`,detail:null,actorUserId:null,reason:"Action"}),await o.insert(r.events).values(f.sort((e,t)=>e.at.getTime()-t.at.getTime()))}let H="76.76.21.21";async function K(e,t,a){let{db:i,seed:n,now:s}=e,o=(0,g.k)(n,"network"),d=e=>(0,m.$)(s,o.int(10,60*e)*m.E).toISOString(),l=a.cloudflare,c=o.shuffle(b).slice(0,2).map((e,t)=>({id:(0,g.T)(n,"zone",e),name:k(e),expiresAt:new Date(1===t?s.getTime()+o.int(12,24)*m.h+o.int(1,20)*m.w:s.getTime()+o.int(200,600)*m.h)})),p=e=>e.split("-").slice(1).join("-")||e,h=t.apps,f=[{name:c[0].name,app:h[0]},...[0,1,2].map(e=>({name:`${p(h[e].name)}.${c[0].name}`,app:h[e]})),...[3,4].map(e=>({name:`${p(h[e%h.length].name)}.${c[1].name}`,app:h[e%h.length]}))],w=o.int(1,3),A=f.map((e,t)=>({id:(0,g.T)(n,"domain",e.name),name:e.name,appId:e.app.id,notAfter:new Date(t===w?s.getTime()+o.int(4,9)*m.h+o.int(1,20)*m.w:s.getTime()+o.int(30,85)*m.h)})),y=(e,t,a,i,r,s=null)=>({id:(0,g.p)(32,n,"dns",e,t,a),type:t,name:a,content:i,proxied:r,ttl:r?1:300,comment:s}),I=c.map(e=>{let t=[...A.filter(t=>t.name===e.name||t.name.endsWith(`.${e.name}`)).map(t=>y(e.name,"A",t.name,H,!1,"Vercel")),y(e.name,"MX",e.name,k("mx1.mail"),!1),y(e.name,"TXT",e.name,`v=spf1 include:_spf.${k("mail")} ~all`,!1),y(e.name,"A",`legacy.${e.name}`,`192.0.2.${o.int(10,200)}`,!0,"Old server, kept for redirects")],a={expiresAt:e.expiresAt.toISOString(),registrar:"Example Registrar, Inc.",error:null,checkedAt:d(20)},i={status:"active",paused:!1,nameServers:[k("ada.ns"),k("bob.ns")],accountId:l.cfAccountId,checkedAt:d(1)},n=(0,u.G)({status:i.status,paused:i.paused,rdap:a},s),r={zone:i,ssl:{mode:"strict",error:null},records:t,recordsTruncated:!1,cfErrors:[],certs:[{type:"universal",status:"active",hosts:[e.name,`*.${e.name}`],expiresOn:new Date(s.getTime()+o.int(40,80)*m.h).toISOString()}],rdap:a,reasons:n.reasons};return{z:e,records:t,rdap:a,state:n.state,data:r}}),v=(0,m.$)(s,o.int(150,380)*m.h),$=(0,m.$)(s,o.int(5,50)*m.E);await i.insert(r.resources).values(c.map(e=>({id:e.id,accountId:l.accountId,kind:"zone",externalId:(0,g.p)(32,n,"zone-id",e.name),name:e.name,monitored:!0,meta:{status:"active",accountId:l.cfAccountId,accountName:l.label},firstSeenAt:v,lastSeenAt:$,createdAt:v,updatedAt:$}))),await i.insert(r.resources).values(A.map(e=>{let a=h.find(t=>t.id===e.appId);return{id:e.id,accountId:t.accountId,kind:"domain",externalId:e.name,name:e.name,parentId:e.appId,monitored:!0,meta:{redirect:null,verified:!0,projectId:a.externalId},firstSeenAt:v,lastSeenAt:$,createdAt:v,updatedAt:$}}));let _=["Let's Encrypt","Google Trust Services"];await i.insert(r.snapshots).values([...I.map(e=>({resourceId:e.z.id,state:e.state,stateSince:"ok"===e.state?v:new Date(e.z.expiresAt.getTime()-30*m.h),data:e.data,collectedAt:$})),...A.map(e=>{let t=I.find(t=>e.name===t.z.name||e.name.endsWith(`.${t.z.name}`)),a={notAfter:e.notAfter.toISOString(),issuer:o.pick(_),authorized:!0,error:null,checkedAt:d(19)},i={misconfigured:!1,configuredBy:"A",recommendedIps:[H],checkedAt:d(6)},n=(0,u.k)({host:e.name,tls:a,vercel:i,records:(0,u.Q)(e.name,t.records),zoneRdap:t.rdap},s),r="ok"===n.state?v:new Date(Math.min(e.notAfter.getTime()-14*m.h,t.z.expiresAt.getTime()-30*m.h));return{resourceId:e.id,state:n.state,stateSince:r,data:{tls:a,vercel:i,reasons:n.reasons},collectedAt:$}})]);let S=I[0].records.find(e=>"A"===e.type&&e.name===c[0].name&&e.content===H);return{zones:c,domains:A,certSoon:A[w],zoneSoon:c[1],vercelRecord:{id:S.id,name:S.name,zoneId:c[0].id}}}let V=["vercel","supabase","neon","cloudflare","firebase","gcp"];async function G(e,t){let{db:a,seed:i,now:n}=e,s=(0,g.k)(i,"logs"),o=(0,l.f)(await a.execute(d.B`select resource_id, external_id from ops.deployments where is_current`)),c=s.shuffle(t.apps).slice(0,3).flatMap((e,t)=>Array.from({length:s.int(4,8)},(a,r)=>{let d=s.pick(x);return{id:(0,g.T)(i,"log",e.name,r),resourceId:e.id,deploymentId:o.find(t=>t.resource_id===e.id)?.external_id??`dpl_${(0,g.g)(24,i,"log-dpl",t)}`,rowId:`${(0,g.g)(10,i,"log-row",e.name,r).toLowerCase()}-${r}`,at:(0,m.$)(n,s.int(3,2760)*m.E+1e3*s.int(0,59)),level:d.level,message:d.message,requestMethod:d.method,requestPath:d.path,statusCode:d.status,source:"serverless"}}));await a.insert(r.storedLogs).values(c)}async function W(e){let{db:t,seed:a,now:i}=e,n=(0,g.k)(a,"provider-status"),s=(0,m.$)(i,n.int(1,4)*m.E);await t.insert(r.providerStatus).values(V.map(e=>"cloudflare"===e?{provider:e,state:"info",indicator:"maintenance",description:"Scheduled maintenance",checkedAt:s,lastOkAt:s,error:null,incidents:[{name:"Scheduled maintenance in one Asia-Pacific data center",impact:"maintenance",startedAt:(0,m.$)(i,n.int(1,3)*m.w).toISOString(),url:null}]}:{provider:e,state:"ok",indicator:"none",description:"All Systems Operational",incidents:[],checkedAt:s,lastOkAt:s,error:null}))}async function Y(e){let{db:t,seed:a,now:i}=e,n=(0,g.k)(a,"ai-usage"),r=(0,g.T)(a,"ai-agent","console"),s=n.int(70,140),o=[],l=[],c=[],u=[],p=[],h=[];for(let e=0;e<s;e++){o.push(i.getTime()-n.int(2,10080)*m.E);let e=n.chance(.04);p.push(e?429:200),l.push(e?0:n.int(600,4200)),c.push(e?0:n.int(80,700)),u.push(e?n.int(80,300):n.int(700,4800)),h.push(n.int(1,2))}let f=e=>e.reduce((e,t)=>e+t,0),w=new Date(Math.max(...o));await t.execute(d.B`
3
3
  insert into ops.ai_agents (id, key_id, client_name, client_version, via, user_agent, first_seen_at, last_seen_at, requests, tokens_in, tokens_out, recent)
4
4
  values (${r}::uuid, null, 'Watchbell console', '', 'console', 'Watchbell console (ask-ai)', ${(0,m.$)(i,720*m.w).toISOString()}::timestamptz,
5
- ${w.toISOString()}::timestamptz, ${s}, ${f(l)}, ${f(c)}, ${Y(["gemini/gemini-2.5-flash","workers-ai/gemma-3-12b-it"])}::text[])`),await t.execute(d.B`
5
+ ${w.toISOString()}::timestamptz, ${s}, ${f(l)}, ${f(c)}, ${q(["gemini/gemini-2.5-flash","workers-ai/gemma-3-12b-it"])}::text[])`),await t.execute(d.B`
6
6
  insert into ops.ai_usage (at, key_id, agent_id, provider_id, model, kind, tool, tokens_in, tokens_out, latency_ms, status, error_class, stream)
7
7
  select to_timestamp(t.at / 1000.0), null, ${r}::uuid, null, (array['gemini/gemini-2.5-flash', 'workers-ai/gemma-3-12b-it'])[t.m], 'console', null,
8
8
  case when t.s = 429 then null else t.ti end, case when t.s = 429 then null else t.tout end, t.l, t.s,
9
9
  case when t.s = 429 then 'rate_limited · upstream_429' else null end, false
10
10
  from unnest(${(0,m._)(o)}::bigint[], ${(0,m._)(h)}::int[], ${(0,m._)(l)}::int[], ${(0,m._)(c)}::int[], ${(0,m._)(u)}::int[],
11
11
  ${(0,m._)(p)}::int[]) as t(at, m, ti, tout, l, s)
12
- order by t.at`)}let Y=e=>`{${e.join(",")}}`,q=2*m.w;async function Q(e,t,a,i){let{db:n,seed:r,now:s}=e,o=(0,g.k)(r,"proposals"),l=e=>(0,g.T)(r,"proposal",e),c=a.certSoon,u=t.failedDeploy,h=i.monitors.find(e=>e.id===i.outage.monitorId),f=new Date(i.outage.startedAt.getTime()+11*m.E),w=t.resolved.oldDeploy,A=new Date(w.startedAt.getTime()+o.int(2,6)*m.E),k=new Date(A.getTime()+o.int(3,15)*m.E),y=(0,m.$)(s,o.int(20,55)*m.E),I=(0,m.$)(s,o.int(8,19)*m.E);for(let e of[{id:l("pending-safe"),alertId:t.firing.cert,ruleKey:"CertExpiringSoon",room:"network",action:"domain_recheck",risk:"safe",title:`Re-check the certificate of ${c.name}`,reason:"The TLS certificate expires within 14 days; a fresh read shows whether it was already renewed.",resourceKind:"domain",resourceId:c.id,resourceName:c.name,targetRef:c.id,proposedBy:"Network",status:"pending",auto:!1,result:null,decidedBy:null,createdAt:y,decidedAt:null,expiresAt:new Date(y.getTime()+q),claimedAt:null,finishedAt:null},{id:l("pending-risky"),alertId:t.firing.deploy,ruleKey:"DeploymentFailed",room:"workloads",action:"vercel_redeploy",risk:"risky",title:`Redeploy production ${u.appName}`,reason:`Production deployment ${u.sha} failed; the previous build is still live.`,resourceKind:"app",resourceId:u.appId,resourceName:u.appName,targetRef:u.currentExternalId,proposedBy:"Workloads",status:"pending",auto:!1,result:null,decidedBy:null,createdAt:I,decidedAt:null,expiresAt:new Date(I.getTime()+q),claimedAt:null,finishedAt:null},{id:l("done-auto"),alertId:t.resolved.outage,ruleKey:"MonitorDown",room:"workloads",action:"recheck",risk:"safe",title:`Check ${(0,p.F)(h.url)} again now`,reason:"It returned HTTP 503 on 3 consecutive checks.",resourceKind:"app",resourceId:h.appId,resourceName:(0,p.F)(h.url),targetRef:h.id,proposedBy:"Workloads",status:"done",auto:!0,result:"Failed: HTTP 503.",decidedBy:null,createdAt:f,decidedAt:f,expiresAt:new Date(f.getTime()+q),claimedAt:new Date(f.getTime()+2e3),finishedAt:new Date(f.getTime()+2e3+o.int(300,1500))},{id:l("rejected"),alertId:w.id,ruleKey:"DeploymentFailed",room:"workloads",action:"vercel_rollback",risk:"risky",title:`Roll back ${w.appName} to the previous deployment`,reason:"The newest production build failed.",resourceKind:"app",resourceId:w.appId,resourceName:w.appName,targetRef:w.previousExternalId,proposedBy:"Workloads",status:"rejected",auto:!1,result:null,decidedBy:(0,U.memberRowId)(r),createdAt:A,decidedAt:k,expiresAt:new Date(A.getTime()+q),claimedAt:null,finishedAt:null}]){let t=e=>e?e.toISOString():null;await n.execute(d.B`
12
+ order by t.at`)}let q=e=>`{${e.join(",")}}`,Q=2*m.w;async function X(e,t,a,i){let{db:n,seed:r,now:s}=e,o=(0,g.k)(r,"proposals"),l=e=>(0,g.T)(r,"proposal",e),c=a.certSoon,u=t.failedDeploy,h=i.monitors.find(e=>e.id===i.outage.monitorId),f=new Date(i.outage.startedAt.getTime()+11*m.E),w=t.resolved.oldDeploy,A=new Date(w.startedAt.getTime()+o.int(2,6)*m.E),k=new Date(A.getTime()+o.int(3,15)*m.E),y=(0,m.$)(s,o.int(20,55)*m.E),I=(0,m.$)(s,o.int(8,19)*m.E);for(let e of[{id:l("pending-safe"),alertId:t.firing.cert,ruleKey:"CertExpiringSoon",room:"network",action:"domain_recheck",risk:"safe",title:`Re-check the certificate of ${c.name}`,reason:"The TLS certificate expires within 14 days; a fresh read shows whether it was already renewed.",resourceKind:"domain",resourceId:c.id,resourceName:c.name,targetRef:c.id,proposedBy:"Network",status:"pending",auto:!1,result:null,decidedBy:null,createdAt:y,decidedAt:null,expiresAt:new Date(y.getTime()+Q),claimedAt:null,finishedAt:null},{id:l("pending-risky"),alertId:t.firing.deploy,ruleKey:"DeploymentFailed",room:"workloads",action:"vercel_redeploy",risk:"risky",title:`Redeploy production ${u.appName}`,reason:`Production deployment ${u.sha} failed; the previous build is still live.`,resourceKind:"app",resourceId:u.appId,resourceName:u.appName,targetRef:u.currentExternalId,proposedBy:"Workloads",status:"pending",auto:!1,result:null,decidedBy:null,createdAt:I,decidedAt:null,expiresAt:new Date(I.getTime()+Q),claimedAt:null,finishedAt:null},{id:l("done-auto"),alertId:t.resolved.outage,ruleKey:"MonitorDown",room:"workloads",action:"recheck",risk:"safe",title:`Check ${(0,p.F)(h.url)} again now`,reason:"It returned HTTP 503 on 3 consecutive checks.",resourceKind:"app",resourceId:h.appId,resourceName:(0,p.F)(h.url),targetRef:h.id,proposedBy:"Workloads",status:"done",auto:!0,result:"Failed: HTTP 503.",decidedBy:null,createdAt:f,decidedAt:f,expiresAt:new Date(f.getTime()+Q),claimedAt:new Date(f.getTime()+2e3),finishedAt:new Date(f.getTime()+2e3+o.int(300,1500))},{id:l("rejected"),alertId:w.id,ruleKey:"DeploymentFailed",room:"workloads",action:"vercel_rollback",risk:"risky",title:`Roll back ${w.appName} to the previous deployment`,reason:"The newest production build failed.",resourceKind:"app",resourceId:w.appId,resourceName:w.appName,targetRef:w.previousExternalId,proposedBy:"Workloads",status:"rejected",auto:!1,result:null,decidedBy:(0,L.memberRowId)(r),createdAt:A,decidedAt:k,expiresAt:new Date(A.getTime()+Q),claimedAt:null,finishedAt:null}]){let t=e=>e?e.toISOString():null;await n.execute(d.B`
13
13
  insert into ops.action_proposals (id, alert_id, rule_key, room, action, risk, title, reason, resource_kind, resource_id, resource_name, target_ref,
14
14
  proposed_by, status, auto, result, decided_by, created_at, decided_at, expires_at, claimed_at, finished_at)
15
15
  values (${e.id}::uuid, ${e.alertId}::uuid, ${e.ruleKey}, ${e.room}, ${e.action}, ${e.risk}, ${e.title}, ${e.reason}, ${e.resourceKind},
16
16
  ${e.resourceId}::uuid, ${e.resourceName}, ${e.targetRef}, ${e.proposedBy}, ${e.status}, ${e.auto}, ${e.result}, ${e.decidedBy}::uuid,
17
- ${t(e.createdAt)}::timestamptz, ${t(e.decidedAt)}::timestamptz, ${t(e.expiresAt)}::timestamptz, ${t(e.claimedAt)}::timestamptz, ${t(e.finishedAt)}::timestamptz)`)}}function X(e,t){return e.length?e[Math.min(e.length-1,Math.max(0,Math.ceil(t*e.length)-1))]:null}function J(e){let t=e.filter(e=>!e.inMaintenance),a=t.map(e=>e.latencyMs).filter(e=>null!==e).sort((e,t)=>e-t);return{checks:t.length,failures:t.filter(e=>!e.ok).length,p50Ms:X(a,.5),p95Ms:X(a,.95),maxMs:a.length?a[a.length-1]:null,status5xx:t.filter(e=>null!==e.statusCode&&e.statusCode>=500).length,maintenance:e.length-t.length}}var Z=e.i(655206);let ee=5*m.E,et=m.h/ee,ea=Z.f.checks*et,ei=Z.f.rollupsHourly*et,en="No answer within 5 s";async function er(e,t){var a;let i,{db:n,seed:s,now:o}=e,d=(0,g.k)(s,"monitors"),l=[];for(let e of t.apps)for(let[t,a]of(d.chance(.6)?["/","/api/health"]:["/"]).entries())l.push({id:(0,g.T)(s,"monitor",e.name,a),appId:e.id,index:l.length,url:`https://${e.host}${a}`,path:a,createdAt:new Date(e.createdAt.getTime()+t*d.int(1,3)*m.h+d.int(2,50)*m.E)});let c=Math.floor((o.getTime()-1e4)/ee)*ee,u=(e,t)=>c-t*ee+2e3+300*e.index,p=l.map(e=>(function(e,t){let a=(0,g.k)(e,"checks",t.id),i={ok:new Uint8Array(ei),status:new Int16Array(ei),latency:new Int32Array(ei)},n=a.int(70,380)*("/"===t.path?1:.55);for(let e=0;e<ei;e++){let t=Math.round(n*(.75+.5*a.next())*(a.chance(.02)?1.8+2*a.next():1));if(e>=3&&a.chance(3e-4)){let t=a.int(0,3);es(i,e,3===t?{ok:!1,status:0,latency:-1}:{ok:!1,status:[500,502,503][t],latency:a.int(30,300)})}else es(i,e,{ok:!0,status:200,latency:t})}return i})(s,e)),h=(0,g.k)(s,"outage"),f=l.filter(e=>"/"===e.path),w=h.pick(f),k=h.int(96,240),y=h.int(4,7),I=p[w.index];for(let e=k-3;e<k+y+3;e++)es(I,e,{ok:!0,status:200,latency:I.latency[e]>0?I.latency[e]:180});for(let e=k;e<k+y;e++)es(I,e,{ok:!1,status:e===k+y-1?502:503,latency:h.int(30,140)});let v={monitorId:w.id,appId:w.appId,startedAt:new Date(u(w,k+y-1)),endedAt:new Date(u(w,k)),recoveredAt:new Date(u(w,k-1)),failedChecks:y},$=l.filter(e=>e.appId!==w.appId),_=$.length?h.pick($):null;_&&es(p[_.index],0,{ok:!1,status:0,latency:-1});let S=(0,g.k)(s,"slow-windows"),T=l.filter(e=>e.id!==w.id),b=(e,t,a,i)=>{let n=p[e.index],r=t*et+S.int(12,144),s=S.int(a,i),o=[];for(let e=r;e>r-s;e--){let t=S.int(1600,2900);es(n,e,{ok:!0,status:200,latency:t}),o.length<2&&o.push({ok:!0,statusCode:200,latencyMs:t})}let d=r-s;return(!n.ok[d]||n.latency[d]>=1500)&&es(n,d,{ok:!0,status:200,latency:180}),{monitorId:e.id,appId:e.appId,firedAt:new Date(u(e,r-1)),resolvedAt:new Date(u(e,d)),p95:J(o).p95Ms}},x=T[0]??w,D=T[T.length-1]??w,E=[b(x,2,4,8),b(D,5,3,6)],M=l.map(e=>(function(e,t,a){let i="unknown",n=0,r=e.createdAt;for(let e=t.ok.length-1;e>=0;e--){let s=(0,A.G)(n,{ok:1===t.ok[e],statusCode:eo(t,e),latencyMs:ed(t,e),error:el(t,e)});s.state!==i&&(r=a(e)),i=s.state,n=s.failStreak}return{id:e.id,appId:e.appId,url:e.url,path:e.path,state:i,stateSince:r,failStreak:n,lastCheckedAt:a(0),lastStatus:eo(t,0),lastLatencyMs:ed(t,0),createdAt:e.createdAt}})(e,p[e.index],t=>new Date(u(e,t))));await n.insert(r.monitors).values(M.map((e,t)=>({id:e.id,resourceId:e.appId,url:e.url,kind:"http",expectedStatus:200,timeoutMs:5e3,intervalS:ee/1e3,state:e.state,stateSince:e.stateSince,failStreak:e.failStreak,lastCheckedAt:e.lastCheckedAt,lastStatus:e.lastStatus,lastLatencyMs:e.lastLatencyMs,lastError:el(p[t],0),createdAt:e.createdAt,updatedAt:e.lastCheckedAt})));let C=((i=new Date(a=o)).setUTCHours(20,0,0,0),i.getTime()>a.getTime()-5*m.E&&i.setTime(i.getTime()-m.h),i.getTime());for(let t of l)await ec(e,t,p[t.index],new Date(u(t,0))),await eu(e,t,p[t.index],e=>u(t,e),C);return await ep(e,l.length),{monitors:M,outage:v,degraded:_?{monitorId:_.id,appId:_.appId,since:new Date(u(_,0))}:null,slow:E}}function es(e,t,a){t<0||t>=e.ok.length||(e.ok[t]=+!!a.ok,e.status[t]=a.status,e.latency[t]=a.latency)}let eo=(e,t)=>0===e.status[t]?null:e.status[t],ed=(e,t)=>e.latency[t]<0?null:e.latency[t],el=(e,t)=>e.ok[t]?null:e.status[t]?`HTTP ${e.status[t]}`:en;async function ec(e,t,a,i){let n=Array.from({length:ea},(e,t)=>t);await e.db.execute(d.B`
17
+ ${t(e.createdAt)}::timestamptz, ${t(e.decidedAt)}::timestamptz, ${t(e.expiresAt)}::timestamptz, ${t(e.claimedAt)}::timestamptz, ${t(e.finishedAt)}::timestamptz)`)}}function J(e,t){return e.length?e[Math.min(e.length-1,Math.max(0,Math.ceil(t*e.length)-1))]:null}function Z(e){let t=e.filter(e=>!e.inMaintenance),a=t.map(e=>e.latencyMs).filter(e=>null!==e).sort((e,t)=>e-t);return{checks:t.length,failures:t.filter(e=>!e.ok).length,p50Ms:J(a,.5),p95Ms:J(a,.95),maxMs:a.length?a[a.length-1]:null,status5xx:t.filter(e=>null!==e.statusCode&&e.statusCode>=500).length,maintenance:e.length-t.length}}var ee=e.i(655206);let et=5*m.E,ea=m.h/et,ei=ee.f.checks*ea,en=ee.f.rollupsHourly*ea,er="No answer within 5 s";async function es(e,t){var a;let i,{db:n,seed:s,now:o}=e,d=(0,g.k)(s,"monitors"),l=[];for(let e of t.apps)for(let[t,a]of(d.chance(.6)?["/","/api/health"]:["/"]).entries())l.push({id:(0,g.T)(s,"monitor",e.name,a),appId:e.id,index:l.length,url:`https://${e.host}${a}`,path:a,createdAt:new Date(e.createdAt.getTime()+t*d.int(1,3)*m.h+d.int(2,50)*m.E)});let c=Math.floor((o.getTime()-1e4)/et)*et,u=(e,t)=>c-t*et+2e3+300*e.index,p=l.map(e=>(function(e,t){let a=(0,g.k)(e,"checks",t.id),i={ok:new Uint8Array(en),status:new Int16Array(en),latency:new Int32Array(en)},n=a.int(70,380)*("/"===t.path?1:.55);for(let e=0;e<en;e++){let t=Math.round(n*(.75+.5*a.next())*(a.chance(.02)?1.8+2*a.next():1));if(e>=3&&a.chance(3e-4)){let t=a.int(0,3);eo(i,e,3===t?{ok:!1,status:0,latency:-1}:{ok:!1,status:[500,502,503][t],latency:a.int(30,300)})}else eo(i,e,{ok:!0,status:200,latency:t})}return i})(s,e)),h=(0,g.k)(s,"outage"),f=l.filter(e=>"/"===e.path),w=h.pick(f),k=h.int(96,240),y=h.int(4,7),I=p[w.index];for(let e=k-3;e<k+y+3;e++)eo(I,e,{ok:!0,status:200,latency:I.latency[e]>0?I.latency[e]:180});for(let e=k;e<k+y;e++)eo(I,e,{ok:!1,status:e===k+y-1?502:503,latency:h.int(30,140)});let v={monitorId:w.id,appId:w.appId,startedAt:new Date(u(w,k+y-1)),endedAt:new Date(u(w,k)),recoveredAt:new Date(u(w,k-1)),failedChecks:y},$=l.filter(e=>e.appId!==w.appId),_=$.length?h.pick($):null;_&&eo(p[_.index],0,{ok:!1,status:0,latency:-1});let S=(0,g.k)(s,"slow-windows"),T=l.filter(e=>e.id!==w.id),b=(e,t,a,i)=>{let n=p[e.index],r=t*ea+S.int(12,144),s=S.int(a,i),o=[];for(let e=r;e>r-s;e--){let t=S.int(1600,2900);eo(n,e,{ok:!0,status:200,latency:t}),o.length<2&&o.push({ok:!0,statusCode:200,latencyMs:t})}let d=r-s;return(!n.ok[d]||n.latency[d]>=1500)&&eo(n,d,{ok:!0,status:200,latency:180}),{monitorId:e.id,appId:e.appId,firedAt:new Date(u(e,r-1)),resolvedAt:new Date(u(e,d)),p95:Z(o).p95Ms}},x=T[0]??w,D=T[T.length-1]??w,E=[b(x,2,4,8),b(D,5,3,6)],M=l.map(e=>(function(e,t,a){let i="unknown",n=0,r=e.createdAt;for(let e=t.ok.length-1;e>=0;e--){let s=(0,A.G)(n,{ok:1===t.ok[e],statusCode:ed(t,e),latencyMs:el(t,e),error:ec(t,e)});s.state!==i&&(r=a(e)),i=s.state,n=s.failStreak}return{id:e.id,appId:e.appId,url:e.url,path:e.path,state:i,stateSince:r,failStreak:n,lastCheckedAt:a(0),lastStatus:ed(t,0),lastLatencyMs:el(t,0),createdAt:e.createdAt}})(e,p[e.index],t=>new Date(u(e,t))));await n.insert(r.monitors).values(M.map((e,t)=>({id:e.id,resourceId:e.appId,url:e.url,kind:"http",expectedStatus:200,timeoutMs:5e3,intervalS:et/1e3,state:e.state,stateSince:e.stateSince,failStreak:e.failStreak,lastCheckedAt:e.lastCheckedAt,lastStatus:e.lastStatus,lastLatencyMs:e.lastLatencyMs,lastError:ec(p[t],0),createdAt:e.createdAt,updatedAt:e.lastCheckedAt})));let C=((i=new Date(a=o)).setUTCHours(20,0,0,0),i.getTime()>a.getTime()-5*m.E&&i.setTime(i.getTime()-m.h),i.getTime());for(let t of l)await eu(e,t,p[t.index],new Date(u(t,0))),await ep(e,t,p[t.index],e=>u(t,e),C);return await em(e,l.length),{monitors:M,outage:v,degraded:_?{monitorId:_.id,appId:_.appId,since:new Date(u(_,0))}:null,slow:E}}function eo(e,t,a){t<0||t>=e.ok.length||(e.ok[t]=+!!a.ok,e.status[t]=a.status,e.latency[t]=a.latency)}let ed=(e,t)=>0===e.status[t]?null:e.status[t],el=(e,t)=>e.latency[t]<0?null:e.latency[t],ec=(e,t)=>e.ok[t]?null:e.status[t]?`HTTP ${e.status[t]}`:er;async function eu(e,t,a,i){let n=Array.from({length:ei},(e,t)=>t);await e.db.execute(d.B`
18
18
  insert into ops.checks (id, monitor_id, at, ok, status_code, latency_ms, error, in_maintenance)
19
19
  select md5(${`${e.seed}:${t.id}:`} || t.k)::uuid, ${t.id}::uuid, ${i.toISOString()}::timestamptz - t.k * interval '5 minutes',
20
- t.ok, t.s, t.l, case when t.ok then null when t.s is null then ${en} else 'HTTP ' || t.s end, false
21
- from unnest(${(0,m._)(n)}::int[], ${(0,m._)(n.map(e=>1===a.ok[e]))}::bool[], ${(0,m._)(n.map(e=>eo(a,e)))}::int[],
22
- ${(0,m._)(n.map(e=>ed(a,e)))}::int[]) as t(k, ok, s, l)`)}async function eu(e,t,a,i,n){let r=Math.ceil(i(a.ok.length-1)/m.w)*m.w,s=[],o=[],l=[],c=[],u=[],p=[],g=[],h=-1,f=[],w=()=>{if(h<0||!f.length)return;let e=J(f);s.push(h/1e3),o.push(e.checks),l.push(e.failures),c.push(e.p50Ms),u.push(e.p95Ms),p.push(e.maxMs),g.push(e.status5xx)};for(let e=0;e<a.ok.length;e++){let t=Math.floor(i(e)/m.w)*m.w;if(!(t>=n)){if(t<r)break;t!==h&&(w(),h=t,f=[]),f.push({ok:1===a.ok[e],statusCode:eo(a,e),latencyMs:ed(a,e)})}}w(),s.length&&await e.db.execute(d.B`
20
+ t.ok, t.s, t.l, case when t.ok then null when t.s is null then ${er} else 'HTTP ' || t.s end, false
21
+ from unnest(${(0,m._)(n)}::int[], ${(0,m._)(n.map(e=>1===a.ok[e]))}::bool[], ${(0,m._)(n.map(e=>ed(a,e)))}::int[],
22
+ ${(0,m._)(n.map(e=>el(a,e)))}::int[]) as t(k, ok, s, l)`)}async function ep(e,t,a,i,n){let r=Math.ceil(i(a.ok.length-1)/m.w)*m.w,s=[],o=[],l=[],c=[],u=[],p=[],g=[],h=-1,f=[],w=()=>{if(h<0||!f.length)return;let e=Z(f);s.push(h/1e3),o.push(e.checks),l.push(e.failures),c.push(e.p50Ms),u.push(e.p95Ms),p.push(e.maxMs),g.push(e.status5xx)};for(let e=0;e<a.ok.length;e++){let t=Math.floor(i(e)/m.w)*m.w;if(!(t>=n)){if(t<r)break;t!==h&&(w(),h=t,f=[]),f.push({ok:1===a.ok[e],statusCode:ed(a,e),latencyMs:el(a,e)})}}w(),s.length&&await e.db.execute(d.B`
23
23
  insert into ops.rollups_hourly (monitor_id, hour, checks, failures, p50_ms, p95_ms, max_ms, status_5xx, maintenance)
24
24
  select ${t.id}::uuid, to_timestamp(t.h), t.c, t.f, t.p50, t.p95, t.mx, t.s5, 0
25
25
  from unnest(${(0,m._)(s)}::bigint[], ${(0,m._)(o)}::int[], ${(0,m._)(l)}::int[], ${(0,m._)(c)}::int[],
26
- ${(0,m._)(u)}::int[], ${(0,m._)(p)}::int[], ${(0,m._)(g)}::int[]) as t(h, c, f, p50, p95, mx, s5)`)}async function ep(e,t){let{seed:a,now:i}=e,n=(0,g.k)(a,"collector-runs"),s=Math.floor((i.getTime()-1e4)/m.E)*m.E;await e.db.insert(r.collectorRuns).values(Array.from({length:60},(e,i)=>{let r=s-i*m.E,o=r%ee==0,d=(o?2e3+300*t:600)+n.int(200,1400);return{id:(0,g.T)(a,"collector-run",i),startedAt:new Date(r+1e3),finishedAt:new Date(r+1e3+d),trigger:"manual",tasks:o?["heartbeats","checks","vercel","alerts"]:["heartbeats","vercel","alerts"],ok:!0,durationMs:d,checks:o?t:0}}))}async function em(e,t,a,i){await e.transaction(async e=>{let n={db:e,seed:t,now:a,email:i};await (0,U.seedMember)(n);let r=await D(n),s=await er(n,r);await E(n,r,s.monitors);let o=await B(n,r),d=await H(n,r,o),l=await f(n,r,s,o,d);await Q(n,l,d,s),await N(n,r,s,o,d,l),await V(n,r),await W(n),await G(n)})}var eg=e.i(330787),eh=e.i(904370);let ef=0,ew=()=>Date.now()+ef;function eA(e=process.env){let t=Number(((0,s.d)(e,"DEMO_POOL_MAX")??"").trim());return Number.isInteger(t)&&t>=1?t:3}let ek=globalThis.__watchpostDemoPool??={entries:new Map,live:new Set,waiters:new Set,creating:0,creationQueue:[]};function ey(){let e=[...ek.waiters];for(let t of(ek.waiters.clear(),e))t()}function eI(e){!e.evicted||e.leases>0||e.closing||(e.closing=e.pglite.then(e=>e.close()).catch(()=>void 0).finally(()=>{ek.live.delete(e),ey()}))}function ev(e){ek.entries.get(e.seed)===e&&ek.entries.delete(e.seed),e.evicted=!0,0===ek.entries.size&&ek.sweeper&&(clearInterval(ek.sweeper),ek.sweeper=void 0),eI(e),ey()}let e$=e=>e.created&&0===e.leases&&!e.evicted,e_=(e,t)=>e$(e)&&t-e.lastUsed>=6e4;function eS(e=ew()){for(let t of[...ek.entries.values()])e$(t)&&e-t.lastUsed>12e5&&ev(t)}async function eT(e){let t=ew()+5e3;for(;;){if(e.evicted)throw Error("The demo database was closed. Reload the page.");if(ek.live.size<eA())return void ek.live.add(e);let a=ew(),i=[...ek.entries.values()].find(e=>e_(e,a));if(i){ev(i),await i.closing;continue}let n=t-a;if(n<=0)throw(0,o.f)(o.L);await function(e){return new Promise(t=>{let a=setTimeout(i,e);function i(){clearTimeout(a),ek.waiters.delete(i),t()}ek.waiters.add(i)})}(Math.min(n,function(e){let t=1/0;for(let a of ek.entries.values())e$(a)&&(t=Math.min(t,a.lastUsed+6e4-e));return Math.max(0,t)}(a)+1))}}async function eb(){ek.creating<2?ek.creating++:await new Promise(e=>ek.creationQueue.push(e))}async function ex(e,s){if(!eh.demoCreations.take(await (0,eg.R)(),e.seed))throw(0,o.f)(o._);await eT(e);try{let o=s??await (0,eg._)();await eb();try{let s=await t.f.create();try{let t=(0,a.f)({client:s,schema:r});await (0,i.f)(t,{migrationsFolder:(0,n.selfhostMigrationsFolder)()}),await em(t,e.seed,new Date,o)}catch(e){throw await s.close().catch(()=>void 0),e}return e.created=!0,s}finally{let e;(e=ek.creationQueue.shift())?e():ek.creating--}}catch(t){throw ek.live.delete(e),t}finally{ey()}}function eD(e,t){if(!e)throw Error("Demo seed missing");eS();let a=ek.entries.get(e);if(a)ek.entries.delete(e);else{let i={seed:e,created:!1,lastUsed:0,leases:0,evicted:!1};i.pglite=ex(i,t),i.pglite.catch(()=>{ek.entries.get(e)===i&&ek.entries.delete(e)}),a=i}return a.lastUsed=ew(),ek.entries.set(e,a),ek.sweeper||(ek.sweeper=setInterval(()=>eS(),6e4),ek.sweeper.unref?.()),a}async function eE(e,t,a){let i=eD(e,a);i.leases++;try{return await t(await i.pglite)}finally{i.leases--,i.lastUsed=ew(),eI(i),ey()}}async function eM(){for(let e of[...ek.entries.values()])ev(e);await Promise.all([...ek.live].map(e=>e.closing))}e.s(["BUSY_WAIT_MS",0,5e3,"DEFAULT_POOL_MAX",0,3,"DEMO_BUSY",()=>o.L,"DEMO_TOO_MANY",()=>o._,"IDLE_MS",0,12e5,"MAX_CREATING",0,2,"RECENT_MS",0,6e4,"closeDemoPool",0,eM,"demoDbFor",0,function(e,t){return eD(e,t).pglite},"demoPoolMax",0,eA,"setDemoPoolClockOffsetForTests",0,function(e){if(!process.env.VITEST)throw Error("setDemoPoolClockOffsetForTests is for tests only");ef=e,ey()},"sweepIdleDemoDbs",0,eS,"withDemoDb",0,eE],601533)}];
26
+ ${(0,m._)(u)}::int[], ${(0,m._)(p)}::int[], ${(0,m._)(g)}::int[]) as t(h, c, f, p50, p95, mx, s5)`)}async function em(e,t){let{seed:a,now:i}=e,n=(0,g.k)(a,"collector-runs"),s=Math.floor((i.getTime()-1e4)/m.E)*m.E;await e.db.insert(r.collectorRuns).values(Array.from({length:60},(e,i)=>{let r=s-i*m.E,o=r%et==0,d=(o?2e3+300*t:600)+n.int(200,1400);return{id:(0,g.T)(a,"collector-run",i),startedAt:new Date(r+1e3),finishedAt:new Date(r+1e3+d),trigger:"manual",tasks:o?["heartbeats","checks","vercel","alerts"]:["heartbeats","vercel","alerts"],ok:!0,durationMs:d,checks:o?t:0}}))}async function eg(e,t,a,i){await e.transaction(async e=>{let n={db:e,seed:t,now:a,email:i};await (0,L.seedMember)(n);let r=await D(n),s=await es(n,r);await E(n,r,s.monitors);let o=await B(n,r),d=await K(n,r,o),l=await f(n,r,s,o,d);await X(n,l,d,s),await F(n,r,s,o,d,l),await G(n,r),await W(n),await Y(n)})}var eh=e.i(330787),ef=e.i(904370);let ew=0,eA=()=>Date.now()+ew;function ek(e=process.env){let t=Number(((0,s.d)(e,"DEMO_POOL_MAX")??"").trim());return Number.isInteger(t)&&t>=1?t:3}let ey=globalThis.__watchpostDemoPool??={entries:new Map,live:new Set,waiters:new Set,creating:0,creationQueue:[]};function eI(){let e=[...ey.waiters];for(let t of(ey.waiters.clear(),e))t()}function ev(e){!e.evicted||e.leases>0||e.closing||(e.closing=e.pglite.then(e=>e.close()).catch(()=>void 0).finally(()=>{ey.live.delete(e),eI()}))}function e$(e){ey.entries.get(e.seed)===e&&ey.entries.delete(e.seed),e.evicted=!0,0===ey.entries.size&&ey.sweeper&&(clearInterval(ey.sweeper),ey.sweeper=void 0),ev(e),eI()}let e_=e=>e.created&&0===e.leases&&!e.evicted,eS=(e,t)=>e_(e)&&t-e.lastUsed>=6e4;function eT(e=eA()){for(let t of[...ey.entries.values()])e_(t)&&e-t.lastUsed>12e5&&e$(t)}async function eb(e){let t=eA()+5e3;for(;;){if(e.evicted)throw Error("The demo database was closed. Reload the page.");if(ey.live.size<ek())return void ey.live.add(e);let a=eA(),i=[...ey.entries.values()].find(e=>eS(e,a));if(i){e$(i),await i.closing;continue}let n=t-a;if(n<=0)throw(0,o.f)(o.L);await function(e){return new Promise(t=>{let a=setTimeout(i,e);function i(){clearTimeout(a),ey.waiters.delete(i),t()}ey.waiters.add(i)})}(Math.min(n,function(e){let t=1/0;for(let a of ey.entries.values())e_(a)&&(t=Math.min(t,a.lastUsed+6e4-e));return Math.max(0,t)}(a)+1))}}async function ex(){ey.creating<2?ey.creating++:await new Promise(e=>ey.creationQueue.push(e))}async function eD(e,s){if(!ef.demoCreations.take(await (0,eh.R)(),e.seed))throw(0,o.f)(o._);await eb(e);try{let o=s??await (0,eh._)();await ex();try{let s=await t.f.create();try{let t=(0,a.f)({client:s,schema:r});await (0,i.f)(t,{migrationsFolder:(0,n.selfhostMigrationsFolder)()}),await eg(t,e.seed,new Date,o)}catch(e){throw await s.close().catch(()=>void 0),e}return e.created=!0,s}finally{let e;(e=ey.creationQueue.shift())?e():ey.creating--}}catch(t){throw ey.live.delete(e),t}finally{eI()}}function eE(e,t){if(!e)throw Error("Demo seed missing");eT();let a=ey.entries.get(e);if(a)ey.entries.delete(e);else{let i={seed:e,created:!1,lastUsed:0,leases:0,evicted:!1};i.pglite=eD(i,t),i.pglite.catch(()=>{ey.entries.get(e)===i&&ey.entries.delete(e)}),a=i}return a.lastUsed=eA(),ey.entries.set(e,a),ey.sweeper||(ey.sweeper=setInterval(()=>eT(),6e4),ey.sweeper.unref?.()),a}async function eM(e,t,a){let i=eE(e,a);i.leases++;try{return await t(await i.pglite)}finally{i.leases--,i.lastUsed=eA(),ev(i),eI()}}async function eC(){for(let e of[...ey.entries.values()])e$(e);await Promise.all([...ey.live].map(e=>e.closing))}e.s(["BUSY_WAIT_MS",0,5e3,"DEFAULT_POOL_MAX",0,3,"DEMO_BUSY",()=>o.L,"DEMO_TOO_MANY",()=>o._,"IDLE_MS",0,12e5,"MAX_CREATING",0,2,"RECENT_MS",0,6e4,"closeDemoPool",0,eC,"demoDbFor",0,function(e,t){return eE(e,t).pglite},"demoPoolMax",0,ek,"setDemoPoolClockOffsetForTests",0,function(e){if(!process.env.VITEST)throw Error("setDemoPoolClockOffsetForTests is for tests only");ew=e,eI()},"sweepIdleDemoDbs",0,eT,"withDemoDb",0,eM],601533)}];
27
27
 
28
28
  //# sourceMappingURL=src_lib_demo_pool_ts_0fpn8acsdk64i._.js.map