vike 0.4.236 → 0.4.237-commit-8749e81

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 (261) hide show
  1. package/dist/cjs/client/runtime-client-routing/globalContext.js +2 -2
  2. package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
  3. package/dist/cjs/client/shared/createGetGlobalContextClient.js +21 -13
  4. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +10 -1
  5. package/dist/cjs/client/shared/utils.js +1 -0
  6. package/dist/cjs/node/api/preview.js +1 -1
  7. package/dist/cjs/node/prerender/runPrerender.js +4 -4
  8. package/dist/cjs/node/runtime/globalContext.js +127 -41
  9. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  10. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +3 -1
  11. package/dist/cjs/node/runtime/html/serializeContext.js +25 -64
  12. package/dist/cjs/node/runtime/html/stream.js +1 -1
  13. package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -3
  14. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -7
  15. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  16. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -2
  17. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  18. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +8 -34
  19. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +50 -14
  20. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +23 -9
  21. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
  22. package/dist/cjs/node/runtime/renderPage.js +9 -8
  23. package/dist/cjs/node/runtime/utils.js +4 -0
  24. package/dist/cjs/node/shared/utils.js +1 -0
  25. package/dist/cjs/node/shared/virtualFileId.js +110 -0
  26. package/dist/cjs/node/vite/index.js +5 -3
  27. package/dist/cjs/node/vite/onLoad.js +5 -3
  28. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +31 -23
  29. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
  30. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
  31. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +20 -14
  32. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
  33. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
  34. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
  35. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +6 -12
  36. package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
  37. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +119 -73
  38. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +8 -15
  39. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +8 -9
  40. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +7 -3
  41. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +47 -0
  42. package/dist/cjs/node/vite/plugins/pluginPreview.js +11 -4
  43. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +6 -13
  44. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
  45. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  46. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  47. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +67 -0
  48. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +18 -17
  49. package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
  50. package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
  51. package/dist/cjs/node/vite/shared/getMagicString.js +18 -0
  52. package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +10 -0
  53. package/dist/cjs/node/vite/shared/getOutDirs.js +18 -12
  54. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
  55. package/dist/cjs/node/vite/shared/isViteServerBuild.js +56 -31
  56. package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
  57. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
  58. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  59. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +8 -19
  60. package/dist/cjs/node/vite/utils.js +1 -0
  61. package/dist/cjs/shared/createGlobalContextShared.js +36 -15
  62. package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
  63. package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
  64. package/dist/cjs/shared/modifyUrlSameOrigin.js +9 -4
  65. package/dist/cjs/shared/page-configs/loadPageEntry.js +25 -0
  66. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +4 -4
  67. package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  68. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -16
  69. package/dist/cjs/shared/utils.js +2 -0
  70. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  71. package/dist/cjs/utils/assertSetup.js +7 -5
  72. package/dist/cjs/utils/cast.js +1 -1
  73. package/dist/cjs/utils/debug.js +1 -0
  74. package/dist/cjs/utils/getViteRPC.js +79 -0
  75. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -0
  76. package/dist/cjs/utils/isRunnableDevEnvironment.js +9 -0
  77. package/dist/cjs/utils/virtualFileId.js +39 -0
  78. package/dist/esm/client/node.js +1 -1
  79. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +3 -3
  80. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  81. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +14 -14
  82. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +35 -48
  83. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +3 -3
  84. package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
  85. package/dist/esm/client/runtime-client-routing/history.d.ts +3 -5
  86. package/dist/esm/client/runtime-client-routing/history.js +39 -22
  87. package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
  88. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  89. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  90. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  91. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  92. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +5 -5
  93. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +43 -30
  94. package/dist/esm/client/runtime-client-routing/utils.d.ts +2 -0
  95. package/dist/esm/client/runtime-client-routing/utils.js +2 -0
  96. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +4 -4
  97. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +3 -3
  98. package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
  99. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  100. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +4 -4
  101. package/dist/esm/client/shared/createGetGlobalContextClient.js +21 -13
  102. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  103. package/dist/esm/client/shared/getJsonSerializedInHtml.js +10 -1
  104. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  105. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
  106. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  107. package/dist/esm/client/shared/utils.d.ts +1 -0
  108. package/dist/esm/client/shared/utils.js +1 -0
  109. package/dist/esm/node/api/preview.js +1 -1
  110. package/dist/esm/node/prerender/runPrerender.d.ts +49 -141
  111. package/dist/esm/node/prerender/runPrerender.js +4 -4
  112. package/dist/esm/node/runtime/globalContext.d.ts +43 -63
  113. package/dist/esm/node/runtime/globalContext.js +128 -42
  114. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  115. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +4 -2
  116. package/dist/esm/node/runtime/html/serializeContext.d.ts +11 -6
  117. package/dist/esm/node/runtime/html/serializeContext.js +25 -64
  118. package/dist/esm/node/runtime/html/stream.js +1 -1
  119. package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -3
  120. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +13 -36
  121. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -7
  122. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  123. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  124. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
  125. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -3
  126. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
  127. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  128. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +0 -6
  129. package/dist/esm/node/runtime/renderPage/getPageAssets.js +8 -34
  130. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  131. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +1 -1
  132. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +51 -15
  133. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +3 -3
  134. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +26 -12
  135. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  136. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -3
  137. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +30 -77
  138. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
  139. package/dist/esm/node/runtime/renderPage.d.ts +13 -35
  140. package/dist/esm/node/runtime/renderPage.js +9 -8
  141. package/dist/esm/node/runtime/utils.d.ts +4 -0
  142. package/dist/esm/node/runtime/utils.js +4 -0
  143. package/dist/esm/node/shared/utils.d.ts +1 -0
  144. package/dist/esm/node/shared/utils.js +1 -0
  145. package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
  146. package/dist/esm/node/shared/virtualFileId.js +107 -0
  147. package/dist/esm/node/vite/index.js +5 -3
  148. package/dist/esm/node/vite/onLoad.js +5 -3
  149. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +3 -3
  150. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +32 -24
  151. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
  152. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
  153. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +0 -2
  154. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +21 -14
  155. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
  156. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
  157. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
  158. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +7 -10
  159. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  160. package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
  161. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +121 -75
  162. package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
  163. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +7 -8
  164. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
  165. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +26 -0
  166. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +45 -0
  167. package/dist/esm/node/vite/plugins/pluginPreview.js +13 -6
  168. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
  169. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
  170. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
  171. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
  172. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  173. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +3 -0
  174. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  175. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +14 -0
  176. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +65 -0
  177. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +17 -16
  178. package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
  179. package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
  180. package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
  181. package/dist/esm/node/vite/shared/getMagicString.d.ts +9 -0
  182. package/dist/esm/node/vite/shared/getMagicString.js +13 -0
  183. package/dist/esm/node/vite/shared/getManifestFilePathRelative.d.ts +2 -0
  184. package/dist/esm/node/vite/shared/getManifestFilePathRelative.js +8 -0
  185. package/dist/esm/node/vite/shared/getOutDirs.d.ts +6 -3
  186. package/dist/esm/node/vite/shared/getOutDirs.js +19 -13
  187. package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
  188. package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +14 -11
  189. package/dist/esm/node/vite/shared/isViteServerBuild.js +58 -31
  190. package/dist/esm/node/vite/shared/loggerVite.js +1 -1
  191. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +2 -2
  192. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
  193. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  194. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +3 -5
  195. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +10 -21
  196. package/dist/esm/node/vite/utils.d.ts +1 -0
  197. package/dist/esm/node/vite/utils.js +1 -0
  198. package/dist/esm/shared/createGlobalContextShared.d.ts +8 -8
  199. package/dist/esm/shared/createGlobalContextShared.js +38 -17
  200. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
  201. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
  202. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  203. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  204. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  205. package/dist/esm/shared/modifyUrlSameOrigin.d.ts +1 -1
  206. package/dist/esm/shared/modifyUrlSameOrigin.js +9 -4
  207. package/dist/esm/shared/page-configs/loadPageEntry.d.ts +3 -0
  208. package/dist/esm/shared/page-configs/loadPageEntry.js +23 -0
  209. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
  210. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +4 -4
  211. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
  212. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
  213. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  214. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -2
  215. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +17 -17
  216. package/dist/esm/shared/utils.d.ts +2 -0
  217. package/dist/esm/shared/utils.js +2 -0
  218. package/dist/esm/types/Config.d.ts +33 -98
  219. package/dist/esm/types/PageConfig.d.ts +9 -7
  220. package/dist/esm/types/VikeNamespace.d.ts +13 -0
  221. package/dist/esm/types/index.d.ts +3 -1
  222. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  223. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  224. package/dist/esm/utils/assertSetup.js +7 -5
  225. package/dist/esm/utils/cast.d.ts +2 -2
  226. package/dist/esm/utils/cast.js +1 -1
  227. package/dist/esm/utils/debug.d.ts +1 -1
  228. package/dist/esm/utils/debug.js +1 -0
  229. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  230. package/dist/esm/utils/getViteRPC.js +77 -0
  231. package/dist/esm/utils/isFilePathAbsoluteFilesystem.d.ts +7 -0
  232. package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -0
  233. package/dist/esm/utils/isRunnableDevEnvironment.d.ts +3 -0
  234. package/dist/esm/utils/isRunnableDevEnvironment.js +7 -0
  235. package/dist/esm/utils/objectFilter.d.ts +1 -1
  236. package/dist/esm/utils/virtualFileId.d.ts +6 -0
  237. package/dist/esm/{node/shared/virtualFiles.js → utils/virtualFileId.js} +15 -17
  238. package/package.json +16 -7
  239. package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -29
  240. package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -39
  241. package/dist/cjs/node/shared/virtualFiles.js +0 -41
  242. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -23
  243. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -10
  244. package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
  245. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
  246. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
  247. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
  248. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -26
  249. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
  250. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -37
  251. package/dist/esm/node/shared/virtualFiles.d.ts +0 -8
  252. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
  253. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
  254. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
  255. package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.d.ts +0 -7
  256. package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -21
  257. package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
  258. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -8
  259. package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
  260. package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
  261. package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
