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

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 (151) hide show
  1. package/dist/{agent-mcp.d-ZuuNgrkQ.d.ts → agent-mcp.d-CR5Ov83o.d.ts} +1 -1
  2. package/dist/{agent-mcp.d-BPzpKBHQ.d.mts → agent-mcp.d-Z5DuwrqW.d.mts} +1 -1
  3. package/dist/agent-runtime.d.mts +2 -2
  4. package/dist/agent-runtime.d.ts +2 -2
  5. package/dist/{analyzer-AZULAOPL.cjs → analyzer-T76CN3S7.cjs} +70 -21
  6. package/dist/{analyzer-V74FTD2F.mjs → analyzer-Z6TNEAET.mjs} +70 -21
  7. package/dist/api/route-manager.d.mts +4 -4
  8. package/dist/api/route-manager.d.ts +4 -4
  9. package/dist/api/runtime.d.mts +3 -3
  10. package/dist/api/runtime.d.ts +3 -3
  11. package/dist/api.d.mts +4 -4
  12. package/dist/api.d.ts +4 -4
  13. package/dist/{app-manifest.d-BJDcZn3W.d.mts → app-manifest.d-CAHkOBFa.d.mts} +1 -1
  14. package/dist/{app-manifest.d-HWhqbP2X.d.ts → app-manifest.d-DiWr_Jfx.d.ts} +1 -1
  15. package/dist/app-markdown.d.mts +3 -3
  16. package/dist/app-markdown.d.ts +3 -3
  17. package/dist/{app.d-DOGW1KI8.d.mts → app.d-BfgJCsTQ.d.mts} +4 -4
  18. package/dist/{app.d-B5EWdob-.d.ts → app.d-DmapqkbV.d.ts} +4 -4
  19. package/dist/{chunk-5A5GAZ75.mjs → chunk-4SSRBCBR.mjs} +57 -22
  20. package/dist/{chunk-EOSFVNXZ.mjs → chunk-6CYQQQGR.mjs} +1 -1
  21. package/dist/{chunk-BSEKNTMS.mjs → chunk-74Z5KX4A.mjs} +4 -4
  22. package/dist/chunk-7FVVQEVL.cjs +541 -0
  23. package/dist/chunk-C3BOESDW.mjs +541 -0
  24. package/dist/{chunk-KMB5BMFX.mjs → chunk-CTM4SPB3.mjs} +5 -0
  25. package/dist/{chunk-XY4DYGSU.cjs → chunk-DTU4PX7V.cjs} +177 -142
  26. package/dist/{chunk-KU7MBLDZ.mjs → chunk-E6LTONL4.mjs} +1 -1
  27. package/dist/{chunk-QAIAFCRZ.mjs → chunk-E73PGHSR.mjs} +1 -1
  28. package/dist/{chunk-I3EFXUAR.mjs → chunk-FM2UEKS2.mjs} +1 -1
  29. package/dist/{chunk-JVBNKWLV.cjs → chunk-GNJIYJMS.cjs} +2 -2
  30. package/dist/{chunk-AGR7VJH2.cjs → chunk-GUJTVM36.cjs} +1 -1
  31. package/dist/{chunk-SCRC5AMM.mjs → chunk-IBSAYAWB.mjs} +1 -1
  32. package/dist/{chunk-RMPNYUGT.cjs → chunk-J3LBO2O4.cjs} +2 -2
  33. package/dist/{chunk-VITZRYW3.cjs → chunk-NPQLMP7M.cjs} +5 -0
  34. package/dist/{chunk-TT66CP3P.cjs → chunk-NXBHYO7S.cjs} +2 -2
  35. package/dist/{chunk-EWC76P5D.mjs → chunk-PMKUU273.mjs} +2 -2
  36. package/dist/{chunk-IFBINMI4.cjs → chunk-QXPSWMUD.cjs} +3 -3
  37. package/dist/{chunk-X2M4XN4V.cjs → chunk-WZW6LEHM.cjs} +5 -5
  38. package/dist/{chunk-2756SHCI.cjs → chunk-YU42A5MA.cjs} +52 -52
  39. package/dist/{client-plugins.d-C_3CdALC.d.mts → client-plugins.d-Bx3FXpqm.d.mts} +18 -5
  40. package/dist/{client-plugins.d-C0n8Yhh-.d.ts → client-plugins.d-TiLbS5j4.d.ts} +18 -5
  41. package/dist/client-plugins.d.mts +2 -2
  42. package/dist/client-plugins.d.ts +2 -2
  43. package/dist/client.d.mts +7 -7
  44. package/dist/client.d.ts +7 -7
  45. package/dist/{config.d-CnhyvvmT.d.mts → config.d-iRPI16ku.d.mts} +6 -2
  46. package/dist/{config.d-CnhyvvmT.d.ts → config.d-iRPI16ku.d.ts} +6 -2
  47. package/dist/config.d.mts +2 -2
  48. package/dist/config.d.ts +2 -2
  49. package/dist/desktop.d.mts +3 -3
  50. package/dist/desktop.d.ts +3 -3
  51. package/dist/{devtools-KJFUE5FO.cjs → devtools-6XWCZIGO.cjs} +2 -2
  52. package/dist/{devtools-BU5IT2PD.mjs → devtools-UQLDAOEI.mjs} +1 -1
  53. package/dist/docs.cjs +3 -3
  54. package/dist/docs.d.mts +3 -3
  55. package/dist/docs.d.ts +3 -3
  56. package/dist/docs.mjs +2 -2
  57. package/dist/index.cjs +9 -8
  58. package/dist/{index.d-CsGxS-hZ.d.mts → index.d-YxJ2AiDF.d.mts} +1 -1
  59. package/dist/{index.d-B6M_8kmo.d.ts → index.d-yueUNipJ.d.ts} +1 -1
  60. package/dist/index.d.mts +17 -17
  61. package/dist/index.d.ts +17 -17
  62. package/dist/index.mjs +8 -7
  63. package/dist/integrations.d.mts +2 -2
  64. package/dist/integrations.d.ts +2 -2
  65. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  66. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  67. package/dist/internal/build-runtime.cjs +10 -9
  68. package/dist/internal/build-runtime.d.mts +4 -4
  69. package/dist/internal/build-runtime.d.ts +4 -4
  70. package/dist/internal/build-runtime.mjs +9 -8
  71. package/dist/internal/cli-runtime.cjs +2 -2
  72. package/dist/internal/cli-runtime.mjs +1 -1
  73. package/dist/internal/client-error-overlay.cjs +4 -4
  74. package/dist/internal/client-error-overlay.mjs +1 -1
  75. package/dist/internal/client-runtime.d.mts +5 -5
  76. package/dist/internal/client-runtime.d.ts +5 -5
  77. package/dist/internal/compression-runtime.d.mts +2 -2
  78. package/dist/internal/compression-runtime.d.ts +2 -2
  79. package/dist/internal/config-runtime.cjs +3 -3
  80. package/dist/internal/config-runtime.d.mts +16 -79
  81. package/dist/internal/config-runtime.d.ts +16 -79
  82. package/dist/internal/config-runtime.mjs +2 -2
  83. package/dist/internal/infra-analytics-runtime.cjs +5 -5
  84. package/dist/internal/infra-analytics-runtime.mjs +3 -3
  85. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  86. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  87. package/dist/internal/production-runtime.cjs +7 -3
  88. package/dist/internal/production-runtime.d.mts +35 -12
  89. package/dist/internal/production-runtime.d.ts +35 -12
  90. package/dist/internal/production-runtime.mjs +6 -2
  91. package/dist/markdown.d.mts +2 -2
  92. package/dist/markdown.d.ts +2 -2
  93. package/dist/middleware.d.mts +4 -4
  94. package/dist/middleware.d.ts +4 -4
  95. package/dist/mobile.d.mts +4 -4
  96. package/dist/mobile.d.ts +4 -4
  97. package/dist/{navigation-delegate.d-jArRF0ZP.d.ts → navigation-delegate.d-BY1e_Xrh.d.ts} +1 -1
  98. package/dist/{navigation-delegate.d-C0BbdUgN.d.mts → navigation-delegate.d-HnDXhlyP.d.mts} +1 -1
  99. package/dist/navigation.d.mts +5 -5
  100. package/dist/navigation.d.ts +5 -5
  101. package/dist/plugin.cjs +5 -5
  102. package/dist/plugin.d.mts +4 -4
  103. package/dist/plugin.d.ts +4 -4
  104. package/dist/plugin.mjs +4 -4
  105. package/dist/{production-runtime.d-DFaQ1qaV.d.mts → production-runtime.d-BpJUDzP8.d.mts} +1 -1
  106. package/dist/{production-runtime.d-UnXmSS_S.d.ts → production-runtime.d-lMjvE9cf.d.ts} +1 -1
  107. package/dist/{programmatic-routes-client.d-BIowUXQC.d.mts → programmatic-routes-client.d-6CGQ3TCk.d.mts} +2 -2
  108. package/dist/{programmatic-routes-client.d-VZ0qcbH4.d.ts → programmatic-routes-client.d-BlFp5hv4.d.ts} +2 -2
  109. package/dist/{render-plan.d-BNeqyPyJ.d.mts → render-plan.d-BH9edqKs.d.mts} +1 -1
  110. package/dist/{render-plan.d-BB6KrYjP.d.ts → render-plan.d-DhP0mTHF.d.ts} +1 -1
  111. package/dist/renderer-client.d.mts +5 -5
  112. package/dist/renderer-client.d.ts +5 -5
  113. package/dist/{request.d-Bxhghm76.d.ts → request.d-BVZrsR1v.d.ts} +1 -1
  114. package/dist/{request.d-BV1munmx.d.mts → request.d-DJFRdKi8.d.mts} +1 -1
  115. package/dist/request.d.mts +3 -3
  116. package/dist/request.d.ts +3 -3
  117. package/dist/{route-rendering.d-BIf7zE9d.d.ts → route-rendering.d-B00JtK_-.d.ts} +1 -1
  118. package/dist/{route-rendering.d-DShqKlgK.d.mts → route-rendering.d-Bpmw7PED.d.mts} +1 -1
  119. package/dist/{router.d-Bw3K3b0a.d.ts → router.d-Bd1x9XxQ.d.ts} +1 -1
  120. package/dist/{router.d-BE7i84fb.d.mts → router.d-e0jQ3jQ-.d.mts} +1 -1
  121. package/dist/{routes.d-_5tBQexL.d.mts → routes.d-Cmv8TgVq.d.mts} +89 -2
  122. package/dist/{routes.d-DVZQL0-H.d.ts → routes.d-D96Dq9lz.d.ts} +89 -2
  123. package/dist/routes.d.mts +2 -2
  124. package/dist/routes.d.ts +2 -2
  125. package/dist/{rsc-pipeline-IQI5XQLS.cjs → rsc-pipeline-DX4OC5FN.cjs} +3 -3
  126. package/dist/{rsc-pipeline-FBM6NFYY.mjs → rsc-pipeline-ZQ4CTVEG.mjs} +2 -2
  127. package/dist/{runtime-2JYIDUON.mjs → runtime-NPDRDV6R.mjs} +64 -15
  128. package/dist/{runtime-DXEVFYLE.cjs → runtime-NQ3EDSA7.cjs} +73 -24
  129. package/dist/{runtime.d-CQgoYR0Q.d.mts → runtime.d-CgB3IJDq.d.mts} +1 -1
  130. package/dist/{runtime.d-CfhaLPl-.d.ts → runtime.d-D-td-RR3.d.ts} +1 -1
  131. package/dist/server-plugins.d.mts +3 -3
  132. package/dist/server-plugins.d.ts +3 -3
  133. package/dist/server.cjs +22 -22
  134. package/dist/server.d.mts +10 -10
  135. package/dist/server.d.ts +10 -10
  136. package/dist/server.mjs +7 -7
  137. package/dist/session-AAU7RNRO.cjs +23 -0
  138. package/dist/session-IGEDQ5PY.mjs +23 -0
  139. package/dist/{spa-router.d-D63jb6nX.d.mts → spa-router.d-BWDhS0FK.d.mts} +2 -2
  140. package/dist/{spa-router.d-C5opIgXg.d.ts → spa-router.d-CO01mVOM.d.ts} +2 -2
  141. package/dist/testing.d.mts +2 -2
  142. package/dist/testing.d.ts +2 -2
  143. package/dist/{utils.d-CkpTqTsC.d.ts → utils.d-B77__yh8.d.ts} +1 -1
  144. package/dist/{utils.d-CO-U4OVZ.d.mts → utils.d-DRDazhCA.d.mts} +1 -1
  145. package/dist/version.cjs +2 -2
  146. package/dist/version.mjs +1 -1
  147. package/dist/vite.cjs +5 -5
  148. package/dist/vite.d.mts +5 -5
  149. package/dist/vite.d.ts +5 -5
  150. package/dist/vite.mjs +4 -4
  151. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
