@farm.js/core 0.1.51-beta.1 → 0.1.51-beta.3

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 (187) hide show
  1. package/dist/{agent-mcp-handler-WWCC4GLG.mjs → agent-mcp-handler-7JSKGSOW.mjs} +4 -4
  2. package/dist/{agent-mcp-handler-RT3COCEL.cjs → agent-mcp-handler-YE4AGWHN.cjs} +5 -5
  3. package/dist/{agent-mcp.d-ZuuNgrkQ.d.ts → agent-mcp.d-BAR9njbJ.d.ts} +1 -1
  4. package/dist/{agent-mcp.d-BPzpKBHQ.d.mts → agent-mcp.d-BJKChOrO.d.mts} +1 -1
  5. package/dist/agent-runtime.d.mts +2 -2
  6. package/dist/agent-runtime.d.ts +2 -2
  7. package/dist/{analyzer-V74FTD2F.mjs → analyzer-OTPEWH5W.mjs} +82 -22
  8. package/dist/{analyzer-AZULAOPL.cjs → analyzer-TSQXZCZN.cjs} +82 -22
  9. package/dist/api/route-manager.d.mts +4 -4
  10. package/dist/api/route-manager.d.ts +4 -4
  11. package/dist/api/runtime.d.mts +3 -3
  12. package/dist/api/runtime.d.ts +3 -3
  13. package/dist/api.d.mts +4 -4
  14. package/dist/api.d.ts +4 -4
  15. package/dist/{app-manifest.d-HWhqbP2X.d.ts → app-manifest.d-BLFbaqx8.d.ts} +1 -1
  16. package/dist/{app-manifest.d-BJDcZn3W.d.mts → app-manifest.d-DEQNnNhV.d.mts} +1 -1
  17. package/dist/app-markdown.cjs +4 -4
  18. package/dist/app-markdown.d.mts +3 -3
  19. package/dist/app-markdown.d.ts +3 -3
  20. package/dist/app-markdown.mjs +3 -3
  21. package/dist/{app.d-B5EWdob-.d.ts → app.d-CNPaUYaa.d.ts} +4 -4
  22. package/dist/{app.d-DOGW1KI8.d.mts → app.d-CT7xDkj2.d.mts} +4 -4
  23. package/dist/{chunk-YVJV7Q2X.mjs → chunk-3BLEXUGE.mjs} +1 -1
  24. package/dist/chunk-3HLQTOVU.cjs +6 -0
  25. package/dist/{chunk-KU7MBLDZ.mjs → chunk-3SMXQNFD.mjs} +2 -2
  26. package/dist/{chunk-EWC76P5D.mjs → chunk-3TLKUBXG.mjs} +411 -166
  27. package/dist/{chunk-BSEKNTMS.mjs → chunk-3WSIYBMG.mjs} +41 -19
  28. package/dist/{chunk-JVBNKWLV.cjs → chunk-3XQ57EFI.cjs} +16 -16
  29. package/dist/{chunk-GW4YUIHW.mjs → chunk-3Z63X45F.mjs} +1 -1
  30. package/dist/{chunk-SCRC5AMM.mjs → chunk-4353ZRE5.mjs} +1 -1
  31. package/dist/{chunk-SBABQKPT.cjs → chunk-46KXZBOG.cjs} +5 -5
  32. package/dist/{chunk-2756SHCI.cjs → chunk-4CGOMZP3.cjs} +221 -199
  33. package/dist/{chunk-RMPNYUGT.cjs → chunk-4SEHMBL4.cjs} +10 -10
  34. package/dist/{chunk-QAIAFCRZ.mjs → chunk-4TKAIO2F.mjs} +3 -3
  35. package/dist/{chunk-NJLTQR5P.cjs → chunk-53SACYBY.cjs} +7 -7
  36. package/dist/{chunk-I3EFXUAR.mjs → chunk-5FXPJIOT.mjs} +2 -2
  37. package/dist/chunk-7FVVQEVL.cjs +541 -0
  38. package/dist/{chunk-IFBINMI4.cjs → chunk-7MD37P5V.cjs} +5 -5
  39. package/dist/{chunk-JATTVAHA.cjs → chunk-B3GM5I6N.cjs} +4 -4
  40. package/dist/chunk-C3BOESDW.mjs +541 -0
  41. package/dist/{chunk-WJFFPXCV.cjs → chunk-D7UQC4O6.cjs} +10 -8
  42. package/dist/{chunk-KRRZJ77U.mjs → chunk-E5DXF5GE.mjs} +2 -2
  43. package/dist/chunk-EFZGB7JC.cjs +114 -0
  44. package/dist/{chunk-NYQSC4DX.cjs → chunk-FFE2EMF7.cjs} +5 -5
  45. package/dist/{chunk-KMB5BMFX.mjs → chunk-GAO7MS5O.mjs} +9 -3
  46. package/dist/{chunk-HIFIG6HL.cjs → chunk-H33PJEXN.cjs} +5 -5
  47. package/dist/{chunk-TT66CP3P.cjs → chunk-HLWOWZFX.cjs} +2 -2
  48. package/dist/chunk-JXEPLIXD.cjs +389 -0
  49. package/dist/{chunk-VITZRYW3.cjs → chunk-KLNFJDFM.cjs} +15 -9
  50. package/dist/{chunk-KBRZAYI7.mjs → chunk-LDNSSHEG.mjs} +2 -2
  51. package/dist/chunk-LLZSYFOM.mjs +6 -0
  52. package/dist/{chunk-N77JBPLC.mjs → chunk-LPDKG6RA.mjs} +9 -7
  53. package/dist/chunk-MIGFX2FN.mjs +758 -0
  54. package/dist/{chunk-72D2NX77.mjs → chunk-MRNDAJEV.mjs} +1 -1
  55. package/dist/{chunk-5A5GAZ75.mjs → chunk-NOTSHVRN.mjs} +406 -234
  56. package/dist/{chunk-AGR7VJH2.cjs → chunk-OAMUSC7H.cjs} +1 -1
  57. package/dist/chunk-P6MHI5O2.cjs +758 -0
  58. package/dist/{chunk-EOSFVNXZ.mjs → chunk-R4PHCZ3G.mjs} +1 -1
  59. package/dist/{chunk-X2M4XN4V.cjs → chunk-TQMI6BYO.cjs} +675 -430
  60. package/dist/{chunk-76GHW3WI.cjs → chunk-TSFMFPRU.cjs} +4 -4
  61. package/dist/{chunk-5N7QAGEA.cjs → chunk-TWHXBMLJ.cjs} +37 -7
  62. package/dist/{chunk-BOVGCUDZ.cjs → chunk-UJL4JOXV.cjs} +2 -2
  63. package/dist/chunk-UQF3OJVE.mjs +389 -0
  64. package/dist/{chunk-XY4DYGSU.cjs → chunk-WGUHDWT5.cjs} +607 -435
  65. package/dist/{chunk-LAZK6UV7.mjs → chunk-YAJTD3ZG.mjs} +1 -1
  66. package/dist/{chunk-7UPCJDB5.mjs → chunk-YUEYBL35.mjs} +2 -2
  67. package/dist/{chunk-EIMK7D2D.mjs → chunk-ZD2VKAUI.mjs} +34 -4
  68. package/dist/chunk-ZNXTU4YH.mjs +114 -0
  69. package/dist/{client-plugins.d-C_3CdALC.d.mts → client-plugins.d-DllmH8eM.d.mts} +31 -5
  70. package/dist/{client-plugins.d-C0n8Yhh-.d.ts → client-plugins.d-n3iWY1EJ.d.ts} +31 -5
  71. package/dist/client-plugins.d.mts +2 -2
  72. package/dist/client-plugins.d.ts +2 -2
  73. package/dist/client.d.mts +7 -7
  74. package/dist/client.d.ts +7 -7
  75. package/dist/{config.d-CnhyvvmT.d.ts → config.d-DqKaCr1r.d.mts} +14 -3
  76. package/dist/{config.d-CnhyvvmT.d.mts → config.d-DqKaCr1r.d.ts} +14 -3
  77. package/dist/config.d.mts +2 -2
  78. package/dist/config.d.ts +2 -2
  79. package/dist/desktop.d.mts +3 -3
  80. package/dist/desktop.d.ts +3 -3
  81. package/dist/{devtools-KJFUE5FO.cjs → devtools-TO6TAO32.cjs} +5 -5
  82. package/dist/{devtools-BU5IT2PD.mjs → devtools-UESYARTF.mjs} +4 -4
  83. package/dist/docs.cjs +7 -7
  84. package/dist/docs.d.mts +3 -3
  85. package/dist/docs.d.ts +3 -3
  86. package/dist/docs.mjs +6 -6
  87. package/dist/index.cjs +23 -18
  88. package/dist/{index.d-CsGxS-hZ.d.mts → index.d-BL7KKiwa.d.mts} +1 -1
  89. package/dist/{index.d-B6M_8kmo.d.ts → index.d-BXsAXm1U.d.ts} +1 -1
  90. package/dist/index.d.mts +17 -17
  91. package/dist/index.d.ts +17 -17
  92. package/dist/index.mjs +23 -18
  93. package/dist/integrations.d.mts +2 -2
  94. package/dist/integrations.d.ts +2 -2
  95. package/dist/internal/app-markdown-runtime.cjs +3 -3
  96. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  97. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  98. package/dist/internal/app-markdown-runtime.mjs +2 -2
  99. package/dist/internal/build-runtime.cjs +21 -18
  100. package/dist/internal/build-runtime.d.mts +4 -4
  101. package/dist/internal/build-runtime.d.ts +4 -4
  102. package/dist/internal/build-runtime.mjs +20 -17
  103. package/dist/internal/cli-runtime.cjs +7 -7
  104. package/dist/internal/cli-runtime.mjs +6 -6
  105. package/dist/internal/client-error-overlay.cjs +4 -4
  106. package/dist/internal/client-error-overlay.mjs +1 -1
  107. package/dist/internal/client-runtime.d.mts +5 -5
  108. package/dist/internal/client-runtime.d.ts +5 -5
  109. package/dist/internal/compression-runtime.d.mts +2 -2
  110. package/dist/internal/compression-runtime.d.ts +2 -2
  111. package/dist/internal/config-runtime.cjs +6 -6
  112. package/dist/internal/config-runtime.d.mts +41 -80
  113. package/dist/internal/config-runtime.d.ts +41 -80
  114. package/dist/internal/config-runtime.mjs +5 -5
  115. package/dist/internal/infra-analytics-runtime.cjs +8 -8
  116. package/dist/internal/infra-analytics-runtime.mjs +6 -6
  117. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  118. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  119. package/dist/internal/production-runtime.cjs +91 -9
  120. package/dist/internal/production-runtime.d.mts +67 -12
  121. package/dist/internal/production-runtime.d.ts +67 -12
  122. package/dist/internal/production-runtime.mjs +90 -8
  123. package/dist/markdown.cjs +4 -2
  124. package/dist/markdown.d.mts +2 -2
  125. package/dist/markdown.d.ts +2 -2
  126. package/dist/markdown.mjs +3 -1
  127. package/dist/middleware.d.mts +4 -4
  128. package/dist/middleware.d.ts +4 -4
  129. package/dist/mobile.d.mts +21 -5
  130. package/dist/mobile.d.ts +21 -5
  131. package/dist/native-tree-EBPDFTRW.mjs +25 -0
  132. package/dist/native-tree-MMZS7S6W.cjs +25 -0
  133. package/dist/{navigation-delegate.d-C0BbdUgN.d.mts → navigation-delegate.d-C76gXTmO.d.mts} +1 -1
  134. package/dist/{navigation-delegate.d-jArRF0ZP.d.ts → navigation-delegate.d-DIyDslxt.d.ts} +1 -1
  135. package/dist/navigation.d.mts +5 -5
  136. package/dist/navigation.d.ts +5 -5
  137. package/dist/plugin.cjs +14 -13
  138. package/dist/plugin.d.mts +5 -4
  139. package/dist/plugin.d.ts +5 -4
  140. package/dist/plugin.mjs +13 -12
  141. package/dist/{production-runtime.d-DFaQ1qaV.d.mts → production-runtime.d-CDHztggO.d.mts} +1 -1
  142. package/dist/{production-runtime.d-UnXmSS_S.d.ts → production-runtime.d-tyaGdbk6.d.ts} +1 -1
  143. package/dist/{programmatic-routes-client.d-VZ0qcbH4.d.ts → programmatic-routes-client.d-XfmIrCK1.d.ts} +2 -2
  144. package/dist/{programmatic-routes-client.d-BIowUXQC.d.mts → programmatic-routes-client.d-aAWiDd64.d.mts} +2 -2
  145. package/dist/{render-plan.d-BNeqyPyJ.d.mts → render-plan.d-Diwybxo8.d.mts} +1 -1
  146. package/dist/{render-plan.d-BB6KrYjP.d.ts → render-plan.d-Dr5WRjoV.d.ts} +1 -1
  147. package/dist/renderer-client.d.mts +5 -5
  148. package/dist/renderer-client.d.ts +5 -5
  149. package/dist/{request.d-Bxhghm76.d.ts → request.d-D01fRn--.d.ts} +1 -1
  150. package/dist/{request.d-BV1munmx.d.mts → request.d-Dd3AFR79.d.mts} +1 -1
  151. package/dist/request.d.mts +3 -3
  152. package/dist/request.d.ts +3 -3
  153. package/dist/{route-rendering.d-DShqKlgK.d.mts → route-rendering.d-BQ53lJ_D.d.mts} +1 -1
  154. package/dist/{route-rendering.d-BIf7zE9d.d.ts → route-rendering.d-Bhx4QoJt.d.ts} +1 -1
  155. package/dist/{router.d-BE7i84fb.d.mts → router.d-Bi23a6Xc.d.mts} +1 -1
  156. package/dist/{router.d-Bw3K3b0a.d.ts → router.d-DQ3k7EYn.d.ts} +1 -1
  157. package/dist/{routes.d-_5tBQexL.d.mts → routes.d-BgTd7vI4.d.mts} +91 -4
  158. package/dist/{routes.d-DVZQL0-H.d.ts → routes.d-C7jMJFvP.d.ts} +91 -4
  159. package/dist/routes.d.mts +2 -2
  160. package/dist/routes.d.ts +2 -2
  161. package/dist/{rsc-pipeline-FBM6NFYY.mjs → rsc-pipeline-K3ER3Q4N.mjs} +5 -5
  162. package/dist/{rsc-pipeline-IQI5XQLS.cjs → rsc-pipeline-OCZIT5OF.cjs} +6 -6
  163. package/dist/{runtime-DXEVFYLE.cjs → runtime-DKNSIH7V.cjs} +85 -29
  164. package/dist/{runtime-2JYIDUON.mjs → runtime-MKYDEUZT.mjs} +75 -19
  165. package/dist/{runtime.d-CQgoYR0Q.d.mts → runtime.d-B2Js6qZ2.d.mts} +1 -1
  166. package/dist/{runtime.d-CfhaLPl-.d.ts → runtime.d-BL-CGwoi.d.ts} +1 -1
  167. package/dist/server-plugins.d.mts +3 -3
  168. package/dist/server-plugins.d.ts +3 -3
  169. package/dist/server.cjs +31 -30
  170. package/dist/server.d.mts +11 -10
  171. package/dist/server.d.ts +11 -10
  172. package/dist/server.mjs +16 -15
  173. package/dist/session-AAU7RNRO.cjs +23 -0
  174. package/dist/session-IGEDQ5PY.mjs +23 -0
  175. package/dist/{spa-router.d-D63jb6nX.d.mts → spa-router.d-B2rIFGs0.d.mts} +2 -2
  176. package/dist/{spa-router.d-C5opIgXg.d.ts → spa-router.d-DqZ6Lfs0.d.ts} +2 -2
  177. package/dist/testing.d.mts +2 -2
  178. package/dist/testing.d.ts +2 -2
  179. package/dist/{utils.d-CkpTqTsC.d.ts → utils.d-Bv2MPeLR.d.ts} +1 -1
  180. package/dist/{utils.d-CO-U4OVZ.d.mts → utils.d-fqXe8lNc.d.mts} +1 -1
  181. package/dist/version.cjs +2 -2
  182. package/dist/version.mjs +1 -1
  183. package/dist/vite.cjs +14 -13
  184. package/dist/vite.d.mts +12 -6
  185. package/dist/vite.d.ts +12 -6
  186. package/dist/vite.mjs +13 -12
  187. package/package.json +3 -3
