dev3000 0.0.100 → 0.0.102

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 (265) hide show
  1. package/README.md +2 -0
  2. package/dist/dev-environment.d.ts +1 -0
  3. package/dist/dev-environment.d.ts.map +1 -1
  4. package/dist/dev-environment.js +52 -8
  5. package/dist/dev-environment.js.map +1 -1
  6. package/dist/screencast-manager.d.ts.map +1 -1
  7. package/dist/screencast-manager.js +3 -4
  8. package/dist/screencast-manager.js.map +1 -1
  9. package/dist/src/tui-interface-impl.tsx +7 -1
  10. package/dist/tui-interface-impl.d.ts.map +1 -1
  11. package/dist/tui-interface-impl.js +4 -1
  12. package/dist/tui-interface-impl.js.map +1 -1
  13. package/mcp-server/.next/BUILD_ID +1 -1
  14. package/mcp-server/.next/build-manifest.json +7 -7
  15. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  16. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  17. package/mcp-server/.next/next-server.js.nft.json +1 -1
  18. package/mcp-server/.next/prerender-manifest.json +3 -3
  19. package/mcp-server/.next/server/app/_global-error/page/build-manifest.json +5 -5
  20. package/mcp-server/.next/server/app/_global-error/page.js +8 -8
  21. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  22. package/mcp-server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  23. package/mcp-server/.next/server/app/_global-error.html +2 -2
  24. package/mcp-server/.next/server/app/_global-error.rsc +7 -7
  25. package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  26. package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  27. package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  28. package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +3 -3
  29. package/mcp-server/.next/server/app/_not-found/page/build-manifest.json +5 -5
  30. package/mcp-server/.next/server/app/_not-found/page.js +10 -10
  31. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  32. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. package/mcp-server/.next/server/app/_not-found.html +1 -1
  34. package/mcp-server/.next/server/app/_not-found.rsc +7 -7
  35. package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
  36. package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  37. package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  38. package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  39. package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  40. package/mcp-server/.next/server/app/api/jank/[session]/route.js +5 -5
  41. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  42. package/mcp-server/.next/server/app/api/logs/append/route.js +4 -4
  43. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  44. package/mcp-server/.next/server/app/api/logs/head/route.js +4 -4
  45. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  46. package/mcp-server/.next/server/app/api/logs/list/route.js +4 -4
  47. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  48. package/mcp-server/.next/server/app/api/logs/rotate/route.js +5 -5
  49. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  50. package/mcp-server/.next/server/app/api/logs/stream/route.js +4 -4
  51. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  52. package/mcp-server/.next/server/app/api/logs/tail/route.js +4 -4
  53. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  54. package/mcp-server/.next/server/app/api/orchestrator/route.js +6 -6
  55. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
  56. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js +5 -5
  57. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  58. package/mcp-server/.next/server/app/api/screenshots/list/route.js +5 -5
  59. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  60. package/mcp-server/.next/server/app/api/tools/route.js +5 -5
  61. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  62. package/mcp-server/.next/server/app/index.html +1 -1
  63. package/mcp-server/.next/server/app/index.rsc +9 -9
  64. package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  65. package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +9 -9
  66. package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +3 -3
  67. package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  68. package/mcp-server/.next/server/app/logs/page/build-manifest.json +5 -5
  69. package/mcp-server/.next/server/app/logs/page.js +13 -13
  70. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  71. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  72. package/mcp-server/.next/server/app/mcp/route.js +5 -5
  73. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  74. package/mcp-server/.next/server/app/page/build-manifest.json +5 -5
  75. package/mcp-server/.next/server/app/page.js +12 -12
  76. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  77. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  78. package/mcp-server/.next/server/app/video/[session]/page/build-manifest.json +5 -5
  79. package/mcp-server/.next/server/app/video/[session]/page.js +12 -12
  80. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  81. package/mcp-server/.next/server/app/video/[session]/page_client-reference-manifest.js +1 -1
  82. package/mcp-server/.next/server/chunks/48bbd_next_dist_esm_build_templates_app-route_f218b776.js +3 -0
  83. package/mcp-server/.next/server/chunks/48bbd_next_dist_esm_build_templates_app-route_f218b776.js.map +1 -0
  84. package/mcp-server/.next/server/chunks/48bbd_next_f89e42b7._.js +17 -0
  85. package/mcp-server/.next/server/chunks/48bbd_next_f89e42b7._.js.map +1 -0
  86. package/mcp-server/.next/server/chunks/{[root-of-the-server]__6da2db92._.js → [root-of-the-server]__0691849a._.js} +3 -3
  87. package/mcp-server/.next/server/chunks/[root-of-the-server]__0691849a._.js.map +1 -0
  88. package/mcp-server/.next/server/chunks/[root-of-the-server]__104c0de1._.js +3 -0
  89. package/mcp-server/.next/server/chunks/[root-of-the-server]__104c0de1._.js.map +1 -0
  90. package/mcp-server/.next/server/chunks/{[root-of-the-server]__560d6800._.js → [root-of-the-server]__25028892._.js} +3 -3
  91. package/mcp-server/.next/server/chunks/[root-of-the-server]__25028892._.js.map +1 -0
  92. package/mcp-server/.next/server/chunks/{[root-of-the-server]__564803f8._.js → [root-of-the-server]__346502e7._.js} +2 -2
  93. package/mcp-server/.next/server/chunks/[root-of-the-server]__346502e7._.js.map +1 -0
  94. package/mcp-server/.next/server/chunks/[root-of-the-server]__55fb1929._.js +3 -0
  95. package/mcp-server/.next/server/chunks/[root-of-the-server]__55fb1929._.js.map +1 -0
  96. package/mcp-server/.next/server/chunks/[root-of-the-server]__5fb4d86e._.js +3 -0
  97. package/mcp-server/.next/server/chunks/[root-of-the-server]__5fb4d86e._.js.map +1 -0
  98. package/mcp-server/.next/server/chunks/[root-of-the-server]__623cd86e._.js +3 -0
  99. package/mcp-server/.next/server/chunks/{[root-of-the-server]__0ecb6808._.js.map → [root-of-the-server]__623cd86e._.js.map} +1 -1
  100. package/mcp-server/.next/server/chunks/[root-of-the-server]__79443649._.js +7 -0
  101. package/mcp-server/.next/server/chunks/{[root-of-the-server]__94037b23._.js.map → [root-of-the-server]__79443649._.js.map} +1 -1
  102. package/mcp-server/.next/server/chunks/[root-of-the-server]__acacc665._.js +7 -0
  103. package/mcp-server/.next/server/chunks/[root-of-the-server]__acacc665._.js.map +1 -0
  104. package/mcp-server/.next/server/chunks/[root-of-the-server]__ae49815f._.js +35 -8
  105. package/mcp-server/.next/server/chunks/[root-of-the-server]__ae49815f._.js.map +1 -1
  106. package/mcp-server/.next/server/chunks/[root-of-the-server]__b249526b._.js +3 -0
  107. package/mcp-server/.next/server/chunks/[root-of-the-server]__b249526b._.js.map +1 -0
  108. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc8c8c79._.js +3 -0
  109. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc8c8c79._.js.map +1 -0
  110. package/mcp-server/.next/server/chunks/{[root-of-the-server]__0db33344._.js → [root-of-the-server]__e07a3d2e._.js} +3 -3
  111. package/mcp-server/.next/server/chunks/[root-of-the-server]__e07a3d2e._.js.map +1 -0
  112. package/mcp-server/.next/server/chunks/[root-of-the-server]__e4f61504._.js +7 -0
  113. package/mcp-server/.next/server/chunks/{[root-of-the-server]__cc74dbef._.js.map → [root-of-the-server]__e4f61504._.js.map} +1 -1
  114. package/mcp-server/.next/server/chunks/[root-of-the-server]__f37ff204._.js +3 -0
  115. package/mcp-server/.next/server/chunks/[root-of-the-server]__f37ff204._.js.map +1 -0
  116. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_0b95b41d._.js +3 -0
  117. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_0b95b41d._.js.map +1 -0
  118. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_19ada84a._.js +3 -0
  119. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_19ada84a._.js.map +1 -0
  120. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_555486ea._.js +24 -0
  121. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_555486ea._.js.map +1 -0
  122. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_72d3c6b5._.js +6 -0
  123. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_72d3c6b5._.js.map +1 -0
  124. package/mcp-server/.next/server/chunks/ssr/{927ef_next_dist_71a74a90._.js → 48bbd_next_dist_c69079d6._.js} +3 -3
  125. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_c69079d6._.js.map +1 -0
  126. package/mcp-server/.next/server/chunks/ssr/{927ef_next_dist_client_components_builtin_forbidden_7f2836ae.js → 48bbd_next_dist_client_components_builtin_forbidden_ae4e8f76.js} +2 -2
  127. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_client_components_builtin_forbidden_ae4e8f76.js.map +1 -0
  128. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_client_components_builtin_global-error_5507dd64.js +3 -0
  129. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_client_components_builtin_global-error_5507dd64.js.map +1 -0
  130. package/mcp-server/.next/server/chunks/ssr/{927ef_next_dist_client_components_builtin_unauthorized_9c9a021e.js → 48bbd_next_dist_client_components_builtin_unauthorized_4685c00d.js} +2 -2
  131. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_client_components_builtin_unauthorized_4685c00d.js.map +1 -0
  132. package/mcp-server/.next/server/chunks/ssr/{927ef_next_dist_client_components_3f326070._.js → 48bbd_next_dist_client_components_e32e553b._.js} +2 -2
  133. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_client_components_e32e553b._.js.map +1 -0
  134. package/mcp-server/.next/server/chunks/ssr/{_6a5662d5._.js → 48bbd_next_dist_esm_build_templates_app-page_0cbe2e1c.js} +3 -3
  135. package/mcp-server/.next/server/chunks/ssr/48bbd_next_dist_esm_build_templates_app-page_0cbe2e1c.js.map +1 -0
  136. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__2abfd016._.js → [root-of-the-server]__1e3e0e71._.js} +2 -2
  137. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1e3e0e71._.js.map +1 -0
  138. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__3d2bec74._.js → [root-of-the-server]__2be641ed._.js} +2 -2
  139. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2be641ed._.js.map +1 -0
  140. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__1c5ac5f3._.js → [root-of-the-server]__40be2e56._.js} +2 -2
  141. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__40be2e56._.js.map +1 -0
  142. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4d783780._.js +3 -0
  143. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__0f57b0cb._.js → [root-of-the-server]__4f72b426._.js} +2 -2
  144. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__4f72b426._.js.map +1 -0
  145. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__ab133e42._.js → [root-of-the-server]__69b5bb4b._.js} +2 -2
  146. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__69b5bb4b._.js.map +1 -0
  147. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__92e495f0._.js +3 -0
  148. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__92e495f0._.js.map +1 -0
  149. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__a9c9cefa._.js +3 -0
  150. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__fba25701._.js.map → [root-of-the-server]__a9c9cefa._.js.map} +1 -1
  151. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__c7a0da5e._.js +3 -0
  152. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__c7a0da5e._.js.map +1 -0
  153. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__d6cfe4e2._.js → [root-of-the-server]__cb190a6f._.js} +2 -2
  154. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__cb190a6f._.js.map +1 -0
  155. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__f3bcd2aa._.js +3 -0
  156. package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__83f4a70b._.js.map → [root-of-the-server]__f3bcd2aa._.js.map} +1 -1
  157. package/mcp-server/.next/server/chunks/ssr/_0b465ed0._.js +8 -0
  158. package/mcp-server/.next/server/chunks/ssr/_0b465ed0._.js.map +1 -0
  159. package/mcp-server/.next/server/chunks/ssr/{927ef_next_dist_esm_build_templates_app-page_8574fd57.js → _46c41f8e._.js} +3 -3
  160. package/mcp-server/.next/server/chunks/ssr/_46c41f8e._.js.map +1 -0
  161. package/mcp-server/.next/server/chunks/ssr/_514a7b30._.js +8 -0
  162. package/mcp-server/.next/server/chunks/ssr/_514a7b30._.js.map +1 -0
  163. package/mcp-server/.next/server/chunks/ssr/{_2490ff37._.js → _97233da7._.js} +3 -3
  164. package/mcp-server/.next/server/chunks/ssr/{_0866a270._.js.map → _97233da7._.js.map} +1 -1
  165. package/mcp-server/.next/server/chunks/ssr/{_0866a270._.js → _dcda9934._.js} +3 -3
  166. package/mcp-server/.next/server/chunks/ssr/_dcda9934._.js.map +1 -0
  167. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
  168. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_page_tsx_9fc46577._.js +1 -1
  169. package/mcp-server/.next/server/chunks/ssr/mcp-server_components_dark-mode-toggle_tsx_f31dd15d._.js +1 -1
  170. package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_e1c4d2de._.js → node_modules__pnpm_d25cd5a0._.js} +4 -4
  171. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_d25cd5a0._.js.map +1 -0
  172. package/mcp-server/.next/server/middleware-build-manifest.js +5 -5
  173. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  174. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  175. package/mcp-server/.next/static/chunks/0813054680c4b8d9.js +1 -0
  176. package/mcp-server/.next/static/chunks/0e6c3dda50426d51.js +3 -0
  177. package/mcp-server/.next/static/chunks/541301cb5662b97b.js +4 -0
  178. package/mcp-server/.next/static/chunks/9713888fedfe1db9.js +1 -0
  179. package/mcp-server/.next/static/chunks/9eca4842d04ce395.js +20 -0
  180. package/mcp-server/.next/static/chunks/b8b614e19f1e5f19.js +1 -0
  181. package/mcp-server/.next/static/chunks/e0fc2c1c8371dd31.js +1 -0
  182. package/mcp-server/.next/static/chunks/e10632eea6a614ec.js +1 -0
  183. package/mcp-server/.next/static/chunks/eb4a4a37512a1b4e.js +3 -0
  184. package/mcp-server/.next/static/chunks/{d8a5fdca71b9c607.js → edae37866d6cb029.js} +1 -1
  185. package/mcp-server/.next/static/chunks/fa4eeb0b9c10fae4.js +3 -0
  186. package/mcp-server/.next/static/chunks/{turbopack-f59864db2f95ff01.js → turbopack-e3cd7a89396f3bb3.js} +2 -2
  187. package/mcp-server/app/logs/LogsClient.tsx +3 -4
  188. package/mcp-server/app/mcp/route.ts +26 -1
  189. package/mcp-server/app/mcp/tools.ts +188 -1
  190. package/package.json +3 -2
  191. package/src/tui-interface-impl.tsx +7 -1
  192. package/mcp-server/.next/server/chunks/927ef_next_b5c0ceab._.js +0 -17
  193. package/mcp-server/.next/server/chunks/927ef_next_b5c0ceab._.js.map +0 -1
  194. package/mcp-server/.next/server/chunks/927ef_next_dist_esm_build_templates_app-route_79d02384.js +0 -3
  195. package/mcp-server/.next/server/chunks/927ef_next_dist_esm_build_templates_app-route_79d02384.js.map +0 -1
  196. package/mcp-server/.next/server/chunks/[root-of-the-server]__0db33344._.js.map +0 -1
  197. package/mcp-server/.next/server/chunks/[root-of-the-server]__0ecb6808._.js +0 -3
  198. package/mcp-server/.next/server/chunks/[root-of-the-server]__0fb011f9._.js +0 -3
  199. package/mcp-server/.next/server/chunks/[root-of-the-server]__0fb011f9._.js.map +0 -1
  200. package/mcp-server/.next/server/chunks/[root-of-the-server]__307a61b6._.js +0 -3
  201. package/mcp-server/.next/server/chunks/[root-of-the-server]__307a61b6._.js.map +0 -1
  202. package/mcp-server/.next/server/chunks/[root-of-the-server]__4af7607d._.js +0 -7
  203. package/mcp-server/.next/server/chunks/[root-of-the-server]__4af7607d._.js.map +0 -1
  204. package/mcp-server/.next/server/chunks/[root-of-the-server]__560d6800._.js.map +0 -1
  205. package/mcp-server/.next/server/chunks/[root-of-the-server]__564803f8._.js.map +0 -1
  206. package/mcp-server/.next/server/chunks/[root-of-the-server]__62759808._.js +0 -3
  207. package/mcp-server/.next/server/chunks/[root-of-the-server]__62759808._.js.map +0 -1
  208. package/mcp-server/.next/server/chunks/[root-of-the-server]__6da2db92._.js.map +0 -1
  209. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +0 -7
  210. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +0 -7
  211. package/mcp-server/.next/server/chunks/[root-of-the-server]__d8486064._.js +0 -3
  212. package/mcp-server/.next/server/chunks/[root-of-the-server]__d8486064._.js.map +0 -1
  213. package/mcp-server/.next/server/chunks/[root-of-the-server]__e30dda1c._.js +0 -3
  214. package/mcp-server/.next/server/chunks/[root-of-the-server]__e30dda1c._.js.map +0 -1
  215. package/mcp-server/.next/server/chunks/[root-of-the-server]__e907f7c3._.js +0 -3
  216. package/mcp-server/.next/server/chunks/[root-of-the-server]__e907f7c3._.js.map +0 -1
  217. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_4ad3d29e._.js +0 -24
  218. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_4ad3d29e._.js.map +0 -1
  219. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_60ed0712._.js +0 -3
  220. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_60ed0712._.js.map +0 -1
  221. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_71a74a90._.js.map +0 -1
  222. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_b86f0c6a._.js +0 -3
  223. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_b86f0c6a._.js.map +0 -1
  224. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_cdf03b59._.js +0 -6
  225. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_cdf03b59._.js.map +0 -1
  226. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_client_components_3f326070._.js.map +0 -1
  227. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_client_components_builtin_forbidden_7f2836ae.js.map +0 -1
  228. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_client_components_builtin_global-error_c5387393.js +0 -3
  229. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_client_components_builtin_global-error_c5387393.js.map +0 -1
  230. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_client_components_builtin_unauthorized_9c9a021e.js.map +0 -1
  231. package/mcp-server/.next/server/chunks/ssr/927ef_next_dist_esm_build_templates_app-page_8574fd57.js.map +0 -1
  232. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__0f57b0cb._.js.map +0 -1
  233. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1501212c._.js +0 -3
  234. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1501212c._.js.map +0 -1
  235. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__1c5ac5f3._.js.map +0 -1
  236. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__2abfd016._.js.map +0 -1
  237. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__3d2bec74._.js.map +0 -1
  238. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__83f4a70b._.js +0 -3
  239. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__ab133e42._.js.map +0 -1
  240. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__cdc83fa5._.js +0 -3
  241. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__d6cfe4e2._.js.map +0 -1
  242. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__f28a30da._.js +0 -3
  243. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__f28a30da._.js.map +0 -1
  244. package/mcp-server/.next/server/chunks/ssr/[root-of-the-server]__fba25701._.js +0 -3
  245. package/mcp-server/.next/server/chunks/ssr/_2490ff37._.js.map +0 -1
  246. package/mcp-server/.next/server/chunks/ssr/_6a5662d5._.js.map +0 -1
  247. package/mcp-server/.next/server/chunks/ssr/_b0105d1e._.js +0 -8
  248. package/mcp-server/.next/server/chunks/ssr/_b0105d1e._.js.map +0 -1
  249. package/mcp-server/.next/server/chunks/ssr/_e1e3dbce._.js +0 -8
  250. package/mcp-server/.next/server/chunks/ssr/_e1e3dbce._.js.map +0 -1
  251. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_e1c4d2de._.js.map +0 -1
  252. package/mcp-server/.next/static/chunks/0daa3bbf22255814.js +0 -3
  253. package/mcp-server/.next/static/chunks/166de2ba9f1d84b3.js +0 -3
  254. package/mcp-server/.next/static/chunks/1d0aa71dc83edb1b.js +0 -1
  255. package/mcp-server/.next/static/chunks/30cf3ce29791996b.js +0 -20
  256. package/mcp-server/.next/static/chunks/5ba0dac3773d4366.js +0 -3
  257. package/mcp-server/.next/static/chunks/64afb7547dc485e7.js +0 -1
  258. package/mcp-server/.next/static/chunks/6e21d6bccb01680d.js +0 -1
  259. package/mcp-server/.next/static/chunks/a85611618c82c0e6.js +0 -1
  260. package/mcp-server/.next/static/chunks/bb935d6ae29e5a29.js +0 -1
  261. package/mcp-server/.next/static/chunks/fc6991041566dbdc.js +0 -4
  262. /package/mcp-server/.next/server/chunks/ssr/{[root-of-the-server]__cdc83fa5._.js.map → [root-of-the-server]__4d783780._.js.map} +0 -0
  263. /package/mcp-server/.next/static/{_WBy1bEjsEo8EAeSPQRAg → 4DzBVkDIn_yRVz53mYMf8}/_buildManifest.js +0 -0
  264. /package/mcp-server/.next/static/{_WBy1bEjsEo8EAeSPQRAg → 4DzBVkDIn_yRVz53mYMf8}/_clientMiddlewareManifest.json +0 -0
  265. /package/mcp-server/.next/static/{_WBy1bEjsEo8EAeSPQRAg → 4DzBVkDIn_yRVz53mYMf8}/_ssgManifest.js +0 -0
