vike 0.4.228 → 0.4.229

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 (225) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/client/client-routing-runtime/globalContext.js +49 -0
  3. package/dist/cjs/client/server-routing-runtime/globalContext.js +41 -0
  4. package/dist/cjs/client/server-routing-runtime/utils.js +1 -1
  5. package/dist/cjs/client/shared/createGetGlobalContextClient.js +58 -0
  6. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +31 -0
  7. package/dist/cjs/client/shared/utils.js +22 -0
  8. package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
  9. package/dist/cjs/node/plugin/plugins/build/handleAssetsManifest.js +10 -5
  10. package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +1 -1
  11. package/dist/cjs/node/plugin/plugins/build/pluginBuildConfig.js +3 -10
  12. package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +9 -5
  13. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +5 -1
  14. package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +1 -1
  15. package/dist/cjs/node/plugin/plugins/commonConfig.js +14 -3
  16. package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +2 -7
  17. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -0
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
  20. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
  21. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +13 -0
  22. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
  23. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +13 -10
  24. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
  25. package/dist/cjs/node/plugin/shared/getFilePath.js +2 -2
  26. package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +7 -19
  27. package/dist/cjs/node/plugin/utils.js +1 -0
  28. package/dist/cjs/node/prerender/runPrerender.js +44 -41
  29. package/dist/cjs/node/prerender/utils.js +1 -1
  30. package/dist/cjs/node/runtime/globalContext.js +102 -125
  31. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  32. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  33. package/dist/cjs/node/runtime/html/propKeys.js +47 -0
  34. package/dist/cjs/node/runtime/html/renderHtml.js +1 -1
  35. package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +37 -67
  36. package/dist/cjs/node/runtime/index-deprecated.js +9 -38
  37. package/dist/cjs/node/runtime/index.js +56 -2
  38. package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -1
  39. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +8 -3
  40. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +73 -0
  41. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
  42. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +2 -2
  43. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
  44. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
  45. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  46. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
  47. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  48. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  49. package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -1
  50. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
  51. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -68
  52. package/dist/cjs/node/runtime/renderPage.js +102 -81
  53. package/dist/cjs/node/runtime/universal-middleware.js +7 -1
  54. package/dist/cjs/node/runtime/utils.js +3 -2
  55. package/dist/cjs/shared/assertPageContextProvidedByUser.js +1 -1
  56. package/dist/cjs/shared/createGlobalContextShared.js +54 -0
  57. package/dist/cjs/shared/createPageContextShared.js +17 -0
  58. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  59. package/dist/cjs/shared/hooks/executeHookGeneric.js +18 -0
  60. package/dist/cjs/shared/hooks/getHook.js +45 -27
  61. package/dist/cjs/shared/htmlElementIds.js +5 -0
  62. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +3 -7
  63. package/dist/cjs/shared/route/executeGuardHook.js +1 -1
  64. package/dist/cjs/shared/route/loadPageRoutes.js +2 -1
  65. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  66. package/dist/cjs/utils/catchInfiniteLoop.js +3 -3
  67. package/dist/cjs/utils/getPublicProxy.js +27 -0
  68. package/dist/cjs/utils/isImportPath.js +21 -0
  69. package/dist/cjs/utils/objectAssign.js +6 -10
  70. package/dist/cjs/utils/objectReplace.js +4 -4
  71. package/dist/cjs/utils/{isNpmPackage.js → parseNpmPackage.js} +23 -23
  72. package/dist/cjs/utils/path.js +12 -2
  73. package/dist/cjs/utils/requireResolve.js +134 -53
  74. package/dist/esm/__internal/index.js +3 -3
  75. package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +29 -10
  76. package/dist/esm/client/client-routing-runtime/createPageContext.js +23 -22
  77. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +5 -4
  78. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +20 -0
  79. package/dist/esm/client/client-routing-runtime/globalContext.js +13 -0
  80. package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +2 -2
  81. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  82. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +8 -7
  83. package/dist/esm/client/client-routing-runtime/utils.d.ts +0 -1
  84. package/dist/esm/client/client-routing-runtime/utils.js +0 -1
  85. package/dist/esm/client/index.d.ts +1 -0
  86. package/dist/esm/client/index.js +4 -0
  87. package/dist/esm/client/node.js +1 -3
  88. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +36 -0
  89. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +47 -0
  90. package/dist/esm/client/server-routing-runtime/entry.js +2 -2
  91. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +17 -0
  92. package/dist/esm/client/server-routing-runtime/globalContext.js +5 -0
  93. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -1
  94. package/dist/esm/client/server-routing-runtime/utils.js +1 -1
  95. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +23 -0
  96. package/dist/esm/client/shared/createGetGlobalContextClient.js +58 -0
  97. package/dist/esm/client/shared/executeOnRenderClientHook.js +5 -4
  98. package/dist/esm/client/shared/{getPageContextSerializedInHtml.d.ts → getJsonSerializedInHtml.d.ts} +2 -0
  99. package/dist/esm/client/shared/getJsonSerializedInHtml.js +29 -0
  100. package/dist/esm/client/shared/removeFoucBuster.js +1 -0
  101. package/dist/esm/client/shared/utils.d.ts +4 -0
  102. package/dist/esm/client/shared/utils.js +4 -0
  103. package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
  104. package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.js +11 -6
  105. package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +2 -2
  106. package/dist/esm/node/plugin/plugins/build/pluginBuildConfig.js +4 -11
  107. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +1 -1
  108. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +10 -6
  109. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +5 -1
  110. package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +2 -2
  111. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +2 -0
  112. package/dist/esm/node/plugin/plugins/commonConfig.js +15 -4
  113. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +3 -8
  114. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -2
  115. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -0
  116. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -1
  117. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
  118. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +1 -1
  119. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.d.ts → pointerImports.d.ts} +2 -0
  120. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +14 -1
  121. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +1 -1
  122. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
  123. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +13 -10
  124. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
  125. package/dist/esm/node/plugin/shared/getFilePath.js +3 -3
  126. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +8 -20
  127. package/dist/esm/node/plugin/utils.d.ts +1 -0
  128. package/dist/esm/node/plugin/utils.js +1 -0
  129. package/dist/esm/node/prerender/runPrerender.d.ts +314 -5
  130. package/dist/esm/node/prerender/runPrerender.js +48 -45
  131. package/dist/esm/node/prerender/utils.d.ts +1 -1
  132. package/dist/esm/node/prerender/utils.js +1 -1
  133. package/dist/esm/node/runtime/globalContext.d.ts +425 -47
  134. package/dist/esm/node/runtime/globalContext.js +103 -126
  135. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  136. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
  137. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  138. package/dist/esm/node/runtime/html/injectAssets.d.ts +3 -3
  139. package/dist/esm/node/runtime/html/propKeys.d.ts +8 -0
  140. package/dist/esm/node/runtime/html/propKeys.js +45 -0
  141. package/dist/esm/node/runtime/html/renderHtml.js +1 -1
  142. package/dist/esm/node/runtime/html/{serializePageContextClientSide.d.ts → serializeContext.d.ts} +7 -6
  143. package/dist/esm/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +36 -67
  144. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -16
  145. package/dist/esm/node/runtime/index-deprecated.js +9 -36
  146. package/dist/esm/node/runtime/index.d.ts +23 -1
  147. package/dist/esm/node/runtime/index.js +38 -3
  148. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
  149. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  150. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +5 -4
  151. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +8 -3
  152. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +155 -0
  153. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +71 -0
  154. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +3 -3
  155. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
  156. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +3 -3
  157. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +2 -2
  158. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
  159. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  160. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
  161. package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
  162. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  163. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  164. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -2
  165. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  166. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  167. package/dist/esm/node/runtime/renderPage/log404/index.js +1 -1
  168. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -3
  169. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
  170. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +225 -179
  171. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +4 -69
  172. package/dist/esm/node/runtime/renderPage.d.ts +146 -7
  173. package/dist/esm/node/runtime/renderPage.js +105 -84
  174. package/dist/esm/node/runtime/universal-middleware.js +7 -1
  175. package/dist/esm/node/runtime/utils.d.ts +3 -2
  176. package/dist/esm/node/runtime/utils.js +3 -2
  177. package/dist/esm/shared/VikeNamespace.d.ts +35 -13
  178. package/dist/esm/shared/assertPageContextProvidedByUser.js +1 -1
  179. package/dist/esm/shared/createGlobalContextShared.d.ts +39 -0
  180. package/dist/esm/shared/createGlobalContextShared.js +51 -0
  181. package/dist/esm/shared/createPageContextShared.d.ts +9 -0
  182. package/dist/esm/shared/createPageContextShared.js +15 -0
  183. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  184. package/dist/esm/shared/hooks/executeHookGeneric.d.ts +8 -0
  185. package/dist/esm/shared/hooks/executeHookGeneric.js +16 -0
  186. package/dist/esm/shared/hooks/getHook.d.ts +5 -3
  187. package/dist/esm/shared/hooks/getHook.js +47 -29
  188. package/dist/esm/shared/htmlElementIds.d.ts +2 -0
  189. package/dist/esm/shared/htmlElementIds.js +2 -0
  190. package/dist/esm/shared/page-configs/Config.d.ts +12 -2
  191. package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +1 -1
  192. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +3 -7
  193. package/dist/esm/shared/route/executeGuardHook.js +2 -2
  194. package/dist/esm/shared/route/loadPageRoutes.js +2 -1
  195. package/dist/esm/shared/types.d.ts +64 -32
  196. package/dist/esm/types/index.d.ts +1 -5
  197. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  198. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  199. package/dist/esm/utils/catchInfiniteLoop.js +4 -4
  200. package/dist/esm/utils/getGlobalObject.d.ts +1 -1
  201. package/dist/esm/utils/getPublicProxy.d.ts +2 -0
  202. package/dist/esm/utils/getPublicProxy.js +25 -0
  203. package/dist/esm/utils/isImportPath.d.ts +4 -0
  204. package/dist/esm/utils/isImportPath.js +19 -0
  205. package/dist/esm/utils/objectAssign.d.ts +1 -1
  206. package/dist/esm/utils/objectAssign.js +6 -10
  207. package/dist/esm/utils/objectReplace.d.ts +1 -1
  208. package/dist/esm/utils/objectReplace.js +4 -4
  209. package/dist/esm/utils/parseNpmPackage.d.ts +17 -0
  210. package/dist/esm/utils/{isNpmPackage.js → parseNpmPackage.js} +23 -23
  211. package/dist/esm/utils/path.d.ts +1 -1
  212. package/dist/esm/utils/path.js +12 -2
  213. package/dist/esm/utils/requireResolve.d.ts +20 -7
  214. package/dist/esm/utils/requireResolve.js +134 -53
  215. package/package.json +14 -13
  216. package/dist/cjs/node/runtime/index-common.js +0 -27
  217. package/dist/cjs/utils/makePublicCopy.js +0 -32
  218. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +0 -19
  219. package/dist/esm/client/server-routing-runtime/getPageContext.js +0 -44
  220. package/dist/esm/client/shared/getPageContextSerializedInHtml.js +0 -20
  221. package/dist/esm/node/runtime/index-common.d.ts +0 -8
  222. package/dist/esm/node/runtime/index-common.js +0 -10
  223. package/dist/esm/utils/isNpmPackage.d.ts +0 -17
  224. package/dist/esm/utils/makePublicCopy.d.ts +0 -3
  225. package/dist/esm/utils/makePublicCopy.js +0 -30
