@farm.js/core 0.1.42 → 0.1.43

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 (235) hide show
  1. package/dist/{agent-mcp-ssVy_tea.d.mts → agent-mcp-3KDz4hr9.d.mts} +1 -1
  2. package/dist/{agent-mcp-SSD6L3VZ.d.ts → agent-mcp-6yRebHk7.d.ts} +1 -1
  3. package/dist/agent-runtime.d.mts +1 -1
  4. package/dist/agent-runtime.d.ts +1 -1
  5. package/dist/api/route-manager.d.mts +3 -3
  6. package/dist/api/route-manager.d.ts +3 -3
  7. package/dist/api/runtime.d.mts +2 -2
  8. package/dist/api/runtime.d.ts +2 -2
  9. package/dist/api.cjs +2 -2
  10. package/dist/api.d.mts +8 -3
  11. package/dist/api.d.ts +8 -3
  12. package/dist/api.mjs +1 -1
  13. package/dist/{app-KjFzdCqy.d.ts → app-8Db1zR-2.d.ts} +8 -4
  14. package/dist/{app-1h3lVT4a.d.mts → app-DlTWv4cn.d.mts} +8 -4
  15. package/dist/{app-manifest-D3RkVNuS.d.mts → app-manifest-TRzS7ZZ9.d.mts} +1 -1
  16. package/dist/{app-manifest-DaW8-tvX.d.ts → app-manifest-cO2jkG1F.d.ts} +1 -1
  17. package/dist/app-markdown.d.mts +2 -2
  18. package/dist/app-markdown.d.ts +2 -2
  19. package/dist/{chunk-ECKF2BAM.cjs → chunk-2GVF3C2F.cjs} +255 -42
  20. package/dist/chunk-2NXO5SBY.mjs +57 -0
  21. package/dist/chunk-3BROEWFY.cjs +39 -0
  22. package/dist/{chunk-NU25TRIO.mjs → chunk-4MRQ5OKQ.mjs} +11 -7
  23. package/dist/{chunk-375K2ZVU.mjs → chunk-4OCEMK72.mjs} +259 -48
  24. package/dist/{chunk-6PKXK4TY.mjs → chunk-53ZV6K65.mjs} +1 -1
  25. package/dist/{chunk-LYIZHJTK.cjs → chunk-5LPHJZSI.cjs} +14 -14
  26. package/dist/chunk-5NIWBWDD.mjs +97 -0
  27. package/dist/{chunk-NRDBW4MP.mjs → chunk-7IQQIPRZ.mjs} +10 -0
  28. package/dist/{chunk-QTEJGB5A.mjs → chunk-7SCCY6SI.mjs} +79 -176
  29. package/dist/chunk-APDGOKKE.cjs +148 -0
  30. package/dist/chunk-AZBSVLRM.cjs +132 -0
  31. package/dist/{chunk-ZS6HDNOM.cjs → chunk-BKPXWRTT.cjs} +6 -6
  32. package/dist/chunk-CEDPEDNW.cjs +98 -0
  33. package/dist/chunk-D5RFPV2H.mjs +148 -0
  34. package/dist/{chunk-724JLMS4.mjs → chunk-F646BZ4Y.mjs} +4 -2
  35. package/dist/{chunk-C5KVWHIH.cjs → chunk-G2Z5DGMS.cjs} +5 -3
  36. package/dist/{chunk-7YHSD3Z6.cjs → chunk-GVNCWSQV.cjs} +83 -29
  37. package/dist/{chunk-24SP5TGU.mjs → chunk-H4LXPWI2.mjs} +2 -2
  38. package/dist/chunk-H7BLEEAE.cjs +57 -0
  39. package/dist/{chunk-QKZMB7LY.cjs → chunk-HUMEHX24.cjs} +2 -2
  40. package/dist/{chunk-BD3D7EZV.cjs → chunk-IXFOBGLQ.cjs} +9 -3
  41. package/dist/{chunk-JG3MEQUH.cjs → chunk-JDJAPCR2.cjs} +420 -209
  42. package/dist/{chunk-MHN4UR5U.cjs → chunk-KFZZFZ7J.cjs} +7 -7
  43. package/dist/chunk-LRJRXXQZ.cjs +109 -0
  44. package/dist/{chunk-BXJ5HJTJ.cjs → chunk-LVABUXLA.cjs} +15 -11
  45. package/dist/{chunk-HCSVR4YZ.mjs → chunk-M3BXTWJM.mjs} +18 -0
  46. package/dist/{chunk-2JZHQDUY.mjs → chunk-NXO75WY4.mjs} +1 -1
  47. package/dist/{chunk-TUL355PH.mjs → chunk-OYSGGV6O.mjs} +135 -160
  48. package/dist/{chunk-JR4QCLJY.cjs → chunk-PDU4P2IC.cjs} +19 -1
  49. package/dist/chunk-PJEHUSHA.mjs +229 -0
  50. package/dist/chunk-QGH2RQVF.mjs +132 -0
  51. package/dist/{chunk-YWMZUGIS.mjs → chunk-R3ZFQJEF.mjs} +247 -34
  52. package/dist/{chunk-ZATTDMBW.cjs → chunk-RACQTC7K.cjs} +270 -367
  53. package/dist/{chunk-WSOBCAYO.cjs → chunk-RQYTOFQM.cjs} +23 -23
  54. package/dist/chunk-S34OBRMZ.mjs +109 -0
  55. package/dist/{chunk-TS4JHGUJ.mjs → chunk-S3ZEMCE6.mjs} +9 -3
  56. package/dist/{chunk-WWFTAUFG.cjs → chunk-SBH2JLLF.cjs} +12 -2
  57. package/dist/{chunk-YSLWRWWP.cjs → chunk-SKK6UF5P.cjs} +200 -46
  58. package/dist/chunk-T7J7E63D.cjs +144 -0
  59. package/dist/{chunk-PIZXONIS.mjs → chunk-TESO7EFU.mjs} +55 -1
  60. package/dist/{chunk-TCJ4A4A2.cjs → chunk-VIVQERJ5.cjs} +318 -344
  61. package/dist/{chunk-JIYYX7WU.mjs → chunk-VLXNGUKO.mjs} +1 -1
  62. package/dist/{chunk-OFZUJMCU.mjs → chunk-WPJQN64R.mjs} +195 -41
  63. package/dist/chunk-XARSG2TG.mjs +144 -0
  64. package/dist/chunk-XUGFRFD2.mjs +39 -0
  65. package/dist/{chunk-AHFRQMRX.cjs → chunk-YBDSTNMH.cjs} +1 -1
  66. package/dist/{chunk-U2UC7UGP.mjs → chunk-YGZH4T2X.mjs} +1 -1
  67. package/dist/chunk-YKUEJ3MG.cjs +229 -0
  68. package/dist/{chunk-IVQY6UTY.mjs → chunk-ZYWJIPKQ.mjs} +1 -1
  69. package/dist/{client-plugins-C9Py_50W.d.mts → client-plugins-Cv0OJtnM.d.mts} +21 -2
  70. package/dist/{client-plugins-DIem0I0W.d.ts → client-plugins-kwQuZcWq.d.ts} +21 -2
  71. package/dist/client-plugins.d.mts +1 -1
  72. package/dist/client-plugins.d.ts +1 -1
  73. package/dist/client.cjs +4 -3
  74. package/dist/client.d.mts +5 -5
  75. package/dist/client.d.ts +5 -5
  76. package/dist/client.mjs +3 -2
  77. package/dist/config.d.mts +1 -1
  78. package/dist/config.d.ts +1 -1
  79. package/dist/{devtools-Q3LBNUJ7.mjs → devtools-M22FEFPK.mjs} +3 -3
  80. package/dist/{devtools-2RY3EKHL.cjs → devtools-MLB3JJMC.cjs} +4 -4
  81. package/dist/docs.cjs +5 -5
  82. package/dist/docs.d.mts +2 -2
  83. package/dist/docs.d.ts +2 -2
  84. package/dist/docs.mjs +4 -4
  85. package/dist/index-CQOp8EmB.d.mts +48 -0
  86. package/dist/index-DAl0QTZS.d.ts +48 -0
  87. package/dist/index.cjs +40 -23
  88. package/dist/index.d.mts +15 -15
  89. package/dist/index.d.ts +15 -15
  90. package/dist/index.mjs +45 -28
  91. package/dist/integrations.d.mts +1 -1
  92. package/dist/integrations.d.ts +1 -1
  93. package/dist/internal/app-markdown-runtime.d.mts +2 -2
  94. package/dist/internal/app-markdown-runtime.d.ts +2 -2
  95. package/dist/internal/build-runtime.cjs +28 -14
  96. package/dist/internal/build-runtime.d.mts +12 -16
  97. package/dist/internal/build-runtime.d.ts +12 -16
  98. package/dist/internal/build-runtime.mjs +27 -13
  99. package/dist/internal/cli-runtime.cjs +22 -10
  100. package/dist/internal/cli-runtime.mjs +22 -10
  101. package/dist/internal/client-error-overlay.cjs +4 -4
  102. package/dist/internal/client-error-overlay.mjs +1 -1
  103. package/dist/internal/client-runtime.cjs +5 -1
  104. package/dist/internal/client-runtime.d.mts +1 -0
  105. package/dist/internal/client-runtime.d.ts +1 -0
  106. package/dist/internal/client-runtime.mjs +4 -0
  107. package/dist/internal/compression-runtime.d.mts +1 -1
  108. package/dist/internal/compression-runtime.d.ts +1 -1
  109. package/dist/internal/config-runtime.cjs +4 -4
  110. package/dist/internal/config-runtime.d.mts +2 -2
  111. package/dist/internal/config-runtime.d.ts +2 -2
  112. package/dist/internal/config-runtime.mjs +3 -3
  113. package/dist/internal/form-actions-client.cjs +18 -0
  114. package/dist/internal/form-actions-client.d.mts +5 -0
  115. package/dist/internal/form-actions-client.d.ts +5 -0
  116. package/dist/internal/form-actions-client.mjs +18 -0
  117. package/dist/internal/form-actions.cjs +18 -0
  118. package/dist/internal/form-actions.d.mts +14 -0
  119. package/dist/internal/form-actions.d.ts +14 -0
  120. package/dist/internal/form-actions.mjs +18 -0
  121. package/dist/internal/island-codec.cjs +22 -0
  122. package/dist/internal/island-codec.d.mts +29 -0
  123. package/dist/internal/island-codec.d.ts +29 -0
  124. package/dist/internal/island-codec.mjs +22 -0
  125. package/dist/internal/island-value-store.cjs +13 -0
  126. package/dist/internal/island-value-store.d.mts +6 -0
  127. package/dist/internal/island-value-store.d.ts +6 -0
  128. package/dist/internal/island-value-store.mjs +13 -0
  129. package/dist/internal/islands-runtime.cjs +77 -0
  130. package/dist/internal/islands-runtime.d.mts +57 -0
  131. package/dist/internal/islands-runtime.d.ts +57 -0
  132. package/dist/internal/islands-runtime.mjs +77 -0
  133. package/dist/internal/islands-server.cjs +19 -0
  134. package/dist/internal/islands-server.d.mts +3 -0
  135. package/dist/internal/islands-server.d.ts +3 -0
  136. package/dist/internal/islands-server.mjs +19 -0
  137. package/dist/internal/islx-client.cjs +5 -0
  138. package/dist/internal/islx-client.d.mts +2 -0
  139. package/dist/internal/islx-client.d.ts +2 -0
  140. package/dist/internal/islx-client.mjs +3 -0
  141. package/dist/internal/islx-react.cjs +4 -0
  142. package/dist/internal/islx-react.d.mts +1 -0
  143. package/dist/internal/islx-react.d.ts +1 -0
  144. package/dist/internal/islx-react.mjs +2 -0
  145. package/dist/internal/islx-server.cjs +5 -0
  146. package/dist/internal/islx-server.d.mts +2 -0
  147. package/dist/internal/islx-server.d.ts +2 -0
  148. package/dist/internal/islx-server.mjs +3 -0
  149. package/dist/internal/isolated-boundary.cjs +4 -3
  150. package/dist/internal/isolated-boundary.d.mts +13 -1
  151. package/dist/internal/isolated-boundary.d.ts +13 -1
  152. package/dist/internal/isolated-boundary.mjs +3 -2
  153. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  154. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  155. package/dist/internal/production-runtime.cjs +23 -6
  156. package/dist/internal/production-runtime.d.mts +20 -10
  157. package/dist/internal/production-runtime.d.ts +20 -10
  158. package/dist/internal/production-runtime.mjs +23 -6
  159. package/dist/internal/server-tree.cjs +6 -3
  160. package/dist/internal/server-tree.d.mts +25 -2
  161. package/dist/internal/server-tree.d.ts +25 -2
  162. package/dist/internal/server-tree.mjs +7 -4
  163. package/dist/island-value-protocol-BRayRghM.d.mts +12 -0
  164. package/dist/island-value-protocol-BRayRghM.d.ts +12 -0
  165. package/dist/markdown.d.mts +1 -1
  166. package/dist/markdown.d.ts +1 -1
  167. package/dist/middleware.d.mts +3 -3
  168. package/dist/middleware.d.ts +3 -3
  169. package/dist/navigation.cjs +5 -4
  170. package/dist/navigation.d.mts +4 -4
  171. package/dist/navigation.d.ts +4 -4
  172. package/dist/navigation.mjs +4 -3
  173. package/dist/og.d.mts +5 -0
  174. package/dist/og.d.ts +5 -0
  175. package/dist/plugin.cjs +17 -11
  176. package/dist/plugin.d.mts +3 -3
  177. package/dist/plugin.d.ts +3 -3
  178. package/dist/plugin.mjs +16 -10
  179. package/dist/{production-runtime-bjjWq-DA.d.ts → production-runtime-5nArjFpn.d.ts} +1 -1
  180. package/dist/{production-runtime-CHFKIgpW.d.mts → production-runtime-BzsF2z5F.d.mts} +1 -1
  181. package/dist/query/client.cjs +6 -5
  182. package/dist/query/client.mjs +2 -1
  183. package/dist/{render-plan-DOHg6wdO.d.mts → render-plan-B9yQorV4.d.mts} +4 -2
  184. package/dist/{render-plan-B2UndB4x.d.ts → render-plan-fg6E_HvL.d.ts} +4 -2
  185. package/dist/renderer/react/server.cjs +7 -6
  186. package/dist/renderer/react/server.d.mts +3 -1
  187. package/dist/renderer/react/server.d.ts +3 -1
  188. package/dist/renderer/react/server.mjs +5 -4
  189. package/dist/renderer-client.cjs +5 -4
  190. package/dist/renderer-client.d.mts +3 -3
  191. package/dist/renderer-client.d.ts +3 -3
  192. package/dist/renderer-client.mjs +2 -1
  193. package/dist/renderer.d.mts +3 -1
  194. package/dist/renderer.d.ts +3 -1
  195. package/dist/{request-DQcGfdgQ.d.mts → request-C4j_g-BH.d.mts} +1 -1
  196. package/dist/{request-DVNXRQrI.d.ts → request-gz8vFK0n.d.ts} +1 -1
  197. package/dist/request.d.mts +2 -2
  198. package/dist/request.d.ts +2 -2
  199. package/dist/{route-rendering-B_6fj-GG.d.ts → route-rendering-DamyKVi3.d.ts} +1 -1
  200. package/dist/{route-rendering-CEX4mFn-.d.mts → route-rendering-iTTOwz1f.d.mts} +1 -1
  201. package/dist/{router-CKHPBKXX.d.mts → router-EoSzHlos.d.mts} +1 -1
  202. package/dist/{router-CHEMHm1P.d.ts → router-OVjDqVo8.d.ts} +1 -1
  203. package/dist/routes.d.mts +1 -1
  204. package/dist/routes.d.ts +1 -1
  205. package/dist/rsc-pipeline-LK4K5JFK.mjs +77 -0
  206. package/dist/rsc-pipeline-YCDRJME4.cjs +77 -0
  207. package/dist/{runtime-Br2ZDTAv.d.ts → runtime-CwiuozLd.d.ts} +1 -1
  208. package/dist/{runtime-jj8TKNsy.d.mts → runtime-DDH4tiuF.d.mts} +1 -1
  209. package/dist/{schema-dev-notice-5JPE67AI.cjs → schema-dev-notice-77ZL23PL.cjs} +4 -4
  210. package/dist/{schema-dev-notice-WLPZ6WKU.mjs → schema-dev-notice-BLXOS6U2.mjs} +2 -2
  211. package/dist/server-plugins.d.mts +2 -2
  212. package/dist/server-plugins.d.ts +2 -2
  213. package/dist/server.cjs +55 -37
  214. package/dist/server.d.mts +15 -10
  215. package/dist/server.d.ts +15 -10
  216. package/dist/server.mjs +35 -17
  217. package/dist/{spa-router-BEvS9Erj.d.mts → spa-router-Br4qFCWf.d.mts} +8 -3
  218. package/dist/{spa-router-DmCuH5B7.d.ts → spa-router-BsWUKH73.d.ts} +8 -3
  219. package/dist/{ssg-gT093ETk.d.ts → ssg-Csy2vwpi.d.ts} +2 -2
  220. package/dist/{ssg-57v6cZcW.d.mts → ssg-Donyfcxy.d.mts} +2 -2
  221. package/dist/testing.d.mts +1 -1
  222. package/dist/testing.d.ts +1 -1
  223. package/dist/{utils-CCTKvR-P.d.ts → utils-Luk72LXC.d.ts} +1 -1
  224. package/dist/{utils-raHHQVyL.d.mts → utils-d_k1ZZw0.d.mts} +1 -1
  225. package/dist/version.cjs +2 -2
  226. package/dist/version.mjs +1 -1
  227. package/dist/vite.cjs +17 -11
  228. package/dist/vite.d.mts +6 -4
  229. package/dist/vite.d.ts +6 -4
  230. package/dist/vite.mjs +16 -10
  231. package/package.json +53 -1
  232. package/dist/{chunk-35WS7P2V.mjs → chunk-26CXZR6L.mjs} +3 -3
  233. package/dist/{chunk-QEILRWVV.cjs → chunk-3XEMGDBF.cjs} +2 -2
  234. package/dist/{chunk-BPOTSHDO.cjs → chunk-IOAUK4OI.cjs} +2 -2
  235. package/dist/{chunk-BYR3RQPB.mjs → chunk-T76H22WI.mjs} +4 -4