@@ -24,7 +24,10 @@ export const TOOL_DESCRIPTIONS = {
24
24
  "🔍 **COMPONENT SOURCE FINDER** - Maps DOM elements to their source code by extracting the React component function and finding unique patterns to search for.\n\n🎯 **HOW IT WORKS:**\n• Inspects the element via Chrome DevTools Protocol\n• Extracts the React component function source using .toString()\n• Identifies unique code patterns (specific JSX, classNames, imports)\n• Returns targeted grep patterns to find the exact source file\n\n💡 **PERFECT FOR:** Finding which file contains the code for a specific element, especially useful for CLS debugging when you need to fix layout shifts in specific components.",
25
25
 
26
26
  restart_dev_server:
27
- "🔄 **DEV SERVER RESTART** - Safely restarts the development server while preserving dev3000's monitoring, logs, and browser connection.\n\n🎯 **SMART RESTART LOGIC:**\n• First tries nextjs-dev MCP restart (if available and user has Next.js canary)\n• Falls back to dev3000's own restart mechanism:\n - Kills the old server process on the app port\n - Waits for clean shutdown\n - Spawns a new server with the same command that was originally used\n - Keeps dev3000's MCP server, browser monitoring, and screenshot capture running\n• All logging continues seamlessly - no data loss\n• Browser monitoring stays connected - no need to relaunch Chrome\n\n⚡ **WHEN TO USE:**\n• After modifying next.config.js, middleware, or environment variables\n• When you need a clean restart to clear server state\n• After significant code changes that Next.js HMR can't handle\n• When debugging persistent state or memory issues\n\n⚠️ **CRITICAL - DO NOT:**\n• ❌ NEVER manually run kill commands on the dev server like `pkill -f \"next dev\"` or `lsof -ti :3000 | xargs kill`\n• ❌ NEVER manually start the dev server with `npm run dev`, `pnpm dev`, `next dev`, etc.\n• ✅ ALWAYS use this tool for dev server restarts - it preserves all dev3000 infrastructure\n\n⚠️ **IMPORTANT:**\n• AVOID using this unnecessarily - Next.js HMR handles most changes automatically\n• Only restart when truly needed for config changes or state issues\n• The server will be offline for a few seconds during restart\n• Browser may show connection error briefly while server restarts\n\n💡 **PERFECT FOR:** 'restart the dev server', 'clean restart', 'reload the server' - but only when actually needed, not for regular code changes."
27
+ "🔄 **DEV SERVER RESTART** - Safely restarts the development server while preserving dev3000's monitoring, logs, and browser connection.\n\n🎯 **SMART RESTART LOGIC:**\n• First tries nextjs-dev MCP restart (if available and user has Next.js canary)\n• Falls back to dev3000's own restart mechanism:\n - Kills the old server process on the app port\n - Waits for clean shutdown\n - Spawns a new server with the same command that was originally used\n - Keeps dev3000's MCP server, browser monitoring, and screenshot capture running\n• All logging continues seamlessly - no data loss\n• Browser monitoring stays connected - no need to relaunch Chrome\n\n⚡ **WHEN TO USE:**\n• After modifying next.config.js, middleware, or environment variables\n• When you need a clean restart to clear server state\n• After significant code changes that Next.js HMR can't handle\n• When debugging persistent state or memory issues\n\n⚠️ **CRITICAL - DO NOT:**\n• ❌ NEVER manually run kill commands on the dev server like `pkill -f \"next dev\"` or `lsof -ti :3000 | xargs kill`\n• ❌ NEVER manually start the dev server with `npm run dev`, `pnpm dev`, `next dev`, etc.\n• ✅ ALWAYS use this tool for dev server restarts - it preserves all dev3000 infrastructure\n\n⚠️ **IMPORTANT:**\n• AVOID using this unnecessarily - Next.js HMR handles most changes automatically\n• Only restart when truly needed for config changes or state issues\n• The server will be offline for a few seconds during restart\n• Browser may show connection error briefly while server restarts\n\n💡 **PERFECT FOR:** 'restart the dev server', 'clean restart', 'reload the server' - but only when actually needed, not for regular code changes.",
28
+
29
+ crawl_app:
30
+ "🕷️ **APP CRAWLER** - Discovers all URLs in your app by crawling links starting from the homepage. Perfect for finding every page before running fixes or tests across your entire site.\n\n🎯 **SMART CRAWLING:**\n• Starts at your app's homepage (localhost)\n• Discovers all unique URLs at specified depth\n• Depth 1 = homepage links only\n• Depth 2 = homepage + links from those pages\n• Depth 'all' = exhaustive crawl until no new links found\n• Only follows same-origin links (stays within your app)\n• Deduplicates URLs automatically\n\n📊 **OUTPUT:**\n• List of all discovered URLs\n• Total count of unique pages\n• Depth reached\n• Ready to use with fix_my_app or other tools\n\n💡 **PERFECT FOR:**\n• 'crawl my app' or 'crawl my shit' - discover all pages\n• 'crawl my app and fix my shit' - find all pages then run fixes\n• Site-wide testing and debugging\n• Verifying all routes work before deployment\n\n⚡ **USAGE:**\n• Default: depth 1 (just homepage links)\n• Specify depth: 'crawl at depth 2' or depth=2\n• Full crawl: 'crawl all pages' or depth='all'"
28
31
  }
