dev3000 0.0.59 → 0.0.62

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 (292) hide show
  1. package/README.md +4 -0
  2. package/dist/cdp-monitor.d.ts +2 -1
  3. package/dist/cdp-monitor.d.ts.map +1 -1
  4. package/dist/cdp-monitor.js +34 -17
  5. package/dist/cdp-monitor.js.map +1 -1
  6. package/dist/cli.js +105 -13
  7. package/dist/cli.js.map +1 -1
  8. package/dist/dev-environment.d.ts +8 -0
  9. package/dist/dev-environment.d.ts.map +1 -1
  10. package/dist/dev-environment.js +183 -42
  11. package/dist/dev-environment.js.map +1 -1
  12. package/dist/services/parsers/error-detectors/base.d.ts +24 -0
  13. package/dist/services/parsers/error-detectors/base.d.ts.map +1 -0
  14. package/dist/services/parsers/error-detectors/base.js +44 -0
  15. package/dist/services/parsers/error-detectors/base.js.map +1 -0
  16. package/dist/services/parsers/error-detectors/index.d.ts +6 -0
  17. package/dist/services/parsers/error-detectors/index.d.ts.map +1 -0
  18. package/dist/services/parsers/error-detectors/index.js +6 -0
  19. package/dist/services/parsers/error-detectors/index.js.map +1 -0
  20. package/dist/services/parsers/error-detectors/nextjs.d.ts +9 -0
  21. package/dist/services/parsers/error-detectors/nextjs.d.ts.map +1 -0
  22. package/dist/services/parsers/error-detectors/nextjs.js +52 -0
  23. package/dist/services/parsers/error-detectors/nextjs.js.map +1 -0
  24. package/dist/services/parsers/index.d.ts +8 -0
  25. package/dist/services/parsers/index.d.ts.map +1 -0
  26. package/dist/services/parsers/index.js +10 -0
  27. package/dist/services/parsers/index.js.map +1 -0
  28. package/dist/services/parsers/log-parsers/base.d.ts +26 -0
  29. package/dist/services/parsers/log-parsers/base.d.ts.map +1 -0
  30. package/dist/services/parsers/log-parsers/base.js +6 -0
  31. package/dist/services/parsers/log-parsers/base.js.map +1 -0
  32. package/dist/services/parsers/log-parsers/index.d.ts +6 -0
  33. package/dist/services/parsers/log-parsers/index.d.ts.map +1 -0
  34. package/dist/services/parsers/log-parsers/index.js +5 -0
  35. package/dist/services/parsers/log-parsers/index.js.map +1 -0
  36. package/dist/services/parsers/log-parsers/standard.d.ts +9 -0
  37. package/dist/services/parsers/log-parsers/standard.d.ts.map +1 -0
  38. package/dist/services/parsers/log-parsers/standard.js +17 -0
  39. package/dist/services/parsers/log-parsers/standard.js.map +1 -0
  40. package/dist/services/parsers/output-processor.d.ts +39 -0
  41. package/dist/services/parsers/output-processor.d.ts.map +1 -0
  42. package/dist/services/parsers/output-processor.js +54 -0
  43. package/dist/services/parsers/output-processor.js.map +1 -0
  44. package/mcp-server/.next/BUILD_ID +1 -1
  45. package/mcp-server/.next/app-build-manifest.json +27 -22
  46. package/mcp-server/.next/app-path-routes-manifest.json +1 -0
  47. package/mcp-server/.next/build-manifest.json +6 -5
  48. package/mcp-server/.next/cache/.previewinfo +1 -1
  49. package/mcp-server/.next/cache/.rscinfo +1 -1
  50. package/mcp-server/.next/cache/.tsbuildinfo +1 -1
  51. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  52. package/mcp-server/.next/prerender-manifest.json +10 -10
  53. package/mcp-server/.next/server/app/_global-error/page/app-build-manifest.json +4 -3
  54. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +4 -3
  55. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  56. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  57. package/mcp-server/.next/server/app/_global-error.html +2 -2
  58. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  59. package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +5 -4
  60. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +4 -3
  61. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  62. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  63. package/mcp-server/.next/server/app/_not-found.html +1 -1
  64. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  65. package/mcp-server/.next/server/app/api/config/route/app-build-manifest.json +4 -3
  66. package/mcp-server/.next/server/app/api/config/route/build-manifest.json +4 -3
  67. package/mcp-server/.next/server/app/api/health/route/app-build-manifest.json +4 -3
  68. package/mcp-server/.next/server/app/api/health/route/build-manifest.json +4 -3
  69. package/mcp-server/.next/server/app/api/logs/append/route/app-build-manifest.json +4 -3
  70. package/mcp-server/.next/server/app/api/logs/append/route/build-manifest.json +4 -3
  71. package/mcp-server/.next/server/app/api/logs/append/route.js +1 -1
  72. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  73. package/mcp-server/.next/server/app/api/logs/head/route/app-build-manifest.json +4 -3
  74. package/mcp-server/.next/server/app/api/logs/head/route/build-manifest.json +4 -3
  75. package/mcp-server/.next/server/app/api/logs/list/route/app-build-manifest.json +4 -3
  76. package/mcp-server/.next/server/app/api/logs/list/route/build-manifest.json +4 -3
  77. package/mcp-server/.next/server/app/api/logs/list/route.js +1 -1
  78. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  79. package/mcp-server/.next/server/app/api/logs/rotate/route/app-build-manifest.json +4 -3
  80. package/mcp-server/.next/server/app/api/logs/rotate/route/build-manifest.json +4 -3
  81. package/mcp-server/.next/server/app/api/logs/stream/route/app-build-manifest.json +4 -3
  82. package/mcp-server/.next/server/app/api/logs/stream/route/build-manifest.json +4 -3
  83. package/mcp-server/.next/server/app/api/logs/tail/route/app-build-manifest.json +4 -3
  84. package/mcp-server/.next/server/app/api/logs/tail/route/build-manifest.json +4 -3
  85. package/mcp-server/.next/server/app/api/mcp/[transport]/route/app-build-manifest.json +4 -3
  86. package/mcp-server/.next/server/app/api/mcp/[transport]/route/build-manifest.json +4 -3
  87. package/mcp-server/.next/server/app/api/mcp/[transport]/route.js +1 -1
  88. package/mcp-server/.next/server/app/api/mcp/[transport]/route.js.nft.json +1 -1
  89. package/mcp-server/.next/server/app/api/replay/route/app-build-manifest.json +4 -3
  90. package/mcp-server/.next/server/app/api/replay/route/build-manifest.json +4 -3
  91. package/mcp-server/.next/server/app/api/tools/route/app-build-manifest.json +12 -0
  92. package/mcp-server/.next/server/app/api/tools/route/app-paths-manifest.json +3 -0
  93. package/mcp-server/.next/server/app/api/tools/route/build-manifest.json +18 -0
  94. package/mcp-server/.next/server/app/api/tools/route/server-reference-manifest.json +4 -0
  95. package/mcp-server/.next/server/app/api/tools/route.js +7 -0
  96. package/mcp-server/.next/server/app/api/tools/route.js.map +5 -0
  97. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -0
  98. package/mcp-server/.next/server/app/api/tools/route_client-reference-manifest.js +2 -0
  99. package/mcp-server/.next/server/app/index.html +1 -1
  100. package/mcp-server/.next/server/app/index.rsc +3 -3
  101. package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +6 -5
  102. package/mcp-server/.next/server/app/logs/page/build-manifest.json +4 -3
  103. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  104. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  105. package/mcp-server/.next/server/app/page/app-build-manifest.json +6 -5
  106. package/mcp-server/.next/server/app/page/build-manifest.json +4 -3
  107. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  108. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  109. package/mcp-server/.next/server/app/replay/page/app-build-manifest.json +6 -5
  110. package/mcp-server/.next/server/app/replay/page/build-manifest.json +4 -3
  111. package/mcp-server/.next/server/app/replay/page.js.nft.json +1 -1
  112. package/mcp-server/.next/server/app/replay/page_client-reference-manifest.js +1 -1
  113. package/mcp-server/.next/server/app/replay.html +1 -1
  114. package/mcp-server/.next/server/app/replay.rsc +3 -3
  115. package/mcp-server/.next/server/app-paths-manifest.json +1 -0
  116. package/mcp-server/.next/server/chunks/{[root-of-the-server]__1d2effbb._.js → [root-of-the-server]__25014d3e._.js} +2 -2
  117. package/mcp-server/.next/server/chunks/[root-of-the-server]__3dc88807._.js +3 -0
  118. package/mcp-server/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js +3 -0
  119. package/mcp-server/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js.map +1 -0
  120. package/mcp-server/.next/server/chunks/[root-of-the-server]__82298dd3._.js +7 -7
  121. package/mcp-server/.next/server/chunks/[root-of-the-server]__82298dd3._.js.map +1 -1
  122. package/mcp-server/.next/{standalone/.next/server/chunks/[root-of-the-server]__a9062def._.js → server/chunks/[root-of-the-server]__901c3acf._.js} +2 -2
  123. package/mcp-server/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js +3 -0
  124. package/mcp-server/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js.map +1 -0
  125. package/mcp-server/.next/server/chunks/ssr/0916f_next_d5a56baf._.js +3 -0
  126. package/mcp-server/.next/server/chunks/ssr/0916f_next_d5a56baf._.js.map +1 -0
  127. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_102cca64._.js +6 -0
  128. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_102cca64._.js.map +1 -0
  129. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_58af49d5._.js +6 -0
  130. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_58af49d5._.js.map +1 -0
  131. package/mcp-server/.next/server/chunks/ssr/{0916f_next_dist_b838d7f3._.js → 0916f_next_dist_esm_87a80014._.js} +2 -2
  132. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_esm_87a80014._.js.map +1 -0
  133. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js +3 -0
  134. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js.map +1 -0
  135. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__44804f8a._.js +3 -0
  136. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__44804f8a._.js.map +1 -0
  137. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__67415ea0._.js +3 -0
  138. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__67415ea0._.js.map +1 -0
  139. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__da15f006._.js +3 -0
  140. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__da15f006._.js.map +1 -0
  141. package/mcp-server/.next/server/chunks/ssr/_69f197ad._.js +5 -0
  142. package/mcp-server/.next/server/chunks/ssr/_69f197ad._.js.map +1 -0
  143. package/mcp-server/.next/server/chunks/ssr/_dc26a647._.js +3 -0
  144. package/mcp-server/.next/server/chunks/ssr/_dc26a647._.js.map +1 -0
  145. package/mcp-server/.next/server/middleware-build-manifest.js +4 -3
  146. package/mcp-server/.next/server/pages/404.html +1 -1
  147. package/mcp-server/.next/server/pages/500.html +2 -2
  148. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  149. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  150. package/mcp-server/.next/standalone/.next/BUILD_ID +1 -1
  151. package/mcp-server/.next/standalone/.next/app-build-manifest.json +27 -22
  152. package/mcp-server/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  153. package/mcp-server/.next/standalone/.next/build-manifest.json +6 -5
  154. package/mcp-server/.next/standalone/.next/prerender-manifest.json +10 -10
  155. package/mcp-server/.next/standalone/.next/server/app/_global-error/page/app-build-manifest.json +4 -3
  156. package/mcp-server/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +4 -3
  157. package/mcp-server/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  158. package/mcp-server/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  159. package/mcp-server/.next/standalone/.next/server/app/_global-error.html +2 -2
  160. package/mcp-server/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  161. package/mcp-server/.next/standalone/.next/server/app/_not-found/page/app-build-manifest.json +5 -4
  162. package/mcp-server/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +4 -3
  163. package/mcp-server/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  164. package/mcp-server/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  165. package/mcp-server/.next/standalone/.next/server/app/_not-found.html +1 -1
  166. package/mcp-server/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  167. package/mcp-server/.next/standalone/.next/server/app/api/config/route/app-build-manifest.json +4 -3
  168. package/mcp-server/.next/standalone/.next/server/app/api/config/route/build-manifest.json +4 -3
  169. package/mcp-server/.next/standalone/.next/server/app/api/health/route/app-build-manifest.json +4 -3
  170. package/mcp-server/.next/standalone/.next/server/app/api/health/route/build-manifest.json +4 -3
  171. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route/app-build-manifest.json +4 -3
  172. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route/build-manifest.json +4 -3
  173. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route.js +1 -1
  174. package/mcp-server/.next/standalone/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  175. package/mcp-server/.next/standalone/.next/server/app/api/logs/head/route/app-build-manifest.json +4 -3
  176. package/mcp-server/.next/standalone/.next/server/app/api/logs/head/route/build-manifest.json +4 -3
  177. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route/app-build-manifest.json +4 -3
  178. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route/build-manifest.json +4 -3
  179. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route.js +1 -1
  180. package/mcp-server/.next/standalone/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  181. package/mcp-server/.next/standalone/.next/server/app/api/logs/rotate/route/app-build-manifest.json +4 -3
  182. package/mcp-server/.next/standalone/.next/server/app/api/logs/rotate/route/build-manifest.json +4 -3
  183. package/mcp-server/.next/standalone/.next/server/app/api/logs/stream/route/app-build-manifest.json +4 -3
  184. package/mcp-server/.next/standalone/.next/server/app/api/logs/stream/route/build-manifest.json +4 -3
  185. package/mcp-server/.next/standalone/.next/server/app/api/logs/tail/route/app-build-manifest.json +4 -3
  186. package/mcp-server/.next/standalone/.next/server/app/api/logs/tail/route/build-manifest.json +4 -3
  187. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route/app-build-manifest.json +4 -3
  188. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route/build-manifest.json +4 -3
  189. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route.js +1 -1
  190. package/mcp-server/.next/standalone/.next/server/app/api/mcp/[transport]/route.js.nft.json +1 -1
  191. package/mcp-server/.next/standalone/.next/server/app/api/replay/route/app-build-manifest.json +4 -3
  192. package/mcp-server/.next/standalone/.next/server/app/api/replay/route/build-manifest.json +4 -3
  193. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/app-build-manifest.json +12 -0
  194. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/app-paths-manifest.json +3 -0
  195. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/build-manifest.json +18 -0
  196. package/mcp-server/.next/standalone/.next/server/app/api/tools/route/server-reference-manifest.json +4 -0
  197. package/mcp-server/.next/standalone/.next/server/app/api/tools/route.js +7 -0
  198. package/mcp-server/.next/standalone/.next/server/app/api/tools/route.js.map +5 -0
  199. package/mcp-server/.next/standalone/.next/server/app/api/tools/route.js.nft.json +1 -0
  200. package/mcp-server/.next/standalone/.next/server/app/api/tools/route_client-reference-manifest.js +2 -0
  201. package/mcp-server/.next/standalone/.next/server/app/index.html +1 -1
  202. package/mcp-server/.next/standalone/.next/server/app/index.rsc +3 -3
  203. package/mcp-server/.next/standalone/.next/server/app/logs/page/app-build-manifest.json +6 -5
  204. package/mcp-server/.next/standalone/.next/server/app/logs/page/build-manifest.json +4 -3
  205. package/mcp-server/.next/standalone/.next/server/app/logs/page.js.nft.json +1 -1
  206. package/mcp-server/.next/standalone/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  207. package/mcp-server/.next/standalone/.next/server/app/page/app-build-manifest.json +6 -5
  208. package/mcp-server/.next/standalone/.next/server/app/page/build-manifest.json +4 -3
  209. package/mcp-server/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  210. package/mcp-server/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  211. package/mcp-server/.next/standalone/.next/server/app/replay/page/app-build-manifest.json +6 -5
  212. package/mcp-server/.next/standalone/.next/server/app/replay/page/build-manifest.json +4 -3
  213. package/mcp-server/.next/standalone/.next/server/app/replay/page.js.nft.json +1 -1
  214. package/mcp-server/.next/standalone/.next/server/app/replay/page_client-reference-manifest.js +1 -1
  215. package/mcp-server/.next/standalone/.next/server/app/replay.html +1 -1
  216. package/mcp-server/.next/standalone/.next/server/app/replay.rsc +3 -3
  217. package/mcp-server/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  218. package/mcp-server/.next/standalone/.next/server/chunks/{[root-of-the-server]__1d2effbb._.js → [root-of-the-server]__25014d3e._.js} +2 -2
  219. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__3dc88807._.js +3 -0
  220. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__7f1ecf7b._.js +3 -0
  221. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__82298dd3._.js +7 -7
  222. package/mcp-server/.next/{server/chunks/[root-of-the-server]__a9062def._.js → standalone/.next/server/chunks/[root-of-the-server]__901c3acf._.js} +2 -2
  223. package/mcp-server/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tools_route_actions_4a0d5a18.js +3 -0
  224. package/mcp-server/.next/standalone/.next/server/chunks/ssr/0916f_next_d5a56baf._.js +3 -0
  225. package/mcp-server/.next/standalone/.next/server/chunks/ssr/0916f_next_dist_102cca64._.js +6 -0
  226. package/mcp-server/.next/standalone/.next/server/chunks/ssr/0916f_next_dist_58af49d5._.js +6 -0
  227. package/mcp-server/.next/standalone/.next/server/chunks/ssr/{0916f_next_dist_b838d7f3._.js → 0916f_next_dist_esm_87a80014._.js} +2 -2
  228. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2cdf0446._.js +3 -0
  229. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__44804f8a._.js +3 -0
  230. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__67415ea0._.js +3 -0
  231. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__da15f006._.js +3 -0
  232. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_69f197ad._.js +5 -0
  233. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_dc26a647._.js +3 -0
  234. package/mcp-server/.next/standalone/.next/server/middleware-build-manifest.js +4 -3
  235. package/mcp-server/.next/standalone/.next/server/pages/404.html +1 -1
  236. package/mcp-server/.next/standalone/.next/server/pages/500.html +2 -2
  237. package/mcp-server/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  238. package/mcp-server/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  239. package/mcp-server/.next/standalone/app/api/mcp/[transport]/route.ts +508 -20
  240. package/mcp-server/.next/static/chunks/5dd333b6181425ad.js +1 -0
  241. package/mcp-server/.next/static/chunks/{dbf09e13116b591b.css → 6634762c4edabf25.css} +1 -1
  242. package/mcp-server/.next/static/chunks/8960f12966b75725.js +5 -0
  243. package/mcp-server/.next/static/chunks/8a5ef92054eb3f68.js +1 -0
  244. package/mcp-server/.next/static/chunks/a04299218648d5c9.js +5 -0
  245. package/mcp-server/.next/static/chunks/aac71a4d8cd0d1d1.js +1 -0
  246. package/mcp-server/.next/static/chunks/{5c0c8ae693afcfee.js → ab8ede9578945642.js} +1 -1
  247. package/mcp-server/.next/static/chunks/{416a6ad96e2949dc.js → c964cee505b7b510.js} +1 -1
  248. package/mcp-server/.next/static/chunks/{941b6c341513efe6.js → f7331e11d1cb0264.js} +1 -1
  249. package/mcp-server/.next/static/chunks/f83a9d423c663174.js +1 -0
  250. package/mcp-server/.next/static/chunks/turbopack-0005c9ba09919d66.js +3 -0
  251. package/mcp-server/.next/static/chunks/{turbopack-4c431b48e3258ab3.js → turbopack-1bf2fb01bf8c3dc0.js} +1 -1
  252. package/mcp-server/.next/static/chunks/{turbopack-28043e8ec5b32cbc.js → turbopack-a9958f358b128d0b.js} +1 -1
  253. package/mcp-server/.next/trace +1 -1
  254. package/mcp-server/.next/types/routes.d.ts +2 -1
  255. package/mcp-server/.next/types/validator.ts +9 -0
  256. package/mcp-server/app/api/mcp/[transport]/route.ts +508 -20
  257. package/mcp-server/app/api/tools/route.ts +194 -0
  258. package/mcp-server/app/page.tsx +245 -92
  259. package/package.json +1 -1
  260. package/mcp-server/.next/server/chunks/[root-of-the-server]__c51abf31._.js +0 -3
  261. package/mcp-server/.next/server/chunks/ssr/0916f_next_dist_b838d7f3._.js.map +0 -1
  262. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js +0 -3
  263. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js.map +0 -1
  264. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__5c573556._.js +0 -3
  265. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__5c573556._.js.map +0 -1
  266. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9197e6d6._.js +0 -3
  267. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__9197e6d6._.js.map +0 -1
  268. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b732be1d._.js +0 -3
  269. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__b732be1d._.js.map +0 -1
  270. package/mcp-server/.next/server/chunks/ssr/_7c04f51e._.js +0 -8
  271. package/mcp-server/.next/server/chunks/ssr/_7c04f51e._.js.map +0 -1
  272. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_8bde5c6b._.js +0 -3
  273. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_8bde5c6b._.js.map +0 -1
  274. package/mcp-server/.next/standalone/.next/server/chunks/[root-of-the-server]__c51abf31._.js +0 -3
  275. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__524f1e5c._.js +0 -3
  276. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5c573556._.js +0 -3
  277. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9197e6d6._.js +0 -3
  278. package/mcp-server/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b732be1d._.js +0 -3
  279. package/mcp-server/.next/standalone/.next/server/chunks/ssr/_7c04f51e._.js +0 -8
  280. package/mcp-server/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_8bde5c6b._.js +0 -3
  281. package/mcp-server/.next/static/chunks/0840a1d3b8d17eda.js +0 -5
  282. package/mcp-server/.next/static/chunks/3df53cad6e742c25.js +0 -1
  283. package/mcp-server/.next/static/chunks/830751c84b44689a.js +0 -1
  284. package/mcp-server/.next/static/chunks/accd4b2d97799296.js +0 -5
  285. package/mcp-server/.next/static/chunks/b2fe525ea0f48ed5.js +0 -1
  286. package/mcp-server/.next/static/chunks/turbopack-66b02875bc8e5dbd.js +0 -3
  287. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__1d2effbb._.js.map → [root-of-the-server]__25014d3e._.js.map} +0 -0
  288. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__c51abf31._.js.map → [root-of-the-server]__3dc88807._.js.map} +0 -0
  289. /package/mcp-server/.next/server/chunks/{[root-of-the-server]__a9062def._.js.map → [root-of-the-server]__901c3acf._.js.map} +0 -0
  290. /package/mcp-server/.next/static/{HNx7zx4NtWY3EQ9D5yHAA → fgx2Ltd5vbloYUQlVKX60}/_buildManifest.js +0 -0
  291. /package/mcp-server/.next/static/{HNx7zx4NtWY3EQ9D5yHAA → fgx2Ltd5vbloYUQlVKX60}/_clientMiddlewareManifest.json +0 -0
  292. /package/mcp-server/.next/static/{HNx7zx4NtWY3EQ9D5yHAA → fgx2Ltd5vbloYUQlVKX60}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/utils/warn-once.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/image-blur-svg.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/image-config.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/get-img-props.ts","turbopack:///[project]/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/side-effect.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/server/route-modules/app-page/vendored/contexts/amp-context.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/amp-mode.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/head.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/server/route-modules/app-page/vendored/contexts/image-config-context.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/server/route-modules/app-page/vendored/contexts/router-context.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/find-closest-quality.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/image-loader.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/client/use-merged-ref.ts","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/client/image-component.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/src/shared/lib/image-external.tsx","turbopack:///[project]/node_modules/.pnpm/next@15.5.1-canary.30_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.2.0-canary-d_5eea965284f26eb4e30482e6426df099/node_modules/next/image.js"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: ['image/webp'],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n (!config?.localPatterns?.length ||\n (config.localPatterns.length === 1 &&\n config.localPatterns[0].pathname === '/_next/static/media/**'))\n ) {\n warnOnce(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns. This config will be required starting in Next.js 16.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: <T extends {}>(\n components: Array<React.ReactElement<any>>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements, props))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AmpContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","export function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { AmpStateContext } from './amp-context.shared-runtime'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { isInAmpMode } from './amp-mode'\nimport { warnOnce } from './utils/warn-once'\n\ntype WithInAmpMode = {\n inAmpMode?: boolean\n}\n\nexport function defaultHead(inAmpMode = false): JSX.Element[] {\n const head = [<meta charSet=\"utf-8\" key=\"charset\" />]\n if (!inAmpMode) {\n head.push(\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />\n )\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents<T extends {} & WithInAmpMode>(\n headChildrenElements: Array<React.ReactElement<any>>,\n props: T\n) {\n const { inAmpMode } = props\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(inAmpMode).reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ImageConfigContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].RouterContext\n","import type { NextConfig } from '../../server/config-shared'\n\n/**\n * Find the closest matching `quality` in the list of `config.qualities`\n * @param quality the quality prop passed to the image component\n * @param config the \"images\" configuration from next.config.js\n * @returns the closest matching quality value\n */\nexport function findClosestQuality(\n quality: number | undefined,\n config: NextConfig['images'] | undefined\n): number {\n const q = quality || 75\n if (!config?.qualities?.length) {\n return q\n }\n return config.qualities.reduce(\n (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),\n 0\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID\n ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return { ...c, allSizes, deviceSizes, qualities }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.preload ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n"],"names":["warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","width","sizes","allSizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","map","w","find","p","generateImgAttrs","config","quality","srcSet","last","i","join","_state","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","imgConf","showAltText","blurComplete","defaultLoader","c","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","startsWith","split","endsWith","qualityInt","output","position","isNaN","includes","String","pathname","VALID_BLUR_EXT","urlStr","url","URL","err","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","type","buffered","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","props","meta","SideEffect","isServer","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","Boolean","updateHead","children","delete","_pendingUpdate","module","exports","require","vendored","AmpContext","HeadManagerContext","isInAmpMode","ampFirst","hybrid","hasQuery","defaultHead","inAmpMode","head","charSet","name","content","onlyReactElement","list","child","React","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","len","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","srcMessage","cloneElement","Head","ampState","useContext","AmpStateContext","Effect","ImageConfigContext","RouterContext","findClosestQuality","q","prev","cur","abs","missingValues","NEXT_RUNTIME","hasLocalMatch","parsedSrc","hasRemoteMatch","hostname","encodeURIComponent","NEXT_DEPLOYMENT_ID","__next_img_default","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","forwardedRef","setShowAltText","onError","ownRef","complete","ref","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","link","rel","pagesRouter","configContext","useMemo","useState","imgMeta","getImageProps","imgProps"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}
