@farm.js/core 0.1.0-beta.5 → 0.1.0-beta.7

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 (149) hide show
  1. package/dist/agent-runtime.d.mts +2 -2
  2. package/dist/agent-runtime.d.ts +2 -2
  3. package/dist/api/route-manager.d.mts +3 -3
  4. package/dist/api/route-manager.d.ts +3 -3
  5. package/dist/api.d.mts +3 -3
  6. package/dist/api.d.ts +3 -3
  7. package/dist/{app-CakAr8Be.d.mts → app-BWtqQu3R.d.mts} +6 -4
  8. package/dist/app-markdown.cjs +31 -7
  9. package/dist/app-markdown.cjs.map +1 -1
  10. package/dist/app-markdown.d.mts +2 -2
  11. package/dist/app-markdown.d.ts +2 -2
  12. package/dist/app-markdown.mjs +2 -1
  13. package/dist/{app-BjN-da13.d.ts → app-xltejvLY.d.ts} +6 -4
  14. package/dist/{chunk-A2LUXHD2.mjs → chunk-5VYHFKWE.mjs} +214 -58
  15. package/dist/chunk-5VYHFKWE.mjs.map +1 -0
  16. package/dist/{chunk-EEABSBKK.mjs → chunk-6F5OI5GA.mjs} +2 -2
  17. package/dist/chunk-6F5OI5GA.mjs.map +1 -0
  18. package/dist/{chunk-LLC7BNXW.mjs → chunk-7FBJLMQH.mjs} +73 -10
  19. package/dist/chunk-7FBJLMQH.mjs.map +1 -0
  20. package/dist/{chunk-NM3CRAAL.mjs → chunk-B4W3BNTL.mjs} +24 -8
  21. package/dist/chunk-B4W3BNTL.mjs.map +1 -0
  22. package/dist/{chunk-BHG3LVHH.mjs → chunk-CGIXMLSY.mjs} +15 -7
  23. package/dist/chunk-CGIXMLSY.mjs.map +1 -0
  24. package/dist/{chunk-C3DLZMBU.mjs → chunk-DJSGLHCN.mjs} +2 -2
  25. package/dist/{chunk-2NHCNRF6.mjs → chunk-GFMBXLGP.mjs} +56 -20
  26. package/dist/chunk-GFMBXLGP.mjs.map +1 -0
  27. package/dist/chunk-I4CUBGVF.mjs +93 -0
  28. package/dist/chunk-I4CUBGVF.mjs.map +1 -0
  29. package/dist/{chunk-HNIQFZKB.mjs → chunk-ME4MO2RJ.mjs} +27 -37
  30. package/dist/chunk-ME4MO2RJ.mjs.map +1 -0
  31. package/dist/{chunk-RSKVYESE.mjs → chunk-RQ633A5I.mjs} +1 -1
  32. package/dist/chunk-RQ633A5I.mjs.map +1 -0
  33. package/dist/{chunk-2CUKEMVR.mjs → chunk-WDU6QXNK.mjs} +1 -1
  34. package/dist/chunk-WDU6QXNK.mjs.map +1 -0
  35. package/dist/{chunk-QGQX7SFC.mjs → chunk-ZVWA4ZQ3.mjs} +17 -8
  36. package/dist/chunk-ZVWA4ZQ3.mjs.map +1 -0
  37. package/dist/{client-plugins-DQQ1adXM.d.mts → client-plugins-BI2R6Eae.d.mts} +74 -3
  38. package/dist/{client-plugins-Cw4qUGsw.d.ts → client-plugins-DU9oMspX.d.ts} +74 -3
  39. package/dist/client-plugins.d.mts +2 -2
  40. package/dist/client-plugins.d.ts +2 -2
  41. package/dist/client.cjs.map +1 -1
  42. package/dist/client.d.mts +2 -2
  43. package/dist/client.d.ts +2 -2
  44. package/dist/client.mjs +1 -1
  45. package/dist/config.d.mts +2 -2
  46. package/dist/config.d.ts +2 -2
  47. package/dist/{devtools-LVC3VB5P.mjs → devtools-REQTS3I7.mjs} +6 -5
  48. package/dist/{devtools-LVC3VB5P.mjs.map → devtools-REQTS3I7.mjs.map} +1 -1
  49. package/dist/docs.cjs +51 -56
  50. package/dist/docs.cjs.map +1 -1
  51. package/dist/docs.mjs +6 -5
  52. package/dist/env-types.cjs +14 -5
  53. package/dist/env-types.cjs.map +1 -1
  54. package/dist/env-types.d.mts +2 -1
  55. package/dist/env-types.d.ts +2 -1
  56. package/dist/env-types.mjs +3 -1
  57. package/dist/env.cjs.map +1 -1
  58. package/dist/env.d.mts +1 -1
  59. package/dist/env.d.ts +1 -1
  60. package/dist/env.mjs +1 -1
  61. package/dist/i18n/client.d.mts +2 -2
  62. package/dist/i18n/client.d.ts +2 -2
  63. package/dist/i18n/index.d.mts +3 -3
  64. package/dist/i18n/index.d.ts +3 -3
  65. package/dist/i18n/server.d.mts +5 -5
  66. package/dist/i18n/server.d.ts +5 -5
  67. package/dist/index.cjs +931 -567
  68. package/dist/index.cjs.map +1 -1
  69. package/dist/index.d.mts +15 -13
  70. package/dist/index.d.ts +15 -13
  71. package/dist/index.mjs +23 -16
  72. package/dist/index.mjs.map +1 -1
  73. package/dist/integrations.d.mts +2 -2
  74. package/dist/integrations.d.ts +2 -2
  75. package/dist/internal/build-runtime.cjs +643 -322
  76. package/dist/internal/build-runtime.cjs.map +1 -1
  77. package/dist/internal/build-runtime.d.mts +4 -4
  78. package/dist/internal/build-runtime.d.ts +4 -4
  79. package/dist/internal/build-runtime.mjs +11 -10
  80. package/dist/internal/config-runtime.cjs +135 -39
  81. package/dist/internal/config-runtime.cjs.map +1 -1
  82. package/dist/internal/config-runtime.d.mts +3 -3
  83. package/dist/internal/config-runtime.d.ts +3 -3
  84. package/dist/internal/config-runtime.mjs +5 -4
  85. package/dist/internal/production-runtime.d.mts +6 -6
  86. package/dist/internal/production-runtime.d.ts +6 -6
  87. package/dist/markdown.cjs +73 -8
  88. package/dist/markdown.cjs.map +1 -1
  89. package/dist/markdown.d.mts +19 -2
  90. package/dist/markdown.d.ts +19 -2
  91. package/dist/markdown.mjs +5 -1
  92. package/dist/{metadata-BAPg_Nmo.d.ts → metadata-Cm9ujH4I.d.ts} +1 -1
  93. package/dist/{metadata-_6i9oFG3.d.mts → metadata-DacXbnLA.d.mts} +1 -1
  94. package/dist/middleware.d.mts +4 -4
  95. package/dist/middleware.d.ts +4 -4
  96. package/dist/plugin.cjs +679 -434
  97. package/dist/plugin.cjs.map +1 -1
  98. package/dist/plugin.d.mts +2 -2
  99. package/dist/plugin.d.ts +2 -2
  100. package/dist/plugin.mjs +8 -7
  101. package/dist/{production-runtime-DPfgMV9Y.d.mts → production-runtime-4KKq1AVC.d.mts} +2 -2
  102. package/dist/{production-runtime-BoJDc5mc.d.ts → production-runtime-DRsWDN2x.d.ts} +2 -2
  103. package/dist/{request-BrFBuc8G.d.mts → request-Dsq4kGW0.d.mts} +1 -1
  104. package/dist/{request-BslSZIRz.d.ts → request-udtobOLv.d.ts} +1 -1
  105. package/dist/request.d.mts +2 -2
  106. package/dist/request.d.ts +2 -2
  107. package/dist/{resolver-DlOPpjkB.d.mts → resolver-DJqjLMg_.d.mts} +1 -1
  108. package/dist/{resolver-C6iecsDV.d.ts → resolver-IH4RmPEl.d.ts} +1 -1
  109. package/dist/routes.d.mts +2 -2
  110. package/dist/routes.d.ts +2 -2
  111. package/dist/{runtime-DeAAZ6gO.d.mts → runtime-Cxpq6xZN.d.mts} +2 -2
  112. package/dist/{runtime-B6GvwDS1.d.ts → runtime-bv63eUiO.d.ts} +2 -2
  113. package/dist/server-plugins.d.mts +3 -3
  114. package/dist/server-plugins.d.ts +3 -3
  115. package/dist/server.cjs +731 -447
  116. package/dist/server.cjs.map +1 -1
  117. package/dist/server.d.mts +9 -9
  118. package/dist/server.d.ts +9 -9
  119. package/dist/server.mjs +9 -8
  120. package/dist/server.mjs.map +1 -1
  121. package/dist/testing.d.mts +2 -2
  122. package/dist/testing.d.ts +2 -2
  123. package/dist/{types-BH1lhg5G.d.mts → types-BMxWr97v.d.mts} +2 -2
  124. package/dist/{types-BH1lhg5G.d.ts → types-BMxWr97v.d.ts} +2 -2
  125. package/dist/{utils-Drsyz1Vj.d.ts → utils-B-cUHwoK.d.ts} +1 -1
  126. package/dist/{utils-CHXlMDkg.d.mts → utils-Cm41AefV.d.mts} +1 -1
  127. package/dist/version.cjs +1 -1
  128. package/dist/version.cjs.map +1 -1
  129. package/dist/version.mjs +1 -1
  130. package/dist/vite.cjs +682 -437
  131. package/dist/vite.cjs.map +1 -1
  132. package/dist/vite.d.mts +2 -2
  133. package/dist/vite.d.ts +2 -2
  134. package/dist/vite.mjs +6 -5
  135. package/package.json +3 -2
  136. package/types/client.d.ts +1 -1
  137. package/types/image.d.ts +4 -0
  138. package/types/images.d.ts +59 -0
  139. package/dist/chunk-2CUKEMVR.mjs.map +0 -1
  140. package/dist/chunk-2NHCNRF6.mjs.map +0 -1
  141. package/dist/chunk-A2LUXHD2.mjs.map +0 -1
  142. package/dist/chunk-BHG3LVHH.mjs.map +0 -1
  143. package/dist/chunk-EEABSBKK.mjs.map +0 -1
  144. package/dist/chunk-HNIQFZKB.mjs.map +0 -1
  145. package/dist/chunk-LLC7BNXW.mjs.map +0 -1
  146. package/dist/chunk-NM3CRAAL.mjs.map +0 -1
  147. package/dist/chunk-QGQX7SFC.mjs.map +0 -1
  148. package/dist/chunk-RSKVYESE.mjs.map +0 -1
  149. /package/dist/{chunk-C3DLZMBU.mjs.map → chunk-DJSGLHCN.mjs.map} +0 -0