29
32
 
30
33
  // Types
@@ -3606,3 +3609,187 @@ export async function restartDevServer(params: {
3606
3609
  }
3607
3610
  }
3608
3611
  }
3612
+
3613
+ // Crawl app - discover all URLs
3614
+ export interface CrawlAppParams {
3615
+ depth?: number | "all"
3616
+ projectName?: string
3617
+ }
3618
+
3619
+ export async function crawlApp(params: CrawlAppParams) {
3620
+ const { depth = 1, projectName } = params
3621
+
3622
+ try {
3623
+ // Find active session
3624
+ const sessions = findActiveSessions()
3625
+ const session = projectName ? sessions.find((s) => s.projectName === projectName) : sessions[0]
3626
+
3627
+ if (!session) {
3628
+ return {
3629
+ content: [
3630
+ {
3631
+ type: "text" as const,
3632
+ text: projectName
3633
+ ? `❌ No active session found for project "${projectName}". Available projects: ${sessions.map((s) => s.projectName).join(", ") || "none"}`
3634
+ : "❌ No active dev3000 sessions found. Start dev3000 first with `d3k` in your project directory."
3635
+ }
3636
+ ]
3637
+ }
3638
+ }
3639
+
3640
+ // Get CDP URL and app port from session
3641
+ const sessionData = JSON.parse(readFileSync(session.sessionFile, "utf-8"))
3642
+ const cdpUrl = sessionData.cdpUrl?.replace("http://", "ws://")
3643
+ const appPort = sessionData.appPort || "3000"
3644
+ const baseUrl = `http://localhost:${appPort}`
3645
+
3646
+ if (!cdpUrl) {
3647
+ return {
3648
+ content: [
3649
+ {
3650
+ type: "text" as const,
3651
+ text: "❌ No Chrome DevTools connection found. Browser monitoring must be active to crawl."
3652
+ }
3653
+ ]
3654
+ }
3655
+ }
3656
+
3657
+ logToDevFile(`Crawl App: Starting crawl at depth ${depth} for ${baseUrl}`)
3658
+
3659
+ // Connect to CDP
3660
+ const ws = new WebSocket(cdpUrl)
3661
+ await new Promise((resolve, reject) => {
3662
+ ws.on("open", resolve)
3663
+ ws.on("error", reject)
3664
+ setTimeout(() => reject(new Error("CDP connection timeout")), 5000)
3665
+ })
3666
+
3667
+ let messageId = 2000
3668
+ // biome-ignore lint/suspicious/noExplicitAny: CDP protocol responses are dynamic
3669
+ const sendCommand = (method: string, params: Record<string, unknown> = {}): Promise<any> => {
3670
+ return new Promise((resolve, reject) => {
3671
+ const id = messageId++
3672
+ const message = JSON.stringify({ id, method, params })
3673
+
3674
+ const handler = (data: Buffer) => {
3675
+ const response = JSON.parse(data.toString())
3676
+ if (response.id === id) {
3677
+ ws.off("message", handler)
3678
+ if (response.error) {
3679
+ reject(new Error(response.error.message))
3680
+ } else {
3681
+ resolve(response.result)
3682
+ }
3683
+ }
3684
+ }
3685
+
3686
+ ws.on("message", handler)
3687
+ ws.send(message)
3688
+
3689
+ setTimeout(() => {
3690
+ ws.off("message", handler)
3691
+ reject(new Error("Command timeout"))
3692
+ }, 10000)
3693
+ })
3694
+ }
3695
+
3696
+ // Enable necessary domains
3697
+ await sendCommand("Runtime.enable")
3698
+ await sendCommand("Page.enable")
3699
+
3700
+ // Discovered URLs
3701
+ const discovered = new Set<string>([baseUrl])
3702
+ const visited = new Set<string>()
3703
+ const toVisit: string[] = [baseUrl]
3704
+
3705
+ let currentDepth = 0
3706
+ const maxDepth = depth === "all" ? Number.POSITIVE_INFINITY : depth
3707
+
3708
+ while (toVisit.length > 0 && currentDepth <= maxDepth) {
3709
+ const currentLevelUrls = [...toVisit]
3710
+ toVisit.length = 0
3711
+
3712
+ logToDevFile(`Crawl App: Processing depth ${currentDepth} with ${currentLevelUrls.length} URLs`)
3713
+
3714
+ for (const url of currentLevelUrls) {
3715
+ if (visited.has(url)) continue
3716
+ visited.add(url)
3717
+
3718
+ try {
3719
+ // Navigate to URL
3720
+ logToDevFile(`Crawl App: Visiting ${url}`)
3721
+ await sendCommand("Page.navigate", { url })
3722
+
3723
+ // Wait for page load
3724
+ await new Promise((resolve) => setTimeout(resolve, 2000))
3725
+
3726
+ // Extract all links
3727
+ const result = await sendCommand("Runtime.evaluate", {
3728
+ expression: `
3729
+ Array.from(document.querySelectorAll('a[href]')).map(a => {
3730
+ try {
3731
+ const url = new URL(a.href, window.location.href);
3732
+ // Only return same-origin links
3733
+ if (url.origin === window.location.origin) {
3734
+ // Remove hash and query params for deduplication
3735
+ return url.origin + url.pathname;
3736
+ }
3737
+ } catch {}
3738
+ return null;
3739
+ }).filter(Boolean)
3740
+ `,
3741
+ returnByValue: true
3742
+ })
3743
+
3744
+ const links = result.result?.value || []
3745
+
3746
+ for (const link of links) {
3747
+ if (!discovered.has(link)) {
3748
+ discovered.add(link)
3749
+ if (currentDepth < maxDepth) {
3750
+ toVisit.push(link)
3751
+ }
3752
+ }
3753
+ }
3754
+
3755
+ logToDevFile(`Crawl App: Found ${links.length} links on ${url}`)
3756
+ } catch (error) {
3757
+ logToDevFile(`Crawl App: Error visiting ${url} - ${error}`)
3758
+ }
3759
+ }
3760
+
3761
+ currentDepth++
3762
+
3763
+ // For "all" mode, stop when no new URLs are found
3764
+ if (depth === "all" && toVisit.length === 0) {
3765
+ break
3766
+ }
3767
+ }
3768
+
3769
+ ws.close()
3770
+
3771
+ const urls = Array.from(discovered).sort()
3772
+ const depthReached = depth === "all" ? currentDepth - 1 : Math.min(currentDepth - 1, maxDepth)
3773
+
3774
+ logToDevFile(`Crawl App: Complete - discovered ${urls.length} URLs at depth ${depthReached}`)
3775
+
3776
+ return {
3777
+ content: [
3778
+ {
3779
+ type: "text" as const,
3780
+ text: `🕷️ **APP CRAWL COMPLETE**\n\n📊 **SUMMARY:**\n• Base URL: ${baseUrl}\n• Depth: ${depthReached}${depth === "all" ? " (exhaustive)" : ""}\n• Total URLs: ${urls.length}\n\n📍 **DISCOVERED URLs:**\n${urls.map((url) => `• ${url}`).join("\n")}\n\n💡 **NEXT STEPS:**\n• Use fix_my_app to check for errors across all pages\n• Use execute_browser_action to test specific pages\n• Verify all routes are working correctly`
3781
+ }
3782
+ ]
3783
+ }
3784
+ } catch (error) {
3785
+ logToDevFile(`Crawl App: Error - ${error}`)
3786
+ return {
3787
+ content: [
3788
+ {
3789
+ type: "text" as const,
3790
+ text: `❌ **CRAWL FAILED**\n\n${error instanceof Error ? error.message : String(error)}`
3791
+ }
3792
+ ]
3793
+ }
3794
+ }
3795
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev3000",
3
- "version": "0.0.100",
3
+ "version": "0.0.102",
4
4
  "description": "AI-powered development tools with browser monitoring and MCP server integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -63,7 +63,8 @@
63
63
  "chalk": "^5.3.0",
64
64
  "commander": "^14.0.1",
65
65
  "ink": "^6.3.1",
66
- "next": "15.5.1-canary.30",
66
+ "ink-spinner": "^5.0.0",
67
+ "next": "16.0.0-canary.18",
67
68
  "ora": "^9.0.0",
68
69
  "package-manager-detector": "^1.3.0",
69
70
  "react": "^19.1.1",
@@ -1,6 +1,7 @@
1
1
  import chalk from "chalk"
2
2
  import { createReadStream, unwatchFile, watchFile } from "fs"
3
3
  import { Box, render, Text, useInput, useStdout } from "ink"
4
+ import Spinner from "ink-spinner"
4
5
  import { useEffect, useRef, useState } from "react"
5
6
  import type { Readable } from "stream"
6
7
  import { LOG_COLORS } from "./constants/log-colors.js"
@@ -46,6 +47,7 @@ const TUIApp = ({
46
47
  const [scrollOffset, setScrollOffset] = useState(0)
47
48
  const [initStatus, setInitStatus] = useState<string | null>("Initializing...")
48
49
  const [appPort, setAppPort] = useState<string>(initialAppPort)
50
+ const [portConfirmed, setPortConfirmed] = useState<boolean>(false)
49
51
  const logIdCounter = useRef(0)
50
52
  const [clearFromLogId, setClearFromLogId] = useState<number>(0) // Track log ID to clear from
51
53
  const { stdout } = useStdout()
@@ -112,6 +114,7 @@ const TUIApp = ({
112
114
  useEffect(() => {
113
115
  onAppPortUpdate((port: string) => {
114
116
  setAppPort(port)
117
+ setPortConfirmed(true)
115
118
  })
116
119
  }, [onAppPortUpdate])
117
120
 
@@ -332,7 +335,10 @@ const TUIApp = ({
332
335
 
333
336
  {/* Info on the right */}
334
337
  <Box flexDirection="column" flexGrow={1}>
335
- <Text color="cyan">🌐 App: http://localhost:{appPort}</Text>
338
+ <Box>
339
+ <Text color="cyan">🌐 App: http://localhost:{appPort} </Text>
340
+ {!portConfirmed && <Spinner type="dots" />}
341
+ </Box>
336
342
  <Text color="cyan">🤖 MCP: http://localhost:{mcpPort}</Text>
337
343
  <Text color="cyan">
338
344
  📸 Logs: http://localhost:{mcpPort}/logs
@@ -1,17 +0,0 @@
1
- module.exports=[48355,(e,t,r)=>{"use strict";function n(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"detectDomainLocale",{enumerable:!0,get:function(){return n}})},14124,(e,t,r)=>{"use strict";function n(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},79824,(e,t,r)=>{"use strict";function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},96831,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return i}});let n=e.r(79824);function i(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:i,hash:o}=(0,n.parsePath)(e);return`${t}${r}${i}${o}`}},86978,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return i}});let n=e.r(79824);function i(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:i,hash:o}=(0,n.parsePath)(e);return`${r}${t}${i}${o}`}},13492,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return i}});let n=e.r(79824);function i(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},28376,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return o}});let n=e.r(96831),i=e.r(13492);function o(e,t,r,o){if(!t||t===r)return e;let a=e.toLowerCase();return!o&&((0,i.pathHasPrefix)(a,"/api")||(0,i.pathHasPrefix)(a,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},12514,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(14124),i=e.r(96831),o=e.r(86978),a=e.r(28376);function s(e){let t=(0,a.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,o.addPathSuffix)((0,i.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,i.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,o.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},80262,(e,t,r)=>{"use strict";function n(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getHostname",{enumerable:!0,get:function(){return n}})},38370,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return i}});let n=new WeakMap;function i(e,t){let r;if(!t)return{pathname:e};let i=n.get(t);i||(i=t.map(e=>e.toLowerCase()),n.set(t,i));let o=e.split("/",2);if(!o[1])return{pathname:e};let a=o[1].toLowerCase(),s=i.indexOf(a);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},75788,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return i}});let n=e.r(13492);function i(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},48853,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return a}});let n=e.r(38370),i=e.r(75788),o=e.r(13492);function a(e,t){let{basePath:r,i18n:a,trailingSlash:s}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};r&&(0,o.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,i.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(a){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,a.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,a.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},85845,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextURL",{enumerable:!0,get:function(){return l}});let n=e.r(48355),i=e.r(12514),o=e.r(80262),a=e.r(48853),s=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function c(e,t){return new URL(String(e).replace(s,"localhost"),t&&String(t).replace(s,"localhost"))}let u=Symbol("NextURLInternal");class l{constructor(e,t,r){let n,i;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,i=r||{}):i=r||t||{},this[u]={url:c(e,n??i.base),options:i,basePath:""},this.analyze()}analyze(){var e,t,r,i,s;let c=(0,a.getNextPathnameInfo)(this[u].url.pathname,{nextConfig:this[u].options.nextConfig,parseData:!0,i18nProvider:this[u].options.i18nProvider}),l=(0,o.getHostname)(this[u].url,this[u].options.headers);this[u].domainLocale=this[u].options.i18nProvider?this[u].options.i18nProvider.detectDomainLocale(l):(0,n.detectDomainLocale)(null==(t=this[u].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,l);let d=(null==(r=this[u].domainLocale)?void 0:r.defaultLocale)||(null==(s=this[u].options.nextConfig)||null==(i=s.i18n)?void 0:i.defaultLocale);this[u].url.pathname=c.pathname,this[u].defaultLocale=d,this[u].basePath=c.basePath??"",this[u].buildId=c.buildId,this[u].locale=c.locale??d,this[u].trailingSlash=c.trailingSlash}formatPathname(){return(0,i.formatNextPathnameInfo)({basePath:this[u].basePath,buildId:this[u].buildId,defaultLocale:this[u].options.forceLocale?void 0:this[u].defaultLocale,locale:this[u].locale,pathname:this[u].url.pathname,trailingSlash:this[u].trailingSlash})}formatSearch(){return this[u].url.search}get buildId(){return this[u].buildId}set buildId(e){this[u].buildId=e}get locale(){return this[u].locale??""}set locale(e){var t,r;if(!this[u].locale||!(null==(r=this[u].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[u].locale=e}get defaultLocale(){return this[u].defaultLocale}get domainLocale(){return this[u].domainLocale}get searchParams(){return this[u].url.searchParams}get host(){return this[u].url.host}set host(e){this[u].url.host=e}get hostname(){return this[u].url.hostname}set hostname(e){this[u].url.hostname=e}get port(){return this[u].url.port}set port(e){this[u].url.port=e}get protocol(){return this[u].url.protocol}set protocol(e){this[u].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[u].url=c(e),this.analyze()}get origin(){return this[u].url.origin}get pathname(){return this[u].url.pathname}set pathname(e){this[u].url.pathname=e}get hash(){return this[u].url.hash}set hash(e){this[u].url.hash=e}get search(){return this[u].url.search}set search(e){this[u].url.search=e}get password(){return this[u].url.password}set password(e){this[u].url.password=e}get username(){return this[u].url.username}set username(e){this[u].url.username=e}get basePath(){return this[u].basePath}set basePath(e){this[u].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new l(String(this),this[u].options)}}},26941,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return $},CACHE_ONE_YEAR:function(){return A},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return eo},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return er},GSSP_NO_RETURNED_VALUE:function(){return ee},HTML_CONTENT_TYPE_HEADER:function(){return a},INFINITE_CACHE:function(){return N},INSTRUMENTATION_HOOK_FILENAME:function(){return C},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return l},MIDDLEWARE_FILENAME:function(){return k},MIDDLEWARE_LOCATION_REGEXP:function(){return j},NEXT_BODY_SUFFIX:function(){return y},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return T},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return E},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return R},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return O},NEXT_CACHE_TAGS_HEADER:function(){return v},NEXT_CACHE_TAG_MAX_ITEMS:function(){return S},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return _},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return w},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return P},NON_STANDARD_NODE_ENV:function(){return en},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return f},PROXY_FILENAME:function(){return D},PROXY_LOCATION_REGEXP:function(){return I},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return z},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return W},RSC_ACTION_ENCRYPTION_ALIAS:function(){return F},RSC_ACTION_PROXY_ALIAS:function(){return B},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return H},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return G},RSC_MOD_REF_PROXY_ALIAS:function(){return q},RSC_PREFETCH_SUFFIX:function(){return h},RSC_SEGMENTS_DIR_SUFFIX:function(){return p},RSC_SEGMENT_SUFFIX:function(){return b},RSC_SUFFIX:function(){return m},SERVER_PROPS_EXPORT_ERROR:function(){return Z},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return V},SERVER_PROPS_SSG_CONFLICT:function(){return K},SERVER_RUNTIME:function(){return ea},SSG_FALLBACK_EXPORT_ERROR:function(){return ei},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return Y},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return o},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return et},WEBPACK_LAYERS:function(){return eu},WEBPACK_RESOURCE_QUERIES:function(){return el},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o="text/plain",a="text/html; charset=utf-8",s="application/json; charset=utf-8",c="nxtP",u="nxtI",l="x-matched-path",d="x-prerender-revalidate",f="x-prerender-revalidate-if-generated",h=".prefetch.rsc",p=".segments",b=".segment.rsc",m=".rsc",g=".action",_=".json",w=".meta",y=".body",v="x-next-cache-tags",E="x-next-revalidated-tags",R="x-next-revalidate-tag-token",P="next-resume",S=128,x=256,O=1024,T="_N_T_",A=31536e3,N=0xfffffffe,k="middleware",j=`(?:src/)?${k}`,D="proxy",I=`(?:src/)?${D}`,C="instrumentation",L="private-next-pages",M="private-dot-next",U="private-next-root-dir",$="private-next-app-dir",q="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",B="private-next-rsc-server-reference",H="private-next-rsc-cache-wrapper",G="private-next-rsc-track-dynamic-import",F="private-next-rsc-action-encryption",W="private-next-rsc-action-client-wrapper",z="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",Y="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",V="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",K="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Z="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ee="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",et="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",er="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",en='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',ei="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",eo=["app","pages","components","lib","src"],ea={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,ec={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},eu={...ec,GROUP:{builtinReact:[ec.reactServerComponents,ec.actionBrowser],serverOnly:[ec.reactServerComponents,ec.actionBrowser,ec.instrument,ec.middleware],neutralTarget:[ec.apiNode,ec.apiEdge],clientOnly:[ec.serverSideRendering,ec.appPagesBrowser],bundled:[ec.reactServerComponents,ec.actionBrowser,ec.serverSideRendering,ec.appPagesBrowser,ec.shared,ec.instrument,ec.middleware],appPages:[ec.reactServerComponents,ec.serverSideRendering,ec.appPagesBrowser,ec.actionBrowser]}},el={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},62491,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={fromNodeOutgoingHttpHeaders:function(){return a},normalizeNextQueryParam:function(){return l},splitCookiesString:function(){return s},toNodeOutgoingHttpHeaders:function(){return c},validateURL:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(26941);function a(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}function s(e){var t,r,n,i,o,a=[],s=0;function c(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,o=!1;c();)if(","===(r=e.charAt(s))){for(n=s,s+=1,c(),i=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(o=!0,s=i,a.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!o||s>=e.length)&&a.push(e.substring(t,e.length))}return a}function c(e){let t={},r=[];if(e)for(let[n,i]of e.entries())"set-cookie"===n.toLowerCase()?(r.push(...s(i)),t[n]=1===r.length?r[0]:r):t[n]=i;return t}function u(e){try{return String(new URL(String(e)))}catch(t){throw Object.defineProperty(Error(`URL is malformed "${String(e)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:t}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function l(e){for(let t of[o.NEXT_QUERY_PARAM_PREFIX,o.NEXT_INTERCEPTION_MARKER_PREFIX])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}},75613,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={PageSignatureError:function(){return o},RemovedPageError:function(){return a},RemovedUAError:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});class o extends Error{constructor({page:e}){super(`The middleware "${e}" accepts an async API directly with the form:
2
-
3
- export function middleware(request, event) {
4
- return NextResponse.redirect('/new-location')
5
- }
6
-
7
- Read more: https://nextjs.org/docs/messages/middleware-new-signature
8
- `)}}class a extends Error{constructor(){super(`The request.page has been deprecated in favour of \`URLPattern\`.
9
- Read more: https://nextjs.org/docs/messages/middleware-request-page
10
- `)}}class s extends Error{constructor(){super(`The request.ua has been removed in favour of \`userAgent\` function.
11
- Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
12
- `)}}},7979,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RequestCookies:function(){return o.RequestCookies},ResponseCookies:function(){return o.ResponseCookies},stringifyCookie:function(){return o.stringifyCookie}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(57365)},8948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERNALS:function(){return u},NextRequest:function(){return l}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(85845),a=e.r(62491),s=e.r(75613),c=e.r(7979),u=Symbol("internal request");class l extends Request{constructor(e,t={}){const r="string"!=typeof e&&"url"in e?e.url:String(e);(0,a.validateURL)(r),t.body&&"half"!==t.duplex&&(t.duplex="half"),e instanceof Request?super(e,t):super(r,t);const n=new o.NextURL(r,{headers:(0,a.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:t.nextConfig});this[u]={cookies:new c.RequestCookies(this.headers),nextUrl:n,url:n.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[u].cookies}get nextUrl(){return this[u].nextUrl}get page(){throw new s.RemovedPageError}get ua(){throw new s.RemovedUAError}get url(){return this[u].url}}},23372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},21954,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextResponse",{enumerable:!0,get:function(){return d}});let n=e.r(7979),i=e.r(85845),o=e.r(62491),a=e.r(23372),s=e.r(7979),c=Symbol("internal response"),u=new Set([301,302,303,307,308]);function l(e,t){var r;if(null==e||null==(r=e.request)?void 0:r.headers){if(!(e.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let r=[];for(let[n,i]of e.request.headers)t.set("x-middleware-request-"+n,i),r.push(n);t.set("x-middleware-override-headers",r.join(","))}}class d extends Response{constructor(e,t={}){super(e,t);const r=this.headers,u=new Proxy(new s.ResponseCookies(r),{get(e,i,o){switch(i){case"delete":case"set":return(...o)=>{let a=Reflect.apply(e[i],e,o),c=new Headers(r);return a instanceof s.ResponseCookies&&r.set("x-middleware-set-cookie",a.getAll().map(e=>(0,n.stringifyCookie)(e)).join(",")),l(t,c),a};default:return a.ReflectAdapter.get(e,i,o)}}});this[c]={cookies:u,url:t.url?new i.NextURL(t.url,{headers:(0,o.toNodeOutgoingHttpHeaders)(r),nextConfig:t.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[c].cookies}static json(e,t){let r=Response.json(e,t);return new d(r.body,r)}static redirect(e,t){let r="number"==typeof t?t:(null==t?void 0:t.status)??307;if(!u.has(r))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let n="object"==typeof t?t:{},i=new Headers(null==n?void 0:n.headers);return i.set("Location",(0,o.validateURL)(e)),new d(null,{...n,headers:i,status:r})}static rewrite(e,t){let r=new Headers(null==t?void 0:t.headers);return r.set("x-middleware-rewrite",(0,o.validateURL)(e)),l(t,r),new d(null,{...t,headers:r})}static next(e){let t=new Headers(null==e?void 0:e.headers);return t.set("x-middleware-next","1"),l(e,t),new d(null,{...e,headers:t})}}},85944,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageResponse",{enumerable:!0,get:function(){return n}})},15087,(e,t,r)=>{var n={226:function(t,r){!function(n,i){"use strict";var o="function",a="undefined",s="object",c="string",u="major",l="model",d="name",f="type",h="vendor",p="version",b="architecture",m="console",g="mobile",_="tablet",w="smarttv",y="wearable",v="embedded",E="Amazon",R="Apple",P="ASUS",S="BlackBerry",x="Browser",O="Chrome",T="Firefox",A="Google",N="Huawei",k="Microsoft",j="Motorola",D="Opera",I="Samsung",C="Sharp",L="Sony",M="Xiaomi",U="Zebra",$="Facebook",q="Chromium OS",X="Mac OS",B=function(e,t){var r={};for(var n in e)t[n]&&t[n].length%2==0?r[n]=t[n].concat(e[n]):r[n]=e[n];return r},H=function(e){for(var t={},r=0;r<e.length;r++)t[e[r].toUpperCase()]=e[r];return t},G=function(e,t){return typeof e===c&&-1!==F(t).indexOf(F(e))},F=function(e){return e.toLowerCase()},W=function(e,t){if(typeof e===c)return e=e.replace(/^\s\s*/,""),typeof t===a?e:e.substring(0,350)},z=function(e,t){for(var r,n,i,a,c,u,l=0;l<t.length&&!c;){var d=t[l],f=t[l+1];for(r=n=0;r<d.length&&!c&&d[r];)if(c=d[r++].exec(e))for(i=0;i<f.length;i++)u=c[++n],typeof(a=f[i])===s&&a.length>0?2===a.length?typeof a[1]==o?this[a[0]]=a[1].call(this,u):this[a[0]]=a[1]:3===a.length?typeof a[1]!==o||a[1].exec&&a[1].test?this[a[0]]=u?u.replace(a[1],a[2]):void 0:this[a[0]]=u?a[1].call(this,u,a[2]):void 0:4===a.length&&(this[a[0]]=u?a[3].call(this,u.replace(a[1],a[2])):void 0):this[a]=u||void 0;l+=2}},Y=function(e,t){for(var r in t)if(typeof t[r]===s&&t[r].length>0){for(var n=0;n<t[r].length;n++)if(G(t[r][n],e))return"?"===r?void 0:r}else if(G(t[r],e))return"?"===r?void 0:r;return e},V={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},K={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[p,[d,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[p,[d,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[d,p],[/opios[\/ ]+([\w\.]+)/i],[p,[d,D+" Mini"]],[/\bopr\/([\w\.]+)/i],[p,[d,D]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[d,p],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[p,[d,"UC"+x]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[p,[d,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[p,[d,"WeChat"]],[/konqueror\/([\w\.]+)/i],[p,[d,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[p,[d,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[p,[d,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[d,/(.+)/,"$1 Secure "+x],p],[/\bfocus\/([\w\.]+)/i],[p,[d,T+" Focus"]],[/\bopt\/([\w\.]+)/i],[p,[d,D+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[p,[d,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[p,[d,"Dolphin"]],[/coast\/([\w\.]+)/i],[p,[d,D+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[p,[d,"MIUI "+x]],[/fxios\/([-\w\.]+)/i],[p,[d,T]],[/\bqihu|(qi?ho?o?|360)browser/i],[[d,"360 "+x]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[d,/(.+)/,"$1 "+x],p],[/(comodo_dragon)\/([\w\.]+)/i],[[d,/_/g," "],p],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[d,p],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[d],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[d,$],p],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[d,p],[/\bgsa\/([\w\.]+) .*safari\//i],[p,[d,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[p,[d,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[p,[d,O+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[d,O+" WebView"],p],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[p,[d,"Android "+x]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[d,p],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[p,[d,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[p,d],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[d,[p,Y,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[d,p],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[d,"Netscape"],p],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[p,[d,T+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[d,p],[/(cobalt)\/([\w\.]+)/i],[d,[p,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[b,"amd64"]],[/(ia32(?=;))/i],[[b,F]],[/((?:i[346]|x)86)[;\)]/i],[[b,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[b,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[b,"armhf"]],[/windows (ce|mobile); ppc;/i],[[b,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[b,/ower/,"",F]],[/(sun4\w)[;\)]/i],[[b,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[b,F]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[l,[h,I],[f,_]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[l,[h,I],[f,g]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[l,[h,R],[f,g]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[l,[h,R],[f,_]],[/(macintosh);/i],[l,[h,R]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[l,[h,C],[f,g]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[l,[h,N],[f,_]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[l,[h,N],[f,g]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[l,/_/g," "],[h,M],[f,g]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[l,/_/g," "],[h,M],[f,_]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[l,[h,"OPPO"],[f,g]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[l,[h,"Vivo"],[f,g]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[l,[h,"Realme"],[f,g]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[l,[h,j],[f,g]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[l,[h,j],[f,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[l,[h,"LG"],[f,_]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[l,[h,"LG"],[f,g]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[l,[h,"Lenovo"],[f,_]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[l,/_/g," "],[h,"Nokia"],[f,g]],[/(pixel c)\b/i],[l,[h,A],[f,_]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[l,[h,A],[f,g]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[l,[h,L],[f,g]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[l,"Xperia Tablet"],[h,L],[f,_]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[l,[h,"OnePlus"],[f,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[l,[h,E],[f,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[l,/(.+)/g,"Fire Phone $1"],[h,E],[f,g]],[/(playbook);[-\w\),; ]+(rim)/i],[l,h,[f,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[l,[h,S],[f,g]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[l,[h,P],[f,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[l,[h,P],[f,g]],[/(nexus 9)/i],[l,[h,"HTC"],[f,_]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[h,[l,/_/g," "],[f,g]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[l,[h,"Acer"],[f,_]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[l,[h,"Meizu"],[f,g]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[h,l,[f,g]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[h,l,[f,_]],[/(surface duo)/i],[l,[h,k],[f,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[l,[h,"Fairphone"],[f,g]],[/(u304aa)/i],[l,[h,"AT&T"],[f,g]],[/\bsie-(\w*)/i],[l,[h,"Siemens"],[f,g]],[/\b(rct\w+) b/i],[l,[h,"RCA"],[f,_]],[/\b(venue[\d ]{2,7}) b/i],[l,[h,"Dell"],[f,_]],[/\b(q(?:mv|ta)\w+) b/i],[l,[h,"Verizon"],[f,_]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[l,[h,"Barnes & Noble"],[f,_]],[/\b(tm\d{3}\w+) b/i],[l,[h,"NuVision"],[f,_]],[/\b(k88) b/i],[l,[h,"ZTE"],[f,_]],[/\b(nx\d{3}j) b/i],[l,[h,"ZTE"],[f,g]],[/\b(gen\d{3}) b.+49h/i],[l,[h,"Swiss"],[f,g]],[/\b(zur\d{3}) b/i],[l,[h,"Swiss"],[f,_]],[/\b((zeki)?tb.*\b) b/i],[l,[h,"Zeki"],[f,_]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[h,"Dragon Touch"],l,[f,_]],[/\b(ns-?\w{0,9}) b/i],[l,[h,"Insignia"],[f,_]],[/\b((nxa|next)-?\w{0,9}) b/i],[l,[h,"NextBook"],[f,_]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[h,"Voice"],l,[f,g]],[/\b(lvtel\-)?(v1[12]) b/i],[[h,"LvTel"],l,[f,g]],[/\b(ph-1) /i],[l,[h,"Essential"],[f,g]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[l,[h,"Envizen"],[f,_]],[/\b(trio[-\w\. ]+) b/i],[l,[h,"MachSpeed"],[f,_]],[/\btu_(1491) b/i],[l,[h,"Rotor"],[f,_]],[/(shield[\w ]+) b/i],[l,[h,"Nvidia"],[f,_]],[/(sprint) (\w+)/i],[h,l,[f,g]],[/(kin\.[onetw]{3})/i],[[l,/\./g," "],[h,k],[f,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[l,[h,U],[f,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[l,[h,U],[f,g]],[/smart-tv.+(samsung)/i],[h,[f,w]],[/hbbtv.+maple;(\d+)/i],[[l,/^/,"SmartTV"],[h,I],[f,w]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[h,"LG"],[f,w]],[/(apple) ?tv/i],[h,[l,R+" TV"],[f,w]],[/crkey/i],[[l,O+"cast"],[h,A],[f,w]],[/droid.+aft(\w)( bui|\))/i],[l,[h,E],[f,w]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[l,[h,C],[f,w]],[/(bravia[\w ]+)( bui|\))/i],[l,[h,L],[f,w]],[/(mitv-\w{5}) bui/i],[l,[h,M],[f,w]],[/Hbbtv.*(technisat) (.*);/i],[h,l,[f,w]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[h,W],[l,W],[f,w]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[f,w]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[h,l,[f,m]],[/droid.+; (shield) bui/i],[l,[h,"Nvidia"],[f,m]],[/(playstation [345portablevi]+)/i],[l,[h,L],[f,m]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[l,[h,k],[f,m]],[/((pebble))app/i],[h,l,[f,y]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[l,[h,R],[f,y]],[/droid.+; (glass) \d/i],[l,[h,A],[f,y]],[/droid.+; (wt63?0{2,3})\)/i],[l,[h,U],[f,y]],[/(quest( 2| pro)?)/i],[l,[h,$],[f,y]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[h,[f,v]],[/(aeobc)\b/i],[l,[h,E],[f,v]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[l,[f,g]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[l,[f,_]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[f,_]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[f,g]],[/(android[-\w\. ]{0,9});.+buil/i],[l,[h,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[p,[d,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[p,[d,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[d,p],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[p,d]],os:[[/microsoft (windows) (vista|xp)/i],[d,p],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[d,[p,Y,V]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[d,"Windows"],[p,Y,V]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[p,/_/g,"."],[d,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[d,X],[p,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[p,d],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[d,p],[/\(bb(10);/i],[p,[d,S]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[p,[d,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[p,[d,T+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[p,[d,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[p,[d,"watchOS"]],[/crkey\/([\d\.]+)/i],[p,[d,O+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[d,q],p],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[d,p],[/(sunos) ?([\w\.\d]*)/i],[[d,"Solaris"],p],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[d,p]]},Q=function(e,t){if(typeof e===s&&(t=e,e=void 0),!(this instanceof Q))return new Q(e,t).getResult();var r=typeof n!==a&&n.navigator?n.navigator:void 0,i=e||(r&&r.userAgent?r.userAgent:""),m=r&&r.userAgentData?r.userAgentData:void 0,w=t?B(K,t):K,y=r&&r.userAgent==i;return this.getBrowser=function(){var e,t={};return t[d]=void 0,t[p]=void 0,z.call(t,i,w.browser),t[u]=typeof(e=t[p])===c?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0,y&&r&&r.brave&&typeof r.brave.isBrave==o&&(t[d]="Brave"),t},this.getCPU=function(){var e={};return e[b]=void 0,z.call(e,i,w.cpu),e},this.getDevice=function(){var e={};return e[h]=void 0,e[l]=void 0,e[f]=void 0,z.call(e,i,w.device),y&&!e[f]&&m&&m.mobile&&(e[f]=g),y&&"Macintosh"==e[l]&&r&&typeof r.standalone!==a&&r.maxTouchPoints&&r.maxTouchPoints>2&&(e[l]="iPad",e[f]=_),e},this.getEngine=function(){var e={};return e[d]=void 0,e[p]=void 0,z.call(e,i,w.engine),e},this.getOS=function(){var e={};return e[d]=void 0,e[p]=void 0,z.call(e,i,w.os),y&&!e[d]&&m&&"Unknown"!=m.platform&&(e[d]=m.platform.replace(/chrome os/i,q).replace(/macos/i,X)),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return i},this.setUA=function(e){return i=typeof e===c&&e.length>350?W(e,350):e,this},this.setUA(i),this};if(Q.VERSION="1.0.35",Q.BROWSER=H([d,p,u]),Q.CPU=H([b]),Q.DEVICE=H([l,h,f,m,g,w,_,y,v]),Q.ENGINE=Q.OS=H([d,p]),typeof r!==a)t.exports&&(r=t.exports=Q),r.UAParser=Q;else if(typeof define===o&&define.amd)e.r,void 0!==Q&&e.v(Q);else typeof n!==a&&(n.UAParser=Q);var Z=typeof n!==a&&(n.jQuery||n.Zepto);if(Z&&!Z.ua){var J=new Q;Z.ua=J.getResult(),Z.ua.get=function(){return J.getUA()},Z.ua.set=function(e){J.setUA(e);var t=J.getResult();for(var r in t)Z.ua[r]=t[r]}}}(this)}},i={};function o(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}},a=!0;try{n[e].call(r.exports,r,r.exports,o),a=!1}finally{a&&delete i[e]}return r.exports}o.ab="/ROOT/node_modules/.pnpm/next@16.0.0-canary.18_babel-plugin-react-compiler@19.1.0-rc.3_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/next/dist/compiled/ua-parser-js/",t.exports=o(226)},73931,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,i={isBot:function(){return s},userAgent:function(){return u},userAgentFromString:function(){return c}};for(var o in i)Object.defineProperty(r,o,{enumerable:!0,get:i[o]});let a=(n=e.r(15087))&&n.__esModule?n:{default:n};function s(e){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(e)}function c(e){return{...(0,a.default)(e),isBot:void 0!==e&&s(e)}}function u({headers:e}){return c(e.get("user-agent")||void 0)}},51876,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"URLPattern",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof URLPattern?void 0:URLPattern},26128,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"after",{enumerable:!0,get:function(){return i}});let n=e.r(56704);function i(e){let t=n.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:r}=t;return r.after(e)}},44302,(e,t,r)=>{"use strict";var n,i;Object.defineProperty(r,"__esModule",{value:!0}),n=e.r(26128),i=r,Object.keys(n).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(i,e)||Object.defineProperty(i,e,{enumerable:!0,get:function(){return n[e]}})})},97719,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=o}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},77383,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=o}}function s(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65558,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return o},makeDevtoolsIOAwarePromise:function(){return d},makeHangingPromise:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class s extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} 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 "${e}".`),this.route=e,this.expression=t,this.digest=a}}let c=new WeakMap;function u(e,t,r){if(e.aborted)return Promise.reject(new s(t,r));{let n=new Promise((n,i)=>{let o=i.bind(null,new s(t,r)),a=c.get(e);if(a)a.push(o);else{let t=[o];c.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e<t.length;e++)t[e]()},{once:!0})}});return n.catch(l),n}}function l(){}function d(e,t,r){return t.stagedRendering?t.stagedRendering.delayUntilStage(r,void 0,e):new Promise(t=>{setTimeout(()=>{t(e)},0)})}},9166,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return o},OUTLET_BOUNDARY_NAME:function(){return s},ROOT_LAYOUT_BOUNDARY_NAME:function(){return c},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o="__next_metadata_boundary__",a="__next_viewport_boundary__",s="__next_outlet_boundary__",c="__next_root_layout_boundary__"},22991,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={atLeastOneTask:function(){return s},scheduleImmediate:function(){return a},scheduleOnNextTick:function(){return o},waitAtLeastOneReactRenderTask:function(){return c}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e=>{Promise.resolve().then(()=>{process.nextTick(e)})},a=e=>{setImmediate(e)};function s(){return new Promise(e=>a(e))}function c(){return new Promise(e=>setImmediate(e))}},44565,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=o}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===o}},67717,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},54305,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},10317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,i={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var o in i)Object.defineProperty(r,o,{enumerable:!0,get:i[o]});let a=e.r(67717),s=e.r(54305);var c=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class u{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,i,o;let a,s=(n=this.getStagePromise(e),i=t,o=r,a=new Promise((e,t)=>{n.then(e.bind(null,o),t)}),void 0!==i&&(a.displayName=i),a);return this.abortSignal&&s.catch(l),s}}function l(){}},175,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,i,o={Postpone:function(){return A},PreludeState:function(){return Q},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return x},accessedDynamicData:function(){return M},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return U},createDynamicTrackingState:function(){return w},createDynamicValidationState:function(){return y},createHangingInputAbortSignal:function(){return X},createRenderInBrowserAbortSignal:function(){return q},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return v},isDynamicPostpone:function(){return j},isPrerenderInterruptedError:function(){return L},logDisallowedDynamicError:function(){return Z},markCurrentScopeAsDynamic:function(){return E},postponeWithTracking:function(){return N},throwIfDisallowedDynamic:function(){return J},throwToInterruptStaticGeneration:function(){return R},trackAllowedDynamicAccess:function(){return K},trackDynamicDataInDynamicRender:function(){return P},trackSynchronousPlatformIOAccessInDev:function(){return O},useDynamicRouteParams:function(){return H},useDynamicSearchParams:function(){return G}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let s=(n=e.r(52999))&&n.__esModule?n:{default:n},c=e.r(97719),u=e.r(77383),l=e.r(32319),d=e.r(56704),f=e.r(65558),h=e.r(9166),p=e.r(22991),b=e.r(44565),m=e.r(67717),g=e.r(10317),_="function"==typeof s.default.unstable_postpone;function w(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function y(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function v(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function E(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new u.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. 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(t)switch(t.type){case"prerender-ppr":return N(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new c.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function R(e,t,r){let n=Object.defineProperty(new c.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function P(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function S(e,t,r){let n=C(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let i=r.dynamicTracking;i&&i.dynamicAccesses.push({stack:i.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function x(e,t,r,n){let i=n.dynamicTracking;S(e,t,n),i&&null===i.syncDynamicErrorWithStack&&(i.syncDynamicErrorWithStack=r)}function O(e){e.stagedRendering&&e.stagedRendering.advanceStage(g.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){S(e,t,n);let i=n.dynamicTracking;i&&null===i.syncDynamicErrorWithStack&&(i.syncDynamicErrorWithStack=r)}throw C(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=l.workUnitAsyncStorage.getStore();N(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function N(e,t,r){(function(){if(!_)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})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),s.default.unstable_postpone(k(e,t))}function k(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. 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 j(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&D(e.message)}function D(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===D(k("%%%","^^^")))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 I="NEXT_PRERENDER_INTERRUPTED";function C(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=I,t}function L(e){return"object"==typeof e&&null!==e&&e.digest===I&&"name"in e&&"message"in e&&e instanceof Error}function M(e){return e.length>0}function U(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" (<anonymous>)")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}:
13
- ${t}`))}function q(){let e=new AbortController;return e.abort(Object.defineProperty(new b.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function X(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,l.getRuntimeStagePromise)(e);r?r.then(()=>(0,p.scheduleOnNextTick)(()=>t.abort())):(0,p.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function H(e){let t=d.workAsyncStorage.getStore(),r=l.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&s.default.use((0,f.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return N(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} 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(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function G(e){let t=d.workAsyncStorage.getStore(),r=l.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,l.throwForMissingRequestStore)(e),r.type){case"prerender-client":s.default.use((0,f.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new b.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} 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(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} 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 F=/\n\s+at Suspense \(<anonymous>\)/,W=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 ${h.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),z=RegExp(`\\n\\s+at ${h.METADATA_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${h.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),V=RegExp(`\\n\\s+at ${h.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function K(e,t,r,n){if(!V.test(t)){if(z.test(t)){r.hasDynamicMetadata=!0;return}if(Y.test(t)){r.hasDynamicViewport=!0;return}if(W.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(F.test(t)){r.hasAllowedDynamic=!0;return}else{var i,o;let a;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let s=(i=`Route "${e.route}": Uncached data was accessed outside of <Suspense>. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,o=t,(a=Object.defineProperty(Error(i),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=a.name+": "+i+o,a);return void r.dynamicErrors.push(s)}}}var Q=((i={})[i.Full=0]="Full",i[i.Empty=1]="Empty",i[i.Errored=2]="Errored",i);function Z(e,t){console.error(t),e.dev||(e.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 "${e.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:
14
- - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.
15
- - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function J(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Z(e,n.syncDynamicErrorWithStack),new u.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;t<n.length;t++)Z(e,n[t]);throw new u.StaticGenBailoutError}if(r.hasDynamicViewport)throw console.error(`Route "${e.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 u.StaticGenBailoutError;if(1===t)throw console.error(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new u.StaticGenBailoutError}else if(!1===r.hasAllowedDynamic&&r.hasDynamicMetadata)throw console.error(`Route "${e.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 u.StaticGenBailoutError}function ee(e,t){return e.runtimeStagePromise?e.runtimeStagePromise.then(()=>t):t}},47707,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(77383),a=e.r(24725);function s(e,t){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=a.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},45082,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"connection",{enumerable:!0,get:function(){return u}});let n=e.r(56704),i=e.r(32319),o=e.r(175),a=e.r(77383),s=e.r(65558),c=e.r(47707);function u(){let e=n.workAsyncStorage.getStore(),t=i.workUnitAsyncStorage.getStore();if(e){if(t&&"after"===t.phase&&!(0,c.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside \`after()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E827",enumerable:!1,configurable:!0});if(e.forceStatic)return Promise.resolve(void 0);if(e.dynamicShouldError)throw Object.defineProperty(new a.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E847",enumerable:!1,configurable:!0});if(t)switch(t.type){case"cache":{let t=Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E841",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,u),e.invalidDynamicUsageError??=t,t}case"private-cache":{let t=Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E837",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,u),e.invalidDynamicUsageError??=t,t}case"unstable-cache":throw Object.defineProperty(Error(`Route ${e.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E840",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,s.makeHangingPromise)(t.renderSignal,e.route,"`connection()`");case"prerender-ppr":return(0,o.postponeWithTracking)(e.route,"connection",t.dynamicTracking);case"prerender-legacy":return(0,o.throwToInterruptStaticGeneration)("connection",e,t);case"request":return(0,o.trackDynamicDataInDynamicRender)(t),Promise.resolve(void 0)}}(0,i.throwForMissingRequestStore)("connection")}e.r(10317)},64860,(e,t,r)=>{let n={NextRequest:e.r(8948).NextRequest,NextResponse:e.r(21954).NextResponse,ImageResponse:e.r(85944).ImageResponse,userAgentFromString:e.r(73931).userAgentFromString,userAgent:e.r(73931).userAgent,URLPattern:e.r(51876).URLPattern,after:e.r(44302).after,connection:e.r(45082).connection};t.exports=n,r.NextRequest=n.NextRequest,r.NextResponse=n.NextResponse,r.ImageResponse=n.ImageResponse,r.userAgentFromString=n.userAgentFromString,r.userAgent=n.userAgent,r.URLPattern=n.URLPattern,r.after=n.after,r.connection=n.connection}];
16
-
17
- //# sourceMappingURL=927ef_next_b5c0ceab._.js.map