- import { g as FarmMdxComponents, h as FarmMdxResolvedConfig, i as RouteModule } from './client-plugins.d-C_3CdALC.mjs';
2
- export { j as FARM_MARKDOWN_CONTENT_TYPE, m as FarmMdxComponent, n as FarmMdxUserConfig, k as createFarmMarkdownErrorBody, l as farmRequestWantsMarkdown, r as resolveFarmMdxComponentsModulePath, o as resolveMdxConfig } from './client-plugins.d-C_3CdALC.mjs';
1
+ import { g as FarmMdxComponents, h as FarmMdxResolvedConfig, i as RouteModule } from './client-plugins.d-Bx3FXpqm.mjs';
2
+ export { j as FARM_MARKDOWN_CONTENT_TYPE, m as FarmMdxComponent, n as FarmMdxUserConfig, k as createFarmMarkdownErrorBody, l as farmRequestWantsMarkdown, r as resolveFarmMdxComponentsModulePath, o as resolveMdxConfig } from './client-plugins.d-Bx3FXpqm.mjs';
3
3
  export { FARM_MARKDOWN_ANONYMOUS_CLIENT_ADDRESS, FarmMarkdownPageModuleInput, FarmMarkdownPageSource, createFarmMarkdownRouteModule, createFarmMarkdownSourceResponse, createMarkdownMetadata, isFarmMarkdownPageFile, isFarmMarkdownPublicSourceResponse, normalizeFarmMarkdownRoutePath, parseMarkdownFrontmatter, titleFromMarkdown } from './internal/app-markdown-runtime.mjs';
