vike 0.4.236 → 0.4.237-commit-85e89b1

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 +54 -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 +55 -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
@@ -30,63 +30,42 @@ const passToClientBuiltInPageContext = [
30
30
  'data', // for data() hook
31
31
  ];
32
32
  const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError_js_1.isServerSideError];
33
- function getPageContextClientSerialized(pageContext) {
33
+ function getPageContextClientSerialized(pageContext, isHtmlJsonScript) {
34
34
  const passToClientPageContext = getPassToClientPageContext(pageContext);
35
- const getObj = (passToClientEntry) => {
36
- if (passToClientEntry.once)
37
- return undefined; // pass it to client-side globalContext
38
- return { obj: pageContext, objName: 'pageContext' };
39
- };
40
- const res = applyPassToClient(passToClientPageContext, getObj);
35
+ const res = applyPassToClient(passToClientPageContext, pageContext);
41
36
  const pageContextClient = res.objClient;
42
37
  const pageContextClientProps = res.objClientProps;
43
38
  if (pageContextClientProps.some((prop) => (0, propKeys_js_1.getPropVal)(pageContext._pageContextInit, prop))) {
44
39
  pageContextClient[pageContextInitIsPassedToClient_js_1.pageContextInitIsPassedToClient] = true;
45
40
  }
46
- const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext, getObj);
41
+ const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext, 'pageContext', isHtmlJsonScript);
47
42
  return pageContextClientSerialized;
48
43
  }