@@ -1,12 +1,12 @@
1
1
  export { _runWithAfterRequest } from '../after.mjs';
2
- export { c as createFarmAppManifestResponse } from '../app-manifest.d-BJDcZn3W.mjs';
3
- import { g1 as MiddlewareMatcher, bo as ResolvedFarmConfig, du as FarmIntegrationsUserConfig, b9 as StaticPathParams, eK as ResolvedFarmMCPConfig, bq as FarmMCPServerRegistration, g2 as FarmLlmsTxtLink, F as FarmPlugin, aF as FarmConfig, aM as FarmContextFactoryInput } from '../client-plugins.d-C_3CdALC.mjs';
4
- export { g3 as FarmLlmsTxtUserConfig, g4 as ResolvedFarmLlmsTxtConfig, g5 as applyFarmCspNonceToResponse, g6 as collectFarmLlmsTxtPages, g7 as createFarmAgentRobots, g8 as createFarmCspNonce, g9 as createFarmDefaultLlmsTxt, ga as createFarmDefaultSitemap, gb as createFarmLlmsFullRenderer, gc as createFarmLlmsMarkdownReader, gd as createFarmMetadataRouteResponse, bM as createFarmSearchParams, G as getFarmRedirectError, H as isFarmNotFoundError, I as isFarmRedirectError, ge as manageFarmDocumentPreloads, gf as manageFarmHtmlPreloads, gg as manageFarmLinkHeaderPreloads, bu as registerFarmMCPServer, gh as renderFarmLlmsFullTxt, gi as reportFarmPreloadWarnings, gj as resolveFarmLlmsTxtConfig, gk as resolveFarmSecurityConfig, bN as searchParamsToObject, gl as stampFarmCspNonce } from '../client-plugins.d-C_3CdALC.mjs';
5
- export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering.d-DShqKlgK.mjs';
2
+ export { c as createFarmAppManifestResponse } from '../app-manifest.d-DEQNnNhV.mjs';
3
+ import { g3 as MiddlewareMatcher, bo as ResolvedFarmConfig, dv as FarmIntegrationsUserConfig, b9 as StaticPathParams, eL as ResolvedFarmMCPConfig, bq as FarmMCPServerRegistration, g4 as FarmLlmsTxtLink, F as FarmPlugin, aF as FarmConfig, aM as FarmContextFactoryInput } from '../client-plugins.d-DllmH8eM.mjs';
4
+ export { g5 as FarmLlmsTxtUserConfig, g6 as ResolvedFarmLlmsTxtConfig, g7 as applyFarmCspNonceToResponse, g8 as collectFarmLlmsTxtPages, g9 as createFarmAgentRobots, ga as createFarmCspNonce, gb as createFarmDefaultLlmsTxt, gc as createFarmDefaultSitemap, gd as createFarmLlmsFullRenderer, ge as createFarmLlmsMarkdownReader, gf as createFarmMetadataRouteResponse, bM as createFarmSearchParams, G as getFarmRedirectError, H as isFarmNotFoundError, I as isFarmRedirectError, gg as manageFarmDocumentPreloads, gh as manageFarmHtmlPreloads, gi as manageFarmLinkHeaderPreloads, bu as registerFarmMCPServer, gj as renderFarmLlmsFullTxt, gk as reportFarmPreloadWarnings, gl as resolveFarmLlmsTxtConfig, gm as resolveFarmSecurityConfig, bN as searchParamsToObject, gn as stampFarmCspNonce } from '../client-plugins.d-DllmH8eM.mjs';
5
+ export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering.d-BQ53lJ_D.mjs';
6
6
  import { R as ResolvedFarmServerConfig } from '../workflows.d-CRMzQZ3k.mjs';