@@ -45,7 +45,7 @@ var _chunkKNBBQHO2cjs = require('./chunk-KNBBQHO2.cjs');
45
45
  var _chunk5NAVKJCZcjs = require('./chunk-5NAVKJCZ.cjs');
46
46
 
47
47
 
48
- var _chunkAHFRQMRXcjs = require('./chunk-AHFRQMRX.cjs');
48
+ var _chunkYBDSTNMHcjs = require('./chunk-YBDSTNMH.cjs');
49
49
 
50
50
 
51
51
  var _chunkBIDYX3SLcjs = require('./chunk-BIDYX3SL.cjs');
@@ -56,6 +56,56 @@ var _chunkI57LW5VZcjs = require('./chunk-I57LW5VZ.cjs');
56
56
 
57
57
  var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
58
58
 
59
+ // src/navigation/render-plan.ts
60
+ function createFarmRouteRenderPlan(input = {}) {
61
+ const pageShouldHydrate = input.pageShouldHydrate === true;
62
+ const layoutShouldHydrate = input.layoutShouldHydrate === true;
63
+ const hydration = pageShouldHydrate ? layoutShouldHydrate ? "route-and-layout-islands" : "route-island" : layoutShouldHydrate ? "layout-island" : "none";
64
+ const rendering = input.rendering;
65
+ const cache = _optionalChain([rendering, 'optionalAccess', _ => _.ssg]) ? typeof rendering.revalidate === "number" && rendering.revalidate > 0 ? { mode: "revalidate", revalidate: rendering.revalidate } : { mode: "static" } : { mode: "dynamic" };
66
+ return {
67
+ version: 1,
68
+ output: "html",
69
+ navigation: "html-fragment",
70
+ hydration,
71
+ islandStrategy: hydration === "none" ? null : _nullishCoalesce(input.islandStrategy, () => ( "load")),
72
+ cache
73
+ };
74
+ }
75
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmRouteRenderPlan, "createFarmRouteRenderPlan");
76
+ function getFarmFragmentCacheControl(plan) {
77
+ if (plan.cache.mode === "static") {
78
+ return "public, max-age=0, s-maxage=31536000, immutable";
79
+ }
80
+ if (plan.cache.mode === "revalidate") {
81
+ const seconds = Math.max(1, _nullishCoalesce(plan.cache.revalidate, () => ( 1)));
82
+ return `public, max-age=0, s-maxage=${seconds}, stale-while-revalidate=${seconds}`;
83
+ }
84
+ return "private, max-age=0";
85
+ }
86
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmFragmentCacheControl, "getFarmFragmentCacheControl");
87
+ function parseFarmLayoutChainHeader(value) {
88
+ if (!value || value.length > 8192) return [];
89
+ try {
90
+ const parsed = JSON.parse(value);
91
+ if (!Array.isArray(parsed) || parsed.length > 64) return [];
92
+ return parsed.filter(
93
+ (pattern) => typeof pattern === "string" && pattern.startsWith("/") && pattern.length <= 512
94
+ );
95
+ } catch (e) {
96
+ return [];
97
+ }
98
+ }
99
+ _chunkS3JO3N4Hcjs.__name.call(void 0, parseFarmLayoutChainHeader, "parseFarmLayoutChainHeader");
100
+ function getSharedLayoutPrefixLength(current, next) {
101
+ let index = 0;
102
+ while (index < current.length && index < next.length && current[index] === next[index]) {
103
+ index++;
104
+ }
105
+ return index;
106
+ }
107
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getSharedLayoutPrefixLength, "getSharedLayoutPrefixLength");
108
+
59
109
  // src/routing/route-groups.ts