@@ -7,13 +7,12 @@ exports.resolvePointerImport = resolvePointerImport;
7
7
  exports.resolvePointerImportData = resolvePointerImportData;
8
8
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
9
9
  const utils_js_1 = require("../../../../utils.js");
10
- const transformPointerImports_js_1 = require("./transformPointerImports.js");
11
- const path_1 = __importDefault(require("path"));
10
+ const pointerImports_js_1 = require("./pointerImports.js");
12
11
  const getFilePath_js_1 = require("../../../../shared/getFilePath.js");
13
12
  function resolvePointerImport(configValue, importerFilePath, userRootDir, configName) {
14
13
  if (typeof configValue !== 'string')
15
14
  return null;
16
- const pointerImportData = (0, transformPointerImports_js_1.parsePointerImportData)(configValue);
15
+ const pointerImportData = (0, pointerImports_js_1.parsePointerImportData)(configValue);
17
16
  if (!pointerImportData)
18
17
  return null;
19
18
  const { exportName } = pointerImportData;
@@ -27,24 +26,18 @@ function resolvePointerImport(configValue, importerFilePath, userRootDir, config
27
26
  return { fileExportPath };
28
27
  }
29
28
  function resolvePointerImportData(pointerImportData, importerFilePath, userRootDir) {
30
- // `importPath` should be one of the following:
31
- // - A relative import path
32
- // - A filesystem absolute path
33
- // - An npm package import
34
29
  const { importPath } = pointerImportData;
35
- const filePathAbsoluteFilesystem = resolveImportPathWithNode(pointerImportData, importerFilePath);
30
+ (0, pointerImports_js_1.assertPointerImportPath)(importPath);
31
+ const filePathAbsoluteFilesystem = resolveImportPathWithNode(pointerImportData, importerFilePath, userRootDir);
36
32
  let filePath;
37
33
  (0, utils_js_1.assertPosixPath)(importPath);
38
- if (importPath.startsWith('.') || (0, utils_js_1.isFilePathAbsolute)(importPath)) {
39
- if (importPath.startsWith('.')) {
40
- (0, utils_js_1.assertUsage)((0, utils_js_1.pathIsRelative)(importPath), `Invalid relative import path ${picocolors_1.default.code(importPath)} defined by ${importerFilePath.filePathToShowToUser} because it should start with ${picocolors_1.default.code('./')} or ${picocolors_1.default.code('../')}, or use an npm package import instead.`);
41
- }
34
+ if ((0, utils_js_1.isImportPathRelative)(importPath) || (0, utils_js_1.isFilePathAbsolute)(importPath)) {
42
35
  // Pointer imports are included in virtual files, thus relative imports need to be resolved. (Virtual modules cannot contain relative imports.)
43
36
  assertUsageResolutionSuccess(filePathAbsoluteFilesystem, pointerImportData, importerFilePath);
44
37
  // Pointer imports are included in virtual files, and we need filePathAbsoluteUserRootDir because we didn't find a way to have filesystem absolute import paths in virtual files: https://gist.github.com/brillout/2315231c9a8164f950c64b4b4a7bbd39
45
38
  const errSuffix = `outside of the ${userRootDir} directory which is forbidden: make sure your import paths resolve inside the ${userRootDir} directory, or import from an npm package.`;
46
39
  const filePathAbsoluteUserRootDir = (0, getFilePath_js_1.getFilePathAbsoluteUserRootDir)({ filePathAbsoluteFilesystem, userRootDir });
47
- if (importPath.startsWith('.')) {
40
+ if ((0, utils_js_1.isImportPathRelative)(importPath)) {
48
41
  (0, utils_js_1.assertUsage)(filePathAbsoluteUserRootDir, `The relative import ${picocolors_1.default.cyan(importPath)} defined by ${importerFilePath.filePathToShowToUser} resolves to ${filePathAbsoluteFilesystem} ${errSuffix}`);
49
42
  }
50
43
  else {
@@ -56,6 +49,7 @@ function resolvePointerImportData(pointerImportData, importerFilePath, userRootD
56
49
  filePath = (0, getFilePath_js_1.getFilePathResolved)({ filePathAbsoluteUserRootDir, userRootDir });
57
50
  }
58
51
  else {
52
+ (0, utils_js_1.assert)((0, utils_js_1.isImportPathNpmPackageOrPathAlias)(importPath));
59
53
  const importPathAbsolute = importPath;
60
54
  if (filePathAbsoluteFilesystem) {
61
55
  filePath = (0, getFilePath_js_1.getFilePathResolved)({
@@ -73,12 +67,20 @@ function resolvePointerImportData(pointerImportData, importerFilePath, userRootD
73
67
  }
74
68
  return filePath;
75
69
  }
76
- function resolveImportPathWithNode(pointerImportData, importerFilePath) {
70
+ function resolveImportPathWithNode(pointerImportData, importerFilePath, userRootDir) {
77
71
  const importerFilePathAbsolute = importerFilePath.filePathAbsoluteFilesystem;
78
72
  (0, utils_js_1.assertPosixPath)(importerFilePathAbsolute);
79
- const cwd = path_1.default.posix.dirname(importerFilePathAbsolute);
80
- // filePathAbsoluteFilesystem is expected to be null when pointerImportData.importPath is a Vite path alias
81
- const filePathAbsoluteFilesystem = (0, utils_js_1.requireResolveOptional)(pointerImportData.importPath, cwd);
73
+ // filePathAbsoluteFilesystem is null when pointerImportData.importPath is a path alias that Node.js doesn't know about
74
+ const filePathAbsoluteFilesystem = (0, utils_js_1.requireResolveOptional)({
75
+ importPath: pointerImportData.importPath,
76
+ importerFilePath: importerFilePathAbsolute,
77
+ userRootDir
78
+ });
79
+ if (!filePathAbsoluteFilesystem) {
80
+ (0, utils_js_1.assert)(!(0, utils_js_1.isImportPathRelative)(pointerImportData.importPath));
81
+ // Libraries don't use path aliases => filePathAbsoluteFilesystem should be defined
82
+ (0, utils_js_1.assert)(!importerFilePathAbsolute.includes('node_modules'));
83
+ }
82
84
  return filePathAbsoluteFilesystem;
83
85
  }
84
86
  function assertUsageResolutionSuccess(filePathAbsoluteFilesystem, pointerImportData, importerFilePath) {
@@ -90,8 +92,7 @@ function assertUsageResolutionSuccess(filePathAbsoluteFilesystem, pointerImportD
90
92
  ? `The import path ${importPathString} in ${filePathToShowToUser}`
91
93
  : `The import ${picocolors_1.default.code(importString)} defined by ${filePathToShowToUser}`;
92
94
  const errIntro2 = `${errIntro} couldn't be resolved: does ${importPathString}`;
93
- if (importPath.startsWith('.')) {
94
- (0, utils_js_1.assert)((0, utils_js_1.pathIsRelative)(importPath));
95
+ if ((0, utils_js_1.isImportPathRelative)(importPath)) {
95
96
  (0, utils_js_1.assertUsage)(false, `${errIntro2} point to an existing file?`);
96
97
  }
97
98
  else {
@@ -13,7 +13,7 @@ const path_1 = __importDefault(require("path"));
13
13
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
14
  const import_1 = require("@brillout/import");
15
15
  const utils_js_1 = require("../../../../utils.js");
16
- const transformPointerImports_js_1 = require("./transformPointerImports.js");
16
+ const pointerImports_js_1 = require("./pointerImports.js");
17
17
  const source_map_support_1 = __importDefault(require("source-map-support"));
18
18
  const getFilePath_js_1 = require("../../../../shared/getFilePath.js");
19
19
  (0, utils_js_1.assertIsNotProductionRuntime)();
@@ -61,7 +61,7 @@ async function transpileFile(filePath, transformImports, userRootDir, esbuildCac
61
61
  debug(`code, post esbuild (${filePathToShowToUserResolved})`, code);
62
62
  let isImportTransformed = false;
63
63
  if (transformImports) {
64
- const codeMod = (0, transformPointerImports_js_1.transformPointerImports)(code, filePathToShowToUserResolved, pointerImports);
64
+ const codeMod = (0, pointerImports_js_1.transformPointerImports)(code, filePathToShowToUserResolved, pointerImports);
65
65
  if (codeMod) {
66
66
  code = codeMod;
67
67
  isImportTransformed = true;
@@ -126,7 +126,11 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports, esb
126
126
  // - Sitll required for esbuild@0.24.0 (November 2024).
127
127
  // - Let's try to remove this workaround again later.
128
128
  if (resolved.errors.length > 0) {
129
- const resolvedWithNode = (0, utils_js_1.requireResolveOptional)(path, args.resolveDir);
129
+ const resolvedWithNode = (0, utils_js_1.requireResolveOptionalDir)({
130
+ importPath: path,
131
+ importerDir: (0, utils_js_1.toPosixPath)(args.resolveDir),
132
+ userRootDir
133
+ });
130
134
  if (debugEsbuildResolve.isActivated)
131
135
  debugEsbuildResolve('resolvedWithNode', resolvedWithNode);
132
136
  if (resolvedWithNode)
@@ -146,8 +150,8 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports, esb
146
150
  const importPathOriginal = args.path;
147
151
  // Esbuild resolves path aliases.
148
152
  // - Enabling us to use:
149
- // - assertIsNpmPackageImport()
150
- // - isNpmPackageImport(str, { cannotBePathAlias: true })
153
+ // - assertIsImportPathNpmPackage()
154
+ // - isImportPathNpmPackage(str, { cannotBePathAlias: true })
151
155
  (0, utils_js_1.assertFilePathAbsoluteFilesystem)(importPathResolved);
152
156
  // Should be remove this? See comment below.
153
157
  const isVikeExtensionImport = (path.startsWith('vike-') && path.endsWith('/config')) || importPathResolved.endsWith('+config.js');
@@ -165,7 +169,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports, esb
165
169
  const isNpmPkgImport = (() => {
166
170
  if (importPathResolved.includes('/node_modules/')) {
167
171
  // So far I can't think of a use case where this assertion would fail, but let's eventually remove it to avoid artificially restricting the user.
168
- (0, utils_js_1.assert)((0, utils_js_1.isNpmPackageImport_unreliable)(importPathOriginal));
172
+ (0, utils_js_1.assert)((0, utils_js_1.isImportPathNpmPackageOrPathAlias)(importPathOriginal));
169
173
  return true;
170
174
  }
171
175
  // Linked npm packages
@@ -174,7 +178,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports, esb
174
178
  // - This isn't always the case: https://github.com/vikejs/vike/issues/2326
175
179
  !importPathResolved.startsWith(userRootDir) &&
176
180
  // False positive if `importPathOriginal` is a path alias that a) looks like an npm package import and b) resolves outside of `userRootDir` => we then we wrongfully assume that `importPathOriginal` is an npm package import.
177
- (0, utils_js_1.isNpmPackageImport_unreliable)(importPathOriginal)) {
181
+ (0, utils_js_1.isImportPathNpmPackageOrPathAlias)(importPathOriginal)) {
178
182
  return true;
179
183
  }
180
184
  return false;
@@ -191,7 +195,7 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports, esb
191
195
  }
192
196
  let importPathTranspiled;
193
197
  (0, utils_js_1.assertPosixPath)(importPathOriginal);
194
- if (importPathOriginal.startsWith('./') || importPathOriginal.startsWith('../')) {
198
+ if ((0, utils_js_1.isImportPathRelative)(importPathOriginal)) {
195
199
  importPathTranspiled = importPathResolved;
196
200
  }
197
201
  else {
@@ -208,12 +212,11 @@ async function transpileWithEsbuild(filePath, userRootDir, transformImports, esb
208
212
  // - Vike doesn't resolve path aliases at all.
209
213
  // - Node.js doesn't support `tsconfig.js#compilerOptions.paths`.
210
214
  // - Esbuild path alias resolution seems reliable, e.g. it supports `tsconfig.js#compilerOptions.paths`.
211
- (0, utils_js_1.assert)(!(0, utils_js_1.isNpmPackageImport_unreliable)(importPathOriginal));
212
215
  importPathTranspiled = importPathResolved;
213
216
  }
214
217
  else {
215
218
  // `importPathOriginal` is most likely an npm package import.
216
- (0, utils_js_1.assertIsNpmPackageImport)(importPathOriginal);
219
+ (0, utils_js_1.assertIsImportPathNpmPackage)(importPathOriginal);
217
220
  // For improved error messages, let the resolution be handled by Vike or Node.js.
218
221
  importPathTranspiled = importPathOriginal;
219
222
  }
@@ -75,7 +75,7 @@ async function handleReloadSideEffects() {
75
75
  }
76
76
  }
77
77
  }
78
- // TODO/soon: predominantly use getVikeConfigPublic() instead of getVikeConfig() then maybe refector?
78
+ // TODO/soon: predominantly use getVikeConfigInternal() instead of getVikeConfig() then maybe refector?
79
79
  async function getVikeConfig(config, { doNotRestartViteOnError } = {}) {
80
80
  const userRootDir = config.root;
81
81
  const vikeVitePluginOptions = config._vikeVitePluginOptions;
@@ -410,7 +410,7 @@ function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
410
410
  Object.entries(configValues).forEach(([configName, value]) => {
411
411
  var _a;
412
412
  const sourceName = `The ${(0, getConfigDefinedAt_js_1.getDefinedByString)(definedBy, configName)}`;
413
- assertKnownConfig(configName, configDefinitionsResolved.configNamesKnownGlobal, configDefinitionsResolved, '/', sourceName, exitOnError);
413
+ assertKnownConfig(configName, configDefinitionsResolved.configNamesKnownGlobal, configDefinitionsResolved, '/', false, sourceName, exitOnError);
414
414
  const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
415
415
  sources.unshift(getSourceNonConfigFile(configName, value, definedBy));
416
416
  });
@@ -682,15 +682,12 @@ function resolveIsGlobalValue(configDefGlobal, source, plusFilesAll) {
682
682
  return isGlobal;
683
683
  }
684
684
  function getConfigNamesSetByPlusFile(plusFile) {
685
- let configNames = [];
686
685
  if (!plusFile.isConfigFile) {
687
- configNames.push(plusFile.configName);
686
+ return [plusFile.configName];
688
687
  }
689
- if (!plusFile.isNotLoaded) {
690
- configNames.push(...Object.keys(plusFile.fileExportsByConfigName));
688
+ else {
689
+ return Object.keys(plusFile.fileExportsByConfigName);
691
690
  }
692
- configNames = (0, utils_js_1.unique)(configNames);
693
- return configNames;
694
691
  }
695
692
  function getConfigDefinitions(plusFilesRelevant, filter) {
696
693
  let configDefinitions = { ...configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn };
@@ -885,12 +882,12 @@ function assertKnownConfigs(configDefinitionsResolved) {
885
882
  configNames.forEach((configName) => {
886
883
  const { locationId } = plusFile;
887
884
  const sourceName = plusFile.filePath.filePathToShowToUser;
888
- assertKnownConfig(configName, configNamesKnownLocal, configDefinitionsResolved, locationId, sourceName, false);
885
+ assertKnownConfig(configName, configNamesKnownLocal, configDefinitionsResolved, locationId, true, sourceName, false);
889
886
  });
890
887
  });
891
888
  });
892
889
  }
893
- function assertKnownConfig(configName, configNamesKnownRelevant, configDefinitionsResolved, locationId, sourceName, exitOnError) {
890
+ function assertKnownConfig(configName, configNamesKnownRelevant, configDefinitionsResolved, locationId, isPlusFile, sourceName, exitOnError) {
894
891
  const { configNamesKnownAll } = configDefinitionsResolved;
895
892
  if (configNamesKnownRelevant.includes(configName)) {
896
893
  (0, utils_js_1.assert)(configNamesKnownAll.includes(configName));
@@ -901,7 +898,10 @@ function assertKnownConfig(configName, configNamesKnownRelevant, configDefinitio
901
898
  if (configNamesKnownAll.includes(configName)) {
902
899
  (0, utils_js_1.assertUsage)(false, `${sourceName} sets the value of the config ${configNameColored} which is a custom config that is defined with ${picocolors_1.default.underline('https://vike.dev/meta')} at a path that doesn't apply to ${locationId} — see ${picocolors_1.default.underline('https://vike.dev/config#inheritance')}`, { exitOnError });
903
900
  }
904
- const errMsg = `${sourceName} sets an unknown Vike config, see ${picocolors_1.default.underline('https://vike.dev/cli')} for the list of CLI options.`;
901
+ const errMsg = isPlusFile
902
+ ? `${sourceName} sets an unknown config ${configNameColored}`
903
+ : `${sourceName} sets an unknown Vike config, see ${picocolors_1.default.underline('https://vike.dev/cli')} for the list of CLI options`;
904
+ (0, utils_js_1.assert)(errMsg.includes(configName));
905
905
  // Missing vike-{react,vue,solid} installation
906
906
  {
907
907
  const ui = ['vike-react', 'vike-vue', 'vike-solid'];
@@ -44,7 +44,7 @@ function getComputedProps(args) {
44
44
  const importPathAbsolute = args.importPathAbsolute ?? null;
45
45
  const { filePathAbsoluteUserRootDir } = args;
46
46
  if (importPathAbsolute)
47
- (0, utils_js_1.assertIsNpmPackageImport)(importPathAbsolute);
47
+ (0, utils_js_1.assertIsImportPathNpmPackage)(importPathAbsolute);
48
48
  return {
49
49
  importPathAbsolute,
50
50
  filePathAbsoluteUserRootDir,
@@ -58,7 +58,7 @@ function getComputedProps(args) {
58
58
  }
59
59
  function getComputedPropsImportPathAbsolute(args) {
60
60
  const { importPathAbsolute } = args;
61
- (0, utils_js_1.assertIsNpmPackageImport)(importPathAbsolute);
61
+ (0, utils_js_1.assertIsImportPathNpmPackage)(importPathAbsolute);
62
62
  return {
63
63
  filePathAbsoluteUserRootDir: null,
64
64
  importPathAbsolute,
@@ -2,13 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveClientEntriesDev = resolveClientEntriesDev;
4
4
  const utils_js_1 = require("../utils.js");
5
- // @ts-ignore `file:///${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
6
- const importMetaUrl = `file:///${__filename.split('\\').join('/')}`;
7
5
  (0, utils_js_1.assertIsNotProductionRuntime)();
8
6
  async function resolveClientEntriesDev(clientEntry, viteDevServer) {
9
- let root = viteDevServer.config.root;
10
- (0, utils_js_1.assert)(root);
11
- root = (0, utils_js_1.toPosixPath)(root);
7
+ let userRootDir = viteDevServer.config.root;
8
+ (0, utils_js_1.assert)(userRootDir);
9
+ userRootDir = (0, utils_js_1.toPosixPath)(userRootDir);
12
10
  // The `?import` suffix is needed for MDX to be transpiled:
13
11
  // - Not transpiled: `/pages/markdown.page.mdx`
14
12
  // - Transpiled: `/pages/markdown.page.mdx?import`
@@ -22,26 +20,16 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
22
20
  (0, utils_js_1.assertPosixPath)(clientEntry);
23
21
  let filePath;
24
22
  if (clientEntry.startsWith('/')) {
25
- filePath = (0, utils_js_1.pathJoin)(root, clientEntry);
23
+ filePath = (0, utils_js_1.pathJoin)(userRootDir, clientEntry);
26
24
  }
27
25
  else {
28
26
  if (clientEntry.startsWith('@@vike/')) {
29
27
  (0, utils_js_1.assert)(clientEntry.endsWith('.js'));
30
- let filePath_;
31
- // For Vitest (which doesn't resolve vike to its dist but to its source files)
32
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/plugin/shared/resolveClientEntriesDev.js
33
- filePath_ = (0, utils_js_1.requireResolveOptionalNonUserFile)(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts'), importMetaUrl);
34
- if (!filePath_) {
35
- // For users
36
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/shared/resolveClientEntriesDev.js
37
- filePath_ = (0, utils_js_1.requireResolveOptionalNonUserFile)(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/'), importMetaUrl);
38
- }
39
- (0, utils_js_1.assert)(filePath_);
40
- filePath = filePath_;
28
+ filePath = (0, utils_js_1.requireResolveVikeDistFile)(`dist/esm/${clientEntry.replace('@@vike/dist/esm/', '')}`);
41
29
  }
42
30
  else {
43
- (0, utils_js_1.assertIsNpmPackageImport)(clientEntry);
44
- filePath = (0, utils_js_1.requireResolve)(clientEntry, root);
31
+ (0, utils_js_1.assertIsImportPathNpmPackage)(clientEntry);
32
+ filePath = (0, utils_js_1.requireResolveNpmPackage)({ importPathNpmPackage: clientEntry, userRootDir });
45
33
  }
46
34
  }
47
35
  if (!filePath.startsWith('/')) {
@@ -46,3 +46,4 @@ __exportStar(require("../../utils/isEqualStringList.js"), exports);
46
46
  __exportStar(require("../../utils/isDocker.js"), exports);
47
47
  __exportStar(require("../../utils/isVitest.js"), exports);
48
48
  __exportStar(require("../../utils/rollupSourceMap.js"), exports);
49
+ __exportStar(require("../../utils/isImportPath.js"), exports);
@@ -44,6 +44,7 @@ const path_1 = __importDefault(require("path"));
44
44
  const index_js_1 = require("../../shared/route/index.js");
45
45
  const utils_js_1 = require("./utils.js");
46
46
  const renderPageAlreadyRouted_js_1 = require("../runtime/renderPage/renderPageAlreadyRouted.js");
47
+ const createPageContextServerSide_js_1 = require("../runtime/renderPage/createPageContextServerSide.js");
47
48
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
48
49
  const os_1 = require("os");
49
50
  const globalContext_js_1 = require("../runtime/globalContext.js");
@@ -114,7 +115,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
114
115
  await disableReactStreaming();
115
116
  const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
116
117
  const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(viteConfig);
117
- const vike = (0, commonConfig_js_1.getVikeConfigPublic)(viteConfig);
118
+ const vike = (0, commonConfig_js_1.getVikeConfigInternal)(viteConfig);
118
119
  const { outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
119
120
  const { root } = viteConfig;
120
121
  const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
@@ -131,26 +132,26 @@ async function runPrerender(options = {}, standaloneTrigger) {
131
132
  }
132
133
  const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
133
134
  await (0, globalContext_js_1.initGlobalContext_runPrerender)();
134
- const globalContext = await (0, globalContext_js_1.getGlobalContextInternal)();
135
- globalContext.pageFilesAll.forEach(assertExportNames);
135
+ const { globalContext, globalContext_public } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
136
+ globalContext._pageFilesAll.forEach(assertExportNames);
136
137
  const prerenderContext = {
137
- noExtraDir,
138
138
  pageContexts: [],
139
- pageContextInit: options.pageContextInit ?? null,
140
- prerenderedPageContexts: {},
141
- output: []
139
+ output: [],
140
+ _noExtraDir: noExtraDir,
141
+ _pageContextInit: options.pageContextInit ?? null,
142
+ _prerenderedPageContexts: {}
142
143
  };
143
144
  const doNotPrerenderList = [];
144
145
  await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
145
146
  // Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
146
147
  // https://vike.dev/onBeforePrerenderStart
147
- await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
148
+ await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList);
148
149
  // Create `pageContext` for each page with a static route
149
150
  const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
150
- await createPageContextsForOnPrerenderStartHook(urlList, prerenderContext, globalContext, concurrencyLimit, false);
151
+ await createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, false);
151
152
  // Create `pageContext` for 404 page
152
153
  const urlList404 = getUrlList404(globalContext);
153
- await createPageContextsForOnPrerenderStartHook(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
154
+ await createPageContexts(urlList404, prerenderContext, globalContext, globalContext_public, concurrencyLimit, true);
154
155
  // Allow user to duplicate the list of `pageContext` for i18n
155
156
  // https://vike.dev/onPrerenderStart
156
157
  await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
@@ -160,15 +161,15 @@ async function runPrerender(options = {}, standaloneTrigger) {
160
161
  prerenderedCount++;
161
162
  const { pageId } = htmlFile.pageContext;
162
163
  (0, utils_js_1.assert)(pageId);
163
- prerenderContext.prerenderedPageContexts[pageId] = htmlFile.pageContext;
164
+ prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
164
165
  await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
165
166
  };
166
167
  await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
167
- warnContradictoryNoPrerenderList(prerenderContext.prerenderedPageContexts, doNotPrerenderList);
168
+ warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
168
169
  if (logLevel === 'info') {
169
170
  console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
170
171
  }
171
- await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
172
+ await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
172
173
  const prerenderContextPublic = makePublic(prerenderContext);
173
174
  (0, utils_js_1.objectAssign)(vike.prerenderContext, prerenderContextPublic);
174
175
  if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
@@ -195,7 +196,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
195
196
  });
196
197
  // Old design
197
198
  // TODO/v1-release: remove
198
- await Promise.all(globalContext.pageFilesAll
199
+ await Promise.all(globalContext._pageFilesAll
199
200
  .filter((p) => {
200
201
  assertExportNames(p);
201
202
  if (!p.exportNames?.includes('doNotPrerender'))
@@ -207,8 +208,8 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
207
208
  (0, utils_js_1.assert)(p.loadFile);
208
209
  await p.loadFile();
209
210
  })));
210
- globalContext.allPageIds.forEach((pageId) => {
211
- const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext.pageFilesAll, pageId);
211
+ globalContext._allPageIds.forEach((pageId) => {
212
+ const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext._pageFilesAll, pageId);
212
213
  for (const p of pageFilesServerSide) {
213
214
  if (!p.exportNames?.includes('doNotPrerender'))
214
215
  continue;
@@ -232,10 +233,10 @@ function assertExportNames(pageFile) {
232
233
  const { exportNames, fileType } = pageFile;
233
234
  (0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
234
235
  }
235
- async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
236
+ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList) {
236
237
  const onBeforePrerenderStartHooks = [];
237
238
  // V1 design
238
- await Promise.all(globalContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
239
+ await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
239
240
  const hookName = 'onBeforePrerenderStart';
240
241
  const pageConfigLoaded = await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, false);
241
242
  const hook = (0, getHook_js_1.getHookFromPageConfig)(pageConfigLoaded, hookName);
@@ -251,7 +252,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
251
252
  });
252
253
  })));
253
254
  // 0.4 design
254
- await Promise.all(globalContext.pageFilesAll
255
+ await Promise.all(globalContext._pageFilesAll
255
256
  .filter((p) => {
256
257
  assertExportNames(p);
257
258
  if (!p.exportNames?.includes('prerender'))
@@ -295,7 +296,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
295
296
  }
296
297
  // Add result
297
298
  const providedByHook = { hookFilePath, hookName };
298
- const pageContextNew = await createPageContext(url, prerenderContext, globalContext, false, undefined, providedByHook);
299
+ const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, globalContext_public, false, undefined, providedByHook);
299
300
  prerenderContext.pageContexts.push(pageContextNew);
300
301
  if (pageContext) {
301
302
  (0, utils_js_1.objectAssign)(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
@@ -306,7 +307,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
306
307
  }
307
308
  function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
308
309
  const urlList = [];
309
- globalContext.pageRoutes.map((pageRoute) => {
310
+ globalContext._pageRoutes.map((pageRoute) => {
310
311
  const { pageId } = pageRoute;
311
312
  if (doNotPrerenderList.find((p) => p.pageId === pageId))
312
313
  return;
@@ -331,7 +332,7 @@ function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
331
332
  }
332
333
  function getUrlList404(globalContext) {
333
334
  const urlList = [];
334
- const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
335
+ const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext._pageFilesAll, globalContext._pageConfigs);
335
336
  if (errorPageId) {
336
337
  urlList.push({
337
338
  // A URL is required for `viteDevServer.transformIndexHtml(url,html)`
@@ -341,28 +342,30 @@ function getUrlList404(globalContext) {
341
342
  }
342
343
  return urlList;
343
344
  }
344
- async function createPageContextsForOnPrerenderStartHook(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
345
+ async function createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, is404) {
345
346
  await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
346
347
  // Already included in a onBeforePrerenderStart() hook
347
348
  if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
348
349
  return;
349
350
  }
350
- const pageContext = await createPageContext(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
351
+ const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, null);
351
352
  prerenderContext.pageContexts.push(pageContext);
352
353
  })));
353
354
  }
354
- async function createPageContext(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
355
+ async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, providedByHook) {
355
356
  const pageContextInit = {
356
357
  urlOriginal,
357
- ...prerenderContext.pageContextInit
358
+ ...prerenderContext._pageContextInit
358
359
  };
359
- const pageContext = await (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, globalContext, true);
360
+ const pageContext = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, globalContext_public, {
361
+ isPrerendering: true
362
+ });
360
363
  (0, utils_js_1.assert)(pageContext.isPrerendering === true);
361
364
  (0, utils_js_1.objectAssign)(pageContext, {
362
365
  _urlHandler: null,
363
366
  _httpRequestId: null,
364
367
  _urlRewrite: null,
365
- _noExtraDir: prerenderContext.noExtraDir,
368
+ _noExtraDir: prerenderContext._noExtraDir,
366
369
  _prerenderContext: prerenderContext,
367
370
  _providedByHook: providedByHook,
368
371
  _urlOriginalModifiedByHook: null,
@@ -388,14 +391,14 @@ async function createPageContext(urlOriginal, prerenderContext, globalContext, i
388
391
  {
389
392
  const { pageId } = pageContext;
390
393
  (0, utils_js_1.assert)(pageId);
391
- (0, utils_js_1.assert)(globalContext.isPrerendering);
392
- if (globalContext.pageConfigs.length > 0) {
393
- const pageConfig = globalContext.pageConfigs.find((p) => p.pageId === pageId);
394
+ (0, utils_js_1.assert)(globalContext._isPrerendering);
395
+ if (globalContext._pageConfigs.length > 0) {
396
+ const pageConfig = globalContext._pageConfigs.find((p) => p.pageId === pageId);
394
397
  (0, utils_js_1.assert)(pageConfig);
395
398
  usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
396
399
  }
397
400
  else {
398
- usesClientRouter = globalContext.usesClientRouter;
401
+ usesClientRouter = globalContext._usesClientRouter;
399
402
  }
400
403
  }
401
404
  (0, utils_js_1.objectAssign)(pageContext, { _usesClientRouter: usesClientRouter });
@@ -432,9 +435,9 @@ function assertRouteMatch(pageContextFromRoute, pageContext) {
432
435
  async function callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit) {
433
436
  let onPrerenderStartHook;
434
437
  // V1 design
435
- if (globalContext.pageConfigs.length > 0) {
438
+ if (globalContext._pageConfigs.length > 0) {
436
439
  const hookName = 'onPrerenderStart';
437
- const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext.pageConfigGlobal, hookName);
440
+ const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext._pageConfigGlobal, hookName);
438
441
  if (hook) {
439
442
  (0, utils_js_1.assert)(hook.hookName === 'onPrerenderStart');
440
443
  onPrerenderStartHook = {
@@ -446,9 +449,9 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
446
449
  }
447
450
  // Old design
448
451
  // TODO/v1-release: remove
449
- if (globalContext.pageConfigs.length === 0) {
452
+ if (globalContext._pageConfigs.length === 0) {
450
453
  const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
451
- const pageFilesWithOnBeforePrerenderHook = globalContext.pageFilesAll.filter((p) => {
454
+ const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
452
455
  assertExportNames(p);
453
456
  if (!p.exportNames?.includes('onBeforePrerender'))
454
457
  return false;
@@ -588,7 +591,7 @@ async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
588
591
  pageContext,
589
592
  htmlString: documentHtml,
590
593
  pageContextSerialized,
591
- doNotCreateExtraDirectory: prerenderContext.noExtraDir ?? pageContext.is404
594
+ doNotCreateExtraDirectory: prerenderContext._noExtraDir ?? pageContext.is404
592
595
  });
593
596
  })));
594
597
  }
@@ -605,16 +608,16 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
605
608
  });
606
609
  }
607
610
  async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
608
- const isV1 = globalContext.pageConfigs.length > 0;
611
+ const isV1 = globalContext._pageConfigs.length > 0;
609
612
  const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
610
613
  /* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
611
614
  const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
612
615
  const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
613
616
  */
614
- globalContext.allPageIds
617
+ globalContext._allPageIds
615
618
  .filter((pageId) => !prerenderedPageContexts[pageId])
616
619
  .filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
617
- .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext.pageConfigs))
620
+ .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext._pageConfigs))
618
621
  .forEach((pageId) => {
619
622
  const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
620
623
  (0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while no ${hookName}() hook returned any URL matching the page's route. You need to use a ${hookName}() hook (https://vike.dev/${hookName}) providing a list of URLs for ${pageAt} that should be pre-rendered. If you don't want to pre-render ${pageAt} then use the option prerender.partial (https://vike.dev/prerender#partial) to suppress this warning.`, { onlyOnce: true });
@@ -767,7 +770,7 @@ function assertIsNotAbort(err, urlOriginal) {
767
770
  (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
768
771
  }
769
772
  function makePublic(prerenderContext) {
770
- const prerenderContextPublic = (0, utils_js_1.makePublicCopy)(prerenderContext, 'prerenderContext', [
773
+ const prerenderContextPublic = (0, utils_js_1.getPublicProxy)(prerenderContext, 'prerenderContext', [
771
774
  'output', // vite-plugin-vercel
772
775
  'pageContexts' // https://vike.dev/i18n#pre-rendering
773
776
  ]);
@@ -31,6 +31,6 @@ __exportStar(require("../../utils/pLimit.js"), exports);
31
31
  __exportStar(require("../../utils/isFilePathAbsoluteFilesystem.js"), exports);
32
32
  __exportStar(require("../../utils/isArray.js"), exports);
33
33
  __exportStar(require("../../utils/isObject.js"), exports);
34
- __exportStar(require("../../utils/makePublicCopy.js"), exports);
34
+ __exportStar(require("../../utils/getPublicProxy.js"), exports);
35
35
  __exportStar(require("../../utils/isNullish.js"), exports);
36
36
  __exportStar(require("../../utils/preservePropertyGetters.js"), exports);