49
- function getGlobalContextClientSerialized(pageContext) {
44
+ function getGlobalContextClientSerialized(pageContext, isHtmlJsonScript) {
50
45
  const passToClient = pageContext._passToClient;
51
46
  const globalContext = pageContext._globalContext;
52
- const getObj = ({ prop, once }) => {
53
- if (once && (0, propKeys_js_1.getPropVal)(pageContext, prop)) {
54
- (0, utils_js_1.assert)(typeof pageContext.isClientSideNavigation === 'boolean');
55
- if (!pageContext.isClientSideNavigation) {
56
- return { obj: pageContext, objName: 'pageContext' }; // pass it to client-side globalContext
57
- }
58
- else {
59
- return undefined; // already passed to client-side
60
- }
61
- }
62
- return { obj: globalContext, objName: 'globalContext' };
63
- };
64
- const res = applyPassToClient(passToClient, getObj);
47
+ const res = applyPassToClient(passToClient, globalContext);
65
48
  const globalContextClient = res.objClient;
66
- const globalContextClientSerialized = serializeObject(globalContextClient, passToClient, getObj);
49
+ const globalContextClientSerialized = serializeObject(globalContextClient, passToClient, 'globalContext', isHtmlJsonScript);
67
50
  return globalContextClientSerialized;
68
51
  }
69
- function serializeObject(obj, passToClient, getObj) {
52
+ function serializeObject(obj, passToClient, objName, isHtmlJsonScript) {
70
53
  let serialized;
71
54
  try {
72
- serialized = serializeValue(obj);
55
+ serialized = serializeValue(obj, isHtmlJsonScript);
73
56
  }
74
57
  catch (err) {
75
58
  const h = (s) => picocolors_1.default.cyan(s);
76
59
  let hasWarned = false;
77
60
  const propsNonSerializable = [];
78
- passToClient.forEach((entry) => {
79
- const entryNormalized = normalizePassToClientEntry(entry);
80
- const { prop } = entryNormalized;
61
+ passToClient.forEach((prop) => {
81
62
  const res = (0, propKeys_js_1.getPropVal)(obj, prop);
82
63
  if (!res)
83
64
  return;
84
65
  const { value } = res;
85
- const { objName } = getObj(entryNormalized) ?? {};
86
- (0, utils_js_1.assert)(objName);
87
66
  const varName = `${objName}${(0, propKeys_js_1.getPropKeys)(prop).map(utils_js_1.getPropAccessNotation).join('')}`;
88
67
  try {
89
- serializeValue(value, varName);
68
+ serializeValue(value, isHtmlJsonScript, varName);
90
69
  }
91
70
  catch (err) {
92
71
  propsNonSerializable.push(prop);
@@ -124,7 +103,7 @@ function serializeObject(obj, passToClient, getObj) {
124
103
  obj[(0, propKeys_js_1.getPropKeys)(prop)[0]] = NOT_SERIALIZABLE_js_1.NOT_SERIALIZABLE;
125
104
  });
126
105
  try {
127
- serialized = serializeValue(obj);
106
+ serialized = serializeValue(obj, isHtmlJsonScript);
128
107
  }
129
108
  catch (err) {
130
109
  (0, utils_js_1.assert)(false);
@@ -132,20 +111,20 @@ function serializeObject(obj, passToClient, getObj) {
132
111
  }
133
112
  return serialized;
134
113
  }
135
- function serializeValue(value, varName) {
114
+ function serializeValue(value, isHtmlJsonScript, varName) {
136
115
  return (0, stringify_1.stringify)(value, {
137
116
  forbidReactElements: true,
138
117
  valueName: varName,
139
118
  // Prevent Google from crawling URLs in JSON:
140
- // - https://github.com/vikejs/vike/discussions/2541#discussioncomment-13660198
141
- // - https://github.com/vikejs/vike/discussions/2277
142
- // - https://github.com/vikejs/vike/pull/2542
143
- replacer(_key, value) {
144
- if (typeof value === 'string' && value.startsWith('/')) {
145
- // No need to use a reviver: https://github.com/brillout/json-serializer/blob/70fc8ed3741306391b51655b05df24e6963d1fdb/test/main.spec.ts#L74-L80
146
- return { replacement: (value = '!' + value) };
147
- }
148
- },
119
+ // - https://github.com/vikejs/vike/pull/2603
120
+ // - https://github.com/brillout/json-serializer/blob/38edbb9945de4938da1e65d6285ce1dd123a45ef/test/main.spec.ts#L44-L95
121
+ replacer: !isHtmlJsonScript
122
+ ? undefined
123
+ : (_key, value) => {
124
+ if (typeof value === 'string') {
125
+ return { replacement: value.replaceAll('/', '\\/'), resolved: false };
126
+ }
127
+ },
149
128
  });
150
129
  }
151
130
  function getPassToClientPageContext(pageContext) {
@@ -158,7 +137,7 @@ function getPassToClientPageContext(pageContext) {
158
137
  passToClient = (0, utils_js_1.unique)(passToClient);
159
138
  return passToClient;
160
139
  }
161
- function getPageContextClientSerializedAbort(pageContext) {
140
+ function getPageContextClientSerializedAbort(pageContext, isHtmlJsonScript) {
162
141
  (0, utils_js_1.assert)(pageContext._urlRedirect || pageContext._urlRewrite || pageContext.abortStatusCode);
163
142
  (0, utils_js_1.assert)(pageContext._abortCall);
164
143
  (0, utils_js_1.assert)(pageContext._abortCaller);
@@ -191,17 +170,12 @@ function getPageContextClientSerializedAbort(pageContext) {
191
170
  onlyOnce: false,
192
171
  });
193
172
  }
194
- return serializeValue(pageContext);
173
+ return serializeValue(pageContext, isHtmlJsonScript);
195
174
  }
196
- function applyPassToClient(passToClient, getObj) {
175
+ function applyPassToClient(passToClient, obj) {
197
176
  const objClient = {};
198
177
  const objClientProps = [];
199
- passToClient.forEach((entry) => {
200
- const entryNormalized = normalizePassToClientEntry(entry);
201
- const { prop } = entryNormalized;
202
- const { obj } = getObj(entryNormalized) ?? {};
203
- if (!obj)
204
- return;
178
+ passToClient.forEach((prop) => {
205
179
  // Get value from pageContext
206
180
  const res = (0, propKeys_js_1.getPropVal)(obj, prop);
207
181
  if (!res)
@@ -213,16 +187,3 @@ function applyPassToClient(passToClient, getObj) {
213
187
  });
214
188
  return { objClient, objClientProps };
215
189
  }
216
- function normalizePassToClientEntry(entry) {
217
- let once;
218
- let prop;
219
- if (typeof entry === 'string') {
220
- prop = entry;
221
- once = false;
222
- }
223
- else {
224
- prop = entry.prop;
225
- once = entry.once ?? false;
226
- }
227
- return { prop, once };
228
- }
@@ -527,8 +527,8 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
527
527
  const closeStream = async () => {
528
528
  if (isClosed)
529
529
  return;
530
- isClosed = true;
531
530
  await onEnd(isCancel);
531
+ isClosed = true;
532
532
  controllerProxy.close();
533
533
  };
534
534
  let controllerProxy;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.analyzePage = analyzePage;
4
4
  const determineClientEntry_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide/determineClientEntry.js");
5
5
  const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide.js");
6
- const virtualFilePageConfigLazy_js_1 = require("../../shared/virtualFiles/virtualFilePageConfigLazy.js");
6
+ const virtualFileId_js_1 = require("../../shared/virtualFileId.js");
7
7
  const analyzeClientSide_js_1 = require("../../../shared/getPageFiles/analyzeClientSide.js");
8
8
  const getConfigValueRuntime_js_1 = require("../../../shared/page-configs/getConfigValueRuntime.js");
9
9
  async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
@@ -17,14 +17,14 @@ async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
17
17
  clientEntries.push((0, determineClientEntry_js_1.getVikeClientEntry)(isClientRouting));
18
18
  const clientDependencies = [];
19
19
  clientDependencies.push({
20
- id: (0, virtualFilePageConfigLazy_js_1.getVirtualFileIdPageConfigLazy)(pageConfig.pageId, true),
20
+ id: (0, virtualFileId_js_1.generateVirtualFileId)({ type: 'page-entry', pageId: pageConfig.pageId, isForClientSide: true }),
21
21
  onlyAssets: isClientRuntimeLoaded ? false : true,
22
22
  eagerlyImported: false,
23
23
  });
24
24
  // In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
25
25
  if (!globalContext._isProduction) {
26
26
  clientDependencies.push({
27
- id: (0, virtualFilePageConfigLazy_js_1.getVirtualFileIdPageConfigLazy)(pageConfig.pageId, false),
27
+ id: (0, virtualFileId_js_1.generateVirtualFileId)({ type: 'page-entry', pageId: pageConfig.pageId, isForClientSide: false }),
28
28
  onlyAssets: true,
29
29
  eagerlyImported: false,
30
30
  });
@@ -5,12 +5,9 @@ exports.createPageContextServerSideWithoutGlobalContext = createPageContextServe
5
5
  const utils_js_1 = require("../utils.js");
6
6
  const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
7
7
  const createPageContextShared_js_1 = require("../../../shared/createPageContextShared.js");
8
- function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
9
- urlHandler: null,
10
- isClientSideNavigation: false,
11
- }, }) {
8
+ function createPageContextServerSide(pageContextInit, globalContext, args) {
12
9
  (0, utils_js_1.assert)(pageContextInit.urlOriginal);
13
- const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
10
+ const pageContextCreated = createPageContext(pageContextInit, args.isPrerendering);
14
11
  (0, utils_js_1.objectAssign)(pageContextCreated, {
15
12
  _globalContext: globalContext,
16
13
  _pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
@@ -19,8 +16,8 @@ function createPageContextServerSide(pageContextInit, globalContext, { isPrerend
19
16
  _baseAssets: globalContext.baseAssets,
20
17
  _pageContextInit: pageContextInit,
21
18
  _urlRewrite: null,
22
- _urlHandler: urlHandler,
23
- isClientSideNavigation,
19
+ _urlHandler: args.ssr?.urlHandler ?? null,
20
+ isClientSideNavigation: args.ssr?.isClientSideNavigation ?? false,
24
21
  });
25
22
  (0, utils_js_1.objectAssign)(pageContextCreated, globalContext._vikeConfigPublicGlobal);
26
23
  // pageContext.urlParsed
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getManifestEntry = getManifestEntry;
4
4
  const utils_js_1 = require("../../utils.js");
5
- const virtualFilePageConfigLazy_js_1 = require("../../../shared/virtualFiles/virtualFilePageConfigLazy.js");
5
+ const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
6
6
  const prependEntriesDir_js_1 = require("../../../shared/prependEntriesDir.js");
7
7
  function getManifestEntry(id, assetsManifest) {
8
8
  const debugInfo = getDebugInfo(id, assetsManifest);
@@ -14,7 +14,8 @@ function getManifestEntry(id, assetsManifest) {
14
14
  return { manifestEntry, manifestKey };
15
15
  }
16
16
  // Page code importer
17
- if ((0, virtualFilePageConfigLazy_js_1.isVirtualFileIdPageConfigLazy)(id)) {
17
+ const virtualFile = (0, virtualFileId_js_1.parseVirtualFileId)(id);
18
+ if (virtualFile && virtualFile.type === 'page-entry') {
18
19
  {
19
20
  const manifestKey = id;
20
21
  const manifestEntry = assetsManifest[manifestKey];
@@ -24,9 +25,9 @@ function getManifestEntry(id, assetsManifest) {
24
25
  }
25
26
  // Workaround for what seems to be a Vite bug when process.cwd() !== config.root
26
27
  // - Manifest key is:
27
- // ../../virtual:vike:pageConfigLazy:client:/pages/index
28
+ // ../../virtual:vike:page-entry:client:/pages/index
28
29
  // But it should be this instead:
29
- // virtual:vike:pageConfigLazy:client:/pages/index
30
+ // virtual:vike:page-entry:client:/pages/index
30
31
  // - This workaround was implemented to support Vitest running /tests/*
31
32
  // - I don't know whether end users actually need this workaround? (I'm not sure what the bug actually is.)
32
33
  const manifestKeyEnd = id;
@@ -1,13 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retrieveAssetsDev = retrieveAssetsDev;
3
+ exports.retrievePageAssetsDev = retrievePageAssetsDev;
4
+ exports.setGetClientEntrySrcDev = setGetClientEntrySrcDev;
4
5
  const utils_js_1 = require("../../utils.js");
5
- async function retrieveAssetsDev(clientDependencies, viteDevServer) {
6
+ const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
7
+ const globalObject = (0, utils_js_1.getGlobalObject)('getPageAssets/retrievePageAssetsDev.ts', {
8
+ // We cannot define getClientEntrySrcDev() in this file because it depends on utils/requireResolve.ts which isn't available in production
9
+ getClientEntrySrcDev: null,
10
+ });
11
+ async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
12
+ const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.getClientEntrySrcDev(clientEntry, viteDevServer));
13
+ const assetUrls = await getAssetUrls(clientDependencies, viteDevServer);
14
+ return { clientEntriesSrc, assetUrls };
15
+ }
16
+ function setGetClientEntrySrcDev(getClientEntrySrcDev) {
17
+ globalObject.getClientEntrySrcDev = getClientEntrySrcDev;
18
+ }
19
+ async function getAssetUrls(clientDependencies, viteDevServer) {
6
20
  const assetUrls = new Set();
7
21
  await Promise.all(clientDependencies.map(async ({ id }) => {
8
22
  if (id.startsWith('@@vike'))
9
23
  return; // vike doesn't have any CSS
10
24
  (0, utils_js_1.assert)(id);
25
+ const virtualFile = (0, virtualFileId_js_1.parseVirtualFileId)(id);
26
+ (0, utils_js_1.assert)(!virtualFile || virtualFile.type !== 'global-entry');
11
27
  const { moduleGraph } = viteDevServer;
12
28
  const [_, graphId] = await moduleGraph.resolveUrl(id);
13
29
  (0, utils_js_1.assert)(graphId, { id });
@@ -34,6 +50,9 @@ function collectCss(mod, styleUrls, visitedModules, importer) {
34
50
  if (visitedModules.has(mod.url))
35
51
  return;
36
52
  visitedModules.add(mod.url);
53
+ const virtualFile = (0, virtualFileId_js_1.parseVirtualFileId)(mod.id || mod.url);
54
+ if (virtualFile && virtualFile.type === 'global-entry')
55
+ return; // virtual:vike:global-entry:server dependency list includes all pages
37
56
  if (isStyle(mod) && (!importer || !isStyle(importer))) {
38
57
  if (mod.url.startsWith('/')) {
39
58
  styleUrls.add(mod.url);
@@ -1,10 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retrieveAssetsProd = retrieveAssetsProd;
3
+ exports.retrievePageAssetsProd = retrievePageAssetsProd;
4
+ exports.resolveIncludeAssetsImportedByServer = resolveIncludeAssetsImportedByServer;
4
5
  const utils_js_1 = require("../../utils.js");
5
6
  const getManifestEntry_js_1 = require("./getManifestEntry.js");
6
7
  const extractAssetsQuery_js_1 = require("../../../shared/extractAssetsQuery.js");
7
- function retrieveAssetsProd(clientDependencies, assetsManifest, includeAssetsImportedByServer) {
8
+ function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, config) {
9
+ const clientEntriesSrc = clientEntries.map((clientEntry) => getClientEntrySrcProd(clientEntry, assetsManifest));
10
+ const assetUrls = getAssetsUrl(clientDependencies, assetsManifest, config);
11
+ return { clientEntriesSrc, assetUrls };
12
+ }
13
+ function getClientEntrySrcProd(clientEntry, assetsManifest) {
14
+ const { manifestEntry } = (0, getManifestEntry_js_1.getManifestEntry)(clientEntry, assetsManifest);
15
+ (0, utils_js_1.assert)(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
16
+ let { file } = manifestEntry;
17
+ (0, utils_js_1.assert)(!file.startsWith('/'));
18
+ return '/' + file;
19
+ }
20
+ function getAssetsUrl(clientDependencies, assetsManifest, config) {
21
+ const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(config);
8
22
  let assetUrls = new Set();
9
23
  (0, utils_js_1.assert)(assetsManifest);
10
24
  const visistedAssets = new Set();
@@ -58,3 +72,6 @@ function collectSingleStyle(assetUrls, assetsManifest) {
58
72
  assetUrls.add(`/${style.file}`);
59
73
  }
60
74
  }
75
+ function resolveIncludeAssetsImportedByServer(config) {
76
+ return config.includeAssetsImportedByServer ?? true;
77
+ }
@@ -1,33 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPageAssets = getPageAssets;
4
- exports.setResolveClientEntriesDev = setResolveClientEntriesDev;
5
- exports.resolveIncludeAssetsImportedByServer = resolveIncludeAssetsImportedByServer;
6
- const utils_js_1 = require("../utils.js");
7
- const retrieveAssetsDev_js_1 = require("./getPageAssets/retrieveAssetsDev.js");
8
- const retrieveAssetsProd_js_1 = require("./getPageAssets/retrieveAssetsProd.js");
4
+ const retrievePageAssetsProd_js_1 = require("./getPageAssets/retrievePageAssetsProd.js");
5
+ const retrievePageAssetsDev_js_1 = require("./getPageAssets/retrievePageAssetsDev.js");
9
6
  const inferMediaType_js_1 = require("./inferMediaType.js");
10
- const getManifestEntry_js_1 = require("./getPageAssets/getManifestEntry.js");
11
7
  const sortPageAssetsForEarlyHintsHeader_js_1 = require("./getPageAssets/sortPageAssetsForEarlyHintsHeader.js");
12
- const globalObject = (0, utils_js_1.getGlobalObject)('renderPage/getPageAssets.ts', {
13
- resolveClientEntriesDev: null,
14
- });
8
+ const utils_js_1 = require("../utils.js");
15
9
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
16
10
  const globalContext = pageContext._globalContext;
17
11
  const { _isProduction: isProduction } = globalContext;
18
12
  const isDev = !isProduction;
19
- let assetUrls;
20
- let clientEntriesSrc;
21
- if (isDev) {
22
- const { _viteDevServer: viteDevServer } = globalContext;
23
- clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
24
- assetUrls = await (0, retrieveAssetsDev_js_1.retrieveAssetsDev)(clientDependencies, viteDevServer);
25
- }
26
- else {
27
- const { assetsManifest } = globalContext;
28
- clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
29
- assetUrls = (0, retrieveAssetsProd_js_1.retrieveAssetsProd)(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(pageContext._globalContext.config));
30
- }
13
+ const { assetUrls, clientEntriesSrc } = isDev
14
+ ? !globalContext._viteDevServer
15
+ ? await (0, utils_js_1.getViteRPC)().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
16
+ : await (0, retrievePageAssetsDev_js_1.retrievePageAssetsDev)(globalContext._viteDevServer, clientDependencies, clientEntries)
17
+ : (0, retrievePageAssetsProd_js_1.retrievePageAssetsProd)(globalContext.assetsManifest, clientDependencies, clientEntries, globalContext.config);
31
18
  let pageAssets = [];
32
19
  (0, utils_js_1.unique)([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
33
20
  const { mediaType = null, assetType = null } = (0, inferMediaType_js_1.inferMediaType)(src) || {};
@@ -61,16 +48,3 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
61
48
  await (0, sortPageAssetsForEarlyHintsHeader_js_1.sortPageAssetsForEarlyHintsHeader)(pageAssets, isProduction);
62
49
  return pageAssets;
63
50
  }
64
- function resolveClientEntriesProd(clientEntry, assetsManifest) {
65
- const { manifestEntry } = (0, getManifestEntry_js_1.getManifestEntry)(clientEntry, assetsManifest);
66
- (0, utils_js_1.assert)(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
67
- let { file } = manifestEntry;
68
- (0, utils_js_1.assert)(!file.startsWith('/'));
69
- return '/' + file;
70
- }
71
- function setResolveClientEntriesDev(resolveClientEntriesDev) {
72
- globalObject.resolveClientEntriesDev = resolveClientEntriesDev;
73
- }
74
- function resolveIncludeAssetsImportedByServer(config) {
75
- return config.includeAssetsImportedByServer ?? true;
76
- }
@@ -2,31 +2,67 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handlePageContextRequestUrl = handlePageContextRequestUrl;
4
4
  const getPageContextRequestUrl_js_1 = require("../../../shared/getPageContextRequestUrl.js");
5
+ const modifyUrl_js_1 = require("../../../shared/modifyUrl.js");
5
6
  const utils_js_1 = require("../utils.js");
6
7
  // See also shared/getPageContextRequestUrl.ts
7
8
  function handlePageContextRequestUrl(url) {
8
- if (!hasSuffix(url)) {
9
- return { urlWithoutPageContextRequestSuffix: url, isPageContextRequest: false };
9
+ const urlParsed = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
10
+ if (!isMatch(urlParsed)) {
11
+ return {
12
+ isPageContextJsonRequest: false,
13
+ urlWithoutPageContextRequestSuffix: url,
14
+ };
15
+ }
16
+ else {
17
+ const { urlWithoutPageContextRequestSuffix, searchVikeArgs } = processUrl(urlParsed, url);
18
+ const previousUrl = parseSearchVikeArgs(searchVikeArgs);
19
+ return {
20
+ /* TO-DO/soon/once: pass & use previousUrl
21
+ isPageContextJsonRequest: { previousUrl },
22
+ /*/
23
+ isPageContextJsonRequest: true,
24
+ //*/
25
+ urlWithoutPageContextRequestSuffix,
26
+ };
10
27
  }
11
- return { urlWithoutPageContextRequestSuffix: removePageContextUrlSuffix(url), isPageContextRequest: true };
12
28
  }
13
- function hasSuffix(url) {
14
- const { pathnameOriginal, pathname } = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
15
- (0, utils_js_1.assert)(pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension) === pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension), {
16
- url,
17
- });
18
- return pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension);
29
+ function isMatch(urlParsed) {
30
+ const { pathnameOriginal, pathname } = urlParsed;
31
+ (0, utils_js_1.assert)(pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension) === pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension));
32
+ return pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension);
19
33
  }
20
- function removePageContextUrlSuffix(url) {
21
- const urlParsed = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
34
+ function processUrl(urlParsed, url) {
22
35
  // We cannot use `urlParsed.pathname` because it would break the `urlParsed.pathnameOriginal` value of subsequent `parseUrl()` calls.
23
- const { origin, pathnameOriginal, searchOriginal, hashOriginal } = urlParsed;
36
+ const { pathnameOriginal, search } = urlParsed;
24
37
  (0, utils_js_1.assert)(getPageContextRequestUrl_js_1.doNotCreateExtraDirectory === false);
25
38
  const urlSuffix = `/index${getPageContextRequestUrl_js_1.pageContextJsonFileExtension}`;
26
39
  (0, utils_js_1.assert)(pathnameOriginal.endsWith(urlSuffix), { url });
27
40
  let pathnameModified = (0, utils_js_1.slice)(pathnameOriginal, 0, -1 * urlSuffix.length);
28
41
  if (pathnameModified === '')
29
42
  pathnameModified = '/';
30
- (0, utils_js_1.assert)(url === `${origin || ''}${pathnameOriginal}${searchOriginal || ''}${hashOriginal || ''}`, { url });
31
- return `${origin || ''}${pathnameModified}${searchOriginal || ''}${hashOriginal || ''}`;
43
+ const searchVikeArgs = search?._vike;
44
+ const urlWithoutPageContextRequestSuffix = (0, modifyUrl_js_1.modifyUrl)(url, {
45
+ pathname: pathnameModified,
46
+ search: {
47
+ _vike: searchVikeArgs ? null : undefined,
48
+ },
49
+ });
50
+ return {
51
+ searchVikeArgs,
52
+ urlWithoutPageContextRequestSuffix,
53
+ };
54
+ }
55
+ function parseSearchVikeArgs(searchVikeArgs) {
56
+ const args = {
57
+ previousUrl: null,
58
+ };
59
+ if (searchVikeArgs) {
60
+ const parsed = JSON.parse(searchVikeArgs);
61
+ (0, utils_js_1.assert)((0, utils_js_1.isObject)(parsed));
62
+ if ('previousUrl' in parsed) {
63
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(parsed, 'previousUrl', 'string'));
64
+ args.previousUrl = parsed.previousUrl;
65
+ }
66
+ }
67
+ return args;
32
68
  }
@@ -9,7 +9,7 @@ const getPageAssets_js_1 = require("./getPageAssets.js");
9
9
  const debugPageFiles_js_1 = require("./debugPageFiles.js");
10
10
  const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig.js");
11
11
  const analyzePage_js_1 = require("./analyzePage.js");
12
- const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
12
+ const loadPageEntry_js_1 = require("../../../shared/page-configs/loadPageEntry.js");
13
13
  const execHookServer_js_1 = require("./execHookServer.js");
14
14
  const getCacheControl_js_1 = require("./getCacheControl.js");
15
15
  async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
@@ -18,6 +18,7 @@ async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
18
18
  await (0, execHookServer_js_1.execHookServer)('onCreatePageContext', pageContext);
19
19
  return pageContext;
20
20
  }
21
+ // TODO/now: define new function resolveAfterLoad() ?
21
22
  async function loadPageConfigsLazyServerSide(pageContext) {
22
23
  const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._globalContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig ?
23
24
  const globalContext = pageContext._globalContext;
@@ -30,19 +31,32 @@ async function loadPageConfigsLazyServerSide(pageContext) {
30
31
  const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await (0, analyzePage_js_1.analyzePage)(pageContext._globalContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
31
32
  const isV1Design = !!pageConfig;
32
33
  const passToClient = [];
33
- const errMsg = ' should be an array of strings.';
34
+ const errMsgSuffix = ' should be an array of strings.';
34
35
  if (!isV1Design) {
35
36
  configPublicPageLazy.exportsAll.passToClient?.forEach((e) => {
36
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
37
+ (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsgSuffix}`);
37
38
  passToClient.push(...e.exportValue);
38
39
  });
39
40
  }
40
41
  else {
41
42
  configPublicPageLazy.from.configsCumulative.passToClient?.values.forEach((v) => {
42
- const { value } = v;
43
- // const { definedAt } = v
44
- // assertUsage(isArrayOfStrings(value), `+passToClient value defined at ${definedAt}${errMsg}`)
45
- passToClient.push(...value);
43
+ const { value, definedAt } = v;
44
+ const errMsg = `+passToClient value defined at ${definedAt}${errMsgSuffix}`;
45
+ //*/ TO-DO/next-major-release: remove the passToClient once setting from the public API
46
+ (0, utils_js_1.assertUsage)((0, utils_js_1.isArray)(value), `+passToClient value defined at ${definedAt} should be an array`);
47
+ const valS = value.map((el) => {
48
+ if ((0, utils_js_1.isObject)(el)) {
49
+ (0, utils_js_1.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 });
50
+ (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(el, 'prop', 'string'), errMsg);
51
+ return el.prop;
52
+ }
53
+ (0, utils_js_1.assertUsage)(typeof el === 'string', errMsg);
54
+ return el;
55
+ });
56
+ /*/
57
+ assertUsage(isArrayOfStrings(value), errMsg)
58
+ //*/
59
+ passToClient.push(...valS);
46
60
  });
47
61
  }
48
62
  const pageContextAddendum = {};
@@ -107,9 +121,9 @@ async function loadPageConfigsLazyServerSide(pageContext) {
107
121
  }
108
122
  async function loadPageConfigFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
109
123
  const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
110
- const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
124
+ const pageConfigLoaded = !pageConfig ? null : await (0, loadPageEntry_js_1.loadPageEntry)(pageConfig, isDev);
111
125
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
112
- const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazy)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
126
+ const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazyLoaded)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
113
127
  return {
114
128
  configPublicPageLazy,
115
129
  pageFilesLoaded: pageFilesServerSide,
@@ -50,7 +50,7 @@ async function renderPageAlreadyRouted(pageContext) {
50
50
  if (isError) {
51
51
  (0, utils_js_1.objectAssign)(pageContext, { [isServerSideError_js_1.isServerSideError]: true });
52
52
  }
53
- const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
53
+ const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, false);
54
54
  const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePageContextJson)(pageContextSerialized);
55
55
  (0, utils_js_1.objectAssign)(pageContext, { httpResponse });
56
56
  return pageContext;
@@ -63,8 +63,7 @@ async function renderPageAlreadyRouted(pageContext) {
63
63
  }
64
64
  async function prerenderPage(pageContext) {
65
65
  (0, utils_js_1.objectAssign)(pageContext, {
66
- isClientSideNavigation: false,
67
- _urlHandler: null,
66
+ _isPageContextJsonRequest: null,
68
67
  });
69
68
  /* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
70
69
  * - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
@@ -73,14 +72,13 @@ async function prerenderPage(pageContext) {
73
72
  await (0, execHookDataAndOnBeforeRender_js_1.execHookDataAndOnBeforeRender)(pageContext);
74
73
  const { htmlRender, renderHook } = await (0, execHookOnRenderHtml_js_1.execHookOnRenderHtml)(pageContext);
75
74
  (0, utils_js_1.assertUsage)(htmlRender !== null, `Cannot pre-render ${picocolors_1.default.cyan(pageContext.urlOriginal)} because the ${renderHook.hookName}() hook defined by ${renderHook.hookFilePath} didn't return an HTML string.`);
76
- (0, utils_js_1.assert)(pageContext.isClientSideNavigation === false);
77
75
  const documentHtml = await (0, renderHtml_js_1.getHtmlString)(htmlRender);
78
76
  (0, utils_js_1.assert)(typeof documentHtml === 'string');
79
77
  if (!pageContext._usesClientRouter) {
80
78
  return { documentHtml, pageContextSerialized: null, pageContext };
81
79
  }
82
80
  else {
83
- const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
81
+ const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, false);
84
82
  return { documentHtml, pageContextSerialized, pageContext };
85
83
  }
86
84
  }
@@ -312,7 +312,7 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
312
312
  return pageContext;
313
313
  }
314
314
  function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
315
- const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
315
+ const { isClientSideNavigation, _urlHandler, _isPageContextJsonRequest } = handlePageContextUrl(pageContextInit.urlOriginal);
316
316
  const pageContextBegin = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
317
317
  isPrerendering: false,
318
318
  ssr: {
@@ -320,13 +320,14 @@ function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
320
320
  isClientSideNavigation,
321
321
  },
322
322
  });
323
- (0, utils_js_1.objectAssign)(pageContextBegin, { _httpRequestId: httpRequestId });
323
+ (0, utils_js_1.objectAssign)(pageContextBegin, { _httpRequestId: httpRequestId, _isPageContextJsonRequest });
324
324
  return pageContextBegin;
325
325
  }
326
326
  function handlePageContextUrl(urlOriginal) {
327
- const { isPageContextRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
327
+ const { isPageContextJsonRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
328
328
  return {
329
- isClientSideNavigation: isPageContextRequest,
329
+ isClientSideNavigation: !!isPageContextJsonRequest,
330
+ _isPageContextJsonRequest: isPageContextJsonRequest,
330
331
  _urlHandler: (url) => (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(url).urlWithoutPageContextRequestSuffix,
331
332
  };
332
333
  }
@@ -350,8 +351,8 @@ async function normalizeUrl(pageContextBegin, globalContext, httpRequestId) {
350
351
  if (disableUrlNormalization)
351
352
  return null;
352
353
  const { urlOriginal } = pageContext;
353
- const { isPageContextRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
354
- if (isPageContextRequest)
354
+ const { isPageContextJsonRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
355
+ if (isPageContextJsonRequest)
355
356
  return null;
356
357
  const urlNormalized = (0, utils_js_1.normalizeUrlPathname)(urlOriginal, trailingSlash ?? false, globalContext.baseServer);
357
358
  if (!urlNormalized)
@@ -424,10 +425,10 @@ pageContextNominalPageBegin, httpRequestId, pageContextErrorPageInit, globalCont
424
425
  (0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit, true);
425
426
  (0, utils_js_1.augmentType)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSideAndExecHook)(pageContext));
426
427
  // We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
427
- pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
428
+ pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, false);
428
429
  }
429
430
  else {
430
- pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerializedAbort)(pageContextAbort);
431
+ pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerializedAbort)(pageContextAbort, false);
431
432
  }
432
433
  const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePageContextJson)(pageContextSerialized);
433
434
  const pageContextReturn = { httpResponse };