4
4
  import './lifecycle.d-C2aLBOwu.mjs';
5
5
  import './route.d-BaVH3V0w.mjs';
@@ -30,7 +30,7 @@ import 'rolldown/utils';
30
30
  import 'rolldown';
31
31
  import './image-config.d-CeDgNyX4.mjs';
32
32
  import './types.d-C41ePjvP.mjs';
33
- import './config.d-CnhyvvmT.mjs';
33
+ import './config.d-iRPI16ku.mjs';
34
34
  import './types.d-DQnyD3VD.mjs';
35
35
  import './font.mjs';
36
36
 
@@ -1,5 +1,5 @@
1
- import { g as FarmMdxComponents, h as FarmMdxResolvedConfig, i as RouteModule } from './client-plugins.d-C0n8Yhh-.js';
2
- export { j as FARM_MARKDOWN_CONTENT_TYPE, m as FarmMdxComponent, n as FarmMdxUserConfig, k as createFarmMarkdownErrorBody, l as farmRequestWantsMarkdown, r as resolveFarmMdxComponentsModulePath, o as resolveMdxConfig } from './client-plugins.d-C0n8Yhh-.js';
1
+ import { g as FarmMdxComponents, h as FarmMdxResolvedConfig, i as RouteModule } from './client-plugins.d-TiLbS5j4.js';
2
+ export { j as FARM_MARKDOWN_CONTENT_TYPE, m as FarmMdxComponent, n as FarmMdxUserConfig, k as createFarmMarkdownErrorBody, l as farmRequestWantsMarkdown, r as resolveFarmMdxComponentsModulePath, o as resolveMdxConfig } from './client-plugins.d-TiLbS5j4.js';
3
3
  export { FARM_MARKDOWN_ANONYMOUS_CLIENT_ADDRESS, FarmMarkdownPageModuleInput, FarmMarkdownPageSource, createFarmMarkdownRouteModule, createFarmMarkdownSourceResponse, createMarkdownMetadata, isFarmMarkdownPageFile, isFarmMarkdownPublicSourceResponse, normalizeFarmMarkdownRoutePath, parseMarkdownFrontmatter, titleFromMarkdown } from './internal/app-markdown-runtime.js';
