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
@@ -37,8 +37,8 @@ exports.getGlobalContextClientInternal = void 0;
37
37
  const createGetGlobalContextClient_js_1 = require("../shared/createGetGlobalContextClient.js");
38
38
  const loadPageRoutes_js_1 = require("../../shared/route/loadPageRoutes.js");
39
39
  // @ts-ignore
40
- const virtualFileExports = __importStar(require("virtual:vike:entry:client:client-routing"));
41
- const getGlobalContextClientInternal = (0, createGetGlobalContextClient_js_1.createGetGlobalContextClient)(virtualFileExports, true, addGlobalContext);
40
+ const virtualFileExportsGlobalEntry = __importStar(require("virtual:vike:global-entry:client:client-routing"));
41
+ const getGlobalContextClientInternal = (0, createGetGlobalContextClient_js_1.createGetGlobalContextClient)(virtualFileExportsGlobalEntry, true, addGlobalContext);
42
42
  exports.getGlobalContextClientInternal = getGlobalContextClientInternal;
43
43
  async function addGlobalContext(globalContext) {
44
44
  const { pageRoutes, onBeforeRouteHook } = await (0, loadPageRoutes_js_1.loadPageRoutes)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
@@ -36,6 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getGlobalContextClientInternal = void 0;
37
37
  const createGetGlobalContextClient_js_1 = require("../shared/createGetGlobalContextClient.js");
38
38
  // @ts-ignore
39
- const virtualFileExports = __importStar(require("virtual:vike:entry:client:server-routing"));
40
- const getGlobalContextClientInternal = (0, createGetGlobalContextClient_js_1.createGetGlobalContextClient)(virtualFileExports, false);
39
+ const virtualFileExportsGlobalEntry = __importStar(require("virtual:vike:global-entry:client:server-routing"));
40
+ const getGlobalContextClientInternal = (0, createGetGlobalContextClient_js_1.createGetGlobalContextClient)(virtualFileExportsGlobalEntry, false);
41
41
  exports.getGlobalContextClientInternal = getGlobalContextClientInternal;
@@ -7,32 +7,34 @@ const createGlobalContextShared_js_1 = require("../../shared/createGlobalContext
7
7
  const getJsonSerializedInHtml_js_1 = require("./getJsonSerializedInHtml.js");
8
8
  const utils_js_1 = require("./utils.js");
9
9
  const globalObject = (0, utils_js_1.getGlobalObject)('createGetGlobalContextClient.ts', (() => {
10
- const { promise: globalContextPromise, resolve: globalContextPromiseResolve } = (0, utils_js_1.genPromise)();
10
+ const { promise: globalContextInitialPromise, resolve: globalContextInitialPromiseResolve } = (0, utils_js_1.genPromise)();
11
11
  return {
12
- globalContextPromise,
13
- globalContextPromiseResolve,
12
+ globalContextInitialPromise,
13
+ globalContextInitialPromiseResolve,
14
14
  };
15
15
  })());
16
- function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGlobalContext) {
16
+ function createGetGlobalContextClient(virtualFileExportsGlobalEntry, isClientRouting, addGlobalContext) {
17
17
  (0, utils_js_1.assert)(globalObject.isClientRouting === undefined || globalObject.isClientRouting === isClientRouting);
18
18
  globalObject.isClientRouting = isClientRouting;
19
19
  // Eagerly call onCreateGlobalContext() hook
20
20
  getGlobalContext();
21
21
  return getGlobalContext;
22
22
  async function getGlobalContext() {
23
- // Cache
24
- if (globalObject.globalContext &&
25
- // Don't break HMR
26
- globalObject.globalContext._virtualFileExports !== virtualFileExports) {
27
- return globalObject.globalContext;
23
+ // HMR => virtualFileExportsGlobalEntry differ
24
+ if (globalObject.virtualFileExportsGlobalEntry === virtualFileExportsGlobalEntry) {
25
+ const globalContext = await globalObject.globalContextPromise;
26
+ return globalContext;
27
+ }
28
+ else {
29
+ globalObject.virtualFileExportsGlobalEntry = virtualFileExportsGlobalEntry;
28
30
  }
29
31
  // Create
30
- const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExports, globalObject, async (globalContext) => {
32
+ const globalContextPromise = (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExportsGlobalEntry, globalObject, undefined, async (globalContext) => {
31
33
  const globalContextAddendum = {
32
34
  /**
33
35
  * Whether the environment is client-side or server-side / pre-rendering.
34
36
  *
35
- * We recommend using `import.meta.env.SSR` instead, see https://vike.dev/globalContext
37
+ * We recommend using `({}).SSR` instead, see https://vike.dev/globalContext
36
38
  */
37
39
  isClientSide: true,
38
40
  };
@@ -40,18 +42,24 @@ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGl
40
42
  (0, utils_js_1.objectAssign)(globalContextAddendum, await addGlobalContext?.(globalContext));
41
43
  return globalContextAddendum;
42
44
  });
43
- (0, utils_js_1.assert)(globalObject.globalContext);
44
- globalObject.globalContextPromiseResolve(globalObject.globalContext);
45
+ globalObject.globalContextPromise = globalContextPromise;
46
+ const globalContext = await globalContextPromise;
47
+ (0, utils_js_1.assert)(globalObject.globalContext === globalContext);
48
+ globalObject.globalContextInitialPromiseResolve();
45
49
  // Return
46
50
  return globalContext;
47
51
  }
48
52
  }
49
53
  async function getGlobalContext() {
54
+ await globalObject.globalContextInitialPromise;
50
55
  const globalContext = await globalObject.globalContextPromise;
56
+ (0, utils_js_1.assert)(globalContext);
57
+ (0, utils_js_1.checkType)(globalContext);
51
58
  return globalContext;
52
59
  }
53
60
  function getGlobalContextSync() {
54
61
  const { globalContext } = globalObject;
55
62
  (0, utils_js_1.assertUsage)(globalContext, createGlobalContextShared_js_1.getGlobalContextSyncErrMsg);
63
+ (0, utils_js_1.checkType)(globalContext);
56
64
  return globalContext;
57
65
  }
@@ -26,6 +26,15 @@ function findAndParseJson(id) {
26
26
  `Couldn't find #${id} (which Vike automatically injects in the HTML): make sure it exists (i.e. don't remove it and make sure your HTML isn't malformed)`);
27
27
  const jsonStr = elem.textContent;
28
28
  (0, utils_js_1.assert)(jsonStr);
29
- const json = (0, parse_1.parse)(jsonStr);
29
+ const json = (0, parse_1.parse)(jsonStr, {
30
+ // Prevent Google from crawling URLs in JSON:
31
+ // - https://github.com/vikejs/vike/pull/2603
32
+ // - https://github.com/brillout/json-serializer/blob/38edbb9945de4938da1e65d6285ce1dd123a45ef/test/main.spec.ts#L44-L95
33
+ reviver(_key, value) {
34
+ if (typeof value === 'string') {
35
+ return { replacement: value.replaceAll('\\/', '/'), resolved: false };
36
+ }
37
+ },
38
+ });
30
39
  return json;
31
40
  }
@@ -20,3 +20,4 @@ __exportStar(require("../../utils/getGlobalObject.js"), exports);
20
20
  __exportStar(require("../../utils/objectAssign.js"), exports);
21
21
  __exportStar(require("../../utils/hasProp.js"), exports);
22
22
  __exportStar(require("../../utils/genPromise.js"), exports);
23
+ __exportStar(require("../../utils/checkType.js"), exports);
@@ -21,7 +21,7 @@ async function preview(options = {}) {
21
21
  (0, utils_js_2.onSetupPreview)();
22
22
  const { viteConfigFromUserEnhanced, viteConfigResolved } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options, 'preview');
23
23
  if (viteConfigResolved.vitePluginServerEntry?.inject) {
24
- const outDir = (0, getOutDirs_js_1.getOutDirs)(viteConfigResolved).outDirRoot;
24
+ const outDir = (0, getOutDirs_js_1.getOutDirs)(viteConfigResolved, undefined).outDirRoot;
25
25
  const { outServerIndex } = await (0, runtime_1.importServerProductionIndex)({ outDir });
26
26
  const outServerIndexRelative = node_path_1.default.relative(viteConfigResolved.root, outServerIndex);
27
27
  (0, utils_js_1.assertWarning)(false, `Never run ${picocolors_1.default.cyan('$ vike preview')} in production, run ${picocolors_1.default.cyan(`$ node ${outServerIndexRelative}`)} instead (or Bun/Deno).`, { onlyOnce: true });
@@ -53,7 +53,7 @@ const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
53
53
  const getPageContextRequestUrl_js_1 = require("../../shared/getPageContextRequestUrl.js");
54
54
  const resolveRouteString_js_1 = require("../../shared/route/resolveRouteString.js");
55
55
  const getConfigValueRuntime_js_1 = require("../../shared/page-configs/getConfigValueRuntime.js");
56
- const loadConfigValues_js_1 = require("../../shared/page-configs/loadConfigValues.js");
56
+ const loadPageEntry_js_1 = require("../../shared/page-configs/loadPageEntry.js");
57
57
  const error_page_js_1 = require("../../shared/error-page.js");
58
58
  const abort_js_1 = require("../../shared/route/abort.js");
59
59
  const loadPageConfigsLazyServerSide_js_1 = require("../runtime/renderPage/loadPageConfigsLazyServerSide.js");
@@ -82,7 +82,7 @@ async function runPrerender(options = {}, trigger) {
82
82
  await disableReactStreaming();
83
83
  const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
84
84
  const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
85
- const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
85
+ const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig, undefined);
86
86
  const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
87
87
  const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
88
88
  if (!isPrerenderingEnabled) {
@@ -212,7 +212,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
212
212
  // V1 design
213
213
  await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
214
214
  const hookName = 'onBeforePrerenderStart';
215
- const pageConfigLoaded = await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, false);
215
+ const pageConfigLoaded = await (0, loadPageEntry_js_1.loadPageEntry)(pageConfig, false);
216
216
  const hook = (0, getHook_js_1.getHookFromPageConfig)(pageConfigLoaded, hookName);
217
217
  if (!hook)
218
218
  return;
@@ -590,7 +590,7 @@ async function writeFiles({ pageContext, htmlString, pageContextSerialized }, vi
590
590
  async function write(pageContext, fileType, fileContent, viteConfig, onPagePrerender, prerenderContext, logLevel) {
591
591
  const { urlOriginal } = pageContext;
592
592
  (0, utils_js_1.assert)(urlOriginal.startsWith('/'));
593
- const { outDirClient } = (0, getOutDirs_js_1.getOutDirs)(viteConfig);
593
+ const { outDirClient } = (0, getOutDirs_js_1.getOutDirs)(viteConfig, undefined);
594
594
  const { root } = viteConfig;
595
595
  let fileUrl;
596
596
  if (fileType === 'HTML') {
@@ -21,17 +21,23 @@ exports.setGlobalContext_buildEntry = setGlobalContext_buildEntry;
21
21
  exports.clearGlobalContext = clearGlobalContext;
22
22
  exports.assertBuildInfo = assertBuildInfo;
23
23
  exports.updateUserFiles = updateUserFiles;
24
+ // TODO/now: use isProductionEnvironment() instead of globalObject.isProduction
25
+ // TODO/now: rename:
26
+ // - isProduction => isProductionEnvironment
27
+ // - setIsProduction => setIsProductionEnvironment
28
+ // - setGlobalContext_isProduction => setGlobalContext_isProductionEnvironment
29
+ // - sProductionEnvironment => sDevEnv
24
30
  // The core logic revolves around:
25
- // - virtualFileExports is the main requirement
31
+ // - virtualFileExportsGlobalEntry is the main requirement
26
32
  // - In production: globalObject.buildEntry which is the production entry set by @brillout/vite-plugin-server-entry
27
- // - loadBuildEntry() sets globalObject.buildEntry and then sets virtualFileExports
33
+ // - loadBuildEntry() sets globalObject.buildEntry and then sets virtualFileExportsGlobalEntry
28
34
  // - With vike-server it's set at server start: @brillout/vite-plugin-server-entry injects `import './entry.mjs'` (the production entry generated by @brillout/vite-plugin-server-entry) as first line of code of dist/server/index.mjs while dist/server/entry.mjs calls setGlobalContext_buildEntry()
29
35
  // - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
30
36
  // - In development: globalObject.viteDevServer which is Vite's development server
31
- // - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExports
37
+ // - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExportsGlobalEntry
32
38
  const utils_js_1 = require("./utils.js");
33
39
  const runtime_1 = require("@brillout/vite-plugin-server-entry/runtime");
34
- const virtualFileEntry_js_1 = require("../shared/virtualFiles/virtualFileEntry.js");
40
+ const virtualFileId_js_1 = require("../shared/virtualFileId.js");
35
41
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
36
42
  const loadPageRoutes_js_1 = require("../../shared/route/loadPageRoutes.js");
37
43
  const assertV1Design_js_1 = require("../shared/assertV1Design.js");
@@ -48,6 +54,7 @@ const globalObject = (0, utils_js_1.getGlobalObject)('runtime/globalContext.ts',
48
54
  const globalObjectTyped = globalObject;
49
55
  const vikeConfigErrorRecoverMsg = picocolors_1.default.bold(picocolors_1.default.green('Vike config loaded'));
50
56
  exports.vikeConfigErrorRecoverMsg = vikeConfigErrorRecoverMsg;
57
+ (0, utils_js_1.assertIsNotBrowser)();
51
58
  async function getGlobalContextServerInternal() {
52
59
  // getGlobalContextServerInternal() should always be called after initGlobalContext()
53
60
  (0, utils_js_1.assert)(globalObject.isInitialized);
@@ -134,10 +141,12 @@ async function setGlobalContext_viteDevServer(viteDevServer) {
134
141
  (0, utils_js_1.assert)(globalObject.viteConfig);
135
142
  globalObject.viteDevServer = viteDevServer;
136
143
  globalObject.viteDevServerPromiseResolve(viteDevServer);
137
- const { success } = await updateUserFiles();
138
- if (!success)
139
- return;
140
- assertGlobalContextIsDefined();
144
+ if (isRunnable(viteDevServer)) {
145
+ const { success } = await updateUserFiles();
146
+ if (!success)
147
+ return;
148
+ assertGlobalContextIsDefined();
149
+ }
141
150
  }
142
151
  function setGlobalContext_viteConfig(viteConfig, viteConfigRuntime) {
143
152
  if (globalObject.viteConfig)
@@ -154,12 +163,14 @@ function setGlobalContext_isPrerendering() {
154
163
  globalObject.isPrerendering = true;
155
164
  setIsProduction(true);
156
165
  }
157
- function setGlobalContext_isProduction(isProduction, tolerateContraditction) {
166
+ function setGlobalContext_isProduction(isProduction, tolerateContradiction = false) {
167
+ if (debug.isActivated)
168
+ debug('setGlobalContext_isProduction()', { isProduction, tolerateContradiction });
158
169
  if (globalObject.isProduction === undefined) {
159
170
  setIsProduction(isProduction);
160
171
  }
161
172
  else {
162
- (0, utils_js_1.assert)(globalObject.isProduction === isProduction || tolerateContraditction);
173
+ (0, utils_js_1.assert)(globalObject.isProduction === isProduction || tolerateContradiction);
163
174
  }
164
175
  }
165
176
  function getViteDevServer() {
@@ -203,7 +214,13 @@ async function initGlobalContext() {
203
214
  const { isProduction } = globalObject;
204
215
  (0, utils_js_1.assert)(typeof isProduction === 'boolean');
205
216
  if (!isProduction) {
206
- await globalObject.viteDevServerPromise;
217
+ if (isProcessSharedWithVite()) {
218
+ await globalObject.viteDevServerPromise;
219
+ }
220
+ else {
221
+ (0, utils_js_1.assert)(isNonRunnableDev());
222
+ await updateUserFiles();
223
+ }
207
224
  (0, utils_js_1.assert)(globalObject.waitForUserFilesUpdate);
208
225
  await globalObject.waitForUserFilesUpdate;
209
226
  }
@@ -260,7 +277,7 @@ async function loadBuildEntry(outDir) {
260
277
  assertBuildEntry(buildEntry);
261
278
  globalObject.assetsManifest = buildEntry.assetsManifest;
262
279
  globalObject.buildInfo = buildEntry.buildInfo;
263
- await setGlobalContext(buildEntry.virtualFileExports);
280
+ await createGlobalContext(buildEntry.virtualFileExportsGlobalEntry);
264
281
  }
265
282
  // This is the production entry, see:
266
283
  // https://github.com/vikejs/vike/blob/798e5465dc3e3e6723b38b601a50350c0a006fb8/packages/vike/node/vite/plugins/pluginBuild/pluginBuildEntry.ts#L47
@@ -277,15 +294,15 @@ async function setGlobalContext_buildEntry(buildEntry) {
277
294
  }
278
295
  function assertBuildEntry(buildEntry) {
279
296
  (0, utils_js_1.assert)((0, utils_js_1.isObject)(buildEntry));
280
- (0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'virtualFileExports', 'object'));
281
- const { virtualFileExports } = buildEntry;
297
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'virtualFileExportsGlobalEntry', 'object'));
298
+ const { virtualFileExportsGlobalEntry } = buildEntry;
282
299
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'assetsManifest', 'object'));
283
300
  const { assetsManifest } = buildEntry;
284
301
  assertViteManifest(assetsManifest);
285
302
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(buildEntry, 'buildInfo', 'object'));
286
303
  const { buildInfo } = buildEntry;
287
304
  assertBuildInfo(buildInfo);
288
- (0, utils_js_1.checkType)({ virtualFileExports, assetsManifest, buildInfo });
305
+ (0, utils_js_1.checkType)({ virtualFileExportsGlobalEntry, assetsManifest, buildInfo });
289
306
  }
290
307
  function assertBuildInfo(buildInfo) {
291
308
  (0, utils_js_1.assert)((0, utils_js_1.isObject)(buildInfo));
@@ -305,6 +322,7 @@ function assertVersionAtBuildTime(versionAtBuildTime) {
305
322
  (0, utils_js_1.assertUsage)(versionAtBuildTime === versionAtRuntime, `Re-build your app (you're using ${pretty(versionAtRuntime)} but your app was built with ${pretty(versionAtBuildTime)})`);
306
323
  }
307
324
  async function updateUserFiles() {
325
+ debug('updateUserFiles()');
308
326
  (0, utils_js_1.assert)(!globalObject.isProduction);
309
327
  const { promise, resolve } = (0, utils_js_1.genPromise)();
310
328
  globalObject.waitForUserFilesUpdate = promise;
@@ -337,27 +355,57 @@ async function updateUserFiles() {
337
355
  // Avoid race condition: abort if there is a new globalObject.viteDevServer (happens when vite.config.js is modified => Vite's dev server is fully reloaded).
338
356
  viteDevServer !== globalObject.viteDevServer;
339
357
  const { viteDevServer } = globalObject;
340
- (0, utils_js_1.assert)(viteDevServer);
341
358
  let hasError = false;
342
- let virtualFileExports;
359
+ let virtualFileExportsGlobalEntry;
343
360
  let err;
344
- try {
345
- virtualFileExports = await viteDevServer.ssrLoadModule(virtualFileEntry_js_1.virtualFileIdEntryServer);
361
+ if (viteDevServer) {
362
+ (0, utils_js_1.assert)(isRunnable(viteDevServer));
363
+ /* We don't use runner.import() yet, because as of vite@7.0.6 (July 2025) runner.import() unexpectedly invalidates the module graph, which is a unexpected behavior that doesn't happen with ssrLoadModule()
364
+ // Vite 6
365
+ try {
366
+ virtualFileExportsGlobalEntry = await (viteDevServer.environments.ssr as RunnableDevEnvironment).runner.import(
367
+ 'virtual:vike:global-entry:server',
368
+ )
369
+ } catch (err_) {
370
+ hasError = true
371
+ err = err_
372
+ }
373
+ */
374
+ // Vite 5
375
+ try {
376
+ virtualFileExportsGlobalEntry = await viteDevServer.ssrLoadModule(virtualFileId_js_1.virtualFileIdGlobalEntryServer);
377
+ }
378
+ catch (err_) {
379
+ hasError = true;
380
+ err = err_;
381
+ }
346
382
  }
347
- catch (err_) {
348
- hasError = true;
349
- err = err_;
383
+ else {
384
+ try {
385
+ /* We use __VIKE__DYNAMIC_IMPORT instead of directly using import() to workaround what seems to be a Vite HMR bug:
386
+ ```js
387
+ assert(false)
388
+ // This line breaks the HMR of regular (runnable) apps, even though (as per the assert() above) it's never run. It seems to be a Vite bug: handleHotUpdate() receives an empty `modules` list.
389
+ import('virtual:vike:global-entry:server')
390
+ ```
391
+ */
392
+ virtualFileExportsGlobalEntry = await __VIKE__DYNAMIC_IMPORT('virtual:vike:global-entry:server');
393
+ }
394
+ catch (err_) {
395
+ hasError = true;
396
+ err = err_;
397
+ }
350
398
  }
351
399
  if (isOutdated())
352
400
  return { success: false };
353
401
  if (hasError)
354
402
  return onError(err);
355
- virtualFileExports = virtualFileExports.default || virtualFileExports;
403
+ virtualFileExportsGlobalEntry = virtualFileExportsGlobalEntry.default || virtualFileExportsGlobalEntry;
356
404
  if ((0, getVikeConfigError_js_1.getVikeConfigErrorBuild)()) {
357
405
  return { success: false };
358
406
  }
359
407
  try {
360
- await setGlobalContext(virtualFileExports);
408
+ await createGlobalContext(virtualFileExportsGlobalEntry);
361
409
  }
362
410
  catch (err_) {
363
411
  hasError = true;
@@ -369,26 +417,26 @@ async function updateUserFiles() {
369
417
  return onError(err);
370
418
  return onSuccess();
371
419
  }
372
- async function setGlobalContext(virtualFileExports) {
373
- debug('setGlobalContext()');
420
+ async function createGlobalContext(virtualFileExportsGlobalEntry) {
421
+ debug('createGlobalContext()');
374
422
  (0, utils_js_1.assert)(!(0, getVikeConfigError_js_1.getVikeConfigErrorBuild)());
375
- const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExports, globalObject, addGlobalContextAsync, addGlobalContextSync);
423
+ const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExportsGlobalEntry, globalObject, addGlobalContext, addGlobalContextTmp, addGlobalContextAsync);
376
424
  (0, assertV1Design_js_1.assertV1Design)(
377
425
  // pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
378
426
  globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
379
427
  assertGlobalContextIsDefined();
380
428
  (0, utils_js_1.onSetupRuntime)();
381
- debug('setGlobalContext() - done');
382
- // Never actually used, only used for TypeScript `ReturnType<typeof setGlobalContext>`
429
+ debug('createGlobalContext() - done');
430
+ // Never actually used, only used for TypeScript `ReturnType<typeof createGlobalContext>`
383
431
  return globalContext;
384
432
  }
385
- async function addGlobalContextAsync(globalContext) {
386
- debug('addGlobalContextAsync()');
433
+ async function addGlobalContextTmp(globalContext) {
434
+ debug('addGlobalContextTmp()');
387
435
  const { pageRoutes, onBeforeRouteHook } = await (0, loadPageRoutes_js_1.loadPageRoutes)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
388
436
  return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
389
437
  }
390
- function addGlobalContextSync(globalContext) {
391
- debug('addGlobalContextSync()');
438
+ function addGlobalContext(globalContext) {
439
+ debug('addGlobalContext()');
392
440
  const { pageRoutes, onBeforeRouteHook } = (0, loadPageRoutes_js_1.loadPageRoutesSync)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
393
441
  return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
394
442
  }
@@ -398,23 +446,18 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
398
446
  _pageRoutes: pageRoutes,
399
447
  _onBeforeRouteHook: onBeforeRouteHook,
400
448
  };
401
- const { viteDevServer, viteConfig, viteConfigRuntime, isPrerendering, isProduction } = globalObject;
449
+ const { viteDevServer, viteConfig, isPrerendering, isProduction } = globalObject;
402
450
  (0, utils_js_1.assert)(typeof isProduction === 'boolean');
403
451
  if (!isProduction) {
404
- (0, utils_js_1.assert)(viteDevServer);
405
452
  (0, utils_js_1.assert)(globalContext); // main common requirement
406
- (0, utils_js_1.assert)(viteConfig);
407
- (0, utils_js_1.assert)(viteConfigRuntime);
408
453
  (0, utils_js_1.assert)(!isPrerendering);
409
454
  return {
410
455
  ...globalContextBase,
411
- ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
412
456
  _isProduction: false,
413
457
  _isPrerendering: false,
414
458
  assetsManifest: null,
415
459
  _viteDevServer: viteDevServer,
416
460
  viteConfig,
417
- viteConfigRuntime,
418
461
  };
419
462
  }
420
463
  else {
@@ -425,11 +468,9 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
425
468
  (0, utils_js_1.assert)(assetsManifest);
426
469
  const globalContextBase2 = {
427
470
  ...globalContextBase,
428
- ...resolveBaseRuntime(buildInfo.viteConfigRuntime, globalContext.config),
429
471
  _isProduction: true,
430
472
  assetsManifest,
431
473
  _viteDevServer: null,
432
- viteConfigRuntime: buildInfo.viteConfigRuntime,
433
474
  _usesClientRouter: buildInfo.usesClientRouter,
434
475
  };
435
476
  if (isPrerendering) {
@@ -449,6 +490,27 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
449
490
  }
450
491
  }
451
492
  }
493
+ async function addGlobalContextAsync(globalContext) {
494
+ debug('addGlobalContextAsync()');
495
+ let { viteConfigRuntime, buildInfo } = globalObject;
496
+ if (!viteConfigRuntime) {
497
+ if (buildInfo) {
498
+ viteConfigRuntime = buildInfo.viteConfigRuntime;
499
+ }
500
+ else {
501
+ (0, utils_js_1.assert)(!isProcessSharedWithVite()); // process shared with Vite => globalObject.viteConfigRuntime should be set
502
+ (0, utils_js_1.assert)(!globalObject.isProduction); // production => globalObject.buildInfo.viteConfigRuntime should be set
503
+ (0, utils_js_1.assert)(isNonRunnableDev());
504
+ const rpc = (0, utils_js_1.getViteRPC)();
505
+ viteConfigRuntime = await rpc.getViteConfigRuntimeRPC();
506
+ }
507
+ }
508
+ (0, utils_js_1.assert)(viteConfigRuntime);
509
+ return {
510
+ viteConfigRuntime,
511
+ ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
512
+ };
513
+ }
452
514
  function clearGlobalContext() {
453
515
  debug('clearGlobalContext()');
454
516
  (0, utils_js_1.objectReplace)(globalObject, getInitialGlobalObject(), ['buildEntryPrevious']);
@@ -457,6 +519,7 @@ function getInitialGlobalObject() {
457
519
  debug('getInitialGlobalObject()');
458
520
  const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = (0, utils_js_1.genPromise)();
459
521
  return {
522
+ isProduction: isNonRunnableDev() ? false : undefined,
460
523
  viteDevServerPromise,
461
524
  viteDevServerPromiseResolve,
462
525
  };
@@ -467,3 +530,26 @@ function resolveBaseRuntime(viteConfigRuntime, config) {
467
530
  const baseAssetsUnresolved = config.baseAssets ?? null;
468
531
  return (0, resolveBase_js_1.resolveBase)(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved);
469
532
  }
533
+ function isProcessSharedWithVite() {
534
+ const yes = globalThis.__VIKE__IS_PROCESS_SHARED_WITH_VITE ?? false;
535
+ if (yes)
536
+ (0, utils_js_1.assert)(!isNonRunnableDev());
537
+ return yes;
538
+ }
539
+ function isRunnable(viteDevServer) {
540
+ const yes =
541
+ // Vite 5
542
+ !viteDevServer.environments ||
543
+ // Vite 6 or above
544
+ (0, utils_js_1.isRunnableDevEnvironment)(viteDevServer.environments.ssr);
545
+ if (yes)
546
+ (0, utils_js_1.assert)(!isNonRunnableDev());
547
+ return yes;
548
+ }
549
+ function isNonRunnableDev() {
550
+ if (typeof __VIKE__IS_NON_RUNNABLE_DEV === 'undefined')
551
+ return null;
552
+ const yes = __VIKE__IS_NON_RUNNABLE_DEV;
553
+ (0, utils_js_1.assert)(typeof yes === 'boolean');
554
+ return yes;
555
+ }
@@ -187,7 +187,7 @@ function mergeScriptEntries(pageAssets, viteDevScript) {
187
187
  return scriptEntry;
188
188
  }
189
189
  function getPageContextJsonScriptTag(pageContext) {
190
- const pageContextClientSerialized = (0, sanitizeJson_js_1.sanitizeJson)((0, serializeContext_js_1.getPageContextClientSerialized)(pageContext));
190
+ const pageContextClientSerialized = (0, sanitizeJson_js_1.sanitizeJson)((0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, true));
191
191
  const htmlTag = `<script id="${htmlElementIds_js_1.htmlElementId_pageContext}" type="application/json">${pageContextClientSerialized}</script>`;
192
192
  // Used by contra.com https://github.com/gajus
193
193
  // @ts-expect-error
@@ -195,7 +195,7 @@ function getPageContextJsonScriptTag(pageContext) {
195
195
  return htmlTag;
196
196
  }
197
197
  function getGlobalContextJsonScriptTag(pageContext) {
198
- const globalContextClientSerialized = (0, sanitizeJson_js_1.sanitizeJson)((0, serializeContext_js_1.getGlobalContextClientSerialized)(pageContext));
198
+ const globalContextClientSerialized = (0, sanitizeJson_js_1.sanitizeJson)((0, serializeContext_js_1.getGlobalContextClientSerialized)(pageContext, true));
199
199
  const htmlTag = `<script id="${htmlElementIds_js_1.htmlElementId_globalContext}" type="application/json">${globalContextClientSerialized}</script>`;
200
200
  return htmlTag;
201
201
  }
@@ -16,7 +16,9 @@ async function getViteDevScript(pageContext) {
16
16
  const fakeHtmlBegin = '<html> <head>'; // White space to test whether user is using a minifier
17
17
  const fakeHtmlEnd = '</head><body></body></html>';
18
18
  let fakeHtml = fakeHtmlBegin + fakeHtmlEnd;
19
- fakeHtml = await viteDevServer.transformIndexHtml('/', fakeHtml);
19
+ fakeHtml = viteDevServer
20
+ ? await viteDevServer.transformIndexHtml('/', fakeHtml)
21
+ : await (0, utils_js_1.getViteRPC)().transformIndexHtmlRPC(fakeHtml);
20
22
  (0, utils_js_1.assertUsage)(!fakeHtml.includes('vite-plugin-pwa'), `The HTML transformer of ${picocolors_1.default.cyan('vite-plugin-pwa')} cannot be applied, see workaround at https://github.com/vikejs/vike/issues/388#issuecomment-1199280084`);
21
23
  (0, utils_js_1.assertUsage)(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')), `Vite plugins that minify the HTML cannot be applied, see https://github.com/vikejs/vike/issues/224`);
22
24
  (0, utils_js_1.assertUsage)(fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd), `You are using a Vite Plugin that transforms the HTML in a way that conflicts with Vike. ${reachOutCTA}`);