af360 0.1.14 → 0.1.16

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 (289) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +139 -130
  3. package/dist/.next/app-path-routes-manifest.json +17 -17
  4. package/dist/.next/build-manifest.json +5 -5
  5. package/dist/.next/prerender-manifest.json +45 -45
  6. package/dist/.next/server/app/_not-found/page.js +2 -2
  7. package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
  8. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/dist/.next/server/app/_not-found.html +1 -1
  10. package/dist/.next/server/app/_not-found.meta +8 -0
  11. package/dist/.next/server/app/_not-found.rsc +4 -4
  12. package/dist/.next/server/app/ahead/page.js +2 -2
  13. package/dist/.next/server/app/ahead/page.js.nft.json +1 -1
  14. package/dist/.next/server/app/ahead/page_client-reference-manifest.js +1 -1
  15. package/dist/.next/server/app/ahead.html +1 -1
  16. package/dist/.next/server/app/ahead.meta +8 -0
  17. package/dist/.next/server/app/ahead.rsc +5 -5
  18. package/dist/.next/server/app/api/browse/route.js +1 -1
  19. package/dist/.next/server/app/api/browse/route.js.nft.json +1 -1
  20. package/dist/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  21. package/dist/.next/server/app/api/card/route.js +1 -1
  22. package/dist/.next/server/app/api/card/route.js.nft.json +1 -1
  23. package/dist/.next/server/app/api/card/route_client-reference-manifest.js +1 -1
  24. package/dist/.next/server/app/api/check/route.js +1 -1
  25. package/dist/.next/server/app/api/check/route.js.nft.json +1 -1
  26. package/dist/.next/server/app/api/check/route_client-reference-manifest.js +1 -1
  27. package/dist/.next/server/app/api/config/route.js +1 -1
  28. package/dist/.next/server/app/api/config/route.js.nft.json +1 -1
  29. package/dist/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/api/connections/route.js +3 -3
  31. package/dist/.next/server/app/api/connections/route.js.nft.json +1 -1
  32. package/dist/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/api/connectors/github/route.js +1 -1
  34. package/dist/.next/server/app/api/connectors/github/route.js.nft.json +1 -1
  35. package/dist/.next/server/app/api/connectors/github/route_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/api/consent/route.js +1 -1
  37. package/dist/.next/server/app/api/consent/route.js.nft.json +1 -1
  38. package/dist/.next/server/app/api/consent/route_client-reference-manifest.js +1 -1
  39. package/dist/.next/server/app/api/context/route.js +3 -3
  40. package/dist/.next/server/app/api/context/route.js.nft.json +1 -1
  41. package/dist/.next/server/app/api/context/route_client-reference-manifest.js +1 -1
  42. package/dist/.next/server/app/api/discover/route.js +1 -1
  43. package/dist/.next/server/app/api/discover/route.js.nft.json +1 -1
  44. package/dist/.next/server/app/api/discover/route_client-reference-manifest.js +1 -1
  45. package/dist/.next/server/app/api/expiry/route.js +1 -1
  46. package/dist/.next/server/app/api/expiry/route.js.nft.json +1 -1
  47. package/dist/.next/server/app/api/expiry/route_client-reference-manifest.js +1 -1
  48. package/dist/.next/server/app/api/first-light/route.js +1 -1
  49. package/dist/.next/server/app/api/first-light/route.js.nft.json +1 -1
  50. package/dist/.next/server/app/api/first-light/route_client-reference-manifest.js +1 -1
  51. package/dist/.next/server/app/api/handoff/route.js +1 -1
  52. package/dist/.next/server/app/api/handoff/route.js.nft.json +1 -1
  53. package/dist/.next/server/app/api/handoff/route_client-reference-manifest.js +1 -1
  54. package/dist/.next/server/app/api/health/route.js +1 -1
  55. package/dist/.next/server/app/api/health/route.js.nft.json +1 -1
  56. package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  57. package/dist/.next/server/app/api/incidents/route.js +1 -1
  58. package/dist/.next/server/app/api/incidents/route.js.nft.json +1 -1
  59. package/dist/.next/server/app/api/incidents/route_client-reference-manifest.js +1 -1
  60. package/dist/.next/server/app/api/insights/route.js +1 -1
  61. package/dist/.next/server/app/api/insights/route.js.nft.json +1 -1
  62. package/dist/.next/server/app/api/insights/route_client-reference-manifest.js +1 -1
  63. package/dist/.next/server/app/api/log/route.js +1 -1
  64. package/dist/.next/server/app/api/log/route.js.nft.json +1 -1
  65. package/dist/.next/server/app/api/log/route_client-reference-manifest.js +1 -1
  66. package/dist/.next/server/app/api/pulse/route.js +1 -1
  67. package/dist/.next/server/app/api/pulse/route.js.nft.json +1 -1
  68. package/dist/.next/server/app/api/pulse/route_client-reference-manifest.js +1 -1
  69. package/dist/.next/server/app/api/radar/route.js +1 -1
  70. package/dist/.next/server/app/api/radar/route.js.nft.json +1 -1
  71. package/dist/.next/server/app/api/radar/route_client-reference-manifest.js +1 -1
  72. package/dist/.next/server/app/api/report/route.js +1 -1
  73. package/dist/.next/server/app/api/report/route.js.nft.json +1 -1
  74. package/dist/.next/server/app/api/report/route_client-reference-manifest.js +1 -1
  75. package/dist/.next/server/app/api/services/route.js +1 -1
  76. package/dist/.next/server/app/api/services/route.js.nft.json +1 -1
  77. package/dist/.next/server/app/api/services/route_client-reference-manifest.js +1 -1
  78. package/dist/.next/server/app/api/status/route.js +1 -1
  79. package/dist/.next/server/app/api/status/route.js.nft.json +1 -1
  80. package/dist/.next/server/app/api/status/route_client-reference-manifest.js +1 -1
  81. package/dist/.next/server/app/connections/page.js +2 -2
  82. package/dist/.next/server/app/connections/page.js.nft.json +1 -1
  83. package/dist/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  84. package/dist/.next/server/app/connections.html +1 -1
  85. package/dist/.next/server/app/connections.meta +8 -0
  86. package/dist/.next/server/app/connections.rsc +5 -5
  87. package/dist/.next/server/app/dashboard/page.js +2 -2
  88. package/dist/.next/server/app/dashboard/page.js.nft.json +1 -1
  89. package/dist/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
  90. package/dist/.next/server/app/dashboard.html +1 -1
  91. package/dist/.next/server/app/dashboard.meta +8 -0
  92. package/dist/.next/server/app/dashboard.rsc +4 -4
  93. package/dist/.next/server/app/discoveries/page.js +2 -2
  94. package/dist/.next/server/app/discoveries/page.js.nft.json +1 -1
  95. package/dist/.next/server/app/discoveries/page_client-reference-manifest.js +1 -1
  96. package/dist/.next/server/app/discoveries.html +1 -1
  97. package/dist/.next/server/app/discoveries.meta +8 -0
  98. package/dist/.next/server/app/discoveries.rsc +5 -5
  99. package/dist/.next/server/app/expiry/page.js +2 -2
  100. package/dist/.next/server/app/expiry/page.js.nft.json +1 -1
  101. package/dist/.next/server/app/expiry/page_client-reference-manifest.js +1 -1
  102. package/dist/.next/server/app/expiry.html +1 -1
  103. package/dist/.next/server/app/expiry.meta +8 -0
  104. package/dist/.next/server/app/expiry.rsc +4 -4
  105. package/dist/.next/server/app/fleet/page.js +2 -2
  106. package/dist/.next/server/app/fleet/page.js.nft.json +1 -1
  107. package/dist/.next/server/app/fleet/page_client-reference-manifest.js +1 -1
  108. package/dist/.next/server/app/fleet.html +1 -1
  109. package/dist/.next/server/app/fleet.meta +8 -0
  110. package/dist/.next/server/app/fleet.rsc +4 -4
  111. package/dist/.next/server/app/home/page.js +2 -2
  112. package/dist/.next/server/app/home/page.js.nft.json +1 -1
  113. package/dist/.next/server/app/home/page_client-reference-manifest.js +1 -1
  114. package/dist/.next/server/app/home.html +1 -1
  115. package/dist/.next/server/app/home.meta +8 -0
  116. package/dist/.next/server/app/home.rsc +4 -4
  117. package/dist/.next/server/app/legal/privacy/page.js +2 -2
  118. package/dist/.next/server/app/legal/privacy/page.js.nft.json +1 -1
  119. package/dist/.next/server/app/legal/privacy/page_client-reference-manifest.js +1 -1
  120. package/dist/.next/server/app/legal/terms/page.js +2 -2
  121. package/dist/.next/server/app/legal/terms/page.js.nft.json +1 -1
  122. package/dist/.next/server/app/legal/terms/page_client-reference-manifest.js +1 -1
  123. package/dist/.next/server/app/log/page.js +2 -2
  124. package/dist/.next/server/app/log/page.js.nft.json +1 -1
  125. package/dist/.next/server/app/log/page_client-reference-manifest.js +1 -1
  126. package/dist/.next/server/app/log.html +1 -1
  127. package/dist/.next/server/app/log.meta +8 -0
  128. package/dist/.next/server/app/log.rsc +5 -5
  129. package/dist/.next/server/app/page.js +2 -2
  130. package/dist/.next/server/app/page.js.nft.json +1 -1
  131. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  132. package/dist/.next/server/app/projects/page.js +2 -2
  133. package/dist/.next/server/app/projects/page.js.nft.json +1 -1
  134. package/dist/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  135. package/dist/.next/server/app/projects.html +1 -1
  136. package/dist/.next/server/app/projects.meta +8 -0
  137. package/dist/.next/server/app/projects.rsc +5 -5
  138. package/dist/.next/server/app/radar/page.js +2 -65
  139. package/dist/.next/server/app/radar/page.js.nft.json +1 -1
  140. package/dist/.next/server/app/radar/page_client-reference-manifest.js +1 -1
  141. package/dist/.next/server/app/radar.html +1 -1
  142. package/dist/.next/server/app/radar.meta +8 -0
  143. package/dist/.next/server/app/radar.rsc +5 -5
  144. package/dist/.next/server/app/report/page.js +2 -2
  145. package/dist/.next/server/app/report/page.js.nft.json +1 -1
  146. package/dist/.next/server/app/report/page_client-reference-manifest.js +1 -1
  147. package/dist/.next/server/app/report.html +1 -1
  148. package/dist/.next/server/app/report.meta +8 -0
  149. package/dist/.next/server/app/report.rsc +5 -5
  150. package/dist/.next/server/app/settings/page.js +2 -2
  151. package/dist/.next/server/app/settings/page.js.nft.json +1 -1
  152. package/dist/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  153. package/dist/.next/server/app/settings.html +1 -1
  154. package/dist/.next/server/app/settings.meta +8 -0
  155. package/dist/.next/server/app/settings.rsc +5 -5
  156. package/dist/.next/server/app/sites/page.js +2 -2
  157. package/dist/.next/server/app/sites/page.js.nft.json +1 -1
  158. package/dist/.next/server/app/sites/page_client-reference-manifest.js +1 -1
  159. package/dist/.next/server/app/sites.html +1 -1
  160. package/dist/.next/server/app/sites.meta +8 -0
  161. package/dist/.next/server/app/sites.rsc +5 -5
  162. package/dist/.next/server/app/welcome/page.js +2 -2
  163. package/dist/.next/server/app/welcome/page.js.nft.json +1 -1
  164. package/dist/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  165. package/dist/.next/server/app/welcome.html +1 -1
  166. package/dist/.next/server/app/welcome.meta +8 -0
  167. package/dist/.next/server/app/welcome.rsc +5 -5
  168. package/dist/.next/server/app-paths-manifest.json +17 -17
  169. package/dist/.next/server/chunks/1155.js +1 -1
  170. package/dist/.next/server/chunks/1232.js +1 -0
  171. package/dist/.next/server/chunks/2346.js +1 -1
  172. package/dist/.next/server/chunks/2465.js +64 -1
  173. package/dist/.next/server/chunks/2817.js +1 -1
  174. package/dist/.next/server/chunks/3897.js +22 -0
  175. package/dist/.next/server/chunks/4134.js +1 -1
  176. package/dist/.next/server/chunks/5277.js +1 -0
  177. package/dist/.next/server/chunks/5611.js +1 -1
  178. package/dist/.next/server/chunks/572.js +1 -1
  179. package/dist/.next/server/chunks/6992.js +1 -1
  180. package/dist/.next/server/chunks/7511.js +1 -1
  181. package/dist/.next/server/chunks/7719.js +1 -1
  182. package/dist/.next/server/chunks/8150.js +1 -1
  183. package/dist/.next/server/chunks/8549.js +1 -1
  184. package/dist/.next/server/chunks/876.js +1 -1
  185. package/dist/.next/server/chunks/9170.js +1 -1
  186. package/dist/.next/server/chunks/9655.js +11 -0
  187. package/dist/.next/server/middleware-build-manifest.js +1 -1
  188. package/dist/.next/server/middleware-manifest.json +5 -5
  189. package/dist/.next/server/pages/404.html +1 -1
  190. package/dist/.next/server/pages/500.html +1 -1
  191. package/dist/.next/server/pages/_document.js.nft.json +1 -1
  192. package/dist/.next/server/pages/_error.js +3 -3
  193. package/dist/.next/server/pages/_error.js.nft.json +1 -1
  194. package/dist/.next/server/pages-manifest.json +1 -1
  195. package/dist/.next/server/server-reference-manifest.json +1 -1
  196. package/dist/.next/static/chunks/1255-5cd2fe06309409a0.js +1 -0
  197. package/dist/.next/static/chunks/2619-3c9e02e22d10480a.js +1 -0
  198. package/dist/.next/static/chunks/3192-7e153722ff079fc6.js +1 -0
  199. package/dist/.next/static/chunks/5623-53fb7cea5de0afef.js +1 -0
  200. package/dist/.next/static/chunks/7897-52f8a153c1970ef0.js +1 -0
  201. package/dist/.next/static/chunks/8050-6c17ccfd85ac3208.js +1 -0
  202. package/dist/.next/static/chunks/app/ahead/page-f5789a03967af6e1.js +1 -0
  203. package/dist/.next/static/chunks/app/connections/page-5b833f9485623b92.js +1 -0
  204. package/dist/.next/static/chunks/app/discoveries/{page-52696e6ee0c8d3d5.js → page-337bb60e4cbdcebb.js} +1 -1
  205. package/dist/.next/static/chunks/app/{error-37987420de14c10c.js → error-b32d8c6d4bfa070e.js} +1 -1
  206. package/dist/.next/static/chunks/app/{layout-d14e087b541b48b1.js → layout-0f3f0098b5d1e6be.js} +1 -1
  207. package/dist/.next/static/chunks/app/log/page-1711fe02581c58e8.js +1 -0
  208. package/dist/.next/static/chunks/app/projects/page-b05c7b0c3284db79.js +1 -0
  209. package/dist/.next/static/chunks/app/radar/page-2c972e78ae153706.js +1 -0
  210. package/dist/.next/static/chunks/app/report/page-6bd98ca320f3730c.js +1 -0
  211. package/dist/.next/static/chunks/app/settings/{page-a38c457b7c57567b.js → page-d50e8193d000c9be.js} +1 -1
  212. package/dist/.next/static/chunks/app/sites/page-80cc0a08ae2339a8.js +1 -0
  213. package/dist/.next/static/chunks/app/welcome/{page-d26225bed7e1ad39.js → page-f2cd15c4b50942bc.js} +1 -1
  214. package/dist/.next/static/chunks/main-8e42304858de4a63.js +1 -0
  215. package/dist/.next/static/css/5ddef273a3ac3217.css +1 -0
  216. package/dist/.next/static/css/fbb4cf81dde34731.css +1 -0
  217. package/dist/build-id.json +228 -228
  218. package/dist/node_modules/@next/env/package.json +1 -1
  219. package/dist/node_modules/next/dist/build/swc/index.js +1 -1
  220. package/dist/node_modules/next/dist/build/webpack-config.js +2 -2
  221. package/dist/node_modules/next/dist/compiled/hash.js/sha256/256.js +1 -0
  222. package/dist/node_modules/next/dist/compiled/hash.js/sha256/package.json +1 -0
  223. package/dist/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +13 -13
  224. package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +13 -13
  225. package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +10 -10
  226. package/dist/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +11 -11
  227. package/dist/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
  228. package/dist/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
  229. package/dist/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +8 -8
  230. package/dist/node_modules/next/dist/lib/has-necessary-dependencies.js +2 -0
  231. package/dist/node_modules/next/dist/lib/verify-typescript-setup.js +19 -0
  232. package/dist/node_modules/next/dist/server/base-server.js +2 -5
  233. package/dist/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
  234. package/dist/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  235. package/dist/node_modules/next/dist/server/image-optimizer.js +65 -2
  236. package/dist/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  237. package/dist/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +197 -23
  238. package/dist/node_modules/next/dist/server/lib/incremental-cache/index.js +36 -17
  239. package/dist/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +3 -3
  240. package/dist/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +14 -6
  241. package/dist/node_modules/next/dist/server/lib/match-next-data-pathname.js +3 -1
  242. package/dist/node_modules/next/dist/server/lib/node-fs-methods.js +14 -0
  243. package/dist/node_modules/next/dist/server/lib/route-cache-key.js +77 -0
  244. package/dist/node_modules/next/dist/server/lib/start-server.js +1 -1
  245. package/dist/node_modules/next/dist/server/next-server.js +8 -6
  246. package/dist/node_modules/next/dist/server/response-cache/index.js +31 -15
  247. package/dist/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +2 -2
  248. package/dist/node_modules/next/dist/server/route-modules/pages/pages-handler.js +6 -1
  249. package/dist/node_modules/next/dist/server/route-modules/route-module.js +9 -2
  250. package/dist/node_modules/next/dist/shared/lib/canary-only.js +1 -1
  251. package/dist/node_modules/next/dist/shared/lib/router/utils/app-paths.js +17 -1
  252. package/dist/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
  253. package/dist/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  254. package/dist/node_modules/next/dist/telemetry/events/version.js +2 -2
  255. package/dist/node_modules/next/package.json +11 -11
  256. package/dist/node_modules/source-map-js/lib/quick-sort.js +10 -1
  257. package/dist/node_modules/source-map-js/lib/source-map-consumer.js +51 -3
  258. package/dist/node_modules/source-map-js/lib/source-map-generator.js +6 -4
  259. package/dist/node_modules/source-map-js/lib/source-node.js +7 -0
  260. package/dist/node_modules/source-map-js/package.json +1 -1
  261. package/dist/package.json +3 -3
  262. package/dist/shell/bin/af360-bridge.exe +0 -0
  263. package/docs/legal/PRIVACY.md +1 -1
  264. package/lib/mask.mjs +21 -1
  265. package/package.json +3 -3
  266. package/scripts/mcp-server.mjs +19 -9
  267. package/shell/bin/af360-bridge.exe +0 -0
  268. package/dist/.next/server/chunks/1331.js +0 -22
  269. package/dist/.next/server/chunks/6584.js +0 -1
  270. package/dist/.next/server/chunks/8134.js +0 -11
  271. package/dist/.next/server/chunks/9946.js +0 -1
  272. package/dist/.next/static/chunks/1255-612df69cb02f2021.js +0 -1
  273. package/dist/.next/static/chunks/1681-b233404f9ec2fc2e.js +0 -1
  274. package/dist/.next/static/chunks/2036-e29441d605c493a4.js +0 -1
  275. package/dist/.next/static/chunks/3192-6b341d547a49fa85.js +0 -1
  276. package/dist/.next/static/chunks/5623-ec4f1a6f7695d8d1.js +0 -1
  277. package/dist/.next/static/chunks/7897-6e6c509aea495560.js +0 -1
  278. package/dist/.next/static/chunks/app/ahead/page-e72bed448dd40bd5.js +0 -1
  279. package/dist/.next/static/chunks/app/connections/page-5d6cae02e6f2b49a.js +0 -1
  280. package/dist/.next/static/chunks/app/log/page-45b4cfd8f1a29d09.js +0 -1
  281. package/dist/.next/static/chunks/app/projects/page-75a41d4a90675d93.js +0 -1
  282. package/dist/.next/static/chunks/app/radar/page-4b4aad549dffcd3a.js +0 -1
  283. package/dist/.next/static/chunks/app/report/page-145496e8f0d5bc86.js +0 -1
  284. package/dist/.next/static/chunks/app/sites/page-96a7dcf3c1e9aa19.js +0 -1
  285. package/dist/.next/static/chunks/main-6828c74376f2b965.js +0 -1
  286. package/dist/.next/static/css/94d302c686de7e23.css +0 -1
  287. package/dist/.next/static/css/9b639a814d15c5ff.css +0 -1
  288. /package/dist/.next/static/{0b943e6aa8d5ffe860588 → be31a391928486d5659f1}/_buildManifest.js +0 -0
  289. /package/dist/.next/static/{0b943e6aa8d5ffe860588 → be31a391928486d5659f1}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=2817,exports.ids=[2817],exports.modules={52817:(a,b,c)=>{c.d(b,{GG:()=>o,_d:()=>p,eN:()=>r,xF:()=>q});var d=c(29021),e=c(33873),f=c.n(e),g=c(71011),h=c(1232),i=c(86587);function j(a){return"unsaved"===a.losable?0:a.losable?1:"expiry"===a.kind?a.entrusted&&!a.cost?1:2:"site"===a.kind?2:3}function k(a){return a?a.items.map((a,b)=>({it:a,i:b})).sort((a,b)=>Number(!!a.it.handled)-Number(!!b.it.handled)||j(a.it)-j(b.it)||Number("red"===b.it.tone)-Number("red"===a.it.tone)||(a.it.since??1/0)-(b.it.since??1/0)||a.i-b.i).map(a=>a.it):[]}var l=c(88804);function m(a){return`${a} project${1===a?"":"s"}`}function n(a=(0,g.yF)()){return f().join(a,"last-look.json")}function o(a){let b=a.now??Date.now(),c=a.attention,d=function(a,b){if(!a)return null;let c=(0,i.yy)(a);if(c)return{commits:0,files:0,projects:0,components:{unpushed:{commits:0,projects:0},unsaved:{files:0,projects:0},unbacked:{projects:0,commits:0}},unmeasured:[],empty:c,zero:!c};let d=new Map(b.map(a=>[a.path.toLowerCase(),a])),e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=[];for(let b of a?k(a).filter(a=>!a.handled&&a.losable):[]){let a="project"===b.kind?d.get(b.id):void 0;if(!a)continue;let c=!1;a.statusKnown?a.uncommitted>0&&(m+=a.uncommitted,n++,f+=a.uncommitted,c=!0):q.push({name:a.name,why:`af360 could not read ${a.name}'s working tree, so its unsaved changes are not in this number`,whyP:(0,l.ph)("radius.unmeasured.status","af360 could not read {0}'s working tree, so its unsaved changes are not in this number",a.name)}),(0,i.ze)(a)?(o++,null!==a.commitCount?(p+=a.commitCount,e+=a.commitCount,c=!0):q.push({name:a.name,why:`af360 could not count ${a.name}'s commits, so its history is not in this number`,whyP:(0,l.ph)("radius.unmeasured.commits","af360 could not count {0}'s commits, so its history is not in this number",a.name)})):null!==a.ahead?a.ahead>0&&(h+=a.ahead,j++,e+=a.ahead,c=!0):a.isGit&&a.hasRemote&&q.push({name:a.name,why:`${a.name} has no upstream branch set, so af360 cannot tell which of its commits are only here`,whyP:(0,l.ph)("radius.unmeasured.upstream","{0} has no upstream branch set, so af360 cannot tell which of its commits are only here",a.name)}),c&&g++}for(let a of b)a.isGit||a.looksDownloaded||q.some(b=>b.name===a.name)||q.push({name:a.name,why:`${a.name} is not in git, so af360 has no way to tell whether a copy of it exists anywhere else`,whyP:(0,l.ph)("radius.unmeasured.noGit","{0} is not in git, so af360 has no way to tell whether a copy of it exists anywhere else",a.name)});return{commits:e,files:f,projects:g,components:{unpushed:{commits:h,projects:j},unsaved:{files:m,projects:n},unbacked:{projects:o,commits:p}},unmeasured:q,empty:!1,zero:0===e&&0===f}}(c,a.projects)??{commits:0,files:0,projects:0,components:{unpushed:{commits:0,projects:0},unsaved:{files:0,projects:0},unbacked:{projects:0,commits:0}},unmeasured:[],empty:!0,zero:!1},e=function(a){var b,c;if(a.empty)return{tone:"clean",headline:(0,l.pl)("radius.empty.head","Nothing to lose yet"),under:(0,l.pl)("radius.empty.under","Point af360 at a folder and it will tell you what only exists here.")};if(a.zero){let b=a.unmeasured.length;return{tone:"clean",headline:0===b?(0,l.pl)("radius.zero.head","If this laptop died right now: nothing would be lost."):(0,l.pl)("radius.zero.headPartial","Everything af360 could check has a copy elsewhere"),under:0===b?(0,l.pl)("radius.zero.under","Every project af360 watches also exists somewhere off this machine."):(0,l.ph)("radius.zero.underPartial","Nothing af360 could measure is only on this machine - and it could not measure {0}, so this does not speak for that work.",m(b))}}let d=[];a.commits>0&&d.push((b=a.commits,`${b} commit${1===b?"":"s"}`)),a.files>0&&d.push((c=a.files,`${c} file${1===c?"":"s"}`));let e=d.join(", ");return{tone:"amber",headline:(0,l.ph)("radius.head","If this laptop died right now: {0} across {1} - gone forever.",e,m(a.projects)),under:(0,l.pl)("radius.under","That work exists nowhere but this machine.")}}(d),f=function(a){if(0===a.unmeasured.length)return null;let b=a.unmeasured.length;return(0,l.ph)("radius.excluded","{0} not included: af360 could not measure {1}.",m(b),1===b?a.unmeasured[0].name:"them this time")}(d),g=c?(0,i.Pl)(c):null,h=k(c).map(a=>({id:a.id,kind:a.kind,tone:a.tone,label:a.label,what:a.what,why:a.why,consequence:function(a){let b=j(a);return b<=1?"losable":2===b?"money":"hygiene"}(a),losable:a.losable,handled:a.handled,since:a.since,steps:a.steps,devSteps:a.devSteps,path:"project"===a.kind?a.id:void 0})),n=c?.tones??{},o=a.projects.map(a=>({name:a.name,path:a.path,isGit:a.isGit,branch:a.branch,hasRemote:a.hasRemote,remoteKnown:a.remoteKnown,statusKnown:a.statusKnown,uncommitted:a.uncommitted,deleted:a.deleted,ahead:a.ahead,behind:a.behind,commitCount:a.commitCount,lastCommit:a.lastCommit,lastActivity:a.lastActivity,tone:n[a.path.toLowerCase()]??null})),p=a.sites.map(a=>({label:a.entry.label??a.entry.url,url:a.entry.url,ok:a.current?a.current.ok:null,status:a.current?.status,checkedAt:a.current?.ts??null,since:a.sinceText,tone:n[a.entry.id]??null})),q=a.expiry.map(a=>({id:a.id,name:a.name,date:a.date,daysLeft:a.daysLeft,source:a.manual?"entrusted":"observed",kind:a.kind,cost:a.cost,done:a.done,note:a.note})),r={scannedAt:a.scannedAt,projects:a.projects.slice(0,250).map(a=>({path:a.path,name:a.name,uncommitted:a.uncommitted,statusKnown:a.statusKnown,ahead:a.ahead,commitCount:a.commitCount,hasRemote:a.hasRemote,lastCommit:a.lastCommit})),capped:a.projects.length>250||void 0,sites:a.sites.map(a=>({url:a.entry.url,ok:a.current?a.current.ok:null})),radius:{commits:d.commits,files:d.files,projects:d.projects}},s=a.previous.filter(b=>b.scannedAt!==a.scannedAt);return s.push(r),s.sort((a,b)=>a.scannedAt-b.scannedAt),{v:2,scannedAt:a.scannedAt,ts:b,configFault:a.configFault,empty:!c||(0,i.yy)(c),estate:{state:c?.state??"QUIET",open:c?.open??0,line:g?.line??"",under:g?.under??"",notChecked:a.notChecked,counts:{projects:a.projects.length,sites:a.sites.length,findings:h.length},findings:h},projects:o,sites:p,ahead:q,radius:{...d,headline:e.headline.en,under:e.under.en,tone:e.tone,excluded:f?f.en:null},looks:s.slice(-40),discoveries:a.discoveries}}async function p(a=(0,g.yF)()){try{let b=JSON.parse(await d.promises.readFile(n(a),"utf8"));if(!b||"object"!=typeof b||"number"!=typeof b.scannedAt)return null;return b}catch{return null}}async function q(a,b=(0,g.yF)()){try{await d.promises.mkdir(b,{recursive:!0});let c=(0,h.fI)(a),e=f().join(b,`.last-look.${process.pid}.tmp`);await d.promises.writeFile(e,JSON.stringify(c)+"\n","utf8"),await d.promises.rename(e,n(b))}catch{}}async function r(a,b=(0,g.yF)()){try{let c=await p(b);if(!c)return;let e={...c,discoveries:(0,h.fI)(a)};await d.promises.mkdir(b,{recursive:!0});let g=f().join(b,`.last-look.${process.pid}.tmp`);await d.promises.writeFile(g,JSON.stringify(e)+"\n","utf8"),await d.promises.rename(g,n(b))}catch{}}},86587:(a,b,c)=>{c.d(b,{Pl:()=>n,W8:()=>k,yy:()=>m,ze:()=>l});var d=c(72346),e=c(88804),f=c(87078),g=c(83720);function h(a){return{what:a.what.en,whatP:a.what,why:a.why.en,whyP:a.why,evidence:a.evidence.map(a=>a.en),evidenceP:a.evidence,steps:a.steps.map(a=>a.en),stepsP:a.steps}}function i(a){return{action:a.en,actionP:a}}function j(a){return a?{handledNote:a.en,handledNoteP:a}:{}}function k(a){let b=a=>Array.isArray(a)?a:[],c=b(a.projects),k=b(a.urls),m=b(a.expiryItems),n=b(a.incidents),r=b(a.missingRoots),s=b(a.ignored),{snoozes:t,isAcked:u,isDupe:v,offline:w}=a,x=Date.now(),y=a=>{let b=t?.[a];return!!b&&new Date(b).getTime()>x},z=[],A={};for(let a of c){let b=a.path.toLowerCase(),h=function(a,b,c){var h,i;let j=[],k=[],m=[],n=[];a.changedTotal>0&&(j.push((0,e.ph)("attn.reason.unsaved",`{0} unsaved change${1===a.changedTotal?"":"s"}`,a.changedTotal)),k.push((0,e.ph)("attn.ev.changed",`changed: {0}${a.changedTotal>a.dirtyFiles.length?" and {1} more":""}`,a.dirtyFiles.join(", "),a.changedTotal-a.dirtyFiles.length))),a.deleted>0&&(j.push((0,e.ph)("attn.reason.deleted",`{0} file${1===a.deleted?"":"s"} deleted`,a.deleted)),k.push((0,e.ph)("attn.ev.deleted",`deleted: {0}${a.deleted>a.deletedFiles.length?" and {1} more":""}`,a.deletedFiles.join(", "),a.deleted-a.deletedFiles.length))),a.uncommitted>0&&(m.push((0,e.pl)("attn.step.commit","Commit the work - a commit makes it permanent history.")),n.push('git add -A && git commit -m "wip"')),a.deleted>0&&(m.push((0,e.pl)("attn.step.deleted","If a deletion was not meant, git still holds the file - restore it before committing.")),n.push("git restore --")),(a.ahead??0)>0&&(j.push((0,e.ph)("attn.reason.unpushed",`{0} commit${1===a.ahead?"":"s"} not pushed`,a.ahead??0)),k.push((0,e.ph)("attn.ev.onlyHere",`{0} commit${1===a.ahead?"":"s"} exist only on this machine`,a.ahead??0)),m.push((0,e.pl)("attn.step.push","Push once - the remote gets a full copy and the risk is gone.")),n.push("git push")),l(a)&&(j.push((0,e.pl)("attn.reason.noBackup","no backup anywhere")),k.push((0,e.pl)("attn.ev.noRemote","no remote is configured - this disk holds the only copy")),m.push((0,e.pl)("attn.step.createRepo","Create an empty repository on your code host, connect it, and push.")),n.push("git remote add origin <url>","git push -u origin main"));let o=a.isGit&&!a.statusKnown;o&&(j.push((0,e.pl)("unread.reason",d.UI.unread.reason)),k.push((0,e.pl)("unread.evidence",d.UI.unread.evidence)),m.push((0,e.pl)("unread.step",d.UI.unread.step)));let p=b?function(a,b){let c=b.filter(b=>b.name===a.name&&b.path!==a.path);if(0===c.length)return null;let d=a.remoteKnown?(0,f.p8)(a.remoteUrl):null,e=a=>a.remoteKnown?(0,f.p8)(a.remoteUrl):null;if(d){let a=c.filter(a=>e(a)===d);if(a.length>0)return{kind:"duplicate",others:a}}return!d||c.some(a=>null===e(a))?{kind:"unproven",others:c}:{kind:"sharesName",others:c}}(a,c):null,q=p?.kind==="duplicate"?p:null,r=!!q&&("dormant"===a.staleness||"forgotten"===a.staleness);if(0===j.length&&r&&q){for(let a of(j.push((0,e.pl)("attn.reason.dupe","a dormant duplicate")),q.others))k.push((0,e.ph)("attn.ev.livingCopy","the living copy: {0}",a.path));let b=(0,f.p8)(a.remoteUrl);b&&k.push((0,e.ph)("attn.ev.sameRemote","both point at the same repository: {0}",b)),a.lastActivity&&(0,g.nW)(a.lastActivity)?k.push((0,e.pl)("attn.ev.untouchedSkew",`this copy untouched ${g.lt.since}`)):k.push((0,e.ph)("attn.ev.untouched","this copy untouched {0}",a.lastActivity?(h=a.lastActivity,(0,g.I)(h)):"for a long time")),m.push((0,e.pl)("attn.step.keepOne","Keep one copy - archive or delete the other so future-you isn't guessing."))}if(0===j.length)return{tone:"clean",what:"",why:"",evidence:[],steps:[]};let s=l(a),t=a.uncommitted>0?"unsaved":(a.ahead??0)>0?"unpushed":s?"unbacked":void 0,u=o&&1===j.length,v="unsaved"===t?(0,e.ph)("act.save","Save {0}",a.name):"unpushed"===t?(0,e.ph)("act.push","Push {0}",a.name):"unbacked"===t?(0,e.ph)("act.backUp","Back up {0}",a.name):u?(0,e.ph)("unread.what","af360 could not finish reading {0}.",a.name):(0,e.ph)("act.duplicate","Decide on {0}'s duplicate",a.name),w=(i=j.map(a=>a.en),(0,e.nn)(i,e.v1.and,e.v1.comma)),x=u?(0,e.ph)("unread.what","af360 could not finish reading {0}.",a.name):{...(0,e.ph)("attn.project.what","{0} has {1}.",a.name,w),list:{slot:1,items:j}},y=u?(0,e.pl)("unread.why",d.UI.unread.why):s?(0,e.pl)("attn.why.noBackup","One disk failure and it's gone - a remote copy fixes that in a minute."):(a.ahead??0)>0&&0===a.uncommitted?(0,e.pl)("attn.why.unpushed","A push costs a minute; losing them costs the work."):r&&0===a.uncommitted?(0,e.pl)("attn.why.dupe","Two copies of one project drift apart quietly."):(0,e.pl)("attn.why.unsaved","Unsaved work survives nowhere - one bad day and it's gone.");return k.push((0,e.ph)("attn.ev.path","{0}",`path: ${a.path}`)),{tone:"amber",what:x.en,why:y.en,whatP:x,whyP:y,since:a.lastActivity?new Date(a.lastActivity).getTime():void 0,evidence:k.map(a=>a.en),evidenceP:k,steps:m.map(a=>a.en),stepsP:m,devSteps:n.length>0?n:void 0,losable:t,action:v.en,actionP:v}}(a,v(a.name),c);A[b]=h.tone,"clean"!==h.tone&&z.push({...h,id:b,kind:"project",label:a.name,handled:y(b)||void 0,handledNote:y(b)?"quiet until tomorrow":void 0,openPath:a.path,laterId:b,ignore:{id:b,kind:"project",label:a.name,atRisk:l(a)}})}let B=a.github;if(B)for(let a of c){let b=B.byPath[a.path.toLowerCase()];if(!b?.ok)continue;let c=b.value;if(c.ci.ok&&c.ci.value&&"failing"===c.ci.value.state){let b=c.ci.value,d=`ci:${a.path.toLowerCase()}`;z.push({id:d,kind:"project",tone:"amber",label:a.name,since:b.at,...h({what:(0,e.ph)("attn.gh.ci.what","{0}'s build failed on {1}.",a.name,b.branch),why:(0,e.pl)("attn.gh.ci.why","GitHub Actions went red - the last push didn't survive CI."),evidence:[(0,e.ph)("attn.gh.ci.ev1","the {0} workflow reported {1}",b.workflow,b.conclusion??"a failure"),(0,e.ph)("attn.gh.ci.ev2","on branch {0}",b.branch),(0,e.ph)("attn.gh.ci.ev3","GitHub last moved this run at {0}",new Date(b.at).toISOString())],steps:[(0,e.pl)("attn.gh.ci.step1","Open the run on GitHub and read the first failing step - the rest usually follow from it."),(0,e.pl)("attn.gh.ci.step2","Nothing here is lost: the commits are pushed. This is about the checks, not the work.")]}),handled:y(d)||void 0,...j(y(d)?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),openPath:a.path,laterId:d,...i((0,e.ph)("act.gh.ci","Read {0}'s failing run on GitHub",a.name))})}if("refuted"===c.backup.verdict){let b=c.backup,d=`backup:${a.path.toLowerCase()}`;z.push({id:d,kind:"project",tone:"amber",label:a.name,losable:"unpushed",...h({what:(0,e.ph)("attn.gh.backup.what","{0} says everything is pushed, and GitHub doesn't have it.",a.name),why:(0,e.pl)("attn.gh.backup.why","Local git reports nothing to push and nothing to pull, so this machine and GitHub should be on the same commit. They aren't."),evidence:[(0,e.ph)("attn.gh.backup.ev1","this machine is on {0} at branch {1}",b.localSha.slice(0,12),b.branch),(0,e.ph)("attn.gh.backup.ev2","GitHub's {0} is at {1}",b.branch,b.remoteSha.slice(0,12)),(0,e.pl)("attn.gh.backup.ev3","af360 asked both ends this scan - this is not read from local git's own record of the remote")],steps:[(0,e.pl)("attn.gh.backup.step1","Fetch from the remote and look again - the usual cause is that this machine's record of the remote is out of date."),(0,e.pl)("attn.gh.backup.step2","If the commits really are only here, push them. Until then treat this project as not backed up.")]}),devSteps:["git fetch --all","git status -sb","git log --oneline -1 HEAD"],handled:y(d)||void 0,...j(y(d)?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),openPath:a.path,laterId:d,...i((0,e.ph)("act.gh.backup","Check where {0}'s commits actually are",a.name))})}}if(w&&k.length>0){for(let a of k)A[a.entry.id]="clean";z.push({id:"offline",kind:"site",tone:"amber",label:"Internet connection",...h({what:(0,e.pl)("attn.offline.what","This computer seems to be offline."),why:(0,e.pl)("attn.offline.why","Your sites may be perfectly fine - af360 can't reach anything right now, so it won't guess."),evidence:[(0,e.ph)("attn.offline.ev1","none of the {0} watched sites answered",k.length),(0,e.pl)("attn.offline.ev2","the domain lookup didn't get through either"),(0,e.pl)("attn.offline.ev3","checks keep running while af360 is open; this clears itself the moment something answers")],steps:[(0,e.pl)("attn.offline.step1","Check this machine's internet connection - wifi, cable, or a VPN that dropped."),(0,e.pl)("attn.offline.step2","Nothing to do here once it's back: af360 rechecks every minute while it is open, and clears this on its own.")]}),devSteps:["ping 1.1.1.1","nslookup example.com"],...i((0,e.pl)("act.offline","Check this machine's connection"))})}for(let a of w?[]:k){let b=a.entry.id,c=a.current,d=a.entry.label||function(a){try{return new URL(a).hostname}catch{return a}}(a.entry.url);if(!c||c.ok){A[b]="clean";continue}A[b]="red";let f=n.find(a=>a.subjectId===b&&!a.endedTs),g=u(b),k=y(b);z.push({id:b,kind:"site",tone:"red",label:d,...h({what:c.status?(0,e.ph)("attn.down.whatStatus","{0} is down (HTTP {1}).",d,c.status):c.error?(0,e.ph)("attn.down.whatError","{0} is down - {1}.",d,c.error):(0,e.ph)("attn.down.what","{0} is down.",d),why:(0,e.pl)("attn.down.why","af360 asked for your site from this machine and got an error back instead of the page."),evidence:[(0,e.ph)("attn.down.evUrl","{0}",a.entry.url),c.status?(0,e.ph)("attn.down.evAnswer","last answer: HTTP {0}",c.status):c.error?(0,e.ph)("attn.down.evAnswerText","last answer: {0}",c.error):(0,e.pl)("attn.down.evNoAnswer","no answer"),f?(0,e.ph)("attn.down.evSince","down since {0}",new Date(f.startedTs).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})):(0,e.pl)("attn.down.evJust","just went quiet"),(0,e.pl)("attn.down.evCadence","checked every minute while af360 is open; recovery is logged automatically")],steps:[(0,e.pl)("attn.down.step1","Open your host's dashboard - most outages are a crashed service or a failed deploy."),(0,e.pl)("attn.down.step2","Press Check once you're on it; the row calms down and clears itself when the site answers again.")]}),since:f?.startedTs,handled:g||k||void 0,...j(g?(0,e.pl)("attn.handled.acked","being handled ✓"):k?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),devSteps:[`curl -sI ${a.entry.url}`],...i((0,e.ph)("act.siteDown","{0} is down",d)),checkId:b,laterId:b,ignore:{id:b,kind:"url",label:d,atRisk:!0}})}for(let a of s){if(!a.resurface)continue;let b=`resurface:${a.id}`;A[b]="amber",z.push({id:b,kind:"resurface",tone:"amber",label:a.label,...h({what:(0,e.ph)("attn.resurface.what","{0}",a.resurface.text),why:(0,e.pl)("attn.resurface.why","You silenced this earlier - the situation moved, so it gets one more look."),evidence:[(0,e.ph)("attn.resurface.evThen","ignored at: {0}",o(a.snapshot)),(0,e.ph)("attn.resurface.evNow","now: {0}",o(a.resurface.current))],steps:[(0,e.pl)("attn.resurface.step","Watch again to bring it back, or Still ignore to re-silence it at today's numbers.")]}),...i((0,e.ph)("act.decide","Decide on {0}",a.label)),resurfaceId:a.id,ignore:{id:a.id,kind:a.kind,label:a.label,atRisk:!1}})}for(let a of m){if(a.manual){if(a.done||null===a.rung||void 0===a.rung){A[a.id]="clean";continue}A[a.id]="amber";let b=y(a.id);z.push({id:a.id,kind:"expiry",tone:"amber",label:a.name,entrusted:!0,cost:a.cost,passed:a.passed,entrustedId:a.id,...h({what:a.passed?(0,e.ph)("attn.entrusted.passed","{0} was due {1}.",a.name,q(a.daysLeft)):(0,e.ph)("attn.entrusted.what","{0} is due {1}.",a.name,q(a.daysLeft)),why:a.note?(0,e.ph)("attn.entrusted.userNote","{0}",a.note):(0,e.pl)("attn.entrusted.why","You asked af360 to tell you about this one."),evidence:[(0,e.pl)("attn.entrusted.evAdded","you added this date"),(0,e.ph)("attn.expiry.evDate","date: {0}",new Date(a.date).toLocaleDateString()),a.note?(0,e.ph)("attn.entrusted.evNote",'what you wrote: "{0}"',a.note):null].filter(a=>null!==a),steps:[(0,e.pl)("attn.entrusted.step","Deal with it, or open Ahead to change the date, mark it done or remove it.")]}),handled:b||void 0,...j(b?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),...i((0,e.ph)("act.entrusted","Deal with {0}",a.name)),laterId:a.id});continue}let b="red"===a.chip||"amber"===a.chip&&"ssl"===a.kind&&a.managed;if(A[a.id]=b?"amber":"clean",!b)continue;let c=y(a.id);z.push({id:a.id,kind:"expiry",tone:"amber",label:a.name,...h({what:"ssl"===a.kind&&a.managed&&"red"!==a.chip?(0,e.ph)("attn.expiry.certLate","{0}'s certificate should have auto-renewed by now - it hasn't.",a.name):a.daysLeft<0?(0,e.ph)("attn.expiry.expired","{0} expired {1}.",a.name,q(a.daysLeft)):(0,e.ph)("attn.expiry.expires","{0} expires {1}.",a.name,q(a.daysLeft)),why:a.note?(0,e.ph)("attn.expiry.userNote","{0}",a.note):"ssl"===a.kind?(0,e.pl)("attn.expiry.whySsl","When it lapses, browsers show a scary warning instead of your site."):(0,e.pl)("attn.expiry.whyDomain","After the date it stops working - renewing early is painless."),evidence:[(0,e.ph)("attn.expiry.evDate","date: {0}",new Date(a.date).toLocaleDateString()),a.judgment?(0,e.ph)("attn.expiry.evJudgment","{0}",a.judgment):a.note?(0,e.ph)("attn.expiry.evNote",'your note: "{0}"',a.note):null,a.issuer?(0,e.ph)("attn.expiry.evIssuer","issuer: {0}",a.issuer):null].filter(a=>null!==a),steps:"ssl"===a.kind?[(0,e.pl)("attn.expiry.stepSsl","Ask your host why the renewal hasn't landed - managed certificates renew on their own, so a late one means something is stuck.")]:[(0,e.pl)("attn.expiry.stepDomain","Renew it (or let it lapse on purpose), then remove or update the entry on Ahead.")]}),handled:c||void 0,...j(c?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),...i("ssl"===a.kind&&a.managed&&"red"!==a.chip?(0,e.ph)("act.certLate","Chase {0}'s certificate",a.name):(0,e.ph)("act.renew","Renew {0}",a.name)),laterId:a.id})}for(let a of r){let b=`missing:${a}`;A[b]="amber",z.push({id:b,kind:"missing",tone:"amber",label:p(a),...h({what:(0,e.ph)("attn.missing.what","The folder {0} can't be found",a),why:(0,e.pl)("attn.missing.why","It moved or was renamed - point me at its new home, or stop watching it."),evidence:[(0,e.ph)("attn.missing.evPath","watched path: {0}",a),(0,e.pl)("attn.missing.evScan","the folder stopped answering on the last scan")],steps:[(0,e.pl)("attn.missing.step1","Press Find it and click through to where the folder lives now - the old entry is replaced."),(0,e.pl)("attn.missing.step2","If it's gone on purpose, Stop watching removes it.")]}),...i((0,e.ph)("act.find","Find {0}",p(a))),findPath:a})}z.sort((a,b)=>Number(a.handled??!1)-Number(b.handled??!1)||Number("red"===b.tone)-Number("red"===a.tone));let C=z.filter(a=>!a.handled).length,D=z.some(a=>"red"===a.tone&&!a.handled),E=b(a.findings).filter(a=>a?.cat==="safety").length,F=0;if(B){for(let a of c){let b=B.byPath[a.path.toLowerCase()];b&&!b.ok&&F++}B.outage&&F++}return F+=b(a.unreachedChecks).length,{state:D?"INCIDENT":C>0?"NEEDS_YOU":E>0?"SAFETY":"QUIET",open:C,items:z,tones:A,unreached:F+=new Set(b(a.unscannedSubjects)).size,safety:E}}function l(a){return a.isGit&&a.remoteKnown&&!a.hasRemote&&!a.looksDownloaded}function m(a){return 0===a.items.length&&0===Object.keys(a.tones).length}function n(a){let b=(a,b)=>({line:a.en,under:b.en,lineP:a,underP:b});if(m(a))return b((0,e.pl)("head.emptyLine","Nothing watched yet"),(0,e.pl)("head.emptyUnder","Point me at a folder and I'll show you the projects inside it."));if("INCIDENT"===a.state){let c=a.items.filter(a=>"red"===a.tone&&!a.handled);return b(1===c.length?(0,e.ph)("head.downOne","{0} is down",c[0].label):(0,e.ph)("head.downMany","{0} down",c.length),1===c.length?(0,e.pl)("head.incidentUnder","everything else can wait - this is the one to look at"):(0,e.pl)("head.incidentUnderMany","everything else can wait - these are the ones to look at"))}if("NEEDS_YOU"===a.state)return a.safety>0?b((0,e.ph)("head.needsLine",`{0} need${1===a.open?"s":""} you`,a.open),(0,e.ph)("head.needsUnderSafety",`none of it is on fire - each has a reason, and {0} safety finding${1===a.safety?" is":"s are"} waiting in Discoveries`,a.safety)):b((0,e.ph)("head.needsLine",`{0} need${1===a.open?"s":""} you`,a.open),(0,e.pl)("head.needsUnder","none of it is on fire - each has a reason"));let c=a.items.filter(a=>a.handled).length,d=a.unreached??0,f=a=>`thing${1===a?"":"s"}`;if("SAFETY"===a.state){let c=a.safety;return b((0,e.ph)("head.safetyLine",`{0} safety finding${1===c?"":"s"}`,c),d>0?(0,e.ph)("head.safetyMissed",`${1===c?"it is":"they are"} waiting in Discoveries - and af360 couldn't check {0} ${f(d)} this time`,d):(0,e.pl)("head.safetyUnder",`${1===c?"it is":"they are"} waiting in Discoveries`))}return b((0,e.pl)("head.quietLine","All quiet"),c>0?d>0?(0,e.ph)("head.quietHandledMissed",`nothing new needs you - {0} item${1===c?" is":"s are"} being handled, and af360 couldn't check {1} ${f(d)} this time`,c,d):(0,e.ph)("head.quietHandled",`nothing new needs you - {0} item${1===c?" is":"s are"} being handled`,c):d>0?(0,e.ph)("head.quietMissed",`nothing needs you - and af360 couldn't check {0} ${f(d)} this time`,d):(0,e.pl)("head.quietUnder","nothing needs you - go build something"))}function o(a){if(!a)return"nothing recorded";let b=[];return"number"==typeof a.uncommitted&&b.push(`${a.uncommitted} unsaved`),!1===a.hasRemote&&b.push("no backup"),a.down&&b.push("down"),b.length>0?b.join(", "):"all fine"}function p(a){let b=a.split(/[\\/]/).filter(Boolean);return b[b.length-1]??a}function q(a){return a<0?`${-a} day${-1===a?"":"s"} ago`:0===a?"today":1===a?"tomorrow":`in ${a} days`}}};