7
7
  export { f as FarmServerConfig, z as bufferFarmRequestBody, A as cloneFarmRequestWithContext, c as createFarmNodeRequestAbortSignal, B as createFarmRequestBodyErrorResponse, C as matchesFarmIfNoneMatch, E as readFarmRequestBody, G as readNodeRequestBody, H as resolveFarmServerConfig } from '../workflows.d-CRMzQZ3k.mjs';
8
8
  export { _registerFarmStorageModules, disposeStorage as disposeFarmStorage, initStorage as initFarmStorage } from '../storage.mjs';
9
- export { _ as _getRequestReadCount, a as _runWithCurrentRequest, b as _runWithFarmCspNonce, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request.d-BV1munmx.mjs';
9
+ export { _ as _getRequestReadCount, a as _runWithCurrentRequest, b as _runWithFarmCspNonce, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request.d-Dd3AFR79.mjs';
10
10
  export { f as fetchFarmExternalRewrite } from '../response.d-BolW0Vx_.mjs';
11
11
  import { A as APIRequestRuntime } from '../server-client-bridge.d-DKWDl5NB.mjs';
12
12
  export { configureFarmCache, createFarmCacheKey, getFarmDataCache, normalizeRevalidatePath } from '../cache.mjs';
@@ -14,17 +14,17 @@ import { k as FarmI18nUserConfig, R as ResolvedFarmI18nConfig } from '../types.d
14
14
  export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver.d-JnZKKsc5.mjs';
15
15
  import { F as FarmLocalePathConfig } from '../index.d-BqcfqJvt.mjs';
16
16
  export { l as localizeFarmHref, a as localizeFarmPathname, s as stripFarmLocaleFromPathname } from '../index.d-BqcfqJvt.mjs';
17
- import { F as FarmDefaultMCPPage } from '../agent-mcp.d-BPzpKBHQ.mjs';
18
- export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, d as collectFarmDefaultMCPPages, m as mergeMetadata, e as mergeModuleViewport, r as renderMetadataHead, f as renderViewportHead, g as resolveFarmDefaultMCPServer, h as resolveFarmNotFoundMetadata, i as resolveMetadataTitle } from '../agent-mcp.d-BPzpKBHQ.mjs';
19
- export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, f as _withFarmGuardedResponseCache, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime.d-DFaQ1qaV.mjs';
17
+ import { F as FarmDefaultMCPPage } from '../agent-mcp.d-BJKChOrO.mjs';
18
+ export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, d as collectFarmDefaultMCPPages, m as mergeMetadata, e as mergeModuleViewport, r as renderMetadataHead, f as renderViewportHead, g as resolveFarmDefaultMCPServer, h as resolveFarmNotFoundMetadata, i as resolveMetadataTitle } from '../agent-mcp.d-BJKChOrO.mjs';
19
+ export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, f as _withFarmGuardedResponseCache, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime.d-CDHztggO.mjs';
20
20
  export { H as configureFarmObservability, J as emitFarmEvent, P as runWithFarmRequestSpan } from '../observability.d-B2363jB6.mjs';
21
21
  export { f as createFarmInstrumentationLifecycle, r as resolveFarmInstrumentationRuntime } from '../instrumentation-runtime.d-CX9Zh-16.mjs';
22
22
  export { _setDefaultFarmThemeConfig, getTheme } from '../theme/server.mjs';
23
23
  import { c as FarmThemeRuntime, d as FarmThemeConfig, R as ResolvedFarmThemeConfig, a as FarmThemePreference } from '../types.d-DQnyD3VD.mjs';
24
- export { m as matchFarmPageRoute, p as parseRoutePath } from '../utils.d-CO-U4OVZ.mjs';
24
+ export { m as matchFarmPageRoute, p as parseRoutePath } from '../utils.d-fqXe8lNc.mjs';
25
25
  export { c as applyFarmBasePath, r as resolveFarmTrailingSlashRedirect, s as setFarmBasePath, a as setFarmTrailingSlashPreference, b as stripFarmBasePath } from '../base-path.d-BOUV5ozD.mjs';
26
26
  export { handleFarmFormActionRequest } from './form-actions.mjs';
27
- export { g as getSharedLayoutPrefixLength, p as parseFarmLayoutChainHeader } from '../render-plan.d-BNeqyPyJ.mjs';
27
+ export { g as getSharedLayoutPrefixLength, p as parseFarmLayoutChainHeader } from '../render-plan.d-Diwybxo8.mjs';
28
28
  import 'node:http';
29
29
  import '../lifecycle.d-C2aLBOwu.mjs';
30
30
  import '../route.d-BaVH3V0w.mjs';
@@ -50,11 +50,33 @@ import '../layers.d-CcS42OGR.mjs';
50
50
  import 'rolldown/utils';
51
51
  import 'rolldown';
52
52
  import '../image-config.d-CeDgNyX4.mjs';
53
- import '../config.d-CnhyvvmT.mjs';
53
+ import '../config.d-DqKaCr1r.mjs';
54
54
  import '../font.mjs';
55
55
  import '@opentelemetry/api';
56
56
  import '../island.d-CfGru1MO.mjs';
57
57
 
58
+ /** What the server needs to point a document at the mobile client, from `mobile-client.json`. */
59
+ interface FarmMobileShellClient {
60
+ /** The web client entry as documents reference it, such as `/farm-client-h1a2b3c4d.js`. */
61
+ webEntry: string;
62
+ /** The mobile client entry that replaces it, such as `/farm-mobile-client-h5e6f7a8b.js`. */
63
+ entry: string;
64
+ /**
65
+ * Web client files, without the leading slash, that the mobile client does not load. Their
66
+ * modulepreload links are dropped from a shell's document; shared chunks keep theirs.
67
+ */
68
+ webOnly: string[];
69
+ }
70
+ /**
71
+ * Point a document at the mobile client when a mobile shell asked for it.
72
+ *
73
+ * HTML responses of an app with a mobile client always carry `Vary: X-Farm-Shell`, so a cache that
74
+ * honors it never hands one variant to the other. A shell's document is also `private, no-store`
75
+ * (as a guarded response is), so no shared cache stores it at all; `onPrivate` tells the adapter,
76
+ * which keeps that policy under cache route rules. Anything other than HTML passes through.
77
+ */
78
+ declare function _applyFarmMobileShellClient(request: Request, response: Response, client: FarmMobileShellClient | null, onPrivate?: () => void): Response;
79
+
58
80
  /**
59
81
  * The `config` a middleware file exports, read from its source at build time so prerendering
60
82
  * knows which paths the file's own `matcher` leaves alone. Only literal matchers count (strings,
@@ -243,6 +265,16 @@ declare function resolveFarmMarkdownRouteLabel(routePathname: string, matchPageP
243
265
  /** The CSP nonce of the response being rendered, when `security.csp.nonce` is on. */
244
266
  declare function _resolveCurrentCspNonce(): string | undefined;
245
267
 
268
+ /**
269
+ * Answer the shell's request for a page's tree. `renderPage` renders the page for a browser.
270
+ * Responses that are not an HTML page (a redirect, a sign-in gate, an error) go back as they are,
271
+ * so the shell can follow or show them as it would for the web screen.
272
+ */
273
+ declare function createFarmNativeTreeResponse(options: {
274
+ request: Request;
275
+ renderPage: (request: Request) => Response | Promise<Response>;
276
+ }): Promise<Response>;
277
+
246
278
  /** Bind the owning app's live route dispatcher, never a process-wide route table. */
247
279
  declare function _runWithAPIRequestRuntime<T>(runtime: APIRequestRuntime, run: () => T): T;
248
280
 
@@ -473,6 +505,29 @@ declare function appendFarmRedirectQuery(destination: string, search: string): s
473
505
  declare function ignoreFarmHeldValues(): void;
474
506
  declare function installFarmIslandValues(): void;
475
507
 
508
+ interface FarmMobileSessionStore {
509
+ getItem(key: string): Promise<unknown>;
510
+ setItem(key: string, value: unknown): Promise<void>;
511
+ removeItem(key: string): Promise<void>;
512
+ }
513
+ interface FarmMobileSessionOptions {
514
+ /** The app's basePath ("" or "/base"). The marker cookie's Path. */
515
+ basePath?: string;
516
+ /** The app's integrations; the first with `session()` decides who is signed in. */
517
+ integrations: () => Record<string, unknown> | undefined;
518
+ /** Defaults to `getStorage("farm-mobile")`. */
519
+ storage?: () => FarmMobileSessionStore;
520
+ /** Access token lifetime in seconds. @default 900 */
521
+ accessTokenTtl?: number;
522
+ /** Refresh token lifetime in seconds. @default 2592000 (30 days) */
523
+ refreshTokenTtl?: number;
524
+ /** Challenge nonce lifetime in seconds. @default 60 */
525
+ nonceTtl?: number;
526
+ /** Clock, for tests. */
527
+ now?: () => number;
528
+ }
529
+ declare function createFarmMobileSessionPlugin(options: FarmMobileSessionOptions): FarmPlugin;
530
+
476
531
  declare function appendFarmLinkHeader(headers: Headers, value: string): void;
477
532
 
