vike 0.4.236-commit-eab75f6 → 0.4.237-commit-85e89b1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) 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 +5 -7
  4. package/dist/cjs/node/api/preview.js +1 -1
  5. package/dist/cjs/node/prerender/runPrerender.js +4 -4
  6. package/dist/cjs/node/runtime/globalContext.js +21 -22
  7. package/dist/cjs/node/runtime/html/serializeContext.js +8 -47
  8. package/dist/cjs/node/runtime/html/stream.js +1 -1
  9. package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -3
  10. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -7
  11. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  12. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -6
  13. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  14. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +5 -34
  15. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +50 -14
  16. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +22 -9
  17. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -3
  18. package/dist/cjs/node/runtime/renderPage.js +7 -6
  19. package/dist/cjs/node/shared/virtualFileId.js +110 -0
  20. package/dist/cjs/node/vite/index.js +3 -3
  21. package/dist/cjs/node/vite/onLoad.js +5 -3
  22. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +10 -10
  23. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +1 -1
  24. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +1 -0
  25. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +20 -11
  26. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
  27. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
  28. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +4 -10
  29. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +46 -44
  30. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +5 -12
  31. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +5 -5
  32. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +5 -1
  33. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +2 -6
  34. package/dist/cjs/node/vite/plugins/pluginPreview.js +11 -4
  35. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +5 -12
  36. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +7 -9
  37. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  38. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -12
  39. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +67 -0
  40. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +14 -12
  41. package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
  42. package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
  43. package/dist/cjs/node/vite/shared/getMagicString.js +1 -1
  44. package/dist/cjs/node/vite/shared/getOutDirs.js +18 -12
  45. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
  46. package/dist/cjs/node/vite/shared/isViteServerBuild.js +54 -31
  47. package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
  48. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
  49. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +8 -19
  50. package/dist/cjs/shared/createGlobalContextShared.js +23 -10
  51. package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
  52. package/dist/cjs/shared/modifyUrlSameOrigin.js +9 -4
  53. package/dist/cjs/shared/page-configs/loadPageEntry.js +25 -0
  54. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +4 -4
  55. package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  56. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +15 -16
  57. package/dist/cjs/shared/utils.js +2 -0
  58. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  59. package/dist/cjs/utils/cast.js +1 -1
  60. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +2 -2
  61. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  62. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +12 -12
  63. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +35 -48
  64. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +2 -2
  65. package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
  66. package/dist/esm/client/runtime-client-routing/history.d.ts +3 -5
  67. package/dist/esm/client/runtime-client-routing/history.js +39 -22
  68. package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
  69. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  70. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  71. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  72. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  73. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +4 -4
  74. package/dist/esm/client/runtime-client-routing/utils.d.ts +2 -0
  75. package/dist/esm/client/runtime-client-routing/utils.js +2 -0
  76. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +3 -3
  77. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +2 -2
  78. package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
  79. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  80. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +3 -3
  81. package/dist/esm/client/shared/createGetGlobalContextClient.js +5 -7
  82. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  83. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  84. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
  85. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  86. package/dist/esm/node/api/preview.js +1 -1
  87. package/dist/esm/node/prerender/runPrerender.d.ts +9 -9
  88. package/dist/esm/node/prerender/runPrerender.js +4 -4
  89. package/dist/esm/node/runtime/globalContext.d.ts +10 -10
  90. package/dist/esm/node/runtime/globalContext.js +21 -22
  91. package/dist/esm/node/runtime/html/serializeContext.d.ts +8 -3
  92. package/dist/esm/node/runtime/html/serializeContext.js +8 -47
  93. package/dist/esm/node/runtime/html/stream.js +1 -1
  94. package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -3
  95. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +3 -3
  96. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -7
  97. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  98. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  99. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
  100. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -7
  101. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
  102. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  103. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +0 -6
  104. package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -33
  105. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  106. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +1 -1
  107. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +51 -15
  108. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +3 -3
  109. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +25 -12
  110. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  111. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -3
  112. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +10 -11
  113. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -3
  114. package/dist/esm/node/runtime/renderPage.d.ts +3 -2
  115. package/dist/esm/node/runtime/renderPage.js +7 -6
  116. package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
  117. package/dist/esm/node/shared/virtualFileId.js +107 -0
  118. package/dist/esm/node/vite/index.js +3 -3
  119. package/dist/esm/node/vite/onLoad.js +5 -3
  120. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +2 -2
  121. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +11 -11
  122. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +1 -1
  123. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +1 -0
  124. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +21 -12
  125. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
  126. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
  127. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +5 -8
  128. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +47 -45
  129. package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
  130. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +4 -4
  131. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
  132. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +2 -6
  133. package/dist/esm/node/vite/plugins/pluginPreview.js +13 -6
  134. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
  135. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
  136. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +7 -9
  137. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
  138. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  139. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +3 -0
  140. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -12
  141. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +14 -0
  142. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +65 -0
  143. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +14 -12
  144. package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
  145. package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
  146. package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
  147. package/dist/esm/node/vite/shared/getMagicString.js +1 -1
  148. package/dist/esm/node/vite/shared/getOutDirs.d.ts +6 -3
  149. package/dist/esm/node/vite/shared/getOutDirs.js +19 -13
  150. package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
  151. package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +14 -11
  152. package/dist/esm/node/vite/shared/isViteServerBuild.js +55 -31
  153. package/dist/esm/node/vite/shared/loggerVite.js +1 -1
  154. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +2 -2
  155. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
  156. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +3 -5
  157. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +10 -21
  158. package/dist/esm/shared/createGlobalContextShared.d.ts +6 -6
  159. package/dist/esm/shared/createGlobalContextShared.js +25 -12
  160. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
  161. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
  162. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  163. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  164. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  165. package/dist/esm/shared/modifyUrlSameOrigin.d.ts +1 -1
  166. package/dist/esm/shared/modifyUrlSameOrigin.js +9 -4
  167. package/dist/esm/shared/page-configs/loadPageEntry.d.ts +3 -0
  168. package/dist/esm/shared/page-configs/loadPageEntry.js +23 -0
  169. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
  170. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +4 -4
  171. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
  172. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
  173. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  174. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -2
  175. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +15 -16
  176. package/dist/esm/shared/utils.d.ts +2 -0
  177. package/dist/esm/shared/utils.js +2 -0
  178. package/dist/esm/types/Config.d.ts +33 -98
  179. package/dist/esm/types/PageConfig.d.ts +9 -7
  180. package/dist/esm/types/VikeNamespace.d.ts +13 -0
  181. package/dist/esm/types/index.d.ts +3 -1
  182. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  183. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  184. package/dist/esm/utils/cast.d.ts +2 -2
  185. package/dist/esm/utils/cast.js +1 -1
  186. package/dist/esm/utils/objectFilter.d.ts +1 -1
  187. package/package.json +3 -3
  188. package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -31
  189. package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -45
  190. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -23
  191. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -11
  192. package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
  193. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
  194. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
  195. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
  196. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -28
  197. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
  198. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -43
  199. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
  200. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
  201. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
  202. package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.d.ts +0 -7
  203. package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -21
  204. package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
  205. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -9
  206. package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
  207. package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
  208. package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