60
110
  function isRouteGroupSegment(part) {
61
111
  return part.startsWith("(") && part.endsWith(")");
@@ -188,12 +238,12 @@ function removeFarmDocumentTitles(markup) {
188
238
  }
189
239
  _chunkS3JO3N4Hcjs.__name.call(void 0, removeFarmDocumentTitles, "removeFarmDocumentTitles");
190
240
  function ensureFarmDocumentMeta(markup, viewport = "") {
191
- const head = _nullishCoalesce(_optionalChain([/<head\b[^>]*>([\s\S]*?)<\/head>/i, 'access', _ => _.exec, 'call', _2 => _2(markup), 'optionalAccess', _3 => _3[1]]), () => ( ""));
241
+ const head = _nullishCoalesce(_optionalChain([/<head\b[^>]*>([\s\S]*?)<\/head>/i, 'access', _2 => _2.exec, 'call', _3 => _3(markup), 'optionalAccess', _4 => _4[1]]), () => ( ""));
192
242
  const hasNamedMeta = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (name) => new RegExp(`<meta\\b[^>]*\\bname=["']?${name}(?=["'\\s/>])`, "i").test(head), "hasNamedMeta");
193
243
  const tags = [
194
244
  /<meta\b[^>]*\bcharset\s*=/i.test(head) ? "" : '<meta charset="utf-8">',
195
245
  ...(_nullishCoalesce(viewport.match(/<meta\b[^>]*>/gi), () => ( []))).filter((tag) => {
196
- const name = _optionalChain([/\bname="([\w-]+)"/, 'access', _4 => _4.exec, 'call', _5 => _5(tag), 'optionalAccess', _6 => _6[1]]);
246
+ const name = _optionalChain([/\bname="([\w-]+)"/, 'access', _5 => _5.exec, 'call', _6 => _6(tag), 'optionalAccess', _7 => _7[1]]);
197
247
  return !name || !hasNamedMeta(name);
198
248
  })
199
249
  ].filter(Boolean);
@@ -317,7 +367,7 @@ function resolveAlternateBase(options) {
317
367
  try {
318
368
  const url = new URL(candidate);
319
369
  if (url.protocol === "http:" || url.protocol === "https:") return url;
320
- } catch (e) {
370
+ } catch (e2) {
321
371
  }
322
372
  }
323
373
  return void 0;
@@ -344,7 +394,7 @@ function isLateRedirectTarget(url) {
344
394
  try {
345
395
  const protocol = new URL(url, "https://farm.invalid").protocol;
346
396
  return protocol === "http:" || protocol === "https:";
347
- } catch (e2) {
397
+ } catch (e3) {
348
398
  return false;
349
399
  }
350
400
  }
@@ -401,7 +451,7 @@ function serializeSitemap(value) {
401
451
  return candidate;
402
452
  });
