@farm.js/core 0.1.36 → 0.1.37

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 (234) hide show
  1. package/dist/{agent-mcp-BVExL8rZ.d.mts → agent-mcp-BC0bAGVF.d.mts} +1 -1
  2. package/dist/{agent-mcp-luzfXK-P.d.ts → agent-mcp-jyDHbQKe.d.ts} +1 -1
  3. package/dist/agent-runtime.cjs +3 -3
  4. package/dist/agent-runtime.d.mts +1 -1
  5. package/dist/agent-runtime.d.ts +1 -1
  6. package/dist/agent-runtime.mjs +2 -2
  7. package/dist/api/client.cjs +3 -3
  8. package/dist/api/client.mjs +2 -2
  9. package/dist/api/route-manager.cjs +6 -6
  10. package/dist/api/route-manager.d.mts +3 -3
  11. package/dist/api/route-manager.d.ts +3 -3
  12. package/dist/api/route-manager.mjs +5 -5
  13. package/dist/api/runtime.cjs +4 -4
  14. package/dist/api/runtime.d.mts +2 -2
  15. package/dist/api/runtime.d.ts +2 -2
  16. package/dist/api/runtime.mjs +3 -3
  17. package/dist/api.cjs +9 -8
  18. package/dist/api.d.mts +3 -3
  19. package/dist/api.d.ts +3 -3
  20. package/dist/api.mjs +8 -7
  21. package/dist/{app-Yfa2dsFy.d.ts → app-CKO3iN1c.d.ts} +3 -3
  22. package/dist/{app-BukwkFIu.d.mts → app-Cbkj9ufe.d.mts} +3 -3
  23. package/dist/app-markdown.cjs +5 -3
  24. package/dist/app-markdown.d.mts +3 -3
  25. package/dist/app-markdown.d.ts +3 -3
  26. package/dist/app-markdown.mjs +4 -2
  27. package/dist/{chunk-UVW64BCB.cjs → chunk-3A4KGQYI.cjs} +2 -2
  28. package/dist/{chunk-AO6RYU5N.cjs → chunk-3IP27TCG.cjs} +30 -22
  29. package/dist/{chunk-FDR64H6B.mjs → chunk-3KGDJLJK.mjs} +41 -2
  30. package/dist/{chunk-KXWRO25S.cjs → chunk-4GPOC4LN.cjs} +3 -3
  31. package/dist/{chunk-Z2HLU4IX.cjs → chunk-4GWRFP22.cjs} +23 -2
  32. package/dist/{chunk-276VJSM6.mjs → chunk-4P6ULFMD.mjs} +43 -30
  33. package/dist/{chunk-BPMATOP2.cjs → chunk-5BXGGEC7.cjs} +25 -20
  34. package/dist/{chunk-JNUWCDTF.cjs → chunk-5D2JIPLH.cjs} +2 -2
  35. package/dist/{chunk-AHGECQEW.mjs → chunk-666CKENS.mjs} +1 -1
  36. package/dist/{chunk-BO36SELV.cjs → chunk-6LGFV2CQ.cjs} +2 -2
  37. package/dist/{chunk-2YTDKNH3.cjs → chunk-6TJITR2B.cjs} +192 -120
  38. package/dist/{chunk-JZVADIOD.cjs → chunk-75X755YZ.cjs} +2 -2
  39. package/dist/{chunk-VQLJWDVW.cjs → chunk-7DWNJI73.cjs} +2 -2
  40. package/dist/{chunk-N2NAS2AM.cjs → chunk-7O5M4UKW.cjs} +2 -2
  41. package/dist/{chunk-BJPBQNIE.cjs → chunk-7SQ5SGYZ.cjs} +2 -2
  42. package/dist/{chunk-27ZWSI3W.cjs → chunk-ADOAUDQ6.cjs} +2 -2
  43. package/dist/{chunk-YKX5BK66.cjs → chunk-ATWHHSY2.cjs} +7 -7
  44. package/dist/{chunk-42NHY7HW.cjs → chunk-B5PFZLKV.cjs} +40 -9
  45. package/dist/{chunk-FNO7A7CM.cjs → chunk-BHY547NB.cjs} +34 -16
  46. package/dist/{chunk-4GLOOWKE.mjs → chunk-CQMVIOYP.mjs} +1 -1
  47. package/dist/{chunk-D2BB47NB.cjs → chunk-CVH2BXPY.cjs} +6 -6
  48. package/dist/{chunk-TKSCR644.cjs → chunk-D3C5LBQY.cjs} +2 -2
  49. package/dist/{chunk-PZNL3WEG.mjs → chunk-DMEPTZTI.mjs} +22 -11
  50. package/dist/{chunk-GQ3Z3IZI.cjs → chunk-EMMQ64QW.cjs} +18 -18
  51. package/dist/{chunk-OHLSEQ57.mjs → chunk-EXG5LD6B.mjs} +1 -1
  52. package/dist/{chunk-WZ77PUAM.mjs → chunk-FBOJ55OM.mjs} +1 -1
  53. package/dist/{chunk-OTC5BDGO.mjs → chunk-FGRYBX5X.mjs} +12 -7
  54. package/dist/{chunk-D227TIEN.cjs → chunk-FWE7LEQC.cjs} +13 -13
  55. package/dist/{chunk-3BU22U3M.cjs → chunk-G2TEB74S.cjs} +5 -2
  56. package/dist/{chunk-O6I6VWKK.mjs → chunk-HEVMCTSR.mjs} +1 -1
  57. package/dist/{chunk-W7LF2J2S.mjs → chunk-HMRSWN47.mjs} +1 -1
  58. package/dist/{chunk-JG6DJF5A.mjs → chunk-HZFM2LWQ.mjs} +22 -1
  59. package/dist/{chunk-35GKZR22.mjs → chunk-IAIYV4RZ.mjs} +1 -1
  60. package/dist/{chunk-F2SE2VDO.mjs → chunk-IHQIOZLC.mjs} +1 -1
  61. package/dist/{chunk-2NNMOPDN.mjs → chunk-J3ANCZKA.mjs} +4 -1
  62. package/dist/{chunk-C4SPBWFM.cjs → chunk-JEZO6VUR.cjs} +10 -1
  63. package/dist/{chunk-SC2WYWPF.mjs → chunk-JPNFPAZ4.mjs} +3 -3
  64. package/dist/{chunk-HOXTWRGB.mjs → chunk-K3SAEIM3.mjs} +5 -2
  65. package/dist/{chunk-35WV46VL.mjs → chunk-K4I4O5TS.mjs} +98 -26
  66. package/dist/{chunk-KN7K4VQN.mjs → chunk-KDTBF3UU.mjs} +1 -1
  67. package/dist/{chunk-QORUJDIV.mjs → chunk-KPFKMDM7.mjs} +2 -2
  68. package/dist/{chunk-YSCV4SJF.cjs → chunk-L5H2GSUC.cjs} +4 -4
  69. package/dist/{chunk-YDQZGSDS.mjs → chunk-LBDP3YT3.mjs} +1 -1
  70. package/dist/{chunk-LSZAVSGY.mjs → chunk-LBGILORX.mjs} +1 -1
  71. package/dist/{chunk-ADEA7PN3.cjs → chunk-LOFKRKO7.cjs} +2 -2
  72. package/dist/{chunk-ZWM5KGAA.cjs → chunk-LPFV45AY.cjs} +23 -20
  73. package/dist/{chunk-3KZS4SUS.mjs → chunk-MCIZVNOQ.mjs} +1 -1
  74. package/dist/{chunk-XCMCS4DA.mjs → chunk-ND2CWPOD.mjs} +2 -2
  75. package/dist/{chunk-S6VYG6XU.cjs → chunk-NDILNQ4L.cjs} +2 -2
  76. package/dist/{chunk-BPOF5U4N.mjs → chunk-NFMDCAOS.mjs} +10 -7
  77. package/dist/{chunk-UXFQ3UDA.cjs → chunk-NICDYKBS.cjs} +42 -3
  78. package/dist/{chunk-EZDQRNQ7.mjs → chunk-NNSAQX3U.mjs} +23 -5
  79. package/dist/{chunk-DZ5ZVB2K.cjs → chunk-NQ6QFZWD.cjs} +1 -1
  80. package/dist/{chunk-U4KT7QP3.cjs → chunk-OW67PDDS.cjs} +14 -1
  81. package/dist/{chunk-77GNHH2Z.cjs → chunk-PMQHMWZU.cjs} +3 -3
  82. package/dist/{chunk-NMHWYWDR.cjs → chunk-Q5FYSK45.cjs} +169 -156
  83. package/dist/{chunk-5SJWVY6R.mjs → chunk-QHSH7IH4.mjs} +9 -0
  84. package/dist/{chunk-EWET4D2Y.mjs → chunk-RRMVL6CJ.mjs} +3 -3
  85. package/dist/{chunk-IZY3V5XW.mjs → chunk-S3VWVTVA.mjs} +14 -1
  86. package/dist/{chunk-FFFW3OQ7.cjs → chunk-S6FJO323.cjs} +2 -2
  87. package/dist/chunk-SGBZPZUW.mjs +75 -0
  88. package/dist/{chunk-2ELDTQRN.mjs → chunk-TDNWPAVR.mjs} +1 -1
  89. package/dist/{chunk-IHNIDL6H.cjs → chunk-TO4GJ56K.cjs} +22 -11
  90. package/dist/{chunk-4WCZJQUO.mjs → chunk-TPLJVC7E.mjs} +37 -6
  91. package/dist/{chunk-NRSN7G7E.mjs → chunk-TW4GYDBJ.mjs} +1 -1
  92. package/dist/{chunk-FO427P6I.cjs → chunk-U6MPZ35Q.cjs} +10 -10
  93. package/dist/{chunk-CBJJH36A.cjs → chunk-UJZLSXUB.cjs} +3 -3
  94. package/dist/chunk-UXHS27O6.cjs +75 -0
  95. package/dist/{chunk-DQQOKWYA.cjs → chunk-VR4GD5I3.cjs} +3 -3
  96. package/dist/{chunk-T4OGRVNS.mjs → chunk-VXAWRDK7.mjs} +2 -2
  97. package/dist/{chunk-4NU4GGTC.cjs → chunk-W2YDNK66.cjs} +6 -3
  98. package/dist/{chunk-GQRWBCWK.mjs → chunk-WQ7T2263.mjs} +13 -5
  99. package/dist/chunk-WRPHYQVY.mjs +109 -0
  100. package/dist/chunk-WT4TGLXT.cjs +109 -0
  101. package/dist/{chunk-4E5AEDKY.mjs → chunk-XOPOIFTJ.mjs} +1 -1
  102. package/dist/{chunk-OO7GXVSR.mjs → chunk-YCKO6FRS.mjs} +1 -1
  103. package/dist/{chunk-MKYBIIAQ.mjs → chunk-Z5BEWYVO.mjs} +1 -1
  104. package/dist/{chunk-VILIPRS6.mjs → chunk-Z7LA7MHQ.mjs} +1 -1
  105. package/dist/{client-plugins-r1mOtSC1.d.ts → client-plugins-C8DjftDF.d.ts} +14 -0
  106. package/dist/{client-plugins-C3mK9Pol.d.mts → client-plugins-CV4eJ9De.d.mts} +14 -0
  107. package/dist/client-plugins.d.mts +1 -1
  108. package/dist/client-plugins.d.ts +1 -1
  109. package/dist/client.cjs +8 -8
  110. package/dist/client.d.mts +5 -5
  111. package/dist/client.d.ts +5 -5
  112. package/dist/client.mjs +7 -7
  113. package/dist/config.d.mts +1 -1
  114. package/dist/config.d.ts +1 -1
  115. package/dist/{devtools-JZJJY5CK.cjs → devtools-JXFQNWSH.cjs} +4 -4
  116. package/dist/{devtools-ERIKFEXX.mjs → devtools-KVOY2TCZ.mjs} +3 -3
  117. package/dist/docs.cjs +5 -5
  118. package/dist/docs.d.mts +2 -2
  119. package/dist/docs.d.ts +2 -2
  120. package/dist/docs.mjs +4 -4
  121. package/dist/headers.cjs +4 -4
  122. package/dist/headers.mjs +3 -3
  123. package/dist/i18n/client.cjs +11 -11
  124. package/dist/i18n/client.mjs +3 -3
  125. package/dist/index.cjs +42 -39
  126. package/dist/index.d.mts +14 -14
  127. package/dist/index.d.ts +14 -14
  128. package/dist/index.mjs +41 -38
  129. package/dist/integrations.cjs +3 -3
  130. package/dist/integrations.d.mts +1 -1
  131. package/dist/integrations.d.ts +1 -1
  132. package/dist/integrations.mjs +2 -2
  133. package/dist/internal/app-markdown-runtime.cjs +4 -2
  134. package/dist/internal/app-markdown-runtime.d.mts +19 -5
  135. package/dist/internal/app-markdown-runtime.d.ts +19 -5
  136. package/dist/internal/app-markdown-runtime.mjs +3 -1
  137. package/dist/internal/build-runtime.cjs +25 -23
  138. package/dist/internal/build-runtime.d.mts +3 -3
  139. package/dist/internal/build-runtime.d.ts +3 -3
  140. package/dist/internal/build-runtime.mjs +24 -22
  141. package/dist/internal/cli-runtime.cjs +8 -8
  142. package/dist/internal/cli-runtime.mjs +7 -7
  143. package/dist/internal/client-error-overlay.cjs +4 -4
  144. package/dist/internal/client-error-overlay.mjs +1 -1
  145. package/dist/internal/client-runtime.cjs +2 -2
  146. package/dist/internal/client-runtime.mjs +1 -1
  147. package/dist/internal/compression-runtime.d.mts +1 -1
  148. package/dist/internal/compression-runtime.d.ts +1 -1
  149. package/dist/internal/config-runtime.cjs +4 -4
  150. package/dist/internal/config-runtime.d.mts +2 -2
  151. package/dist/internal/config-runtime.d.ts +2 -2
  152. package/dist/internal/config-runtime.mjs +3 -3
  153. package/dist/internal/infra-analytics-runtime.cjs +5 -5
  154. package/dist/internal/infra-analytics-runtime.mjs +3 -3
  155. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  156. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  157. package/dist/internal/production-runtime.cjs +15 -50
  158. package/dist/internal/production-runtime.d.mts +8 -8
  159. package/dist/internal/production-runtime.d.ts +8 -8
  160. package/dist/internal/production-runtime.mjs +11 -46
  161. package/dist/markdown.d.mts +1 -1
  162. package/dist/markdown.d.ts +1 -1
  163. package/dist/middleware.cjs +8 -8
  164. package/dist/middleware.d.mts +6 -4
  165. package/dist/middleware.d.ts +6 -4
  166. package/dist/middleware.mjs +7 -7
  167. package/dist/navigation.cjs +7 -7
  168. package/dist/navigation.d.mts +4 -4
  169. package/dist/navigation.d.ts +4 -4
  170. package/dist/navigation.mjs +6 -6
  171. package/dist/plugin.cjs +19 -18
  172. package/dist/plugin.d.mts +1 -1
  173. package/dist/plugin.d.ts +1 -1
  174. package/dist/plugin.mjs +18 -17
  175. package/dist/{production-runtime-DPnsggY3.d.ts → production-runtime-C2kkrPVZ.d.ts} +1 -1
  176. package/dist/{production-runtime-CCeVZXst.d.mts → production-runtime-Du_FHb2-.d.mts} +1 -1
  177. package/dist/query/client.cjs +9 -9
  178. package/dist/query/client.mjs +4 -4
  179. package/dist/{render-plan-Cw4f5E_R.d.ts → render-plan-BnnPTpus.d.ts} +1 -1
  180. package/dist/{render-plan-BuGaPFe6.d.mts → render-plan-Cgx7v8tJ.d.mts} +1 -1
  181. package/dist/renderer-client.cjs +12 -12
  182. package/dist/renderer-client.d.mts +3 -3
  183. package/dist/renderer-client.d.ts +3 -3
  184. package/dist/renderer-client.mjs +4 -4
  185. package/dist/{request-Bkg-hERy.d.ts → request-BNWr7r5e.d.ts} +1 -1
  186. package/dist/{request-CsGARcAw.d.mts → request-sKayKcop.d.mts} +1 -1
  187. package/dist/request.cjs +3 -3
  188. package/dist/request.d.mts +2 -2
  189. package/dist/request.d.ts +2 -2
  190. package/dist/request.mjs +2 -2
  191. package/dist/{route-rendering-BUZMH_64.d.ts → route-rendering-Bx4Auw6Q.d.ts} +1 -1
  192. package/dist/{route-rendering-f11yh5dp.d.mts → route-rendering-DWFp3Yq4.d.mts} +1 -1
  193. package/dist/{router-Cp6yRE8A.d.mts → router-BK6K42Ij.d.mts} +1 -1
  194. package/dist/{router-B8CR9GbD.d.ts → router-DnW_2tQi.d.ts} +1 -1
  195. package/dist/routes.cjs +2 -2
  196. package/dist/routes.d.mts +1 -1
  197. package/dist/routes.d.ts +1 -1
  198. package/dist/routes.mjs +1 -1
  199. package/dist/{runtime-CQVsT330.d.ts → runtime-CA3Ei5k_.d.ts} +1 -1
  200. package/dist/{runtime-CAEv36S_.d.mts → runtime-DJDaCMd_.d.mts} +1 -1
  201. package/dist/server-fn.cjs +3 -3
  202. package/dist/server-fn.mjs +2 -2
  203. package/dist/server-plugins.cjs +5 -5
  204. package/dist/server-plugins.d.mts +2 -2
  205. package/dist/server-plugins.d.ts +2 -2
  206. package/dist/server-plugins.mjs +4 -4
  207. package/dist/server-query.cjs +4 -4
  208. package/dist/server-query.mjs +3 -3
  209. package/dist/server.cjs +45 -44
  210. package/dist/server.d.mts +7 -7
  211. package/dist/server.d.ts +7 -7
  212. package/dist/server.mjs +23 -22
  213. package/dist/{spa-router-DwbqGkGj.d.mts → spa-router-D6fUA4Rn.d.mts} +2 -2
  214. package/dist/{spa-router-BuciWGCZ.d.ts → spa-router-Mwbd7g2L.d.ts} +2 -2
  215. package/dist/testing.cjs +8 -8
  216. package/dist/testing.d.mts +1 -1
  217. package/dist/testing.d.ts +1 -1
  218. package/dist/testing.mjs +6 -6
  219. package/dist/theme/server.cjs +4 -4
  220. package/dist/theme/server.mjs +3 -3
  221. package/dist/{utils-CaoWKtYM.d.ts → utils-BwVcAfUR.d.ts} +1 -1
  222. package/dist/{utils-B9V0S_yL.d.mts → utils-p9Hs-jCc.d.mts} +1 -1
  223. package/dist/version.cjs +2 -2
  224. package/dist/version.mjs +1 -1
  225. package/dist/vite.cjs +19 -18
  226. package/dist/vite.d.mts +1 -1
  227. package/dist/vite.d.ts +1 -1
  228. package/dist/vite.mjs +18 -17
  229. package/package.json +1 -1
  230. package/types/middleware.d.ts +5 -1
  231. package/dist/chunk-FXEF4PPL.mjs +0 -47
  232. package/dist/chunk-XD32KALF.cjs +0 -47
  233. /package/dist/{chunk-SJNMVDDF.cjs → chunk-FUCSUGDM.cjs} +0 -0
  234. /package/dist/{chunk-UDNPLXW7.mjs → chunk-MYIZXDZA.mjs} +0 -0