@@ -2,31 +2,67 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handlePageContextRequestUrl = handlePageContextRequestUrl;
4
4
  const getPageContextRequestUrl_js_1 = require("../../../shared/getPageContextRequestUrl.js");
5
+ const modifyUrl_js_1 = require("../../../shared/modifyUrl.js");
5
6
  const utils_js_1 = require("../utils.js");
6
7
  // See also shared/getPageContextRequestUrl.ts
7
8
  function handlePageContextRequestUrl(url) {
8
- if (!hasSuffix(url)) {
9
- return { urlWithoutPageContextRequestSuffix: url, isPageContextRequest: false };
9
+ const urlParsed = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
10
+ if (!isMatch(urlParsed)) {
11
+ return {
12
+ isPageContextJsonRequest: false,
13
+ urlWithoutPageContextRequestSuffix: url,
14
+ };
15
+ }
16
+ else {
17
+ const { urlWithoutPageContextRequestSuffix, searchVikeArgs } = processUrl(urlParsed, url);
18
+ const previousUrl = parseSearchVikeArgs(searchVikeArgs);
19
+ return {
20
+ /* TO-DO/soon/once: pass & use previousUrl
21
+ isPageContextJsonRequest: { previousUrl },
22
+ /*/
23
+ isPageContextJsonRequest: true,
24
+ //*/
25
+ urlWithoutPageContextRequestSuffix,
26
+ };
10
27
  }
11
- return { urlWithoutPageContextRequestSuffix: removePageContextUrlSuffix(url), isPageContextRequest: true };
12
28
  }
13
- function hasSuffix(url) {
14
- const { pathnameOriginal, pathname } = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
15
- (0, utils_js_1.assert)(pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension) === pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension), {
16
- url,
17
- });
18
- return pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension);
29
+ function isMatch(urlParsed) {
30
+ const { pathnameOriginal, pathname } = urlParsed;
31
+ (0, utils_js_1.assert)(pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension) === pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension));
32
+ return pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension);
19
33
  }
20
- function removePageContextUrlSuffix(url) {
21
- const urlParsed = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
34
+ function processUrl(urlParsed, url) {
22
35
  // We cannot use `urlParsed.pathname` because it would break the `urlParsed.pathnameOriginal` value of subsequent `parseUrl()` calls.
23
- const { origin, pathnameOriginal, searchOriginal, hashOriginal } = urlParsed;
36
+ const { pathnameOriginal, search } = urlParsed;
24
37
  (0, utils_js_1.assert)(getPageContextRequestUrl_js_1.doNotCreateExtraDirectory === false);
25
38
  const urlSuffix = `/index${getPageContextRequestUrl_js_1.pageContextJsonFileExtension}`;
26
39
  (0, utils_js_1.assert)(pathnameOriginal.endsWith(urlSuffix), { url });
27
40
  let pathnameModified = (0, utils_js_1.slice)(pathnameOriginal, 0, -1 * urlSuffix.length);
28
41
  if (pathnameModified === '')
29
42
  pathnameModified = '/';
30
- (0, utils_js_1.assert)(url === `${origin || ''}${pathnameOriginal}${searchOriginal || ''}${hashOriginal || ''}`, { url });
31
- return `${origin || ''}${pathnameModified}${searchOriginal || ''}${hashOriginal || ''}`;
43
+ const searchVikeArgs = search?._vike;
44
+ const urlWithoutPageContextRequestSuffix = (0, modifyUrl_js_1.modifyUrl)(url, {
45
+ pathname: pathnameModified,
46
+ search: {
47
+ _vike: searchVikeArgs ? null : undefined,
48
+ },
49
+ });
50
+ return {
51
+ searchVikeArgs,
52
+ urlWithoutPageContextRequestSuffix,
53
+ };
54
+ }
55
+ function parseSearchVikeArgs(searchVikeArgs) {
56
+ const args = {
57
+ previousUrl: null,
58
+ };
59
+ if (searchVikeArgs) {
60
+ const parsed = JSON.parse(searchVikeArgs);
61
+ (0, utils_js_1.assert)((0, utils_js_1.isObject)(parsed));
62
+ if ('previousUrl' in parsed) {
63
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(parsed, 'previousUrl', 'string'));
64
+ args.previousUrl = parsed.previousUrl;
65
+ }
66
+ }
67
+ return args;
32
68
  }