403
453
  const hasLanguageAlternates = entries.some(
404
- (entry) => _optionalChain([entry, 'access', _7 => _7.alternates, 'optionalAccess', _8 => _8.languages]) && Object.keys(entry.alternates.languages).length > 0
454
+ (entry) => _optionalChain([entry, 'access', _8 => _8.alternates, 'optionalAccess', _9 => _9.languages]) && Object.keys(entry.alternates.languages).length > 0
405
455
  );
406
456
  const namespace = hasLanguageAlternates ? ' xmlns:xhtml="http://www.w3.org/1999/xhtml"' : "";
407
457
  const lines = [
@@ -420,7 +470,7 @@ function serializeSitemap(value) {
420
470
  if (entry.priority !== void 0) {
421
471
  lines.push(` <priority>${escapeXml(entry.priority)}</priority>`);
422
472
  }
423
- for (const [language, href] of Object.entries(_optionalChain([entry, 'access', _9 => _9.alternates, 'optionalAccess', _10 => _10.languages]) || {})) {
473
+ for (const [language, href] of Object.entries(_optionalChain([entry, 'access', _10 => _10.alternates, 'optionalAccess', _11 => _11.languages]) || {})) {
424
474
  lines.push(
425
475
  ` <xhtml:link rel="alternate" hreflang="${escapeXml(language)}" href="${escapeXml(href)}" />`
426
476
  );
@@ -516,7 +566,7 @@ function listFarmMCPServerSources(input) {
516
566
  if (sources.has(endpoint)) continue;
517
567
  sources.set(endpoint, {
518
568
  ...server,
519
- protocolVersions: _optionalChain([details, 'optionalAccess', _11 => _11.protocolVersions]),
569
+ protocolVersions: _optionalChain([details, 'optionalAccess', _12 => _12.protocolVersions]),
520
570
  endpoint,
521
571
  local: true
522
572
  });
@@ -546,7 +596,7 @@ function listFarmMCPServerCards(origin, input = {}) {
546
596
  const endpointUrl = server.local ? `${origin}${server.endpoint}` : server.endpoint;
547
597
  const cardPath = server.local ? serverCardLocation(server.endpoint) : void 0;
548
598
  const slug = cardSlug(server.name);
549
- const description = truncate(_optionalChain([server, 'access', _12 => _12.description, 'optionalAccess', _13 => _13.trim, 'call', _14 => _14()]) || `MCP server for ${host}`);
599
+ const description = truncate(_optionalChain([server, 'access', _13 => _13.description, 'optionalAccess', _14 => _14.trim, 'call', _15 => _15()]) || `MCP server for ${host}`);
550
600
  const card = {
551
601
  $schema: SERVER_CARD_SCHEMA,
552
602
  // The card's name is reverse-DNS; a plain server name is namespaced by the host.
@@ -559,7 +609,7 @@ function listFarmMCPServerCards(origin, input = {}) {
559
609
  {
560
610
  type: "streamable-http",
561
611
  url: endpointUrl,
562
- ..._optionalChain([server, 'access', _15 => _15.protocolVersions, 'optionalAccess', _16 => _16.length]) ? { supportedProtocolVersions: [...server.protocolVersions] } : {}
612
+ ..._optionalChain([server, 'access', _16 => _16.protocolVersions, 'optionalAccess', _17 => _17.length]) ? { supportedProtocolVersions: [...server.protocolVersions] } : {}
563
613
  }
564
614
  ]
565
615
  };
@@ -599,7 +649,7 @@ function createFarmAiCatalogResponse(request, input = {}, requestUrl) {
599
649
  let url;
600
650
  try {
601
651
  url = _nullishCoalesce(requestUrl, () => ( new URL(request.url)));
602
- } catch (e3) {
652
+ } catch (e4) {
603
653
  return null;
604
654
  }
605
655
  const { pathname } = url;
@@ -903,8 +953,8 @@ function resolveFarmApiCatalogInput(config) {
903
953
  const mcp = config.mcp && config.mcp.enabled !== false ? config.mcp : void 0;
904
954
  return {
905
955
  basePath: config.basePath,
906
- apiBaseURL: _nullishCoalesce(_optionalChain([config, 'access', _17 => _17.openapi, 'optionalAccess', _18 => _18.servers, 'optionalAccess', _19 => _19[0], 'optionalAccess', _20 => _20.url]), () => ( config.api.baseURL)),
907
- openapi: _optionalChain([config, 'access', _21 => _21.openapi, 'optionalAccess', _22 => _22.enabled]) ? { specRoute: config.openapi.specRoute, route: config.openapi.route } : void 0,
956
+ apiBaseURL: _nullishCoalesce(_optionalChain([config, 'access', _18 => _18.openapi, 'optionalAccess', _19 => _19.servers, 'optionalAccess', _20 => _20[0], 'optionalAccess', _21 => _21.url]), () => ( config.api.baseURL)),
957
+ openapi: _optionalChain([config, 'access', _22 => _22.openapi, 'optionalAccess', _23 => _23.enabled]) ? { specRoute: config.openapi.specRoute, route: config.openapi.route } : void 0,
908
958
  mcpPath: mcp ? _chunkKNBBQHO2cjs.resolveFarmAPIServerRoutePath.call(void 0,
909
959
  _nullishCoalesce(mcp.path, () => ( "/api/mcp")),
910
960
  _chunkKNBBQHO2cjs.resolveFarmAPIServerBasePath.call(void 0, config.api)
@@ -916,8 +966,8 @@ function createFarmApiCatalog(input) {
916
966
  const appPath = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (path) => _chunkI57LW5VZcjs.applyFarmBasePath.call(void 0, path, input.basePath), "appPath");
917
967
  const items = [];
918
968
  const contexts = [];
919
- const specRoute = _optionalChain([input, 'access', _23 => _23.openapi, 'optionalAccess', _24 => _24.specRoute]);
920
- const reference = _optionalChain([input, 'access', _25 => _25.openapi, 'optionalAccess', _26 => _26.route]);
969
+ const specRoute = _optionalChain([input, 'access', _24 => _24.openapi, 'optionalAccess', _25 => _25.specRoute]);
970
+ const reference = _optionalChain([input, 'access', _26 => _26.openapi, 'optionalAccess', _27 => _27.route]);
921
971
  if (specRoute || reference) {
922
972
  const api = { anchor: input.apiBaseURL };
923
973
  if (specRoute) {
@@ -965,24 +1015,24 @@ function isFarmAppManifestPath(pathname) {
965
1015
  }
966
1016
  _chunkS3JO3N4Hcjs.__name.call(void 0, isFarmAppManifestPath, "isFarmAppManifestPath");
967
1017
  function resolveFarmAppManifestInput(config, extra) {
968
- const llms = _optionalChain([config, 'access', _27 => _27.agent, 'optionalAccess', _28 => _28.llmsTxt]);
1018
+ const llms = _optionalChain([config, 'access', _28 => _28.agent, 'optionalAccess', _29 => _29.llmsTxt]);
969
1019
  const plugins = (_nullishCoalesce(config.plugins, () => ( []))).map(({ name }) => name);
970
1020
  const webmcp = plugins.includes("farm:webmcp");
971
- const sections = _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, _optionalChain([config, 'access', _29 => _29.agent, 'optionalAccess', _30 => _30.manifest]));
1021
+ const sections = _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, _optionalChain([config, 'access', _30 => _30.agent, 'optionalAccess', _31 => _31.manifest]));
972
1022
  return {
973
- renderer: _nullishCoalesce(_optionalChain([config, 'access', _31 => _31.renderer, 'optionalAccess', _32 => _32.name]), () => ( "react")),
1023
+ renderer: _nullishCoalesce(_optionalChain([config, 'access', _32 => _32.renderer, 'optionalAccess', _33 => _33.name]), () => ( "react")),
974
1024
  basePath: config.basePath || "/",
975
1025
  build: extra.build,
976
1026
  packages: extra.packages,
977
1027
  webmcp: { enabled: webmcp, tools: webmcp ? _nullishCoalesce(extra.webmcpTools, () => ( [])) : [] },
978
1028
  integrations: Object.entries(_nullishCoalesce(config.integrations, () => ( {}))).flatMap(([key, integration]) => {
979
- const category = _nullishCoalesce(_optionalChain([integration, 'optionalAccess', _33 => _33.category]), () => ( _optionalChain([integration, 'optionalAccess', _34 => _34.slot])));
1029
+ const category = _nullishCoalesce(_optionalChain([integration, 'optionalAccess', _34 => _34.category]), () => ( _optionalChain([integration, 'optionalAccess', _35 => _35.slot])));
980
1030
  return integration && category && integration.type ? [{ key, category, type: integration.type }] : [];
981
1031
  }),
982
1032
  agent: {
983
- apiCatalog: _optionalChain([config, 'access', _35 => _35.agent, 'optionalAccess', _36 => _36.apiCatalog]) ? "/.well-known/api-catalog" : null,
1033
+ apiCatalog: _optionalChain([config, 'access', _36 => _36.agent, 'optionalAccess', _37 => _37.apiCatalog]) ? "/.well-known/api-catalog" : null,
984
1034
  llmsTxt: llms === true || typeof llms === "object" && llms !== null && llms.enabled !== false,
985
- openapi: _optionalChain([config, 'access', _37 => _37.openapi, 'optionalAccess', _38 => _38.enabled]) && config.openapi.specRoute ? config.openapi.specRoute : null
1035
+ openapi: _optionalChain([config, 'access', _38 => _38.openapi, 'optionalAccess', _39 => _39.enabled]) && config.openapi.specRoute ? config.openapi.specRoute : null
986
1036
  },
987
1037
  plugins,
988
1038
  ...sections ? { sections } : {}
@@ -1001,7 +1051,7 @@ function createFarmAppManifest(input) {
1001
1051
  return {
1002
1052
  schemaVersion: 1,
1003
1053
  app: app ? {
1004
- ...app.version ? { farm: _chunkAHFRQMRXcjs.FARM_VERSION } : {},
1054
+ ...app.version ? { farm: _chunkYBDSTNMHcjs.FARM_VERSION } : {},
1005
1055
  ...app.renderer ? { renderer: input.renderer } : {},
1006
1056
  basePath: input.basePath,
1007
1057
  ...app.build ? { build: input.build } : {}
@@ -1020,16 +1070,16 @@ function createFarmAppManifest(input) {
1020
1070
  _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmAppManifest, "createFarmAppManifest");
1021
1071
  function listServers(input, mcp) {
1022
1072
  const servers = _chunk75RZHGLScjs._listFarmMCPCatalogs.call(void 0, ).map(({ server, tools, details }) => {
1023
- const open = _optionalChain([details, 'optionalAccess', _39 => _39.public]) === true && !_optionalChain([input, 'access', _40 => _40.guardCoversPath, 'optionalCall', _41 => _41(server.path)]);
1073
+ const open = _optionalChain([details, 'optionalAccess', _40 => _40.public]) === true && !_optionalChain([input, 'access', _41 => _41.guardCoversPath, 'optionalCall', _42 => _42(server.path)]);
1024
1074
  return {
1025
1075
  name: server.name,
1026
1076
  version: server.version,
1027
1077
  path: server.path,
1028
1078
  authorization: open ? "none" : "required",
1029
- resources: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _42 => _42.resources]), () => ( []))] : [],
1030
- prompts: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _43 => _43.prompts]), () => ( []))] : [],
1079
+ resources: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _43 => _43.resources]), () => ( []))] : [],
1080
+ prompts: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _44 => _44.prompts]), () => ( []))] : [],
1031
1081
  tools: (open ? tools : []).map((tool) => {
1032
- const schemas = _optionalChain([details, 'optionalAccess', _44 => _44.schemas, 'optionalAccess', _45 => _45[tool.name]]);
1082
+ const schemas = _optionalChain([details, 'optionalAccess', _45 => _45.schemas, 'optionalAccess', _46 => _46[tool.name]]);
1033
1083
  const hints = Object.fromEntries(
1034
1084
  ["readOnlyHint", "destructiveHint", "idempotentHint", "openWorldHint"].filter((hint) => typeof tool[hint] === "boolean").map((hint) => [hint, tool[hint]])
1035
1085
  );
@@ -1040,7 +1090,7 @@ function listServers(input, mcp) {
1040
1090
  source: SOURCES[tool.kind],
1041
1091
  ...hints,
1042
1092
  ...schemas ? { inputSchema: schemas.input } : {},
1043
- ..._optionalChain([schemas, 'optionalAccess', _46 => _46.output]) ? { outputSchema: schemas.output } : {}
1093
+ ..._optionalChain([schemas, 'optionalAccess', _47 => _47.output]) ? { outputSchema: schemas.output } : {}
1044
1094
  };
1045
1095
  })
1046
1096
  };
@@ -1060,7 +1110,7 @@ function withoutSchemas({
1060
1110
  }
1061
1111
  _chunkS3JO3N4Hcjs.__name.call(void 0, withoutSchemas, "withoutSchemas");
1062
1112
  function listDefaultServer(input) {
1063
- const server = _optionalChain([input, 'access', _47 => _47.defaultMCP, 'optionalCall', _48 => _48()]);
1113
+ const server = _optionalChain([input, 'access', _48 => _48.defaultMCP, 'optionalCall', _49 => _49()]);
1064
1114
  if (!server) return [];
1065
1115
  return [
1066
1116
  {
@@ -1153,4 +1203,8 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmAppManifestResponse, "createFarm
1153
1203
 
1154
1204
 
1155
1205
 
1156
- exports.formatRouteSegment = formatRouteSegment; exports.createRouteDirectoryPattern = createRouteDirectoryPattern; exports.stripRouteGroups = stripRouteGroups; exports.getRouteGroupScope = getRouteGroupScope; exports.isInRouteGroupScope = isInRouteGroupScope; exports.getRouteDirectoryDepth = getRouteDirectoryDepth; exports.routeBoundaryCoversDirectory = routeBoundaryCoversDirectory; exports.HOISTED_HEAD_ELEMENT = HOISTED_HEAD_ELEMENT; exports.extractFarmFullDocument = extractFarmFullDocument; exports.classifyFarmDocumentPrefix = classifyFarmDocumentPrefix; exports.removeFarmDocumentTitles = removeFarmDocumentTitles; exports.ensureFarmDocumentMeta = ensureFarmDocumentMeta; exports.composeFarmFullDocument = composeFarmFullDocument; exports.hasFarmMiddlewareConfig = hasFarmMiddlewareConfig; exports.configMiddlewareMayHandlePath = configMiddlewareMayHandlePath; exports.appMiddlewareMayHandlePath = appMiddlewareMayHandlePath; exports.farmPathGuardCoversPage = farmPathGuardCoversPage; exports.farmPathGuardCoversEndpoint = farmPathGuardCoversEndpoint; exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.listFarmMCPLlmsTxtLinks = listFarmMCPLlmsTxtLinks; exports.createFarmAiCatalogResponse = createFarmAiCatalogResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument; exports.FARM_API_CATALOG_PATH = FARM_API_CATALOG_PATH; exports.resolveFarmApiCatalogInput = resolveFarmApiCatalogInput; exports.createFarmApiCatalogResponse = createFarmApiCatalogResponse; exports.FARM_APP_MANIFEST_PATH = FARM_APP_MANIFEST_PATH; exports.FARM_APP_MANIFEST_LEGACY_PATH = FARM_APP_MANIFEST_LEGACY_PATH; exports.isFarmAppManifestPath = isFarmAppManifestPath; exports.resolveFarmAppManifestInput = resolveFarmAppManifestInput; exports.createFarmAppManifestResponse = createFarmAppManifestResponse;
1206
+
1207
+
1208
+
1209
+
1210
+ exports.createFarmRouteRenderPlan = createFarmRouteRenderPlan; exports.getFarmFragmentCacheControl = getFarmFragmentCacheControl; exports.parseFarmLayoutChainHeader = parseFarmLayoutChainHeader; exports.getSharedLayoutPrefixLength = getSharedLayoutPrefixLength; exports.formatRouteSegment = formatRouteSegment; exports.createRouteDirectoryPattern = createRouteDirectoryPattern; exports.stripRouteGroups = stripRouteGroups; exports.getRouteGroupScope = getRouteGroupScope; exports.isInRouteGroupScope = isInRouteGroupScope; exports.getRouteDirectoryDepth = getRouteDirectoryDepth; exports.routeBoundaryCoversDirectory = routeBoundaryCoversDirectory; exports.HOISTED_HEAD_ELEMENT = HOISTED_HEAD_ELEMENT; exports.extractFarmFullDocument = extractFarmFullDocument; exports.classifyFarmDocumentPrefix = classifyFarmDocumentPrefix; exports.removeFarmDocumentTitles = removeFarmDocumentTitles; exports.ensureFarmDocumentMeta = ensureFarmDocumentMeta; exports.composeFarmFullDocument = composeFarmFullDocument; exports.hasFarmMiddlewareConfig = hasFarmMiddlewareConfig; exports.configMiddlewareMayHandlePath = configMiddlewareMayHandlePath; exports.appMiddlewareMayHandlePath = appMiddlewareMayHandlePath; exports.farmPathGuardCoversPage = farmPathGuardCoversPage; exports.farmPathGuardCoversEndpoint = farmPathGuardCoversEndpoint; exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.listFarmMCPLlmsTxtLinks = listFarmMCPLlmsTxtLinks; exports.createFarmAiCatalogResponse = createFarmAiCatalogResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument; exports.FARM_API_CATALOG_PATH = FARM_API_CATALOG_PATH; exports.resolveFarmApiCatalogInput = resolveFarmApiCatalogInput; exports.createFarmApiCatalogResponse = createFarmApiCatalogResponse; exports.FARM_APP_MANIFEST_PATH = FARM_APP_MANIFEST_PATH; exports.FARM_APP_MANIFEST_LEGACY_PATH = FARM_APP_MANIFEST_LEGACY_PATH; exports.isFarmAppManifestPath = isFarmAppManifestPath; exports.resolveFarmAppManifestInput = resolveFarmAppManifestInput; exports.createFarmAppManifestResponse = createFarmAppManifestResponse;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  useRouter
3
- } from "./chunk-6PKXK4TY.mjs";
3
+ } from "./chunk-53ZV6K65.mjs";
4
4
  import {
5
5
  getRouter
6
- } from "./chunk-TS4JHGUJ.mjs";
6
+ } from "./chunk-S3ZEMCE6.mjs";
7
7
  import {
8
8
  applyFarmBasePath
9
9
  } from "./chunk-4RB44K6Z.mjs";
@@ -0,0 +1,57 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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
+
3
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
4
+
5
+ // src/client/island-value-protocol.ts
6
+ var FARM_ISLAND_ELEMENT = "f-island";
7
+ var FARM_PROPS_SCRIPT_TYPE = "f/props";
8
+ var FARM_VALUE_SCRIPT_TYPE = "f/value";
9
+ var FARM_SLOT_ELEMENT = "f-slot";
10
+ var FARM_TAG = "$";
11
+ var FARM_TAG_VALUE = "v";
12
+ var FARM_REFERENCE_TAG = "r";
13
+ var FARM_SLOT_TAG = "s";
14
+ var FARM_ACTION_TAG = "a";
15
+ var FARM_OBJECT_TAG = "o";
16
+ var FARM_VALUES_HEADER = "F-Values";
17
+ function getFarmTag(value) {
18
+ if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
19
+ const tag = value[FARM_TAG];
20
+ if (typeof tag !== "string") return void 0;
21
+ const keys = Object.keys(value);
22
+ return keys.length === 1 || keys.length === 2 && FARM_TAG_VALUE in value ? tag : void 0;
23
+ }
24
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmTag, "getFarmTag");
25
+ var FARM_VALUE_KEY_PATTERN = /^[0-9a-z]{14}$/;
26
+ var FARM_MAX_HELD_VALUES = 128;
27
+ var FARM_ISLAND_VALUE_STORE_KEY = /* @__PURE__ */ Symbol.for("islx.values");
28
+ var ISLAND_VALUES_SERVER_KEY = /* @__PURE__ */ Symbol.for("farm.island-values.server");
29
+ function getFarmIslandValuesServer() {
30
+ return globalThis[ISLAND_VALUES_SERVER_KEY];
31
+ }
32
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmIslandValuesServer, "getFarmIslandValuesServer");
33
+ function getFarmIslandValueHeaders() {
34
+ const scope = globalThis;
35
+ const held = _optionalChain([scope, 'access', _ => _[FARM_ISLAND_VALUE_STORE_KEY], 'optionalAccess', _2 => _2.heldHeader, 'call', _3 => _3()]);
36
+ return held ? { [FARM_VALUES_HEADER]: held } : {};
37
+ }
38
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmIslandValueHeaders, "getFarmIslandValueHeaders");
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+ exports.FARM_ISLAND_ELEMENT = FARM_ISLAND_ELEMENT; exports.FARM_PROPS_SCRIPT_TYPE = FARM_PROPS_SCRIPT_TYPE; exports.FARM_VALUE_SCRIPT_TYPE = FARM_VALUE_SCRIPT_TYPE; exports.FARM_SLOT_ELEMENT = FARM_SLOT_ELEMENT; exports.FARM_TAG = FARM_TAG; exports.FARM_TAG_VALUE = FARM_TAG_VALUE; exports.FARM_REFERENCE_TAG = FARM_REFERENCE_TAG; exports.FARM_SLOT_TAG = FARM_SLOT_TAG; exports.FARM_ACTION_TAG = FARM_ACTION_TAG; exports.FARM_OBJECT_TAG = FARM_OBJECT_TAG; exports.FARM_VALUES_HEADER = FARM_VALUES_HEADER; exports.getFarmTag = getFarmTag; exports.FARM_VALUE_KEY_PATTERN = FARM_VALUE_KEY_PATTERN; exports.FARM_MAX_HELD_VALUES = FARM_MAX_HELD_VALUES; exports.getFarmIslandValuesServer = getFarmIslandValuesServer; exports.getFarmIslandValueHeaders = getFarmIslandValueHeaders;
@@ -11,7 +11,7 @@ var _chunkMY5PZYADcjs = require('./chunk-MY5PZYAD.cjs');
11
11
  var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