@@ -1,3 +0,0 @@
1
- module.exports=[70406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},22734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},24361,(e,r,t)=>{r.exports=e.x("util",()=>require("util"))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__c51abf31._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},12988,(a,b,c)=>{"use strict";b.exports=a.r(18622)},66755,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactJsxRuntime},56541,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].React},54770,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactDOM},38344,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.AppRouterContext},8054,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.HooksClientContext},35446,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.ServerInsertedHtml}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__524f1e5c._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},12988,(a,b,c)=>{"use strict";b.exports=a.r(18622)},66755,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactJsxRuntime},56541,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].React},54770,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactDOM},90780,a=>{"use strict";var b=a.i(66755),c=a.i(10711),d=a.i(56541);function e(){let[a,e]=(0,d.useState)(null),[f,g]=(0,d.useState)(!1),[h,i]=(0,d.useState)(null),[j,k]=(0,d.useState)(1),[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(0),p=(0,d.useCallback)(async()=>{g(!0);try{let a=new URLSearchParams({action:"parse"});h&&(a.set("startTime",h.start),a.set("endTime",h.end));let b=await fetch(`/api/replay?${a}`),c=await b.json();b.ok?e(c):console.error("Failed to load replay data:",c.error)}catch(a){console.error("Error loading replay data:",a)}g(!1)},[h]);(0,d.useEffect)(()=>{p()},[p]);let q=a?[...a.interactions.map(a=>({...a,eventType:"interaction"})),...a.navigations.map(a=>({...a,eventType:"navigation"}))].sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()):[],r=a=>new Date(a).toLocaleTimeString(),s=async()=>{if(a){m(!0),o(0);for(let a=0;a<q.length&&l;a++){o(a);let b=q[a],c=q[a+1];if(c){let a=new Date(b.timestamp).getTime(),d=(new Date(c.timestamp).getTime()-a)/j;await new Promise(a=>setTimeout(a,Math.min(d,5e3)))}}m(!1)}};return f?(0,b.jsx)("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"}),(0,b.jsx)("div",{className:"text-gray-500 text-sm mt-4",children:"Loading replay data..."})]})}):(0,b.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,b.jsx)("div",{className:"bg-white shadow-sm border-b",children:(0,b.jsx)("div",{className:"max-w-7xl mx-auto px-4 py-3",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-gray-900",children:"Session Replay"}),a&&(0,b.jsxs)("div",{className:"flex items-center gap-4 text-sm text-gray-600",children:[(0,b.jsxs)("span",{children:[a.interactions.length," interactions"]}),(0,b.jsxs)("span",{children:[a.navigations.length," navigations"]}),(0,b.jsxs)("span",{children:[a.screenshots.length," screenshots"]}),(0,b.jsxs)("span",{children:[(a=>{let b=Math.floor(a/1e3),c=Math.floor(b/60);return`${c}m ${b%60}s`})(a.duration)," duration"]})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("select",{value:j,onChange:a=>k(Number(a.target.value)),className:"px-3 py-1 border border-gray-300 rounded text-sm",children:[(0,b.jsx)("option",{value:.5,children:"0.5x"}),(0,b.jsx)("option",{value:1,children:"1x"}),(0,b.jsx)("option",{value:2,children:"2x"}),(0,b.jsx)("option",{value:4,children:"4x"}),(0,b.jsx)("option",{value:8,children:"8x"})]}),l?(0,b.jsx)("button",{type:"button",onClick:()=>{m(!1)},className:"px-4 py-2 bg-red-600 text-white rounded hover:bg-red-700",children:"ā¹ Stop"}):(0,b.jsx)("button",{type:"button",onClick:s,disabled:!a||0===q.length,className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:"ā–¶ Play"})]})]})})}),(0,b.jsx)("div",{className:"max-w-7xl mx-auto px-4 py-6",children:a?(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{className:"bg-white rounded-lg shadow-sm border",children:[(0,b.jsx)("div",{className:"px-4 py-3 border-b",children:(0,b.jsx)("h2",{className:"font-semibold text-gray-900",children:"Event Timeline"})}),(0,b.jsx)("div",{className:"max-h-96 overflow-y-auto",children:q.map((a,c)=>(0,b.jsxs)("div",{className:`px-4 py-2 border-b last:border-b-0 ${c===n?"bg-blue-50 border-blue-200":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-mono text-gray-500",children:r(a.timestamp)}),(0,b.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"navigation"===a.eventType?"bg-purple-100 text-purple-800":"CLICK"===a.type?"bg-green-100 text-green-800":"SCROLL"===a.type?"bg-yellow-100 text-yellow-800":"bg-gray-100 text-gray-800"}`,children:"navigation"===a.eventType?"NAV":a.type})]}),l&&c===n&&(0,b.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-pulse"})]}),(0,b.jsx)("div",{className:"mt-1 text-sm text-gray-700",children:"navigation"===a.eventType?(0,b.jsxs)("span",{children:["→ ",a.url]}):"CLICK"===a.type||"TAP"===a.type?(0,b.jsxs)("span",{children:["(",a.x,", ",a.y,") on ",a.target]}):"SCROLL"===a.type?(0,b.jsxs)("span",{children:[a.direction," ",a.distance,"px to (",a.x,", ",a.y,")"]}):"KEY"===a.type?(0,b.jsxs)("span",{children:['"',a.key,'" in ',a.target]}):(0,b.jsx)("span",{children:JSON.stringify(a)})})]},`${a.timestamp}-${c}`))})]}),(0,b.jsxs)("div",{className:"bg-white rounded-lg shadow-sm border",children:[(0,b.jsx)("div",{className:"px-4 py-3 border-b",children:(0,b.jsx)("h2",{className:"font-semibold text-gray-900",children:"Screenshots"})}),(0,b.jsx)("div",{className:"max-h-96 overflow-y-auto",children:a.screenshots.map((a,d)=>(0,b.jsxs)("div",{className:"px-4 py-2 border-b last:border-b-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsx)("span",{className:"text-xs font-mono text-gray-500",children:r(a.timestamp)}),(0,b.jsx)("span",{className:"text-xs text-gray-600",children:a.event})]}),(0,b.jsx)(c.default,{src:a.url,alt:`Screenshot: ${a.event}`,width:400,height:200,className:"w-full rounded border",style:{maxHeight:"200px",objectFit:"contain"}})]},`${a.timestamp}-${a.event}-${d}`))})]})]}):(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-gray-400 text-lg",children:"No replay data available"}),(0,b.jsx)("div",{className:"text-gray-500 text-sm mt-2",children:"Start using your app to generate interaction data"})]})})]})}a.s(["default",()=>e])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__5c573556._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},12988,(a,b,c)=>{"use strict";b.exports=a.r(18622)},66755,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactJsxRuntime},56541,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].React},54770,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactDOM},38344,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.AppRouterContext},8054,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.HooksClientContext},35446,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.ServerInsertedHtml},62889,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"HandleISRError",{enumerable:!0,get:function(){return e}});let d=a.r(56704).workAsyncStorage;function e(a){let{error:b}=a;if(d){let a=d.getStore();if((null==a?void 0:a.isRevalidate)||(null==a?void 0:a.isStaticGeneration))throw b&&console.error(b),b}return null}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1516,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(66755),e=a.r(62889),f={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},text:{fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"}},g=function(a){let{error:b}=a,c=null==b?void 0:b.digest;return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsx)("head",{}),(0,d.jsxs)("body",{children:[(0,d.jsx)(e.HandleISRError,{error:b}),(0,d.jsx)("div",{style:f.error,children:(0,d.jsxs)("div",{children:[(0,d.jsxs)("h2",{style:f.text,children:["Application error: a ",c?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",c?"server logs":"browser console"," for more information)."]}),c?(0,d.jsx)("p",{style:f.text,children:"Digest: "+c}):null]})})]})]})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__9197e6d6._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},12988,(a,b,c)=>{"use strict";b.exports=a.r(18622)},66755,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].ReactJsxRuntime},56541,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored["react-ssr"].React},60350,a=>{"use strict";var b=a.i(66755),c=a.i(56541);function d(){let[a,d]=(0,c.useState)(null),[e,f]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{fetch("/api/health").then(a=>a.json()).then(a=>{d(a),f(!1)}).catch(()=>{f(!1)})},[]),(0,b.jsxs)("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-4",children:[(0,b.jsx)("a",{href:"https://github.com/vercel-labs/dev3000",target:"_blank",rel:"noopener noreferrer",className:"fixed top-4 right-4 text-gray-600 hover:text-gray-900 transition-colors",title:"View on GitHub",children:(0,b.jsx)("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{d:"M12 0C5.374 0 0 5.373 0 12 0 17.302 3.438 21.8 8.207 23.387c.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"})})}),(0,b.jsxs)("div",{className:"bg-white rounded-lg shadow-lg p-8 max-w-2xl w-full",children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"šŸŽÆ dev3000"}),(0,b.jsx)("p",{className:"text-gray-600",children:"AI-powered development monitoring"})]}),(0,b.jsxs)("div",{className:"mb-8 p-4 bg-gray-50 rounded-lg",children:[(0,b.jsxs)("h2",{className:"text-lg font-semibold mb-3 flex items-center",children:[e?"ā³":a?.status==="healthy"?"āœ…":"āŒ",(0,b.jsx)("span",{className:"ml-2",children:"Server Status"})]}),e?(0,b.jsx)("p",{className:"text-gray-600",children:"Checking health..."}):a?(0,b.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Status:"})," ",a.status]}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Version:"})," ",a.version]}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Log File:"})," ",a.logFile.exists?"āœ…":"āŒ"," ",a.logFile.path]})]}):(0,b.jsx)("p",{className:"text-red-600",children:"Failed to get health status"})]}),(0,b.jsx)("div",{className:"space-y-4 mb-8",children:(0,b.jsx)("a",{href:"/logs",className:"block w-full bg-blue-500 text-white text-center py-3 px-4 rounded hover:bg-blue-600 transition-colors",children:"šŸ“Š View Development Logs"})}),(0,b.jsxs)("div",{className:"border-t pt-6",children:[(0,b.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center",children:["šŸ¤– ",(0,b.jsx)("span",{className:"ml-2",children:"MCP Integration"})]}),(0,b.jsxs)("div",{className:"bg-blue-50 p-4 rounded-lg mb-4",children:[(0,b.jsxs)("p",{className:"text-sm text-blue-800 mb-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Endpoint:"}),(0,b.jsxs)("code",{className:"bg-blue-100 px-2 py-1 rounded text-xs ml-2",children:["http://localhost:","3684","/api/mcp/mcp"]})]}),(0,b.jsx)("p",{className:"text-xs text-blue-600",children:"Use HTTP transport (not stdio) when configuring MCP clients"})]}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("h3",{className:"font-medium text-gray-900",children:"Configure AI Tools:"}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[(0,b.jsxs)("a",{href:"https://github.com/vercel-labs/dev3000#claude-desktop",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between p-3 border rounded hover:bg-gray-50 transition-colors text-sm",children:[(0,b.jsx)("span",{children:"Claude Desktop"}),(0,b.jsx)("span",{className:"text-gray-400",children:"↗"})]}),(0,b.jsxs)("a",{href:"https://github.com/vercel-labs/dev3000#mcp-clients",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between p-3 border rounded hover:bg-gray-50 transition-colors text-sm",children:[(0,b.jsx)("span",{children:"Other MCP Clients"}),(0,b.jsx)("span",{className:"text-gray-400",children:"↗"})]})]})]})]}),(0,b.jsxs)("div",{className:"mt-8 text-sm text-gray-600 text-center border-t pt-6",children:[(0,b.jsx)("p",{children:"Real-time development monitoring with visual context"}),(0,b.jsx)("p",{className:"mt-1",children:"Server logs + Browser events + Screenshots + AI debugging"})]})]})]})}a.s(["default",()=>d])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__b732be1d._.js.map
@@ -1,8 +0,0 @@
1
- module.exports=[44675,(a,b,c)=>{"use strict";function d(a){return Array.isArray(a)?a[1]:a}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getSegmentValue",{enumerable:!0,get:function(){return d}}),("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},13195,(a,b,c)=>{"use strict";function d(a){return"("===a[0]&&a.endsWith(")")}function e(a){return a.startsWith("@")&&"@children"!==a}function f(a,b){if(a.includes(g)){let a=JSON.stringify(b);return"{}"!==a?g+"?"+a:g}return a}Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{DEFAULT_SEGMENT_KEY:function(){return h},PAGE_SEGMENT_KEY:function(){return g},addSearchParamsIfPageSegment:function(){return f},isGroupSegment:function(){return d},isParallelRouteSegment:function(){return e}});let g="__PAGE__",h="__DEFAULT__"},57792,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return d}});var d=function(a){return a[a.SeeOther=303]="SeeOther",a[a.TemporaryRedirect=307]="TemporaryRedirect",a[a.PermanentRedirect=308]="PermanentRedirect",a}({});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},47611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{REDIRECT_ERROR_CODE:function(){return e},RedirectType:function(){return f},isRedirectError:function(){return g}});let d=a.r(57792),e="NEXT_REDIRECT";var f=function(a){return a.push="push",a.replace="replace",a}({});function g(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,f]=b,g=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===e&&("replace"===f||"push"===f)&&"string"==typeof g&&!isNaN(h)&&h in d.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},44262,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=a.r(57792),e=a.r(47611),f=a.r(20635).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},84072,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{HTTPAccessErrorStatus:function(){return d},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return f},getAccessFallbackErrorTypeByStatus:function(){return i},getAccessFallbackHTTPStatus:function(){return h},isHTTPAccessFallbackError:function(){return g}});let d={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},e=new Set(Object.values(d)),f="NEXT_HTTP_ERROR_FALLBACK";function g(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===f&&e.has(Number(c))}function h(a){return Number(a.digest.split(";")[1])}function i(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},97299,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return e}});let d=""+a.r(84072).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},47592,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(84072).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},65429,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(84072).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},47697,(a,b,c)=>{"use strict";function d(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===e}Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{isHangingPromiseRejectionError:function(){return d},makeDevtoolsIOAwarePromise:function(){return j},makeHangingPromise:function(){return h}});let e="HANGING_PROMISE_REJECTION";class f extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=e}}let g=new WeakMap;function h(a,b,c){if(a.aborted)return Promise.reject(new f(b,c));{let d=new Promise((d,e)=>{let h=e.bind(null,new f(b,c)),i=g.get(a);if(i)i.push(h);else{let b=[h];g.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return d.catch(i),d}}function i(){}function j(a){return new Promise(b=>{setTimeout(()=>{b(a)},0)})}},19922,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},12486,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{BailoutToCSRError:function(){return e},isBailoutToCSRError:function(){return f}});let d="BAILOUT_TO_CLIENT_SIDE_RENDERING";class e extends Error{constructor(a){super("Bail out to client-side rendering: "+a),this.reason=a,this.digest=d}}function f(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===d}},59173,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(84072),e=a.r(47611);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},52118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{DynamicServerError:function(){return e},isDynamicServerError:function(){return f}});let d="DYNAMIC_SERVER_USAGE";class e extends Error{constructor(a){super("Dynamic server usage: "+a),this.description=a,this.digest=d}}function f(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===d}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},67491,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{StaticGenBailoutError:function(){return e},isStaticGenBailoutError:function(){return f}});let d="NEXT_STATIC_GEN_BAILOUT";class e extends Error{constructor(...a){super(...a),this.code=d}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===d}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},15875,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{METADATA_BOUNDARY_NAME:function(){return d},OUTLET_BOUNDARY_NAME:function(){return f},ROOT_LAYOUT_BOUNDARY_NAME:function(){return g},VIEWPORT_BOUNDARY_NAME:function(){return e}});let d="__next_metadata_boundary__",e="__next_viewport_boundary__",f="__next_outlet_boundary__",g="__next_root_layout_boundary__"},562,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{atLeastOneTask:function(){return f},scheduleImmediate:function(){return e},scheduleOnNextTick:function(){return d},waitAtLeastOneReactRenderTask:function(){return g}});let d=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},e=a=>{setImmediate(a)};function f(){return new Promise(a=>e(a))}function g(){return new Promise(a=>setImmediate(a))}},53636,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super("Invariant: "+(a.endsWith(".")?a:a+".")+" This is a bug in Next.js.",b),this.name="InvariantError"}}},37574,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{Postpone:function(){return z},PreludeState:function(){return V},abortAndThrowOnSynchronousRequestDataAccess:function(){return x},abortOnSynchronousPlatformIOAccess:function(){return v},accessedDynamicData:function(){return H},annotateDynamicAccess:function(){return M},consumeDynamicAccess:function(){return I},createDynamicTrackingState:function(){return o},createDynamicValidationState:function(){return p},createHangingInputAbortSignal:function(){return L},createRenderInBrowserAbortSignal:function(){return K},delayUntilRuntimeStage:function(){return Y},formatDynamicAPIAccesses:function(){return J},getFirstDynamicReason:function(){return q},isDynamicPostpone:function(){return C},isPrerenderInterruptedError:function(){return G},logDisallowedDynamicError:function(){return W},markCurrentScopeAsDynamic:function(){return r},postponeWithTracking:function(){return A},throwIfDisallowedDynamic:function(){return X},throwToInterruptStaticGeneration:function(){return s},trackAllowedDynamicAccess:function(){return U},trackDynamicDataInDynamicRender:function(){return t},trackSynchronousPlatformIOAccessInDev:function(){return w},trackSynchronousRequestDataAccessInDev:function(){return y},useDynamicRouteParams:function(){return N},useDynamicSearchParams:function(){return O}});let d=function(a){return a&&a.__esModule?a:{default:a}}(a.r(56541)),e=a.r(52118),f=a.r(67491),g=a.r(32319),h=a.r(56704),i=a.r(47697),j=a.r(15875),k=a.r(562),l=a.r(12486),m=a.r(53636),n="function"==typeof d.default.unstable_postpone;function o(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function p(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function q(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function r(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return A(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new e.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function s(a,b,c){let d=Object.defineProperty(new e.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function t(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function u(a,b,c){let d=F(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function v(a,b,c,d){let e=d.dynamicTracking;u(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function w(a){a.prerenderPhase=!1}function x(a,b,c,d){if(!1===d.controller.signal.aborted){u(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw F(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}let y=w;function z({reason:a,route:b}){let c=g.workUnitAsyncStorage.getStore();A(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function A(a,b,c){(function(){if(!n)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),d.default.unstable_postpone(B(a,b))}function B(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function C(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&D(a.message)}function D(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===D(B("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let E="NEXT_PRERENDER_INTERRUPTED";function F(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=E,b}function G(a){return"object"==typeof a&&null!==a&&a.digest===E&&"name"in a&&"message"in a&&a instanceof Error}function H(a){return a.length>0}function I(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function J(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
2
- ${b}`))}function K(){let a=new AbortController;return a.abort(Object.defineProperty(new l.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function L(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else{let c=(0,g.getRuntimeStagePromise)(a);c?c.then(()=>(0,k.scheduleOnNextTick)(()=>b.abort())):(0,k.scheduleOnNextTick)(()=>b.abort())}return b.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function M(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function N(a){let b=h.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let e=c.fallbackRouteParams;e&&e.size>0&&d.default.use((0,i.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return A(b.route,a,c.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function O(a){let b=h.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,g.throwForMissingRequestStore)(a),c.type){case"prerender-client":d.default.use((0,i.makeHangingPromise)(c.renderSignal,b.route,a));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new l.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let P=/\n\s+at Suspense \(<anonymous>\)/,Q=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${j.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),R=RegExp(`\\n\\s+at ${j.METADATA_BOUNDARY_NAME}[\\n\\s]`),S=RegExp(`\\n\\s+at ${j.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),T=RegExp(`\\n\\s+at ${j.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function U(a,b,c,d){if(!T.test(b)){if(R.test(b)){c.hasDynamicMetadata=!0;return}if(S.test(b)){c.hasDynamicViewport=!0;return}if(Q.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(P.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=function(a,b){let c=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return c.stack=c.name+": "+a+b,c}(`Route "${a.route}": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a "use cache" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`,b);return void c.dynamicErrors.push(e)}}}var V=function(a){return a[a.Full=0]="Full",a[a.Empty=1]="Empty",a[a.Errored=2]="Errored",a}({});function W(a,b){console.error(b),a.dev||(a.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
3
- - Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.
4
- - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function X(a,b,c,d){if(d.syncDynamicErrorWithStack)throw W(a,d.syncDynamicErrorWithStack),new f.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b<d.length;b++)W(a,d[b]);throw new f.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new f.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new f.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new f.StaticGenBailoutError}function Y(a,b){return a.runtimeStagePromise?a.runtimeStagePromise.then(()=>b):b}},7054,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(47697),e=a.r(19922),f=a.r(12486),g=a.r(59173),h=a.r(37574),i=a.r(52118);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},28359,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(7054).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},90110,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=a.r(44262),e=a.r(47611),f=a.r(97299),g=a.r(47592),h=a.r(65429),i=a.r(28359);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},65390,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{UnrecognizedActionError:function(){return d},unstable_isUnrecognizedActionError:function(){return e}});class d extends Error{constructor(...a){super(...a),this.name="UnrecognizedActionError"}}function e(a){return!!(a&&"object"==typeof a&&a instanceof d)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},56532,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},ServerInsertedHTMLContext:function(){return j.ServerInsertedHTMLContext},forbidden:function(){return i.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return i.unauthorized},unstable_isUnrecognizedActionError:function(){return k.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return i.unstable_rethrow},useParams:function(){return q},usePathname:function(){return o},useRouter:function(){return p},useSearchParams:function(){return n},useSelectedLayoutSegment:function(){return s},useSelectedLayoutSegments:function(){return r},useServerInsertedHTML:function(){return j.useServerInsertedHTML}});let d=a.r(56541),e=a.r(38344),f=a.r(8054),g=a.r(44675),h=a.r(13195),i=a.r(90110),j=a.r(35446),k=a.r(65390),l=a.r(37574).useDynamicRouteParams,m=a.r(37574).useDynamicSearchParams;function n(){null==m||m("useSearchParams()");let a=(0,d.useContext)(f.SearchParamsContext);return(0,d.useMemo)(()=>a?new i.ReadonlyURLSearchParams(a):null,[a])}function o(){return null==l||l("usePathname()"),(0,d.useContext)(f.PathnameContext)}function p(){let a=(0,d.useContext)(e.AppRouterContext);if(null===a)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return a}function q(){return null==l||l("useParams()"),(0,d.useContext)(f.PathParamsContext)}function r(a){void 0===a&&(a="children"),null==l||l("useSelectedLayoutSegments()");let b=(0,d.useContext)(e.LayoutRouterContext);return b?function a(b,c,d,e){let f;if(void 0===d&&(d=!0),void 0===e&&(e=[]),d)f=b[1][c];else{var i;let a=b[1];f=null!=(i=a.children)?i:Object.values(a)[0]}if(!f)return e;let j=f[0],k=(0,g.getSegmentValue)(j);return!k||k.startsWith(h.PAGE_SEGMENT_KEY)?e:(e.push(k),a(f,c,!1,e))}(b.parentTree,a):null}function s(a){void 0===a&&(a="children"),null==l||l("useSelectedLayoutSegment()");let b=r(a);if(!b||0===b.length)return null;let c="children"===a?b[0]:b[b.length-1];return c===h.DEFAULT_SEGMENT_KEY?null:c}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},93372,(a,b,c)=>{b.exports=a.r(56532)},2573,a=>{"use strict";var b=a.i(66755),c=a.i(10711),d=a.i(93372),e=a.i(56541);function f(a){let b=/\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)\] \[([^\]]+)\] /,c=[],d=a.split("\n"),e=null;for(let a of d){if(!a.trim())continue;let d=a.match(b);if(d){let b,f;e&&c.push(e);let[g,h,i]=d,j=a.substring(g.length),k=/^TAB-\d+\.\d+$/.test(i),l=i,m=j;if(k){b=i;let a=j.match(/^\[([^\]]+)\] /);if(a&&(l=a[1],(m=j.substring(a[0].length)).includes("User-Agent:"))){let a=m.match(/User-Agent: ([^,\n]+)/);a&&(f=a[1])}}let n=m.match(/\[SCREENSHOT\] ([^\s[]+)/)?.[1],o=function(a){let b=a.match(/^\[CONSOLE LOG\] (.+)$/);if(!b)return a;let c=b[1];if(!c.includes("%c"))return a;let d=c;return d=(d=(d=d.replace(/%c/g,"")).replace(/\s+color:\s*[^{}\n]*?(?=\s*[{[]|$)/g,"")).replace(/\s+/g," ").trim(),`[CONSOLE LOG] ${d}`}(m);if((o=o.replace(/ \[PLAYWRIGHT\]$/,"").replace(/ \[CHROME_EXTENSION\]$/,"")).includes("[Network.webSocketFrameSent]")||o.includes("[Network.webSocketFrameReceived]")||o.includes("[Network.webSocketFrame")||o.includes("webSocketDebuggerUrl")&&o.includes("localhost")||o.includes("[NETWORK")&&o.includes("__PAGE__")&&o.includes("refresh")){e=null;continue}e={timestamp:h,source:l,message:o,screenshot:n,original:a,tabIdentifier:b,userAgent:f}}else e&&(e.message+=`
5
- ${a}`,e.original+=`
6
- ${a}`)}return e&&c.push(e),c}function g({url:a,maxLength:c=60}){let[d,f]=(0,e.useState)(!1);if(a.length<=c)return(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:a});let g=`${a.substring(0,c)}...`;return(0,b.jsx)("span",{className:"inline-block",children:d?(0,b.jsxs)("span",{children:[(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:a}),(0,b.jsx)("button",{type:"button",onClick:()=>f(!1),className:"ml-2 text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 px-1 py-0.5 rounded hover:bg-gray-100 dark:hover:bg-gray-700",children:"[collapse]"})]}):(0,b.jsxs)("span",{children:[(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:g}),(0,b.jsx)("button",{type:"button",onClick:()=>f(!0),className:"ml-1 text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 px-1 py-0.5 rounded hover:bg-gray-100 dark:hover:bg-gray-700",children:"[expand]"})]})})}function h({content:a}){let[c,d]=(0,e.useState)(!1);try{let e=JSON.parse(a);if(e&&"object"==typeof e&&"object"===e.type&&e.properties){let a=e.properties,f=e.description||"Object",g=e.overflow;return(0,b.jsxs)("div",{className:"inline-block",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(!c),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,b.jsx)("svg",{className:`w-3 h-3 transition-transform ${c?"rotate-90":""}`,fill:"currentColor",viewBox:"0 0 20 20",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,b.jsx)("span",{className:"text-purple-600",children:f}),!c&&(0,b.jsxs)("span",{className:"text-gray-500",children:[g?"...":""," ","{",a.slice(0,3).map((a,c)=>(0,b.jsxs)("span",{children:[c>0&&", ",(0,b.jsx)("span",{className:"text-red-600",children:a.name}),":",(0,b.jsx)("span",{className:"text-blue-600",children:"string"===a.type?`"${a.value}"`:"number"===a.type?a.value:"object"===a.type?"array"===a.subtype?a.value:"{...}":a.value})]},`${a.name}-${c}`)),a.length>3&&", ...","}"]})]}),c&&(0,b.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,b.jsx)("div",{className:"font-mono text-sm",children:(0,b.jsxs)("div",{className:"text-gray-600",children:[f," ","{",(0,b.jsxs)("div",{className:"ml-4",children:[a.map((c,d)=>(0,b.jsxs)("div",{className:"py-0.5",children:[(0,b.jsx)("span",{className:"text-red-600",children:c.name}),(0,b.jsx)("span",{className:"text-gray-500",children:": "}),(0,b.jsx)("span",{className:"string"===c.type?"text-green-600":"number"===c.type?"text-blue-600":"object"===c.type?"text-purple-600":"text-orange-600",children:"string"===c.type?`"${String(c.value)}"`:"number"===c.type?String(c.value):"object"===c.type?"array"===c.subtype?String(c.value):"{...}":String(c.value)}),d<a.length-1&&(0,b.jsx)("span",{className:"text-gray-500",children:","})]},`${c.name}-${d}`)),g&&(0,b.jsx)("div",{className:"text-gray-500 italic",children:"... and more properties"})]}),(0,b.jsx)("div",{className:"text-gray-600",children:"}"})]})})})]})}return(0,b.jsxs)("div",{className:"inline-block",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(!c),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,b.jsx)("svg",{className:`w-3 h-3 transition-transform ${c?"rotate-90":""}`,fill:"currentColor",viewBox:"0 0 20 20",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,b.jsx)("span",{className:"text-purple-600",children:"Object"}),!c&&(0,b.jsxs)("span",{className:"text-gray-500",children:["{","...","}"]})]}),c&&(0,b.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,b.jsx)("pre",{className:"font-mono text-sm text-gray-700 whitespace-pre-wrap",children:JSON.stringify(e,null,2)})})]})}catch(c){return(0,b.jsx)("span",{children:a})}}function i({entry:a}){var d;let e=(d=a.message).includes("[INTERACTION]")?{type:"INTERACTION",color:"bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800",tag:"bg-purple-100 dark:bg-purple-800 text-purple-800 dark:text-purple-200"}:d.includes("[CONSOLE ERROR]")?{type:"ERROR",color:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800",tag:"bg-red-100 dark:bg-red-800 text-red-800 dark:text-red-200"}:d.includes("[CONSOLE WARN]")?{type:"WARNING",color:"bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800",tag:"bg-yellow-100 dark:bg-yellow-800 text-yellow-800 dark:text-yellow-200"}:d.includes("[SCREENSHOT]")?{type:"SCREENSHOT",color:"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800",tag:"bg-blue-100 dark:bg-blue-800 text-blue-800 dark:text-blue-200"}:d.includes("[NAVIGATION]")?{type:"NAVIGATION",color:"bg-indigo-50 dark:bg-indigo-900/20 border-indigo-200 dark:border-indigo-800",tag:"bg-indigo-100 dark:bg-indigo-800 text-indigo-800 dark:text-indigo-200"}:d.includes("[NETWORK ERROR]")?{type:"NETWORK",color:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800",tag:"bg-red-100 dark:bg-red-800 text-red-800 dark:text-red-200"}:d.includes("[NETWORK REQUEST]")?{type:"NETWORK",color:"bg-gray-50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700",tag:"bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300"}:d.includes("[PAGE ERROR]")?{type:"ERROR",color:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800",tag:"bg-red-100 dark:bg-red-800 text-red-800 dark:text-red-200"}:{type:"DEFAULT",color:"border-gray-200 dark:border-gray-700",tag:"bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300"};return(0,b.jsxs)("div",{className:`border-l-4 ${e.color} pl-4 py-2`,children:[(0,b.jsxs)("div",{className:"grid grid-cols-[auto_auto_1fr] gap-3 items-start",children:[(0,b.jsx)("div",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono whitespace-nowrap pt-1",children:new Date(a.timestamp).toLocaleTimeString()}),(0,b.jsx)("div",{className:`px-2 py-1 rounded text-xs font-medium whitespace-nowrap ${"SERVER"===a.source?"bg-blue-100 dark:bg-blue-800 text-blue-800 dark:text-blue-200":"bg-green-100 dark:bg-green-800 text-green-800 dark:text-green-200"}`,children:a.source}),(0,b.jsx)("div",{className:"font-mono text-sm min-w-0 text-gray-900 dark:text-gray-100",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[(0,b.jsx)("div",{className:"flex-1 min-w-0",children:(a=>{let c,d=/\[([A-Z\s]+)\]/g,f=/\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/g,i=/(https?:\/\/[^\s]+)/g,j=[],k=0;for(c=d.exec(a);null!==c;)c.index>k&&j.push(a.slice(k,c.index)),j.push((0,b.jsx)("span",{className:`inline-block px-1.5 py-0.5 rounded text-xs font-medium ${e.tag} mr-1`,children:c[1]},c.index)),k=c.index+c[0].length,c=d.exec(a);return j.push(...((a,c)=>{let d=[...a.matchAll(f)],e=[...a.matchAll(i)],j=[...d.map(a=>({...a,type:"json"})),...e.map(a=>({...a,type:"url"}))];if(j.sort((a,b)=>(a.index??0)-(b.index??0)),0===j.length)return[a];let k=[],l=0;return j.forEach((d,e)=>{(d.index??0)>l&&k.push(a.slice(l,d.index??0)),"json"===d.type?k.push((0,b.jsx)(h,{content:d[0]},`${c}-json-${d.index}-${d[0].slice(0,20)}`)):"url"===d.type&&k.push((0,b.jsx)(g,{url:d[0]},`${c}-url-${d.index}-${d[0]}`)),l=(d.index??0)+d[0].length}),l<a.length&&k.push(a.slice(l)),k})(a.slice(k),"main")),j.length>0?j:a})(a.message)}),(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[a.tabIdentifier&&(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300",children:a.tabIdentifier}),a.userAgent&&(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-100 dark:bg-green-800 text-green-700 dark:text-green-200",children:a.userAgent.includes("Chrome")?"Chrome":a.userAgent.includes("Firefox")?"Firefox":a.userAgent.includes("Safari")?"Safari":a.userAgent.includes("Edge")?"Edge":"Browser"}),"BROWSER"===a.source&&(()=>{let c=a.message.includes("[PLAYWRIGHT]"),d=a.message.includes("[CHROME_EXTENSION]")||a.tabIdentifier;return c?(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-100 dark:bg-purple-800 text-purple-700 dark:text-purple-200",children:"šŸŽ­ Playwright"}):d?(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-100 dark:bg-blue-800 text-blue-700 dark:text-blue-200",children:"🧩 Extension"}):null})(),"SERVER"===a.source&&(()=>{let c=a.message.toLowerCase();if(c.includes("ready on http://localhost")||c.includes("ready in ")||c.includes("next.js")||c.includes("compiled client and server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-black text-white",children:"ā–² Next.js"});if(c.includes("nuxt")||c.includes("nitro")&&c.includes("http://localhost")||c.includes("universal mode")||c.includes("spa mode"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸ’š Nuxt"});if(c.includes("vue-cli-service")||c.includes("vue")&&(c.includes("dev server")||c.includes("local:"))||c.includes("@vue/cli-service"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-600 text-white",children:"🟢 Vue"});if(c.includes("local:")&&c.includes("vite")||c.includes("dev server running")||c.includes("vite v"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-500 text-white",children:"⚔ Vite"});if(c.includes("rails server")||c.includes("puma starting")||c.includes("use ctrl-c to stop")||c.includes("listening on tcp://")&&c.includes("3000"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-600 text-white",children:"šŸ’Ž Rails"});else if(c.includes("laravel development server")||c.includes("artisan serve")||c.includes("laravel")&&c.includes("127.0.0.1:8000"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-500 text-white",children:"šŸ…» Laravel"});else if(c.includes("express server")||c.includes("server listening on")||c.includes("app listening on port")||c.includes("node server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-700 text-white",children:"🟩 Express"});else if(c.includes("django")||c.includes("development server")&&c.includes("127.0.0.1:8000")||c.includes("runserver"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-800 text-white",children:"šŸ Django"});else if(c.includes("flask")||c.includes("running on http://127.0.0.1:5000")||c.includes("debug mode: on"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-800 text-white",children:"šŸŒ¶ļø Flask"});else if(c.includes("sveltekit")||c.includes("svelte")&&c.includes("dev")||c.includes("@sveltejs"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-orange-500 text-white",children:"šŸ”„ Svelte"});else if(c.includes("remix")||c.includes("@remix-run"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-400 text-white",children:"šŸ’æ Remix"});else if(c.includes("astro")||c.includes("@astrojs"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-600 text-white",children:"šŸš€ Astro"});else if(c.includes("spring boot")||c.includes("tomcat started on port")||c.includes("started application")&&c.includes("seconds"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸƒ Spring"});else if(c.includes("webpack compiled")||c.includes("compiled successfully")||c.includes("webpack-dev-server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-600 text-white",children:"āš›ļø React"});return null})()]})]})})]}),a.screenshot&&(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(c.default,{src:`/screenshots/${a.screenshot}`,alt:"Screenshot",width:0,height:0,sizes:"100vw",className:"w-full h-auto max-w-2xl border rounded shadow-sm",style:{maxHeight:"600px",objectFit:"contain"},unoptimized:!0})})]})}function j({version:a,initialData:c}){let g=(0,d.useRouter)(),h=(0,d.useSearchParams)(),[j,k]=function(){let[a,b]=(0,e.useState)(()=>!1);return(0,e.useEffect)(()=>{localStorage.setItem("dev3000-dark-mode",JSON.stringify(a)),a?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[a]),(0,e.useEffect)(()=>{let a=window.matchMedia("(prefers-color-scheme: dark)"),c=a=>{null===localStorage.getItem("dev3000-dark-mode")&&b(a.matches)};return a.addEventListener("change",c),()=>a.removeEventListener("change",c)},[]),[a,b]}(),[l,m]=(0,e.useState)(c?.logs||[]),[n,o]=(0,e.useState)(c?.mode||"tail");(0,e.useEffect)(()=>{let a=h.get("mode");a&&a!==n&&o(a)},[h,n]);let[p,q]=(0,e.useState)(!0),[r,s]=(0,e.useState)(!c),[t,u]=(0,e.useState)(c?.logs.length||0),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(c?.logFiles||[]),[z,A]=(0,e.useState)(c?.currentLogFile||""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)([]),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)({browser:!0,server:!0,interaction:!0,screenshot:!0}),[R,S]=(0,e.useState)({}),[T,U]=(0,e.useState)([]),V=(0,e.useRef)(null),W=(0,e.useRef)(null),X=(0,e.useRef)(null),Y=(0,e.useRef)(null),Z=(0,e.useRef)(null),$=(0,e.useRef)(!1),_=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/logs/list");if(a.ok){let b=await a.json();y(b.files),A(b.currentFile),C(b.projectName)}}catch(a){console.error("Error loading available logs:",a)}},[]),aa=(0,e.useCallback)(async()=>{if("tail"===n)try{let a=h.get("file"),b="",c=!0;if(a&&x.length>0){let d=x.find(b=>b.name===a);b=d?.path||z,c=d?.isCurrent!==!1}else b=z,c=!0;if(!c)return;let d=b?`/api/logs/tail?lines=50&logPath=${encodeURIComponent(b)}`:"/api/logs/tail?lines=50",e=await fetch(d);if(!e.ok)throw Error(`HTTP ${e.status}: ${e.statusText}`);let g=await e.json();if(!g.logs)return void console.warn("No logs data in response");let i=f(g.logs);if(i.length>t)if(p)w(new Date),T.length>0?(m([...l,...T,...i.slice(t)]),U([])):m(i),u(i.length),$.current||setTimeout(()=>{V.current?.scrollIntoView({behavior:"smooth"})},50);else{let a=i.slice(t);a.length>0&&(U(b=>[...b,...a]),u(i.length))}}catch(a){console.error("Error polling logs:",a)}},[n,p,h,x,z,t,T,l]);(0,e.useEffect)(()=>{if("tail"===n)return X.current=setInterval(aa,3e3),()=>{X.current&&clearInterval(X.current)};X.current&&clearInterval(X.current)},[n,aa]);let ab=(0,e.useCallback)(async()=>{s(!0),await _();try{let a=h.get("file"),b="";if(a&&x.length>0){let c=x.find(b=>b.name===a);b=c?.path||z}else b=z;let c=b?`/api/logs/${n}?lines=1000&logPath=${encodeURIComponent(b)}`:`/api/logs/${n}?lines=1000`,d=await fetch(c);if(!d.ok)throw Error(`HTTP ${d.status}: ${d.statusText}`);let e=await d.json();if(!e.logs){console.warn("No logs data in response"),m([]),s(!1);return}let g=f(e.logs);if(m(g),u(g.length),w(new Date),s(!1),"tail"===n&&!$.current){q(!0);let a=()=>{V.current?V.current.scrollIntoView({behavior:"auto"}):W.current&&(W.current.scrollTop=W.current.scrollHeight)};setTimeout(a,0),setTimeout(a,100)}}catch(a){console.error("Error loading logs:",a),m([])}},[_,h,x,z,n]);(0,e.useEffect)(()=>{h.get("mode");let a=c?.logs&&c?.logs.length>0;if(a||l.length)if(a&&0===l.length){if(m(c.logs),s(!1),"tail"===n&&!$.current){q(!0);let a=()=>{V.current?V.current.scrollIntoView({behavior:"auto"}):W.current&&(W.current.scrollTop=W.current.scrollHeight)};setTimeout(a,0),setTimeout(a,100),setTimeout(a,300)}}else"tail"===n&&p&&(s(!1),X.current=setInterval(()=>{aa()},3e3));else ab()},[n,c?.logs,p,ab,l.length,aa,h.get]),(0,e.useEffect)(()=>{l.length>0&&"tail"===n&&p&&!$.current&&setTimeout(()=>{V.current?V.current.scrollIntoView({behavior:"auto"}):W.current&&(W.current.scrollTop=W.current.scrollHeight)},0)},[l.length,n,p]),(0,e.useEffect)(()=>()=>{X.current&&clearInterval(X.current)},[]),(0,e.useEffect)(()=>{let a=a=>{Y.current&&!Y.current.contains(a.target)&&E(!1),Z.current&&!Z.current.contains(a.target)&&I(!1)};if(D||H)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[D,H]);let ac=async()=>{if(z&&!N&&window.confirm("Clear logs and start fresh?\n\nThis will:\n• Archive the current log file\n• Start a new empty log file\n• Clear the current view\n\nThe archived logs will still be available in the dropdown.")){O(!0);try{let a=await fetch("/api/logs/rotate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentLogPath:z})});if(a.ok)m([]),u(0),w(null),await _(),await ab();else{let b=await a.json();console.error("Failed to rotate log:",b),alert(`Failed to rotate log: ${b.error}`)}}catch(a){console.error("Error rotating log:",a),alert("Error rotating log")}finally{O(!1)}}},ad=(0,e.useMemo)(()=>{let a=new Set;return l.forEach(b=>{"BROWSER"===b.source&&b.userAgent&&a.add(b.userAgent)}),Array.from(a).sort()},[l]);(0,e.useEffect)(()=>{ad.length>0&&S(a=>{let b={...a};return ad.forEach(a=>{a in b||(b[a]=!0)}),b})},[ad]);let ae=(0,e.useMemo)(()=>l.filter(a=>{let b=a.message.includes("[INTERACTION]"),c=a.message.includes("[SCREENSHOT]");if(b)return P.interaction;if(c)return P.screenshot;if("SERVER"===a.source)return P.server;if("BROWSER"===a.source){if(!P.browser)return!1;if(ad.length>0&&a.userAgent)return!1!==R[a.userAgent]}return!0}),[l,P,R,ad]);return(0,b.jsxs)("div",{className:"h-screen bg-gray-50 dark:bg-gray-900 flex flex-col transition-colors",children:[(0,b.jsx)("div",{className:"bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700 flex-none z-10",children:(0,b.jsx)("div",{className:"max-w-7xl mx-auto px-4 py-3",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("h1",{className:"text-xl sm:text-2xl font-bold text-gray-900 dark:text-white whitespace-nowrap",children:"dev3000"}),(0,b.jsxs)("span",{className:"text-xs text-gray-400 dark:text-gray-500 whitespace-nowrap",children:["(v",a,")"]})]}),x.length>1?(0,b.jsxs)("div",{className:"relative",ref:Y,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>E(!D),className:"flex items-center gap-2 px-3 py-1 text-sm text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-700 rounded-md transition-colors",children:[(0,b.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:r&&!z?(0,b.jsx)("div",{className:"h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse",style:{width:"220px"}}):z?x.find(a=>a.path===z)?.isCurrent?"d3k.log":z.split("/").pop():"d3k.log"}),(0,b.jsx)("svg",{className:`w-4 h-4 transition-transform ${D?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),D&&x.length>1&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg z-20 min-w-80",children:(0,b.jsxs)("div",{className:"py-1 max-h-60 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"px-3 py-2 text-xs font-medium text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-600",children:[B," logs (",x.length,")"]}),x.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{E(!1),g.push(`/logs?file=${encodeURIComponent(a.name)}&mode=${n}`)},className:`w-full text-left px-3 py-2 text-sm hover:bg-gray-50 flex items-center justify-between ${a.isCurrent?"bg-blue-50 text-blue-900":"text-gray-700"}`,children:[(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-mono text-xs",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-gray-500",children:[new Date(a.mtime).toLocaleString()," • ",Math.round(a.size/1024),"KB"]})]}),a.isCurrent&&(0,b.jsx)("span",{className:"text-xs text-blue-600 font-medium",children:"current"})]},a.path))]})})]}):(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("span",{className:"font-mono text-xs text-gray-600 px-3 py-1 whitespace-nowrap",children:r&&!z?(0,b.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse",style:{width:"220px"}}):z?x.find(a=>a.path===z)?.isCurrent?"d3k.log":z.split("/").pop():"d3k.log"})}),l.length>0&&(0,b.jsxs)("span",{className:"text-sm text-gray-500 hidden sm:inline",children:[l.length," entries"]}),T.length>0&&!p&&(0,b.jsxs)("span",{className:"text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded-full",children:["+",T.length," buffered"]}),z&&!r&&(0,b.jsx)("button",{type:"button",onClick:ac,disabled:N,className:"px-2 py-1 text-xs bg-orange-100 text-orange-700 hover:bg-orange-200 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Clear logs (rotate current log to archive and start fresh)",children:N?"...":"Clear"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[!1,(0,b.jsxs)("div",{className:"relative",ref:Z,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>I(!H),className:"flex items-center gap-1 px-3 py-1 rounded text-sm font-medium transition-colors whitespace-nowrap bg-gray-100 text-gray-700 hover:bg-gray-200",children:[(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filter"]}),H&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg z-20 min-w-48",children:(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsx)("div",{className:"px-3 py-2 text-xs font-medium text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-700",children:"Log Types"}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.server,onChange:a=>Q(b=>({...b,server:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Server"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>"SERVER"===a.source).length})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.browser,onChange:a=>Q(b=>({...b,browser:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Browser"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>"BROWSER"===a.source).length})]}),ad.length>1&&P.browser&&(0,b.jsx)("div",{className:"ml-6 border-l border-gray-200 dark:border-gray-600 pl-2",children:ad.map(a=>{let c=a.includes("Chrome")?"Chrome":a.includes("Firefox")?"Firefox":a.includes("Safari")?"Safari":a.includes("Edge")?"Edge":"Browser";return(0,b.jsxs)("label",{className:"flex items-center justify-between px-2 py-1 text-xs hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:!1!==R[a],onChange:b=>S(c=>({...c,[a]:b.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500 w-3 h-3"}),(0,b.jsx)("span",{className:"text-gray-700 dark:text-gray-300",children:c})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(b=>"BROWSER"===b.source&&b.userAgent===a).length})]},a)})}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.interaction,onChange:a=>Q(b=>({...b,interaction:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Interaction"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>a.message.includes("[INTERACTION]")).length})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.screenshot,onChange:a=>Q(b=>({...b,screenshot:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Screenshot"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>a.message.includes("[SCREENSHOT]")).length})]})]})})]}),(0,b.jsxs)("div",{className:"flex items-center bg-gray-100 rounded-md p-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{let a=h.get("file");a?g.push(`/logs?file=${encodeURIComponent(a)}&mode=head`):g.push("/logs?mode=head")},className:`px-2 sm:px-3 py-1 rounded text-xs sm:text-sm font-medium transition-colors whitespace-nowrap ${"head"===n?"bg-white text-gray-900 shadow-sm":"text-gray-600 hover:text-gray-900"}`,children:"Head"}),(0,b.jsx)("button",{type:"button",onClick:()=>{let a=h.get("file");a?g.push(`/logs?file=${encodeURIComponent(a)}&mode=tail`):g.push("/logs?mode=tail")},className:`px-2 sm:px-3 py-1 rounded text-xs sm:text-sm font-medium transition-colors whitespace-nowrap ${"tail"===n?"bg-white text-gray-900 shadow-sm":"text-gray-600 hover:text-gray-900"}`,children:"Tail"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>k(!j),className:"p-2 rounded-md text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors ml-2",title:j?"Switch to light mode":"Switch to dark mode",children:j?(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})]})]})})}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,b.jsx)("div",{ref:W,className:"max-w-7xl mx-auto px-4 py-6 h-full overflow-y-auto",onScroll:()=>{if(W.current){let{scrollTop:a,scrollHeight:b,clientHeight:c}=W.current,d=a+c>=b-10;p&&!d&&($.current=!0),q(d)}},children:r?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"}),(0,b.jsx)("div",{className:"text-gray-500 text-sm mt-4",children:"Loading logs..."})]}):0===l.length?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-gray-400 dark:text-gray-500 text-lg",children:"šŸ“ No logs yet"}),(0,b.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm mt-2",children:"Logs will appear here as your development server runs"})]}):0===ae.length?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-gray-400 dark:text-gray-500 text-lg",children:"šŸ” No logs match current filters"}),(0,b.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm mt-2",children:"Try adjusting your filter settings to see more logs"})]}):(0,b.jsxs)("div",{className:"space-y-1 pb-4",children:[ae.map((a,c)=>(0,b.jsx)(i,{entry:a},`${a.timestamp}-${c}`)),(0,b.jsx)("div",{ref:V})]})})}),(0,b.jsx)("div",{className:"border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex-none",children:(0,b.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[v&&(0,b.jsxs)("span",{className:"text-xs text-gray-400 dark:text-gray-500 font-mono",children:["Last updated ",v.toLocaleTimeString()]}),z&&(0,b.jsx)("a",{href:`file://${z}`,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:text-blue-800 flex items-center gap-1",children:"Raw Log ↗"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("div",{className:`flex items-center gap-1 text-green-600 ${"tail"===n&&p?"visible":"invisible"}`,children:[(0,b.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),(0,b.jsx)("span",{className:"text-xs",children:"Live"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>{$.current=!1,T.length>0&&(m(a=>[...a,...T]),U([]),w(new Date)),V.current?.scrollIntoView({behavior:"smooth"})},className:`absolute top-0 right-0 flex items-center gap-1 px-2 py-0.5 bg-blue-600 text-white rounded text-xs hover:bg-blue-700 whitespace-nowrap ${"tail"===n&&!p?"visible":"invisible"}`,children:"↓ Live"})]})]})})]})}a.s(["default",()=>j],2573)}];
7
-
8
- //# sourceMappingURL=_7c04f51e._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[63652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},40657,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},7934,(a,b,c)=>{"use strict";function d(a){let{widthInt:b,heightInt:c,blurWidth:d,blurHeight:e,blurDataURL:f,objectFit:g}=a,h=d?40*d:b,i=e?40*e:c,j=h&&i?"viewBox='0 0 "+h+" "+i+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+j+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+f+"'/%3E%3C/svg%3E"}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},90428,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{VALID_LOADERS:function(){return d},imageConfigDefault:function(){return e}});let d=["default","imgix","cloudinary","akamai","custom"],e={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},47468,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return i}}),a.r(40657);let d=a.r(7934),e=a.r(90428),f=["-moz-initial","fill","none","scale-down",void 0];function g(a){return void 0!==a.default}function h(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function i(a,b){var c,i;let j,k,l,{src:m,sizes:n,unoptimized:o=!1,priority:p=!1,preload:q=!1,loading:r,className:s,quality:t,width:u,height:v,fill:w=!1,style:x,overrideSrc:y,onLoad:z,onLoadingComplete:A,placeholder:B="empty",blurDataURL:C,fetchPriority:D,decoding:E="async",layout:F,objectFit:G,objectPosition:H,lazyBoundary:I,lazyRoot:J,...K}=a,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=b,P=L||e.imageConfigDefault;if("allSizes"in P)j=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),d=null==(c=P.qualities)?void 0:c.sort((a,b)=>a-b);j={...P,allSizes:a,deviceSizes:b,qualities:d}}if(void 0===O)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let Q=K.loader||O;delete K.loader,delete K.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===j.loader)throw Object.defineProperty(Error('Image with src "'+m+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(F){"fill"===F&&(w=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[F];a&&(x={...x,...a});let b={responsive:"100vw",fill:"100vw"}[F];b&&!n&&(n=b)}let S="",T=h(u),U=h(v);if((i=m)&&"object"==typeof i&&(g(i)||void 0!==i.src)){let a=g(m)?m.default:m;if(!a.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!a.height||!a.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(k=a.blurWidth,l=a.blurHeight,C=C||a.blurDataURL,S=a.src,!w)if(T||U){if(T&&!U){let b=T/a.width;U=Math.round(a.height*b)}else if(!T&&U){let b=U/a.height;T=Math.round(a.width*b)}}else T=a.width,U=a.height}let V=!p&&!q&&("lazy"===r||void 0===r);(!(m="string"==typeof m?m:S)||m.startsWith("data:")||m.startsWith("blob:"))&&(o=!0,V=!1),j.unoptimized&&(o=!0),R&&!j.dangerouslyAllowSVG&&m.split("?",1)[0].endsWith(".svg")&&(o=!0);let W=h(t),X=Object.assign(w?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:G,objectPosition:H}:{},M?{}:{color:"transparent"},x),Y=N||"empty"===B?null:"blur"===B?'url("data:image/svg+xml;charset=utf-8,'+(0,d.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:k,blurHeight:l,blurDataURL:C||"",objectFit:X.objectFit})+'")':'url("'+B+'")',Z=f.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function(a){let{config:b,src:c,unoptimized:d,width:e,quality:f,sizes:g,loader:h}=a;if(d)return{src:c,srcSet:void 0,sizes:void 0};let{widths:i,kind:j}=function(a,b,c){let{deviceSizes:d,allSizes:e}=a;if(c){let a=/(^|\s)(1?\d?\d)vw/g,b=[];for(let d;d=a.exec(c);)b.push(parseInt(d[2]));if(b.length){let a=.01*Math.min(...b);return{widths:e.filter(b=>b>=d[0]*a),kind:"w"}}return{widths:e,kind:"w"}}return"number"!=typeof b?{widths:d,kind:"w"}:{widths:[...new Set([b,2*b].map(a=>e.find(b=>b>=a)||e[e.length-1]))],kind:"x"}}(b,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((a,d)=>h({config:b,src:c,quality:f,width:a})+" "+("w"===j?a:d+1)+j).join(", "),src:h({config:b,src:c,quality:f,width:i[k]})}}({config:j,src:m,unoptimized:o,width:T,quality:W,sizes:n,loader:Q}),aa=V?"lazy":r;return{props:{...K,loading:aa,fetchPriority:D,width:T,height:U,decoding:E,className:s,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:y||_.src},meta:{unoptimized:o,preload:q||p,placeholder:B,fill:w}}}},3988,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},83146,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(56541),e=()=>{};function f(a){var b;let{headManager:c,reduceComponentsToState:f}=a;function g(){if(c&&c.mountedInstances){let b=d.Children.toArray(Array.from(c.mountedInstances).filter(Boolean));c.updateHead(f(b,a))}}return null==c||null==(b=c.mountedInstances)||b.add(a.children),g(),e(()=>{var b;return null==c||null==(b=c.mountedInstances)||b.add(a.children),()=>{var b;null==c||null==(b=c.mountedInstances)||b.delete(a.children)}}),e(()=>(c&&(c._pendingUpdate=g),()=>{c&&(c._pendingUpdate=g)})),null}},64463,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.AmpContext},63962,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.HeadManagerContext},68377,(a,b,c)=>{"use strict";function d(a){let{ampFirst:b=!1,hybrid:c=!1,hasQuery:d=!1}=void 0===a?{}:a;return b||c&&d}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isInAmpMode",{enumerable:!0,get:function(){return d}})},87820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{default:function(){return p},defaultHead:function(){return l}});let d=a.r(63652),e=a.r(3988),f=a.r(66755),g=e._(a.r(56541)),h=d._(a.r(83146)),i=a.r(64463),j=a.r(63962),k=a.r(68377);function l(a){void 0===a&&(a=!1);let b=[(0,f.jsx)("meta",{charSet:"utf-8"},"charset")];return a||b.push((0,f.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),b}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===g.default.Fragment?a.concat(g.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(40657);let n=["name","httpEquiv","charSet","itemProp"];function o(a,b){let{inAmpMode:c}=b;return a.reduce(m,[]).reverse().concat(l(c).reverse()).filter(function(){let a=new Set,b=new Set,c=new Set,d={};return e=>{let f=!0,g=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){g=!0;let b=e.key.slice(e.key.indexOf("$")+1);a.has(b)?f=!1:a.add(b)}switch(e.type){case"title":case"base":b.has(e.type)?f=!1:b.add(e.type);break;case"meta":for(let a=0,b=n.length;a<b;a++){let b=n[a];if(e.props.hasOwnProperty(b))if("charSet"===b)c.has(b)?f=!1:c.add(b);else{let a=e.props[b],c=d[b]||new Set;("name"!==b||!g)&&c.has(a)?f=!1:(c.add(a),d[b]=c)}}}return f}}()).reverse().map((a,b)=>{let c=a.key||b;return g.default.cloneElement(a,{key:c})})}let p=function(a){let{children:b}=a,c=(0,g.useContext)(i.AmpStateContext),d=(0,g.useContext)(j.HeadManagerContext);return(0,f.jsx)(h.default,{reduceComponentsToState:o,headManager:d,inAmpMode:(0,k.isInAmpMode)(c),children:b})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},59259,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.ImageConfigContext},42553,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.RouterContext},88745,(a,b,c)=>{"use strict";function d(a,b){var c;let d=a||75;return(null==b||null==(c=b.qualities)?void 0:c.length)?b.qualities.reduce((a,b)=>Math.abs(b-d)<Math.abs(a-d)?b:a,0):d}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},90802,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(88745);function e(a){let{config:b,src:c,width:e,quality:f}=a,g=(0,d.findClosestQuality)(f,b);return b.path+"?url="+encodeURIComponent(c)+"&w="+e+"&q="+g+(c.startsWith("/_next/static/media/"),"")}e.__next_img_default=!0;let f=e},7547,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(56541);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(66755),g=e._(a.r(56541)),h=d._(a.r(54770)),i=d._(a.r(87820)),j=a.r(47468),k=a.r(90428),l=a.r(59259);a.r(40657);let m=a.r(42553),n=d._(a.r(90802)),o=a.r(7547),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=null==a?void 0:a.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),null==c?void 0:c.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}(null==d?void 0:d.current)&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)((a,b)=>{let{src:c,srcSet:d,sizes:e,height:h,width:i,decoding:j,className:k,style:l,fetchPriority:m,placeholder:n,loading:p,unoptimized:s,fill:t,onLoadRef:u,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:x,sizesInput:y,onLoad:z,onError:A,...B}=a,C=(0,g.useCallback)(a=>{a&&(A&&(a.src=a.src),a.complete&&q(a,n,u,v,w,s,y))},[c,n,u,v,w,A,s,y]),D=(0,o.useMergedRef)(b,C);return(0,f.jsx)("img",{...B,...r(m),loading:p,width:i,height:h,decoding:j,"data-nimg":t?"fill":"1",className:k,style:l,sizes:e,srcSet:d,src:c,ref:D,onLoad:a=>{q(a.currentTarget,n,u,v,w,s,y)},onError:a=>{x(!0),"empty"!==n&&w(!0),A&&A(a)}})});function t(a){let{isAppRouter:b,imgAttributes:c}=a,d={as:"image",imageSrcSet:c.srcSet,imageSizes:c.sizes,crossOrigin:c.crossOrigin,referrerPolicy:c.referrerPolicy,...r(c.fetchPriority)};return b&&h.default.preload?(h.default.preload(c.src,d),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:c.srcSet?void 0:c.src,...d},"__nimg-"+c.src+c.srcSet+c.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{var a;let b=p||d||k.imageConfigDefault,c=[...b.deviceSizes,...b.imageSizes].sort((a,b)=>a-b),e=b.deviceSizes.sort((a,b)=>a-b),f=null==(a=b.qualities)?void 0:a.sort((a,b)=>a-b);return{...b,allSizes:c,deviceSizes:e,qualities:f}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},66540,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{default:function(){return i},getImageProps:function(){return h}});let d=a.r(63652),e=a.r(47468),f=a.r(60783),g=d._(a.r(90802));function h(a){let{props:b}=(0,e.getImgProps)(a,{defaultLoader:g.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let i=f.Image},10711,(a,b,c)=>{b.exports=a.r(66540)}];
2
-
3
- //# sourceMappingURL=node_modules__pnpm_8bde5c6b._.js.map
@@ -1,5 +0,0 @@
1
- __turbopack_load_page_chunks__("/_error", [
2
- "static/chunks/7a1b61971931d3f6.js",
3
- "static/chunks/5c0c8ae693afcfee.js",
4
- "static/chunks/turbopack-4c431b48e3258ab3.js"
5
- ])