@@ -1,15 +1,18 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
+ var _chunkUXHS27O6cjs = require('./chunk-UXHS27O6.cjs');
4
+
5
+
3
6
  var _chunk4PPEPOZZcjs = require('./chunk-4PPEPOZZ.cjs');
4
7
 
5
8
 
6
9
  var _chunkMQ3H6LT5cjs = require('./chunk-MQ3H6LT5.cjs');
7
10
 
8
11
 
9
- var _chunkFO427P6Icjs = require('./chunk-FO427P6I.cjs');
12
+ var _chunkU6MPZ35Qcjs = require('./chunk-U6MPZ35Q.cjs');
10
13
 
11
14
 
12
- var _chunkSJNMVDDFcjs = require('./chunk-SJNMVDDF.cjs');
15
+ var _chunkFUCSUGDMcjs = require('./chunk-FUCSUGDM.cjs');
13
16
 
14
17
 
15
18
  var _chunk2CQ74SP6cjs = require('./chunk-2CQ74SP6.cjs');
@@ -20,7 +23,7 @@ var _chunk2CQ74SP6cjs = require('./chunk-2CQ74SP6.cjs');
20
23
 
21
24
 
22
25
 
23
- var _chunkS6VYG6XUcjs = require('./chunk-S6VYG6XU.cjs');
26
+ var _chunkNDILNQ4Lcjs = require('./chunk-NDILNQ4L.cjs');
24
27
 