478
- export { _farmPluginsKeepResponsesPrivate, _isFarmOwnedResponse, _markFarmOwnedResponse, _resolveCurrentCspNonce, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appMiddlewareMayHandlePath, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, configMiddlewareMayHandlePath, createDefaultErrorMarkup, createFarmAiCatalogResponse, createFarmApiCatalogResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, ensureFarmDocumentMeta, farmPathGuardCoversEndpoint, farmPathGuardCoversPage, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, handleFarmDefaultMCPRequest, ignoreFarmHeldValues, installFarmIslandValues, isInRouteGroupScope as isInFarmRouteGroupScope, listFarmMCPLlmsTxtLinks, materializeSSGRoutePath, renderFarmLegacyErrorHtml, renderFarmLegacyHtml, renderFarmLocaleAlternateLinks, resolveDefaultErrorStatus, resolveFarmDocsEngineRouteLabel, resolveFarmDocsRouteLabel, resolveFarmI18nConfig, resolveFarmMCPRouteLabel, resolveFarmMarkdownRouteLabel, resolveFarmPreviewDeployment, resolveFarmRouteContext, serializeFarmInlineValue, setFarmRouteLabel, withFarmRouteContext };
533
+ export { _applyFarmMobileShellClient, _farmPluginsKeepResponsesPrivate, _isFarmOwnedResponse, _markFarmOwnedResponse, _resolveCurrentCspNonce, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appMiddlewareMayHandlePath, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, configMiddlewareMayHandlePath, createDefaultErrorMarkup, createFarmAiCatalogResponse, createFarmApiCatalogResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmMobileSessionPlugin, createFarmNativeTreeResponse, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, ensureFarmDocumentMeta, farmPathGuardCoversEndpoint, farmPathGuardCoversPage, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, handleFarmDefaultMCPRequest, ignoreFarmHeldValues, installFarmIslandValues, isInRouteGroupScope as isInFarmRouteGroupScope, listFarmMCPLlmsTxtLinks, materializeSSGRoutePath, renderFarmLegacyErrorHtml, renderFarmLegacyHtml, renderFarmLocaleAlternateLinks, resolveDefaultErrorStatus, resolveFarmDocsEngineRouteLabel, resolveFarmDocsRouteLabel, resolveFarmI18nConfig, resolveFarmMCPRouteLabel, resolveFarmMarkdownRouteLabel, resolveFarmPreviewDeployment, resolveFarmRouteContext, serializeFarmInlineValue, setFarmRouteLabel, withFarmRouteContext };
@@ -1,12 +1,12 @@
1
1
  export { _runWithAfterRequest } from '../after.js';
2
- export { c as createFarmAppManifestResponse } from '../app-manifest.d-HWhqbP2X.js';
3
- import { g1 as MiddlewareMatcher, bo as ResolvedFarmConfig, du as FarmIntegrationsUserConfig, b9 as StaticPathParams, eK as ResolvedFarmMCPConfig, bq as FarmMCPServerRegistration, g2 as FarmLlmsTxtLink, F as FarmPlugin, aF as FarmConfig, aM as FarmContextFactoryInput } from '../client-plugins.d-C0n8Yhh-.js';
4
- export { g3 as FarmLlmsTxtUserConfig, g4 as ResolvedFarmLlmsTxtConfig, g5 as applyFarmCspNonceToResponse, g6 as collectFarmLlmsTxtPages, g7 as createFarmAgentRobots, g8 as createFarmCspNonce, g9 as createFarmDefaultLlmsTxt, ga as createFarmDefaultSitemap, gb as createFarmLlmsFullRenderer, gc as createFarmLlmsMarkdownReader, gd as createFarmMetadataRouteResponse, bM as createFarmSearchParams, G as getFarmRedirectError, H as isFarmNotFoundError, I as isFarmRedirectError, ge as manageFarmDocumentPreloads, gf as manageFarmHtmlPreloads, gg as manageFarmLinkHeaderPreloads, bu as registerFarmMCPServer, gh as renderFarmLlmsFullTxt, gi as reportFarmPreloadWarnings, gj as resolveFarmLlmsTxtConfig, gk as resolveFarmSecurityConfig, bN as searchParamsToObject, gl as stampFarmCspNonce } from '../client-plugins.d-C0n8Yhh-.js';
5
- export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering.d-BIf7zE9d.js';
2
+ export { c as createFarmAppManifestResponse } from '../app-manifest.d-BLFbaqx8.js';
3
+ import { g3 as MiddlewareMatcher, bo as ResolvedFarmConfig, dv as FarmIntegrationsUserConfig, b9 as StaticPathParams, eL as ResolvedFarmMCPConfig, bq as FarmMCPServerRegistration, g4 as FarmLlmsTxtLink, F as FarmPlugin, aF as FarmConfig, aM as FarmContextFactoryInput } from '../client-plugins.d-n3iWY1EJ.js';
4
+ export { g5 as FarmLlmsTxtUserConfig, g6 as ResolvedFarmLlmsTxtConfig, g7 as applyFarmCspNonceToResponse, g8 as collectFarmLlmsTxtPages, g9 as createFarmAgentRobots, ga as createFarmCspNonce, gb as createFarmDefaultLlmsTxt, gc as createFarmDefaultSitemap, gd as createFarmLlmsFullRenderer, ge as createFarmLlmsMarkdownReader, gf as createFarmMetadataRouteResponse, bM as createFarmSearchParams, G as getFarmRedirectError, H as isFarmNotFoundError, I as isFarmRedirectError, gg as manageFarmDocumentPreloads, gh as manageFarmHtmlPreloads, gi as manageFarmLinkHeaderPreloads, bu as registerFarmMCPServer, gj as renderFarmLlmsFullTxt, gk as reportFarmPreloadWarnings, gl as resolveFarmLlmsTxtConfig, gm as resolveFarmSecurityConfig, bN as searchParamsToObject, gn as stampFarmCspNonce } from '../client-plugins.d-n3iWY1EJ.js';
5
+ export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering.d-Bhx4QoJt.js';
6
6
  import { R as ResolvedFarmServerConfig } from '../workflows.d-CRMzQZ3k.js';
7
7
  export { f as FarmServerConfig, z as bufferFarmRequestBody, A as cloneFarmRequestWithContext, c as createFarmNodeRequestAbortSignal, B as createFarmRequestBodyErrorResponse, C as matchesFarmIfNoneMatch, E as readFarmRequestBody, G as readNodeRequestBody, H as resolveFarmServerConfig } from '../workflows.d-CRMzQZ3k.js';
8
8
  export { _registerFarmStorageModules, disposeStorage as disposeFarmStorage, initStorage as initFarmStorage } from '../storage.js';
9
- export { _ as _getRequestReadCount, a as _runWithCurrentRequest, b as _runWithFarmCspNonce, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request.d-Bxhghm76.js';
9
+ export { _ as _getRequestReadCount, a as _runWithCurrentRequest, b as _runWithFarmCspNonce, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request.d-D01fRn--.js';
10
10
  export { f as fetchFarmExternalRewrite } from '../response.d-BolW0Vx_.js';
11
11
  import { A as APIRequestRuntime } from '../server-client-bridge.d-DKWDl5NB.js';
12
12
  export { configureFarmCache, createFarmCacheKey, getFarmDataCache, normalizeRevalidatePath } from '../cache.js';
@@ -14,17 +14,17 @@ import { k as FarmI18nUserConfig, R as ResolvedFarmI18nConfig } from '../types.d
14
14
  export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver.d-BHyZgpa7.js';
15
15
  import { F as FarmLocalePathConfig } from '../index.d-BNNDpql4.js';
16
16
  export { l as localizeFarmHref, a as localizeFarmPathname, s as stripFarmLocaleFromPathname } from '../index.d-BNNDpql4.js';
17
- import { F as FarmDefaultMCPPage } from '../agent-mcp.d-ZuuNgrkQ.js';
18
- export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, d as collectFarmDefaultMCPPages, m as mergeMetadata, e as mergeModuleViewport, r as renderMetadataHead, f as renderViewportHead, g as resolveFarmDefaultMCPServer, h as resolveFarmNotFoundMetadata, i as resolveMetadataTitle } from '../agent-mcp.d-ZuuNgrkQ.js';
19
- export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, f as _withFarmGuardedResponseCache, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime.d-UnXmSS_S.js';
17
+ import { F as FarmDefaultMCPPage } from '../agent-mcp.d-BAR9njbJ.js';
18
+ export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, d as collectFarmDefaultMCPPages, m as mergeMetadata, e as mergeModuleViewport, r as renderMetadataHead, f as renderViewportHead, g as resolveFarmDefaultMCPServer, h as resolveFarmNotFoundMetadata, i as resolveMetadataTitle } from '../agent-mcp.d-BAR9njbJ.js';
19
+ export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, f as _withFarmGuardedResponseCache, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime.d-tyaGdbk6.js';
20
20
  export { H as configureFarmObservability, J as emitFarmEvent, P as runWithFarmRequestSpan } from '../observability.d-B2363jB6.js';
21
21
  export { f as createFarmInstrumentationLifecycle, r as resolveFarmInstrumentationRuntime } from '../instrumentation-runtime.d-CX9Zh-16.js';
22
22
  export { _setDefaultFarmThemeConfig, getTheme } from '../theme/server.js';
23
23
  import { c as FarmThemeRuntime, d as FarmThemeConfig, R as ResolvedFarmThemeConfig, a as FarmThemePreference } from '../types.d-DQnyD3VD.js';
24
- export { m as matchFarmPageRoute, p as parseRoutePath } from '../utils.d-CkpTqTsC.js';
24
+ export { m as matchFarmPageRoute, p as parseRoutePath } from '../utils.d-Bv2MPeLR.js';
25
25
  export { c as applyFarmBasePath, r as resolveFarmTrailingSlashRedirect, s as setFarmBasePath, a as setFarmTrailingSlashPreference, b as stripFarmBasePath } from '../base-path.d-BOUV5ozD.js';