@@ -9,7 +9,7 @@ import {
9
9
  FARM_DOCS_LAST_MODIFIED_MANIFEST,
10
10
  createFarmDocsLastModifiedManifest,
11
11
  getFarmDocsRouteTypeEntries
12
- } from "./chunk-HNIQFZKB.mjs";
12
+ } from "./chunk-ME4MO2RJ.mjs";
13
13
  import {
14
14
  generateFarmDocsSearchClientRuntime,
15
15
  isFarmDocsSearchEnabled,
@@ -21,17 +21,17 @@ import {
21
21
  import {
22
22
  hasCustomFarmRouteContext,
23
23
  resolveDeployOutputPath
24
- } from "./chunk-NM3CRAAL.mjs";
24
+ } from "./chunk-B4W3BNTL.mjs";
25
25
  import {
26
26
  PluginManager
27
- } from "./chunk-C3DLZMBU.mjs";
27
+ } from "./chunk-DJSGLHCN.mjs";
28
28
  import {
29
29
  createFarmApp,
30
30
  generateFarmClientPluginEntryCode,
31
31
  generateFarmTypeArtifacts,
32
32
  getClientModuleMetadata,
33
33
  resolveRouteRenderingConfigFromFile
34
- } from "./chunk-A2LUXHD2.mjs";
34
+ } from "./chunk-5VYHFKWE.mjs";
35
35
  import {
36
36
  farmEnvironmentFunctionsPlugin
37
37
  } from "./chunk-V6WE6JSZ.mjs";
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-YW7OBE6Q.mjs";
44
44
  import {
45
45
  isFarmMarkdownPageFile
46
- } from "./chunk-QGQX7SFC.mjs";
46
+ } from "./chunk-ZVWA4ZQ3.mjs";
47
47
  import {
48
48
  applyFarmWorkflowVercelCrons,
49
49
  prepareFarmWorkflowsForNitro
@@ -743,10 +743,14 @@ async function buildUniversal(config, routeManager, apiRouteManager, serverRende
743
743
  const routeRuntimeManifestResultPromise = Promise.allSettled([routeRuntimeManifestPromise]);
744
744
  const pageRoutes = [];
745
745
  for (const [pattern, entry] of routeManager.getRoutes()) {
746
+ const markdownSourcePath = entry.markdownSourcePath || (isFarmMarkdownPageFile(entry.modulePath) ? entry.modulePath : void 0);
746
747
  pageRoutes.push({
747
748
  pattern,
748
749
  modulePath: entry.modulePath,
749
- ...isFarmMarkdownPageFile(entry.modulePath) ? { source: readFileSync(entry.modulePath, "utf8") } : {}
750
+ ...markdownSourcePath ? {
751
+ source: readFileSync(markdownSourcePath, "utf8"),
752
+ markdownSourcePath
753
+ } : {}
750
754
  });
751
755
  }
752
756
  const routeSlots = Array.from(
@@ -2657,15 +2661,13 @@ function generateVirtualEntryCode(apiRoutes, pageRoutes, layoutRoutes, routeSlot
2657
2661
  });
2658
2662
  const pageImports = [];
2659
2663
  const pageRegistrations = [];
2660
- const hasMarkdownPages = pageRoutes.some(
2661
- (route) => route.source !== void 0 || isFarmMarkdownPageFile(route.modulePath)
2662
- );
2664
+ const hasMarkdownPages = pageRoutes.some((route) => route.source !== void 0);
2663
2665
  const orderedPageRoutes = pageRoutes.map((route, index) => ({ route, index })).sort(
2664
2666
  (left, right) => routePatternSpecificity(right.route.pattern) - routePatternSpecificity(left.route.pattern) || left.index - right.index
2665
2667
  ).map(({ route }) => route);
2666
2668
  orderedPageRoutes.forEach((route, index) => {
2667
2669
  const varName = `pageRoute${index}`;
2668
- if (route.source !== void 0 || isFarmMarkdownPageFile(route.modulePath)) {
2670
+ if (isFarmMarkdownPageFile(route.modulePath)) {
2669
2671
  pageRegistrations.push(`
2670
2672
  {
2671
2673
  pattern: ${JSON.stringify(route.pattern)},
@@ -2677,7 +2679,7 @@ function generateVirtualEntryCode(apiRoutes, pageRoutes, layoutRoutes, routeSlot
2677
2679
  }),
2678
2680
  markdownSource: {
2679
2681
  source: ${JSON.stringify(route.source ?? "")},
2680
- filePath: ${JSON.stringify(route.modulePath)},
2682
+ filePath: ${JSON.stringify(route.markdownSourcePath ?? route.modulePath)},
2681
2683
  },
2682
2684
  }`);
2683
2685
  return;
@@ -2689,6 +2691,10 @@ function generateVirtualEntryCode(apiRoutes, pageRoutes, layoutRoutes, routeSlot
2689
2691
  pattern: ${JSON.stringify(route.pattern)},
2690
2692
  module: ${varName},
2691
2693
  shouldHydrate: ${JSON.stringify(shouldHydrate)},
2694
+ ${route.source !== void 0 ? `markdownSource: {
2695
+ source: ${JSON.stringify(route.source)},
2696
+ filePath: ${JSON.stringify(route.markdownSourcePath)},
2697
+ },` : ""}
2692
2698
  }`);
2693
2699
  });
2694
2700
  const layoutImports = [];
@@ -2794,7 +2800,7 @@ function generateVirtualEntryCode(apiRoutes, pageRoutes, layoutRoutes, routeSlot
2794
2800
  const docsRuntimeImport = config.docs?.enabled ? `import { existsSync as farmDocsExistsSync } from "node:fs";
2795
2801
  import { dirname as farmDocsDirname, join as farmDocsJoin } from "node:path";
2796
2802
  import { fileURLToPath as farmDocsFileURLToPath } from "node:url";` : "";
2797
- const markdownHandlerImport = config.md?.enabled ? `import { createMarkdownMirrorResponse } from "@farm.js/core/markdown";` : "";
2803
+ const markdownHandlerImport = config.md?.enabled ? `import { applyMarkdownNegotiationHeaders, createMarkdownMirrorResponse } from "@farm.js/core/markdown";` : "";
2798
2804
  const appMarkdownImport = hasMarkdownPages ? `import { createFarmMarkdownRouteModule, createFarmMarkdownSourceResponse } from "@farm.js/core/app-markdown";` : "const createFarmMarkdownSourceResponse = null;";
2799
2805
  const mdxComponentsPath = typeof config.mdx?.components === "string" ? path3.isAbsolute(config.mdx.components) ? config.mdx.components : path3.join(config.root, config.mdx.components) : null;
2800
2806
  const mdxComponentsImport = mdxComponentsPath ? `import * as FarmMdxComponentsModule from "${mdxComponentsPath.replace(/\\/g, "/")}";` : "";
@@ -3044,10 +3050,12 @@ function serializeFarmInlineValue(value) {
3044
3050
  .replace(/\\u2029/g, "\\\\u2029");
3045
3051
  }
3046
3052
 
3047
- function renderFarmClientBootstrapScript(canonicalPath, selectedRouteSlots) {
3053
+ function renderFarmClientBootstrapScript(canonicalPath, selectedRouteSlots, pageProps) {
3048
3054
  const integrationManifest = ${hasRuntimeIntegrationConfig ? "getRegisteredIntegrationAPIManifest()" : "{}"};
3049
3055
  const serializedRouteSlots = serializeFarmInlineValue(selectedRouteSlots || []);
3050
- let source = 'window.__FARM_INTEGRATION_API_MANIFEST__=' +
3056
+ const serializedPageProps = serializeFarmInlineValue(pageProps || {});
3057
+ let source = 'window.__FARM_PROPS__=' + serializedPageProps +
3058
+ ';window.__FARM_INTEGRATION_API_MANIFEST__=' +
3051
3059
  serializeFarmInlineValue(integrationManifest) +
3052
3060
  ';window.__FARM_ROUTE_SLOTS__=' + serializedRouteSlots + ';';
3053
3061
  if (typeof canonicalPath === "string" && canonicalPath.startsWith("/")) {
@@ -4098,7 +4106,7 @@ async function getCachedPPRShell(cacheKey) {
4098
4106
  * Main request handler - created at runtime with bundled routes
4099
4107
  */
4100
4108
  async function handleFarmRequest(request) {
4101
- ${config.i18n.enabled ? `return _runWithFarmI18nRequest(
4109
+ const response = await ${config.i18n.enabled ? `_runWithFarmI18nRequest(
4102
4110
  farmI18nRuntime,
4103
4111
  request,
4104
4112
  async function(farmLocaleResolution) {
@@ -4117,7 +4125,15 @@ async function handleFarmRequest(request) {
4117
4125
  const response = await handleFarmRequestInContext(request, farmLocaleResolution);
4118
4126
  return applyFarmI18nResponse(response, farmLocaleResolution);
4119
4127
  }
4120
- );` : "return handleFarmRequestInContext(request, null);"}
4128
+ )` : "handleFarmRequestInContext(request, null)"};
4129
+ ${config.md?.enabled ? `const pathname = getFarmRoutePathname(new URL(request.url).pathname);
4130
+ if (matchPageRoute(pathname)) {
4131
+ return applyMarkdownNegotiationHeaders(response, {
4132
+ config: farmMarkdownConfig,
4133
+ pathname,
4134
+ });
4135
+ }` : ""}
4136
+ return response;
4121
4137
  }
4122
4138
 
4123
4139
  async function handleFarmRequestInContext(
@@ -4479,6 +4495,23 @@ async function handleFarmRequestInContext(
4479
4495
  return { ...slot, props: slotProps };
4480
4496
  }),
4481
4497
  );
4498
+ const clientMiddleware = middlewareData?.size
4499
+ ? { data: Object.fromEntries(middlewareData) }
4500
+ : undefined;
4501
+ const clientPageProps = {
4502
+ params: pageProps.params,
4503
+ search: pageProps.search ?? searchParamsObj,
4504
+ searchParams: pageProps.search ?? searchParamsObj,
4505
+ ...("data" in pageProps ? { data: pageProps.data } : {}),
4506
+ ...(pageProps.__farmCanonicalPath
4507
+ ? { __farmCanonicalPath: pageProps.__farmCanonicalPath }
4508
+ : {}),
4509
+ ...(pageProps.__farmRoutePropsResolved
4510
+ ? { __farmRoutePropsResolved: true }
4511
+ : {}),
4512
+ path: pathname,
4513
+ ...(clientMiddleware ? { middleware: clientMiddleware } : {}),
4514
+ };
4482
4515
  const routeSlotPayload = renderedRouteSlots.map(function(slot) {
4483
4516
  return {
4484
4517
  name: slot.name,
@@ -4493,6 +4526,7 @@ async function handleFarmRequestInContext(
4493
4526
  searchParams: slot.props.search || searchParamsObj,
4494
4527
  ...("data" in slot.props ? { data: slot.props.data } : {}),
4495
4528
  path: pathname,
4529
+ ...(clientMiddleware ? { middleware: clientMiddleware } : {}),
4496
4530
  },
4497
4531
  };
4498
4532
  });
@@ -4648,7 +4682,8 @@ async function handleFarmRequestInContext(
4648
4682
  const streamSuffix = '</div>\\n' +
4649
4683
  ' ' + renderFarmClientBootstrapScript(
4650
4684
  pageProps.__farmCanonicalPath,
4651
- routeSlotPayload
4685
+ routeSlotPayload,
4686
+ clientPageProps
4652
4687
  ) + '\\n' +
4653
4688
  ' <script type="module" src="/farm-client.js"></script>\\n' +
4654
4689
  '</body>\\n</html>';
@@ -4708,7 +4743,8 @@ async function handleFarmRequestInContext(
4708
4743
  /<\\/body>/i,
4709
4744
  ' ' + renderFarmClientBootstrapScript(
4710
4745
  pageProps.__farmCanonicalPath,
4711
- routeSlotPayload
4746
+ routeSlotPayload,
4747
+ clientPageProps
4712
4748
  ) + '\\n' +
4713
4749
  ' <script type="module" src="/farm-client.js"></script>\\n</body>',
4714
4750
  );
@@ -4730,7 +4766,7 @@ async function handleFarmRequestInContext(
4730
4766
  </head>
4731
4767
  <body>
4732
4768
  <div id="root">\${html}</div>
4733
- \${renderFarmClientBootstrapScript(pageProps.__farmCanonicalPath, routeSlotPayload)}
4769
+ \${renderFarmClientBootstrapScript(pageProps.__farmCanonicalPath, routeSlotPayload, clientPageProps)}
4734
4770
  <script type="module" src="/farm-client.js"></script>
4735
4771
  </body>
4736
4772
  </html>\`;
@@ -6238,4 +6274,4 @@ __name(buildNitro, "buildNitro");
6238
6274
  export {
6239
6275
  build
6240
6276
  };
6241
- //# sourceMappingURL=chunk-2NHCNRF6.mjs.map
6277
+ //# sourceMappingURL=chunk-GFMBXLGP.mjs.map