4
4
  import './lifecycle.d-C2aLBOwu.js';
5
5
  import './route.d-DBTEqifW.js';
@@ -30,7 +30,7 @@ import 'rolldown/utils';
30
30
  import 'rolldown';
31
31
  import './image-config.d-CeDgNyX4.js';
32
32
  import './types.d-C41ePjvP.js';
33
- import './config.d-CnhyvvmT.js';
33
+ import './config.d-iRPI16ku.js';
34
34
  import './types.d-DQnyD3VD.js';
35
35
  import './font.js';
36
36
 
@@ -1,14 +1,14 @@
1
- import { aF as FarmConfig, P as ParsedRoute, bE as ResolvedFarmRouteRuntimeConfig, bF as ApplicationMetadataRouteKind, i as RouteModule, aV as LayoutModule, b6 as SSGCollectionResult, s as FarmRequest, t as FarmResponse, bG as ResolvedFarmAPIConfig, bH as FarmDocsResolvedConfig, br as FarmMarkdownResolvedConfig, h as FarmMdxResolvedConfig, ax as ResolvedFarmDevtoolsConfig, bI as ResolvedFarmDevIndicatorsConfig, bJ as ResolvedFarmAuthConfig, bK as ResolvedFarmPerformanceConfig, bL as ResolvedFarmSecurityConfig } from './client-plugins.d-C_3CdALC.mjs';
1
+ import { aF as FarmConfig, P as ParsedRoute, bE as ResolvedFarmRouteRuntimeConfig, bF as ApplicationMetadataRouteKind, i as RouteModule, aV as LayoutModule, b6 as SSGCollectionResult, s as FarmRequest, t as FarmResponse, bG as ResolvedFarmAPIConfig, bH as FarmDocsResolvedConfig, br as FarmMarkdownResolvedConfig, h as FarmMdxResolvedConfig, ax as ResolvedFarmDevtoolsConfig, bI as ResolvedFarmDevIndicatorsConfig, bJ as ResolvedFarmAuthConfig, bK as ResolvedFarmPerformanceConfig, bL as ResolvedFarmSecurityConfig } from './client-plugins.d-Bx3FXpqm.mjs';
2
2
  import { F as FarmWorkflowsResolvedConfig } from './workflows.d-CRMzQZ3k.mjs';
3
3
  import { FarmCronResolvedConfig } from './cron.mjs';
4
4
  import { R as ResolvedFarmImageConfig } from './image-config.d-CeDgNyX4.mjs';
5
5
  import { ProgrammaticRedirectRoute, ProgrammaticRouteSearchClientOptions } from './routes.mjs';
6
- import { P as ProgrammaticClientRoutes } from './programmatic-routes-client.d-BIowUXQC.mjs';
6
+ import { P as ProgrammaticClientRoutes } from './programmatic-routes-client.d-6CGQ3TCk.mjs';
7
7
  import { ViteDevServer } from 'vite';