26
26
  export { handleFarmFormActionRequest } from './form-actions.js';
27
- export { g as getSharedLayoutPrefixLength, p as parseFarmLayoutChainHeader } from '../render-plan.d-BB6KrYjP.js';
27
+ export { g as getSharedLayoutPrefixLength, p as parseFarmLayoutChainHeader } from '../render-plan.d-Dr5WRjoV.js';
28
28
  import 'node:http';
29
29
  import '../lifecycle.d-C2aLBOwu.js';
30
30
  import '../route.d-DBTEqifW.js';
@@ -50,11 +50,33 @@ import '../layers.d-CcS42OGR.js';
50
50
  import 'rolldown/utils';
51
51
  import 'rolldown';
52
52
  import '../image-config.d-CeDgNyX4.js';
53
- import '../config.d-CnhyvvmT.js';
53
+ import '../config.d-DqKaCr1r.js';
54
54
  import '../font.js';
55
55
  import '@opentelemetry/api';
56
56
  import '../island.d-CfGru1MO.js';
57
57
 
58
+ /** What the server needs to point a document at the mobile client, from `mobile-client.json`. */
59
+ interface FarmMobileShellClient {
60
+ /** The web client entry as documents reference it, such as `/farm-client-h1a2b3c4d.js`. */
61
+ webEntry: string;
62
+ /** The mobile client entry that replaces it, such as `/farm-mobile-client-h5e6f7a8b.js`. */
63
+ entry: string;
64
+ /**
65
+ * Web client files, without the leading slash, that the mobile client does not load. Their
66
+ * modulepreload links are dropped from a shell's document; shared chunks keep theirs.
67
+ */
68
+ webOnly: string[];
69
+ }
70
+ /**
71
+ * Point a document at the mobile client when a mobile shell asked for it.
72
+ *
73
+ * HTML responses of an app with a mobile client always carry `Vary: X-Farm-Shell`, so a cache that
74
+ * honors it never hands one variant to the other. A shell's document is also `private, no-store`
75
+ * (as a guarded response is), so no shared cache stores it at all; `onPrivate` tells the adapter,
76
+ * which keeps that policy under cache route rules. Anything other than HTML passes through.
77
+ */
78
+ declare function _applyFarmMobileShellClient(request: Request, response: Response, client: FarmMobileShellClient | null, onPrivate?: () => void): Response;
79
+
58
80
  /**
59
81
  * The `config` a middleware file exports, read from its source at build time so prerendering
60
82
  * knows which paths the file's own `matcher` leaves alone. Only literal matchers count (strings,
@@ -243,6 +265,16 @@ declare function resolveFarmMarkdownRouteLabel(routePathname: string, matchPageP
243
265
  /** The CSP nonce of the response being rendered, when `security.csp.nonce` is on. */
244
266
  declare function _resolveCurrentCspNonce(): string | undefined;
245
267
 
268
+ /**
269
+ * Answer the shell's request for a page's tree. `renderPage` renders the page for a browser.
270
+ * Responses that are not an HTML page (a redirect, a sign-in gate, an error) go back as they are,
271
+ * so the shell can follow or show them as it would for the web screen.
272
+ */
273
+ declare function createFarmNativeTreeResponse(options: {
274
+ request: Request;
275
+ renderPage: (request: Request) => Response | Promise<Response>;
276
+ }): Promise<Response>;
277
+
246
278
  /** Bind the owning app's live route dispatcher, never a process-wide route table. */
247
279
  declare function _runWithAPIRequestRuntime<T>(runtime: APIRequestRuntime, run: () => T): T;
248
280
 
@@ -473,6 +505,29 @@ declare function appendFarmRedirectQuery(destination: string, search: string): s
473
505
  declare function ignoreFarmHeldValues(): void;
474
506
  declare function installFarmIslandValues(): void;
475
507
 
508
+ interface FarmMobileSessionStore {
509
+ getItem(key: string): Promise<unknown>;
510
+ setItem(key: string, value: unknown): Promise<void>;
511
+ removeItem(key: string): Promise<void>;
512
+ }
513
+ interface FarmMobileSessionOptions {
514
+ /** The app's basePath ("" or "/base"). The marker cookie's Path. */
515
+ basePath?: string;
516
+ /** The app's integrations; the first with `session()` decides who is signed in. */
517
+ integrations: () => Record<string, unknown> | undefined;
518
+ /** Defaults to `getStorage("farm-mobile")`. */
519
+ storage?: () => FarmMobileSessionStore;
520
+ /** Access token lifetime in seconds. @default 900 */
521
+ accessTokenTtl?: number;
522
+ /** Refresh token lifetime in seconds. @default 2592000 (30 days) */
523
+ refreshTokenTtl?: number;
524
+ /** Challenge nonce lifetime in seconds. @default 60 */
525
+ nonceTtl?: number;
526
+ /** Clock, for tests. */
527
+ now?: () => number;
528
+ }
529
+ declare function createFarmMobileSessionPlugin(options: FarmMobileSessionOptions): FarmPlugin;
530
+
476
531
  declare function appendFarmLinkHeader(headers: Headers, value: string): void;
477
532
 
478
- export { _farmPluginsKeepResponsesPrivate, _isFarmOwnedResponse, _markFarmOwnedResponse, _resolveCurrentCspNonce, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appMiddlewareMayHandlePath, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, configMiddlewareMayHandlePath, createDefaultErrorMarkup, createFarmAiCatalogResponse, createFarmApiCatalogResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, ensureFarmDocumentMeta, farmPathGuardCoversEndpoint, farmPathGuardCoversPage, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, handleFarmDefaultMCPRequest, ignoreFarmHeldValues, installFarmIslandValues, isInRouteGroupScope as isInFarmRouteGroupScope, listFarmMCPLlmsTxtLinks, materializeSSGRoutePath, renderFarmLegacyErrorHtml, renderFarmLegacyHtml, renderFarmLocaleAlternateLinks, resolveDefaultErrorStatus, resolveFarmDocsEngineRouteLabel, resolveFarmDocsRouteLabel, resolveFarmI18nConfig, resolveFarmMCPRouteLabel, resolveFarmMarkdownRouteLabel, resolveFarmPreviewDeployment, resolveFarmRouteContext, serializeFarmInlineValue, setFarmRouteLabel, withFarmRouteContext };
533
+ export { _applyFarmMobileShellClient, _farmPluginsKeepResponsesPrivate, _isFarmOwnedResponse, _markFarmOwnedResponse, _resolveCurrentCspNonce, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appMiddlewareMayHandlePath, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, configMiddlewareMayHandlePath, createDefaultErrorMarkup, createFarmAiCatalogResponse, createFarmApiCatalogResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmMobileSessionPlugin, createFarmNativeTreeResponse, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, ensureFarmDocumentMeta, farmPathGuardCoversEndpoint, farmPathGuardCoversPage, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, handleFarmDefaultMCPRequest, ignoreFarmHeldValues, installFarmIslandValues, isInRouteGroupScope as isInFarmRouteGroupScope, listFarmMCPLlmsTxtLinks, materializeSSGRoutePath, renderFarmLegacyErrorHtml, renderFarmLegacyHtml, renderFarmLocaleAlternateLinks, resolveDefaultErrorStatus, resolveFarmDocsEngineRouteLabel, resolveFarmDocsRouteLabel, resolveFarmI18nConfig, resolveFarmMCPRouteLabel, resolveFarmMarkdownRouteLabel, resolveFarmPreviewDeployment, resolveFarmRouteContext, serializeFarmInlineValue, setFarmRouteLabel, withFarmRouteContext };
@@ -1,9 +1,16 @@
1
+ import {
2
+ createFarmNativeTreeResponse
3
+ } from "../chunk-UQF3OJVE.mjs";
4
+ import "../chunk-MIGFX2FN.mjs";
1
5
  import {
2
6
  handleFarmDefaultMCPRequest
3
- } from "../chunk-72D2NX77.mjs";
7
+ } from "../chunk-MRNDAJEV.mjs";
4
8
  import {
5
9
  generateNativeMCPPluginSource
6
10
  } from "../chunk-KQH2COEJ.mjs";
11
+ import {
12
+ createFarmMobileSessionPlugin
13
+ } from "../chunk-C3BOESDW.mjs";
7
14
  import {
8
15
  _withFarmGuardedResponseCache,
9
16
  applyProductionMiddlewareHeaders,
@@ -32,7 +39,8 @@ import {
32
39
  parseFarmLayoutChainHeader,
33
40
  renderFarmLocaleAlternateLinks,
34
41
  resolveDefaultErrorStatus
35
- } from "../chunk-7UPCJDB5.mjs";
42
+ } from "../chunk-YUEYBL35.mjs";
43
+ import "../chunk-LLZSYFOM.mjs";
36
44
  import {
37
45
  _farmPluginsKeepResponsesPrivate
38
46
  } from "../chunk-UUMKLGUU.mjs";
@@ -53,11 +61,11 @@ import {
53
61
  resolveFarmMCPRouteLabel,
54
62
  resolveFarmMarkdownRouteLabel,
55
63
  setFarmRouteLabel
56
- } from "../chunk-QAIAFCRZ.mjs";
64
+ } from "../chunk-4TKAIO2F.mjs";
57
65
  import {
58
66
  collectFarmDefaultMCPPages,
59
67
  resolveFarmDefaultMCPServer
60
- } from "../chunk-KRRZJ77U.mjs";
68
+ } from "../chunk-E5DXF5GE.mjs";
61
69
  import {
62
70
  ignoreFarmHeldValues,
63
71
  installFarmIslandValues
@@ -80,7 +88,7 @@ import {
80
88
  manageFarmHtmlPreloads,
81
89
  manageFarmLinkHeaderPreloads,
82
90
  reportFarmPreloadWarnings
83
- } from "../chunk-KBRZAYI7.mjs";
91
+ } from "../chunk-LDNSSHEG.mjs";
84
92
  import "../chunk-2WZTGPK6.mjs";