12
12
 
13
13
 
14
- var _chunkBXJ5HJTJcjs = require('./chunk-BXJ5HJTJ.cjs');
14
+ var _chunkLVABUXLAcjs = require('./chunk-LVABUXLA.cjs');
15
15
 
16
16
 
17
17
 
@@ -564,7 +564,7 @@ async function resolveAPIContext(options) {
564
564
  config: options.config,
565
565
  configPath: options.configPath
566
566
  }));
567
- const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkBXJ5HJTJcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
567
+ const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkLVABUXLAcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
568
568
  const guardedPaths = new Set(_nullishCoalesce(_optionalChain([runtimeConfig, 'optionalAccess', _20 => _20.guardedPaths]), () => ( [])));
569
569
  return {
570
570
  root,
@@ -20,6 +20,9 @@ var _chunkJ7FSKED3cjs = require('./chunk-J7FSKED3.cjs');
20
20
  var _chunkLZESP4IRcjs = require('./chunk-LZESP4IR.cjs');
21
21
 
22
22
 
23
+ var _chunkH7BLEEAEcjs = require('./chunk-H7BLEEAE.cjs');
24
+
25
+
23
26
 
24
27
 
25
28
  var _chunkC5GUTBZKcjs = require('./chunk-C5GUTBZK.cjs');
@@ -300,7 +303,8 @@ var _SPARouter = class _SPARouter {
300
303
  replace,
301
304
  scroll,
302
305
  state,
303
- url
306
+ url,
307
+ refresh
304
308
  }) : Promise.resolve()