8
8
  import { F as FarmIslandStrategy } from './island.d-CfGru1MO.mjs';
9
- import { M as MetadataImageKind, c as createFarmDefaultMCPServer } from './agent-mcp.d-BPzpKBHQ.mjs';
9
+ import { M as MetadataImageKind, c as createFarmDefaultMCPServer } from './agent-mcp.d-Z5DuwrqW.mjs';
10
10
  import { FarmServerRendererRuntime, FarmRenderer } from './renderer.mjs';
11
- import { F as FarmRouteRenderPlan } from './render-plan.d-BNeqyPyJ.mjs';
11
+ import { F as FarmRouteRenderPlan } from './render-plan.d-BH9edqKs.mjs';
12
12
  import { R as ResolvedFarmI18nConfig } from './types.d-C41ePjvP.mjs';
13
13
  import { F as FarmI18nRuntime } from './runtime.d-3iJAKptR.mjs';
14
14
  import { R as ResolvedFarmThemeConfig } from './types.d-DQnyD3VD.mjs';
@@ -1,14 +1,14 @@
1
- import { aF as FarmConfig, P as ParsedRoute, bE as ResolvedFarmRouteRuntimeConfig, bF as ApplicationMetadataRouteKind, i as RouteModule, aV as LayoutModule, b6 as SSGCollectionResult, s as FarmRequest, t as FarmResponse, bG as ResolvedFarmAPIConfig, bH as FarmDocsResolvedConfig, br as FarmMarkdownResolvedConfig, h as FarmMdxResolvedConfig, ax as ResolvedFarmDevtoolsConfig, bI as ResolvedFarmDevIndicatorsConfig, bJ as ResolvedFarmAuthConfig, bK as ResolvedFarmPerformanceConfig, bL as ResolvedFarmSecurityConfig } from './client-plugins.d-C0n8Yhh-.js';
1
+ import { aF as FarmConfig, P as ParsedRoute, bE as ResolvedFarmRouteRuntimeConfig, bF as ApplicationMetadataRouteKind, i as RouteModule, aV as LayoutModule, b6 as SSGCollectionResult, s as FarmRequest, t as FarmResponse, bG as ResolvedFarmAPIConfig, bH as FarmDocsResolvedConfig, br as FarmMarkdownResolvedConfig, h as FarmMdxResolvedConfig, ax as ResolvedFarmDevtoolsConfig, bI as ResolvedFarmDevIndicatorsConfig, bJ as ResolvedFarmAuthConfig, bK as ResolvedFarmPerformanceConfig, bL as ResolvedFarmSecurityConfig } from './client-plugins.d-TiLbS5j4.js';
2
2
  import { F as FarmWorkflowsResolvedConfig } from './workflows.d-CRMzQZ3k.js';
3
3
  import { FarmCronResolvedConfig } from './cron.js';
4
4
  import { R as ResolvedFarmImageConfig } from './image-config.d-CeDgNyX4.js';
5
5
  import { ProgrammaticRedirectRoute, ProgrammaticRouteSearchClientOptions } from './routes.js';
6
- import { P as ProgrammaticClientRoutes } from './programmatic-routes-client.d-VZ0qcbH4.js';
6
+ import { P as ProgrammaticClientRoutes } from './programmatic-routes-client.d-BlFp5hv4.js';
7
7
  import { ViteDevServer } from 'vite';
8
8
  import { F as FarmIslandStrategy } from './island.d-CfGru1MO.js';
9
- import { M as MetadataImageKind, c as createFarmDefaultMCPServer } from './agent-mcp.d-ZuuNgrkQ.js';
9
+ import { M as MetadataImageKind, c as createFarmDefaultMCPServer } from './agent-mcp.d-CR5Ov83o.js';
10
10
  import { FarmServerRendererRuntime, FarmRenderer } from './renderer.js';
11
- import { F as FarmRouteRenderPlan } from './render-plan.d-BB6KrYjP.js';
11
+ import { F as FarmRouteRenderPlan } from './render-plan.d-DhP0mTHF.js';
12
12
  import { R as ResolvedFarmI18nConfig } from './types.d-C41ePjvP.js';
13
13
  import { F as FarmI18nRuntime } from './runtime.d-BtL3PCL3.js';
14
14
  import { R as ResolvedFarmThemeConfig } from './types.d-DQnyD3VD.js';