@@ -4,7 +4,7 @@ export type { PageContextCreated };
4
4
  import type { GlobalContextServerInternal } from '../globalContext.js';
5
5
  import type { PageContextInit } from '../renderPage.js';
6
6
  type PageContextCreated = Awaited<ReturnType<typeof createPageContextServerSide>>;
7
- declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, { isPrerendering, ssr: { urlHandler, isClientSideNavigation }, }: {
7
+ declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, args: {
8
8
  isPrerendering: false;
9
9
  ssr: {
10
10
  urlHandler: null | ((url: string) => string);
@@ -26,7 +26,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
26
26
  _globalContext: {
27
27
  isGlobalContext: true;
28
28
  _isOriginalObject: true;
29
- _virtualFileExports: unknown;
29
+ _virtualFileExportsGlobalEntry: unknown;
30
30
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
31
31
  _pageConfigs: import("../../../types/PageConfig.js").PageConfigRuntime[];
32
32
  _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
@@ -39,26 +39,14 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
39
39
  };
40
40
  config: import("../../../types/index.js").ConfigResolved;
41
41
  pages: {
42
- [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
42
+ [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
43
43
  };
44
- } & ({
44
+ } & (({
45
45
  _isProduction: false;
46
46
  _isPrerendering: false;
47
47
  assetsManifest: null;
48
- _viteDevServer: import("vite").ViteDevServer;
49
- viteConfig: import("vite").ResolvedConfig;
50
- viteConfigRuntime: {
51
- root: string;
52
- build: {
53
- outDir: string;
54
- };
55
- _baseViteOriginal: string;
56
- vitePluginServerEntry: {
57
- inject: boolean | undefined;
58
- };
59
- };
60
- baseServer: string;
61
- baseAssets: string;
48
+ _viteDevServer: import("vite").ViteDevServer | undefined;
49
+ viteConfig: import("vite").ResolvedConfig | undefined;
62
50
  isClientSide: false;
63
51
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
64
52
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -68,19 +56,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
68
56
  _isProduction: true;
69
57
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
70
58
  _viteDevServer: null;
71
- viteConfigRuntime: {
72
- root: string;
73
- build: {
74
- outDir: string;
75
- };
76
- _baseViteOriginal: string;
77
- vitePluginServerEntry: {
78
- inject: boolean | undefined;
79
- };
80
- };
81
59
  _usesClientRouter: boolean;
82
- baseServer: string;
83
- baseAssets: string;
84
60
  isClientSide: false;
85
61
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
86
62
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -90,6 +66,13 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
90
66
  _isProduction: true;
91
67
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
92
68
  _viteDevServer: null;
69
+ _usesClientRouter: boolean;
70
+ isClientSide: false;
71
+ _pageRoutes: import("../../../__internal/index.js").PageRoutes;
72
+ _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
73
+ }) & {
74
+ baseServer: string;
75
+ baseAssets: string;
93
76
  viteConfigRuntime: {
94
77
  root: string;
95
78
  build: {
@@ -100,12 +83,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
100
83
  inject: boolean | undefined;
101
84
  };
102
85
  };
103
- _usesClientRouter: boolean;
104
- baseServer: string;
105
- baseAssets: string;
106
- isClientSide: false;
107
- _pageRoutes: import("../../../__internal/index.js").PageRoutes;
108
- _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
109
86
  });
110
87
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
111
88
  _baseServer: string;
@@ -3,12 +3,9 @@ export { createPageContextServerSideWithoutGlobalContext };
3
3
  import { assert, assertUsage, assertWarning, augmentType, normalizeHeaders, objectAssign } from '../utils.js';
4
4
  import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
5
5
  import { createPageContextObject, createPageContextShared } from '../../../shared/createPageContextShared.js';
6
- function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
7
- urlHandler: null,
8
- isClientSideNavigation: false,
9
- }, }) {
6
+ function createPageContextServerSide(pageContextInit, globalContext, args) {
10
7
  assert(pageContextInit.urlOriginal);
11
- const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
8
+ const pageContextCreated = createPageContext(pageContextInit, args.isPrerendering);
12
9
  objectAssign(pageContextCreated, {
13
10
  _globalContext: globalContext,
14
11
  _pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
@@ -17,8 +14,8 @@ function createPageContextServerSide(pageContextInit, globalContext, { isPrerend
17
14
  _baseAssets: globalContext.baseAssets,
18
15
  _pageContextInit: pageContextInit,
19
16
  _urlRewrite: null,
20
- _urlHandler: urlHandler,
21
- isClientSideNavigation,
17
+ _urlHandler: args.ssr?.urlHandler ?? null,
18
+ isClientSideNavigation: args.ssr?.isClientSideNavigation ?? false,
22
19
  });
23
20
  objectAssign(pageContextCreated, globalContext._vikeConfigPublicGlobal);
24
21
  // pageContext.urlParsed
@@ -1,9 +1,9 @@
1
1
  export { execHookServer };
2
2
  export type { PageContextExecHookServer };
3
3
  import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
4
- import type { VikeConfigPublicPageLazy } from '../../../shared/getPageFiles.js';
4
+ import type { VikeConfigPublicPageLazyLoaded } from '../../../shared/getPageFiles.js';
5
5
  import type { HookName } from '../../../types/Config.js';
6
- type PageContextExecHookServer = VikeConfigPublicPageLazy & PageContextForPublicUsageServer;
6
+ type PageContextExecHookServer = VikeConfigPublicPageLazyLoaded & PageContextForPublicUsageServer;
7
7
  declare function execHookServer(hookName: HookName, pageContext: PageContextExecHookServer): Promise<(import("../../../shared/hooks/getHook.js").HookLoc & {
8
8
  hookFn: (arg: import("../../../shared/preparePageContextForPublicUsage.js").PageContextPrepareMinimum | import("../../../shared/prepareGlobalContextForPublicUsage.js").GlobalContextPrepareMinimum) => unknown;
9
9
  hookTimeout: import("../../../shared/hooks/getHook.js").HookTimeout;
@@ -1,6 +1,6 @@
1
1
  export { getManifestEntry };
2
2
  import { assert, slice, assertIsImportPathNpmPackage } from '../../utils.js';
3
- import { isVirtualFileIdPageConfigLazy } from '../../../shared/virtualFiles/virtualFilePageConfigLazy.js';
3
+ import { parseVirtualFileId } from '../../../shared/virtualFileId.js';
4
4
  import { prependEntriesDir } from '../../../shared/prependEntriesDir.js';
5
5
  function getManifestEntry(id, assetsManifest) {
6
6
  const debugInfo = getDebugInfo(id, assetsManifest);
@@ -12,7 +12,8 @@ function getManifestEntry(id, assetsManifest) {
12
12
  return { manifestEntry, manifestKey };
13
13
  }
14
14
  // Page code importer
15
- if (isVirtualFileIdPageConfigLazy(id)) {
15
+ const virtualFile = parseVirtualFileId(id);
16
+ if (virtualFile && virtualFile.type === 'page-entry') {
16
17
  {
17
18
  const manifestKey = id;
18
19
  const manifestEntry = assetsManifest[manifestKey];
@@ -22,9 +23,9 @@ function getManifestEntry(id, assetsManifest) {
22
23
  }
23
24
  // Workaround for what seems to be a Vite bug when process.cwd() !== config.root
24
25
  // - Manifest key is:
25
- // ../../virtual:vike:pageConfigLazy:client:/pages/index
26
+ // ../../virtual:vike:page-entry:client:/pages/index
26
27
  // But it should be this instead:
27
- // virtual:vike:pageConfigLazy:client:/pages/index
28
+ // virtual:vike:page-entry:client:/pages/index
28
29
  // - This workaround was implemented to support Vitest running /tests/*
29
30
  // - I don't know whether end users actually need this workaround? (I'm not sure what the bug actually is.)
30
31
  const manifestKeyEnd = id;
@@ -0,0 +1,10 @@
1
+ export { retrievePageAssetsDev };
2
+ export { setGetClientEntrySrcDev };
3
+ import type { ViteDevServer } from 'vite';
4
+ import type { ClientDependency } from '../../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
5
+ import type { GetClientEntrySrcDev } from '../../../vite/shared/getClientEntrySrcDev.js';
6
+ declare function retrievePageAssetsDev(viteDevServer: ViteDevServer, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<{
7
+ clientEntriesSrc: string[];
8
+ assetUrls: string[];
9
+ }>;
10
+ declare function setGetClientEntrySrcDev(getClientEntrySrcDev: GetClientEntrySrcDev): void;
@@ -1,11 +1,27 @@
1
- export { retrieveAssetsDev };
2
- import { assert, styleFileRE } from '../../utils.js';
3
- async function retrieveAssetsDev(clientDependencies, viteDevServer) {
1
+ export { retrievePageAssetsDev };
2
+ export { setGetClientEntrySrcDev };
3
+ import { assert, getGlobalObject, styleFileRE } from '../../utils.js';
4
+ import { parseVirtualFileId } from '../../../shared/virtualFileId.js';
5
+ const globalObject = getGlobalObject('getPageAssets/retrievePageAssetsDev.ts', {
6
+ // We cannot define getClientEntrySrcDev() in this file because it depends on utils/requireResolve.ts which isn't available in production
7
+ getClientEntrySrcDev: null,
8
+ });
9
+ async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
10
+ const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.getClientEntrySrcDev(clientEntry, viteDevServer));
11
+ const assetUrls = await getAssetUrls(clientDependencies, viteDevServer);
12
+ return { clientEntriesSrc, assetUrls };
13
+ }
14
+ function setGetClientEntrySrcDev(getClientEntrySrcDev) {
15
+ globalObject.getClientEntrySrcDev = getClientEntrySrcDev;
16
+ }
17
+ async function getAssetUrls(clientDependencies, viteDevServer) {
4
18
  const assetUrls = new Set();
5
19
  await Promise.all(clientDependencies.map(async ({ id }) => {
6
20
  if (id.startsWith('@@vike'))
7
21
  return; // vike doesn't have any CSS
8
22
  assert(id);
23
+ const virtualFile = parseVirtualFileId(id);
24
+ assert(!virtualFile || virtualFile.type !== 'global-entry');
9
25
  const { moduleGraph } = viteDevServer;
10
26
  const [_, graphId] = await moduleGraph.resolveUrl(id);
11
27
  assert(graphId, { id });
@@ -32,6 +48,9 @@ function collectCss(mod, styleUrls, visitedModules, importer) {
32
48
  if (visitedModules.has(mod.url))
33
49
  return;
34
50
  visitedModules.add(mod.url);
51
+ const virtualFile = parseVirtualFileId(mod.id || mod.url);
52
+ if (virtualFile && virtualFile.type === 'global-entry')
53
+ return; // virtual:vike:global-entry:server dependency list includes all pages
35
54
  if (isStyle(mod) && (!importer || !isStyle(importer))) {
36
55
  if (mod.url.startsWith('/')) {
37
56
  styleUrls.add(mod.url);
@@ -0,0 +1,10 @@
1
+ export { retrievePageAssetsProd };
2
+ export { resolveIncludeAssetsImportedByServer };
3
+ import type { ViteManifest } from '../../../../types/ViteManifest.js';
4
+ import type { ClientDependency } from '../../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
5
+ import type { ConfigResolved } from '../../../../types/index.js';
6
+ declare function retrievePageAssetsProd(assetsManifest: ViteManifest, clientDependencies: ClientDependency[], clientEntries: string[], config: ConfigResolved): {
7
+ clientEntriesSrc: string[];
8
+ assetUrls: string[];
9
+ };
10
+ declare function resolveIncludeAssetsImportedByServer(config: ConfigResolved): boolean;
@@ -1,8 +1,22 @@
1
- export { retrieveAssetsProd };
1
+ export { retrievePageAssetsProd };
2
+ export { resolveIncludeAssetsImportedByServer };
2
3
  import { assert, isImportPathNpmPackage } from '../../utils.js';
3
4
  import { getManifestEntry } from './getManifestEntry.js';
4
5
  import { extractAssetsAddQuery } from '../../../shared/extractAssetsQuery.js';
5
- function retrieveAssetsProd(clientDependencies, assetsManifest, includeAssetsImportedByServer) {
6
+ function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, config) {
7
+ const clientEntriesSrc = clientEntries.map((clientEntry) => getClientEntrySrcProd(clientEntry, assetsManifest));
8
+ const assetUrls = getAssetsUrl(clientDependencies, assetsManifest, config);
9
+ return { clientEntriesSrc, assetUrls };
10
+ }
11
+ function getClientEntrySrcProd(clientEntry, assetsManifest) {
12
+ const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
13
+ assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
14
+ let { file } = manifestEntry;
15
+ assert(!file.startsWith('/'));
16
+ return '/' + file;
17
+ }
18
+ function getAssetsUrl(clientDependencies, assetsManifest, config) {
19
+ const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(config);
6
20
  let assetUrls = new Set();
7
21
  assert(assetsManifest);
8
22
  const visistedAssets = new Set();
@@ -56,3 +70,6 @@ function collectSingleStyle(assetUrls, assetsManifest) {
56
70
  assetUrls.add(`/${style.file}`);
57
71
  }
58
72
  }
73
+ function resolveIncludeAssetsImportedByServer(config) {
74
+ return config.includeAssetsImportedByServer ?? true;
75
+ }
@@ -1,14 +1,10 @@
1
1
  export { getPageAssets };
2
- export { setResolveClientEntriesDev };
3
- export { resolveIncludeAssetsImportedByServer };
4
2
  export type { PageAsset };
5
3
  export type { GetPageAssets };
6
4
  export type { PageContextGetPageAssets };
7
5
  import { type MediaType } from './inferMediaType.js';
8
6
  import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
9
7
  import type { GlobalContextServerInternal } from '../globalContext.js';
10
- import type { ResolveClientEntriesDev } from '../../vite/shared/resolveClientEntriesDev.js';
11
- import type { ConfigResolved } from '../../../types/index.js';
12
8
  type PageAsset = {
13
9
  src: string;
14
10
  assetType: null | NonNullable<MediaType>['assetType'];
@@ -22,5 +18,3 @@ type PageContextGetPageAssets = {
22
18
  _globalContext: GlobalContextServerInternal;
23
19
  };
24
20
  declare function getPageAssets(pageContext: PageContextGetPageAssets, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<PageAsset[]>;
25
- declare function setResolveClientEntriesDev(resolveClientEntriesDev: ResolveClientEntriesDev): void;
26
- declare function resolveIncludeAssetsImportedByServer(config: ConfigResolved): boolean;
@@ -1,31 +1,18 @@
1
1
  export { getPageAssets };
2
- export { setResolveClientEntriesDev };
3
- export { resolveIncludeAssetsImportedByServer };
4
- import { assert, prependBase, toPosixPath, unique, getGlobalObject } from '../utils.js';
5
- import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
6
- import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
2
+ import { retrievePageAssetsProd } from './getPageAssets/retrievePageAssetsProd.js';
3
+ import { retrievePageAssetsDev } from './getPageAssets/retrievePageAssetsDev.js';
7
4
  import { inferMediaType } from './inferMediaType.js';
8
- import { getManifestEntry } from './getPageAssets/getManifestEntry.js';
9
5
  import { sortPageAssetsForEarlyHintsHeader } from './getPageAssets/sortPageAssetsForEarlyHintsHeader.js';
10
- const globalObject = getGlobalObject('renderPage/getPageAssets.ts', {
11
- resolveClientEntriesDev: null,
12
- });
6
+ import { assert, prependBase, toPosixPath, unique, getViteRPC } from '../utils.js';
13
7
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
14
8
  const globalContext = pageContext._globalContext;
15
9
  const { _isProduction: isProduction } = globalContext;
16
10
  const isDev = !isProduction;
17
- let assetUrls;
18
- let clientEntriesSrc;
19
- if (isDev) {
20
- const { _viteDevServer: viteDevServer } = globalContext;
21
- clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
22
- assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
23
- }
24
- else {
25
- const { assetsManifest } = globalContext;
26
- clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
27
- assetUrls = retrieveAssetsProd(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(pageContext._globalContext.config));
28
- }
11
+ const { assetUrls, clientEntriesSrc } = isDev
12
+ ? !globalContext._viteDevServer
13
+ ? await getViteRPC().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
14
+ : await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
15
+ : retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries, globalContext.config);
29
16
  let pageAssets = [];
30
17
  unique([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
31
18
  const { mediaType = null, assetType = null } = inferMediaType(src) || {};
@@ -59,16 +46,3 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
59
46
  await sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction);
60
47
  return pageAssets;
61
48
  }
62
- function resolveClientEntriesProd(clientEntry, assetsManifest) {
63
- const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
64
- assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
65
- let { file } = manifestEntry;
66
- assert(!file.startsWith('/'));
67
- return '/' + file;
68
- }
69
- function setResolveClientEntriesDev(resolveClientEntriesDev) {
70
- globalObject.resolveClientEntriesDev = resolveClientEntriesDev;
71
- }
72
- function resolveIncludeAssetsImportedByServer(config) {
73
- return config.includeAssetsImportedByServer ?? true;
74
- }
@@ -1,8 +1,8 @@
1
1
  export { handleErrorWithoutErrorPage };
2
2
  import type { GlobalContextServerInternal } from '../globalContext.js';
3
3
  import type { PageContextAfterRender } from './renderPageAlreadyRouted.js';
4
- declare function handleErrorWithoutErrorPage<PageContext extends {
5
- isClientSideNavigation: boolean;
4
+ import type { PageContextCreated } from './createPageContextServerSide.js';
5
+ declare function handleErrorWithoutErrorPage<PageContext extends PageContextCreated & {
6
6
  errorWhileRendering: null | Error;
7
7
  is404: null | boolean;
8
8
  pageId: null;
@@ -1,5 +1,5 @@
1
1
  export { handlePageContextRequestUrl };
2
2
  declare function handlePageContextRequestUrl(url: string): {
3
+ isPageContextJsonRequest: boolean;
3
4
  urlWithoutPageContextRequestSuffix: string;
4
- isPageContextRequest: boolean;
5
5
  };
@@ -1,30 +1,66 @@
1
1
  export { handlePageContextRequestUrl };
2
2
  import { pageContextJsonFileExtension, doNotCreateExtraDirectory } from '../../../shared/getPageContextRequestUrl.js';
3
- import { baseServer, parseUrl, assert, slice } from '../utils.js';
3
+ import { modifyUrl } from '../../../shared/modifyUrl.js';
4
+ import { baseServer, parseUrl, assert, slice, isObject, hasProp } from '../utils.js';
4
5
  // See also shared/getPageContextRequestUrl.ts
5
6
  function handlePageContextRequestUrl(url) {
6
- if (!hasSuffix(url)) {
7
- return { urlWithoutPageContextRequestSuffix: url, isPageContextRequest: false };
7
+ const urlParsed = parseUrl(url, baseServer);
8
+ if (!isMatch(urlParsed)) {
9
+ return {
10
+ isPageContextJsonRequest: false,
11
+ urlWithoutPageContextRequestSuffix: url,
12
+ };
13
+ }
14
+ else {
15
+ const { urlWithoutPageContextRequestSuffix, searchVikeArgs } = processUrl(urlParsed, url);
16
+ const previousUrl = parseSearchVikeArgs(searchVikeArgs);
17
+ return {
18
+ /* TO-DO/soon/once: pass & use previousUrl
19
+ isPageContextJsonRequest: { previousUrl },
20
+ /*/
21
+ isPageContextJsonRequest: true,
22
+ //*/
23
+ urlWithoutPageContextRequestSuffix,
24
+ };
8
25
  }
9
- return { urlWithoutPageContextRequestSuffix: removePageContextUrlSuffix(url), isPageContextRequest: true };
10
26
  }
11
- function hasSuffix(url) {
12
- const { pathnameOriginal, pathname } = parseUrl(url, baseServer);
13
- assert(pathnameOriginal.endsWith(pageContextJsonFileExtension) === pathname.endsWith(pageContextJsonFileExtension), {
14
- url,
15
- });
16
- return pathnameOriginal.endsWith(pageContextJsonFileExtension);
27
+ function isMatch(urlParsed) {
28
+ const { pathnameOriginal, pathname } = urlParsed;
29
+ assert(pathname.endsWith(pageContextJsonFileExtension) === pathnameOriginal.endsWith(pageContextJsonFileExtension));
30
+ return pathname.endsWith(pageContextJsonFileExtension);
17
31
  }
18
- function removePageContextUrlSuffix(url) {
19
- const urlParsed = parseUrl(url, baseServer);
32
+ function processUrl(urlParsed, url) {
20
33
  // We cannot use `urlParsed.pathname` because it would break the `urlParsed.pathnameOriginal` value of subsequent `parseUrl()` calls.
21
- const { origin, pathnameOriginal, searchOriginal, hashOriginal } = urlParsed;
34
+ const { pathnameOriginal, search } = urlParsed;
22
35
  assert(doNotCreateExtraDirectory === false);
23
36
  const urlSuffix = `/index${pageContextJsonFileExtension}`;
24
37
  assert(pathnameOriginal.endsWith(urlSuffix), { url });
25
38
  let pathnameModified = slice(pathnameOriginal, 0, -1 * urlSuffix.length);
26
39
  if (pathnameModified === '')
27
40
  pathnameModified = '/';
28
- assert(url === `${origin || ''}${pathnameOriginal}${searchOriginal || ''}${hashOriginal || ''}`, { url });
29
- return `${origin || ''}${pathnameModified}${searchOriginal || ''}${hashOriginal || ''}`;
41
+ const searchVikeArgs = search?._vike;
42
+ const urlWithoutPageContextRequestSuffix = modifyUrl(url, {
43
+ pathname: pathnameModified,
44
+ search: {
45
+ _vike: searchVikeArgs ? null : undefined,
46
+ },
47
+ });
48
+ return {
49
+ searchVikeArgs,
50
+ urlWithoutPageContextRequestSuffix,
51
+ };
52
+ }
53
+ function parseSearchVikeArgs(searchVikeArgs) {
54
+ const args = {
55
+ previousUrl: null,
56
+ };
57
+ if (searchVikeArgs) {
58
+ const parsed = JSON.parse(searchVikeArgs);
59
+ assert(isObject(parsed));
60
+ if ('previousUrl' in parsed) {
61
+ assert(hasProp(parsed, 'previousUrl', 'string'));
62
+ args.previousUrl = parsed.previousUrl;
63
+ }
64
+ }
65
+ return args;
30
66
  }
@@ -1,7 +1,7 @@
1
1
  export { loadPageConfigsLazyServerSideAndExecHook };
2
2
  export type { PageContext_loadPageConfigsLazyServerSide };
3
3
  export type { PageConfigsLazy };
4
- import { type VikeConfigPublicPageLazy } from '../../../shared/getPageFiles.js';
4
+ import { type VikeConfigPublicPageLazyLoaded } from '../../../shared/getPageFiles.js';
5
5
  import { PromiseType } from '../utils.js';
6
6
  import { PageContextGetPageAssets, type PageAsset } from './getPageAssets.js';
7
7
  import { type PageContextDebugRouteMatches } from './debugPageFiles.js';
@@ -15,7 +15,7 @@ type PageContext_loadPageConfigsLazyServerSide = PageContextGetPageAssets & Page
15
15
  _globalContext: GlobalContextServerInternal;
16
16
  };
17
17
  type PageConfigsLazy = PromiseType<ReturnType<typeof loadPageConfigsLazyServerSide>>;
18
- declare function loadPageConfigsLazyServerSideAndExecHook<PageContext extends PageContext_loadPageConfigsLazyServerSide & PageContextExecuteHook>(pageContext: PageContext): Promise<PageContext & VikeConfigPublicPageLazy & {
18
+ declare function loadPageConfigsLazyServerSideAndExecHook<PageContext extends PageContext_loadPageConfigsLazyServerSide & PageContextExecuteHook>(pageContext: PageContext): Promise<PageContext & VikeConfigPublicPageLazyLoaded & {
19
19
  Page: unknown;
20
20
  _isHtmlOnly: boolean;
21
21
  _passToClient: PassToClient;
@@ -24,7 +24,7 @@ declare function loadPageConfigsLazyServerSideAndExecHook<PageContext extends Pa
24
24
  } & {
25
25
  __getPageAssets: () => Promise<PageAsset[]>;
26
26
  }>;
27
- declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPageConfigsLazyServerSide): Promise<VikeConfigPublicPageLazy & {
27
+ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPageConfigsLazyServerSide): Promise<VikeConfigPublicPageLazyLoaded & {
28
28
  Page: unknown;
29
29
  _isHtmlOnly: boolean;
30
30
  _passToClient: PassToClient;
@@ -1,13 +1,13 @@
1
1
  export { loadPageConfigsLazyServerSideAndExecHook };
2
- import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
3
- import { resolveVikeConfigPublicPageLazy } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
2
+ import { getPageFilesServerSide, } from '../../../shared/getPageFiles.js';
3
+ import { resolveVikeConfigPublicPageLazyLoaded } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
4
4
  import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
5
- import { assertUsage, assertWarning, hasProp, objectAssign } from '../utils.js';
5
+ import { assertUsage, assertWarning, hasProp, isArray, isObject, objectAssign } from '../utils.js';
6
6
  import { getPageAssets } from './getPageAssets.js';
7
7
  import { debugPageFiles } from './debugPageFiles.js';
8
8
  import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
9
9
  import { analyzePage } from './analyzePage.js';
10
- import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
10
+ import { loadPageEntry } from '../../../shared/page-configs/loadPageEntry.js';
11
11
  import { execHookServer } from './execHookServer.js';
12
12
  import { getCacheControl } from './getCacheControl.js';
13
13
  async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
@@ -16,6 +16,7 @@ async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
16
16
  await execHookServer('onCreatePageContext', pageContext);
17
17
  return pageContext;
18
18
  }
19
+ // TODO/now: define new function resolveAfterLoad() ?
19
20
  async function loadPageConfigsLazyServerSide(pageContext) {
20
21
  const pageConfig = findPageConfig(pageContext._globalContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig ?
21
22
  const globalContext = pageContext._globalContext;
@@ -28,19 +29,32 @@ async function loadPageConfigsLazyServerSide(pageContext) {
28
29
  const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await analyzePage(pageContext._globalContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
29
30
  const isV1Design = !!pageConfig;
30
31
  const passToClient = [];
31
- const errMsg = ' should be an array of strings.';
32
+ const errMsgSuffix = ' should be an array of strings.';
32
33
  if (!isV1Design) {
33
34
  configPublicPageLazy.exportsAll.passToClient?.forEach((e) => {
34
- assertUsage(hasProp(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
35
+ assertUsage(hasProp(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsgSuffix}`);
35
36
  passToClient.push(...e.exportValue);
36
37
  });
37
38
  }
38
39
  else {
39
40
  configPublicPageLazy.from.configsCumulative.passToClient?.values.forEach((v) => {
40
- const { value } = v;
41
- // const { definedAt } = v
42
- // assertUsage(isArrayOfStrings(value), `+passToClient value defined at ${definedAt}${errMsg}`)
43
- passToClient.push(...value);
41
+ const { value, definedAt } = v;
42
+ const errMsg = `+passToClient value defined at ${definedAt}${errMsgSuffix}`;
43
+ //*/ TO-DO/next-major-release: remove the passToClient once setting from the public API
44
+ assertUsage(isArray(value), `+passToClient value defined at ${definedAt} should be an array`);
45
+ const valS = value.map((el) => {
46
+ if (isObject(el)) {
47
+ assertWarning(!('once' in el), 'The passToClient once setting is deprecated and no longer has any effect. Instead, see the upcoming .once.js suffix (see https://github.com/vikejs/vike/issues/2566 for more information).', { onlyOnce: true });
48
+ assertUsage(hasProp(el, 'prop', 'string'), errMsg);
49
+ return el.prop;
50
+ }
51
+ assertUsage(typeof el === 'string', errMsg);
52
+ return el;
53
+ });
54
+ /*/
55
+ assertUsage(isArrayOfStrings(value), errMsg)
56
+ //*/
57
+ passToClient.push(...valS);
44
58
  });
45
59
  }
46
60
  const pageContextAddendum = {};
@@ -105,9 +119,9 @@ async function loadPageConfigsLazyServerSide(pageContext) {
105
119
  }
106
120
  async function loadPageConfigFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
107
121
  const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
108
- const pageConfigLoaded = !pageConfig ? null : await loadConfigValues(pageConfig, isDev);
122
+ const pageConfigLoaded = !pageConfig ? null : await loadPageEntry(pageConfig, isDev);
109
123
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
110
- const configPublicPageLazy = resolveVikeConfigPublicPageLazy(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
124
+ const configPublicPageLazy = resolveVikeConfigPublicPageLazyLoaded(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
111
125
  return {
112
126
  configPublicPageLazy,
113
127
  pageFilesLoaded: pageFilesServerSide,
@@ -2,10 +2,10 @@ export { log404 };
2
2
  export { getRoutesInfo };
3
3
  import type { PageRoutes } from '../../../../shared/route/index.js';
4
4
  import type { GlobalContextServerInternal } from '../../globalContext.js';
5
- declare function log404(pageContext: {
5
+ import type { PageContextCreated } from '../createPageContextServerSide.js';
6
+ declare function log404(pageContext: PageContextCreated & {
6
7
  urlPathname: string;
7
8
  errorWhileRendering: null | Error;
8
- isClientSideNavigation: boolean;
9
9
  _globalContext: GlobalContextServerInternal;
10
10
  }): Promise<void>;
11
11
  declare function getRoutesInfo(pageRoutes: PageRoutes): string | null;
@@ -1,10 +1,10 @@
1
1
  export { preparePageContextForPublicUsageServer };
2
2
  export type { PageContextForPublicUsageServer };
3
3
  import type { PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
4
- import type { VikeConfigPublicPageLazy } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
4
+ import type { VikeConfigPublicPageLazyLoaded } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
5
5
  import type { PageContextInternalServer } from '../../../types/PageContext.js';
6
6
  import type { GlobalContextServerInternal } from '../globalContext.js';
7
- type PageContextForPublicUsageServer = PageContextInternalServer & VikeConfigPublicPageLazy & {
7
+ type PageContextForPublicUsageServer = PageContextInternalServer & VikeConfigPublicPageLazyLoaded & {
8
8
  urlOriginal: string;
9
9
  /** @deprecated */
10
10
  url: string;
@@ -14,7 +14,6 @@ type PageContextForPublicUsageServer = PageContextInternalServer & VikeConfigPub
14
14
  Page: unknown;
15
15
  pageId: string;
16
16
  is404: null | boolean;
17
- isClientSideNavigation: boolean;
18
17
  _globalContext: GlobalContextServerInternal;
19
18
  };
20
19
  declare function preparePageContextForPublicUsageServer<PageContext extends PageContextForPublicUsageServer>(pageContext: PageContext): PageContext;