vike 0.4.237 → 0.4.238-commit-5762291

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 (299) hide show
  1. package/dist/cjs/__internal/index.js +3 -3
  2. package/dist/cjs/client/runtime-client-routing/globalContext.js +2 -2
  3. package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
  4. package/dist/cjs/client/runtime-server-routing/utils.js +1 -1
  5. package/dist/cjs/client/shared/createGetGlobalContextClient.js +5 -5
  6. package/dist/cjs/node/api/build.js +5 -31
  7. package/dist/cjs/node/api/context.js +13 -12
  8. package/dist/cjs/node/api/dev.js +0 -2
  9. package/dist/cjs/node/api/index.js +0 -2
  10. package/dist/cjs/node/api/onLoad.js +2 -2
  11. package/dist/cjs/node/api/prepareViteApiCall.js +2 -3
  12. package/dist/cjs/node/api/preview.js +2 -3
  13. package/dist/cjs/node/api/utils.js +1 -0
  14. package/dist/cjs/node/cli/index.js +2 -2
  15. package/dist/cjs/node/cli/onLoad.js +2 -2
  16. package/dist/cjs/node/prerender/runPrerender.js +7 -8
  17. package/dist/cjs/node/prerender/runPrerenderEntry.js +1 -1
  18. package/dist/cjs/node/runtime/csp.js +46 -0
  19. package/dist/cjs/node/runtime/globalContext.js +128 -112
  20. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +11 -8
  21. package/dist/cjs/node/runtime/html/injectAssets/inferHtmlTags.js +5 -2
  22. package/dist/cjs/node/runtime/html/injectAssets/mergeScriptTags.js +4 -2
  23. package/dist/cjs/node/runtime/renderPage/analyzePage.js +6 -4
  24. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +1 -1
  25. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +1 -11
  26. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  27. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -6
  28. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  29. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +5 -34
  30. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +46 -46
  31. package/dist/cjs/node/runtime/renderPage/{renderPageAlreadyRouted.js → renderPageAfterRoute.js} +3 -4
  32. package/dist/cjs/node/runtime/renderPage.js +18 -16
  33. package/dist/cjs/node/runtime/utils.js +3 -2
  34. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +0 -2
  35. package/dist/cjs/node/shared/virtualFileId.js +110 -0
  36. package/dist/cjs/node/vite/index.js +3 -3
  37. package/dist/cjs/node/vite/onLoad.js +5 -3
  38. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +29 -30
  39. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +122 -10
  40. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +12 -17
  41. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -10
  42. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +5 -11
  43. package/dist/cjs/node/vite/plugins/pluginBuild/{pluginBuildEntry.js → pluginProdBuildEntry.js} +11 -11
  44. package/dist/cjs/node/vite/plugins/pluginBuild.js +2 -4
  45. package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +2 -2
  46. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +6 -5
  47. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +6 -13
  48. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +7 -7
  49. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +6 -2
  50. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +4 -3
  51. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +11 -11
  52. package/dist/cjs/node/vite/plugins/pluginPreview.js +4 -7
  53. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +6 -13
  54. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +1 -1
  55. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +5 -6
  56. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +12 -12
  57. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  58. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +51 -21
  59. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +14 -12
  60. package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
  61. package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +3 -3
  62. package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +8 -6
  63. package/dist/cjs/node/vite/shared/getMagicString.js +1 -1
  64. package/dist/cjs/node/vite/shared/getOutDirs.js +21 -22
  65. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
  66. package/dist/cjs/node/vite/shared/isViteServerSide.js +68 -0
  67. package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +6 -4
  68. package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
  69. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +23 -36
  70. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +5 -4
  71. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +46 -48
  72. package/dist/cjs/shared/createGlobalContextShared.js +16 -14
  73. package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
  74. package/dist/cjs/shared/page-configs/loadAndParseVirtualFilePageEntry.js +25 -0
  75. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -4
  76. package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  77. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +3 -3
  78. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -1
  79. package/dist/cjs/shared/route/index.js +0 -1
  80. package/dist/cjs/types/VikeGlobalInternal.js +2 -0
  81. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  82. package/dist/cjs/utils/assertSetup.js +2 -3
  83. package/dist/cjs/utils/assertVersion.js +2 -0
  84. package/dist/cjs/utils/debug.js +4 -4
  85. package/dist/cjs/utils/getGlobalObject.js +8 -15
  86. package/dist/cjs/utils/isNonRunnableDev.js +12 -0
  87. package/dist/cjs/utils/isScriptFile.js +1 -1
  88. package/dist/cjs/utils/path.js +5 -5
  89. package/dist/cjs/utils/requireResolve.js +13 -12
  90. package/dist/cjs/utils/{augmentType.js → updateType.js} +3 -3
  91. package/dist/esm/__internal/index.d.ts +2 -2
  92. package/dist/esm/__internal/index.js +3 -3
  93. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +2 -2
  94. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  95. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  96. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +12 -12
  97. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +2 -2
  98. package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
  99. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  100. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  101. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  102. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  103. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +6 -7
  104. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +6 -6
  105. package/dist/esm/client/runtime-client-routing/utils.d.ts +1 -1
  106. package/dist/esm/client/runtime-client-routing/utils.js +1 -1
  107. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +3 -3
  108. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +3 -3
  109. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +2 -2
  110. package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
  111. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  112. package/dist/esm/client/runtime-server-routing/utils.d.ts +1 -1
  113. package/dist/esm/client/runtime-server-routing/utils.js +1 -1
  114. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +3 -3
  115. package/dist/esm/client/shared/createGetGlobalContextClient.js +5 -5
  116. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  117. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  118. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
  119. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  120. package/dist/esm/node/api/build.d.ts +2 -2
  121. package/dist/esm/node/api/build.js +6 -32
  122. package/dist/esm/node/api/context.d.ts +10 -10
  123. package/dist/esm/node/api/context.js +13 -12
  124. package/dist/esm/node/api/dev.d.ts +2 -2
  125. package/dist/esm/node/api/dev.js +0 -2
  126. package/dist/esm/node/api/index.js +0 -2
  127. package/dist/esm/node/api/onLoad.js +1 -1
  128. package/dist/esm/node/api/prepareViteApiCall.d.ts +3 -5
  129. package/dist/esm/node/api/prepareViteApiCall.js +3 -4
  130. package/dist/esm/node/api/preview.d.ts +2 -2
  131. package/dist/esm/node/api/preview.js +2 -3
  132. package/dist/esm/node/api/types.d.ts +4 -4
  133. package/dist/esm/node/api/utils.d.ts +1 -0
  134. package/dist/esm/node/api/utils.js +1 -0
  135. package/dist/esm/node/cli/index.js +1 -1
  136. package/dist/esm/node/cli/onLoad.js +1 -1
  137. package/dist/esm/node/prerender/runPrerender.d.ts +14 -303
  138. package/dist/esm/node/prerender/runPrerender.js +8 -9
  139. package/dist/esm/node/prerender/runPrerenderEntry.js +1 -1
  140. package/dist/esm/node/runtime/csp.d.ts +12 -0
  141. package/dist/esm/node/runtime/csp.js +44 -0
  142. package/dist/esm/node/runtime/globalContext.d.ts +13 -13
  143. package/dist/esm/node/runtime/globalContext.js +125 -109
  144. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +11 -8
  145. package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.d.ts +2 -1
  146. package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.js +5 -2
  147. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +2 -1
  148. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.js +4 -2
  149. package/dist/esm/node/runtime/html/serializeContext.d.ts +2 -1
  150. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +4 -3
  151. package/dist/esm/node/runtime/renderPage/analyzePage.js +6 -4
  152. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +2 -2
  153. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  154. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +0 -1
  155. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +1 -11
  156. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  157. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  158. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
  159. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -7
  160. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
  161. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  162. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -10
  163. package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -33
  164. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +1 -1
  165. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +108 -20
  166. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +48 -48
  167. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  168. package/dist/esm/node/runtime/renderPage/{renderPageAlreadyRouted.d.ts → renderPageAfterRoute.d.ts} +30 -10
  169. package/dist/esm/node/runtime/renderPage/{renderPageAlreadyRouted.js → renderPageAfterRoute.js} +5 -6
  170. package/dist/esm/node/runtime/renderPage.d.ts +9 -6
  171. package/dist/esm/node/runtime/renderPage.js +20 -18
  172. package/dist/esm/node/runtime/utils.d.ts +3 -2
  173. package/dist/esm/node/runtime/utils.js +3 -2
  174. package/dist/esm/node/runtime-dev/createDevMiddleware.d.ts +2 -2
  175. package/dist/esm/node/runtime-dev/createDevMiddleware.js +0 -2
  176. package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
  177. package/dist/esm/node/shared/virtualFileId.js +107 -0
  178. package/dist/esm/node/vite/index.js +3 -3
  179. package/dist/esm/node/vite/onLoad.js +5 -3
  180. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +5 -6
  181. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +31 -32
  182. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +119 -10
  183. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +12 -17
  184. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -10
  185. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +5 -8
  186. package/dist/esm/node/vite/plugins/pluginBuild/{pluginBuildEntry.d.ts → pluginProdBuildEntry.d.ts} +2 -2
  187. package/dist/esm/node/vite/plugins/pluginBuild/{pluginBuildEntry.js → pluginProdBuildEntry.js} +12 -12
  188. package/dist/esm/node/vite/plugins/pluginBuild.js +2 -4
  189. package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +3 -3
  190. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +6 -5
  191. package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
  192. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +5 -5
  193. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
  194. package/dist/esm/node/vite/plugins/pluginFileEnv.js +4 -3
  195. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +12 -12
  196. package/dist/esm/node/vite/plugins/pluginPreview.js +5 -8
  197. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
  198. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +2 -2
  199. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
  200. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +5 -6
  201. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
  202. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  203. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +2 -0
  204. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  205. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +5 -1
  206. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +52 -22
  207. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +14 -12
  208. package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
  209. package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
  210. package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +4 -4
  211. package/dist/esm/node/vite/shared/getHttpRequestAsyncStore.js +9 -7
  212. package/dist/esm/node/vite/shared/getMagicString.js +1 -1
  213. package/dist/esm/node/vite/shared/getOutDirs.d.ts +4 -3
  214. package/dist/esm/node/vite/shared/getOutDirs.js +21 -22
  215. package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
  216. package/dist/esm/node/vite/shared/isViteServerSide.d.ts +18 -0
  217. package/dist/esm/node/vite/shared/isViteServerSide.js +66 -0
  218. package/dist/esm/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +7 -5
  219. package/dist/esm/node/vite/shared/loggerVite.js +1 -1
  220. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +3 -2
  221. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +24 -37
  222. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +6 -5
  223. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -2
  224. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +49 -51
  225. package/dist/esm/shared/createGlobalContextShared.d.ts +7 -6
  226. package/dist/esm/shared/createGlobalContextShared.js +18 -16
  227. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
  228. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
  229. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  230. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  231. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  232. package/dist/esm/shared/page-configs/loadAndParseVirtualFilePageEntry.d.ts +3 -0
  233. package/dist/esm/shared/page-configs/loadAndParseVirtualFilePageEntry.js +23 -0
  234. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
  235. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +10 -4
  236. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
  237. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
  238. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  239. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +3 -3
  240. package/dist/esm/shared/route/execHookOnBeforeRoute.d.ts +3 -3
  241. package/dist/esm/shared/route/execHookOnBeforeRoute.js +0 -1
  242. package/dist/esm/shared/route/index.d.ts +5 -6
  243. package/dist/esm/shared/route/index.js +0 -1
  244. package/dist/esm/types/Config.d.ts +11 -7
  245. package/dist/esm/types/PageConfig.d.ts +11 -9
  246. package/dist/esm/types/PageContext.d.ts +6 -0
  247. package/dist/esm/types/VikeGlobalInternal.d.ts +4 -0
  248. package/dist/esm/types/VikeGlobalInternal.js +1 -0
  249. package/dist/esm/types/VikeNamespace.d.ts +13 -0
  250. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  251. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  252. package/dist/esm/utils/assertSetup.js +2 -3
  253. package/dist/esm/utils/assertVersion.js +2 -0
  254. package/dist/esm/utils/debug.js +3 -3
  255. package/dist/esm/utils/getGlobalObject.d.ts +6 -5
  256. package/dist/esm/utils/getGlobalObject.js +8 -15
  257. package/dist/esm/utils/isNonRunnableDev.d.ts +2 -0
  258. package/dist/esm/utils/isNonRunnableDev.js +10 -0
  259. package/dist/esm/utils/isScriptFile.d.ts +1 -1
  260. package/dist/esm/utils/isScriptFile.js +1 -1
  261. package/dist/esm/utils/path.d.ts +2 -0
  262. package/dist/esm/utils/path.js +5 -5
  263. package/dist/esm/utils/requireResolve.d.ts +4 -4
  264. package/dist/esm/utils/requireResolve.js +13 -12
  265. package/dist/esm/utils/updateType.d.ts +3 -0
  266. package/dist/esm/utils/updateType.js +7 -0
  267. package/package.json +6 -6
  268. package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +0 -52
  269. package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -31
  270. package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -45
  271. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +0 -149
  272. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -11
  273. package/dist/cjs/node/vite/shared/isViteServerBuild.js +0 -47
  274. package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
  275. package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +0 -23
  276. package/dist/esm/node/runtime/renderPage/debugPageFiles.js +0 -47
  277. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
  278. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
  279. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
  280. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -28
  281. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
  282. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -43
  283. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.d.ts +0 -5
  284. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +0 -144
  285. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
  286. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
  287. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
  288. package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
  289. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -9
  290. package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +0 -15
  291. package/dist/esm/node/vite/shared/isViteServerBuild.js +0 -45
  292. package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
  293. package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
  294. package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
  295. package/dist/esm/utils/augmentType.d.ts +0 -3
  296. package/dist/esm/utils/augmentType.js +0 -7
  297. /package/dist/cjs/utils/{getTerminWidth.js → getTerminalWidth.js} +0 -0
  298. /package/dist/esm/utils/{getTerminWidth.d.ts → getTerminalWidth.d.ts} +0 -0
  299. /package/dist/esm/utils/{getTerminWidth.js → getTerminalWidth.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveClientEntriesDev = resolveClientEntriesDev;
3
+ exports.getClientEntrySrcDev = getClientEntrySrcDev;
4
4
  const utils_js_1 = require("../utils.js");
5
5
  (0, utils_js_1.assertIsNotProductionRuntime)();
6
- function resolveClientEntriesDev(clientEntry, viteDevServer) {
6
+ function getClientEntrySrcDev(clientEntry, viteDevServer) {
7
7
  let userRootDir = viteDevServer.config.root;
8
8
  (0, utils_js_1.assert)(userRootDir);
9
9
  userRootDir = (0, utils_js_1.toPosixPath)(userRootDir);
@@ -25,7 +25,7 @@ function resolveClientEntriesDev(clientEntry, viteDevServer) {
25
25
  else {
26
26
  if (clientEntry.startsWith('@@vike/')) {
27
27
  (0, utils_js_1.assert)(clientEntry.endsWith('.js'));
28
- filePath = (0, utils_js_1.requireResolveVikeDistFile)(`dist/esm/${clientEntry.replace('@@vike/dist/esm/', '')}`);
28
+ filePath = (0, utils_js_1.requireResolveDistFile)(`dist/esm/${clientEntry.replace('@@vike/dist/esm/', '')}`);
29
29
  }
30
30
  else {
31
31
  (0, utils_js_1.assertIsImportPathNpmPackage)(clientEntry);
@@ -45,7 +45,9 @@ const loggerNotProd_js_1 = require("./loggerNotProd.js");
45
45
  const errorWithCodeSnippet_js_1 = require("./loggerNotProd/errorWithCodeSnippet.js");
46
46
  const node_util_1 = require("node:util");
47
47
  (0, utils_js_1.assertIsNotProductionRuntime)();
48
- let asyncLocalStorage = null;
48
+ const globalObject = (0, utils_js_1.getGlobalObject)('getHttpRequestAsyncStore.ts', {
49
+ asyncLocalStorage: null,
50
+ });
49
51
  async function installHttpRequestAsyncStore() {
50
52
  let mod;
51
53
  try {
@@ -54,9 +56,9 @@ async function installHttpRequestAsyncStore() {
54
56
  catch {
55
57
  return;
56
58
  }
57
- asyncLocalStorage = new mod.AsyncLocalStorage();
59
+ globalObject.asyncLocalStorage = new mod.AsyncLocalStorage();
58
60
  (0, renderPage_js_1.renderPage_addAsyncHookwrapper)(async (httpRequestId, renderPage) => {
59
- (0, utils_js_1.assert)(asyncLocalStorage);
61
+ (0, utils_js_1.assert)(globalObject.asyncLocalStorage);
60
62
  const loggedErrors = new Set();
61
63
  const markErrorAsLogged = (err) => {
62
64
  loggedErrors.add(err);
@@ -79,15 +81,15 @@ async function installHttpRequestAsyncStore() {
79
81
  shouldErrorBeSwallowed,
80
82
  errorDebugNoteAlreadyShown: false,
81
83
  };
82
- const pageContextReturn = await asyncLocalStorage.run(store, renderPage);
84
+ const pageContextReturn = await globalObject.asyncLocalStorage.run(store, renderPage);
83
85
  return { pageContextReturn };
84
86
  });
85
87
  return;
86
88
  }
87
89
  function getHttpRequestAsyncStore() {
88
- if (asyncLocalStorage === null)
90
+ if (globalObject.asyncLocalStorage === null)
89
91
  return null;
90
- const store = asyncLocalStorage.getStore();
92
+ const store = globalObject.asyncLocalStorage.getStore();
91
93
  (0, utils_js_1.assert)(store === undefined || (0, utils_js_1.isObject)(store));
92
94
  return store;
93
95
  }
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getMagicString = getMagicString;
7
7
  const magic_string_1 = __importDefault(require("magic-string"));
8
- // TODO/now use everywhere
8
+ // Used everywhere instead of `new MagicString()` for consistent source map generation
9
9
  function getMagicString(code, id) {
10
10
  const magicString = new magic_string_1.default(code);
11
11
  const getMagicStringResult = () => {
@@ -7,27 +7,23 @@ exports.getOutDirs = getOutDirs;
7
7
  exports.resolveOutDir = resolveOutDir;
8
8
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
9
9
  const utils_js_1 = require("../utils.js");
10
- const isViteServerBuild_js_1 = require("./isViteServerBuild.js");
10
+ const isViteServerSide_js_1 = require("./isViteServerSide.js");
11
11
  const debug = (0, utils_js_1.createDebugger)('vike:outDir');
12
12
  function getOutDirs(configGlobal, viteEnv) {
13
- const configEnv = viteEnv?.config ?? configGlobal;
14
13
  debug('getOutDirs()', new Error().stack);
15
- const outDir = getOutDirFromViteResolvedConfig(configEnv);
16
- if (!isOutDirRoot(outDir))
17
- assertOutDirResolved(outDir, configEnv);
18
- const outDirs = getOutDirsAll(outDir, configEnv.root);
14
+ const outDir = getOutDirFromResolvedConfig(configGlobal, viteEnv);
15
+ assertOutDirResolved(outDir, configGlobal, viteEnv);
16
+ const outDirs = getOutDirsAll(outDir, configGlobal.root);
17
+ assertNormalization(outDirs.outDirRoot);
18
+ assertNormalization(outDirs.outDirClient);
19
+ assertNormalization(outDirs.outDirServer);
19
20
  return outDirs;
20
21
  }
21
22
  /** Appends `client/` or `server/` to `config.build.outDir` */
22
- function resolveOutDir(config, isSSR) {
23
- debug('resolveOutDir()', new Error().stack);
24
- const isServerSide = (0, isViteServerBuild_js_1.isViteServerBuild)(config) || isSSR;
25
- debug('isServerSide', isServerSide);
23
+ function resolveOutDir(config, isServerSide) {
24
+ debug('resolveOutDir()');
26
25
  const outDir = getOutDirFromViteUserConfig(config) || 'dist';
27
26
  debug('outDir', outDir);
28
- /* outDir may already be resolved when using Telefunc + Vike (because both Telefunc and Vike use this logic)
29
- assert(isOutDirRoot(outDir))
30
- */
31
27
  const { outDirClient, outDirServer } = getOutDirsAll(outDir);
32
28
  if (isServerSide) {
33
29
  debug('outDirServer', 'outDirServer');
@@ -91,9 +87,9 @@ function getOutDirsAllFromRootNormalized(outDirRoot, root) {
91
87
  }
92
88
  function assertNormalization(outDirAny) {
93
89
  (0, utils_js_1.assertPosixPath)(outDirAny);
94
- (0, utils_js_1.assert)(outDirIsAbsolutePath(outDirAny));
95
- (0, utils_js_1.assert)(outDirAny.endsWith('/'));
96
- (0, utils_js_1.assert)(!outDirAny.endsWith('//'));
90
+ (0, utils_js_1.assert)(outDirIsAbsolutePath(outDirAny), outDirAny);
91
+ (0, utils_js_1.assert)(outDirAny.endsWith('/'), outDirAny);
92
+ (0, utils_js_1.assert)(!outDirAny.endsWith('//'), outDirAny);
97
93
  }
98
94
  function isOutDirRoot(outDirRot) {
99
95
  const p = outDirRot.split('/').filter(Boolean);
@@ -103,14 +99,17 @@ function isOutDirRoot(outDirRot) {
103
99
  function assertIsNotOutDirRoot(outDir) {
104
100
  (0, utils_js_1.assert)(outDir.endsWith('/client') || outDir.endsWith('/server'));
105
101
  }
106
- /** Assert that `outDir` ends with `/server` or `/client` */
107
- function assertOutDirResolved(outDir, config) {
102
+ /** Assert that `outDir` ends with the correct directory `/server` or `/client` */
103
+ function assertOutDirResolved(outDir, configGlobal, viteEnv) {
108
104
  (0, utils_js_1.assertPosixPath)(outDir);
109
- assertIsNotOutDirRoot(outDir);
105
+ if (isOutDirRoot(outDir))
106
+ return;
107
+ (0, utils_js_1.assert)(outDir.endsWith('/client') || outDir.endsWith('/server')); // we normalized outDir
110
108
  (0, utils_js_1.assert)('/client'.length === '/server'.length);
111
109
  const outDirCorrected = outDir.slice(0, -1 * '/client'.length);
112
110
  const wrongUsage = `You've set Vite's config.build.outDir to ${picocolors_1.default.cyan(outDir)} but you should set it to ${picocolors_1.default.cyan(outDirCorrected)} instead.`;
113
- if ((0, isViteServerBuild_js_1.isViteServerBuild)(config)) {
111
+ const isServerSide = (0, isViteServerSide_js_1.isViteServerSide_viteEnvOptional)(configGlobal, viteEnv);
112
+ if (isServerSide) {
114
113
  (0, utils_js_1.assertUsage)(outDir.endsWith('/server'), wrongUsage);
115
114
  }
116
115
  else {
@@ -124,8 +123,8 @@ function getOutDirFromViteUserConfig(config) {
124
123
  outDir = normalizeOutDir(outDir);
125
124
  return outDir;
126
125
  }
127
- function getOutDirFromViteResolvedConfig(config) {
128
- let outDir = config.build.outDir;
126
+ function getOutDirFromResolvedConfig(config, viteEnv) {
127
+ let outDir = viteEnv?.config.build?.outDir ?? config.build.outDir;
129
128
  (0, utils_js_1.assert)(outDir);
130
129
  outDir = normalizeOutDir(outDir);
131
130
  return outDir;
@@ -5,7 +5,7 @@ const utils_js_1 = require("../utils.js");
5
5
  const getOutDirs_js_1 = require("./getOutDirs.js");
6
6
  function getViteConfigRuntime(config) {
7
7
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(config, '_baseViteOriginal', 'string'));
8
- const { outDirRoot } = (0, getOutDirs_js_1.getOutDirs)(config);
8
+ const { outDirRoot } = (0, getOutDirs_js_1.getOutDirs)(config, undefined);
9
9
  (0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot);
10
10
  const viteConfigRuntime = {
11
11
  root: config.root,
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isViteServerSide = isViteServerSide;
4
+ exports.isViteClientSide = isViteClientSide;
5
+ exports.isViteServerSide_viteEnvOptional = isViteServerSide_viteEnvOptional;
6
+ exports.isViteServerSide_onlySsrEnv = isViteServerSide_onlySsrEnv;
7
+ exports.isViteServerSide_extraSafe = isViteServerSide_extraSafe;
8
+ const assert_js_1 = require("../../../utils/assert.js");
9
+ function isViteServerSide_impl(configGlobal, viteEnv) {
10
+ (0, assert_js_1.assert)(!('consumer' in configGlobal)); // make sure configGlobal isn't viteEnv.config
11
+ const debug = {
12
+ viteEnvIsUndefined: !viteEnv,
13
+ viteEnvName: viteEnv?.name ?? null,
14
+ viteEnvConsumer: viteEnv?.config.consumer ?? null,
15
+ configEnvBuildSsr: viteEnv?.config.build?.ssr ?? null,
16
+ configGlobalBuildSsr: configGlobal.build?.ssr ?? null,
17
+ };
18
+ if (!viteEnv) {
19
+ const isServerSide = getBuildSsrValue(configGlobal.build?.ssr);
20
+ (0, assert_js_1.assert)(typeof isServerSide === 'boolean', debug);
21
+ return isServerSide;
22
+ }
23
+ else {
24
+ const isServerSide1 = !viteEnv.config.consumer ? null : viteEnv.config.consumer !== 'client';
25
+ const isServerSide2 = getBuildSsrValue(viteEnv.config.build?.ssr);
26
+ const isServerSide3 = viteEnv.name === 'ssr' ? true : viteEnv.name === 'client' ? false : null;
27
+ const isServerSide = isServerSide1 ?? isServerSide2;
28
+ (0, assert_js_1.assert)(isServerSide === isServerSide1 || isServerSide1 === null, debug);
29
+ (0, assert_js_1.assert)(isServerSide === isServerSide2 || isServerSide2 === null, debug);
30
+ (0, assert_js_1.assert)(isServerSide === isServerSide3 || isServerSide3 === null, debug);
31
+ (0, assert_js_1.assert)(isServerSide !== null);
32
+ return isServerSide;
33
+ }
34
+ }
35
+ function getBuildSsrValue(buildSsr) {
36
+ if (buildSsr === undefined)
37
+ return null;
38
+ (0, assert_js_1.assert)(typeof buildSsr === 'boolean' || typeof buildSsr === 'string');
39
+ return !!buildSsr;
40
+ }
41
+ function isViteServerSide(configGlobal, viteEnv) {
42
+ return isViteServerSide_impl(configGlobal, viteEnv);
43
+ }
44
+ function isViteServerSide_viteEnvOptional(configGlobal, viteEnv) {
45
+ return isViteServerSide_impl(configGlobal, viteEnv);
46
+ }
47
+ function isViteClientSide(configGlobal, viteEnv) {
48
+ return !isViteServerSide(configGlobal, viteEnv);
49
+ }
50
+ // Only `ssr` env: for example don't include `vercel_edge` nor `vercel_node`.
51
+ function isViteServerSide_onlySsrEnv(configGlobal, viteEnv) {
52
+ return viteEnv.name ? viteEnv.name === 'ssr' : isViteServerSide(configGlobal, viteEnv);
53
+ }
54
+ // Vite is quite messy about setting config.build.ssr — for security purposes, we use an extra safe implementation with lots of assertions, which is needed for the .client.js and .server.js guarantee.
55
+ function isViteServerSide_extraSafe(config, viteEnv, options) {
56
+ const isServerSide = isViteServerSide(config, viteEnv);
57
+ const debug = {
58
+ isServerSide,
59
+ configCommand: config.command,
60
+ configBuildSsr: getBuildSsrValue(config.build.ssr),
61
+ optionsIsUndefined: options === undefined,
62
+ optionsSsr: options?.ssr ?? null,
63
+ };
64
+ (0, assert_js_1.assert)(options, debug);
65
+ (0, assert_js_1.assert)(typeof options.ssr === 'boolean', debug);
66
+ (0, assert_js_1.assert)(options.ssr === isServerSide, debug);
67
+ return isServerSide;
68
+ }
@@ -4,10 +4,12 @@ exports.removeSuperfluousViteLog = removeSuperfluousViteLog;
4
4
  exports.removeSuperfluousViteLog_enable = removeSuperfluousViteLog_enable;
5
5
  exports.removeSuperfluousViteLog_disable = removeSuperfluousViteLog_disable;
6
6
  const utils_js_1 = require("../../utils.js");
7
+ const globalObject = (0, utils_js_1.getGlobalObject)('removeSuperfluousViteLog.ts', {
8
+ enabled: false,
9
+ });
7
10
  const superfluousLog = 'Forced re-optimization of dependencies';
8
- let enabled = false;
9
11
  function removeSuperfluousViteLog(msg) {
10
- if (!enabled) {
12
+ if (!globalObject.enabled) {
11
13
  return false;
12
14
  }
13
15
  if (msg.toLowerCase().includes('forced') && msg.toLowerCase().includes('optimization')) {
@@ -17,8 +19,8 @@ function removeSuperfluousViteLog(msg) {
17
19
  return false;
18
20
  }
19
21
  function removeSuperfluousViteLog_enable() {
20
- enabled = true;
22
+ globalObject.enabled = true;
21
23
  }
22
24
  function removeSuperfluousViteLog_disable() {
23
- enabled = false;
25
+ globalObject.enabled = false;
24
26
  }
@@ -33,7 +33,7 @@ function intercept(logType, config) {
33
33
  // We swallow Vite's message: we didn't see it add any value so far.
34
34
  // - It can even be confusing, such as the following:
35
35
  // ```
36
- // Error when evaluating SSR module virtual:vike:pageConfigLazy:server:/pages/abort: failed to import "/pages/abort/+Page.mdx"
36
+ // Error when evaluating SSR module virtual:vike:page-entry:server:/pages/abort: failed to import "/pages/abort/+Page.mdx"
37
37
  // ```
38
38
  (0, utils_js_1.assert)(!(0, isErrorDebug_js_1.isErrorDebug)());
39
39
  return;
@@ -110,7 +110,9 @@ const configDefinitionsBuiltIn = {
110
110
  }, pageConfig))
111
111
  .flat(1)
112
112
  // Server-only
113
- .filter((source) => !source.configEnv.client);
113
+ .filter((source) => !source.configEnv.client)
114
+ // Config value isn't `null`
115
+ .filter((source) => !(0, getConfigValueSourcesRelevant_js_1.isConfigSourceValueNull)(source));
114
116
  return sources.length > 0;
115
117
  },
116
118
  },
@@ -122,22 +124,19 @@ const configDefinitionsBuiltIn = {
122
124
  env: { server: true, client: true },
123
125
  eager: true,
124
126
  _computed: (pageConfig) => {
125
- const { configValueSources } = pageConfig;
126
127
  {
127
- const source = getConfigValueSource(configValueSources, 'clientHooks');
128
+ const source = (0, getConfigValueSourcesRelevant_js_1.getConfigValueSourceRelevantAnyEnv)('clientHooks', pageConfig);
128
129
  if (source) {
129
130
  (0, utils_js_1.assert)(source.valueIsLoaded);
130
- if (source.value !== null) {
131
- const { value } = source;
132
- const definedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', 'clientHooks', source.definedAt);
133
- (0, utils_js_1.assertUsage)(typeof value === 'boolean', `${definedAt} should be a boolean`);
134
- return value;
135
- }
131
+ const { value, definedAt } = source;
132
+ const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', 'clientHooks', definedAt);
133
+ (0, utils_js_1.assertUsage)(typeof value === 'boolean', `${configDefinedAt} should be a boolean`);
134
+ return value;
136
135
  }
137
136
  }
138
- return (isConfigSet(configValueSources, 'onRenderClient') &&
139
- isConfigSet(configValueSources, 'Page') &&
140
- !!getConfigEnv(configValueSources, 'Page')?.client);
137
+ return (isConfigSet(pageConfig, 'onRenderClient') &&
138
+ isConfigSet(pageConfig, 'Page') &&
139
+ !!getConfigEnv(pageConfig, 'Page')?.client);
141
140
  },
142
141
  },
143
142
  // TO-DO/soon/cumulative-hooks: remove and replace with new computed prop `clientOnlyHooks: string[]` (see other TO-DO/soon/cumulative-hooks entries)
@@ -145,10 +144,7 @@ const configDefinitionsBuiltIn = {
145
144
  env: { client: true },
146
145
  eager: true,
147
146
  _computed: (pageConfig) => {
148
- const { configValueSources } = pageConfig;
149
- return !isConfigSet(configValueSources, 'onBeforeRender')
150
- ? null
151
- : getConfigEnv(configValueSources, 'onBeforeRender');
147
+ return !isConfigSet(pageConfig, 'onBeforeRender') ? null : getConfigEnv(pageConfig, 'onBeforeRender');
152
148
  },
153
149
  },
154
150
  // TO-DO/soon/cumulative-hooks: remove and replace with new computed prop `clientOnlyHooks: string[]` (see other TO-DO/soon/cumulative-hooks entries)
@@ -156,8 +152,7 @@ const configDefinitionsBuiltIn = {
156
152
  env: { client: true },
157
153
  eager: true,
158
154
  _computed: (pageConfig) => {
159
- const { configValueSources } = pageConfig;
160
- return !isConfigSet(configValueSources, 'data') ? null : getConfigEnv(configValueSources, 'data');
155
+ return !isConfigSet(pageConfig, 'data') ? null : getConfigEnv(pageConfig, 'data');
161
156
  },
162
157
  },
163
158
  hooksTimeout: {
@@ -178,6 +173,9 @@ const configDefinitionsBuiltIn = {
178
173
  env: { config: true },
179
174
  global: true,
180
175
  },
176
+ csp: {
177
+ env: { server: true },
178
+ },
181
179
  injectScriptsAt: {
182
180
  env: { server: true },
183
181
  },
@@ -246,11 +244,11 @@ const configDefinitionsBuiltIn = {
246
244
  },
247
245
  };
248
246
  exports.configDefinitionsBuiltIn = configDefinitionsBuiltIn;
249
- function getConfigEnv(configValueSources, configName) {
250
- const configValueSource = getConfigValueSource(configValueSources, configName);
251
- if (!configValueSource)
247
+ function getConfigEnv(pageConfig, configName) {
248
+ const source = (0, getConfigValueSourcesRelevant_js_1.getConfigValueSourceRelevantAnyEnv)(configName, pageConfig);
249
+ if (!source)
252
250
  return null;
253
- const { configEnv } = configValueSource;
251
+ const { configEnv } = source;
254
252
  const env = {};
255
253
  if (configEnv.client)
256
254
  env.client = true;
@@ -258,18 +256,7 @@ function getConfigEnv(configValueSources, configName) {
258
256
  env.server = true;
259
257
  return env;
260
258
  }
261
- function isConfigSet(configValueSources, configName) {
262
- const source = getConfigValueSource(configValueSources, configName);
263
- return (!!source &&
264
- !(source.valueIsLoaded &&
265
- // Enable users to suppress inherited config by overriding it with `null`
266
- source.value === null));
267
- }
268
- function getConfigValueSource(configValueSources, configName) {
269
- const sources = configValueSources[configName];
270
- if (!sources)
271
- return null;
272
- const configValueSource = sources[0];
273
- (0, utils_js_1.assert)(configValueSource);
274
- return configValueSource;
259
+ function isConfigSet(pageConfig, configName) {
260
+ const source = (0, getConfigValueSourcesRelevant_js_1.getConfigValueSourceRelevantAnyEnv)(configName, pageConfig);
261
+ return !!source;
275
262
  }
@@ -19,8 +19,9 @@ const ignorePatternsBuiltIn_js_1 = require("./crawlPlusFiles/ignorePatternsBuilt
19
19
  const execA = (0, node_util_1.promisify)(node_child_process_1.exec);
20
20
  const debug = (0, utils_js_1.createDebugger)('vike:crawl');
21
21
  (0, utils_js_1.assertIsNotProductionRuntime)();
22
- (0, utils_js_1.assertIsSingleModuleInstance)('getVikeConfig/crawlPlusFiles.ts');
23
- let gitIsNotUsable = false;
22
+ const globalObject = (0, utils_js_1.getGlobalObject)('getVikeConfig/crawlPlusFiles.ts', {
23
+ gitIsNotUsable: false,
24
+ });
24
25
  async function crawlPlusFiles(userRootDir) {
25
26
  (0, utils_js_1.assertPosixPath)(userRootDir);
26
27
  (0, utils_js_1.assertFilePathAbsoluteFilesystem)(userRootDir);
@@ -53,7 +54,7 @@ async function crawlPlusFiles(userRootDir) {
53
54
  }
54
55
  // Same as tinyglobby() but using `$ git ls-files`
55
56
  async function gitLsFiles(userRootDir, ignorePatterns, ignoreMatchers) {
56
- if (gitIsNotUsable)
57
+ if (globalObject.gitIsNotUsable)
57
58
  return null;
58
59
  // Preserve UTF-8 file paths.
59
60
  // https://github.com/vikejs/vike/issues/1658
@@ -87,7 +88,7 @@ async function gitLsFiles(userRootDir, ignorePatterns, ignoreMatchers) {
87
88
  }
88
89
  catch (err) {
89
90
  if (await isGitNotUsable(userRootDir)) {
90
- gitIsNotUsable = true;
91
+ globalObject.gitIsNotUsable = true;
91
92
  return null;
92
93
  }
93
94
  throw err;
@@ -35,21 +35,19 @@ const resolvePrerenderConfig_js_1 = require("../../prerender/resolvePrerenderCon
35
35
  const getProxyForPublicUsage_js_1 = require("../../../shared/getProxyForPublicUsage.js");
36
36
  const getVikeConfigError_js_1 = require("../../shared/getVikeConfigError.js");
37
37
  (0, utils_js_1.assertIsNotProductionRuntime)();
38
- // We can simply use global variables since Vike's config is:
39
- // - global
40
- // - independent of Vite (therefore we don't need to tie Vike's config with Vite's `config` object)
41
- (0, utils_js_1.assertIsSingleModuleInstance)('v1-design/getVikeConfig.ts');
42
- let restartVite = false;
43
- let vikeConfigHasBuildError = null;
44
- let isV1Design_ = null;
45
- let vikeConfigPromise = null;
46
- // TO-DO/next-major-release: remove
47
- let vikeConfigSync = null;
48
- let vikeConfigCtx = null; // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
49
- let prerenderContext;
38
+ const globalObject = (0, utils_js_1.getGlobalObject)('vite/shared/resolveVikeConfigInternal.ts', {
39
+ restartVite: false,
40
+ vikeConfigHasBuildError: null,
41
+ isV1Design_: null,
42
+ vikeConfigPromise: null,
43
+ // TO-DO/next-major-release: remove
44
+ vikeConfigSync: null,
45
+ vikeConfigCtx: null, // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
46
+ prerenderContext: null,
47
+ });
50
48
  function reloadVikeConfig() {
51
- (0, utils_js_1.assert)(vikeConfigCtx);
52
- const { userRootDir, vikeVitePluginOptions } = vikeConfigCtx;
49
+ (0, utils_js_1.assert)(globalObject.vikeConfigCtx);
50
+ const { userRootDir, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
53
51
  (0, utils_js_1.assert)(vikeVitePluginOptions);
54
52
  resolveVikeConfigInternal_withErrorHandling(userRootDir, true, vikeVitePluginOptions);
55
53
  }
@@ -57,15 +55,15 @@ async function getVikeConfigInternal(
57
55
  // I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
58
56
  // TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
59
57
  doNotRestartViteOnError = false) {
60
- (0, utils_js_1.assert)(vikeConfigCtx);
61
- const { userRootDir, isDev, vikeVitePluginOptions } = vikeConfigCtx;
58
+ (0, utils_js_1.assert)(globalObject.vikeConfigCtx);
59
+ const { userRootDir, isDev, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
62
60
  const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
63
61
  return vikeConfig;
64
62
  }
65
63
  // TO-DO/next-major-release: remove
66
64
  function getVikeConfigInternalSync() {
67
- (0, utils_js_1.assert)(vikeConfigSync);
68
- return vikeConfigSync;
65
+ (0, utils_js_1.assert)(globalObject.vikeConfigSync);
66
+ return globalObject.vikeConfigSync;
69
67
  }
70
68
  // TO-DO/eventually: this maybe(/probably?) isn't safe against race conditions upon file changes in development, thus:
71
69
  // - Like getGlobalContext() and getGlobalContextSync() — make getVikeConfig() async and provide a getVikeConfigSync() while discourage using it
@@ -86,29 +84,29 @@ config) {
86
84
  }
87
85
  function setVikeConfigContext(vikeConfigCtx_) {
88
86
  // If the user changes Vite's `config.root` => Vite completely reloads itself => setVikeConfigContext() is called again
89
- vikeConfigCtx = vikeConfigCtx_;
87
+ globalObject.vikeConfigCtx = vikeConfigCtx_;
90
88
  }
91
89
  async function getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
92
- if (!vikeConfigPromise) {
90
+ if (!globalObject.vikeConfigPromise) {
93
91
  resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
94
92
  }
95
- (0, utils_js_1.assert)(vikeConfigPromise);
96
- const vikeConfig = await vikeConfigPromise;
93
+ (0, utils_js_1.assert)(globalObject.vikeConfigPromise);
94
+ const vikeConfig = await globalObject.vikeConfigPromise;
97
95
  return vikeConfig;
98
96
  }
99
97
  async function getVikeConfigInternalOptional() {
100
- if (!vikeConfigPromise)
98
+ if (!globalObject.vikeConfigPromise)
101
99
  return null;
102
- const vikeConfig = await vikeConfigPromise;
100
+ const vikeConfig = await globalObject.vikeConfigPromise;
103
101
  return vikeConfig;
104
102
  }
105
103
  function isV1Design() {
106
- (0, utils_js_1.assert)(typeof isV1Design_ === 'boolean');
107
- return isV1Design_;
104
+ (0, utils_js_1.assert)(typeof globalObject.isV1Design_ === 'boolean');
105
+ return globalObject.isV1Design_;
108
106
  }
109
107
  async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
110
108
  const { promise, resolve, reject } = (0, utils_js_1.genPromise)();
111
- vikeConfigPromise = promise;
109
+ globalObject.vikeConfigPromise = promise;
112
110
  const esbuildCache = {
113
111
  transpileCache: {},
114
112
  vikeConfigDependencies: new Set(),
@@ -125,10 +123,10 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
125
123
  }
126
124
  // There is a newer call — let the new call supersede the old one.
127
125
  // We deliberately swallow the intermetidate state (including any potential error) — it's now outdated and has existed only for a very short period of time.
128
- if (vikeConfigPromise !== promise) {
126
+ if (globalObject.vikeConfigPromise !== promise) {
129
127
  // vikeConfigPromise.then(resolve).catch(reject)
130
128
  try {
131
- resolve(await vikeConfigPromise);
129
+ resolve(await globalObject.vikeConfigPromise);
132
130
  }
133
131
  catch (err) {
134
132
  reject(err);
@@ -138,13 +136,13 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
138
136
  if (!hasError) {
139
137
  (0, utils_js_1.assert)(ret);
140
138
  (0, utils_js_1.assert)(err === undefined);
141
- const hadError = vikeConfigHasBuildError;
142
- vikeConfigHasBuildError = false;
139
+ const hadError = globalObject.vikeConfigHasBuildError;
140
+ globalObject.vikeConfigHasBuildError = false;
143
141
  (0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: false });
144
142
  if (hadError) {
145
143
  (0, loggerNotProd_js_1.logConfigErrorRecover)();
146
- if (restartVite) {
147
- restartVite = false;
144
+ if (globalObject.restartVite) {
145
+ globalObject.restartVite = false;
148
146
  restartViteDevServer();
149
147
  }
150
148
  }
@@ -153,10 +151,10 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
153
151
  else {
154
152
  (0, utils_js_1.assert)(ret === undefined);
155
153
  (0, utils_js_1.assert)(err);
156
- vikeConfigHasBuildError = true;
154
+ globalObject.vikeConfigHasBuildError = true;
157
155
  (0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: { err } });
158
156
  if (!doNotRestartViteOnError)
159
- restartVite = true;
157
+ globalObject.restartVite = true;
160
158
  if (!isDev) {
161
159
  reject(err);
162
160
  }
@@ -170,8 +168,8 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
170
168
  const plusFilesAll = await (0, getPlusFilesAll_js_1.getPlusFilesAll)(userRootDir, esbuildCache);
171
169
  const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache);
172
170
  const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir);
173
- if (!isV1Design_)
174
- isV1Design_ = pageConfigs.length > 0;
171
+ if (!globalObject.isV1Design_)
172
+ globalObject.isV1Design_ = pageConfigs.length > 0;
175
173
  // Backwards compatibility for vike(options) in vite.config.js
176
174
  temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
177
175
  setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
@@ -181,7 +179,7 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
181
179
  // pages
182
180
  const vikeConfigPublicPagesEager = (0, utils_js_1.objectFromEntries)(pageConfigs.map((pageConfig) => {
183
181
  const pageConfigValues = getConfigValues(pageConfig, true);
184
- return (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageEager)(pageConfigGlobalValues, pageConfig, pageConfigValues);
182
+ return (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageEagerLoaded)(pageConfigGlobalValues, pageConfig, pageConfigValues);
185
183
  }));
186
184
  const prerenderContext = resolvePrerenderContext({
187
185
  config: vikeConfigPublicGlobal.config,
@@ -197,7 +195,7 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
197
195
  prerenderContext,
198
196
  _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
199
197
  };
200
- vikeConfigSync = vikeConfig;
198
+ globalObject.vikeConfigSync = vikeConfig;
201
199
  return vikeConfig;
202
200
  }
203
201
  async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
@@ -421,9 +419,9 @@ function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, use
421
419
  }
422
420
  function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
423
421
  // Vike API — passed options [lowest precedence]
424
- const apiOperation = (0, context_js_1.getApiOperation)();
425
- if (apiOperation?.options.vikeConfig) {
426
- addSources(apiOperation.options.vikeConfig, { definedBy: 'api', operation: apiOperation.operation }, false);
422
+ const vikeApiOperation = (0, context_js_1.getVikeApiOperation)();
423
+ if (vikeApiOperation?.options.vikeConfig) {
424
+ addSources(vikeApiOperation.options.vikeConfig, { definedBy: 'api', operation: vikeApiOperation.operation }, false);
427
425
  }
428
426
  const { configFromCliOptions, configFromEnvVar } = getVikeConfigFromCliOrEnv();
429
427
  // Vike CLI options
@@ -1102,7 +1100,7 @@ function isGlobalLocation(locationId, plusFilesAll) {
1102
1100
  }
1103
1101
  function resolvePrerenderContext(vikeConfig) {
1104
1102
  const { isPrerenderingEnabled, isPrerenderingEnabledForAllPages } = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
1105
- prerenderContext ?? (prerenderContext = {
1103
+ globalObject.prerenderContext ?? (globalObject.prerenderContext = {
1106
1104
  isPrerenderingEnabled: false,
1107
1105
  isPrerenderingEnabledForAllPages: false,
1108
1106
  // Set at runPrerender()
@@ -1110,9 +1108,9 @@ function resolvePrerenderContext(vikeConfig) {
1110
1108
  // Set at runPrerender()
1111
1109
  pageContexts: null,
1112
1110
  });
1113
- prerenderContext.isPrerenderingEnabled = isPrerenderingEnabled;
1114
- prerenderContext.isPrerenderingEnabledForAllPages = isPrerenderingEnabledForAllPages;
1115
- return prerenderContext;
1111
+ globalObject.prerenderContext.isPrerenderingEnabled = isPrerenderingEnabled;
1112
+ globalObject.prerenderContext.isPrerenderingEnabledForAllPages = isPrerenderingEnabledForAllPages;
1113
+ return globalObject.prerenderContext;
1116
1114
  }
1117
1115
  function restartViteDevServer() {
1118
1116
  const viteDevServer = (0, globalContext_js_1.getViteDevServer)();
@@ -1149,7 +1147,7 @@ function getVikeConfigDummy(esbuildCache) {
1149
1147
  prerenderContext: prerenderContextDummy,
1150
1148
  _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
1151
1149
  };
1152
- vikeConfigSync = vikeConfigDummy;
1153
- isV1Design_ = true;
1150
+ globalObject.vikeConfigSync = vikeConfigDummy;
1151
+ globalObject.isV1Design_ = true;
1154
1152
  return vikeConfigDummy;
1155
1153
  }