@@ -9,7 +9,7 @@ const getPageAssets_js_1 = require("./getPageAssets.js");
9
9
  const debugPageFiles_js_1 = require("./debugPageFiles.js");
10
10
  const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig.js");
11
11
  const analyzePage_js_1 = require("./analyzePage.js");
12
- const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
12
+ const loadPageEntry_js_1 = require("../../../shared/page-configs/loadPageEntry.js");
13
13
  const execHookServer_js_1 = require("./execHookServer.js");
14
14
  const getCacheControl_js_1 = require("./getCacheControl.js");
15
15
  async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
@@ -31,19 +31,32 @@ async function loadPageConfigsLazyServerSide(pageContext) {
31
31
  const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await (0, analyzePage_js_1.analyzePage)(pageContext._globalContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
32
32
  const isV1Design = !!pageConfig;
33
33
  const passToClient = [];
34
- const errMsg = ' should be an array of strings.';
34
+ const errMsgSuffix = ' should be an array of strings.';
35
35
  if (!isV1Design) {
36
36
  configPublicPageLazy.exportsAll.passToClient?.forEach((e) => {
37
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
37
+ (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsgSuffix}`);
38
38
  passToClient.push(...e.exportValue);
39
39
  });
40
40
  }
41
41
  else {
42
42
  configPublicPageLazy.from.configsCumulative.passToClient?.values.forEach((v) => {
43
- const { value } = v;
44
- // const { definedAt } = v
45
- // assertUsage(isArrayOfStrings(value), `+passToClient value defined at ${definedAt}${errMsg}`)
46
- passToClient.push(...value);
43
+ const { value, definedAt } = v;
44
+ const errMsg = `+passToClient value defined at ${definedAt}${errMsgSuffix}`;
45
+ //*/ TO-DO/next-major-release: remove the passToClient once setting from the public API
46
+ (0, utils_js_1.assertUsage)((0, utils_js_1.isArray)(value), `+passToClient value defined at ${definedAt} should be an array`);
47
+ const valS = value.map((el) => {
48
+ if ((0, utils_js_1.isObject)(el)) {
49
+ (0, utils_js_1.assertWarning)(!('once' in el), 'The passToClient once setting is deprecated and no longer has any effect. Instead, see the upcoming .once.js suffix (see https://github.com/vikejs/vike/issues/2566 for more information).', { onlyOnce: true });
50
+ (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(el, 'prop', 'string'), errMsg);
51
+ return el.prop;
52
+ }
53
+ (0, utils_js_1.assertUsage)(typeof el === 'string', errMsg);
54
+ return el;
55
+ });
56
+ /*/
57
+ assertUsage(isArrayOfStrings(value), errMsg)
58
+ //*/
59
+ passToClient.push(...valS);
47
60
  });
48
61
  }
49
62
  const pageContextAddendum = {};
@@ -108,9 +121,9 @@ async function loadPageConfigsLazyServerSide(pageContext) {
108
121
  }
109
122
  async function loadPageConfigFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
110
123
  const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
111
- const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
124
+ const pageConfigLoaded = !pageConfig ? null : await (0, loadPageEntry_js_1.loadPageEntry)(pageConfig, isDev);
112
125
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
113
- const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazy)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
126
+ const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazyLoaded)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
114
127
  return {
115
128
  configPublicPageLazy,
116
129
  pageFilesLoaded: pageFilesServerSide,
@@ -63,8 +63,7 @@ async function renderPageAlreadyRouted(pageContext) {
63
63
  }
64
64
  async function prerenderPage(pageContext) {
65
65
  (0, utils_js_1.objectAssign)(pageContext, {
66
- isClientSideNavigation: false,
67
- _urlHandler: null,
66
+ _isPageContextJsonRequest: null,
68
67
  });
69
68
  /* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
70
69
  * - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
@@ -73,7 +72,6 @@ async function prerenderPage(pageContext) {
73
72
  await (0, execHookDataAndOnBeforeRender_js_1.execHookDataAndOnBeforeRender)(pageContext);
74
73
  const { htmlRender, renderHook } = await (0, execHookOnRenderHtml_js_1.execHookOnRenderHtml)(pageContext);
75
74
  (0, utils_js_1.assertUsage)(htmlRender !== null, `Cannot pre-render ${picocolors_1.default.cyan(pageContext.urlOriginal)} because the ${renderHook.hookName}() hook defined by ${renderHook.hookFilePath} didn't return an HTML string.`);
76
- (0, utils_js_1.assert)(pageContext.isClientSideNavigation === false);
77
75
  const documentHtml = await (0, renderHtml_js_1.getHtmlString)(htmlRender);
78
76
  (0, utils_js_1.assert)(typeof documentHtml === 'string');
79
77
  if (!pageContext._usesClientRouter) {
@@ -312,7 +312,7 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
312
312
  return pageContext;
313
313
  }
314
314
  function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
315
- const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
315
+ const { isClientSideNavigation, _urlHandler, _isPageContextJsonRequest } = handlePageContextUrl(pageContextInit.urlOriginal);
316
316
  const pageContextBegin = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
317
317
  isPrerendering: false,
318
318
  ssr: {
@@ -320,13 +320,14 @@ function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
320
320
  isClientSideNavigation,
321
321
  },
322
322
  });
323
- (0, utils_js_1.objectAssign)(pageContextBegin, { _httpRequestId: httpRequestId });
323
+ (0, utils_js_1.objectAssign)(pageContextBegin, { _httpRequestId: httpRequestId, _isPageContextJsonRequest });
324
324
  return pageContextBegin;
325
325
  }
326
326
  function handlePageContextUrl(urlOriginal) {
327
- const { isPageContextRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
327
+ const { isPageContextJsonRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
328
328
  return {
329
- isClientSideNavigation: isPageContextRequest,
329
+ isClientSideNavigation: !!isPageContextJsonRequest,
330
+ _isPageContextJsonRequest: isPageContextJsonRequest,
330
331
  _urlHandler: (url) => (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(url).urlWithoutPageContextRequestSuffix,
331
332
  };
332
333
  }
@@ -350,8 +351,8 @@ async function normalizeUrl(pageContextBegin, globalContext, httpRequestId) {
350
351
  if (disableUrlNormalization)
351
352
  return null;
352
353
  const { urlOriginal } = pageContext;
353
- const { isPageContextRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
354
- if (isPageContextRequest)
354
+ const { isPageContextJsonRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
355
+ if (isPageContextJsonRequest)
355
356
  return null;
356
357
  const urlNormalized = (0, utils_js_1.normalizeUrlPathname)(urlOriginal, trailingSlash ?? false, globalContext.baseServer);
357
358
  if (!urlNormalized)
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.virtualFileIdGlobalEntryClientCR = exports.virtualFileIdGlobalEntryClientSR = exports.virtualFileIdGlobalEntryServer = void 0;
4
+ exports.parseVirtualFileId = parseVirtualFileId;
5
+ exports.generateVirtualFileId = generateVirtualFileId;
6
+ const extractAssetsQuery_js_1 = require("./extractAssetsQuery.js");
7
+ const utils_js_1 = require("./utils.js");
8
+ (0, utils_js_1.assertIsNotBrowser)();
9
+ // Global entries
10
+ const virtualFileIdGlobalEntryServer =
11
+ //
12
+ 'virtual:vike:global-entry:server';
13
+ exports.virtualFileIdGlobalEntryServer = virtualFileIdGlobalEntryServer;
14
+ const virtualFileIdGlobalEntryClientSR =
15
+ //
16
+ 'virtual:vike:global-entry:client:server-routing';
17
+ exports.virtualFileIdGlobalEntryClientSR = virtualFileIdGlobalEntryClientSR;
18
+ const virtualFileIdGlobalEntryClientCR =
19
+ //
20
+ 'virtual:vike:global-entry:client:client-routing';
21
+ exports.virtualFileIdGlobalEntryClientCR = virtualFileIdGlobalEntryClientCR;
22
+ // Page entries
23
+ const virtualFileIdPageEntryClient =
24
+ //
25
+ 'virtual:vike:page-entry:client:'; // ${pageId}
26
+ const virtualFileIdPageEntryServer =
27
+ //
28
+ 'virtual:vike:page-entry:server:'; // ${pageId}
29
+ // Virtual ID prefixes
30
+ const virtualFileIdPageEntryPrefix =
31
+ //
32
+ 'virtual:vike:page-entry:';
33
+ const virtualFileIdGlobalEntryPrefix =
34
+ //
35
+ 'virtual:vike:global-entry:';
36
+ const virtualFileIdGlobalEntries = [
37
+ virtualFileIdGlobalEntryServer,
38
+ virtualFileIdGlobalEntryClientCR,
39
+ virtualFileIdGlobalEntryClientSR,
40
+ ];
41
+ (0, utils_js_1.assert)(virtualFileIdGlobalEntries.every((v) =>
42
+ //
43
+ v.startsWith(virtualFileIdGlobalEntryPrefix)));
44
+ (0, utils_js_1.assert)([virtualFileIdPageEntryClient, virtualFileIdPageEntryServer].every((v) =>
45
+ //
46
+ v.startsWith(virtualFileIdPageEntryPrefix)));
47
+ function parseVirtualFileId(id) {
48
+ id = (0, utils_js_1.removeVirtualFileIdPrefix)(id);
49
+ if (!id.startsWith(virtualFileIdGlobalEntryPrefix) && !id.startsWith(virtualFileIdPageEntryPrefix))
50
+ return false;
51
+ // Global entry
52
+ if (id.includes(virtualFileIdGlobalEntryPrefix)) {
53
+ (0, utils_js_1.assert)(virtualFileIdGlobalEntries.includes(id));
54
+ const isForClientSide = id !== virtualFileIdGlobalEntryServer;
55
+ const isClientRouting = id === virtualFileIdGlobalEntryClientCR;
56
+ return {
57
+ type: 'global-entry',
58
+ isForClientSide,
59
+ isClientRouting,
60
+ };
61
+ }
62
+ // Page entry
63
+ if (id.includes(virtualFileIdPageEntryPrefix)) {
64
+ (0, utils_js_1.assert)(id.startsWith(virtualFileIdPageEntryPrefix));
65
+ const idOriginal = id;
66
+ id = (0, extractAssetsQuery_js_1.extractAssetsRemoveQuery)(id);
67
+ const isExtractAssets = idOriginal !== id;
68
+ if (id.startsWith(virtualFileIdPageEntryClient)) {
69
+ (0, utils_js_1.assert)(isExtractAssets === false);
70
+ return {
71
+ type: 'page-entry',
72
+ pageId: id.slice(virtualFileIdPageEntryClient.length),
73
+ isForClientSide: true,
74
+ isExtractAssets,
75
+ };
76
+ }
77
+ if (id.startsWith(virtualFileIdPageEntryServer)) {
78
+ return {
79
+ type: 'page-entry',
80
+ pageId: id.slice(virtualFileIdPageEntryServer.length),
81
+ isForClientSide: false,
82
+ isExtractAssets,
83
+ };
84
+ }
85
+ (0, utils_js_1.assert)(false);
86
+ }
87
+ return false;
88
+ }
89
+ function generateVirtualFileId(args) {
90
+ if (args.type === 'global-entry') {
91
+ const { isForClientSide, isClientRouting } = args;
92
+ (0, utils_js_1.assert)(typeof isClientRouting === 'boolean');
93
+ if (!isForClientSide) {
94
+ return virtualFileIdGlobalEntryServer;
95
+ }
96
+ else if (isClientRouting) {
97
+ return virtualFileIdGlobalEntryClientCR;
98
+ }
99
+ else {
100
+ return virtualFileIdGlobalEntryClientSR;
101
+ }
102
+ }
103
+ if (args.type === 'page-entry') {
104
+ const { pageId, isForClientSide } = args;
105
+ (0, utils_js_1.assert)(typeof pageId === 'string');
106
+ const id = `${isForClientSide ? virtualFileIdPageEntryClient : virtualFileIdPageEntryServer}${pageId}`;
107
+ return id;
108
+ }
109
+ (0, utils_js_1.assert)(false);
110
+ }
@@ -24,14 +24,14 @@ const pluginBaseUrls_js_1 = require("./plugins/pluginBaseUrls.js");
24
24
  const pluginEnvVars_js_1 = require("./plugins/pluginEnvVars.js");
25
25
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
26
26
  const pluginFileEnv_js_1 = require("./plugins/pluginFileEnv.js");
27
- const getPageAssets_js_1 = require("../runtime/renderPage/getPageAssets.js");
28
- const resolveClientEntriesDev_js_1 = require("./shared/resolveClientEntriesDev.js");
27
+ const getClientEntrySrcDev_js_1 = require("./shared/getClientEntrySrcDev.js");
29
28
  const pluginWorkaroundCssModuleHmr_js_1 = require("./plugins/pluginWorkaroundCssModuleHmr.js");
30
29
  const pluginWorkaroundVite6HmrRegression_js_1 = require("./plugins/pluginWorkaroundVite6HmrRegression.js");
31
30
  const pluginReplaceConstants_js_1 = require("./plugins/pluginReplaceConstants.js");
32
31
  const pluginNonRunnableDev_js_1 = require("./plugins/pluginNonRunnableDev.js");
32
+ const retrievePageAssetsDev_js_1 = require("../runtime/renderPage/getPageAssets/retrievePageAssetsDev.js");
33
33
  // We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
34
- (0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
34
+ (0, retrievePageAssetsDev_js_1.setGetClientEntrySrcDev)(getClientEntrySrcDev_js_1.getClientEntrySrcDev);
35
35
  // Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
36
36
  function plugin(vikeVitePluginOptions = {}) {
37
37
  const plugins = [
@@ -11,9 +11,11 @@ function onLoad() {
11
11
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
12
12
  (0, assertNodeVersion_js_1.assertNodeVersion)();
13
13
  // package.json#peerDependencies isn't enough as users often ignore it
14
- // This assertion isn't reliable: the user may still use a Vite version older than 5.1.0 — see https://github.com/vitejs/vite/pull/19355
15
- // TO-DO/eventually: let's also use this.meta.viteVersion https://github.com/vitejs/vite/pull/20088
16
- (0, assertVersion_js_1.assertVersion)('Vite', vite_1.version, '5.1.0');
14
+ // This assertion isn't reliable: the user may still use a Vite version older than 6.0.0 — see https://github.com/vitejs/vite/pull/19355
15
+ // TO-DO/eventually: let's also use this.meta.viteVersion
16
+ // - https://github.com/vitejs/vite/pull/20088
17
+ // - https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#700-2025-06-24
18
+ (0, assertVersion_js_1.assertVersion)('Vite', vite_1.version, '6.0.0');
17
19
  // Ensure we don't bloat the server runtime with heavy dependencies such Vite and esbuild
18
20
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
19
21
  }
@@ -13,7 +13,7 @@ const node_fs_1 = __importDefault(require("node:fs"));
13
13
  const node_path_1 = __importDefault(require("node:path"));
14
14
  const node_fs_2 = require("node:fs");
15
15
  const utils_js_1 = require("../../utils.js");
16
- const virtualFilePageConfigLazy_js_1 = require("../../../shared/virtualFiles/virtualFilePageConfigLazy.js");
16
+ const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
17
17
  const getAssetsDir_js_1 = require("../../shared/getAssetsDir.js");
18
18
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
19
19
  const resolveVikeConfigInternal_js_1 = require("../../shared/resolveVikeConfigInternal.js");
@@ -38,7 +38,7 @@ async function fixServerAssets(config) {
38
38
  return { clientManifestMod, serverManifestMod };
39
39
  }
40
40
  async function copyAssets(filesToMove, filesToRemove, config) {
41
- const { outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config);
41
+ const { outDirClient, outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config, undefined);
42
42
  const assetsDir = (0, getAssetsDir_js_1.getAssetsDir)(config);
43
43
  const assetsDirServer = node_path_1.default.posix.join(outDirServer, assetsDir);
44
44
  if (!filesToMove.length && !filesToRemove.length && !(0, node_fs_2.existsSync)(assetsDirServer))
@@ -170,13 +170,13 @@ function addServerAssets(clientManifest, serverManifest) {
170
170
  }
171
171
  function getPageId(key) {
172
172
  // Normalize from:
173
- // ../../virtual:vike:pageConfigLazy:client:/pages/index
173
+ // ../../virtual:vike:page-entry:client:/pages/index
174
174
  // to:
175
- // virtual:vike:pageConfigLazy:client:/pages/index
175
+ // virtual:vike:page-entry:client:/pages/index
176
176
  // (This seems to be needed only for vitest tests that use Vite's build() API with an inline config.)
177
177
  key = key.substring(key.indexOf('virtual:vike'));
178
- const result = (0, virtualFilePageConfigLazy_js_1.isVirtualFileIdPageConfigLazy)(key);
179
- return result && result.pageId;
178
+ const result = (0, virtualFileId_js_1.parseVirtualFileId)(key);
179
+ return result && result.type === 'page-entry' ? result.pageId : null;
180
180
  }
181
181
  function collectResources(entryRoot, manifest) {
182
182
  const css = [];
@@ -221,10 +221,10 @@ function handleAssetsManifest_assertUsageCssCodeSplit(config) {
221
221
  (0, utils_js_1.assertWarning)(config.build.cssCodeSplit, `${picocolors_1.default.cyan('build.cssCodeSplit')} shouldn't be set to ${picocolors_1.default.cyan('false')} (https://github.com/vikejs/vike/issues/1993)`, { onlyOnce: true });
222
222
  }
223
223
  const targets = [];
224
- function handleAssetsManifest_assertUsageCssTarget(config) {
224
+ function handleAssetsManifest_assertUsageCssTarget(config, env) {
225
225
  if (!handleAssetsManifest_isFixEnabled(config))
226
226
  return;
227
- const isServerSide = (0, isViteServerBuild_js_1.isViteServerBuild)(config);
227
+ const isServerSide = (0, isViteServerBuild_js_1.isViteServerBuild)(config, env);
228
228
  (0, utils_js_1.assert)(typeof isServerSide === 'boolean');
229
229
  (0, utils_js_1.assert)(config.build.target !== undefined);
230
230
  targets.push({ global: config.build.target, css: config.build.cssTarget, isServerSide });
@@ -295,7 +295,7 @@ async function handleAssetsManifest_getBuildConfig(config) {
295
295
  copyPublicDir: vikeConfig.config.vite6BuilderApp
296
296
  ? // Already set by vike:build:pluginBuildApp
297
297
  undefined
298
- : !(0, isViteServerBuild_js_1.isViteServerBuild)(config),
298
+ : !(0, isViteServerBuild_js_1.isViteServerBuild_withoutEnv)(config),
299
299
  };
300
300
  }
301
301
  async function handleAssetsManifest(config, viteEnv, options, bundle) {
@@ -333,7 +333,7 @@ async function writeAssetsManifestFile(assetsJsonFilePath, config) {
333
333
  await promises_1.default.rm(serverManifestFilePath);
334
334
  }
335
335
  function getManifestFilePath(config, client) {
336
- const outDirs = (0, getOutDirs_js_1.getOutDirs)(config);
336
+ const outDirs = (0, getOutDirs_js_1.getOutDirs)(config, undefined);
337
337
  const outDir = client ? outDirs.outDirClient : outDirs.outDirServer;
338
338
  const env = client ? config.environments.client : config.environments.ssr;
339
339
  (0, utils_js_1.assert)(env);
@@ -60,7 +60,7 @@ function pluginAutoFullBuild() {
60
60
  order: 'post',
61
61
  async handler() {
62
62
  (0, utils_js_1.onSetupBuild)();
63
- (0, handleAssetsManifest_js_1.handleAssetsManifest_assertUsageCssTarget)(config);
63
+ (0, handleAssetsManifest_js_1.handleAssetsManifest_assertUsageCssTarget)(config, this.environment);
64
64
  const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
65
65
  if (forceExit &&
66
66
  // Let vike:build:pluginBuildApp force exit
@@ -55,6 +55,7 @@ function pluginBuildApp() {
55
55
  client: {
56
56
  consumer: 'client',
57
57
  build: {
58
+ outDir: (0, getOutDirs_js_1.resolveOutDir)(config, false),
58
59
  copyPublicDir: true,
59
60
  ssr: false,
60
61
  },
@@ -6,7 +6,7 @@ exports.analyzeClientEntries = analyzeClientEntries;
6
6
  const utils_js_1 = require("../../utils.js");
7
7
  const resolveVikeConfigInternal_js_1 = require("../../shared/resolveVikeConfigInternal.js");
8
8
  const findPageFiles_js_1 = require("../../shared/findPageFiles.js");
9
- const virtualFilePageConfigLazy_js_1 = require("../../../shared/virtualFiles/virtualFilePageConfigLazy.js");
9
+ const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
10
10
  const extractAssetsQuery_js_1 = require("../../../shared/extractAssetsQuery.js");
11
11
  const prependEntriesDir_js_1 = require("../../../shared/prependEntriesDir.js");
12
12
  const getFilePath_js_1 = require("../../shared/getFilePath.js");
@@ -14,9 +14,10 @@ const getConfigValueBuildTime_js_1 = require("../../../../shared/page-configs/ge
14
14
  const isViteServerBuild_js_1 = require("../../shared/isViteServerBuild.js");
15
15
  const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
16
16
  const handleAssetsManifest_js_1 = require("./handleAssetsManifest.js");
17
- const getPageAssets_js_1 = require("../../../runtime/renderPage/getPageAssets.js");
17
+ const retrievePageAssetsProd_js_1 = require("../../../runtime/renderPage/getPageAssets/retrievePageAssetsProd.js");
18
18
  function pluginBuildConfig() {
19
19
  let config;
20
+ let configUnresolved;
20
21
  return [
21
22
  {
22
23
  name: 'vike:build:pluginBuildConfig',
@@ -35,18 +36,26 @@ function pluginBuildConfig() {
35
36
  (0, handleAssetsManifest_js_1.handleAssetsManifest_assertUsageCssCodeSplit)(config);
36
37
  },
37
38
  },
38
- config: {
39
+ configEnvironment: {
39
40
  order: 'post',
40
- async handler(config) {
41
- (0, utils_js_1.onSetupBuild)();
41
+ async handler(envName, configEnv) {
42
+ (0, utils_js_1.assert)(configUnresolved);
42
43
  return {
43
44
  build: {
44
- outDir: (0, getOutDirs_js_1.resolveOutDir)(config),
45
- ...(await (0, handleAssetsManifest_js_1.handleAssetsManifest_getBuildConfig)(config)),
45
+ outDir: (0, getOutDirs_js_1.resolveOutDir_configEnvironment)(configUnresolved, envName, configEnv),
46
46
  },
47
47
  };
48
48
  },
49
49
  },
50
+ config: {
51
+ order: 'post',
52
+ async handler(config) {
53
+ configUnresolved = config;
54
+ (0, utils_js_1.onSetupBuild)();
55
+ const build = await (0, handleAssetsManifest_js_1.handleAssetsManifest_getBuildConfig)(config);
56
+ return { build };
57
+ },
58
+ },
50
59
  buildStart() {
51
60
  (0, utils_js_1.onSetupBuild)();
52
61
  },
@@ -57,9 +66,9 @@ async function getEntries(config) {
57
66
  const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
58
67
  const { _pageConfigs: pageConfigs } = vikeConfig;
59
68
  // TO-DO/next-major-release: remove
60
- const pageFileEntries = await getPageFileEntries(config, (0, getPageAssets_js_1.resolveIncludeAssetsImportedByServer)(vikeConfig.config));
69
+ const pageFileEntries = await getPageFileEntries(config, (0, retrievePageAssetsProd_js_1.resolveIncludeAssetsImportedByServer)(vikeConfig.config));
61
70
  (0, utils_js_1.assertUsage)(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
62
- if ((0, isViteServerBuild_js_1.isViteServerBuild)(config)) {
71
+ if ((0, isViteServerBuild_js_1.isViteServerBuild_withoutEnv)(config)) {
63
72
  const pageEntries = getPageEntries(pageConfigs);
64
73
  const entries = {
65
74
  ...pageFileEntries,
@@ -132,7 +141,7 @@ function analyzeClientEntries(pageConfigs, config) {
132
141
  // Ensure Rollup creates entries for each page file, see https://github.com/vikejs/vike/issues/350
133
142
  // (Otherwise the page files may be missing in the client manifest.json)
134
143
  async function getPageFileEntries(config, includeAssetsImportedByServer) {
135
- const isForClientSide = !(0, isViteServerBuild_js_1.isViteServerBuild)(config);
144
+ const isForClientSide = !(0, isViteServerBuild_js_1.isViteServerBuild_withoutEnv)(config);
136
145
  const fileTypes = isForClientSide ? ['.page', '.page.client'] : ['.page', '.page.server'];
137
146
  if (isForClientSide && includeAssetsImportedByServer) {
138
147
  fileTypes.push('.page.server');
@@ -176,7 +185,7 @@ function getEntryFromClientEntry(clientEntry, config, addExtractAssetsQuery) {
176
185
  }
177
186
  function getEntryFromPageConfig(pageConfig, isForClientSide) {
178
187
  let { pageId } = pageConfig;
179
- const entryTarget = (0, virtualFilePageConfigLazy_js_1.getVirtualFileIdPageConfigLazy)(pageId, isForClientSide);
188
+ const entryTarget = (0, virtualFileId_js_1.generateVirtualFileId)({ type: 'page-entry', pageId, isForClientSide });
180
189
  let entryName = pageId;
181
190
  // Avoid:
182
191
  // ```
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.pluginBuildEntry = pluginBuildEntry;
7
7
  exports.set_macro_ASSETS_MANIFEST = set_macro_ASSETS_MANIFEST;
8
8
  const plugin_1 = require("@brillout/vite-plugin-server-entry/plugin");
9
- const virtualFileEntry_js_1 = require("../../../shared/virtualFiles/virtualFileEntry.js");
9
+ const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
10
10
  const utils_js_1 = require("../../utils.js");
11
11
  const promises_1 = __importDefault(require("node:fs/promises"));
12
12
  const node_path_1 = __importDefault(require("node:path"));
@@ -45,14 +45,14 @@ function getServerProductionEntryCode(config) {
45
45
  // After the old design is removed, let's maybe simplify and move everything into a single virtual module
46
46
  const importerCode = [
47
47
  ` import { setGlobalContext_buildEntry } from '${importPath}';`,
48
- ` import * as virtualFileExports from '${virtualFileEntry_js_1.virtualFileIdEntryServer}';`,
48
+ ` import * as virtualFileExportsGlobalEntry from '${virtualFileId_js_1.virtualFileIdGlobalEntryServer}';`,
49
49
  ` {`,
50
50
  // Because of a Rollup bug, we have to assign ASSETS_MANIFEST to a variable before passing it to setGlobalContext_buildEntry()
51
51
  // - This workaround doesn't work: https://github.com/vikejs/vike/commit/d5f3a4f7aae5a8bc44192e6cbb2bcb9007be188d
52
52
  ` const assetsManifest = ${ASSETS_MANIFEST};`,
53
53
  ` const buildInfo = ${JSON.stringify(buildInfo, null, 2)};`,
54
54
  ' setGlobalContext_buildEntry({',
55
- ` virtualFileExports,`,
55
+ ` virtualFileExportsGlobalEntry,`,
56
56
  ` assetsManifest,`,
57
57
  ` buildInfo,`,
58
58
  ' });',
@@ -102,7 +102,7 @@ function getImportPath(config) {
102
102
  return 'vike/__internal';
103
103
  }
104
104
  else {
105
- const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config);
105
+ const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(config, undefined);
106
106
  const filePathRelative = node_path_1.default.posix.relative(outDirServer, filePathAbsolute);
107
107
  return filePathRelative;
108
108
  }
@@ -20,7 +20,7 @@ function pluginDistPackageJsonFile() {
20
20
  config = config_;
21
21
  },
22
22
  generateBundle(options, bundle) {
23
- if (!(0, isViteServerBuild_js_1.isViteServerBuild)(config))
23
+ if (!(0, isViteServerBuild_js_1.isViteServerBuild)(config, this.environment))
24
24
  return;
25
25
  const isEsm = (0, rollupIsEsm_js_1.rollupIsEsm)(options);
26
26
  const fileName = 'package.json';
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.pluginModuleBanner = pluginModuleBanner;
7
- const magic_string_1 = __importDefault(require("magic-string"));
8
4
  const utils_js_1 = require("../../utils.js");
5
+ const getMagicString_js_1 = require("../../shared/getMagicString.js");
9
6
  const isViteServerBuild_js_1 = require("../../shared/isViteServerBuild.js");
10
7
  // Rollup's banner feature doesn't work with Vite: https://github.com/vitejs/vite/issues/8412
11
8
  // But, anyways, we want to prepend the banner at the beginning of each module, not at the beginning of each file (I believe that's what Rollup's banner feature does).
@@ -21,7 +18,7 @@ function pluginModuleBanner() {
21
18
  transform: {
22
19
  order: 'post',
23
20
  handler(code, id, options) {
24
- if (!(0, isViteServerBuild_js_1.isViteServerBuild_safe)(config, options) &&
21
+ if (!(0, isViteServerBuild_js_1.isViteServerBuild_extraSafe)(config, options, this.environment) &&
25
22
  // Inject module banners if user sets `build.minify` to `false` for inspecting dist/client/
26
23
  config.build.minify) {
27
24
  return;
@@ -32,15 +29,12 @@ function pluginModuleBanner() {
32
29
  if (id.startsWith(config.root))
33
30
  id = id.slice(config.root.length + 1);
34
31
  id = id.replaceAll('*/', '*\\/'); // https://github.com/vikejs/vike/issues/2377
35
- const magicString = new magic_string_1.default(code);
32
+ const { magicString, getMagicStringResult } = (0, getMagicString_js_1.getMagicString)(code, id);
36
33
  // Use legal comment so that esbuild doesn't remove it.
37
34
  // - Terser still removes the comment, but I guess users use terser to minify JavaScript so I guess it's a good thing that comment is removed.
38
35
  // - https://esbuild.github.io/api/#legal-comments
39
36
  magicString.prepend(`/*! ${id} [vike:pluginModuleBanner] */\n`);
40
- return {
41
- code: magicString.toString(),
42
- map: magicString.generateMap({ hires: true, source: id }),
43
- };
37
+ return getMagicStringResult();
44
38
  },
45
39
  },
46
40
  };