@@ -13,13 +13,16 @@ import {
13
13
  import {
14
14
  generateNativeMCPPluginSource
15
15
  } from "./chunk-KQH2COEJ.mjs";
16
+ import {
17
+ FARM_MOBILE_SESSION_PLUGIN
18
+ } from "./chunk-C3BOESDW.mjs";
16
19
  import {
17
20
  assertFarmDocsAdapterServesNoGuardedPages,
18
21
  compileFarmDocsAdapterEdgeManifest,
19
22
  createFarmDocsAPIHandler,
20
23
  hasFarmDocsRuntimeAdapter,
21
24
  listFarmDocsAdapterPages
22
- } from "./chunk-I3EFXUAR.mjs";
25
+ } from "./chunk-FM2UEKS2.mjs";
23
26
  import {
24
27
  FARM_DOCS_LAST_MODIFIED_MANIFEST,
25
28
  createFarmDocsHandler,
@@ -39,7 +42,7 @@ import {
39
42
  } from "./chunk-ALEUMLJN.mjs";
40
43
  import {
41
44
  FARM_PRERENDER_ENV
42
- } from "./chunk-KU7MBLDZ.mjs";
45
+ } from "./chunk-E6LTONL4.mjs";
43
46
  import {
44
47
  resolveFarmInstrumentationFile
45
48
  } from "./chunk-N35YPV4N.mjs";
@@ -54,7 +57,7 @@ import {
54
57
  getDeployTargetForPreset,
55
58
  hasCustomFarmRouteContext,
56
59
  resolveDeployOutputPath
57
- } from "./chunk-KMB5BMFX.mjs";
60
+ } from "./chunk-CTM4SPB3.mjs";
58
61
  import {
59
62
  DEFAULT_NOT_FOUND_STYLES,
60
63
  FARM_LAYOUT_ELEMENT_CLIENT_SOURCE,
@@ -86,7 +89,7 @@ import {
86
89
  resolveFarmIsolatedClientHydrationMode,
87
90
  resolveFarmNotFoundComponentPath,
88
91
  usesFarmServerTree
89
- } from "./chunk-EWC76P5D.mjs";
92
+ } from "./chunk-PMKUU273.mjs";
90
93
  import {
91
94
  loadTailwindVitePlugin
92
95
  } from "./chunk-PIHKO25G.mjs";
@@ -124,7 +127,7 @@ import {
124
127
  listFarmBuiltInRoutePaths,
125
128
  resolveFarmApiCatalogInput,
126
129
  resolveFarmAppManifestInput
127
- } from "./chunk-QAIAFCRZ.mjs";
130
+ } from "./chunk-E73PGHSR.mjs";
128
131
  import {
129
132
  FARM_DEFAULT_MCP_PATH,
130
133
  createFarmDefaultMCPServer,
@@ -233,7 +236,7 @@ import {
233
236
  } from "./chunk-LM2YOGDK.mjs";
234
237
  import {
235
238
  FARM_VERSION
236
- } from "./chunk-EOSFVNXZ.mjs";
239
+ } from "./chunk-6CYQQQGR.mjs";
237
240
  import {
238
241
  getFarmPresetRuntime
239
242
  } from "./chunk-UAQD67HM.mjs";
@@ -1755,7 +1758,9 @@ function hasFarmPluginRoutes(config) {
1755
1758
  }
1756
1759
  function farmServerRuntimePluginsMayHandlePath(config, pathname) {
1757
1760
  return (config.plugins || []).some(
1758
- (plugin) => getFarmIntegrationPluginServerRuntime(plugin) !== false && farmPluginMayAffectRuntimePath(plugin, pathname)
1761
+ (plugin) => getFarmIntegrationPluginServerRuntime(plugin) !== false && // Mobile session tokens change only bearer requests and cookie-clearing responses, which a
1762
+ // prerendered file never answers or sends; its endpoints live under /__farm/.
1763
+ plugin.name !== FARM_MOBILE_SESSION_PLUGIN && farmPluginMayAffectRuntimePath(plugin, pathname)
1759
1764
  );
1760
1765
  }
1761
1766
  async function discoverMiddlewareRoutes(appDir) {
@@ -2642,21 +2647,24 @@ async function fetchFarmNavigationDocument(url, headers, recover = true, signal)
2642
2647
  return response;
2643
2648
  }
2644
2649
 