25
28
 
26
29
  var _chunk6V4TDWECcjs = require('./chunk-6V4TDWEC.cjs');
@@ -44,7 +47,7 @@ var _chunk5QIKR7RRcjs = require('./chunk-5QIKR7RR.cjs');
44
47
  var _chunkUQZ4AYTHcjs = require('./chunk-UQZ4AYTH.cjs');
45
48
 
46
49
 
47
- var _chunkUXFQ3UDAcjs = require('./chunk-UXFQ3UDA.cjs');
50
+ var _chunkNICDYKBScjs = require('./chunk-NICDYKBS.cjs');
48
51
 
49
52
 
50
53
 
@@ -65,6 +68,7 @@ function farmApiPlugin(options = {}) {
65
68
  let apiRoutesCache = /* @__PURE__ */ new Map();
66
69
  let apiRouterHandler = null;
67
70
  let projectRoot = process.cwd();
71
+ let devServer;
68
72
  let pluginMergedRoutes = null;
69
73
  const servedRoutes = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => _nullishCoalesce(pluginMergedRoutes, () => ( apiRoutesCache)), "servedRoutes");
70
74
  let routePlugins;
@@ -110,7 +114,7 @@ function farmApiPlugin(options = {}) {
110
114
  const existing = apiRoutesCache.get(routePath);
111
115
  const existingFile = _optionalChain([endpointSources, 'access', _ => _.get, 'call', _2 => _2(routePath), 'optionalAccess', _3 => _3.get, 'call', _4 => _4(normalizedMethod)]);
112
116
  if (existingFile) {
113
- throw new (0, _chunkFO427P6Icjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
117
+ throw new (0, _chunkU6MPZ35Qcjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
114
118
  }
115
119
  if (existing) {
116
120
  if (!existing.methods.includes(normalizedMethod)) {
@@ -186,11 +190,14 @@ function farmApiPlugin(options = {}) {
186
190
  const createRouter = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async () => {
187
191
  const plugins = options.plugins ? await (_nullishCoalesce(routePlugins, () => ( (routePlugins = Promise.resolve(options.plugins({ root: projectRoot })))))) : [];
188
192
  pluginMergedRoutes = plugins.length ? new Map(
189
- _chunkS6VYG6XUcjs.mergePluginAPIRoutes.call(void 0, [...apiRoutesCache.values()], plugins, void 0, {
193
+ _chunkNDILNQ4Lcjs.mergePluginAPIRoutes.call(void 0, [...apiRoutesCache.values()], plugins, void 0, {
190
194
  bodySizeLimit,
191
195
  // A plugin calling an app endpoint (an MCP tool, say) goes back through this server,
192
196
  // so the middleware that guards the endpoint's path runs for it.
193
- dispatch: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (request) => fetch(request, { redirect: "manual" }), "dispatch")
197
+ dispatch: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (request) => {
198
+ if (!devServer) throw new Error("The Farm API dev server is not running.");
199
+ return _chunkUXHS27O6cjs.createFarmDevServerDispatch.call(void 0, devServer)(request);
200
+ }, "dispatch")
194
201
  }).map((route) => [route.path, route])
195
202
  ) : null;
196
203
  const totalEndpoints = Array.from(servedRoutes().values()).reduce(
@@ -203,7 +210,7 @@ function farmApiPlugin(options = {}) {
203
210
  const url = new URL(request.url);
204
211
  const method = request.method.toUpperCase();
205
212
  const pathname = url.pathname;
206
- const match = _chunkS6VYG6XUcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath);
213
+ const match = _chunkNDILNQ4Lcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath);
207
214
  if (!match) {
208
215
  return new Response(JSON.stringify({ error: "Not Found" }), {
209
216
  status: 404,
@@ -211,18 +218,18 @@ function farmApiPlugin(options = {}) {
211
218
  });
212
219
  }
213
220
  const { route, params } = match;
214
- const endpoint = _chunkS6VYG6XUcjs.resolveAPIRouteEndpoint.call(void 0, route, method);
221
+ const endpoint = _chunkNDILNQ4Lcjs.resolveAPIRouteEndpoint.call(void 0, route, method);
215
222
  if (!endpoint) {
216
223
  return new Response(JSON.stringify({ error: "Method Not Allowed" }), {
217
224
  status: 405,
218
225
  headers: {
219
- Allow: _chunkS6VYG6XUcjs.getAllowedAPIRouteMethods.call(void 0, route).join(", "),
226
+ Allow: _chunkNDILNQ4Lcjs.getAllowedAPIRouteMethods.call(void 0, route).join(", "),
220
227
  "Content-Type": "application/json"
221
228
  }
222
229
  });
223
230
  }
224
231
  try {
225
- return await _chunkS6VYG6XUcjs.invokeAPIRouteEndpoint.call(void 0, endpoint, request, params, bodySizeLimit);
232
+ return await _chunkNDILNQ4Lcjs.invokeAPIRouteEndpoint.call(void 0, endpoint, request, params, bodySizeLimit);
226
233
  } catch (error) {
227
234
  return new Response(JSON.stringify({ error: error.message || "Internal Server Error" }), {
228
235
  status: 500,
@@ -238,6 +245,7 @@ function farmApiPlugin(options = {}) {
238
245
  enforce: "pre",
239
246
  configureServer(server) {
240
247
  projectRoot = server.config.root;
248
+ devServer = server;
241
249
  const discoverFileRoutes = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (apiDir) => {
242
250
  const fs = await import("fs");
243
251
  const path = await import("path");
@@ -270,7 +278,7 @@ function farmApiPlugin(options = {}) {
270
278
  const routeModule = await _chunkSHLXACIOcjs.loadFarmDevModule.call(void 0, server, filePath);
271
279
  const endpoints = {};
272
280
  const availableMethods = [];
273
- for (const method of _chunkS6VYG6XUcjs.API_ROUTE_METHODS) {
281
+ for (const method of _chunkNDILNQ4Lcjs.API_ROUTE_METHODS) {
274
282
  if (routeModule[method]) {
275
283
  availableMethods.push(method);
276
284
  endpoints[method] = routeModule[method];
@@ -283,7 +291,7 @@ function farmApiPlugin(options = {}) {
283
291
  log(`API route discovered: ${availableMethods.join(", ")} ${routePath}`);
284
292
  }
285
293
  } catch (e) {
286
- if (e instanceof _chunkFO427P6Icjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
294
+ if (e instanceof _chunkU6MPZ35Qcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
287
295
  log(`API route load failed at ${filePath}: ${e.message}`);
288
296
  }
289
297
  }
@@ -310,7 +318,7 @@ function farmApiPlugin(options = {}) {
310
318
  }
311
319
  }
312
320
  } catch (e) {
313
- if (e instanceof _chunkFO427P6Icjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
321
+ if (e instanceof _chunkU6MPZ35Qcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
314
322
  log(`Root routes.ts load failed: ${e.message}`);
315
323
  }
316
324
  break;
@@ -320,7 +328,7 @@ function farmApiPlugin(options = {}) {
320
328
  const discoverProgrammaticRoutes = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async () => {
321
329
  const path = await import("path");
322
330
  const srcRoot = path.join(server.config.root, srcDir);
323
- const routeFiles = _chunkSJNMVDDFcjs.findProgrammaticRouteFilesInDir.call(void 0, srcRoot);
331
+ const routeFiles = _chunkFUCSUGDMcjs.findProgrammaticRouteFilesInDir.call(void 0, srcRoot);
324
332
  if (routeFiles.length === 0) return;
325
333
  const { getProgrammaticRouteManifest } = await import("./routes.cjs");
326
334
  for (const routeFile of routeFiles) {
@@ -341,7 +349,7 @@ function farmApiPlugin(options = {}) {
341
349
  }
342
350
  }
343
351
  } catch (e) {
344
- if (e instanceof _chunkFO427P6Icjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
352
+ if (e instanceof _chunkU6MPZ35Qcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
345
353
  log(`Programmatic routes file load failed at ${routeFile}: ${e.message}`);
346
354
  }
347
355
  }
@@ -393,7 +401,7 @@ function farmApiPlugin(options = {}) {
393
401
  const pathname = url.split("?")[0];
394
402
  const method = req.method || "GET";
395
403
  if (discoveryPromise) await waitForDiscovery();
396
- if (!_chunkS6VYG6XUcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath)) {
404
+ if (!_chunkNDILNQ4Lcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath)) {
397
405
  return next();
398
406
  }
399
407
  if (!apiRouterHandler) {
@@ -414,10 +422,10 @@ function farmApiPlugin(options = {}) {
414
422
  }
415
423
  const currentUrl = req.url || url;
416
424
  const currentPathname = currentUrl.split("?")[0];
417
- if (currentPathname !== pathname && !_chunkS6VYG6XUcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), currentPathname, basePath)) {
425
+ if (currentPathname !== pathname && !_chunkNDILNQ4Lcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), currentPathname, basePath)) {
418
426
  return next();
419
427
  }
420
- const fullUrl = _chunkUXFQ3UDAcjs.resolveFarmRequestURL.call(void 0, req);
428
+ const fullUrl = _chunkNICDYKBScjs.resolveFarmRequestURL.call(void 0, req);
421
429
  const headers = new Headers();
422
430
  for (const [key, value] of Object.entries(req.headers)) {
423
431
  if (value) {
@@ -518,7 +526,7 @@ function farmApiPlugin(options = {}) {
518
526
  log(`API router recreated`);
519
527
  } catch (e) {
520
528
  restoreRouteState(previousState);
521
- if (e instanceof _chunkFO427P6Icjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
529
+ if (e instanceof _chunkU6MPZ35Qcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
522
530
  log(`Root routes.ts HMR failed: ${e.message}`);
523
531
  }
524
532
  return [];
@@ -546,7 +554,7 @@ function farmApiPlugin(options = {}) {
546
554
  const routeModule = await _chunkSHLXACIOcjs.loadFarmDevModule.call(void 0, server, file);
547
555
  removeEndpointsFromFile(file);
548
556
  const availableMethods = [];
549
- for (const method of _chunkS6VYG6XUcjs.API_ROUTE_METHODS) {
557
+ for (const method of _chunkNDILNQ4Lcjs.API_ROUTE_METHODS) {
550
558
  if (!routeModule[method]) continue;
551
559
  availableMethods.push(method);
552
560
  addEndpoint(routePath, file, method, routeModule[method]);
@@ -556,7 +564,7 @@ function farmApiPlugin(options = {}) {
556
564
  log(`API router recreated`);
557
565
  } catch (e) {
558
566
  restoreRouteState(previousState);
559
- if (e instanceof _chunkFO427P6Icjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
567
+ if (e instanceof _chunkU6MPZ35Qcjs.APIRouteConflictError || e instanceof _chunkNO3WWW3Ncjs.AmbiguousRouteError) throw e;
560
568
  log(`API route HMR failed: ${e.message}`);
561
569
  }
562
570
  return [];
@@ -1,6 +1,7 @@
1
1
  import {
2
+ _setAppRequestView,
2
3
  _setCurrentRequestResolver
3
- } from "./chunk-IZY3V5XW.mjs";
4
+ } from "./chunk-S3VWVTVA.mjs";
4
5
  import {
5
6
  __name
6
7
  } from "./chunk-LPEX4YW6.mjs";
@@ -28,7 +29,45 @@ function getRequestReads() {
28
29
  }
29
30
  __name(getRequestReads, "getRequestReads");
30
31
  var requestReads = getRequestReads();
32
+ function countRequestRead(request) {
33
+ requestReads.set(request, (requestReads.get(request) ?? 0) + 1);
34
+ }
35
+ __name(countRequestRead, "countRequestRead");
36
+ var appRequestViews = /* @__PURE__ */ new WeakMap();
37
+ function getAppRequestView(request) {
38
+ const existing = appRequestViews.get(request);
39
+ if (existing) return existing;
40
+ let view;
41
+ if (request.method !== "GET" && request.method !== "HEAD") {
42
+ countRequestRead(request);
43
+ view = request;
44
+ } else {
45
+ view = new Request(request);
46
+ Object.defineProperties(view, {
47
+ // The rendered request's own signal, so aborting it reaches the handler unchanged.
48
+ signal: { configurable: true, get: /* @__PURE__ */ __name(() => request.signal, "get") },
49
+ headers: {
50
+ configurable: true,
51
+ get() {
52
+ countRequestRead(request);
53
+ return request.headers;
54
+ }
55
+ },
56
+ clone: {
57
+ configurable: true,
58
+ value() {
59
+ countRequestRead(request);
60
+ return request.clone();
61
+ }
62
+ }
63
+ });
64
+ }
65
+ appRequestViews.set(request, view);
66
+ return view;
67
+ }
68
+ __name(getAppRequestView, "getAppRequestView");
31
69
  _setCurrentRequestResolver(() => requestStore.getStore());
70
+ _setAppRequestView(getAppRequestView);
32
71
  function resolveFarmRequestURL(req, options = {}) {
33
72
  if (options.origin) {
34
73
  return new URL(req.url || "/", options.origin);
@@ -116,7 +155,7 @@ function getCurrentRequest() {
116
155
  "No current request is available. getCurrentRequest() can only be used during server rendering."
117
156
  );
118
157
  }
119
- requestReads.set(request, (requestReads.get(request) ?? 0) + 1);
158
+ countRequestRead(request);
120
159
  return request;
121
160
  }
122
161
  __name(getCurrentRequest, "getCurrentRequest");
@@ -9,7 +9,7 @@ var _chunk7W3CPVXScjs = require('./chunk-7W3CPVXS.cjs');
9
9
  var _chunkAI7QMY7Ocjs = require('./chunk-AI7QMY7O.cjs');
10
10
 
11
11
 
12
- var _chunkUXFQ3UDAcjs = require('./chunk-UXFQ3UDA.cjs');
12
+ var _chunkNICDYKBScjs = require('./chunk-NICDYKBS.cjs');
13
13
 
14
14
 
15
15
  var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
@@ -20,12 +20,12 @@ function _setDefaultFarmThemeConfig(config, basePath = "/") {
20
20
  defaultThemeConfig = _chunkOI6CMLWXcjs.resolveFarmThemeConfig.call(void 0, config, basePath);
21
21
  }
22
22
  _chunkS3JO3N4Hcjs.__name.call(void 0, _setDefaultFarmThemeConfig, "_setDefaultFarmThemeConfig");
23
- function getTheme(request = _chunkUXFQ3UDAcjs.getCurrentRequestOrNull.call(void 0, )) {
23
+ function getTheme(request = _chunkNICDYKBScjs.getCurrentRequestOrNull.call(void 0, )) {
24
24
  if (!request) return defaultThemeConfig.default;
25
25
  return readFarmThemePreference(request, defaultThemeConfig);
26
26
  }
27
27
  _chunkS3JO3N4Hcjs.__name.call(void 0, getTheme, "getTheme");
28
- function getThemeSnapshot(request = _chunkUXFQ3UDAcjs.getCurrentRequestOrNull.call(void 0, )) {
28
+ function getThemeSnapshot(request = _chunkNICDYKBScjs.getCurrentRequestOrNull.call(void 0, )) {
29
29
  const theme = request ? readFarmThemePreference(request, defaultThemeConfig) : defaultThemeConfig.default;
30
30
  return {
31
31
  theme,
@@ -183,6 +183,25 @@ function matchPattern(pattern, pathname) {
183
183
  };
184
184
  }
185
185
  _chunkS3JO3N4Hcjs.__name.call(void 0, matchPattern, "matchPattern");
186
+ function withRoutePathname(ctx, routePathname) {
187
+ return new Proxy(ctx, {
188
+ get(target, key) {
189
+ return key === "pathname" || key === "routePathname" ? routePathname : Reflect.get(target, key, target);
190
+ }
191
+ });
192
+ }
193
+ _chunkS3JO3N4Hcjs.__name.call(void 0, withRoutePathname, "withRoutePathname");
194
+ function matchesMiddlewarePredicate(predicate, ctx, getRoutePathname = () => ctx.routePathname) {
195
+ if (predicate(ctx)) return true;
196
+ const routePathname = getRoutePathname();
197
+ if (routePathname === void 0 || routePathname === ctx.pathname) return false;
198
+ return Boolean(predicate(withRoutePathname(ctx, routePathname)));
199
+ }
200
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewarePredicate, "matchesMiddlewarePredicate");
201
+ function toMiddlewareRoutePathname(pathname, toRoutePathname = (value) => value) {
202
+ return _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, toRoutePathname(pathname));
203
+ }
204
+ _chunkS3JO3N4Hcjs.__name.call(void 0, toMiddlewareRoutePathname, "toMiddlewareRoutePathname");
186
205
  function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
187
206
  let canonicalPathname;
188
207
  const getCanonicalPathname = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => _nullishCoalesce(canonicalPathname, () => ( (canonicalPathname = _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, pathname)))), "getCanonicalPathname");
@@ -196,7 +215,7 @@ function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
196
215
  if (config.matcher) {
197
216
  for (const matcher of config.matcher) {
198
217
  if (typeof matcher === "function") {
199
- if (matcher(ctx)) {
218
+ if (matchesMiddlewarePredicate(matcher, ctx, getCanonicalPathname)) {
200
219
  return { matched: true };
201
220
  }
202
221
  continue;
@@ -235,4 +254,6 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareConfigAt, "matchesMiddlew
235
254
 
236
255
 
237
256
 
238
- exports.compileMiddlewareRoute = compileMiddlewareRoute; exports.matchesMiddlewareRoute = matchesMiddlewareRoute; exports.matchesMiddlewareRouteAt = matchesMiddlewareRouteAt; exports.compileMiddlewareConfig = compileMiddlewareConfig; exports.matchesCompiledMiddlewareConfig = matchesCompiledMiddlewareConfig; exports.matchesMiddlewareConfig = matchesMiddlewareConfig; exports.matchesMiddlewareConfigAt = matchesMiddlewareConfigAt;
257
+
258
+
259
+ exports.compileMiddlewareRoute = compileMiddlewareRoute; exports.matchesMiddlewareRoute = matchesMiddlewareRoute; exports.matchesMiddlewareRouteAt = matchesMiddlewareRouteAt; exports.compileMiddlewareConfig = compileMiddlewareConfig; exports.matchesMiddlewarePredicate = matchesMiddlewarePredicate; exports.toMiddlewareRoutePathname = toMiddlewareRoutePathname; exports.matchesCompiledMiddlewareConfig = matchesCompiledMiddlewareConfig; exports.matchesMiddlewareConfig = matchesMiddlewareConfig; exports.matchesMiddlewareConfigAt = matchesMiddlewareConfigAt;
@@ -4,7 +4,7 @@ import {
4
4
  matchSSGPage,
5
5
  resolveRouteRenderingConfig,
6
6
  resolveRouteRenderingConfigFromFile
7
- } from "./chunk-4GLOOWKE.mjs";
7
+ } from "./chunk-CQMVIOYP.mjs";
8
8
  import {
9
9
  collectSchemaExtensions,
10
10
  declareSchemaTables,
@@ -42,7 +42,7 @@ import {
42
42
  resolveFarmAppManifestInput,
43
43
  routeBoundaryCoversDirectory,
44
44
  stripRouteGroups
45
- } from "./chunk-LSZAVSGY.mjs";
45
+ } from "./chunk-LBGILORX.mjs";
46
46
  import {
47
47
  FARM_DEFAULT_MCP_PATH,
48
48
  collectFarmDefaultMCPPages,
@@ -73,7 +73,7 @@ import {
73
73
  import {
74
74
  _setDefaultFarmThemeConfig,
75
75
  getTheme
76
- } from "./chunk-2ELDTQRN.mjs";
76
+ } from "./chunk-TDNWPAVR.mjs";
77
77
  import {
78
78
  generateFarmDocsAdapterClientRuntime,
79
79
  getFarmDocsAdapterConfigModule,
@@ -154,12 +154,12 @@ import {
154
154
  import {
155
155
  createFarmMarkdownRouteModuleFromFile,
156
156
  loadFarmMdxComponents
157
- } from "./chunk-WZ77PUAM.mjs";
157
+ } from "./chunk-FBOJ55OM.mjs";
158
158
  import {
159
159
  createFarmMarkdownSourceResponse,
160
160
  isFarmMarkdownPageFile,
161
161
  normalizeFarmMarkdownRoutePath
162
- } from "./chunk-4WCZJQUO.mjs";
162
+ } from "./chunk-TPLJVC7E.mjs";
163
163
  import {
164
164
  resolveFarmMdxComponentsModulePath,
165
165
  resolveMdxConfig
@@ -196,10 +196,10 @@ import {
196
196
  getRegisteredIntegrationAPIManifest,
197
197
  isFarmIntegrationProviderComponentReference,
198
198
  matchIntegrationRoute
199
- } from "./chunk-MKYBIIAQ.mjs";
199
+ } from "./chunk-Z5BEWYVO.mjs";
200
200
  import {
201
201
  MiddlewareManager
202
- } from "./chunk-BPOF5U4N.mjs";
202
+ } from "./chunk-NFMDCAOS.mjs";
203
203
  import {
204
204
  createRouteSlotContainerId,
205
205
  parseRouteSlotFile
@@ -209,7 +209,10 @@ import {
209
209
  _clearCurrentMiddlewareData,
210
210
  _runWithMiddlewareContext,
211
211
  _runWithMiddlewareData
212
- } from "./chunk-2NNMOPDN.mjs";
212
+ } from "./chunk-J3ANCZKA.mjs";
213
+ import {
214
+ createFarmDevServerDispatch
215
+ } from "./chunk-SGBZPZUW.mjs";
213
216
  import {
214
217
  _runWithAPIRequestRuntime
215
218
  } from "./chunk-R3DS7A2T.mjs";
@@ -218,11 +221,11 @@ import {
218
221
  } from "./chunk-IOEH4VWN.mjs";
219
222
  import {
220
223
  APIRouteManager
221
- } from "./chunk-T4OGRVNS.mjs";
224
+ } from "./chunk-VXAWRDK7.mjs";
222
225
  import {
223
226
  findProgrammaticRouteFiles,
224
227
  loadProgrammaticRouteManifests
225
- } from "./chunk-UDNPLXW7.mjs";
228
+ } from "./chunk-MYIZXDZA.mjs";
226
229
  import {
227
230
  _runWithFarmI18nRequest,
228
231
  _setDefaultFarmI18nRuntime,
@@ -237,7 +240,7 @@ import {
237
240
  } from "./chunk-YOZYCI6Z.mjs";
238
241
  import {
239
242
  isFarmAPIPathname
240
- } from "./chunk-O6I6VWKK.mjs";
243
+ } from "./chunk-HEVMCTSR.mjs";
241
244
  import {
242
245
  registerFarmMCPServer
243
246
  } from "./chunk-ZLAT2CWY.mjs";
@@ -322,7 +325,7 @@ import {
322
325
  } from "./chunk-BTHHUD7Q.mjs";
323
326
  import {
324
327
  FARM_VERSION
325
- } from "./chunk-OO7GXVSR.mjs";
328
+ } from "./chunk-YCKO6FRS.mjs";
326
329
  import {
327
330
  resolveFarmTrailingSlashRedirect,
328
331
  setFarmTrailingSlashPreference
@@ -360,7 +363,7 @@ import {
360
363
  } from "./chunk-CNOQY6Z7.mjs";
361
364
  import {
362
365
  FARM_CONFIG_REWRITES_PLUGIN_NAME
363
- } from "./chunk-W7LF2J2S.mjs";
366
+ } from "./chunk-HMRSWN47.mjs";
364
367
  import {
365
368
  appendFarmRedirectQuery
366
369
  } from "./chunk-BRYHOB4X.mjs";
@@ -375,10 +378,10 @@ import {
375
378
  createWebRequestFromFarmRequest,
376
379
  getCurrentRequestOrNull,
377
380
  resolveFarmRequestURL
378
- } from "./chunk-FDR64H6B.mjs";
381
+ } from "./chunk-3KGDJLJK.mjs";
379
382
  import {
380
383
  _resolveCurrentRequest
381
- } from "./chunk-IZY3V5XW.mjs";
384
+ } from "./chunk-S3VWVTVA.mjs";
382
385
  import {
383
386
  localizeFarmHref,
384
387
  localizeFarmPathname,
@@ -10161,7 +10164,7 @@ function loadFarmWorkflowsDevRuntime() {
10161
10164
  }
10162
10165
  __name(loadFarmWorkflowsDevRuntime, "loadFarmWorkflowsDevRuntime");
10163
10166
  function loadFarmDevtoolsSnapshotRuntime() {
10164
- return import("./devtools-ERIKFEXX.mjs");
10167
+ return import("./devtools-KVOY2TCZ.mjs");
10165
10168
  }
10166
10169
  __name(loadFarmDevtoolsSnapshotRuntime, "loadFarmDevtoolsSnapshotRuntime");
10167
10170
  function loadFarmDevtoolsUIRuntime() {
@@ -11069,6 +11072,7 @@ function farmPlugin(options = {}, initialPluginManager) {
11069
11072
  layoutCount: discoveredRoutes.filter((r) => r.kind === "layout").length
11070
11073
  });
11071
11074
  }
11075
+ const dispatchToDevServer = createFarmDevServerDispatch(server);
11072
11076
  apiRouteManager = new APIRouteManager(appDirs, server, {
11073
11077
  plugins: farmConfig.plugins,
11074
11078
  i18n: farmApp.getI18nRuntime(),
@@ -11079,7 +11083,7 @@ function farmPlugin(options = {}, initialPluginManager) {
11079
11083
  dispatch: /* @__PURE__ */ __name((request2) => {
11080
11084
  const url = new URL(request2.url);
11081
11085
  url.pathname = applyFarmBasePath(url.pathname, farmConfig.basePath);
11082
- return fetch(new Request(url, request2), { redirect: "manual" });
11086
+ return dispatchToDevServer(new Request(url, request2));
11083
11087
  }, "dispatch")
11084
11088
  });
11085
11089
  await apiRouteManager.discoverRoutes();
@@ -11592,11 +11596,13 @@ window.__FARM_MANIFEST__ = ${inlineValue({
11592
11596
  };
11593
11597
  }, "resolveSource"),
11594
11598
  // The anonymous check goes through this server, so its guards and
11595
- // middleware see the page's own path, as in production.
11596
- renderPage: /* @__PURE__ */ __name(async (request2) => fetch(request2, {
11597
- redirect: "manual",
11598
- signal: res.destroyed ? AbortSignal.abort() : createFarmNodeRequestAbortSignal(req, res)
11599
- }), "renderPage")
11599
+ // middleware see the page's own path, as in production. It connects to
11600
+ // this server's own listener, never the host the caller's Host names.
11601
+ renderPage: /* @__PURE__ */ __name(async (request2) => createFarmDevServerDispatch(server)(
11602
+ new Request(request2, {
11603
+ signal: res.destroyed ? AbortSignal.abort() : createFarmNodeRequestAbortSignal(req, res)
11604
+ })
11605
+ ), "renderPage")
11600
11606
  });
11601
11607
  if (markdownSourceResponse) {
11602
11608
  if (await runAppMiddlewareForContentRoute()) return;
@@ -11610,14 +11616,21 @@ window.__FARM_MANIFEST__ = ${inlineValue({
11610
11616
  }),
11611
11617
  config: farmApp.getConfig().md,
11612
11618
  routeExists: /* @__PURE__ */ __name((pathname2) => Boolean(farmApp.getRouteManager().matchRoute(pathname2).route), "routeExists"),
11613
- // Keep the page's own redirect (a sign-in gate, say) so the mirror
11614
- // answers with it, as production does, instead of the target page.
11615
- renderPage: /* @__PURE__ */ __name(async (request2) => fetch(request2, {
11616
- redirect: "manual",
11617
- // Only accepted mirrors need disconnect listeners. An earlier
11618
- // close (for example while the docs handler ran) must also abort.
11619
- signal: res.destroyed ? AbortSignal.abort() : createFarmNodeRequestAbortSignal(req, res)
11620
- }), "renderPage"),
11619
+ // The page is rendered by this server's own listener, never the host the
11620
+ // caller's Host names. Redirects are not followed, so the mirror answers with
11621
+ // the page's own (a sign-in gate, say), as production does.
11622
+ renderPage: /* @__PURE__ */ __name(async (request2) => {
11623
+ const headers = new Headers(request2.headers);
11624
+ headers.delete("accept-encoding");
11625
+ return createFarmDevServerDispatch(server)(
11626
+ new Request(request2, {
11627
+ headers,
11628
+ // Only accepted mirrors need disconnect listeners. An earlier
11629
+ // close (for example while the docs handler ran) must also abort.
11630
+ signal: res.destroyed ? AbortSignal.abort() : createFarmNodeRequestAbortSignal(req, res)
11631
+ })
11632
+ );
11633
+ }, "renderPage"),
11621
11634
  apiServerBasePath
11622
11635
  });
11623
11636
  if (markdownResponse) {