85
93
  import {
86
94
  collectFarmLlmsTxtPages,
@@ -89,7 +97,7 @@ import {
89
97
  createFarmLlmsMarkdownReader,
90
98
  renderFarmLlmsFullTxt,
91
99
  resolveFarmLlmsTxtConfig
92
- } from "../chunk-LAZK6UV7.mjs";
100
+ } from "../chunk-YAJTD3ZG.mjs";
93
101
  import {
94
102
  applyFarmCspNonceToResponse,
95
103
  createFarmCspNonce,
@@ -98,7 +106,7 @@ import {
98
106
  } from "../chunk-22W4FNTG.mjs";
99
107
  import "../chunk-FSQMN2MQ.mjs";
100
108
  import "../chunk-YWPNIYUP.mjs";
101
- import "../chunk-N77JBPLC.mjs";
109
+ import "../chunk-LPDKG6RA.mjs";
102
110
  import {
103
111
  _registerFarmStorageModules,
104
112
  disposeStorage,
@@ -165,7 +173,7 @@ import {
165
173
  } from "../chunk-GFT5AHAT.mjs";
166
174
  import "../chunk-D2LCAV6L.mjs";
167
175
  import "../chunk-LM2YOGDK.mjs";
168
- import "../chunk-EOSFVNXZ.mjs";
176
+ import "../chunk-R4PHCZ3G.mjs";
169
177
  import {
170
178
  resolveFarmTrailingSlashRedirect,
171
179
  setFarmTrailingSlashPreference
@@ -513,6 +521,77 @@ function renderFarmLegacyErrorHtml() {
513
521
  return FARM_LEGACY_ERROR_HTML;
514
522
  }
515
523
 
524
+ // src/mobile/shell-response.ts
525
+ var FARM_SHELL_HEADER = "X-Farm-Shell";
526
+ function isFarmMobileShellRequest(request) {
527
+ const value = request.headers.get(FARM_SHELL_HEADER);
528
+ return value !== null && /^[a-z][a-z0-9-]{0,31}$/.test(value);
529
+ }
530
+ function isHtml(response) {
531
+ return response.headers.get("content-type")?.toLowerCase().includes("text/html") === true;
532
+ }
533
+ function appendVary(headers, name) {
534
+ const current = headers.get("Vary");
535
+ if (!current) {
536
+ headers.set("Vary", name);
537
+ return;
538
+ }
539
+ const names = current.split(",").map((value) => value.trim().toLowerCase());
540
+ if (names.includes("*") || names.includes(name.toLowerCase())) return;
541
+ headers.set("Vary", `${current}, ${name}`);
542
+ }
543
+ function escapeRegExp(value) {
544
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
545
+ }
546
+ var MAX_HELD_TAG = 4096;
547
+ function createFarmMobileShellRewriter(client) {
548
+ const entry = new RegExp(`(["'])${escapeRegExp(client.webEntry)}\\1`, "g");
549
+ const webOnly = new Set(client.webOnly);
550
+ const preload = /<link rel="modulepreload" href="\/([^"]+)"[^>]*>/g;
551
+ let held = "";
552
+ return (text, final = false) => {
553
+ let input = held + text;
554
+ held = "";
555
+ if (!final) {
556
+ const open = input.lastIndexOf("<");
557
+ if (open !== -1 && input.indexOf(">", open) === -1 && input.length - open <= MAX_HELD_TAG) {
558
+ held = input.slice(open);
559
+ input = input.slice(0, open);
560
+ }
561
+ }
562
+ return input.replace(entry, (_match, quote) => `${quote}${client.entry}${quote}`).replace(preload, (tag, file) => webOnly.has(file) ? "" : tag);
563
+ };
564
+ }
565
+ function _applyFarmMobileShellClient(request, response, client, onPrivate) {
566
+ if (!client || !isHtml(response)) return response;
567
+ if (!isFarmMobileShellRequest(request) || !response.body) {
568
+ return _withFarmResponseHeaders(response, (headers2) => appendVary(headers2, FARM_SHELL_HEADER));
569
+ }
570
+ onPrivate?.();
571
+ const headers = new Headers(_withFarmGuardedResponseCache(response).headers);
572
+ appendVary(headers, FARM_SHELL_HEADER);
573
+ headers.delete("content-length");
574
+ headers.delete("etag");
575
+ const rewrite = createFarmMobileShellRewriter(client);
576
+ const decoder = new TextDecoder();
577
+ const encoder = new TextEncoder();
578
+ const body = response.body.pipeThrough(
579
+ new TransformStream({
580
+ transform(chunk, controller) {
581
+ const output = rewrite(decoder.decode(chunk, { stream: true }));
582
+ if (output) controller.enqueue(encoder.encode(output));
583
+ },
584
+ flush(controller) {
585
+ const output = rewrite(decoder.decode(), true);
586
+ if (output) controller.enqueue(encoder.encode(output));
587
+ }
588
+ })
589
+ );
590
+ return _markFarmOwnedResponse(
591
+ new Response(body, { status: response.status, statusText: response.statusText, headers })
592
+ );
593
+ }
594
+
516
595
  // src/nitro/production-runtime.ts
517
596
  function appendFarmLinkHeader(headers, value) {
518
597
  const current = headers.get("Link");
@@ -525,6 +604,7 @@ function appendFarmLinkHeader(headers, value) {
525
604
  }
526
605
  }
527
606
  export {
607
+ _applyFarmMobileShellClient,
528
608
  _farmPluginsKeepResponsesPrivate,
529
609
  _getRequestReadCount,
530
610
  _isFarmOwnedResponse,
@@ -574,6 +654,8 @@ export {
574
654
  createFarmLlmsMarkdownReader,
575
655
  createFarmLocaleCookie,
576
656
  createFarmMetadataRouteResponse,
657
+ createFarmMobileSessionPlugin,
658
+ createFarmNativeTreeResponse,
577
659
  createFarmNodeRequestAbortSignal,
578
660
  createFarmProductionLifecycle,
579
661
  createFarmRequestBodyErrorResponse,
package/dist/markdown.cjs CHANGED
@@ -17,7 +17,8 @@
17
17
 
18
18
 
19
19
 
20
- var _chunkWJFFPXCVcjs = require('./chunk-WJFFPXCV.cjs');
20
+
21
+ var _chunkD7UQC4O6cjs = require('./chunk-D7UQC4O6.cjs');
21
22
  require('./chunk-6ONBZGVH.cjs');
22
23
  require('./chunk-EVIWKPJV.cjs');
23
24
  require('./chunk-B5BBTPJQ.cjs');
@@ -46,4 +47,5 @@ require('./chunk-BTZ5O6VM.cjs');
46
47
 
47
48
 
48
49
 
49
- exports.FARM_MARKDOWN_CONTENT_TYPE = _chunkWJFFPXCVcjs.FARM_MARKDOWN_CONTENT_TYPE; exports.FARM_MARKDOWN_PAGE_CHECK_HEADER = _chunkWJFFPXCVcjs.FARM_MARKDOWN_PAGE_CHECK_HEADER; exports._getFarmMarkdownPageCheckToken = _chunkWJFFPXCVcjs._getFarmMarkdownPageCheckToken; exports._isFarmMarkdownPageCheck = _chunkWJFFPXCVcjs._isFarmMarkdownPageCheck; exports.applyMarkdownNegotiationHeaders = _chunkWJFFPXCVcjs.applyMarkdownNegotiationHeaders; exports.createFarmMarkdownErrorBody = _chunkWJFFPXCVcjs.createFarmMarkdownErrorBody; exports.createMarkdownMirrorResponse = _chunkWJFFPXCVcjs.createMarkdownMirrorResponse; exports.extractFarmPageActions = _chunkWJFFPXCVcjs.extractFarmPageActions; exports.farmAcceptQuality = _chunkWJFFPXCVcjs.farmAcceptQuality; exports.farmRequestWantsMarkdown = _chunkWJFFPXCVcjs.farmRequestWantsMarkdown; exports.getFarmMarkdownAlternatePath = _chunkWJFFPXCVcjs.getFarmMarkdownAlternatePath; exports.getFarmMarkdownMirrorPath = _chunkWJFFPXCVcjs.getFarmMarkdownMirrorPath; exports.htmlToMarkdown = _chunkWJFFPXCVcjs.htmlToMarkdown; exports.isFarmMarkdownMirrorExposed = _chunkWJFFPXCVcjs.isFarmMarkdownMirrorExposed; exports.matchesFarmMarkdownRoutePattern = _chunkWJFFPXCVcjs.matchesFarmMarkdownRoutePattern; exports.requestAcceptsMarkdown = _chunkWJFFPXCVcjs.requestAcceptsMarkdown; exports.resolveMarkdownConfig = _chunkWJFFPXCVcjs.resolveMarkdownConfig; exports.resolveMarkdownMirrorTarget = _chunkWJFFPXCVcjs.resolveMarkdownMirrorTarget;
50
+
51
+ exports.FARM_MARKDOWN_CONTENT_TYPE = _chunkD7UQC4O6cjs.FARM_MARKDOWN_CONTENT_TYPE; exports.FARM_MARKDOWN_PAGE_CHECK_HEADER = _chunkD7UQC4O6cjs.FARM_MARKDOWN_PAGE_CHECK_HEADER; exports._getFarmMarkdownPageCheckToken = _chunkD7UQC4O6cjs._getFarmMarkdownPageCheckToken; exports._isFarmMarkdownPageCheck = _chunkD7UQC4O6cjs._isFarmMarkdownPageCheck; exports._readFarmRenderedHtml = _chunkD7UQC4O6cjs._readFarmRenderedHtml; exports.applyMarkdownNegotiationHeaders = _chunkD7UQC4O6cjs.applyMarkdownNegotiationHeaders; exports.createFarmMarkdownErrorBody = _chunkD7UQC4O6cjs.createFarmMarkdownErrorBody; exports.createMarkdownMirrorResponse = _chunkD7UQC4O6cjs.createMarkdownMirrorResponse; exports.extractFarmPageActions = _chunkD7UQC4O6cjs.extractFarmPageActions; exports.farmAcceptQuality = _chunkD7UQC4O6cjs.farmAcceptQuality; exports.farmRequestWantsMarkdown = _chunkD7UQC4O6cjs.farmRequestWantsMarkdown; exports.getFarmMarkdownAlternatePath = _chunkD7UQC4O6cjs.getFarmMarkdownAlternatePath; exports.getFarmMarkdownMirrorPath = _chunkD7UQC4O6cjs.getFarmMarkdownMirrorPath; exports.htmlToMarkdown = _chunkD7UQC4O6cjs.htmlToMarkdown; exports.isFarmMarkdownMirrorExposed = _chunkD7UQC4O6cjs.isFarmMarkdownMirrorExposed; exports.matchesFarmMarkdownRoutePattern = _chunkD7UQC4O6cjs.matchesFarmMarkdownRoutePattern; exports.requestAcceptsMarkdown = _chunkD7UQC4O6cjs.requestAcceptsMarkdown; exports.resolveMarkdownConfig = _chunkD7UQC4O6cjs.resolveMarkdownConfig; exports.resolveMarkdownMirrorTarget = _chunkD7UQC4O6cjs.resolveMarkdownMirrorTarget;
@@ -1,4 +1,4 @@
1
- export { bU as ApplyMarkdownNegotiationHeadersOptions, bY as CreateMarkdownMirrorResponseOptions, j as FARM_MARKDOWN_CONTENT_TYPE, c5 as FARM_MARKDOWN_PAGE_CHECK_HEADER, dO as FarmMarkdownMirrorTarget, br as FarmMarkdownResolvedConfig, dP as FarmMarkdownResolvedRoute, dQ as FarmMarkdownRouteInput, dR as FarmMarkdownUserConfig, dS as FarmPageFormAction, dT as FarmPageFormField, dU as FarmPageFormOption, dV as FarmPageFormSubmit, eH as ResolveMarkdownMirrorTargetOptions, eO as _getFarmMarkdownPageCheckToken, eP as _isFarmMarkdownPageCheck, eQ as applyMarkdownNegotiationHeaders, k as createFarmMarkdownErrorBody, eV as createMarkdownMirrorResponse, f1 as extractFarmPageActions, f2 as farmAcceptQuality, l as farmRequestWantsMarkdown, fc as getFarmMarkdownAlternatePath, fd as getFarmMarkdownMirrorPath, fq as htmlToMarkdown, fv as isFarmMarkdownMirrorExposed, fz as matchesFarmMarkdownRoutePattern, fI as requestAcceptsMarkdown, fS as resolveMarkdownConfig, fT as resolveMarkdownMirrorTarget } from './client-plugins.d-C_3CdALC.mjs';
1
+ export { bU as ApplyMarkdownNegotiationHeadersOptions, bY as CreateMarkdownMirrorResponseOptions, j as FARM_MARKDOWN_CONTENT_TYPE, c5 as FARM_MARKDOWN_PAGE_CHECK_HEADER, dP as FarmMarkdownMirrorTarget, br as FarmMarkdownResolvedConfig, dQ as FarmMarkdownResolvedRoute, dR as FarmMarkdownRouteInput, dS as FarmMarkdownUserConfig, dT as FarmPageFormAction, dU as FarmPageFormField, dV as FarmPageFormOption, dW as FarmPageFormSubmit, eI as ResolveMarkdownMirrorTargetOptions, eP as _getFarmMarkdownPageCheckToken, eQ as _isFarmMarkdownPageCheck, eR as _readFarmRenderedHtml, eS as applyMarkdownNegotiationHeaders, k as createFarmMarkdownErrorBody, eX as createMarkdownMirrorResponse, f3 as extractFarmPageActions, f4 as farmAcceptQuality, l as farmRequestWantsMarkdown, fe as getFarmMarkdownAlternatePath, ff as getFarmMarkdownMirrorPath, fs as htmlToMarkdown, fx as isFarmMarkdownMirrorExposed, fB as matchesFarmMarkdownRoutePattern, fK as requestAcceptsMarkdown, fU as resolveMarkdownConfig, fV as resolveMarkdownMirrorTarget } from './client-plugins.d-DllmH8eM.mjs';
2
2
  import './lifecycle.d-C2aLBOwu.mjs';
3
3
  import './route.d-BaVH3V0w.mjs';
4
4
  import './endpoint.d-BkMSCRf6.mjs';
@@ -28,6 +28,6 @@ import 'rolldown/utils';
28
28
  import 'rolldown';
29
29
  import './image-config.d-CeDgNyX4.mjs';
30
30
  import './types.d-C41ePjvP.mjs';
31
- import './config.d-CnhyvvmT.mjs';
31
+ import './config.d-DqKaCr1r.mjs';
32
32
  import './types.d-DQnyD3VD.mjs';
33
33
  import './font.mjs';
@@ -1,4 +1,4 @@
1
- export { bU as ApplyMarkdownNegotiationHeadersOptions, bY as CreateMarkdownMirrorResponseOptions, j as FARM_MARKDOWN_CONTENT_TYPE, c5 as FARM_MARKDOWN_PAGE_CHECK_HEADER, dO as FarmMarkdownMirrorTarget, br as FarmMarkdownResolvedConfig, dP as FarmMarkdownResolvedRoute, dQ as FarmMarkdownRouteInput, dR as FarmMarkdownUserConfig, dS as FarmPageFormAction, dT as FarmPageFormField, dU as FarmPageFormOption, dV as FarmPageFormSubmit, eH as ResolveMarkdownMirrorTargetOptions, eO as _getFarmMarkdownPageCheckToken, eP as _isFarmMarkdownPageCheck, eQ as applyMarkdownNegotiationHeaders, k as createFarmMarkdownErrorBody, eV as createMarkdownMirrorResponse, f1 as extractFarmPageActions, f2 as farmAcceptQuality, l as farmRequestWantsMarkdown, fc as getFarmMarkdownAlternatePath, fd as getFarmMarkdownMirrorPath, fq as htmlToMarkdown, fv as isFarmMarkdownMirrorExposed, fz as matchesFarmMarkdownRoutePattern, fI as requestAcceptsMarkdown, fS as resolveMarkdownConfig, fT as resolveMarkdownMirrorTarget } from './client-plugins.d-C0n8Yhh-.js';
1
+ export { bU as ApplyMarkdownNegotiationHeadersOptions, bY as CreateMarkdownMirrorResponseOptions, j as FARM_MARKDOWN_CONTENT_TYPE, c5 as FARM_MARKDOWN_PAGE_CHECK_HEADER, dP as FarmMarkdownMirrorTarget, br as FarmMarkdownResolvedConfig, dQ as FarmMarkdownResolvedRoute, dR as FarmMarkdownRouteInput, dS as FarmMarkdownUserConfig, dT as FarmPageFormAction, dU as FarmPageFormField, dV as FarmPageFormOption, dW as FarmPageFormSubmit, eI as ResolveMarkdownMirrorTargetOptions, eP as _getFarmMarkdownPageCheckToken, eQ as _isFarmMarkdownPageCheck, eR as _readFarmRenderedHtml, eS as applyMarkdownNegotiationHeaders, k as createFarmMarkdownErrorBody, eX as createMarkdownMirrorResponse, f3 as extractFarmPageActions, f4 as farmAcceptQuality, l as farmRequestWantsMarkdown, fe as getFarmMarkdownAlternatePath, ff as getFarmMarkdownMirrorPath, fs as htmlToMarkdown, fx as isFarmMarkdownMirrorExposed, fB as matchesFarmMarkdownRoutePattern, fK as requestAcceptsMarkdown, fU as resolveMarkdownConfig, fV as resolveMarkdownMirrorTarget } from './client-plugins.d-n3iWY1EJ.js';
2
2
  import './lifecycle.d-C2aLBOwu.js';
3
3
  import './route.d-DBTEqifW.js';
4
4
  import './endpoint.d-BgHn0lhl.js';
@@ -28,6 +28,6 @@ import 'rolldown/utils';
28
28
  import 'rolldown';
29
29
  import './image-config.d-CeDgNyX4.js';
30
30
  import './types.d-C41ePjvP.js';
31
- import './config.d-CnhyvvmT.js';
31
+ import './config.d-DqKaCr1r.js';
32
32
  import './types.d-DQnyD3VD.js';
33
33
  import './font.js';
package/dist/markdown.mjs CHANGED
@@ -3,6 +3,7 @@ import {
3
3
  FARM_MARKDOWN_PAGE_CHECK_HEADER,
4
4
  _getFarmMarkdownPageCheckToken,
5
5
  _isFarmMarkdownPageCheck,
6
+ _readFarmRenderedHtml,
6
7
  applyMarkdownNegotiationHeaders,
7
8
  createFarmMarkdownErrorBody,
8
9
  createMarkdownMirrorResponse,
@@ -17,7 +18,7 @@ import {
17
18
  requestAcceptsMarkdown,
18
19
  resolveMarkdownConfig,
19
20
  resolveMarkdownMirrorTarget
20
- } from "./chunk-N77JBPLC.mjs";
21
+ } from "./chunk-LPDKG6RA.mjs";
21
22
  import "./chunk-KJMWAUKE.mjs";
22
23
  import "./chunk-2DA7CLY7.mjs";
23
24
  import "./chunk-LM2YOGDK.mjs";
@@ -32,6 +33,7 @@ export {
32
33
  FARM_MARKDOWN_PAGE_CHECK_HEADER,
33
34
  _getFarmMarkdownPageCheckToken,
34
35
  _isFarmMarkdownPageCheck,
36
+ _readFarmRenderedHtml,
35
37
  applyMarkdownNegotiationHeaders,
36
38
  createFarmMarkdownErrorBody,
37
39
  createMarkdownMirrorResponse,
@@ -1,10 +1,10 @@
1
- import { eD as RateLimitStorage, eC as RateLimitStatus, er as MemoryRateLimitStorageOptions, eu as MiddlewareChain, bm as MiddlewareContext, bj as FarmMiddlewareConfig, ew as MiddlewareFunction, bl as MiddlewareConfig, b0 as MiddlewareProps, bW as CookieOptions } from './client-plugins.d-C_3CdALC.mjs';
2
- export { bV as CookieJar, ex as MiddlewareResult, ey as MiddlewareStore, ez as NextFunction, eA as RateLimitConfig, eB as RateLimitIncrementResult, bi as ReadonlyMiddlewareStore, eF as RequestMiddleware, eG as RequestMiddlewareContext } from './client-plugins.d-C_3CdALC.mjs';
1
+ import { eE as RateLimitStorage, eD as RateLimitStatus, es as MemoryRateLimitStorageOptions, ev as MiddlewareChain, bm as MiddlewareContext, bj as FarmMiddlewareConfig, ex as MiddlewareFunction, bl as MiddlewareConfig, b0 as MiddlewareProps, bW as CookieOptions } from './client-plugins.d-DllmH8eM.mjs';
2
+ export { bV as CookieJar, ey as MiddlewareResult, ez as MiddlewareStore, eA as NextFunction, eB as RateLimitConfig, eC as RateLimitIncrementResult, bi as ReadonlyMiddlewareStore, eG as RequestMiddleware, eH as RequestMiddlewareContext } from './client-plugins.d-DllmH8eM.mjs';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { ViteDevServer, Plugin } from 'vite';
5
5
  import { f as FarmServerConfig, R as ResolvedFarmServerConfig } from './workflows.d-CRMzQZ3k.mjs';
6
6
  import { R as ResolvedFarmI18nConfig } from './types.d-C41ePjvP.mjs';
7
- export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime.d-DFaQ1qaV.mjs';
7
+ export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime.d-CDHztggO.mjs';
8
8
  import './lifecycle.d-C2aLBOwu.mjs';
9
9
  import './route.d-BaVH3V0w.mjs';
10
10
  import './endpoint.d-BkMSCRf6.mjs';
@@ -30,7 +30,7 @@ import './layers.d-CcS42OGR.mjs';
30
30
  import 'rolldown/utils';
31
31
  import 'rolldown';
32
32
  import './image-config.d-CeDgNyX4.mjs';
33
- import './config.d-CnhyvvmT.mjs';
33
+ import './config.d-DqKaCr1r.mjs';
34
34
  import './types.d-DQnyD3VD.mjs';
35
35
  import './font.mjs';
36
36
 
@@ -1,10 +1,10 @@
1
- import { eD as RateLimitStorage, eC as RateLimitStatus, er as MemoryRateLimitStorageOptions, eu as MiddlewareChain, bm as MiddlewareContext, bj as FarmMiddlewareConfig, ew as MiddlewareFunction, bl as MiddlewareConfig, b0 as MiddlewareProps, bW as CookieOptions } from './client-plugins.d-C0n8Yhh-.js';
2
- export { bV as CookieJar, ex as MiddlewareResult, ey as MiddlewareStore, ez as NextFunction, eA as RateLimitConfig, eB as RateLimitIncrementResult, bi as ReadonlyMiddlewareStore, eF as RequestMiddleware, eG as RequestMiddlewareContext } from './client-plugins.d-C0n8Yhh-.js';
1
+ import { eE as RateLimitStorage, eD as RateLimitStatus, es as MemoryRateLimitStorageOptions, ev as MiddlewareChain, bm as MiddlewareContext, bj as FarmMiddlewareConfig, ex as MiddlewareFunction, bl as MiddlewareConfig, b0 as MiddlewareProps, bW as CookieOptions } from './client-plugins.d-n3iWY1EJ.js';
2
+ export { bV as CookieJar, ey as MiddlewareResult, ez as MiddlewareStore, eA as NextFunction, eB as RateLimitConfig, eC as RateLimitIncrementResult, bi as ReadonlyMiddlewareStore, eG as RequestMiddleware, eH as RequestMiddlewareContext } from './client-plugins.d-n3iWY1EJ.js';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { ViteDevServer, Plugin } from 'vite';
5
5
  import { f as FarmServerConfig, R as ResolvedFarmServerConfig } from './workflows.d-CRMzQZ3k.js';
6
6
  import { R as ResolvedFarmI18nConfig } from './types.d-C41ePjvP.js';
7
- export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime.d-UnXmSS_S.js';
7
+ export { _ as _runWithMiddlewareContext, a as _runWithMiddlewareData, b as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime.d-tyaGdbk6.js';
8
8
  import './lifecycle.d-C2aLBOwu.js';
9
9
  import './route.d-DBTEqifW.js';
10
10
  import './endpoint.d-BgHn0lhl.js';
@@ -30,7 +30,7 @@ import './layers.d-CcS42OGR.js';
30
30
  import 'rolldown/utils';
31
31
  import 'rolldown';
32
32
  import './image-config.d-CeDgNyX4.js';
33
- import './config.d-CnhyvvmT.js';
33
+ import './config.d-DqKaCr1r.js';
34
34
  import './types.d-DQnyD3VD.js';
35
35
  import './font.js';
36
36
 
package/dist/mobile.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { F as FarmMobileOS, R as ResolvedFarmMobileConfig } from './config.d-CnhyvvmT.mjs';
2
- export { a as FarmMobileBudgets, b as FarmMobileConfigInput, c as FarmMobileContext, d as FarmMobileNativeAuto, e as FarmMobileNativeConfig, f as FarmMobileNativeEngine, g as FarmMobileNativeRouteConfig, h as FarmMobilePageConfig, i as FarmMobilePrefetch, j as FarmMobilePresentation, k as FarmMobileRouteConfig, l as FarmMobileScreen, m as FarmMobileTab, n as FarmMobileUserConfig } from './config.d-CnhyvvmT.mjs';
3
- import { F as FarmMobileRouteManifest } from './routes.d-_5tBQexL.mjs';
4
- export { a as FarmMobileRouteRule } from './routes.d-_5tBQexL.mjs';
1
+ import { F as FarmMobileOS, R as ResolvedFarmMobileConfig } from './config.d-DqKaCr1r.mjs';
2
+ export { a as FarmMobileBudgets, b as FarmMobileConfigInput, c as FarmMobileContext, d as FarmMobileNativeAuto, e as FarmMobileNativeConfig, f as FarmMobileNativeEngine, g as FarmMobileNativeRouteConfig, h as FarmMobilePageConfig, i as FarmMobilePrefetch, j as FarmMobilePresentation, k as FarmMobileRouteConfig, l as FarmMobileRouteScreen, m as FarmMobileScreen, n as FarmMobileTab, o as FarmMobileUserConfig } from './config.d-DqKaCr1r.mjs';
3
+ import { F as FarmMobileRouteManifest } from './routes.d-BgTd7vI4.mjs';
4
+ export { a as FarmMobileRouteRule } from './routes.d-BgTd7vI4.mjs';
5
5
  import './types.d-C41ePjvP.mjs';
6
6
  import './generate-route-types.d-BoVDU8qX.mjs';
7
7
  import './layers.d-CcS42OGR.mjs';
@@ -43,6 +43,20 @@ interface MobileNativeScreens {
43
43
  mainModule: string;
44
44
  };
45
45
  }
46
+ /**
47
+ * The mobile client's content-hashed files, which a shell answers from the app instead of the
48
+ * network (RFC 0004, 7.2). Documents still come from `mobile.server`, which decides which client
49
+ * they load; a newer deployment references names the app does not have, and those load from
50
+ * the network.
51
+ */
52
+ interface MobileBundledAssets {
53
+ /** The build's client output; each file is read from here. */
54
+ dir: string;
55
+ /** URL paths at the server origin, such as `/farm-mobile-client-h1a2b3c4d.js`, sorted. */
56
+ files: string[];
57
+ /** The mobile client entry among them. */
58
+ entry: string;
59
+ }
46
60
  interface MobileShellContext {
47
61
  /** App root. */
48
62
  root: string;
@@ -58,6 +72,8 @@ interface MobileShellContext {
58
72
  projectDir: string;
59
73
  /** React Native screens, when at least one route resolves to one on this OS. */
60
74
  native?: MobileNativeScreens;
75
+ /** `farm build --mobile`: the mobile client's files to bundle. Absent in dev. */
76
+ assets?: MobileBundledAssets;
61
77
  }
62
78
  interface MobilePackageContext extends MobileShellContext {
63
79
  /** Directory for built apps (`.farm/output/mobile/dist`). */
@@ -91,4 +107,4 @@ interface MobileShell {
91
107
  /** Typed helper for mobile shell packages. */
92
108
  declare function defineMobileShell(shell: MobileShell): MobileShell;
93
109
 
94
- export { FarmMobileOS, FarmMobileRouteManifest, type MobileGeneratedFile, type MobileNativeScreens, type MobilePackageContext, type MobileRunResult, type MobileShell, type MobileShellContext, ResolvedFarmMobileConfig, defineMobileShell };
110
+ export { FarmMobileOS, FarmMobileRouteManifest, type MobileBundledAssets, type MobileGeneratedFile, type MobileNativeScreens, type MobilePackageContext, type MobileRunResult, type MobileShell, type MobileShellContext, ResolvedFarmMobileConfig, defineMobileShell };