2645
- ${streamNavigations ? `const FARM_FLUSH_MARKER = "<!--farm-flush-->";
2646
-
2647
- // Reads a streamed navigation (F-Stream) up to the end of React's shell. \`next\` then resolves
2650
+ ${streamNavigations ? `// Reads a streamed navigation (F-Stream) up to the end of React's shell. \`next\` then resolves
2648
2651
  // with each later flush as it ends, and null at the end; a document without a marker is all shell.
2649
- async function readFarmNavigationStream(body) {
2652
+ // The marker carries the random token the server sent in the F-Flush header, so page content
2653
+ // cannot forge a boundary; a response without a valid token is all shell.
2654
+ async function readFarmNavigationStream(body, flushToken) {
2650
2655
  const reader = body.getReader();
2651
2656
  const decoder = new TextDecoder();
2657
+ const marker = typeof flushToken === "string" && /^[0-9a-f]{32}$/.test(flushToken)
2658
+ ? "<!--farm-flush:" + flushToken + "-->"
2659
+ : "";
2652
2660
  let text = "";
2653
2661
  let done = false;
2654
2662
  const next = async function() {
2655
2663
  for (;;) {
2656
- const at = text.indexOf(FARM_FLUSH_MARKER);
2664
+ const at = marker ? text.indexOf(marker) : -1;
2657
2665
  if (at !== -1) {
2658
2666
  const flush = text.slice(0, at);
2659
- text = text.slice(at + FARM_FLUSH_MARKER.length);
2667
+ text = text.slice(at + marker.length);
2660
2668
  return flush;
2661
2669
  }
2662
2670
  if (done) {
@@ -3230,7 +3238,7 @@ ${streamNavigations ? ` // A streamed navigation swaps in the page's shell; its
3230
3238
  }
3231
3239
  };
3232
3240
  ${streamNavigations ? ` if (streamShell && response.body) {
3233
- const streamed = await readFarmNavigationStream(response.body);
3241
+ const streamed = await readFarmNavigationStream(response.body, response.headers.get("F-Flush"));
3234
3242
  if (!streamed.next) {
3235
3243
  store(streamed.shell);
3236
3244
  return streamed.shell;
@@ -6433,12 +6441,16 @@ import { fileURLToPath as farmDocsFileURLToPath } from "node:url";` : "";
6433
6441
  const instrumentationImport = instrumentationPath ? `import * as FarmInstrumentationModule from ${toVirtualEntryImportSpecifier(instrumentationPath)};` : "";
6434
6442
  const nativeAuth = generateNativeAuthIntegrationSource(config.auth);
6435
6443
  const nativeMCP = generateNativeMCPPluginSource(config.mcp);
6444
+ const mobileSession = (config.plugins || []).some(
6445
+ (plugin) => plugin?.name === FARM_MOBILE_SESSION_PLUGIN
6446
+ );
6436
6447
  const integrationImports = `
6437
6448
  ${configModulePath ? `import * as FarmUserConfigModule from ${toVirtualEntryImportSpecifier(configModulePath)};` : ""}
6438
6449
  ${layerConfigImports}
6439
6450
  ${integrationRuntimeImport}
6440
6451
  ${nativeAuth.importSource}
6441
6452
  ${nativeMCP.importSource}
6453
+ ${mobileSession ? `import { createFarmMobileSessionPlugin as __farmCreateMobileSessionPlugin } from "@farm.js/core/internal/production-runtime";` : ""}
6442
6454
  `;
6443
6455
  const imageRuntime = resolveFarmImageServerRuntime(config.images, preset);
6444
6456
  const imageRuntimeImport = imageRuntime === "none" ? "" : `import { _withFarmImageSourceClientAddress, createCloudflareImageTransformer, createFarmImageHandler } from "@farm.js/core/image/server";`;
@@ -6719,6 +6731,10 @@ const configuredPlugins = [
6719
6731
  ${hasCompressionRuntime && hasPluginRuntime ? "createCompressionPlugin()," : ""}
6720
6732
  ${hasRuntimeIntegrationConfig ? "...resolveIntegrationPlugins(serverRuntimeIntegrations)," : ""}
6721
6733
  ${nativeMCP.pluginSource}
6734
+ ${mobileSession ? `__farmCreateMobileSessionPlugin({
6735
+ basePath: ${JSON.stringify(config.basePath)},
6736
+ integrations: () => serverRuntimeIntegrations,
6737
+ }),` : ""}
6722
6738
  ${hasConfiguredRuntimePlugins ? `...farmRuntimeConfigs.flatMap((runtimeConfig) =>
6723
6739
  Array.isArray(runtimeConfig.plugins) ? runtimeConfig.plugins : [],
6724
6740
  ),` : ""}
@@ -7078,10 +7094,22 @@ function escapeFarmHtmlAttribute(value) {
7078
7094
  .replace(/>/g, "&gt;");
7079
7095
  }
7080
7096
 
7081
- async function renderFarmElement(ReactDOMServer, element, routeKey, flushMarkers = false) {
7082
- // Written after each React flush in a streamed navigation (flushMarkers): the browser swaps in
7097
+ // A streamed navigation's flush marker token: 128 random bits, hex.
7098
+ function createFarmFlushToken() {
7099
+ const bytes = new Uint8Array(16);
7100
+ globalThis.crypto.getRandomValues(bytes);
7101
+ let token = "";
7102
+ for (const byte of bytes) token += byte.toString(16).padStart(2, "0");
7103
+ return token;
7104
+ }
7105
+
7106
+ async function renderFarmElement(ReactDOMServer, element, routeKey, flushToken = "") {
7107
+ // Written after each React flush in a streamed navigation (flushToken): the browser swaps in
7083
7108
  // the shell, then adds each Suspense boundary as soon as the flush that completed it ends.
7084
- const FARM_FLUSH_MARKER = "<!--farm-flush-->";
7109
+ // The token is random per response and reaches the browser in the F-Flush header, so page
7110
+ // content cannot forge a boundary.
7111
+ const flushMarkers = Boolean(flushToken);
7112
+ const FARM_FLUSH_MARKER = flushMarkers ? "<!--farm-flush:" + flushToken + "-->" : "";
7085
7113
  // Islands mode: each render writes its islands' values itself, so a request that renders twice
7086
7114
  // (notFound(), or a synchronous attempt that suspends and streams) still sends them.
7087
7115
  if (typeof farmIslandsRender === "function") element = farmIslandsRender(element);
@@ -9619,10 +9647,13 @@ ${hasServerRuntimeIntegrations ? `
9619
9647
  !route.shouldHydrate &&
9620
9648
  request.headers.get("f-render") === "tree";
9621
9649
  // A navigation the browser streams marks where each React flush ends, so the browser
9622
- // shows the page before its Suspense content arrives (FARM_FLUSH_MARKER).
9623
- const farmFlushMarkers = request.headers.get("f-stream") === "flush";` : `const farmLayoutKeyOf = null;
9650
+ // shows the page before its Suspense content arrives (FARM_FLUSH_MARKER). The marker
9651
+ // carries a random token sent in the F-Flush header: page content cannot forge one.
9652
+ const farmFlushToken = request.headers.get("f-stream") === "flush"
9653
+ ? createFarmFlushToken()
9654
+ : "";` : `const farmLayoutKeyOf = null;
9624
9655
  const farmPayloadOnlyNavigation = false;
9625
- const farmFlushMarkers = false;`}
9656
+ const farmFlushToken = "";`}
9626
9657
  const renderPageElement = async () => {
9627
9658
  // First, render the page content
9628
9659
  let pageElement;
@@ -9744,7 +9775,7 @@ ${hasServerRuntimeIntegrations ? `
9744
9775
  }
9745
9776
 
9746
9777
  wrappedElement = wrapWithFarmIntegrationProviders(wrappedElement);
9747
- return renderFarmElement(ReactDOMServer, wrappedElement, route.pattern, farmFlushMarkers);
9778
+ return renderFarmElement(ReactDOMServer, wrappedElement, route.pattern, farmFlushToken);
9748
9779
  };
9749
9780
  const renderedPage = ${hasMiddlewareRuntime ? `await _runWithMiddlewareData(middlewareData, () =>
9750
9781
  _runWithMiddlewareContext(middlewareContext, renderPageElement)
@@ -10051,7 +10082,11 @@ ${hasServerRuntimeIntegrations ? `
10051
10082
  );
10052
10083
  return applyProductionMiddlewareHeaders(farmOwnedResponse(streamedDocument, {
10053
10084
  status: pageStatus,
10054
- headers: { ...responseHeaders, "x-farm-preload-streaming": "1" },
10085
+ headers: {
10086
+ ...responseHeaders,
10087
+ "x-farm-preload-streaming": "1",
10088
+ ...(farmFlushToken ? { "F-Flush": farmFlushToken } : {}),
10089
+ },
10055
10090
  }), middlewareHeaders);
10056
10091
  }
10057
10092
 
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.1.51-beta.1";
2
+ var version = "0.1.51-beta.2";
3
3
 
4
4
  // src/version.ts
5
5
  var FARM_VERSION = version;
@@ -37,7 +37,7 @@ import {
37
37
  resolveFarmIsolatedClientHydrationMode,
38
38
  resolveModuleSourcePath,
39
39
  stripUseClientDirective
40
- } from "./chunk-EWC76P5D.mjs";
40
+ } from "./chunk-PMKUU273.mjs";
41
41
  import {
42
42
  loadTailwindVitePlugin
43
43
  } from "./chunk-PIHKO25G.mjs";
@@ -79,7 +79,7 @@ import {
79
79
  resolveFarmMCPRouteLabel,
80
80
  resolveFarmMarkdownRouteLabel,
81
81
  setFarmRouteLabel
82
- } from "./chunk-QAIAFCRZ.mjs";
82
+ } from "./chunk-E73PGHSR.mjs";
83
83
  import {
84
84
  FARM_DEFAULT_MCP_PATH
85
85
  } from "./chunk-KRRZJ77U.mjs";
@@ -244,7 +244,7 @@ import {
244
244
  } from "./chunk-LM2YOGDK.mjs";
245
245
  import {
246
246
  FARM_VERSION
247
- } from "./chunk-EOSFVNXZ.mjs";
247
+ } from "./chunk-6CYQQQGR.mjs";
248
248
  import {
249
249
  DEFAULT_FARM_API_BASE_PATH
250
250
  } from "./chunk-BLD5GVCG.mjs";
@@ -765,7 +765,7 @@ function loadFarmWorkflowsDevRuntime() {
765
765
  return import("./workflows.mjs");
766
766
  }
767
767
  function loadFarmDevtoolsSnapshotRuntime() {
768
- return import("./devtools-BU5IT2PD.mjs");
768
+ return import("./devtools-UQLDAOEI.mjs");
769
769
  }
770
770
  function loadFarmDevtoolsUIRuntime() {
771
771
  return import("./devtools-ui-CYBVFLPH.mjs");