305
309
  );
306
310
  if (!this.isCurrentNavigation(navigation, clientNavigation)) return;
@@ -527,7 +531,7 @@ var _SPARouter = class _SPARouter {
527
531
  this.updateDocumentMetadata(options.pageData.metadata);
528
532
  _chunkS6FJO323cjs._hydrateFarmI18n.call(void 0, options.pageData.i18n);
529
533
  if (this.onNavigate) {
530
- await this.onNavigate(options.pageData);
534
+ await this.onNavigate(options.pageData, { refresh: options.refresh === true });
531
535
  }
532
536
  if (options.scroll) {
533
537
  if (options.url.hash) {
@@ -629,7 +633,9 @@ var _SPARouter = class _SPARouter {
629
633
  Accept: "application/x-farm-deferred+json, application/json",
630
634
  "X-Farm-SPA": "1",
631
635
  ...activeLayoutChain ? { "X-Farm-Layout-Chain": activeLayoutChain } : {},
632
- ...interceptFrom ? { "X-Farm-Intercept-From": interceptFrom } : {}
636
+ ...interceptFrom ? { "X-Farm-Intercept-From": interceptFrom } : {},
637
+ // Islands mode: the server leaves out island values this browser holds.
638
+ ..._chunkH7BLEEAEcjs.getFarmIslandValueHeaders.call(void 0, )
633
639
  })
634
640
  });
635
641
  if (_chunkC5GUTBZKcjs.isFarmDeploymentMismatchResponse.call(void 0, response, this.options.deploymentId)) {