1
+ "use strict";exports.id=2817,exports.ids=[2817],exports.modules={22809:(a,b,c)=>{function d(a){return!!a&&"dependency"===a.role}function e(a){let b={sitesUp:0,sitesTotal:0,depsTotal:0,depsAnswered:0};for(let c of Array.isArray(a)?a:[]){let a=c?.current?.ok===!0;d(c?.entry)?(b.depsTotal++,a&&b.depsAnswered++):(b.sitesTotal++,a&&b.sitesUp++)}return b}c.d(b,{g:()=>e,y:()=>d})},52817:(a,b,c)=>{c.d(b,{GG:()=>p,_d:()=>q,eN:()=>s,xF:()=>r});var d=c(29021),e=c(33873),f=c.n(e),g=c(71011),h=c(1232),i=c(86587);function j(a){return"unsaved"===a.losable?0:a.losable?1:"expiry"===a.kind?a.entrusted&&!a.cost?1:2:"site"===a.kind?2:3}function k(a){return a?a.items.map((a,b)=>({it:a,i:b})).sort((a,b)=>Number(!!a.it.handled)-Number(!!b.it.handled)||j(a.it)-j(b.it)||Number("red"===b.it.tone)-Number("red"===a.it.tone)||(a.it.since??1/0)-(b.it.since??1/0)||a.i-b.i).map(a=>a.it):[]}var l=c(88804);function m(a){return`${a} project${1===a?"":"s"}`}var n=c(22809);function o(a=(0,g.yF)()){return f().join(a,"last-look.json")}function p(a){let b=a.now??Date.now(),c=a.attention,d=function(a,b){if(!a)return null;let c=(0,i.yy)(a);if(c)return{commits:0,files:0,projects:0,components:{unpushed:{commits:0,projects:0},unsaved:{files:0,projects:0},unbacked:{projects:0,commits:0}},unmeasured:[],empty:c,zero:!c};let d=new Map(b.map(a=>[a.path.toLowerCase(),a])),e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=[];for(let b of a?k(a).filter(a=>!a.handled&&a.losable):[]){let a="project"===b.kind?d.get(b.id):void 0;if(!a)continue;let c=!1;a.statusKnown?a.uncommitted>0&&(m+=a.uncommitted,n++,f+=a.uncommitted,c=!0):q.push({name:a.name,why:`af360 could not read ${a.name}'s working tree, so its unsaved changes are not in this number`,whyP:(0,l.ph)("radius.unmeasured.status","af360 could not read {0}'s working tree, so its unsaved changes are not in this number",a.name)}),(0,i.ze)(a)?(o++,null!==a.commitCount?(p+=a.commitCount,e+=a.commitCount,c=!0):q.push({name:a.name,why:`af360 could not count ${a.name}'s commits, so its history is not in this number`,whyP:(0,l.ph)("radius.unmeasured.commits","af360 could not count {0}'s commits, so its history is not in this number",a.name)})):null!==a.ahead?a.ahead>0&&(h+=a.ahead,j++,e+=a.ahead,c=!0):a.isGit&&a.hasRemote&&q.push({name:a.name,why:`${a.name} has no upstream branch set, so af360 cannot tell which of its commits are only here`,whyP:(0,l.ph)("radius.unmeasured.upstream","{0} has no upstream branch set, so af360 cannot tell which of its commits are only here",a.name)}),c&&g++}for(let a of b)a.isGit||a.looksDownloaded||q.some(b=>b.name===a.name)||q.push({name:a.name,why:`${a.name} is not in git, so af360 has no way to tell whether a copy of it exists anywhere else`,whyP:(0,l.ph)("radius.unmeasured.noGit","{0} is not in git, so af360 has no way to tell whether a copy of it exists anywhere else",a.name)});return{commits:e,files:f,projects:g,components:{unpushed:{commits:h,projects:j},unsaved:{files:m,projects:n},unbacked:{projects:o,commits:p}},unmeasured:q,empty:!1,zero:0===e&&0===f}}(c,a.projects)??{commits:0,files:0,projects:0,components:{unpushed:{commits:0,projects:0},unsaved:{files:0,projects:0},unbacked:{projects:0,commits:0}},unmeasured:[],empty:!0,zero:!1},e=function(a){var b,c;if(a.empty)return{tone:"clean",headline:(0,l.pl)("radius.empty.head","Nothing to lose yet"),under:(0,l.pl)("radius.empty.under","Point af360 at a folder and it will tell you what only exists here.")};if(a.zero){let b=a.unmeasured.length;return{tone:"clean",headline:0===b?(0,l.pl)("radius.zero.head","Work that exists only on this machine: none."):(0,l.pl)("radius.zero.headPartial","Everything af360 could check has a copy elsewhere"),under:0===b?(0,l.pl)("radius.zero.under","Every project af360 watches also exists somewhere off this machine."):(0,l.ph)("radius.zero.underPartial","Nothing af360 could measure is only on this machine - and it could not measure {0}, so this does not speak for that work.",m(b))}}let d=[];a.commits>0&&d.push((b=a.commits,`${b} commit${1===b?"":"s"}`)),a.files>0&&d.push((c=a.files,`${c} file${1===c?"":"s"}`));let e=d.join(", ");return{tone:"amber",headline:(0,l.ph)("radius.head","Work that exists only on this machine: {0} across {1}.",e,m(a.projects)),under:(0,l.pl)("radius.under","af360 found no copy of it anywhere off this machine.")}}(d),f=function(a){if(0===a.unmeasured.length)return null;let b=a.unmeasured.length;return(0,l.ph)("radius.excluded","{0} not included: af360 could not measure {1}.",m(b),1===b?a.unmeasured[0].name:"them this time")}(d),g=c?(0,i.Pl)(c):null,h=k(c).map(a=>({id:a.id,kind:a.kind,tone:a.tone,label:a.label,what:a.what,why:a.why,consequence:function(a){let b=j(a);return b<=1?"losable":2===b?"money":"hygiene"}(a),losable:a.losable,handled:a.handled,since:a.since,steps:a.steps,devSteps:a.devSteps,path:"project"===a.kind?a.id:void 0})),o=c?.tones??{},p=a.projects.map(a=>({name:a.name,path:a.path,isGit:a.isGit,branch:a.branch,hasRemote:a.hasRemote,remoteKnown:a.remoteKnown,statusKnown:a.statusKnown,uncommitted:a.uncommitted,deleted:a.deleted,ahead:a.ahead,behind:a.behind,commitCount:a.commitCount,lastCommit:a.lastCommit,lastActivity:a.lastActivity,tone:o[a.path.toLowerCase()]??null})),q=a.sites.map(a=>({label:a.entry.label??a.entry.url,url:a.entry.url,ok:a.current?a.current.ok:null,status:a.current?.status,checkedAt:a.current?.ts??null,since:a.sinceText,tone:o[a.entry.id]??null,role:(0,n.y)(a.entry)?"dependency":"site"})),r=a.expiry.map(a=>({id:a.id,name:a.name,date:a.date,daysLeft:a.daysLeft,source:a.manual?"entrusted":"observed",kind:a.kind,cost:a.cost,done:a.done,note:a.note})),s={scannedAt:a.scannedAt,projects:a.projects.slice(0,250).map(a=>({path:a.path,name:a.name,uncommitted:a.uncommitted,statusKnown:a.statusKnown,ahead:a.ahead,commitCount:a.commitCount,hasRemote:a.hasRemote,lastCommit:a.lastCommit})),capped:a.projects.length>250||void 0,sites:a.sites.map(a=>({url:a.entry.url,ok:a.current?a.current.ok:null})),radius:{commits:d.commits,files:d.files,projects:d.projects}},t=a.previous.filter(b=>b.scannedAt!==a.scannedAt);return t.push(s),t.sort((a,b)=>a.scannedAt-b.scannedAt),{v:2,scannedAt:a.scannedAt,ts:b,configFault:a.configFault,empty:!c||(0,i.yy)(c),estate:{state:c?.state??"QUIET",open:c?.open??0,needs:c?.needs??0,line:g?.line??"",under:g?.under??"",notChecked:a.notChecked,counts:{projects:a.projects.length,sites:(0,n.g)(a.sites).sitesTotal,dependencies:(0,n.g)(a.sites).depsTotal,findings:h.length},findings:h},projects:p,sites:q,ahead:r,radius:{...d,headline:e.headline.en,under:e.under.en,tone:e.tone,excluded:f?f.en:null},looks:t.slice(-40),discoveries:a.discoveries}}async function q(a=(0,g.yF)()){try{let b=JSON.parse(await d.promises.readFile(o(a),"utf8"));if(!b||"object"!=typeof b||"number"!=typeof b.scannedAt)return null;return b}catch{return null}}async function r(a,b=(0,g.yF)()){try{await d.promises.mkdir(b,{recursive:!0});let c=(0,h.fI)(a),e=f().join(b,`.last-look.${process.pid}.tmp`);await d.promises.writeFile(e,JSON.stringify(c)+"\n","utf8"),await d.promises.rename(e,o(b))}catch{}}async function s(a,b=(0,g.yF)()){try{let c=await q(b);if(!c)return;let e={...c,discoveries:(0,h.fI)(a)};await d.promises.mkdir(b,{recursive:!0});let g=f().join(b,`.last-look.${process.pid}.tmp`);await d.promises.writeFile(g,JSON.stringify(e)+"\n","utf8"),await d.promises.rename(g,o(b))}catch{}}},86587:(a,b,c)=>{c.d(b,{Pl:()=>n,W8:()=>k,yy:()=>m,ze:()=>l});var d=c(72346),e=c(88804),f=c(87078),g=c(83720);function h(a){return{what:a.what.en,whatP:a.what,why:a.why.en,whyP:a.why,evidence:a.evidence.map(a=>a.en),evidenceP:a.evidence,steps:a.steps.map(a=>a.en),stepsP:a.steps}}function i(a){return{action:a.en,actionP:a}}function j(a){return a?{handledNote:a.en,handledNoteP:a}:{}}function k(a){let b=a=>Array.isArray(a)?a:[],c=b(a.projects),k=b(a.urls),m=b(a.expiryItems),n=b(a.incidents),r=b(a.missingRoots),s=b(a.ignored),{snoozes:t,isAcked:u,isDupe:v,offline:w}=a,x=Date.now(),y=a=>{let b=t?.[a];return!!b&&new Date(b).getTime()>x},z=[],A={};for(let a of c){let b=a.path.toLowerCase(),h=function(a,b,c){var h,i;let j=[],k=[],m=[],n=[];a.changedTotal>0&&(j.push((0,e.ph)("attn.reason.unsaved",`{0} unsaved change${1===a.changedTotal?"":"s"}`,a.changedTotal)),k.push((0,e.ph)("attn.ev.changed",`changed: {0}${a.changedTotal>a.dirtyFiles.length?" and {1} more":""}`,a.dirtyFiles.join(", "),a.changedTotal-a.dirtyFiles.length))),a.deleted>0&&(j.push((0,e.ph)("attn.reason.deleted",`{0} file${1===a.deleted?"":"s"} deleted`,a.deleted)),k.push((0,e.ph)("attn.ev.deleted",`deleted: {0}${a.deleted>a.deletedFiles.length?" and {1} more":""}`,a.deletedFiles.join(", "),a.deleted-a.deletedFiles.length))),a.uncommitted>0&&(m.push((0,e.pl)("attn.step.commit","Commit the work - a commit makes it permanent history.")),n.push('git add -A && git commit -m "wip"')),a.deleted>0&&(m.push((0,e.pl)("attn.step.deleted","If a deletion was not meant, git still holds the file - restore it before committing.")),n.push("git restore --")),(a.ahead??0)>0&&(j.push((0,e.ph)("attn.reason.unpushed",`{0} commit${1===a.ahead?"":"s"} not pushed`,a.ahead??0)),k.push((0,e.ph)("attn.ev.onlyHere",`{0} commit${1===a.ahead?"":"s"} exist only on this machine`,a.ahead??0)),m.push((0,e.pl)("attn.step.push","Push once - the remote gets a full copy and the risk is gone.")),n.push("git push")),l(a)&&(j.push((0,e.pl)("attn.reason.noBackup","no backup anywhere")),k.push((0,e.pl)("attn.ev.noRemote","no remote is configured - this disk holds the only copy")),m.push((0,e.pl)("attn.step.createRepo","Create an empty repository on your code host, connect it, and push.")),n.push("git remote add origin <url>","git push -u origin main"));let o=a.isGit&&!a.statusKnown;o&&(j.push((0,e.pl)("unread.reason",d.UI.unread.reason)),k.push((0,e.pl)("unread.evidence",d.UI.unread.evidence)),m.push((0,e.pl)("unread.step",d.UI.unread.step)));let p=b?function(a,b){let c=b.filter(b=>b.name===a.name&&b.path!==a.path);if(0===c.length)return null;let d=a.remoteKnown?(0,f.p8)(a.remoteUrl):null,e=a=>a.remoteKnown?(0,f.p8)(a.remoteUrl):null;if(d){let a=c.filter(a=>e(a)===d);if(a.length>0)return{kind:"duplicate",others:a}}return!d||c.some(a=>null===e(a))?{kind:"unproven",others:c}:{kind:"sharesName",others:c}}(a,c):null,q=p?.kind==="duplicate"?p:null,r=!!q&&("dormant"===a.staleness||"forgotten"===a.staleness);if(0===j.length&&r&&q){for(let a of(j.push((0,e.pl)("attn.reason.dupe","a dormant duplicate")),q.others))k.push((0,e.ph)("attn.ev.livingCopy","the living copy: {0}",a.path));let b=(0,f.p8)(a.remoteUrl);b&&k.push((0,e.ph)("attn.ev.sameRemote","both point at the same repository: {0}",b)),a.lastActivity&&(0,g.nW)(a.lastActivity)?k.push((0,e.pl)("attn.ev.untouchedSkew",`this copy untouched ${g.lt.since}`)):k.push((0,e.ph)("attn.ev.untouched","this copy untouched {0}",a.lastActivity?(h=a.lastActivity,(0,g.I)(h)):"for a long time")),m.push((0,e.pl)("attn.step.keepOne","Keep one copy - archive or delete the other so future-you isn't guessing."))}if(0===j.length)return{tone:"clean",what:"",why:"",evidence:[],steps:[]};let s=l(a),t=a.uncommitted>0?"unsaved":(a.ahead??0)>0?"unpushed":s?"unbacked":void 0,u=o&&1===j.length,v="unsaved"===t?(0,e.ph)("act.save","Save {0}",a.name):"unpushed"===t?(0,e.ph)("act.push","Push {0}",a.name):"unbacked"===t?(0,e.ph)("act.backUp","Back up {0}",a.name):u?(0,e.ph)("unread.what","af360 could not finish reading {0}.",a.name):(0,e.ph)("act.duplicate","Decide on {0}'s duplicate",a.name),w=(i=j.map(a=>a.en),(0,e.nn)(i,e.v1.and,e.v1.comma)),x=u?(0,e.ph)("unread.what","af360 could not finish reading {0}.",a.name):{...(0,e.ph)("attn.project.what","{0} has {1}.",a.name,w),list:{slot:1,items:j}},y=u?(0,e.pl)("unread.why",d.UI.unread.why):s?(0,e.pl)("attn.why.noBackup","One disk failure and it's gone - a remote copy fixes that in a minute."):(a.ahead??0)>0&&0===a.uncommitted?(0,e.pl)("attn.why.unpushed","A push costs a minute; losing them costs the work."):r&&0===a.uncommitted?(0,e.pl)("attn.why.dupe","Two copies of one project drift apart quietly."):(0,e.pl)("attn.why.unsaved","Unsaved work survives nowhere - one bad day and it's gone.");return k.push((0,e.ph)("attn.ev.path","{0}",`path: ${a.path}`)),{tone:"amber",what:x.en,why:y.en,whatP:x,whyP:y,since:a.lastActivity?new Date(a.lastActivity).getTime():void 0,evidence:k.map(a=>a.en),evidenceP:k,steps:m.map(a=>a.en),stepsP:m,devSteps:n.length>0?n:void 0,losable:t,action:v.en,actionP:v}}(a,v(a.name),c);A[b]=h.tone,"clean"!==h.tone&&z.push({...h,id:b,kind:"project",label:a.name,handled:y(b)||void 0,handledNote:y(b)?"quiet until tomorrow":void 0,openPath:a.path,laterId:b,ignore:{id:b,kind:"project",label:a.name,atRisk:l(a)}})}let B=a.github;if(B)for(let a of c){let b=B.byPath[a.path.toLowerCase()];if(!b?.ok)continue;let c=b.value;if(c.ci.ok&&c.ci.value&&"failing"===c.ci.value.state){let b=c.ci.value,d=`ci:${a.path.toLowerCase()}`;z.push({id:d,kind:"project",tone:"amber",label:a.name,since:b.at,...h({what:(0,e.ph)("attn.gh.ci.what","{0}'s build failed on {1}.",a.name,b.branch),why:(0,e.pl)("attn.gh.ci.why","GitHub Actions went red - the last push didn't survive CI."),evidence:[(0,e.ph)("attn.gh.ci.ev1","the {0} workflow reported {1}",b.workflow,b.conclusion??"a failure"),(0,e.ph)("attn.gh.ci.ev2","on branch {0}",b.branch),(0,e.ph)("attn.gh.ci.ev3","GitHub last moved this run at {0}",new Date(b.at).toISOString())],steps:[(0,e.pl)("attn.gh.ci.step1","Open the run on GitHub and read the first failing step - the rest usually follow from it."),(0,e.pl)("attn.gh.ci.step2","Nothing here is lost: the commits are pushed. This is about the checks, not the work.")]}),handled:y(d)||void 0,...j(y(d)?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),openPath:a.path,laterId:d,...i((0,e.ph)("act.gh.ci","Read {0}'s failing run on GitHub",a.name))})}if("refuted"===c.backup.verdict){let b=c.backup,d=`backup:${a.path.toLowerCase()}`;z.push({id:d,kind:"project",tone:"amber",label:a.name,losable:"unpushed",...h({what:(0,e.ph)("attn.gh.backup.what","{0} says everything is pushed, and GitHub doesn't have it.",a.name),why:(0,e.pl)("attn.gh.backup.why","Local git reports nothing to push and nothing to pull, so this machine and GitHub should be on the same commit. They aren't."),evidence:[(0,e.ph)("attn.gh.backup.ev1","this machine is on {0} at branch {1}",b.localSha.slice(0,12),b.branch),(0,e.ph)("attn.gh.backup.ev2","GitHub's {0} is at {1}",b.branch,b.remoteSha.slice(0,12)),(0,e.pl)("attn.gh.backup.ev3","af360 asked both ends this scan - this is not read from local git's own record of the remote")],steps:[(0,e.pl)("attn.gh.backup.step1","Fetch from the remote and look again - the usual cause is that this machine's record of the remote is out of date."),(0,e.pl)("attn.gh.backup.step2","If the commits really are only here, push them. Until then treat this project as not backed up.")]}),devSteps:["git fetch --all","git status -sb","git log --oneline -1 HEAD"],handled:y(d)||void 0,...j(y(d)?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),openPath:a.path,laterId:d,...i((0,e.ph)("act.gh.backup","Check where {0}'s commits actually are",a.name))})}}if(w&&k.length>0){for(let a of k)A[a.entry.id]="clean";z.push({id:"offline",kind:"site",tone:"amber",label:"Internet connection",...h({what:(0,e.pl)("attn.offline.what","This computer seems to be offline."),why:(0,e.pl)("attn.offline.why","Your sites may be perfectly fine - af360 can't reach anything right now, so it won't guess."),evidence:[(0,e.ph)("attn.offline.ev1","none of the {0} watched sites answered",k.length),(0,e.pl)("attn.offline.ev2","the domain lookup didn't get through either"),(0,e.pl)("attn.offline.ev3","checks keep running while af360 is open; this clears itself the moment something answers")],steps:[(0,e.pl)("attn.offline.step1","Check this machine's internet connection - wifi, cable, or a VPN that dropped."),(0,e.pl)("attn.offline.step2","Nothing to do here once it's back: af360 rechecks every minute while it is open, and clears this on its own.")]}),devSteps:["ping 1.1.1.1","nslookup example.com"],...i((0,e.pl)("act.offline","Check this machine's connection"))})}for(let a of w?[]:k){let b=a.entry.id,c=a.current,d=a.entry.label||function(a){try{return new URL(a).hostname}catch{return a}}(a.entry.url);if("dependency"===a.entry.role||!c||c.ok){A[b]="clean";continue}A[b]="red";let f=n.find(a=>a.subjectId===b&&!a.endedTs),g=u(b),k=y(b);z.push({id:b,kind:"site",tone:"red",label:d,...h({what:c.status?(0,e.ph)("attn.down.whatStatus","{0} is down (HTTP {1}).",d,c.status):c.error?(0,e.ph)("attn.down.whatError","{0} is down - {1}.",d,c.error):(0,e.ph)("attn.down.what","{0} is down.",d),why:(0,e.pl)("attn.down.why","af360 asked for your site from this machine and got an error back instead of the page."),evidence:[(0,e.ph)("attn.down.evUrl","{0}",a.entry.url),c.status?(0,e.ph)("attn.down.evAnswer","last answer: HTTP {0}",c.status):c.error?(0,e.ph)("attn.down.evAnswerText","last answer: {0}",c.error):(0,e.pl)("attn.down.evNoAnswer","no answer"),f?(0,e.ph)("attn.down.evSince","down since {0}",new Date(f.startedTs).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})):(0,e.pl)("attn.down.evJust","just went quiet"),(0,e.pl)("attn.down.evCadence","checked every minute while af360 is open; recovery is logged automatically")],steps:[(0,e.pl)("attn.down.step1","Open your host's dashboard - most outages are a crashed service or a failed deploy."),(0,e.pl)("attn.down.step2","Press Check once you're on it; the row calms down and clears itself when the site answers again.")]}),since:f?.startedTs,handled:g||k||void 0,...j(g?(0,e.pl)("attn.handled.acked","being handled ✓"):k?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),devSteps:[`curl -sI ${a.entry.url}`],...i((0,e.ph)("act.siteDown","{0} is down",d)),checkId:b,laterId:b,ignore:{id:b,kind:"url",label:d,atRisk:!0}})}for(let a of s){if(!a.resurface)continue;let b=`resurface:${a.id}`;A[b]="amber",z.push({id:b,kind:"resurface",tone:"amber",label:a.label,...h({what:(0,e.ph)("attn.resurface.what","{0}",a.resurface.text),why:(0,e.pl)("attn.resurface.why","You silenced this earlier - the situation moved, so it gets one more look."),evidence:[(0,e.ph)("attn.resurface.evThen","ignored at: {0}",o(a.snapshot)),(0,e.ph)("attn.resurface.evNow","now: {0}",o(a.resurface.current))],steps:[(0,e.pl)("attn.resurface.step","Watch again to bring it back, or Still ignore to re-silence it at today's numbers.")]}),...i((0,e.ph)("act.decide","Decide on {0}",a.label)),resurfaceId:a.id,ignore:{id:a.id,kind:a.kind,label:a.label,atRisk:!1}})}for(let a of m){if(a.manual){if(a.done||null===a.rung||void 0===a.rung){A[a.id]="clean";continue}A[a.id]="amber";let b=y(a.id);z.push({id:a.id,kind:"expiry",tone:"amber",label:a.name,entrusted:!0,cost:a.cost,passed:a.passed,entrustedId:a.id,...h({what:a.passed?(0,e.ph)("attn.entrusted.passed","{0} was due {1}.",a.name,q(a.daysLeft)):(0,e.ph)("attn.entrusted.what","{0} is due {1}.",a.name,q(a.daysLeft)),why:a.note?(0,e.ph)("attn.entrusted.userNote","{0}",a.note):(0,e.pl)("attn.entrusted.why","You asked af360 to tell you about this one."),evidence:[(0,e.pl)("attn.entrusted.evAdded","you added this date"),(0,e.ph)("attn.expiry.evDate","date: {0}",new Date(a.date).toLocaleDateString()),a.note?(0,e.ph)("attn.entrusted.evNote",'what you wrote: "{0}"',a.note):null].filter(a=>null!==a),steps:[(0,e.pl)("attn.entrusted.step","Deal with it, or open Ahead to change the date, mark it done or remove it.")]}),handled:b||void 0,...j(b?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),...i((0,e.ph)("act.entrusted","Deal with {0}",a.name)),laterId:a.id});continue}let b="red"===a.chip||"amber"===a.chip&&"ssl"===a.kind&&a.managed;if(A[a.id]=b?"amber":"clean",!b)continue;let c=y(a.id);z.push({id:a.id,kind:"expiry",tone:"amber",label:a.name,...h({what:"ssl"===a.kind&&a.managed&&"red"!==a.chip?(0,e.ph)("attn.expiry.certLate","{0}'s certificate should have auto-renewed by now - it hasn't.",a.name):a.daysLeft<0?(0,e.ph)("attn.expiry.expired","{0} expired {1}.",a.name,q(a.daysLeft)):(0,e.ph)("attn.expiry.expires","{0} expires {1}.",a.name,q(a.daysLeft)),why:a.note?(0,e.ph)("attn.expiry.userNote","{0}",a.note):"ssl"===a.kind?(0,e.pl)("attn.expiry.whySsl","When it lapses, browsers show a scary warning instead of your site."):(0,e.pl)("attn.expiry.whyDomain","After the date it stops working - renewing early is painless."),evidence:[(0,e.ph)("attn.expiry.evDate","date: {0}",new Date(a.date).toLocaleDateString()),a.judgment?(0,e.ph)("attn.expiry.evJudgment","{0}",a.judgment):a.note?(0,e.ph)("attn.expiry.evNote",'your note: "{0}"',a.note):null,a.issuer?(0,e.ph)("attn.expiry.evIssuer","issuer: {0}",a.issuer):null].filter(a=>null!==a),steps:"ssl"===a.kind?[(0,e.pl)("attn.expiry.stepSsl","Ask your host why the renewal hasn't landed - managed certificates renew on their own, so a late one means something is stuck.")]:[(0,e.pl)("attn.expiry.stepDomain","Renew it (or let it lapse on purpose), then remove or update the entry on Ahead.")]}),handled:c||void 0,...j(c?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),...i("ssl"===a.kind&&a.managed&&"red"!==a.chip?(0,e.ph)("act.certLate","Chase {0}'s certificate",a.name):(0,e.ph)("act.renew","Renew {0}",a.name)),laterId:a.id})}for(let a of r){let b=`missing:${a}`;A[b]="amber",z.push({id:b,kind:"missing",tone:"amber",label:p(a),...h({what:(0,e.ph)("attn.missing.what","The folder {0} can't be found",a),why:(0,e.pl)("attn.missing.why","It moved or was renamed - point me at its new home, or stop watching it."),evidence:[(0,e.ph)("attn.missing.evPath","watched path: {0}",a),(0,e.pl)("attn.missing.evScan","the folder stopped answering on the last scan")],steps:[(0,e.pl)("attn.missing.step1","Press Find it and click through to where the folder lives now - the old entry is replaced."),(0,e.pl)("attn.missing.step2","If it's gone on purpose, Stop watching removes it.")]}),...i((0,e.ph)("act.find","Find {0}",p(a))),findPath:a})}let C=a.siblingsSince;if("number"==typeof C&&C>0)for(let c of b(a.siblings)){if("number"!=typeof c?.createdAt||c.createdAt<=C)continue;let a=`sibling:${c.path.toLowerCase()}`,b=y(a);A[a]="amber";let d=new Date(c.createdAt).toLocaleDateString();z.push({id:a,kind:"sibling",tone:"amber",label:c.name,...h({what:(0,e.ph)("attn.sibling.what","A new project appeared next to ones you watch: {0}. Watch it?",c.name),why:(0,e.ph)("attn.sibling.why","Its folder was created {0}, after you first agreed to af360's terms on {1}, and af360 isn't watching it.",d,new Date(C).toLocaleDateString()),evidence:[(0,e.ph)("attn.sibling.evPath","folder: {0}",c.path),(0,e.ph)("attn.sibling.evCreated","created: {0} (the date Windows holds for the folder)",d),(0,e.ph)("attn.sibling.evNextTo","next to: {0}, which you watch",c.nextTo)],steps:[(0,e.pl)("attn.sibling.step1","Press Watch it and af360 adds the folder to the ones it watches."),(0,e.pl)("attn.sibling.step2","If it isn't yours to watch, Not this one puts it on the don't-watch-here list in Settings and af360 stops asking about it."),(0,e.pl)("attn.sibling.step3","Later quiets this until tomorrow.")]}),handled:b||void 0,...j(b?(0,e.pl)("attn.handled.snoozed","quiet until tomorrow"):void 0),...i((0,e.ph)("act.watchSibling","Watch {0}",c.name)),since:c.createdAt,watchPath:c.path,laterId:a})}z.sort((a,b)=>Number(a.handled??!1)-Number(b.handled??!1)||Number("red"===b.tone)-Number("red"===a.tone));let D=z.filter(a=>!a.handled).length,E=z.some(a=>"red"===a.tone&&!a.handled),F=b(a.findings).filter(a=>a?.cat==="safety").length,G=0;if(B){for(let a of c){let b=B.byPath[a.path.toLowerCase()];b&&!b.ok&&G++}B.outage&&G++}return G+=b(a.unreachedChecks).length,{state:E?"INCIDENT":D>0?"NEEDS_YOU":F>0?"SAFETY":"QUIET",open:D,items:z,tones:A,unreached:G+=new Set(b(a.unscannedSubjects)).size,safety:F,needs:D+F}}function l(a){return a.isGit&&a.remoteKnown&&!a.hasRemote&&!a.looksDownloaded}function m(a){return 0===a.items.length&&0===Object.keys(a.tones).length}function n(a){let b=(a,b)=>({line:a.en,under:b.en,lineP:a,underP:b});if(m(a))return b((0,e.pl)("head.emptyLine","Nothing watched yet"),(0,e.pl)("head.emptyUnder","Point me at a folder and I'll show you the projects inside it."));if("INCIDENT"===a.state){let c=a.items.filter(a=>"red"===a.tone&&!a.handled);return b(1===c.length?(0,e.ph)("head.downOne","{0} is down",c[0].label):(0,e.ph)("head.downMany","{0} down",c.length),1===c.length?(0,e.pl)("head.incidentUnder","everything else can wait - this is the one to look at"):(0,e.pl)("head.incidentUnderMany","everything else can wait - these are the ones to look at"))}if("NEEDS_YOU"===a.state)return a.safety>0?b((0,e.ph)("head.needsLine",`{0} need${1===a.needs?"s":""} you`,a.needs),(0,e.ph)("head.needsUnderSafetyIn",`none of it is on fire - each has a reason, and {0} of them ${1===a.safety?"is a safety finding":"are safety findings"} in Discoveries`,a.safety)):b((0,e.ph)("head.needsLine",`{0} need${1===a.open?"s":""} you`,a.open),(0,e.pl)("head.needsUnder","none of it is on fire - each has a reason"));let c=a.items.filter(a=>a.handled).length,d=a.unreached??0,f=a=>`thing${1===a?"":"s"}`;if("SAFETY"===a.state){let c=a.safety;return b((0,e.ph)("head.safetyLine",`{0} safety finding${1===c?"":"s"}`,c),d>0?(0,e.ph)("head.safetyMissed",`${1===c?"it is":"they are"} waiting in Discoveries - and af360 couldn't check {0} ${f(d)} this time`,d):(0,e.pl)("head.safetyUnder",`${1===c?"it is":"they are"} waiting in Discoveries`))}return b((0,e.pl)("head.quietLine","All quiet"),c>0?d>0?(0,e.ph)("head.quietHandledMissed",`nothing new needs you - {0} item${1===c?" is":"s are"} being handled, and af360 couldn't check {1} ${f(d)} this time`,c,d):(0,e.ph)("head.quietHandled",`nothing new needs you - {0} item${1===c?" is":"s are"} being handled`,c):d>0?(0,e.ph)("head.quietMissed",`nothing needs you - and af360 couldn't check {0} ${f(d)} this time`,d):(0,e.pl)("head.quietUnder","nothing needs you - go build something"))}function o(a){if(!a)return"nothing recorded";let b=[];return"number"==typeof a.uncommitted&&b.push(`${a.uncommitted} unsaved`),!1===a.hasRemote&&b.push("no backup"),a.down&&b.push("down"),b.length>0?b.join(", "):"all fine"}function p(a){let b=a.split(/[\\/]/).filter(Boolean);return b[b.length-1]??a}function q(a){return a<0?`${-a} day${-1===a?"":"s"} ago`:0===a?"today":1===a?"tomorrow":`in ${a} days`}}};
@@ -0,0 +1,22 @@
1
+ exports.id=3897,exports.ids=[3897],exports.modules={310:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bootstrap:function(){return i},error:function(){return k},event:function(){return o},info:function(){return n},prefixes:function(){return f},ready:function(){return m},trace:function(){return p},wait:function(){return j},warn:function(){return l},warnOnce:function(){return r}});let d=c(12882),e=c(11949),f={wait:(0,d.white)((0,d.bold)("○")),error:(0,d.red)((0,d.bold)("⨯")),warn:(0,d.yellow)((0,d.bold)("⚠")),ready:"▲",info:(0,d.white)((0,d.bold)(" ")),event:(0,d.green)((0,d.bold)("✓")),trace:(0,d.magenta)((0,d.bold)("\xbb"))},g={log:"log",warn:"warn",error:"error"};function h(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in g?g[a]:"log",d=f[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](" "+d+" "+b[0]):console[c](" "+d,...b)}function i(...a){console.log(" "+a.join(" "))}function j(...a){h("wait",...a)}function k(...a){h("error",...a)}function l(...a){h("warn",...a)}function m(...a){h("ready",...a)}function n(...a){h("info",...a)}function o(...a){h("event",...a)}function p(...a){h("trace",...a)}let q=new e.LRUCache(1e4,a=>a.length);function r(...a){let b=a.join(" ");q.has(b)||(q.set(b,b),l(...a))}},2762:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ENCODED_TAGS",{enumerable:!0,get:function(){return c}});let c={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}}},3384:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{METADATA_BOUNDARY_NAME:function(){return c},OUTLET_BOUNDARY_NAME:function(){return e},ROOT_LAYOUT_BOUNDARY_NAME:function(){return f},VIEWPORT_BOUNDARY_NAME:function(){return d}});let c="__next_metadata_boundary__",d="__next_viewport_boundary__",e="__next_outlet_boundary__",f="__next_root_layout_boundary__"},3896:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{INTERCEPTION_ROUTE_MARKERS:function(){return e},extractInterceptionRouteInformation:function(){return g},isInterceptionRouteAppPath:function(){return f}});let d=c(48723),e=["(..)(..)","(.)","(..)","(...)"];function f(a){return void 0!==a.split("/").find(a=>e.find(b=>a.startsWith(b)))}function g(a){let b,c,f;for(let d of a.split("/"))if(c=e.find(a=>d.startsWith(a))){[b,f]=a.split(c,2);break}if(!b||!c||!f)throw Object.defineProperty(Error("Invalid interception route: "+a+". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>"),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(b=(0,d.normalizeAppPath)(b),c){case"(.)":f="/"===b?"/"+f:b+"/"+f;break;case"(..)":if("/"===b)throw Object.defineProperty(Error("Invalid interception route: "+a+". Cannot use (..) marker at the root level, use (.) instead."),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});f=b.split("/").slice(0,-1).concat(f).join("/");break;case"(...)":f="/"+f;break;case"(..)(..)":let g=b.split("/");if(g.length<=2)throw Object.defineProperty(Error("Invalid interception route: "+a+". Cannot use (..)(..) marker at the root level or one level up."),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});f=g.slice(0,-2).concat(f).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:b,interceptedRoute:f}}},4044:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_PATCH_SYMBOL:function(){return n},createPatchedFetcher:function(){return t},patchFetch:function(){return u},validateRevalidate:function(){return o},validateTags:function(){return p}});let d=c(38928),e=c(32324),f=c(63446),g=c(26906),h=c(82831),i=c(76381),j=c(63033),k=c(51356),l=c(37422),m=c(7916),n=Symbol.for("next-patch");function o(a,b){try{let c;if(!1===a)c=f.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function p(a,b){let c=[],d=[];for(let e=0;e<a.length;e++){let g=a[e];if("string"!=typeof g?d.push({tag:g,reason:"invalid type, must be a string"}):g.length>f.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:g,reason:`exceeded max length of ${f.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(g),c.length>f.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function q(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function r(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function s(a,b,c,d,e,f,g,h,i){let[j,l]=(0,m.cloneResponse)(b),n=j.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(j.headers.entries()),body:b.toString("base64"),status:j.status,url:j.url};null==f||f.set(c,h),d&&await e.set(c,{kind:k.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>console.warn("Failed to set fetch cache",h,a)).finally(i),o=`cache-set-${c}`;return a.pendingRevalidates??={},o in a.pendingRevalidates&&await a.pendingRevalidates[o],a.pendingRevalidates[o]=n.finally(()=>{var b;(null==(b=a.pendingRevalidates)?void 0:b[o])&&delete a.pendingRevalidates[o]}),l}function t(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let i=async function(i,n){var t,u;let v;try{(v=new URL(i instanceof Request?i.url:i)).username="",v.password=""}catch{v=void 0}let w=(null==v?void 0:v.href)??"",x=(null==n||null==(t=n.method)?void 0:t.toUpperCase())||"GET",y=(null==n||null==(u=n.next)?void 0:u.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,j.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,e.getTracer)().trace(y?d.NextNodeServerSpan.internalFetch:d.AppRenderSpan.fetch,{hideSpan:z,kind:e.SpanKind.CLIENT,spanName:["fetch",x,w].filter(Boolean).join(" "),attributes:{"http.url":w,"http.method":x,"net.peer.name":null==v?void 0:v.hostname,"net.peer.port":(null==v?void 0:v.port)||void 0}},async()=>{var b;let c,d,e,j,t,u;if(y||!B||B.isDraftMode)return a(i,n);let v=i&&"object"==typeof i&&"string"==typeof i.method;if(v&&n){let{next:a,...b}=n;i=new Request(i,b),n=a?{next:a}:void 0}let x=a=>(null==n?void 0:n[a])||(v?i[a]:null),z=a=>{var b,c,d;return void 0!==(null==n||null==(b=n.next)?void 0:b[a])?null==n||null==(c=n.next)?void 0:c[a]:v?null==(d=i.next)?void 0:d[a]:void 0},E=z("revalidate"),F=E,G=p(z("tags")||[],`fetch ${i.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(d=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),u=o(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==u&&u>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${w} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${w} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",u=f.INFINITE_CACHE)}if(void 0===u?"default-cache"!==I||J?"default-no-store"===I?(u=0,L="fetchCache = default-no-store"):J?(u=0,L="noStore call"):T?(u=0,L="auto no cache"):(L="auto cache",u=c?c.revalidate:f.INFINITE_CACHE):(u=f.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${u}`),!(B.forceStatic&&0===u)&&!T&&c&&u<c.revalidate){if(0===u){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}c&&E===u&&(c.revalidate=u)}let V="number"==typeof u&&u>0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,j=C.serverComponentsHmrCache}if(W&&(V||j))try{e=await W.generateCacheKey(w,v?i:n)}catch(a){console.error("Failed to generate cache key for",i,a)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let g=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(v){let a=i,b={body:a._ogBody||a.body};for(let c of g)b[c]=a[c];i=new Request(a.url,b)}else if(n){let{_ogBody:a,body:c,signal:d,...e}=n;n={...e,body:a||c,signal:b?void 0:d}}let h={...n,next:{...null==n?void 0:n.next,fetchType:"origin",fetchIdx:Y}};return a(i,h).then(async a=>{if(!b&&A&&q(B,{start:A,url:w,cacheReason:c||L,cacheStatus:0===u||c?"skip":"miss",cacheWarning:d,status:a.status,method:h.method||"GET"}),200===a.status&&W&&e&&(V||j)){let b=u>=f.INFINITE_CACHE?f.CACHE_ONE_YEAR:u,c=V?{fetchCache:!0,fetchUrl:w,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"prerender-runtime":return r(a,e,c,W,b,Z);case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case void 0:return s(B,a,e,c,W,j,b,i,Z)}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(e&&W){let a;if(X&&j&&(a=j.get(e),aa=!0),V&&!a){Z=await W.lock(e);let b=B.isOnDemandRevalidate?null:await W.get(e,{kind:k.IncrementalCacheKind.FETCH,revalidate:u,fetchUrl:w,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":await (0,l.waitAtLeastOneReactRenderTask)()}if(b?await Z():t="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===k.CachedRouteKind.FETCH)if(B.isRevalidate&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[e])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[e||""]});a.catch(console.error),B.pendingRevalidates[e]=a}a=b.value.data}}if(a){A&&q(B,{start:A,url:w,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:d,status:a.status||200,method:(null==n?void 0:n.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&n&&"object"==typeof n){let{cache:a}=n;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${i} ${B.route}`)}let b="next"in n,{next:d={}}=n;if("number"==typeof d.revalidate&&c&&d.revalidate<c.revalidate){if(0===d.revalidate){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,g.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${i} ${B.route}`)}B.forceStatic&&0===d.revalidate||(c.revalidate=d.revalidate)}b&&delete n.next}if(!e||!_)return $(!1,t);{let a=e;B.pendingRevalidates??={};let b=B.pendingRevalidates[a];if(b){let a=await b;return new Response(a.body,{headers:a.headers,status:a.status,statusText:a.statusText})}let c=$(!0,t).then(m.cloneResponse);return(b=c.then(async a=>{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return i.__nextPatched=!0,i.__nextGetStaticStore=()=>b,i._nextOriginalFetch=a,globalThis[n]=!0,Object.defineProperty(i,"name",{value:"fetch",writable:!1}),i}function u(a){if(!0===globalThis[n])return;let b=(0,i.createDedupeFetch)(globalThis.fetch);globalThis.fetch=t(b,a)}},5796:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},7705:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getNextPathnameInfo",{enumerable:!0,get:function(){return g}});let d=c(53290),e=c(53630),f=c(75916);function g(a,b){var c,g;let{basePath:h,i18n:i,trailingSlash:j}=null!=(c=b.nextConfig)?c:{},k={pathname:a,trailingSlash:"/"!==a?a.endsWith("/"):j};h&&(0,f.pathHasPrefix)(k.pathname,h)&&(k.pathname=(0,e.removePathPrefix)(k.pathname,h),k.basePath=h);let l=k.pathname;if(k.pathname.startsWith("/_next/data/")&&k.pathname.endsWith(".json")){let a=k.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");k.buildId=a[0],l="index"!==a[1]?"/"+a.slice(1).join("/"):"/",!0===b.parseData&&(k.pathname=l)}if(i){let a=b.i18nProvider?b.i18nProvider.analyze(k.pathname):(0,d.normalizeLocalePath)(k.pathname,i.locales);k.locale=a.detectedLocale,k.pathname=null!=(g=a.pathname)?g:k.pathname,!a.detectedLocale&&k.buildId&&(a=b.i18nProvider?b.i18nProvider.analyze(l):(0,d.normalizeLocalePath)(l,i.locales)).detectedLocale&&(k.locale=a.detectedLocale)}return k}},7916:(a,b)=>{"use strict";let c;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"cloneResponse",{enumerable:!0,get:function(){return e}});let d=()=>{};function e(a){if(!a.body)return[a,a];let[b,d]=a.body.tee(),e=new Response(b,{status:a.status,statusText:a.statusText,headers:a.headers});Object.defineProperty(e,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),c&&e.body&&c.register(e,new WeakRef(e.body));let f=new Response(d,{status:a.status,statusText:a.statusText,headers:a.headers});return Object.defineProperty(f,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),[e,f]}globalThis.FinalizationRegistry&&(c=new FinalizationRegistry(a=>{let b=a.deref();b&&!b.locked&&b.cancel("Response object has been garbage collected").then(d)}))},8289:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(69332);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+b+c+e+f}},8801:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getSortedRouteObjects:function(){return d.getSortedRouteObjects},getSortedRoutes:function(){return d.getSortedRoutes},isDynamicRoute:function(){return e.isDynamicRoute}});let d=c(97091),e=c(54293)},9117:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return c}});var c=function(a){return a.PAGES="PAGES",a.PAGES_API="PAGES_API",a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.IMAGE="IMAGE",a}({})},9403:(a,b)=>{"use strict";function c(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e<b.length;e++)if(a[c+e]!==b[e]){d=!1;break}if(d)return c}return -1}function d(a,b){if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function e(a,b){let d=c(a,b);if(0===d)return a.subarray(b.length);if(!(d>-1))return a;{let c=new Uint8Array(a.length-b.length);return c.set(a.slice(0,d)),c.set(a.slice(d+b.length),d),c}}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{indexOfUint8Array:function(){return c},isEquivalentUint8Arrays:function(){return d},removeFromUint8Array:function(){return e}})},11938:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{StaticGenBailoutError:function(){return d},isStaticGenBailoutError:function(){return e}});let c="NEXT_STATIC_GEN_BAILOUT";class d extends Error{constructor(...a){super(...a),this.code=c}}function e(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===c}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},11949:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},12882:(a,b)=>{"use strict";var c;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{bgBlack:function(){return A},bgBlue:function(){return E},bgCyan:function(){return G},bgGreen:function(){return C},bgMagenta:function(){return F},bgRed:function(){return B},bgWhite:function(){return H},bgYellow:function(){return D},black:function(){return q},blue:function(){return u},bold:function(){return j},cyan:function(){return x},dim:function(){return k},gray:function(){return z},green:function(){return s},hidden:function(){return o},inverse:function(){return n},italic:function(){return l},magenta:function(){return v},purple:function(){return w},red:function(){return r},reset:function(){return i},strikethrough:function(){return p},underline:function(){return m},white:function(){return y},yellow:function(){return t}});let{env:d,stdout:e}=(null==(c=globalThis)?void 0:c.process)??{},f=d&&!d.NO_COLOR&&(d.FORCE_COLOR||(null==e?void 0:e.isTTY)&&!d.CI&&"dumb"!==d.TERM),g=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),h=f.indexOf(b);return~h?e+g(f,b,c,h):e+f},h=(a,b,c=a)=>f?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+g(e,b,c,f)+b:a+e+b}:String,i=f?a=>`\x1b[0m${a}\x1b[0m`:String,j=h("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),k=h("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l=h("\x1b[3m","\x1b[23m"),m=h("\x1b[4m","\x1b[24m"),n=h("\x1b[7m","\x1b[27m"),o=h("\x1b[8m","\x1b[28m"),p=h("\x1b[9m","\x1b[29m"),q=h("\x1b[30m","\x1b[39m"),r=h("\x1b[31m","\x1b[39m"),s=h("\x1b[32m","\x1b[39m"),t=h("\x1b[33m","\x1b[39m"),u=h("\x1b[34m","\x1b[39m"),v=h("\x1b[35m","\x1b[39m"),w=h("\x1b[38;2;173;127;168m","\x1b[39m"),x=h("\x1b[36m","\x1b[39m"),y=h("\x1b[37m","\x1b[39m"),z=h("\x1b[90m","\x1b[39m"),A=h("\x1b[40m","\x1b[49m"),B=h("\x1b[41m","\x1b[49m"),C=h("\x1b[42m","\x1b[49m"),D=h("\x1b[43m","\x1b[49m"),E=h("\x1b[44m","\x1b[49m"),F=h("\x1b[45m","\x1b[49m"),G=h("\x1b[46m","\x1b[49m"),H=h("\x1b[47m","\x1b[49m")},13601:(a,b)=>{"use strict";function c(a){return{normalize:a}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"wrapNormalizerFn",{enumerable:!0,get:function(){return c}})},14876:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathSuffix",{enumerable:!0,get:function(){return e}});let d=c(69332);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return""+c+b+e+f}},15965:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromResponseCacheEntry:function(){return h},routeKindToIncrementalCacheKind:function(){return j},toResponseCacheEntry:function(){return i}});let d=c(60905),e=function(a){return a&&a.__esModule?a:{default:a}}(c(36225)),f=c(9117),g=c(63446);async function h(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function i(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===d.CachedRouteKind.PAGES?{kind:d.CachedRouteKind.PAGES,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===d.CachedRouteKind.APP_PAGE?{kind:d.CachedRouteKind.APP_PAGE,html:e.default.fromStatic(a.value.html,g.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function j(a){switch(a){case f.RouteKind.PAGES:return d.IncrementalCacheKind.PAGES;case f.RouteKind.APP_PAGE:return d.IncrementalCacheKind.APP_PAGE;case f.RouteKind.IMAGE:return d.IncrementalCacheKind.IMAGE;case f.RouteKind.APP_ROUTE:return d.IncrementalCacheKind.APP_ROUTE;case f.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},17679:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{fromNodeOutgoingHttpHeaders:function(){return e},normalizeNextQueryParam:function(){return i},splitCookiesString:function(){return f},toNodeOutgoingHttpHeaders:function(){return g},validateURL:function(){return h}});let d=c(63446);function e(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function f(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function g(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...f(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function h(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function i(a){for(let b of[d.NEXT_QUERY_PARAM_PREFIX,d.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},26720:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return d},doesExportedHtmlMatchBuildId:function(){return g},insertBuildIdComment:function(){return f}});let c="<!DOCTYPE html>",d="bytes=0-63";function e(a){return a.slice(0,24).replace(/-/g,"_")}function f(a,b){return b.includes("--\x3e")||!a.startsWith(c)?a:a.replace(c,c+"\x3c!--"+e(b)+"--\x3e")}function g(a,b){return a.startsWith(c+"\x3c!--"+e(b)+"--\x3e")}},26906:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{Postpone:function(){return A},PreludeState:function(){return V},abortAndThrowOnSynchronousRequestDataAccess:function(){return x},abortOnSynchronousPlatformIOAccess:function(){return v},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return N},consumeDynamicAccess:function(){return J},createDynamicTrackingState:function(){return o},createDynamicValidationState:function(){return p},createHangingInputAbortSignal:function(){return M},createRenderInBrowserAbortSignal:function(){return L},delayUntilRuntimeStage:function(){return Y},formatDynamicAPIAccesses:function(){return K},getFirstDynamicReason:function(){return q},isDynamicPostpone:function(){return D},isPrerenderInterruptedError:function(){return H},logDisallowedDynamicError:function(){return W},markCurrentScopeAsDynamic:function(){return r},postponeWithTracking:function(){return B},throwIfDisallowedDynamic:function(){return X},throwToInterruptStaticGeneration:function(){return s},trackAllowedDynamicAccess:function(){return U},trackDynamicDataInDynamicRender:function(){return t},trackSynchronousPlatformIOAccessInDev:function(){return w},trackSynchronousRequestDataAccessInDev:function(){return z},useDynamicRouteParams:function(){return O},warnOnSyncDynamicError:function(){return y}});let d=function(a){return a&&a.__esModule?a:{default:a}}(c(74515)),e=c(69168),f=c(11938),g=c(63033),h=c(29294),i=c(82831),j=c(3384),k=c(37422),l=c(29305),m=c(49290),n="function"==typeof d.default.unstable_postpone;function o(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function p(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function q(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function r(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return B(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new e.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function s(a,b,c){let d=Object.defineProperty(new e.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function t(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function u(a,b,c){let d=G(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function v(a,b,c,d){let e=d.dynamicTracking;u(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function w(a){a.prerenderPhase=!1}function x(a,b,c,d){if(!1===d.controller.signal.aborted){u(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw G(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function y(a){a.syncDynamicErrorWithStack&&console.error(a.syncDynamicErrorWithStack)}let z=w;function A({reason:a,route:b}){let c=g.workUnitAsyncStorage.getStore();B(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function B(a,b,c){(function(){if(!n)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),d.default.unstable_postpone(C(a,b))}function C(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function D(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&E(a.message)}function E(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===E(C("%%%","^^^")))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 F="NEXT_PRERENDER_INTERRUPTED";function G(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=F,b}function H(a){return"object"==typeof a&&null!==a&&a.digest===F&&"name"in a&&"message"in a&&a instanceof Error}function I(a){return a.length>0}function J(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function K(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
2
+ ${b}`))}function L(){let a=new AbortController;return a.abort(Object.defineProperty(new l.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function M(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else{let c=(0,g.getRuntimeStagePromise)(a);c?c.then(()=>(0,k.scheduleOnNextTick)(()=>b.abort())):(0,k.scheduleOnNextTick)(()=>b.abort())}return b.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function N(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function O(a){let b=h.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let e=c.fallbackRouteParams;e&&e.size>0&&d.default.use((0,i.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return B(b.route,a,c.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}let P=/\n\s+at Suspense \(<anonymous>\)/,Q=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${j.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),R=RegExp(`\\n\\s+at ${j.METADATA_BOUNDARY_NAME}[\\n\\s]`),S=RegExp(`\\n\\s+at ${j.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),T=RegExp(`\\n\\s+at ${j.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function U(a,b,c,d){if(!T.test(b)){if(R.test(b)){c.hasDynamicMetadata=!0;return}if(S.test(b)){c.hasDynamicViewport=!0;return}if(Q.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(P.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=function(a,b){let c=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return c.stack=c.name+": "+a+b,c}(`Route "${a.route}": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a "use cache" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`,b);return void c.dynamicErrors.push(e)}}}var V=function(a){return a[a.Full=0]="Full",a[a.Empty=1]="Empty",a[a.Errored=2]="Errored",a}({});function W(a,b){console.error(b),a.dev||(a.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
3
+ - Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.
4
+ - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function X(a,b,c,d){if(0!==b){if(c.hasSuspenseAboveBody)return;if(d.syncDynamicErrorWithStack)throw W(a,d.syncDynamicErrorWithStack),new f.StaticGenBailoutError;let e=c.dynamicErrors;if(e.length>0){for(let b=0;b<e.length;b++)W(a,e[b]);throw new f.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new f.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new f.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new f.StaticGenBailoutError}function Y(a,b){return a.runtimeStagePromise?a.runtimeStagePromise.then(()=>b):b}},28536:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{PageSignatureError:function(){return c},RemovedPageError:function(){return d},RemovedUAError:function(){return e}});class c extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
5
+
6
+ export function middleware(request, event) {
7
+ return NextResponse.redirect('/new-location')
8
+ }
9
+
10
+ Read more: https://nextjs.org/docs/messages/middleware-new-signature
11
+ `)}}class d extends Error{constructor(){super(`The request.page has been deprecated in favour of \`URLPattern\`.
12
+ Read more: https://nextjs.org/docs/messages/middleware-request-page
13
+ `)}}class e extends Error{constructor(){super(`The request.ua has been removed in favour of \`userAgent\` function.
14
+ Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
15
+ `)}}},29305:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BailoutToCSRError:function(){return d},isBailoutToCSRError:function(){return e}});let c="BAILOUT_TO_CLIENT_SIDE_RENDERING";class d extends Error{constructor(a){super("Bail out to client-side rendering: "+a),this.reason=a,this.digest=c}}function e(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===c}},31716:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isRequestAPICallableInsideAfter:function(){return i},throwForSearchParamsAccessInUseCache:function(){return h},throwWithStaticGenerationBailoutError:function(){return f},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return g}});let d=c(11938),e=c(3295);function f(a,b){throw Object.defineProperty(new d.StaticGenBailoutError(`Route ${a} couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E576",enumerable:!1,configurable:!0})}function g(a,b){throw Object.defineProperty(new d.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. 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 h(a,b){let c=Object.defineProperty(Error(`Route ${a.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:"E779",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function i(){let a=e.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},32324:(a,b,c)=>{"use strict";let d;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BubbledError:function(){return n},SpanKind:function(){return l},SpanStatusCode:function(){return k},getTracer:function(){return v},isBubbledError:function(){return o}});let e=c(38928),f=c(39577),g=process.env.NEXT_OTEL_PERFORMANCE_PREFIX;try{d=c(68688)}catch(a){d=c(68688)}let{context:h,propagation:i,trace:j,SpanStatusCode:k,SpanKind:l,ROOT_CONTEXT:m}=d;class n extends Error{constructor(a,b){super(),this.bubble=a,this.result=b}}function o(a){return"object"==typeof a&&null!==a&&a instanceof n}let p=(a,b)=>{o(b)&&b.bubble?a.setAttribute("next.bubble",!0):(b&&(a.recordException(b),a.setAttribute("error.type",b.name)),a.setStatus({code:k.ERROR,message:null==b?void 0:b.message})),a.end()},q=new Map,r=d.createContextKey("next.rootSpanId"),s=0,t={set(a,b,c){a.push({key:b,value:c})}};class u{getTracerInstance(){return j.getTracer("next.js","0.0.1")}getContext(){return h}getTracePropagationData(){let a=h.active(),b=[];return i.inject(a,b,t),b}getActiveScopeSpan(){return j.getSpan(null==h?void 0:h.active())}withPropagatedContext(a,b,c){let d=h.active();if(j.getSpanContext(d))return b();let e=i.extract(d,a,c);return h.with(e,b)}trace(...a){var b;let[c,d,i]=a,{fn:k,options:l}="function"==typeof d?{fn:d,options:{}}:{fn:i,options:{...d}},n=l.spanName??c;if(!e.NextVanillaSpanAllowlist.has(c)&&"1"!==process.env.NEXT_OTEL_VERBOSE||l.hideSpan)return k();let o=this.getSpanContext((null==l?void 0:l.parentSpan)??this.getActiveScopeSpan()),t=!1;o?(null==(b=j.getSpanContext(o))?void 0:b.isRemote)&&(t=!0):(o=(null==h?void 0:h.active())??m,t=!0);let u=s++;return l.attributes={"next.span_name":n,"next.span_type":c,...l.attributes},h.with(o.setValue(r,u),()=>this.getTracerInstance().startActiveSpan(n,l,a=>{let b;g&&c&&e.LogSpanAllowList.has(c)&&(b="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0);let d=!1,h=()=>{!d&&(d=!0,q.delete(u),b&&performance.measure(`${g}:next-${(c.split(".").pop()||"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())}`,{start:b,end:performance.now()}))};if(t&&q.set(u,new Map(Object.entries(l.attributes??{}))),k.length>1)try{return k(a,b=>p(a,b))}catch(b){throw p(a,b),b}finally{h()}try{let b=k(a);if((0,f.isThenable)(b))return b.then(b=>(a.end(),b)).catch(b=>{throw p(a,b),b}).finally(h);return a.end(),h(),b}catch(b){throw p(a,b),h(),b}}))}wrap(...a){let b=this,[c,d,f]=3===a.length?a:[a[0],{},a[1]];return e.NextVanillaSpanAllowlist.has(c)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let a=d;"function"==typeof a&&"function"==typeof f&&(a=a.apply(this,arguments));let e=arguments.length-1,g=arguments[e];if("function"!=typeof g)return b.trace(c,a,()=>f.apply(this,arguments));{let d=b.getContext().bind(h.active(),g);return b.trace(c,a,(a,b)=>(arguments[e]=function(a){return null==b||b(a),d.apply(this,arguments)},f.apply(this,arguments)))}}:f}startSpan(...a){let[b,c]=a,d=this.getSpanContext((null==c?void 0:c.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(b,c,d)}getSpanContext(a){return a?j.setSpan(h.active(),a):void 0}getRootSpanAttributes(){let a=h.active().getValue(r);return q.get(a)}setRootSpanAttribute(a,b){let c=h.active().getValue(r),d=q.get(c);d&&d.set(a,b)}}let v=(()=>{let a=new u;return()=>a})()},33675:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{RequestCookies:function(){return d.RequestCookies},ResponseCookies:function(){return d.ResponseCookies},stringifyCookie:function(){return d.stringifyCookie}});let d=c(72496)},34679:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ROUTE_CACHE_DIRECTORY:function(){return i},getResponseCacheOwner:function(){return k},getRouteCacheKey:function(){return m},isRouteCacheOwner:function(){return l}});let d=c(98036),e=c(53290),f=c(49290),g=c(53549),h=c(9117),i="route-cache",j=new g.AppPathnameNormalizer;function k(a){return{kind:a.kind,sourceRoute:a.kind===h.RouteKind.PAGES?a.pathname:a.page}}function l(a,b,c,d){if(!c)return!1;let f=null===c.dataRoute?h.RouteKind.APP_ROUTE:c.dataRoute.endsWith(".json")?h.RouteKind.PAGES:c.dataRoute.endsWith(".rsc")?h.RouteKind.APP_PAGE:void 0;return f===b.kind&&(("srcRoute"in c?c.srcRoute:c.fallbackSourceRoute)??(f===h.RouteKind.PAGES?(0,e.normalizeLocalePath)(a,d).pathname:a))===(f===h.RouteKind.PAGES?b.sourceRoute:j.normalize(b.sourceRoute))}function m(a,b){let e;if(!b)throw new f.InvariantError("Response cache requires a source route");let{sourceRoute:g}=b;{let{createHash:a}=c(55511);e=a("sha256").update(g).digest("hex")}return`/${i}/${b.kind}/${e}/$${(0,d.normalizePagePath)(a)}`}},36225:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(47686),e=c(55088),f=c(49290);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},37422:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{atLeastOneTask:function(){return e},scheduleImmediate:function(){return d},scheduleOnNextTick:function(){return c},waitAtLeastOneReactRenderTask:function(){return f}});let c=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},d=a=>{setImmediate(a)};function e(){return new Promise(a=>d(a))}function f(){return new Promise(a=>setImmediate(a))}},38928:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{AppRenderSpan:function(){return i},AppRouteRouteHandlersSpan:function(){return l},BaseServerSpan:function(){return c},LoadComponentsSpan:function(){return d},LogSpanAllowList:function(){return p},MiddlewareSpan:function(){return n},NextNodeServerSpan:function(){return f},NextServerSpan:function(){return e},NextVanillaSpanAllowlist:function(){return o},NodeSpan:function(){return k},RenderSpan:function(){return h},ResolveMetadataSpan:function(){return m},RouterSpan:function(){return j},StartServerSpan:function(){return g}});var c=function(a){return a.handleRequest="BaseServer.handleRequest",a.run="BaseServer.run",a.pipe="BaseServer.pipe",a.getStaticHTML="BaseServer.getStaticHTML",a.render="BaseServer.render",a.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",a.renderToResponse="BaseServer.renderToResponse",a.renderToHTML="BaseServer.renderToHTML",a.renderError="BaseServer.renderError",a.renderErrorToResponse="BaseServer.renderErrorToResponse",a.renderErrorToHTML="BaseServer.renderErrorToHTML",a.render404="BaseServer.render404",a}(c||{}),d=function(a){return a.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",a.loadComponents="LoadComponents.loadComponents",a}(d||{}),e=function(a){return a.getRequestHandler="NextServer.getRequestHandler",a.getServer="NextServer.getServer",a.getServerRequestHandler="NextServer.getServerRequestHandler",a.createServer="createServer.createServer",a}(e||{}),f=function(a){return a.compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a}(f||{}),g=function(a){return a.startServer="startServer.startServer",a}(g||{}),h=function(a){return a.getServerSideProps="Render.getServerSideProps",a.getStaticProps="Render.getStaticProps",a.renderToString="Render.renderToString",a.renderDocument="Render.renderDocument",a.createBodyResult="Render.createBodyResult",a}(h||{}),i=function(a){return a.renderToString="AppRender.renderToString",a.renderToReadableStream="AppRender.renderToReadableStream",a.getBodyResult="AppRender.getBodyResult",a.fetch="AppRender.fetch",a}(i||{}),j=function(a){return a.executeRoute="Router.executeRoute",a}(j||{}),k=function(a){return a.runHandler="Node.runHandler",a}(k||{}),l=function(a){return a.runHandler="AppRouteRouteHandlers.runHandler",a}(l||{}),m=function(a){return a.generateMetadata="ResolveMetadata.generateMetadata",a.generateViewport="ResolveMetadata.generateViewport",a}(m||{}),n=function(a){return a.execute="Middleware.execute",a}(n||{});let o=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),p=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},39326:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NEXT_REQUEST_META:function(){return c},addRequestMeta:function(){return f},getRequestMeta:function(){return d},removeRequestMeta:function(){return g},setRequestMeta:function(){return e}});let c=Symbol.for("NextInternalRequestMeta");function d(a,b){let d=a[c]||{};return"string"==typeof b?d[b]:d}function e(a,b){return a[c]=b,b}function f(a,b,c){let f=d(a);return f[b]=c,e(a,f)}function g(a,b){let c=d(a);return delete c[b],e(a,c)}},39577:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},40163:(a,b)=>{"use strict";function c(a,b){let c;if((null==b?void 0:b.host)&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},40408:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"UnderscoreNormalizer",{enumerable:!0,get:function(){return c}});class c{normalize(a){return a.replace(/%5F/g,"_")}}},40440:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(63269);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b(c,Promise.resolve);let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let a=await b(c,g);g(a)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},40980:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DecodeError:function(){return o},MiddlewareNotFoundError:function(){return s},MissingStaticPage:function(){return r},NormalizeError:function(){return p},PageNotFoundError:function(){return q},SP:function(){return m},ST:function(){return n},WEB_VITALS:function(){return c},execOnce:function(){return d},getDisplayName:function(){return i},getLocationOrigin:function(){return g},getURL:function(){return h},isAbsoluteUrl:function(){return f},isResSent:function(){return j},loadGetInitialProps:function(){return l},normalizeRepeatedSlashes:function(){return k},stringifyError:function(){return t}});let c=["CLS","FCP","FID","INP","LCP","TTFB"];function d(a){let b,c=!1;return function(){for(var d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return c||(c=!0,b=a(...e)),b}}let e=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,f=a=>e.test(a);function g(){let{protocol:a,hostname:b,port:c}=window.location;return a+"//"+b+(c?":"+c:"")}function h(){let{href:a}=window.location,b=g();return a.substring(b.length)}function i(a){return"string"==typeof a?a:a.displayName||a.name||"Unknown"}function j(a){return a.finished||a.headersSent}function k(a){let b=a.split("?");return b[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(b[1]?"?"+b.slice(1).join("?"):"")}async function l(a,b){let c=b.res||b.ctx&&b.ctx.res;if(!a.getInitialProps)return b.ctx&&b.Component?{pageProps:await l(b.Component,b.ctx)}:{};let d=await a.getInitialProps(b);if(c&&j(c))return d;if(!d)throw Object.defineProperty(Error('"'+i(a)+'.getInitialProps()" should resolve to an object. But found "'+d+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d}let m="undefined"!=typeof performance,n=m&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);class o extends Error{}class p extends Error{}class q extends Error{constructor(a){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+a}}class r extends Error{constructor(a,b){super(),this.message="Failed to load static file for page: "+a+" "+b}}class s extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function t(a){return JSON.stringify({message:a.message,stack:a.stack})}},41681:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCacheControlHeader",{enumerable:!0,get:function(){return e}});let d=c(63446);function e({revalidate:a,expire:b}){let c="number"==typeof a&&void 0!==b&&a<b?`, stale-while-revalidate=${b-a}`:"";return 0===a?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof a?`s-maxage=${a}${c}`:`s-maxage=${d.CACHE_ONE_YEAR}${c}`}},45581:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getClientComponentLoaderMetrics:function(){return g},wrapClientComponentLoader:function(){return f}});let c=0,d=0,e=0;function f(a){return"performance"in globalThis?{require:(...b)=>{let f=performance.now();0===c&&(c=f);try{return e+=1,a.__next_app__.require(...b)}finally{d+=performance.now()-f}},loadChunk:(...b)=>{let c=performance.now(),e=a.__next_app__.loadChunk(...b);return e.finally(()=>{d+=performance.now()-c}),e}}:a.__next_app__}function g(a={}){let b=0===c?void 0:{clientComponentLoadStart:c,clientComponentLoadTimes:d,clientComponentLoadCount:e};return a.reset&&(c=0,d=0,e=0),b}},46595:(a,b)=>{"use strict";function c(a){return a.isOnDemandRevalidate?"on-demand":a.isRevalidate?"stale":void 0}Object.defineProperty(b,"c",{enumerable:!0,get:function(){return c}})},47686:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{chainStreams:function(){return n},continueDynamicHTMLResume:function(){return E},continueDynamicPrerender:function(){return C},continueFizzStream:function(){return B},continueStaticPrerender:function(){return D},createBufferedTransformStream:function(){return s},createDocumentClosingStream:function(){return F},createRootLayoutValidatorStream:function(){return A},renderToInitialFizzStream:function(){return u},streamFromBuffer:function(){return p},streamFromString:function(){return o},streamToBuffer:function(){return q},streamToString:function(){return r}});let d=c(32324),e=c(38928),f=c(63269),g=c(37422),h=c(2762),i=c(9403),j=c(5796),k=c(26720);function l(){}let m=new TextEncoder;function n(...a){if(0===a.length)return new ReadableStream({start(a){a.close()}});if(1===a.length)return a[0];let{readable:b,writable:c}=new TransformStream,d=a[0].pipeTo(c,{preventClose:!0}),e=1;for(;e<a.length-1;e++){let b=a[e];d=d.then(()=>b.pipeTo(c,{preventClose:!0}))}let f=a[e];return(d=d.then(()=>f.pipeTo(c))).catch(l),b}function o(a){return new ReadableStream({start(b){b.enqueue(m.encode(a)),b.close()}})}function p(a){return new ReadableStream({start(b){b.enqueue(a),b.close()}})}async function q(a){let b=a.getReader(),c=[];for(;;){let{done:a,value:d}=await b.read();if(a)break;c.push(d)}return Buffer.concat(c)}async function r(a,b){let c=new TextDecoder("utf-8",{fatal:!0}),d="";for await(let e of a){if(null==b?void 0:b.aborted)return d;d+=c.decode(e,{stream:!0})}return d+c.decode()}function s(){let a,b=[],c=0;return new TransformStream({transform(d,e){b.push(d),c+=d.byteLength,(d=>{if(a)return;let e=new f.DetachedPromise;a=e,(0,g.scheduleImmediate)(()=>{try{let a=new Uint8Array(c),e=0;for(let c=0;c<b.length;c++){let d=b[c];a.set(d,e),e+=d.byteLength}b.length=0,c=0,d.enqueue(a)}catch{}finally{a=void 0,e.resolve()}})})(e)},flush(){if(a)return a.promise}})}function t(a,b){let c=!1;return new TransformStream({transform(d,e){if(a&&!c){c=!0;let a=new TextDecoder("utf-8",{fatal:!0}).decode(d,{stream:!0}),f=(0,k.insertBuildIdComment)(a,b);e.enqueue(m.encode(f));return}e.enqueue(d)}})}function u({ReactDOMServer:a,element:b,streamOptions:c}){return(0,d.getTracer)().trace(e.AppRenderSpan.renderToReadableStream,async()=>a.renderToReadableStream(b,c))}function v(a){let b=-1,c=!1;return new TransformStream({async transform(d,e){let f=-1,g=-1;if(b++,c)return void e.enqueue(d);let j=0;if(-1===f){if(-1===(f=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.META.ICON_MARK)))return void e.enqueue(d);47===d[f+(j=h.ENCODED_TAGS.META.ICON_MARK.length)]?j+=2:j++}if(0===b){if(g=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.CLOSED.HEAD),-1!==f){if(f<g){let a=new Uint8Array(d.length-j);a.set(d.subarray(0,f)),a.set(d.subarray(f+j),f),d=a}else{let b=await a(),c=m.encode(b),e=c.length,g=new Uint8Array(d.length-j+e);g.set(d.subarray(0,f)),g.set(c,f),g.set(d.subarray(f+j),f+e),d=g}c=!0}}else{let b=await a(),e=m.encode(b),g=e.length,h=new Uint8Array(d.length-j+g);h.set(d.subarray(0,f)),h.set(e,f),h.set(d.subarray(f+j),f+g),d=h,c=!0}e.enqueue(d)}})}function w(a){let b=!1,c=!1;return new TransformStream({async transform(d,e){c=!0;let f=await a();if(b){if(f){let a=m.encode(f);e.enqueue(a)}e.enqueue(d)}else{let a=(0,i.indexOfUint8Array)(d,h.ENCODED_TAGS.CLOSED.HEAD);if(-1!==a){if(f){let b=m.encode(f),c=new Uint8Array(d.length+b.length);c.set(d.slice(0,a)),c.set(b,a),c.set(d.slice(a),a+b.length),e.enqueue(c)}else e.enqueue(d);b=!0}else f&&e.enqueue(m.encode(f)),e.enqueue(d),b=!0}},async flush(b){if(c){let c=await a();c&&b.enqueue(m.encode(c))}}})}function x(a,b){let c=!1,d=null,e=!1;function f(a){return d||(d=h(a)),d}async function h(d){let f=a.getReader();b&&await (0,g.atLeastOneTask)();try{for(;;){let{done:a,value:h}=await f.read();if(a){e=!0;return}b||c||await (0,g.atLeastOneTask)(),d.enqueue(h)}}catch(a){d.error(a)}}return new TransformStream({start(a){b||f(a)},transform(a,c){c.enqueue(a),b&&f(c)},flush(a){if(c=!0,!e)return f(a)}})}let y="</body></html>";function z(){let a=!1;return new TransformStream({transform(b,c){if(a)return c.enqueue(b);let d=(0,i.indexOfUint8Array)(b,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML);if(d>-1){if(a=!0,b.length===h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length)return;let e=b.slice(0,d);if(c.enqueue(e),b.length>h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length+d){let a=b.slice(d+h.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);c.enqueue(a)}}else c.enqueue(b)},flush(a){a.enqueue(h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function A(){let a=!1,b=!1;return new TransformStream({async transform(c,d){!a&&(0,i.indexOfUint8Array)(c,h.ENCODED_TAGS.OPENING.HTML)>-1&&(a=!0),!b&&(0,i.indexOfUint8Array)(c,h.ENCODED_TAGS.OPENING.BODY)>-1&&(b=!0),d.enqueue(c)},flush(c){let d=[];a||d.push("html"),b||d.push("body"),d.length&&c.enqueue(m.encode(`<html id="__next_error__">
16
+ <template
17
+ data-next-error-message="Missing ${d.map(a=>`<${a}>`).join(d.length>1?" and ":"")} tags in the root layout.
18
+ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
19
+ data-next-error-digest="${j.MISSING_ROOT_TAGS_ERROR}"
20
+ data-next-error-stack=""
21
+ ></template>
22
+ `))}})}async function B(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,isBuildTimePrerendering:e,buildId:h,getServerInsertedHTML:i,getServerInsertedMetadata:j,validateRootLayout:k}){let l,n,o=b?b.split(y,1)[0]:null;d&&await a.allReady;var p=[s(),t(e,h),v(j),null!=o&&o.length>0?(n=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!n){n=!0;let a=new f.DetachedPromise;l=a,(0,g.scheduleImmediate)(()=>{try{b.enqueue(m.encode(o))}catch{}finally{l=void 0,a.resolve()}})}},flush(a){if(l)return l.promise;n||a.enqueue(m.encode(o))}})):null,c?x(c,!0):null,k?A():null,z(),w(i)];let q=a;for(let a of p)a&&(q=q.pipeThrough(a));return q}async function C(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c}){return a.pipeThrough(s()).pipeThrough(new TransformStream({transform(a,b){(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.BODY)||(0,i.isEquivalentUint8Arrays)(a,h.ENCODED_TAGS.CLOSED.HTML)||(a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.BODY),a=(0,i.removeFromUint8Array)(a,h.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}})).pipeThrough(w(b)).pipeThrough(v(c))}async function D(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,isBuildTimePrerendering:e,buildId:f}){return a.pipeThrough(s()).pipeThrough(t(e,f)).pipeThrough(w(c)).pipeThrough(v(d)).pipeThrough(x(b,!0)).pipeThrough(z())}async function E(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e}){return a.pipeThrough(s()).pipeThrough(w(d)).pipeThrough(v(e)).pipeThrough(x(c,b)).pipeThrough(z())}function F(){return o(y)}},48723:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{normalizeAppPath:function(){return f},normalizeRscURL:function(){return h},selectAppPageEntry:function(){return g}});let d=c(51506),e=c(96896);function f(a){return(0,d.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,e.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:a+"/"+b,""))}function g(a,b,c){let d;for(let e of(void 0===c&&(c=a=>f(a).replace(/%5F/g,"_")),b))c(e)===a&&(void 0===d||d<e)&&(d=e);if(void 0===d)throw Error("Invariant: no direct app page entry found for "+a);return d}function h(a){return a.replace(/\.rsc($|\?)/,"$1")}},49290:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"InvariantError",{enumerable:!0,get:function(){return c}});class c extends Error{constructor(a,b){super("Invariant: "+(a.endsWith(".")?a:a+".")+" This is a bug in Next.js.",b),this.name="InvariantError"}}},49671:(a,b)=>{"use strict";function c(a,b,c){if(a)for(let f of(c&&(c=c.toLowerCase()),a)){var d,e;if(b===(null==(d=f.domain)?void 0:d.split(":",1)[0].toLowerCase())||c===f.defaultLocale.toLowerCase()||(null==(e=f.locales)?void 0:e.some(a=>a.toLowerCase()===c)))return f}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"detectDomainLocale",{enumerable:!0,get:function(){return c}})},49754:(a,b,c)=>{"use strict";a.exports=c(10846)},51356:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return p}});let d=function(a,b){return Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})}),a}(c(60905),b),e=c(49290),f=c(40440),g=c(11949),h=c(310),i=c(37422),j=c(15965);function k(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}let l=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),n="__ttl_sentinel__";function o(a,b){return`${a}\0${b??n}`}class p{constructor({minimalMode:a,route:b,maxSize:c=m,ttl:d=l}){if(this.batcher=f.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:i.scheduleOnNextTick}),this.revalidateBatcher=f.Batcher.create({schedulerFn:i.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,!b)throw new e.InvariantError("Response cache requires a source route");this.route=b,this.minimal_mode=a,this.maxSize=c,this.ttl=d,this.cache=new g.LRUCache(c,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===n?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=o(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,j.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,j.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,h.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:f=!1,isRoutePPREnabled:g=!1,isPrefetch:i=!1,waitUntil:k,invocationID:l}=c,m=await this.batcher.batch({key:a,isOnDemandRevalidate:e},(c,h)=>{let j=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:f,isRoutePPREnabled:g,isPrefetch:i,invocationID:l},h);return k&&k(j),j});return(0,j.toResponseCacheEntry)(m)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,this.getCacheContext(c.isRoutePPREnabled,c.isFallback)))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=o(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,h){try{let i=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!i)return null;let k=await (0,j.fromResponseCacheEntry)({...i,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=o(a,h);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,...this.getCacheContext(c,d)});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{...this.getCacheContext(c,d),cacheControl:{revalidate:e,expire:g}})}throw e}}getCacheContext(a,b){if("image"===this.route)return{kind:d.IncrementalCacheKind.IMAGE,isFallback:!1};let c=(0,j.routeKindToIncrementalCacheKind)(this.route.kind);if(c===d.IncrementalCacheKind.IMAGE)throw new e.InvariantError("Images must use the image response cache");return{route:this.route,kind:c,isRoutePPREnabled:a,isFallback:b}}}},51506:(a,b)=>{"use strict";function c(a){return a.startsWith("/")?a:"/"+a}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ensureLeadingSlash",{enumerable:!0,get:function(){return c}})},53290:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizeLocalePath",{enumerable:!0,get:function(){return d}});let c=new WeakMap;function d(a,b){let d;if(!b)return{pathname:a};let e=c.get(b);e||(e=b.map(a=>a.toLowerCase()),c.set(b,e));let f=a.split("/",2);if(!f[1])return{pathname:a};let g=f[1].toLowerCase(),h=e.indexOf(g);return h<0?{pathname:a}:(d=b[h],{pathname:a=a.slice(d.length+1)||"/",detectedLocale:d})}},53549:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{AppPathnameNormalizer:function(){return h},DevAppPathnameNormalizer:function(){return i}});let d=c(48723),e=c(81520),f=c(13601),g=c(40408);class h extends e.Normalizers{constructor(){super([(0,f.wrapNormalizerFn)(d.normalizeAppPath),new g.UnderscoreNormalizer])}normalize(a){return super.normalize(a)}}class i extends e.Normalizers{constructor(a){super([a,new h])}normalize(a){return super.normalize(a)}}},53630:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(75916);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:"/"+c}},54290:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NodeNextRequest:function(){return h},NodeNextResponse:function(){return i}});let e=c(57328),f=c(39326),g=c(67304);class h extends g.BaseNextRequest{static #a=d=f.NEXT_REQUEST_META;constructor(a){var b;super(a.method.toUpperCase(),a.url,a),this._req=a,this.headers=this._req.headers,this.fetchMetrics=null==(b=this._req)?void 0:b.fetchMetrics,this[d]=this._req[f.NEXT_REQUEST_META]||{},this.streaming=!1}get originalRequest(){return this._req[f.NEXT_REQUEST_META]=this[f.NEXT_REQUEST_META],this._req.url=this.url,this._req.cookies=this.cookies,this._req}set originalRequest(a){this._req=a}stream(){if(this.streaming)throw Object.defineProperty(Error("Invariant: NodeNextRequest.stream() can only be called once"),"__NEXT_ERROR_CODE",{value:"E467",enumerable:!1,configurable:!0});return this.streaming=!0,new ReadableStream({start:a=>{this._req.on("data",b=>{a.enqueue(new Uint8Array(b))}),this._req.on("end",()=>{a.close()}),this._req.on("error",b=>{a.error(b)})}})}}class i extends g.BaseNextResponse{get originalResponse(){return e.SYMBOL_CLEARED_COOKIES in this&&(this._res[e.SYMBOL_CLEARED_COOKIES]=this[e.SYMBOL_CLEARED_COOKIES]),this._res}constructor(a){super(a),this._res=a,this.textBody=void 0}get sent(){return this._res.finished||this._res.headersSent}get statusCode(){return this._res.statusCode}set statusCode(a){this._res.statusCode=a}get statusMessage(){return this._res.statusMessage}set statusMessage(a){this._res.statusMessage=a}setHeader(a,b){return this._res.setHeader(a,b),this}removeHeader(a){return this._res.removeHeader(a),this}getHeaderValues(a){let b=this._res.getHeader(a);if(void 0!==b)return(Array.isArray(b)?b:[b]).map(a=>a.toString())}hasHeader(a){return this._res.hasHeader(a)}getHeader(a){let b=this.getHeaderValues(a);return Array.isArray(b)?b.join(","):void 0}getHeaders(){return this._res.getHeaders()}appendHeader(a,b){let c=this.getHeaderValues(a)??[];return c.includes(b)||this._res.setHeader(a,[...c,b]),this}body(a){return this.textBody=a,this}send(){this._res.end(this.textBody)}onClose(a){this.originalResponse.on("close",a)}}},54293:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isDynamicRoute",{enumerable:!0,get:function(){return g}});let d=c(3896),e=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,f=/\/\[[^/]+\](?=\/|$)/;function g(a,b){return(void 0===b&&(b=!0),(0,d.isInterceptionRouteAppPath)(a)&&(a=(0,d.extractInterceptionRouteInformation)(a).interceptedRoute),b)?f.test(a):e.test(a)}},55088:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isAbortError:function(){return i},pipeToNodeResponse:function(){return j}});let d=c(85328),e=c(63269),f=c(32324),g=c(38928),h=c(45581);function i(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===d.ResponseAbortedName}async function j(a,b,c){try{let{errored:i,destroyed:j}=b;if(i||j)return;let k=(0,d.createAbortController)(b),l=function(a,b){let c=!1,d=new e.DetachedPromise;function i(){d.resolve()}a.on("drain",i),a.once("close",()=>{a.off("drain",i),d.resolve()});let j=new e.DetachedPromise;return a.once("finish",()=>{j.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,h.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,f.getTracer)().trace(g.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new e.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),j.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(i(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},57328:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ApiError:function(){return r},COOKIE_NAME_PRERENDER_BYPASS:function(){return l},COOKIE_NAME_PRERENDER_DATA:function(){return m},RESPONSE_LIMIT_DEFAULT:function(){return n},SYMBOL_CLEARED_COOKIES:function(){return p},SYMBOL_PREVIEW_DATA:function(){return o},checkIsOnDemandRevalidate:function(){return k},clearPreviewData:function(){return q},redirect:function(){return j},sendError:function(){return s},sendStatusCode:function(){return i},setLazyProp:function(){return t},wrapApiHandler:function(){return h}});let d=c(67675),e=c(63446),f=c(32324),g=c(38928);function h(a,b){return(...c)=>((0,f.getTracer)().setRootSpanAttribute("next.route",a),(0,f.getTracer)().trace(g.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function i(a,b){return a.statusCode=b,a}function j(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function k(a,b){let c=d.HeadersAdapter.from(a.headers);return{isOnDemandRevalidate:c.get(e.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(e.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let l="__prerender_bypass",m="__next_preview_data",n=4194304,o=Symbol(m),p=Symbol(l);function q(a,b={}){if(p in a)return a;let{serialize:d}=c(94878),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(l,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(m,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,p,{value:!0,enumerable:!1}),a}class r extends Error{constructor(a,b){super(b),this.statusCode=a}}function s(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function t({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},58583:(a,b,c)=>{"use strict";function d(a){return function(){let{cookie:b}=a;if(!b)return{};let{parse:d}=c(94878);return d(Array.isArray(b)?b.join("; "):b)}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCookieParser",{enumerable:!0,get:function(){return d}})},60905:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{CachedRouteKind:function(){return c},IncrementalCacheKind:function(){return d}});var c=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.REDIRECT="REDIRECT",a.IMAGE="IMAGE",a}({}),d=function(a){return a.APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.IMAGE="IMAGE",a}({})},63036:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReflectAdapter",{enumerable:!0,get:function(){return c}});class c{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},63269:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},63446:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ACTION_SUFFIX:function(){return o},APP_DIR_ALIAS:function(){return I},CACHE_ONE_YEAR:function(){return A},DOT_NEXT_ALIAS:function(){return G},ESLINT_DEFAULT_DIRS:function(){return aa},GSP_NO_RETURNED_VALUE:function(){return W},GSSP_COMPONENT_MEMBER_ERROR:function(){return Z},GSSP_NO_RETURNED_VALUE:function(){return X},HTML_CONTENT_TYPE_HEADER:function(){return d},INFINITE_CACHE:function(){return B},INSTRUMENTATION_HOOK_FILENAME:function(){return E},JSON_CONTENT_TYPE_HEADER:function(){return e},MATCHED_PATH_HEADER:function(){return h},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return D},NEXT_BODY_SUFFIX:function(){return r},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return z},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return t},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return u},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return y},NEXT_CACHE_TAGS_HEADER:function(){return s},NEXT_CACHE_TAG_MAX_ITEMS:function(){return w},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return p},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return g},NEXT_META_SUFFIX:function(){return q},NEXT_QUERY_PARAM_PREFIX:function(){return f},NEXT_RESUME_HEADER:function(){return v},NON_STANDARD_NODE_ENV:function(){return $},PAGES_DIR_ALIAS:function(){return F},PRERENDER_REVALIDATE_HEADER:function(){return i},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return j},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Q},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return P},RSC_ACTION_ENCRYPTION_ALIAS:function(){return O},RSC_ACTION_PROXY_ALIAS:function(){return L},RSC_ACTION_VALIDATE_ALIAS:function(){return K},RSC_CACHE_WRAPPER_ALIAS:function(){return M},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return N},RSC_MOD_REF_PROXY_ALIAS:function(){return J},RSC_PREFETCH_SUFFIX:function(){return k},RSC_SEGMENTS_DIR_SUFFIX:function(){return l},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return n},SERVER_PROPS_EXPORT_ERROR:function(){return V},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return S},SERVER_PROPS_SSG_CONFLICT:function(){return T},SERVER_RUNTIME:function(){return ab},SSG_FALLBACK_EXPORT_ERROR:function(){return _},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return R},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return U},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return c},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return Y},WEBPACK_LAYERS:function(){return ad},WEBPACK_RESOURCE_QUERIES:function(){return ae}});let c="text/plain",d="text/html; charset=utf-8",e="application/json; charset=utf-8",f="nxtP",g="nxtI",h="x-matched-path",i="x-prerender-revalidate",j="x-prerender-revalidate-if-generated",k=".prefetch.rsc",l=".segments",m=".segment.rsc",n=".rsc",o=".action",p=".json",q=".meta",r=".body",s="x-next-cache-tags",t="x-next-revalidated-tags",u="x-next-revalidate-tag-token",v="next-resume",w=128,x=256,y=1024,z="_N_T_",A=31536e3,B=0xfffffffe,C="middleware",D=`(?:src/)?${C}`,E="instrumentation",F="private-next-pages",G="private-dot-next",H="private-next-root-dir",I="private-next-app-dir",J="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",K="private-next-rsc-action-validate",L="private-next-rsc-server-reference",M="private-next-rsc-cache-wrapper",N="private-next-rsc-track-dynamic-import",O="private-next-rsc-action-encryption",P="private-next-rsc-action-client-wrapper",Q="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",R="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",S="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",T="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",U="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",V="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",W="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",X="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",Y="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",Z="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",$='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',_="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",aa=["app","pages","components","lib","src"],ab={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ac={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"},ad={...ac,GROUP:{builtinReact:[ac.reactServerComponents,ac.actionBrowser],serverOnly:[ac.reactServerComponents,ac.actionBrowser,ac.instrument,ac.middleware],neutralTarget:[ac.apiNode,ac.apiEdge],clientOnly:[ac.serverSideRendering,ac.appPagesBrowser],bundled:[ac.reactServerComponents,ac.actionBrowser,ac.serverSideRendering,ac.appPagesBrowser,ac.shared,ac.instrument,ac.middleware],appPages:[ac.reactServerComponents,ac.serverSideRendering,ac.appPagesBrowser,ac.actionBrowser]}},ae={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},67304:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{BaseNextRequest:function(){return f},BaseNextResponse:function(){return g}});let d=c(91203),e=c(58583);class f{constructor(a,b,c){this.method=a,this.url=b,this.body=c}get cookies(){return this._cookies?this._cookies:this._cookies=(0,e.getCookieParser)(this.headers)()}}class g{constructor(a){this.destination=a}redirect(a,b){return this.setHeader("Location",a),this.statusCode=b,b===d.RedirectStatusCode.PermanentRedirect&&this.setHeader("Refresh",`0;url=${a}`),this}}},67675:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{HeadersAdapter:function(){return f},ReadonlyHeadersError:function(){return e}});let d=c(63036);class e extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new e}}class f extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,e){if("symbol"==typeof c)return d.ReflectAdapter.get(b,c,e);let f=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===f);if(void 0!==g)return d.ReflectAdapter.get(b,g,e)},set(b,c,e,f){if("symbol"==typeof c)return d.ReflectAdapter.set(b,c,e,f);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return d.ReflectAdapter.set(b,h??c,e,f)},has(b,c){if("symbol"==typeof c)return d.ReflectAdapter.has(b,c);let e=c.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0!==f&&d.ReflectAdapter.has(b,f)},deleteProperty(b,c){if("symbol"==typeof c)return d.ReflectAdapter.deleteProperty(b,c);let e=c.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0===f||d.ReflectAdapter.deleteProperty(b,f)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return e.callable;default:return d.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new f(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},68688:a=>{(()=>{"use strict";var b={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{constructor(){}static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}let b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"<failed to generate stacktrace>";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{constructor(){}static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){let b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a<c.length;a++)this[c[a].n]=function(a){return function(...b){if(console){let c=console[a];if("function"!=typeof c&&(c=console.log),"function"==typeof c)return c.apply(console,b)}}}(c[a].c)}}b.DiagConsoleLogger=d},912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return a<d.DiagLogLevel.NONE?a=d.DiagLogLevel.NONE:a>d.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,function(a){a[a.NONE=0]="NONE",a[a.ERROR=30]="ERROR",a[a.WARN=50]="WARN",a[a.INFO=60]="INFO",a[a.DEBUG=70]="DEBUG",a[a.VERBOSE=80]="VERBOSE",a[a.ALL=9999]="ALL"}(b.DiagLogLevel||(b.DiagLogLevel={}))},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,function(a){a[a.INT=0]="INT",a[a.DOUBLE=1]="DOUBLE"}(b.ValueType||(b.ValueType={}))},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{constructor(){}createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,function(a){a[a.NOT_RECORD=0]="NOT_RECORD",a[a.RECORD=1]="RECORD",a[a.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(b.SamplingDecision||(b.SamplingDecision={}))},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,function(a){a[a.INTERNAL=0]="INTERNAL",a[a.SERVER=1]="SERVER",a[a.CLIENT=2]="CLIENT",a[a.PRODUCER=3]="PRODUCER",a[a.CONSUMER=4]="CONSUMER"}(b.SpanKind||(b.SpanKind={}))},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,function(a){a[a.UNSET=0]="UNSET",a[a.OK=1]="OK",a[a.ERROR=2]="ERROR"}(b.SpanStatusCode||(b.SpanStatusCode={}))},475:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,function(a){a[a.NONE=0]="NONE",a[a.SAMPLED=1]="SAMPLED"}(b.TraceFlags||(b.TraceFlags={}))},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a].call(f.exports,f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0}),e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var a=d(369);Object.defineProperty(e,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return a.baggageEntryMetadataFromString}});var b=d(780);Object.defineProperty(e,"createContextKey",{enumerable:!0,get:function(){return b.createContextKey}}),Object.defineProperty(e,"ROOT_CONTEXT",{enumerable:!0,get:function(){return b.ROOT_CONTEXT}});var c=d(972);Object.defineProperty(e,"DiagConsoleLogger",{enumerable:!0,get:function(){return c.DiagConsoleLogger}});var f=d(957);Object.defineProperty(e,"DiagLogLevel",{enumerable:!0,get:function(){return f.DiagLogLevel}});var g=d(102);Object.defineProperty(e,"createNoopMeter",{enumerable:!0,get:function(){return g.createNoopMeter}});var h=d(901);Object.defineProperty(e,"ValueType",{enumerable:!0,get:function(){return h.ValueType}});var i=d(194);Object.defineProperty(e,"defaultTextMapGetter",{enumerable:!0,get:function(){return i.defaultTextMapGetter}}),Object.defineProperty(e,"defaultTextMapSetter",{enumerable:!0,get:function(){return i.defaultTextMapSetter}});var j=d(125);Object.defineProperty(e,"ProxyTracer",{enumerable:!0,get:function(){return j.ProxyTracer}});var k=d(846);Object.defineProperty(e,"ProxyTracerProvider",{enumerable:!0,get:function(){return k.ProxyTracerProvider}});var l=d(996);Object.defineProperty(e,"SamplingDecision",{enumerable:!0,get:function(){return l.SamplingDecision}});var m=d(357);Object.defineProperty(e,"SpanKind",{enumerable:!0,get:function(){return m.SpanKind}});var n=d(847);Object.defineProperty(e,"SpanStatusCode",{enumerable:!0,get:function(){return n.SpanStatusCode}});var o=d(475);Object.defineProperty(e,"TraceFlags",{enumerable:!0,get:function(){return o.TraceFlags}});var p=d(98);Object.defineProperty(e,"createTraceState",{enumerable:!0,get:function(){return p.createTraceState}});var q=d(139);Object.defineProperty(e,"isSpanContextValid",{enumerable:!0,get:function(){return q.isSpanContextValid}}),Object.defineProperty(e,"isValidTraceId",{enumerable:!0,get:function(){return q.isValidTraceId}}),Object.defineProperty(e,"isValidSpanId",{enumerable:!0,get:function(){return q.isValidSpanId}});var r=d(476);Object.defineProperty(e,"INVALID_SPANID",{enumerable:!0,get:function(){return r.INVALID_SPANID}}),Object.defineProperty(e,"INVALID_TRACEID",{enumerable:!0,get:function(){return r.INVALID_TRACEID}}),Object.defineProperty(e,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return r.INVALID_SPAN_CONTEXT}});let s=d(67);Object.defineProperty(e,"context",{enumerable:!0,get:function(){return s.context}});let t=d(506);Object.defineProperty(e,"diag",{enumerable:!0,get:function(){return t.diag}});let u=d(886);Object.defineProperty(e,"metrics",{enumerable:!0,get:function(){return u.metrics}});let v=d(939);Object.defineProperty(e,"propagation",{enumerable:!0,get:function(){return v.propagation}});let w=d(845);Object.defineProperty(e,"trace",{enumerable:!0,get:function(){return w.trace}}),e.default={context:s.context,diag:t.diag,metrics:u.metrics,propagation:v.propagation,trace:w.trace}})(),a.exports=e})()},69168:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DynamicServerError:function(){return d},isDynamicServerError:function(){return e}});let c="DYNAMIC_SERVER_USAGE";class d extends Error{constructor(a){super("Dynamic server usage: "+a),this.description=a,this.digest=c}}function e(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===c}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},69332:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},71237:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isNodeNextRequest:function(){return e},isNodeNextResponse:function(){return f},isWebNextRequest:function(){return c},isWebNextResponse:function(){return d}});let c=a=>!1,d=a=>!1,e=a=>!0,f=a=>!0},72496:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={};function g(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function h(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function i(a){if(!a)return;let[[b,c],...d]=h(a),{domain:e,expires:f,httponly:g,maxage:i,path:l,samesite:m,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...m&&{sameSite:j.includes(q=(q=m).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:k.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}((a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})})(f,{RequestCookies:()=>l,ResponseCookies:()=>m,parseCookie:()=>h,parseSetCookie:()=>i,stringifyCookie:()=>g}),a.exports=((a,f,g,h)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let i of d(f))e.call(a,i)||i===g||b(a,i,{get:()=>f[i],enumerable:!(h=c(f,i))||h.enumerable});return a})(b({},"__esModule",{value:!0}),f);var j=["strict","lax","none"],k=["low","medium","high"],l=class{constructor(a){this._parsed=new Map,this._headers=a;let b=a.get("cookie");if(b)for(let[a,c]of h(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>g(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>g(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},m=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;let e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(let a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){let b=i(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=g(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(g).join("; ")}}},74515:(a,b,c)=>{"use strict";a.exports=c(49754).vendored["react-rsc"].React},75916:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(69332);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},76381:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupeFetch",{enumerable:!0,get:function(){return h}});let d=function(a,b){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=g(b);if(c&&c.has(a))return c.get(a);var d={__proto__:null},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var h=e?Object.getOwnPropertyDescriptor(a,f):null;h&&(h.get||h.set)?Object.defineProperty(d,f,h):d[f]=a[f]}return d.default=a,c&&c.set(a,d),d}(c(74515)),e=c(7916),f=c(49290);function g(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(g=function(a){return a?c:b})(a)}function h(a){let b=d.cache(a=>[]);return function(c,d){let g,h;if(d&&d.signal)return a(c,d);if("string"!=typeof c||d){let b="string"==typeof c||c instanceof URL?new Request(c,d):c;if("GET"!==b.method&&"HEAD"!==b.method||b.keepalive)return a(c,d);h=JSON.stringify([b.method,Array.from(b.headers.entries()),b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity]),g=b.url}else h='["GET",[],null,"follow",null,null,null,null]',g=c;let i=b(g);for(let a=0,b=i.length;a<b;a+=1){let[b,c]=i[a];if(b===h)return c.then(()=>{let b=i[a][2];if(!b)throw Object.defineProperty(new f.InvariantError("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[c,d]=(0,e.cloneResponse)(b);return i[a][2]=d,c})}let j=a(c,d),k=[h,j,null];return i.push(k),j.then(a=>{let[b,c]=(0,e.cloneResponse)(a);return k[2]=c,b})}}},78001:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(49671),e=c(89340),f=c(40163),g=c(7705),h=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function i(a,b){return new URL(String(a).replace(h,"localhost"),b&&String(b).replace(h,"localhost"))}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}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 k(String(this),this[j].options)}}},81520:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Normalizers",{enumerable:!0,get:function(){return c}});class c{constructor(a=[]){this.normalizers=a}push(a){this.normalizers.push(a)}normalize(a){return this.normalizers.reduce((a,b)=>b.normalize(a),a)}}},82831:(a,b)=>{"use strict";function c(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===d}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isHangingPromiseRejectionError:function(){return c},makeDevtoolsIOAwarePromise:function(){return i},makeHangingPromise:function(){return g}});let d="HANGING_PROMISE_REJECTION";class e extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=d}}let f=new WeakMap;function g(a,b,c){if(a.aborted)return Promise.reject(new e(b,c));{let d=new Promise((d,g)=>{let h=g.bind(null,new e(b,c)),i=f.get(a);if(i)i.push(h);else{let b=[h];f.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return d.catch(h),d}}function h(){}function i(a){return new Promise(b=>{setTimeout(()=>{b(a)},0)})}},84226:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{describeHasCheckingStringProperty:function(){return e},describeStringPropertyAccess:function(){return d},wellKnownProperties:function(){return f}});let c=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function d(a,b){return c.test(b)?"`"+a+"."+b+"`":"`"+a+"["+JSON.stringify(b)+"]`"}function e(a,b){let c=JSON.stringify(b);return"`Reflect.has("+a+", "+c+")`, `"+c+" in "+a+"`, or similar"}let f=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"])},85328:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{NextRequestAdapter:function(){return l},ResponseAborted:function(){return i},ResponseAbortedName:function(){return h},createAbortController:function(){return j},signalFromNodeResponse:function(){return k}});let d=c(39326),e=c(17679),f=c(87129),g=c(71237),h="ResponseAborted";class i extends Error{constructor(...a){super(...a),this.name=h}}function j(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new i)}),b}function k(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new i);let{signal:d}=j(a);return d}class l{static fromBaseNextRequest(a,b){if((0,g.isNodeNextRequest)(a))return l.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,g=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(g=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,d.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new f.NextRequest(c,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:g}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new f.NextRequest(a.url,{method:a.method,headers:(0,e.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},86969:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(8289),e=c(75916);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,"/"+b.toLowerCase()))?a:(0,d.addPathPrefix)(a,"/"+b)}},87129:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{INTERNALS:function(){return h},NextRequest:function(){return i}});let d=c(78001),e=c(17679),f=c(28536),g=c(33675),h=Symbol("internal request");class i extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,e.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let f=new d.NextURL(c,{headers:(0,e.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[h]={cookies:new g.RequestCookies(this.headers),nextUrl:f,url:f.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[h].cookies}get nextUrl(){return this[h].nextUrl}get page(){throw new f.RemovedPageError}get ua(){throw new f.RemovedUAError}get url(){return this[h].url}}},89340:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"formatNextPathnameInfo",{enumerable:!0,get:function(){return h}});let d=c(95626),e=c(8289),f=c(14876),g=c(86969);function h(a){let b=(0,g.addLocale)(a.pathname,a.locale,a.buildId?void 0:a.defaultLocale,a.ignorePrefix);return(a.buildId||!a.trailingSlash)&&(b=(0,d.removeTrailingSlash)(b)),a.buildId&&(b=(0,f.addPathSuffix)((0,e.addPathPrefix)(b,"/_next/data/"+a.buildId),"/"===a.pathname?"index.json":".json")),b=(0,e.addPathPrefix)(b,a.basePath),!a.buildId&&a.trailingSlash?b.endsWith("/")?b:(0,f.addPathSuffix)(b,"/"):(0,d.removeTrailingSlash)(b)}},91203:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RedirectStatusCode",{enumerable:!0,get:function(){return c}});var c=function(a){return a[a.SeeOther=303]="SeeOther",a[a.TemporaryRedirect=307]="TemporaryRedirect",a[a.PermanentRedirect=308]="PermanentRedirect",a}({});("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},94878:a=>{(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b={};(()=>{b.parse=function(b,c){if("string"!=typeof b)throw TypeError("argument str must be a string");for(var e={},f=b.split(d),g=(c||{}).decode||a,h=0;h<f.length;h++){var i=f[h],j=i.indexOf("=");if(!(j<0)){var k=i.substr(0,j).trim(),l=i.substr(++j,i.length).trim();'"'==l[0]&&(l=l.slice(1,-1)),void 0==e[k]&&(e[k]=function(a,b){try{return b(a)}catch(b){return a}}(l,g))}}return e},b.serialize=function(a,b,d){var f=d||{},g=f.encode||c;if("function"!=typeof g)throw TypeError("option encode is invalid");if(!e.test(a))throw TypeError("argument name is invalid");var h=g(b);if(h&&!e.test(h))throw TypeError("argument val is invalid");var i=a+"="+h;if(null!=f.maxAge){var j=f.maxAge-0;if(isNaN(j)||!isFinite(j))throw TypeError("option maxAge is invalid");i+="; Max-Age="+Math.floor(j)}if(f.domain){if(!e.test(f.domain))throw TypeError("option domain is invalid");i+="; Domain="+f.domain}if(f.path){if(!e.test(f.path))throw TypeError("option path is invalid");i+="; Path="+f.path}if(f.expires){if("function"!=typeof f.expires.toUTCString)throw TypeError("option expires is invalid");i+="; Expires="+f.expires.toUTCString()}if(f.httpOnly&&(i+="; HttpOnly"),f.secure&&(i+="; Secure"),f.sameSite)switch("string"==typeof f.sameSite?f.sameSite.toLowerCase():f.sameSite){case!0:case"strict":i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"none":i+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}return i};var a=decodeURIComponent,c=encodeURIComponent,d=/; */,e=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/})(),a.exports=b})()},95626:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},96896:(a,b)=>{"use strict";function c(a){return"("===a[0]&&a.endsWith(")")}function d(a){return a.startsWith("@")&&"@children"!==a}function e(a,b){if(a.includes(f)){let a=JSON.stringify(b);return"{}"!==a?f+"?"+a:f}return a}Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{DEFAULT_SEGMENT_KEY:function(){return g},PAGE_SEGMENT_KEY:function(){return f},addSearchParamsIfPageSegment:function(){return e},isGroupSegment:function(){return c},isParallelRouteSegment:function(){return d}});let f="__PAGE__",g="__DEFAULT__"},97091:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getSortedRouteObjects:function(){return e},getSortedRoutes:function(){return d}});class c{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a){void 0===a&&(a="/");let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(""+a+b+"/")).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(a+"["+this.slugName+"]/")),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot define a route with the same specificity as a optional catch-all route ("'+b+'" and "'+b+"[[..."+this.optionalRestSlugName+']]").'),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(a+"[..."+this.restSlugName+"]/")),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(a+"[[..."+this.optionalRestSlugName+"]]/")),c}_insert(a,b,d){if(0===a.length){this.placeholder=!1;return}if(d)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let e=a[0];if(e.startsWith("[")&&e.endsWith("]")){let c=e.slice(1,-1),g=!1;if(c.startsWith("[")&&c.endsWith("]")&&(c=c.slice(1,-1),g=!0),c.startsWith("…"))throw Object.defineProperty(Error("Detected a three-dot character ('…') at ('"+c+"'). Did you mean ('...')?"),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(c.startsWith("...")&&(c=c.substring(3),d=!0),c.startsWith("[")||c.endsWith("]"))throw Object.defineProperty(Error("Segment names may not start or end with extra brackets ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(c.startsWith("."))throw Object.defineProperty(Error("Segment names may not start with erroneous periods ('"+c+"')."),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error("You cannot use different slug names for the same dynamic path ('"+a+"' !== '"+c+"')."),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error('You cannot have the same slug name "'+c+'" repeat within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===e.replace(/\W/g,""))throw Object.defineProperty(Error('You cannot have the slug names "'+a+'" and "'+c+'" differ only by non-word symbols within a single dynamic path'),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(d)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+a[0]+'" ).'),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,c),this.optionalRestSlugName=c,e="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,c),this.restSlugName=c,e="[...]"}else{if(g)throw Object.defineProperty(Error('Optional route parameters are not yet supported ("'+a[0]+'").'),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,c),this.slugName=c,e="[]"}}this.children.has(e)||this.children.set(e,new c),this.children.get(e)._insert(a.slice(1),b,d)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function d(a){let b=new c;return a.forEach(a=>b.insert(a)),b.smoosh()}function e(a,b){let c={},e=[];for(let d=0;d<a.length;d++){let f=b(a[d]);c[f]=d,e[d]=f}return d(e).map(b=>a[c[b]])}},98036:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePagePath",{enumerable:!0,get:function(){return g}});let d=c(51506),e=c(8801),f=c(40980);function g(a){let b=/^\/index(\/|$)/.test(a)&&!(0,e.isDynamicRoute)(a)?"/index"+a:"/"===a?"/index":(0,d.ensureLeadingSlash)(a);{let{posix:a}=c(33873),d=a.normalize(b);if(d!==b)throw new f.NormalizeError("Requested and resolved page mismatch: "+b+" "+d)}return b}}};
@@ -1 +1 @@
1
- "use strict";exports.id=4134,exports.ids=[4134],exports.modules={23787:(a,b,c)=>{c.d(b,{M:()=>f});var d=c(33873),e=c(21820);function f(){let a=process.env.AF360_HOME;return"string"==typeof a&&a.length>0&&d.isAbsolute(a)?a:d.join(e.homedir(),".af360")}},28606:(a,b,c)=>{c.d(b,{fV:()=>i,nI:()=>g,q6:()=>k,NK:()=>j});var d=c(73024),e=c(76760);let f={terms:"TERMS.md",privacy:"PRIVACY.md"},g="af360 could not read this document from its own files. This is a fault in this copy of af360, not something you did. Nothing has been agreed to.";function h(a){let b=f[a];if(!b)return g;try{return(0,d.readFileSync)(e.join(function(){let a=process.env.AF360_LEGAL;return a||e.join(void 0,"..","docs","legal")}(),b),"utf8").replace(/\r\n/g,"\n").trimEnd()}catch{return g}}let i=[{id:"terms",version:1,title:"Terms of Use",body:h("terms")},{id:"privacy",version:1,title:"Privacy Policy",body:h("privacy")}];function j(){return i.every(a=>a.body!==g)}function k(a){return i.find(b=>b.id===a)}},71011:(a,b,c)=>{c.d(b,{G5:()=>u,Si:()=>z,Z9:()=>w,aj:()=>r,cT:()=>y,eQ:()=>k,i4:()=>l,ql:()=>x,rH:()=>i,yF:()=>j});var d=c(29021),e=c(33873),f=c.n(e),g=c(55511),h=c(23787);let i=["projects","urls","discoveries"];function j(){return(0,h.M)()}function k(){return f().join((0,h.M)(),"config.json")}function l(){return{roots:[],urls:[],siteGroups:[],services:[],manualExpiries:[],pins:[],ignored:[],dismissed:[],views:{},collapsed:{},scanIntervalHours:24,snoozes:{},rules:{exclude:[],muted:[]},declinedSites:[],declinedDates:[],connectedClients:[]}}let m=[f().join(process.cwd(),"af360.config.json"),f().join(process.cwd(),"rubban.config.json")];async function n(){try{await d.promises.access(k());return}catch{}for(let a of m)try{await d.promises.access(a),await d.promises.mkdir(j(),{recursive:!0}),await d.promises.copyFile(a,k()),await d.promises.unlink(a).catch(()=>{});return}catch{}}async function o(a){let b=!1;for(let c=0;c<a.roots.length;c++){let d=a.roots[c];if(!/(^|[\\/])rubban([\\/]|$)/i.test(d)||await p(d))continue;let e=d.replace(/(^|[\\/])rubban(?=[\\/]|$)/gi,"$1af360");if(!await p(e))continue;let f=d.toLowerCase(),g=e.toLowerCase();for(let b of(a.roots[c]=e,a.pins=a.pins.map(a=>a.startsWith(f)?g+a.slice(f.length):a),a.ignored))b.id.startsWith(f)&&(b.id=g+b.id.slice(f.length));a.snoozes=Object.fromEntries(Object.entries(a.snoozes).map(([a,b])=>[a.startsWith(f)?g+a.slice(f.length):a,b])),b=!0}return b}async function p(a){try{return await d.promises.access(a),!0}catch{return!1}}let q=globalThis;class r extends Error{constructor(a){super(`config unreadable: ${a}`),this.name="ConfigUnreadableError",this.fault={path:k(),reason:a}}}let s=a=>new Promise(b=>setTimeout(b,a));async function t(){for(let a=0;a<4;a++)try{return await d.promises.readFile(k(),"utf8")}catch(b){if(b?.code==="ENOENT")return null;await s(40*(a+1))}throw Error("config temporarily unreadable")}async function u(){let a,b;await n();try{a=await t()}catch{let a=q.__af360LastCfg;if(a)return{status:"ok",config:a,fault:null,recovered:{path:k(),reason:"af360 couldn't open it"}};return v("af360 couldn't open it")}if(null===a)return q.__af360LastCfg=null,{status:"missing",config:null,fault:null};try{b=JSON.parse(a)}catch{let a=q.__af360LastCfg;if(a)return{status:"ok",config:a,fault:null,recovered:{path:k(),reason:"the contents aren't readable as settings"}};return v("the contents aren't readable as settings")}{let a={roots:Array.isArray(b.roots)?b.roots.filter(a=>"string"==typeof a):[],urls:Array.isArray(b.urls)?b.urls.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.url).map(a=>({id:a.id,url:a.url,label:"string"==typeof a.label?a.label:void 0,group:"string"==typeof a.group&&a.group?a.group:void 0})):[],siteGroups:Array.isArray(b.siteGroups)?b.siteGroups.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.name&&a.name.trim()).map(a=>({id:a.id,name:a.name})):[],services:Array.isArray(b.services)?b.services.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.service&&"string"==typeof a.label&&"string"==typeof a.endpoint&&("status"===a.endpointKind||"home"===a.endpointKind)).map(a=>({id:a.id,service:a.service,label:a.label,endpoint:a.endpoint,endpointKind:a.endpointKind})):[],manualExpiries:Array.isArray(b.manualExpiries)?b.manualExpiries.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.date).map(a=>({id:a.id,name:a.name,date:a.date,note:"string"==typeof a.note?a.note:void 0,cost:!0===a.cost||void 0,done:!0===a.done||void 0})):[],pins:Array.isArray(b.pins)?b.pins.filter(a=>"string"==typeof a):[],ignored:Array.isArray(b.ignored)?b.ignored.filter(a=>a&&"string"==typeof a.id&&("project"===a.kind||"url"===a.kind)&&"string"==typeof a.label):[],dismissed:Array.isArray(b.dismissed)?b.dismissed.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.sentence&&""!==a.sentence&&"number"==typeof a.ts).map(a=>({id:a.id,sentence:a.sentence,ts:a.ts,resurface:a.resurface&&"string"==typeof a.resurface.current?{current:a.resurface.current}:void 0})):[],snoozes:b.snoozes&&"object"==typeof b.snoozes&&!Array.isArray(b.snoozes)?Object.fromEntries(Object.entries(b.snoozes).filter(([,a])=>"string"==typeof a)):{},updateCheck:"boolean"==typeof b.updateCheck?b.updateCheck:void 0,domainLookup:!0===b.domainLookup||void 0,standingWatch:!0===b.standingWatch||void 0,lang:"ar"===b.lang||"en"===b.lang?b.lang:void 0,views:{projects:b.views?.projects==="cards"||b.views?.projects==="rows"?b.views.projects:void 0,urls:b.views?.urls==="cards"||b.views?.urls==="rows"?b.views.urls:void 0,discoveries:b.views?.discoveries==="cards"||b.views?.discoveries==="rows"?b.views.discoveries:void 0},collapsed:Object.fromEntries(["projects","sites","discoveries","ignored","drawer"].filter(a=>"boolean"==typeof b.collapsed?.[a]).map(a=>[a,b.collapsed[a]])),declinedSites:Array.isArray(b.declinedSites)?b.declinedSites.filter(a=>a&&"string"==typeof a.host&&"string"==typeof a.citation&&"number"==typeof a.ts):[],declinedDates:Array.isArray(b.declinedDates)?b.declinedDates.filter(a=>a&&"string"==typeof a.host&&"string"==typeof a.citation&&"number"==typeof a.ts):[],connectedClients:Array.isArray(b.connectedClients)?b.connectedClients.filter(a=>"string"==typeof a):[],connectors:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b=a.github;if(b&&"object"==typeof b&&"string"==typeof b.token&&b.token)return{github:{token:b.token,login:"string"==typeof b.login?b.login:void 0,repoNames:Array.isArray(b.repoNames)?b.repoNames.filter(a=>"string"==typeof a):void 0,expiresAt:"string"==typeof b.expiresAt&&Number.isFinite(Date.parse(b.expiresAt))?b.expiresAt:void 0,refreshToken:"string"==typeof b.refreshToken&&b.refreshToken?b.refreshToken:void 0,refreshExpiresAt:"string"==typeof b.refreshExpiresAt&&Number.isFinite(Date.parse(b.refreshExpiresAt))?b.refreshExpiresAt:void 0,installationId:"number"==typeof b.installationId?b.installationId:void 0,installationCount:"number"==typeof b.installationCount?b.installationCount:void 0,connectedAt:"number"==typeof b.connectedAt?b.connectedAt:void 0,reposKnown:"boolean"==typeof b.reposKnown?b.reposKnown:void 0}}}(b.connectors),consent:function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"number"!=typeof a.acceptedAt||!Number.isFinite(a.acceptedAt))return;let b=a=>a&&"object"==typeof a&&"number"==typeof a.version&&Number.isFinite(a.version)&&"string"==typeof a.hash&&a.hash?{version:a.version,hash:a.hash}:void 0,c=b(a.terms),d=b(a.privacy);if(c&&d)return{acceptedAt:a.acceptedAt,terms:c,privacy:d}}(b.consent),rules:{exclude:Array.isArray(b.rules?.exclude)?b.rules.exclude.filter(a=>"string"==typeof a):[],muted:Array.isArray(b.rules?.muted)?b.rules.muted.filter(a=>"string"==typeof a):[]},pulse:b.pulse&&"string"==typeof b.pulse.week&&"number"==typeof b.pulse.ts&&"string"==typeof b.pulse.text?{week:b.pulse.week,ts:b.pulse.ts,text:b.pulse.text}:void 0,scanIntervalHours:"number"==typeof b.scanIntervalHours&&b.scanIntervalHours>=1?Math.min(24,b.scanIntervalHours):24};return await o(a)&&await x(a),q.__af360LastCfg=a,{status:"ok",config:a,fault:null}}}function v(a){return{status:"unreadable",config:null,fault:{path:k(),reason:a}}}async function w(){let a=await u();if("unreadable"===a.status)throw new r(a.fault.reason);return a.config}async function x(a){await d.promises.mkdir(j(),{recursive:!0});let b=f().join(j(),`.config.${process.pid}.${(0,g.randomUUID)().slice(0,8)}.tmp`);await d.promises.writeFile(b,JSON.stringify(a,null,2)+"\n","utf8"),await (async()=>{let a=JSON.parse(await d.promises.readFile(k(),"utf8"));delete a.connectors,delete a.guardianEmail,await d.promises.writeFile(f().join((0,h.M)(),"config.1.json"),JSON.stringify(a,null,2)+"\n","utf8")})().catch(()=>{});try{await d.promises.rename(b,k())}catch(a){throw await d.promises.unlink(b).catch(()=>{}),a}q.__af360LastCfg=a}function y(a){if(!a)return null;let{connectors:b,...c}=a,d={...c};return b?.github?.token&&(d.connectors={github:{connected:!0}}),d}function z(){return(0,g.randomUUID)().slice(0,8)}},94134:(a,b,c)=>{c.d(b,{NL:()=>j,$F:()=>i,hb:()=>l,CD:()=>k});var d=c(10641),e=c(28606),f=c(77598);function g(){let a={};for(let c of e.fV){var b;a[c.id]={version:c.version,hash:(b=c.body,(0,f.createHash)("sha256").update(b,"utf8").digest("hex"))}}return a}var h=c(71011);function i(){return g()}async function j(){let a=await (0,h.G5)();if("unreadable"===a.status)return{accepted:!1,reason:"unreadable",stale:[]};if("missing"===a.status)return{accepted:!1,reason:"never",stale:e.fV.map(a=>a.id)};let b=a.config.consent,c=function(a){if(!a)return e.fV.map(a=>a.id);let b={terms:a.terms,privacy:a.privacy};return e.fV.filter(a=>(b[a.id]?.version??-1)!==a.version).map(a=>a.id)}(b);return b?c.length?{accepted:!1,reason:"changed",stale:c}:{accepted:!0,record:b}:{accepted:!1,reason:"never",stale:c}}async function k(){let a=await j();if(a.accepted||"unreadable"===a.reason)return null;let b=!1===a.accepted&&"changed"===a.reason;return d.NextResponse.json({ok:!1,consent:"required",changed:b,message:b?"af360's Terms of Use or Privacy Policy have changed. af360 asks you to read them again before it looks at anything.":"af360 has not been given permission to look at this machine yet."},{status:403})}async function l(){let a=await (0,h.G5)();if("unreadable"===a.status)throw new h.aj(a.fault.reason);let b="ok"===a.status?a.config:(0,h.i4)(),c=function(a=Date.now()){let b=g();return{acceptedAt:a,terms:b.terms,privacy:b.privacy}}();return b.consent=c,await (0,h.ql)(b),c}}};
1
+ "use strict";exports.id=4134,exports.ids=[4134],exports.modules={23787:(a,b,c)=>{c.d(b,{M:()=>f});var d=c(33873),e=c(21820);function f(){let a=process.env.AF360_HOME;return"string"==typeof a&&a.length>0&&d.isAbsolute(a)?a:d.join(e.homedir(),".af360")}},28606:(a,b,c)=>{c.d(b,{fV:()=>i,nI:()=>g,q6:()=>k,NK:()=>j});var d=c(73024),e=c(76760);let f={terms:"TERMS.md",privacy:"PRIVACY.md"},g="af360 could not read this document from its own files. This is a fault in this copy of af360, not something you did. Nothing has been agreed to.";function h(a){let b=f[a];if(!b)return g;try{return(0,d.readFileSync)(e.join(function(){let a=process.env.AF360_LEGAL;return a||e.join(void 0,"..","docs","legal")}(),b),"utf8").replace(/\r\n/g,"\n").trimEnd()}catch{return g}}let i=[{id:"terms",version:1,title:"Terms of Use",body:h("terms")},{id:"privacy",version:2,title:"Privacy Policy",body:h("privacy")}];function j(){return i.every(a=>a.body!==g)}function k(a){return i.find(b=>b.id===a)}},71011:(a,b,c)=>{c.d(b,{G5:()=>u,Si:()=>z,Z9:()=>w,aj:()=>r,cT:()=>y,eQ:()=>k,i4:()=>l,ql:()=>x,rH:()=>i,yF:()=>j});var d=c(29021),e=c(33873),f=c.n(e),g=c(55511),h=c(23787);let i=["projects","urls","discoveries"];function j(){return(0,h.M)()}function k(){return f().join((0,h.M)(),"config.json")}function l(){return{roots:[],urls:[],siteGroups:[],services:[],manualExpiries:[],pins:[],ignored:[],dismissed:[],views:{},collapsed:{},scanIntervalHours:24,snoozes:{},rules:{exclude:[],muted:[]},declinedSites:[],declinedDates:[],connectedClients:[]}}let m=[f().join(process.cwd(),"af360.config.json"),f().join(process.cwd(),"rubban.config.json")];async function n(){try{await d.promises.access(k());return}catch{}for(let a of m)try{await d.promises.access(a),await d.promises.mkdir(j(),{recursive:!0}),await d.promises.copyFile(a,k()),await d.promises.unlink(a).catch(()=>{});return}catch{}}async function o(a){let b=!1;for(let c=0;c<a.roots.length;c++){let d=a.roots[c];if(!/(^|[\\/])rubban([\\/]|$)/i.test(d)||await p(d))continue;let e=d.replace(/(^|[\\/])rubban(?=[\\/]|$)/gi,"$1af360");if(!await p(e))continue;let f=d.toLowerCase(),g=e.toLowerCase();for(let b of(a.roots[c]=e,a.pins=a.pins.map(a=>a.startsWith(f)?g+a.slice(f.length):a),a.ignored))b.id.startsWith(f)&&(b.id=g+b.id.slice(f.length));a.snoozes=Object.fromEntries(Object.entries(a.snoozes).map(([a,b])=>[a.startsWith(f)?g+a.slice(f.length):a,b])),b=!0}return b}async function p(a){try{return await d.promises.access(a),!0}catch{return!1}}let q=globalThis;class r extends Error{constructor(a){super(`config unreadable: ${a}`),this.name="ConfigUnreadableError",this.fault={path:k(),reason:a}}}let s=a=>new Promise(b=>setTimeout(b,a));async function t(){for(let a=0;a<4;a++)try{return await d.promises.readFile(k(),"utf8")}catch(b){if(b?.code==="ENOENT")return null;await s(40*(a+1))}throw Error("config temporarily unreadable")}async function u(){let a,b;await n();try{a=await t()}catch{let a=q.__af360LastCfg;if(a)return{status:"ok",config:a,fault:null,recovered:{path:k(),reason:"af360 couldn't open it"}};return v("af360 couldn't open it")}if(null===a)return q.__af360LastCfg=null,{status:"missing",config:null,fault:null};try{b=JSON.parse(a)}catch{let a=q.__af360LastCfg;if(a)return{status:"ok",config:a,fault:null,recovered:{path:k(),reason:"the contents aren't readable as settings"}};return v("the contents aren't readable as settings")}{let a={roots:Array.isArray(b.roots)?b.roots.filter(a=>"string"==typeof a):[],urls:Array.isArray(b.urls)?b.urls.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.url).map(a=>({id:a.id,url:a.url,label:"string"==typeof a.label?a.label:void 0,group:"string"==typeof a.group&&a.group?a.group:void 0,role:"dependency"===a.role||"site"===a.role?a.role:void 0})):[],siteGroups:Array.isArray(b.siteGroups)?b.siteGroups.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.name&&a.name.trim()).map(a=>({id:a.id,name:a.name})):[],services:Array.isArray(b.services)?b.services.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.service&&"string"==typeof a.label&&"string"==typeof a.endpoint&&("status"===a.endpointKind||"home"===a.endpointKind)).map(a=>({id:a.id,service:a.service,label:a.label,endpoint:a.endpoint,endpointKind:a.endpointKind})):[],manualExpiries:Array.isArray(b.manualExpiries)?b.manualExpiries.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.date).map(a=>({id:a.id,name:a.name,date:a.date,note:"string"==typeof a.note?a.note:void 0,cost:!0===a.cost||void 0,done:!0===a.done||void 0})):[],pins:Array.isArray(b.pins)?b.pins.filter(a=>"string"==typeof a):[],ignored:Array.isArray(b.ignored)?b.ignored.filter(a=>a&&"string"==typeof a.id&&("project"===a.kind||"url"===a.kind)&&"string"==typeof a.label):[],dismissed:Array.isArray(b.dismissed)?b.dismissed.filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.sentence&&""!==a.sentence&&"number"==typeof a.ts).map(a=>({id:a.id,sentence:a.sentence,ts:a.ts,resurface:a.resurface&&"string"==typeof a.resurface.current?{current:a.resurface.current}:void 0})):[],snoozes:b.snoozes&&"object"==typeof b.snoozes&&!Array.isArray(b.snoozes)?Object.fromEntries(Object.entries(b.snoozes).filter(([,a])=>"string"==typeof a)):{},updateCheck:"boolean"==typeof b.updateCheck?b.updateCheck:void 0,domainLookup:!0===b.domainLookup||void 0,standingWatch:!0===b.standingWatch||void 0,lang:"ar"===b.lang||"en"===b.lang?b.lang:void 0,views:{projects:b.views?.projects==="cards"||b.views?.projects==="rows"?b.views.projects:void 0,urls:b.views?.urls==="cards"||b.views?.urls==="rows"?b.views.urls:void 0,discoveries:b.views?.discoveries==="cards"||b.views?.discoveries==="rows"?b.views.discoveries:void 0},collapsed:Object.fromEntries(["projects","sites","discoveries","ignored","drawer"].filter(a=>"boolean"==typeof b.collapsed?.[a]).map(a=>[a,b.collapsed[a]])),declinedSites:Array.isArray(b.declinedSites)?b.declinedSites.filter(a=>a&&"string"==typeof a.host&&"string"==typeof a.citation&&"number"==typeof a.ts):[],declinedDates:Array.isArray(b.declinedDates)?b.declinedDates.filter(a=>a&&"string"==typeof a.host&&"string"==typeof a.citation&&"number"==typeof a.ts):[],connectedClients:Array.isArray(b.connectedClients)?b.connectedClients.filter(a=>"string"==typeof a):[],connectors:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b=a.github;if(b&&"object"==typeof b&&"string"==typeof b.token&&b.token)return{github:{token:b.token,login:"string"==typeof b.login?b.login:void 0,repoNames:Array.isArray(b.repoNames)?b.repoNames.filter(a=>"string"==typeof a):void 0,expiresAt:"string"==typeof b.expiresAt&&Number.isFinite(Date.parse(b.expiresAt))?b.expiresAt:void 0,refreshToken:"string"==typeof b.refreshToken&&b.refreshToken?b.refreshToken:void 0,refreshExpiresAt:"string"==typeof b.refreshExpiresAt&&Number.isFinite(Date.parse(b.refreshExpiresAt))?b.refreshExpiresAt:void 0,installationId:"number"==typeof b.installationId?b.installationId:void 0,installationCount:"number"==typeof b.installationCount?b.installationCount:void 0,connectedAt:"number"==typeof b.connectedAt?b.connectedAt:void 0,reposKnown:"boolean"==typeof b.reposKnown?b.reposKnown:void 0}}}(b.connectors),consent:function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"number"!=typeof a.acceptedAt||!Number.isFinite(a.acceptedAt))return;let b=a=>a&&"object"==typeof a&&"number"==typeof a.version&&Number.isFinite(a.version)&&"string"==typeof a.hash&&a.hash?{version:a.version,hash:a.hash}:void 0,c=b(a.terms),d=b(a.privacy);if(!c||!d)return;let e="number"==typeof a.firstAcceptedAt&&Number.isFinite(a.firstAcceptedAt)&&a.firstAcceptedAt>0?a.firstAcceptedAt:void 0;return{acceptedAt:a.acceptedAt,terms:c,privacy:d,...void 0!==e?{firstAcceptedAt:e}:{}}}(b.consent),rules:{exclude:Array.isArray(b.rules?.exclude)?b.rules.exclude.filter(a=>"string"==typeof a):[],muted:Array.isArray(b.rules?.muted)?b.rules.muted.filter(a=>"string"==typeof a):[]},pulse:b.pulse&&"string"==typeof b.pulse.week&&"number"==typeof b.pulse.ts&&"string"==typeof b.pulse.text?{week:b.pulse.week,ts:b.pulse.ts,text:b.pulse.text}:void 0,scanIntervalHours:"number"==typeof b.scanIntervalHours&&b.scanIntervalHours>=1?Math.min(24,b.scanIntervalHours):24};return await o(a)&&await x(a),q.__af360LastCfg=a,{status:"ok",config:a,fault:null}}}function v(a){return{status:"unreadable",config:null,fault:{path:k(),reason:a}}}async function w(){let a=await u();if("unreadable"===a.status)throw new r(a.fault.reason);return a.config}async function x(a){await d.promises.mkdir(j(),{recursive:!0});let b=f().join(j(),`.config.${process.pid}.${(0,g.randomUUID)().slice(0,8)}.tmp`);await d.promises.writeFile(b,JSON.stringify(a,null,2)+"\n","utf8"),await (async()=>{let a=JSON.parse(await d.promises.readFile(k(),"utf8"));delete a.connectors,delete a.guardianEmail,await d.promises.writeFile(f().join((0,h.M)(),"config.1.json"),JSON.stringify(a,null,2)+"\n","utf8")})().catch(()=>{});try{await d.promises.rename(b,k())}catch(a){throw await d.promises.unlink(b).catch(()=>{}),a}q.__af360LastCfg=a}function y(a){if(!a)return null;let{connectors:b,...c}=a,d={...c};return b?.github?.token&&(d.connectors={github:{connected:!0}}),d}function z(){return(0,g.randomUUID)().slice(0,8)}},94134:(a,b,c)=>{c.d(b,{NL:()=>j,$F:()=>i,hb:()=>l,CD:()=>k});var d=c(10641),e=c(28606),f=c(77598);function g(){let a={};for(let c of e.fV){var b;a[c.id]={version:c.version,hash:(b=c.body,(0,f.createHash)("sha256").update(b,"utf8").digest("hex"))}}return a}var h=c(71011);function i(){return g()}async function j(){let a=await (0,h.G5)();if("unreadable"===a.status)return{accepted:!1,reason:"unreadable",stale:[]};if("missing"===a.status)return{accepted:!1,reason:"never",stale:e.fV.map(a=>a.id)};let b=a.config.consent,c=function(a){if(!a)return e.fV.map(a=>a.id);let b={terms:a.terms,privacy:a.privacy};return e.fV.filter(a=>(b[a.id]?.version??-1)!==a.version).map(a=>a.id)}(b);return b?c.length?{accepted:!1,reason:"changed",stale:c}:{accepted:!0,record:b}:{accepted:!1,reason:"never",stale:c}}async function k(){let a=await j();if(a.accepted||"unreadable"===a.reason)return null;let b=!1===a.accepted&&"changed"===a.reason;return d.NextResponse.json({ok:!1,consent:"required",changed:b,message:b?"af360's Terms of Use or Privacy Policy have changed. af360 asks you to read them again before it looks at anything.":"af360 has not been given permission to look at this machine yet."},{status:403})}async function l(){let a=await (0,h.G5)();if("unreadable"===a.status)throw new h.aj(a.fault.reason);let b="ok"===a.status?a.config:(0,h.i4)(),c=function(a=Date.now()){let b=g();return{acceptedAt:a,terms:b.terms,privacy:b.privacy}}(),d=b.consent;return c.firstAcceptedAt=d?.firstAcceptedAt??d?.acceptedAt??c.acceptedAt,b.consent=c,await (0,h.ql)(b),c}}};