vike 0.4.228 → 0.4.229-commit-a19745d

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 (248) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/client/client-routing-runtime/globalContext.js +49 -0
  3. package/dist/cjs/client/server-routing-runtime/globalContext.js +41 -0
  4. package/dist/cjs/client/server-routing-runtime/utils.js +1 -1
  5. package/dist/cjs/client/shared/createGetGlobalContextClient.js +58 -0
  6. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +31 -0
  7. package/dist/cjs/client/shared/utils.js +22 -0
  8. package/dist/cjs/node/plugin/index.js +3 -1
  9. package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
  10. package/dist/cjs/node/plugin/plugins/build/handleAssetsManifest.js +10 -5
  11. package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +1 -1
  12. package/dist/cjs/node/plugin/plugins/build/pluginBuildConfig.js +3 -10
  13. package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +9 -5
  14. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +9 -5
  15. package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +1 -1
  16. package/dist/cjs/node/plugin/plugins/commonConfig.js +14 -3
  17. package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +2 -7
  18. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -1
  19. package/dist/cjs/node/plugin/plugins/envVars.js +17 -19
  20. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -1
  21. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +11 -0
  22. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
  23. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +1 -1
  24. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
  25. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +13 -0
  26. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
  27. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +15 -12
  28. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
  29. package/dist/cjs/node/plugin/plugins/replaceConstants.js +76 -0
  30. package/dist/cjs/node/plugin/shared/applyRegExWithMagicString.js +10 -0
  31. package/dist/cjs/node/plugin/shared/findPageFiles.js +1 -1
  32. package/dist/cjs/node/plugin/shared/getFilePath.js +2 -2
  33. package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +8 -20
  34. package/dist/cjs/node/plugin/utils.js +1 -0
  35. package/dist/cjs/node/prerender/runPrerender.js +44 -41
  36. package/dist/cjs/node/prerender/utils.js +1 -1
  37. package/dist/cjs/node/runtime/globalContext.js +102 -125
  38. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  39. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  40. package/dist/cjs/node/runtime/html/propKeys.js +47 -0
  41. package/dist/cjs/node/runtime/html/renderHtml.js +13 -3
  42. package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +37 -67
  43. package/dist/cjs/node/runtime/index-deprecated.js +9 -38
  44. package/dist/cjs/node/runtime/index.js +56 -2
  45. package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -1
  46. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +8 -3
  47. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +73 -0
  48. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
  49. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +2 -2
  50. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
  51. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
  52. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  53. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +3 -3
  54. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  55. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  56. package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -1
  57. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
  58. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -68
  59. package/dist/cjs/node/runtime/renderPage.js +102 -81
  60. package/dist/cjs/node/runtime/universal-middleware.js +7 -1
  61. package/dist/cjs/node/runtime/utils.js +3 -2
  62. package/dist/cjs/shared/assertPageContextProvidedByUser.js +1 -1
  63. package/dist/cjs/shared/createGlobalContextShared.js +54 -0
  64. package/dist/cjs/shared/createPageContextShared.js +17 -0
  65. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  66. package/dist/cjs/shared/hooks/executeHookGeneric.js +18 -0
  67. package/dist/cjs/shared/hooks/getHook.js +45 -27
  68. package/dist/cjs/shared/htmlElementIds.js +5 -0
  69. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +3 -7
  70. package/dist/cjs/shared/route/executeGuardHook.js +1 -1
  71. package/dist/cjs/shared/route/loadPageRoutes.js +2 -1
  72. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  73. package/dist/cjs/utils/catchInfiniteLoop.js +3 -3
  74. package/dist/cjs/utils/debug.js +1 -0
  75. package/dist/cjs/utils/getPublicProxy.js +27 -0
  76. package/dist/cjs/utils/isImportPath.js +21 -0
  77. package/dist/cjs/utils/isScriptFile.js +24 -21
  78. package/dist/cjs/utils/objectAssign.js +6 -10
  79. package/dist/cjs/utils/objectReplace.js +4 -4
  80. package/dist/cjs/utils/{isNpmPackage.js → parseNpmPackage.js} +24 -23
  81. package/dist/cjs/utils/path.js +12 -2
  82. package/dist/cjs/utils/requireResolve.js +148 -53
  83. package/dist/esm/__internal/index.js +3 -3
  84. package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +29 -10
  85. package/dist/esm/client/client-routing-runtime/createPageContext.js +23 -22
  86. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +5 -4
  87. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +20 -0
  88. package/dist/esm/client/client-routing-runtime/globalContext.js +13 -0
  89. package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +2 -2
  90. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  91. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +8 -7
  92. package/dist/esm/client/client-routing-runtime/utils.d.ts +0 -1
  93. package/dist/esm/client/client-routing-runtime/utils.js +0 -1
  94. package/dist/esm/client/index.d.ts +1 -0
  95. package/dist/esm/client/index.js +4 -0
  96. package/dist/esm/client/node.js +1 -3
  97. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +36 -0
  98. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +47 -0
  99. package/dist/esm/client/server-routing-runtime/entry.js +2 -2
  100. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +17 -0
  101. package/dist/esm/client/server-routing-runtime/globalContext.js +5 -0
  102. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -1
  103. package/dist/esm/client/server-routing-runtime/utils.js +1 -1
  104. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +23 -0
  105. package/dist/esm/client/shared/createGetGlobalContextClient.js +58 -0
  106. package/dist/esm/client/shared/executeOnRenderClientHook.js +5 -4
  107. package/dist/esm/client/shared/{getPageContextSerializedInHtml.d.ts → getJsonSerializedInHtml.d.ts} +2 -0
  108. package/dist/esm/client/shared/getJsonSerializedInHtml.js +29 -0
  109. package/dist/esm/client/shared/removeFoucBuster.js +1 -0
  110. package/dist/esm/client/shared/utils.d.ts +4 -0
  111. package/dist/esm/client/shared/utils.js +4 -0
  112. package/dist/esm/node/plugin/index.js +3 -1
  113. package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
  114. package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.js +11 -6
  115. package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +2 -2
  116. package/dist/esm/node/plugin/plugins/build/pluginBuildConfig.js +4 -11
  117. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +1 -1
  118. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +10 -6
  119. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +9 -5
  120. package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +2 -2
  121. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +2 -0
  122. package/dist/esm/node/plugin/plugins/commonConfig.js +15 -4
  123. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +3 -8
  124. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +7 -2
  125. package/dist/esm/node/plugin/plugins/envVars.js +18 -20
  126. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +4 -2
  127. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +11 -0
  128. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -1
  129. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
  130. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +2 -2
  131. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +1 -1
  132. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.d.ts → pointerImports.d.ts} +2 -0
  133. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +14 -1
  134. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +1 -1
  135. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
  136. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +15 -12
  137. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
  138. package/dist/esm/node/plugin/plugins/replaceConstants.d.ts +3 -0
  139. package/dist/esm/node/plugin/plugins/replaceConstants.js +71 -0
  140. package/dist/esm/node/plugin/shared/applyRegExWithMagicString.d.ts +3 -0
  141. package/dist/esm/node/plugin/shared/applyRegExWithMagicString.js +8 -0
  142. package/dist/esm/node/plugin/shared/findPageFiles.js +2 -2
  143. package/dist/esm/node/plugin/shared/getFilePath.js +3 -3
  144. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.d.ts +1 -1
  145. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +9 -21
  146. package/dist/esm/node/plugin/utils.d.ts +1 -0
  147. package/dist/esm/node/plugin/utils.js +1 -0
  148. package/dist/esm/node/prerender/runPrerender.d.ts +314 -5
  149. package/dist/esm/node/prerender/runPrerender.js +48 -45
  150. package/dist/esm/node/prerender/utils.d.ts +1 -1
  151. package/dist/esm/node/prerender/utils.js +1 -1
  152. package/dist/esm/node/runtime/globalContext.d.ts +425 -47
  153. package/dist/esm/node/runtime/globalContext.js +103 -126
  154. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  155. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
  156. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  157. package/dist/esm/node/runtime/html/injectAssets.d.ts +3 -3
  158. package/dist/esm/node/runtime/html/propKeys.d.ts +8 -0
  159. package/dist/esm/node/runtime/html/propKeys.js +45 -0
  160. package/dist/esm/node/runtime/html/renderHtml.js +13 -3
  161. package/dist/esm/node/runtime/html/{serializePageContextClientSide.d.ts → serializeContext.d.ts} +7 -6
  162. package/dist/esm/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +36 -67
  163. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -16
  164. package/dist/esm/node/runtime/index-deprecated.js +9 -36
  165. package/dist/esm/node/runtime/index.d.ts +23 -1
  166. package/dist/esm/node/runtime/index.js +38 -3
  167. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
  168. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  169. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +5 -4
  170. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +8 -3
  171. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +155 -0
  172. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +71 -0
  173. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +3 -3
  174. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
  175. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +3 -3
  176. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +2 -2
  177. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
  178. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  179. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
  180. package/dist/esm/node/runtime/renderPage/getPageAssets.js +3 -3
  181. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  182. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  183. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -2
  184. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  185. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  186. package/dist/esm/node/runtime/renderPage/log404/index.js +1 -1
  187. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -3
  188. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
  189. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +225 -179
  190. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +4 -69
  191. package/dist/esm/node/runtime/renderPage.d.ts +146 -7
  192. package/dist/esm/node/runtime/renderPage.js +105 -84
  193. package/dist/esm/node/runtime/universal-middleware.js +7 -1
  194. package/dist/esm/node/runtime/utils.d.ts +3 -2
  195. package/dist/esm/node/runtime/utils.js +3 -2
  196. package/dist/esm/shared/VikeNamespace.d.ts +35 -13
  197. package/dist/esm/shared/assertPageContextProvidedByUser.js +1 -1
  198. package/dist/esm/shared/createGlobalContextShared.d.ts +39 -0
  199. package/dist/esm/shared/createGlobalContextShared.js +51 -0
  200. package/dist/esm/shared/createPageContextShared.d.ts +9 -0
  201. package/dist/esm/shared/createPageContextShared.js +15 -0
  202. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  203. package/dist/esm/shared/hooks/executeHookGeneric.d.ts +8 -0
  204. package/dist/esm/shared/hooks/executeHookGeneric.js +16 -0
  205. package/dist/esm/shared/hooks/getHook.d.ts +5 -3
  206. package/dist/esm/shared/hooks/getHook.js +47 -29
  207. package/dist/esm/shared/htmlElementIds.d.ts +2 -0
  208. package/dist/esm/shared/htmlElementIds.js +2 -0
  209. package/dist/esm/shared/page-configs/Config.d.ts +12 -2
  210. package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +1 -1
  211. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +3 -7
  212. package/dist/esm/shared/route/executeGuardHook.js +2 -2
  213. package/dist/esm/shared/route/loadPageRoutes.js +2 -1
  214. package/dist/esm/shared/types.d.ts +64 -32
  215. package/dist/esm/types/index.d.ts +1 -5
  216. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  217. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  218. package/dist/esm/utils/catchInfiniteLoop.js +4 -4
  219. package/dist/esm/utils/debug.d.ts +1 -1
  220. package/dist/esm/utils/debug.js +1 -0
  221. package/dist/esm/utils/getGlobalObject.d.ts +1 -1
  222. package/dist/esm/utils/getPublicProxy.d.ts +2 -0
  223. package/dist/esm/utils/getPublicProxy.js +25 -0
  224. package/dist/esm/utils/isImportPath.d.ts +4 -0
  225. package/dist/esm/utils/isImportPath.js +19 -0
  226. package/dist/esm/utils/isScriptFile.d.ts +5 -5
  227. package/dist/esm/utils/isScriptFile.js +23 -20
  228. package/dist/esm/utils/objectAssign.d.ts +1 -1
  229. package/dist/esm/utils/objectAssign.js +6 -10
  230. package/dist/esm/utils/objectReplace.d.ts +1 -1
  231. package/dist/esm/utils/objectReplace.js +4 -4
  232. package/dist/esm/utils/parseNpmPackage.d.ts +19 -0
  233. package/dist/esm/utils/{isNpmPackage.js → parseNpmPackage.js} +24 -24
  234. package/dist/esm/utils/path.d.ts +1 -1
  235. package/dist/esm/utils/path.js +12 -2
  236. package/dist/esm/utils/requireResolve.d.ts +20 -7
  237. package/dist/esm/utils/requireResolve.js +148 -53
  238. package/package.json +14 -13
  239. package/dist/cjs/node/runtime/index-common.js +0 -27
  240. package/dist/cjs/utils/makePublicCopy.js +0 -32
  241. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +0 -19
  242. package/dist/esm/client/server-routing-runtime/getPageContext.js +0 -44
  243. package/dist/esm/client/shared/getPageContextSerializedInHtml.js +0 -20
  244. package/dist/esm/node/runtime/index-common.d.ts +0 -8
  245. package/dist/esm/node/runtime/index-common.js +0 -10
  246. package/dist/esm/utils/isNpmPackage.d.ts +0 -17
  247. package/dist/esm/utils/makePublicCopy.d.ts +0 -3
  248. package/dist/esm/utils/makePublicCopy.js +0 -30
@@ -17,10 +17,10 @@ const assertSetup_js_1 = require("../utils/assertSetup.js");
17
17
  async function getPagesAndRoutes() {
18
18
  (0, assertSetup_js_1.setNodeEnvProduction)();
19
19
  await (0, globalContext_js_2.initGlobalContext_getPagesAndRoutes)();
20
- const globalContext = await (0, globalContext_js_2.getGlobalContextInternal)();
20
+ const { globalContext } = await (0, globalContext_js_2.getGlobalContextServerInternal)();
21
21
  const {
22
22
  //
23
- pageRoutes, pageFilesAll, pageConfigs, allPageIds } = globalContext;
23
+ _pageRoutes: pageRoutes, _pageFilesAll: pageFilesAll, _pageConfigs: pageConfigs, _allPageIds: allPageIds } = globalContext;
24
24
  return {
25
25
  pageRoutes,
26
26
  pageFilesAll,
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getGlobalContextClientInternal = void 0;
37
+ const createGetGlobalContextClient_js_1 = require("../shared/createGetGlobalContextClient.js");
38
+ const loadPageRoutes_js_1 = require("../../shared/route/loadPageRoutes.js");
39
+ // @ts-ignore
40
+ const virtualFileExports = __importStar(require("virtual:vike:importUserCode:client:client-routing"));
41
+ const getGlobalContextClientInternal = (0, createGetGlobalContextClient_js_1.createGetGlobalContextClient)(virtualFileExports, true, addGlobalContext);
42
+ exports.getGlobalContextClientInternal = getGlobalContextClientInternal;
43
+ async function addGlobalContext(globalContext) {
44
+ const { pageRoutes, onBeforeRouteHook } = await (0, loadPageRoutes_js_1.loadPageRoutes)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
45
+ return {
46
+ _pageRoutes: pageRoutes,
47
+ _onBeforeRouteHook: onBeforeRouteHook
48
+ };
49
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getGlobalContextClientInternal = void 0;
37
+ const createGetGlobalContextClient_js_1 = require("../shared/createGetGlobalContextClient.js");
38
+ // @ts-ignore
39
+ const virtualFileExports = __importStar(require("virtual:vike:importUserCode:client:server-routing"));
40
+ const getGlobalContextClientInternal = (0, createGetGlobalContextClient_js_1.createGetGlobalContextClient)(virtualFileExports, false);
41
+ exports.getGlobalContextClientInternal = getGlobalContextClientInternal;
@@ -20,7 +20,6 @@ const onLoad_js_1 = require("./onLoad.js");
20
20
  (0, onLoad_js_1.onLoad)();
21
21
  __exportStar(require("../../utils/assert.js"), exports);
22
22
  __exportStar(require("../../utils/assertSingleInstance.js"), exports);
23
- __exportStar(require("../../shared/hooks/executeHook.js"), exports);
24
23
  __exportStar(require("../../utils/checkType.js"), exports); // Only used by Server Routing (not needed for Client Routing)
25
24
  __exportStar(require("../../utils/getGlobalObject.js"), exports);
26
25
  __exportStar(require("../../utils/hasProp.js"), exports);
@@ -31,3 +30,4 @@ __exportStar(require("../../utils/parseUrl.js"), exports);
31
30
  __exportStar(require("../../utils/slice.js"), exports);
32
31
  __exportStar(require("../../utils/unique.js"), exports); // Only used by Server Routing (not needed for Client Routing)
33
32
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
33
+ __exportStar(require("../../utils/augmentType.js"), exports);
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGlobalContext = getGlobalContext;
4
+ exports.getGlobalContextSync = getGlobalContextSync;
5
+ exports.createGetGlobalContextClient = createGetGlobalContextClient;
6
+ const createGlobalContextShared_js_1 = require("../../shared/createGlobalContextShared.js");
7
+ const getJsonSerializedInHtml_js_1 = require("./getJsonSerializedInHtml.js");
8
+ const utils_js_1 = require("./utils.js");
9
+ const globalObject = (0, utils_js_1.getGlobalObject)('createGetGlobalContextClient.ts', (() => {
10
+ const { promise: globalContextPromise, resolve: globalContextPromiseResolve } = (0, utils_js_1.genPromise)();
11
+ return {
12
+ globalContextPromise,
13
+ globalContextPromiseResolve
14
+ };
15
+ })());
16
+ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGlobalContext) {
17
+ (0, utils_js_1.assert)(globalObject.isClientRouting === undefined || globalObject.isClientRouting === isClientRouting);
18
+ globalObject.isClientRouting = isClientRouting;
19
+ // Eagerly call onCreateGlobalContext() hook
20
+ getGlobalContext();
21
+ return getGlobalContext;
22
+ async function getGlobalContext() {
23
+ // Cache
24
+ if (globalObject.globalContext &&
25
+ // Don't break HMR
26
+ globalObject.globalContext._virtualFileExports !== virtualFileExports) {
27
+ return globalObject.globalContext;
28
+ }
29
+ // Create
30
+ const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExports, globalObject, async (globalContext) => {
31
+ const globalContextAddendum = {
32
+ /**
33
+ * Whether the environment is client-side or server-side / pre-rendering.
34
+ *
35
+ * We recommend using `import.meta.env.SSR` instead, see https://vike.dev/globalContext
36
+ */
37
+ isClientSide: true
38
+ };
39
+ (0, utils_js_1.objectAssign)(globalContextAddendum, (0, getJsonSerializedInHtml_js_1.getGlobalContextSerializedInHtml)());
40
+ (0, utils_js_1.objectAssign)(globalContextAddendum, await addGlobalContext?.(globalContext));
41
+ return globalContextAddendum;
42
+ });
43
+ (0, utils_js_1.assert)(globalObject.globalContext);
44
+ globalObject.globalContextPromiseResolve(globalObject.globalContext);
45
+ // Return
46
+ return globalContext;
47
+ }
48
+ }
49
+ // The type is never used: it's the type of the server-side getGlobalContext() that is used.
50
+ async function getGlobalContext() {
51
+ const globalContext = await globalObject.globalContextPromise;
52
+ return globalContext;
53
+ }
54
+ function getGlobalContextSync() {
55
+ const { globalContext } = globalObject;
56
+ (0, utils_js_1.assertUsage)(globalContext, createGlobalContextShared_js_1.getGlobalContextSyncErrMsg);
57
+ return globalContext;
58
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageContextSerializedInHtml = getPageContextSerializedInHtml;
4
+ exports.getGlobalContextSerializedInHtml = getGlobalContextSerializedInHtml;
5
+ const parse_1 = require("@brillout/json-serializer/parse");
6
+ const utils_js_1 = require("./utils.js");
7
+ const htmlElementIds_js_1 = require("../../shared/htmlElementIds.js");
8
+ // elements should exist because:
9
+ // 1. <script id="vike_pageContext" type="application/json"> appears before the <script> that loads Vike's client runtime (which includes this file)
10
+ // 2. <script id="vike_pageContext" type="application/json"> is neither async nor defer
11
+ // See https://github.com/vikejs/vike/pull/1271
12
+ function getPageContextSerializedInHtml() {
13
+ const pageContextSerializedInHtml = findAndParseJson(htmlElementIds_js_1.htmlElementId_pageContext);
14
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextSerializedInHtml, 'pageId', 'string'));
15
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextSerializedInHtml, 'routeParams', 'string{}'));
16
+ return pageContextSerializedInHtml;
17
+ }
18
+ function getGlobalContextSerializedInHtml() {
19
+ const globalContextSerializedInHtml = findAndParseJson(htmlElementIds_js_1.htmlElementId_globalContext);
20
+ return globalContextSerializedInHtml;
21
+ }
22
+ function findAndParseJson(id) {
23
+ const elem = document.getElementById(id);
24
+ (0, utils_js_1.assertUsage)(elem,
25
+ // It seems like it can be missing when HTML is malformed: https://github.com/vikejs/vike/issues/913
26
+ `Couldn't find #${id} (which Vike automatically injects in the HTML): make sure it exists (i.e. don't remove it and make sure your HTML isn't malformed)`);
27
+ const jsonStr = elem.textContent;
28
+ (0, utils_js_1.assert)(jsonStr);
29
+ const json = (0, parse_1.parse)(jsonStr);
30
+ return json;
31
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../utils/assert.js"), exports);
18
+ __exportStar(require("../../utils/parseUrl.js"), exports);
19
+ __exportStar(require("../../utils/getGlobalObject.js"), exports);
20
+ __exportStar(require("../../utils/objectAssign.js"), exports);
21
+ __exportStar(require("../../utils/hasProp.js"), exports);
22
+ __exportStar(require("../../utils/genPromise.js"), exports);
@@ -28,6 +28,7 @@ const getPageAssets_js_1 = require("../runtime/renderPage/getPageAssets.js");
28
28
  const resolveClientEntriesDev_js_1 = require("./shared/resolveClientEntriesDev.js");
29
29
  const workaroundCssModuleHmr_js_1 = require("./plugins/workaroundCssModuleHmr.js");
30
30
  const workaroundVite6HmrRegression_js_1 = require("./plugins/workaroundVite6HmrRegression.js");
31
+ const replaceConstants_js_1 = require("./plugins/replaceConstants.js");
31
32
  // We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
32
33
  (0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
33
34
  // Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
@@ -45,7 +46,8 @@ function plugin(vikeVitePluginOptions = {}) {
45
46
  (0, envVars_js_1.envVarsPlugin)(),
46
47
  (0, fileEnv_js_1.fileEnv)(),
47
48
  (0, workaroundCssModuleHmr_js_1.workaroundCssModuleHmr)(),
48
- (0, workaroundVite6HmrRegression_js_1.workaroundVite6HmrRegression)()
49
+ (0, workaroundVite6HmrRegression_js_1.workaroundVite6HmrRegression)(),
50
+ (0, replaceConstants_js_1.replaceConstants)()
49
51
  ];
50
52
  Object.assign(plugins, { __vikeVitePluginOptions: vikeVitePluginOptions });
51
53
  return plugins;
@@ -14,7 +14,7 @@ function baseUrls() {
14
14
  const isDev = config._isDev;
15
15
  (0, utils_js_1.assert)(typeof isDev === 'boolean');
16
16
  const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
17
- const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
17
+ const vike = (0, commonConfig_js_1.getVikeConfigInternal)(config);
18
18
  basesResolved = (0, resolveBase_js_1.resolveBase)(baseViteOriginal, vike.config.baseServer ?? null, vike.config.baseAssets ?? null);
19
19
  // We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
20
20
  process.env.BASE_SERVER = basesResolved.baseServer;
@@ -286,7 +286,7 @@ async function writeManifestFile(manifest, manifestFilePath) {
286
286
  await promises_1.default.writeFile(manifestFilePath, manifestFileContent, 'utf-8');
287
287
  }
288
288
  function handleAssetsManifest_getBuildConfig(config) {
289
- const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
289
+ const vike = (0, commonConfig_js_1.getVikeConfigInternal)(config);
290
290
  const isFixEnabled = handleAssetsManifest_isFixEnabled(config);
291
291
  return {
292
292
  // https://github.com/vikejs/vike/issues/1339
@@ -301,16 +301,21 @@ function handleAssetsManifest_getBuildConfig(config) {
301
301
  };
302
302
  }
303
303
  async function handleAssetsManifest(config, viteEnv, options, bundle) {
304
- if ((0, isViteServerBuild_js_1.isViteServerBuild_onlySsrEnv)(config, viteEnv)) {
304
+ const isSsREnv = (0, isViteServerBuild_js_1.isViteServerBuild_onlySsrEnv)(config, viteEnv);
305
+ if (isSsREnv) {
305
306
  (0, utils_js_1.assert)(!assetsJsonFilePath);
306
307
  const outDirs = (0, getOutDirs_js_1.getOutDirs)(config, viteEnv);
307
308
  assetsJsonFilePath = path_1.default.posix.join(outDirs.outDirRoot, 'assets.json');
308
309
  await writeAssetsManifestFile(outDirs, assetsJsonFilePath, config);
309
310
  }
310
311
  if ((0, isViteServerBuild_js_1.isViteServerBuild)(config, viteEnv)) {
311
- (0, utils_js_1.assert)(assetsJsonFilePath);
312
- // Replace __VITE_ASSETS_MANIFEST__ in all server-side bundles
313
- await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(options, bundle, assetsJsonFilePath);
312
+ // Replace __VITE_ASSETS_MANIFEST__ in server builds
313
+ // - Always replace it in dist/server/
314
+ // - Also in some other server builds such as dist/vercel/ from vike-vercel
315
+ // - Don't replace it in dist/rsc/ from vike-react-rsc since __VITE_ASSETS_MANIFEST__ doesn't exist there
316
+ const noop = await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(options, bundle, assetsJsonFilePath);
317
+ if (isSsREnv)
318
+ (0, utils_js_1.assert)(!noop); // dist/server should always contain __VITE_ASSETS_MANIFEST__
314
319
  }
315
320
  }
316
321
  async function writeAssetsManifestFile(outDirs, assetsJsonFilePath, config) {
@@ -12,7 +12,7 @@ function pluginBuildApp() {
12
12
  name: 'vike:build:pluginBuildApp',
13
13
  apply: 'build',
14
14
  config(config) {
15
- const vike = (0, commonConfig_js_1.getVikeConfigPublic)(config);
15
+ const vike = (0, commonConfig_js_1.getVikeConfigInternal)(config);
16
16
  if (!vike.config.vite6BuilderApp)
17
17
  return;
18
18
  return {
@@ -15,8 +15,6 @@ const getConfigValueBuildTime_js_1 = require("../../../../shared/page-configs/ge
15
15
  const isViteServerBuild_js_1 = require("../../shared/isViteServerBuild.js");
16
16
  const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
17
17
  const handleAssetsManifest_js_1 = require("./handleAssetsManifest.js");
18
- // @ts-ignore `file:///${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
19
- const importMetaUrl = `file:///${__filename.split('\\').join('/')}`;
20
18
  const manifestTempFile = '_temp_manifest.json';
21
19
  exports.manifestTempFile = manifestTempFile;
22
20
  function pluginBuildConfig() {
@@ -84,8 +82,8 @@ async function getEntries(config) {
84
82
  ...clientEntries,
85
83
  ...pageFileEntries
86
84
  };
87
- const clientRoutingEntry = resolve(`dist/esm/client/client-routing-runtime/entry.js`);
88
- const serverRoutingEntry = resolve(`dist/esm/client/server-routing-runtime/entry.js`);
85
+ const clientRoutingEntry = (0, utils_js_1.requireResolveVikeDistFile)('dist/esm/client/client-routing-runtime/entry.js');
86
+ const serverRoutingEntry = (0, utils_js_1.requireResolveVikeDistFile)('dist/esm/client/server-routing-runtime/entry.js');
89
87
  if (hasClientRouting) {
90
88
  entries['entries/entry-client-routing'] = clientRoutingEntry;
91
89
  }
@@ -159,7 +157,7 @@ async function getPageFileEntries(config, includeAssetsImportedByServer) {
159
157
  }
160
158
  function getEntryFromClientEntry(clientEntry, config, addExtractAssetsQuery) {
161
159
  if (!clientEntry.startsWith('/')) {
162
- (0, utils_js_1.assertIsNpmPackageImport)(clientEntry);
160
+ (0, utils_js_1.assertIsImportPathNpmPackage)(clientEntry);
163
161
  const entryTarget = clientEntry;
164
162
  const entryName = (0, prependEntriesDir_js_1.prependEntriesDir)(clientEntry);
165
163
  return { entryName, entryTarget };
@@ -195,11 +193,6 @@ function getEntryFromPageConfig(pageConfig, isForClientSide) {
195
193
  (0, utils_js_1.assert)(!entryName.endsWith('/'));
196
194
  return { entryName, entryTarget };
197
195
  }
198
- function resolve(filePath) {
199
- (0, utils_js_1.assert)(filePath.startsWith('dist/'));
200
- // [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/build/
201
- return (0, utils_js_1.requireResolveNonUserFile)(`../../../../../../${filePath}`, importMetaUrl);
202
- }
203
196
  function addLogHook() {
204
197
  const tty = process.stdout.isTTY && !process.env.CI; // Equals https://github.com/vitejs/vite/blob/193d55c7b9cbfec5b79ebfca276d4a721e7de14d/packages/vite/src/node/plugins/reporter.ts#L27
205
198
  if (!tty)
@@ -10,8 +10,6 @@ const virtualFileImportUserCode_js_1 = require("../../../shared/virtual-files/vi
10
10
  const utils_js_1 = require("../../utils.js");
11
11
  const promises_1 = __importDefault(require("fs/promises"));
12
12
  const path_1 = __importDefault(require("path"));
13
- // @ts-ignore `file:///${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
14
- const importMetaUrl = `file:///${__filename.split('\\').join('/')}`;
15
13
  const extractExportNamesPlugin_js_1 = require("../extractExportNamesPlugin.js");
16
14
  const globalContext_js_1 = require("../../../runtime/globalContext.js");
17
15
  const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
@@ -68,6 +66,12 @@ async function set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath) {
68
66
  const { dir } = options;
69
67
  (0, utils_js_1.assert)(dir);
70
68
  const chunkPath = find_ASSETS_MANIFEST(bundle);
69
+ // Some server builds don't contain __VITE_ASSETS_MANIFEST__ such as dist/rsc/ from vike-react-rsc
70
+ if (!chunkPath) {
71
+ const noop = true; // no operation
72
+ return noop;
73
+ }
74
+ (0, utils_js_1.assert)(assetsJsonFilePath);
71
75
  const chunkFilePath = path_1.default.join(dir, chunkPath);
72
76
  const [assetsJsonString, chunkFileContent] = await Promise.all([
73
77
  await promises_1.default.readFile(assetsJsonFilePath, 'utf8'),
@@ -76,6 +80,8 @@ async function set_macro_ASSETS_MANIFEST(options, bundle, assetsJsonFilePath) {
76
80
  const serverEntryFileContentPatched = chunkFileContent.replace(ASSETS_MANIFEST, assetsJsonString);
77
81
  (0, utils_js_1.assert)(serverEntryFileContentPatched !== chunkFileContent);
78
82
  await promises_1.default.writeFile(chunkFilePath, serverEntryFileContentPatched);
83
+ const noop = false;
84
+ return noop;
79
85
  }
80
86
  function find_ASSETS_MANIFEST(bundle) {
81
87
  let chunkPath;
@@ -86,13 +92,11 @@ function find_ASSETS_MANIFEST(bundle) {
86
92
  chunkPath = filePath;
87
93
  }
88
94
  }
89
- (0, utils_js_1.assert)(chunkPath);
90
95
  return chunkPath;
91
96
  }
92
97
  function getImportPath(config) {
93
98
  // We resolve filePathAbsolute even if we don't use it: we use require.resolve() as an assertion that the relative path is correct
94
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/plugins/pluginBuildEntry/index.js
95
- const filePathAbsolute = (0, utils_js_1.requireResolveNonUserFile)(`../../../../../../dist/esm/__internal/index.js`, importMetaUrl);
99
+ const filePathAbsolute = (0, utils_js_1.requireResolveVikeDistFile)('dist/esm/__internal/index.js');
96
100
  if (
97
101
  // Let's implement a new config if a user needs the import to be a relative path instead of 'vike/__internal' (AFAIK a relative path is needed only if a framework has npm package 'vike' as direct dependency instead of a peer dependency and if the user of that framework uses pnpm)
98
102
  true) {
@@ -21,21 +21,25 @@ function pluginModuleBanner() {
21
21
  transform: {
22
22
  order: 'post',
23
23
  handler(code, id, options) {
24
- if (!(0, isViteServerBuild_js_1.isViteServerBuild_safe)(config, options))
24
+ if (!(0, isViteServerBuild_js_1.isViteServerBuild_safe)(config, options) &&
25
+ // Inject module banners if user sets `build.minify` to `false` for inspecting dist/client/
26
+ config.build.minify) {
25
27
  return;
28
+ }
26
29
  if (id.startsWith('\0'))
27
30
  id = id;
28
31
  id = (0, virtual_files_js_1.removeVirtualIdTag)(id);
29
32
  if (id.startsWith(config.root))
30
33
  id = id.slice(config.root.length + 1);
31
- const s = new magic_string_1.default(code);
34
+ id = id.replaceAll('*/', '*\\/'); // https://github.com/vikejs/vike/issues/2377
35
+ const magicString = new magic_string_1.default(code);
32
36
  // Use legal comment so that esbuild doesn't remove it.
33
37
  // - 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.
34
38
  // - https://esbuild.github.io/api/#legal-comments
35
- s.prepend(`/*! ${id} [vike:pluginModuleBanner] */\n`);
39
+ magicString.prepend(`/*! ${id} [vike:pluginModuleBanner] */\n`);
36
40
  return {
37
- code: s.toString(),
38
- map: s.generateMap({ hires: true, source: id })
41
+ code: magicString.toString(),
42
+ map: magicString.generateMap({ hires: true, source: id })
39
43
  };
40
44
  }
41
45
  }
@@ -64,7 +64,7 @@ function assertResolveAlias(config) {
64
64
  // - determineOptimizeDeps()
65
65
  // - extractAssets
66
66
  // - in general: using un-distinguishable path aliases is asking for trouble
67
- if (!(0, utils_js_1.isValidPathAlias)(find)) {
67
+ if (!(0, utils_js_1.isPathAliasRecommended)(find)) {
68
68
  if (find.startsWith('@')) {
69
69
  const msg = `${errPrefix} defines an invalid resolve.alias ${deprecation}: a path alias cannot start with ${picocolors_1.default.cyan('@')}, ${errSuffix1}`;
70
70
  (0, utils_js_1.assertWarning)(false, msg, { onlyOnce: true });
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.commonConfig = commonConfig;
7
7
  exports.getVikeConfigPublic = getVikeConfigPublic;
8
+ exports.getVikeConfigInternal = getVikeConfigInternal;
8
9
  const utils_js_1 = require("../utils.js");
9
10
  const pluginBuildConfig_js_1 = require("./build/pluginBuildConfig.js");
10
11
  const require_shim_1 = require("@brillout/require-shim");
@@ -90,7 +91,7 @@ function commonConfig(vikeVitePluginOptions) {
90
91
  order: 'post',
91
92
  handler(configFromUser) {
92
93
  let configFromVike = { server: {}, preview: {} };
93
- const vike = getVikeConfigPublic(configFromUser);
94
+ const vike = getVikeConfigInternal(configFromUser);
94
95
  if (vike.config.port !== undefined) {
95
96
  // https://vike.dev/port
96
97
  setDefault('port', vike.config.port, configFromUser, configFromVike);
@@ -158,11 +159,16 @@ function assertVikeCliOrApi(config) {
158
159
  if ((0, context_js_1.isVikeCliOrApi)())
159
160
  return;
160
161
  if ((0, isViteCliCall_js_1.isViteCliCall)()) {
162
+ (0, utils_js_1.assert)(!(0, utils_js_1.isVitest)());
161
163
  (0, utils_js_1.assertWarning)(false, `Vite's CLI is deprecated ${picocolors_1.default.underline('https://vike.dev/migration/cli')}`, {
162
164
  onlyOnce: true
163
165
  });
164
166
  return;
165
167
  }
168
+ if ((0, utils_js_1.isVitest)()) {
169
+ (0, utils_js_1.assertWarning)(false, `Unexpected Vitest setup: you seem to be using Vitest together with Vike's Vite plugin but without using Vike's JavaScript API which is unexpected, see ${picocolors_1.default.underline('https://vike.dev/vitest')}`, { onlyOnce: true });
170
+ return;
171
+ }
166
172
  if (config.server.middlewareMode) {
167
173
  (0, utils_js_1.assertWarning)(false, `${picocolors_1.default.cyan('vite.createServer()')} is deprecated ${picocolors_1.default.underline('https://vike.dev/migration/cli#api')}`, {
168
174
  onlyOnce: true
@@ -196,7 +202,7 @@ function temp_supportOldInterface(config) {
196
202
  }
197
203
  // TODO/soon rename:
198
204
  // - `getVikeConfig()` => `resolveVikeConfig()` ?
199
- // - `getVikeConfigPublic()` => `getVikeConfig()`
205
+ // - `getVikeConfigInternal()` => `getVikeConfig()`
200
206
  // - `VikeConfigPublic` => `VikeConfig` ?
201
207
  // - `VikeConfigObject` => `VikeConfigInternal` ?
202
208
  /**
@@ -204,11 +210,16 @@ function temp_supportOldInterface(config) {
204
210
  *
205
211
  * https://vike.dev/getVikeConfig
206
212
  */
207
- function getVikeConfigPublic(config) {
213
+ function getVikeConfigInternal(config) {
208
214
  const vikeConfig = config._vike;
209
215
  (0, utils_js_1.assert)(vikeConfig);
210
216
  return vikeConfig;
211
217
  }
218
+ function getVikeConfigPublic(config) {
219
+ const vikeConfig = config._vike;
220
+ (0, utils_js_1.assertUsage)(vikeConfig, "getVikeConfig() can only be used when Vite is running with Vike's Vite plugin");
221
+ return vikeConfig;
222
+ }
212
223
  // Only emit dist/server/entry.mjs if necessary
213
224
  function emitServerEntryOnlyIfNeeded(config) {
214
225
  if (config.vitePluginServerEntry?.inject &&
@@ -23,11 +23,6 @@ async function determineFsAllowList(config) {
23
23
  // We add it again just to be sure.
24
24
  fsAllow.push((0, vite_1.searchForWorkspaceRoot)(process.cwd()));
25
25
  // Add node_modules/vike/
26
- {
27
- // [RELATIVE_PATH_FROM_DIST] Current directory: node_modules/vike/dist/esm/node/plugin/plugins/config/
28
- const vikeRoot = node_path_1.default.posix.join(__dirname_, '../../../../../../');
29
- // Assert that `vikeRoot` is indeed pointing to `node_modules/vike/`
30
- (0, utils_js_1.requireResolveNonUserFile)(`${vikeRoot}/dist/esm/node/plugin/plugins/devConfig/index.js`, importMetaUrl);
31
- fsAllow.push(vikeRoot);
32
- }
26
+ const vikeNodeModulesRoot = (0, utils_js_1.getVikeNodeModulesRoot)();
27
+ fsAllow.push(vikeNodeModulesRoot);
33
28
  }
@@ -40,7 +40,7 @@ async function getPageDeps(config, pageConfigs) {
40
40
  const addInclude = (e) => {
41
41
  (0, utils_js_1.assert)(e);
42
42
  // Shouldn't be a path alias, as path aliases would need to be added to config.optimizeDeps.entries instead of config.optimizeDeps.include
43
- (0, utils_js_1.assertIsNpmPackageImport)(e);
43
+ (0, utils_js_1.assertIsImportPathNpmPackage)(e);
44
44
  include.push(e);
45
45
  };
46
46
  // V1 design
@@ -57,6 +57,11 @@ async function getPageDeps(config, pageConfigs) {
57
57
  return;
58
58
  if (definedAt.definedBy)
59
59
  return;
60
+ if (definedAt.importPathAbsolute) {
61
+ const npmPackageName = (0, utils_js_1.getNpmPackageName)(definedAt.importPathAbsolute);
62
+ if (npmPackageName && config.optimizeDeps.exclude?.includes(npmPackageName))
63
+ return;
64
+ }
60
65
  if (definedAt.filePathAbsoluteUserRootDir !== null) {
61
66
  // Vite expects entries to be filesystem absolute paths (surprisingly so).
62
67
  addEntry(definedAt.filePathAbsoluteFilesystem);
@@ -10,7 +10,8 @@ const utils_js_1 = require("../utils.js");
10
10
  const getFilePath_js_1 = require("../shared/getFilePath.js");
11
11
  const normalizeId_js_1 = require("../shared/normalizeId.js");
12
12
  const isViteServerBuild_js_1 = require("../shared/isViteServerBuild.js");
13
- // TODO/enventually: (after we implemented vike.config.js)
13
+ const applyRegExWithMagicString_js_1 = require("../shared/applyRegExWithMagicString.js");
14
+ // TODO/enventually:
14
15
  // - Make import.meta.env work inside +config.js
15
16
  // - For it to work, we'll probably need the user to define the settings (e.g. `envDir`) for loadEnv() inside vike.config.js instead of vite.config.js
16
17
  // - Or stop using Vite's `mode` implemention and have Vike implement its own `mode` feature? (So that the only dependencies are `$ vike build --mode staging` and `$ MODE=staging vike build`.)
@@ -27,7 +28,6 @@ function envVarsPlugin() {
27
28
  enforce: 'post',
28
29
  configResolved(config_) {
29
30
  config = config_;
30
- config.command;
31
31
  envsAll = (0, vite_1.loadEnv)(config.mode, config.envDir || config.root, '');
32
32
  config.plugins.sort((0, utils_js_1.lowerFirst)((plugin) => (plugin.name === 'vite:define' ? 1 : 0)));
33
33
  },
@@ -43,21 +43,22 @@ function envVarsPlugin() {
43
43
  return;
44
44
  const isBuild = config.command === 'build';
45
45
  const isClientSide = !(0, isViteServerBuild_js_1.isViteServerBuild_safe)(config, options);
46
- const s = new magic_string_1.default(code);
47
- Object.entries(envsAll)
46
+ const magicString = new magic_string_1.default(code);
47
+ // Find & check
48
+ const replacements = Object.entries(envsAll)
48
49
  .filter(([key]) => {
49
50
  // Already handled by Vite
50
51
  const envPrefix = !config.envPrefix ? [] : (0, utils_js_1.isArray)(config.envPrefix) ? config.envPrefix : [config.envPrefix];
51
52
  return !envPrefix.some((prefix) => key.startsWith(prefix));
52
53
  })
53
- .forEach(([envName, envVal]) => {
54
+ .map(([envName, envVal]) => {
54
55
  const envStatement = `import.meta.env.${envName}`;
55
- const envStatementRegExStr = (0, utils_js_1.escapeRegex)(envStatement) + '\\b';
56
+ const envStatementRegExpStr = (0, utils_js_1.escapeRegex)(envStatement) + '\\b';
56
57
  // Security check
57
58
  {
58
59
  const isPrivate = !envName.startsWith(PUBLIC_ENV_PREFIX) && !PUBLIC_ENV_ALLOWLIST.includes(envName);
59
60
  if (isPrivate && isClientSide) {
60
- if (!new RegExp(envStatementRegExStr).test(code))
61
+ if (!new RegExp(envStatementRegExpStr).test(code))
61
62
  return;
62
63
  const modulePath = (0, getFilePath_js_1.getModuleFilePathAbsolute)(id, config);
63
64
  const errMsgAddendum = isBuild ? '' : ' (Vike will prevent your app from building for production)';
@@ -75,22 +76,19 @@ function envVarsPlugin() {
75
76
  // Double check
76
77
  (0, utils_js_1.assert)(!(isPrivate && isClientSide) || !isBuild);
77
78
  }
78
- // Apply
79
- applyEnvVar(s, envStatementRegExStr, envVal);
79
+ return { regExpStr: envStatementRegExpStr, replacement: envVal };
80
+ })
81
+ .filter(utils_js_1.isNotNullish);
82
+ // Apply
83
+ replacements.forEach(({ regExpStr, replacement }) => {
84
+ (0, applyRegExWithMagicString_js_1.applyRegExpWithMagicString)(magicString, regExpStr, replacement);
80
85
  });
81
- if (!s.hasChanged())
86
+ if (!magicString.hasChanged())
82
87
  return null;
83
88
  return {
84
- code: s.toString(),
85
- map: s.generateMap({ hires: true, source: id })
89
+ code: magicString.toString(),
90
+ map: magicString.generateMap({ hires: true, source: id })
86
91
  };
87
92
  }
88
93
  };
89
94
  }
90
- function applyEnvVar(s, envStatementRegExStr, envVal) {
91
- const envStatementRegEx = new RegExp(envStatementRegExStr, 'g');
92
- let match;
93
- while ((match = envStatementRegEx.exec(s.original))) {
94
- s.overwrite(match.index, match.index + match[0].length, JSON.stringify(envVal));
95
- }
96
- }
@@ -179,7 +179,9 @@ function getGlobRoots(config) {
179
179
  }
180
180
  function getGlobPath(globRootDir, fileType) {
181
181
  (0, utils_js_1.assertPosixPath)(globRootDir);
182
- let globPath = [...globRootDir.split('/'), '**', `*${fileType}.${utils_js_1.scriptFileExtensions}`].filter(Boolean).join('/');
182
+ let globPath = [...globRootDir.split('/'), '**', `*${fileType}.${utils_js_1.scriptFileExtensionPattern}`]
183
+ .filter(Boolean)
184
+ .join('/');
183
185
  if (!globPath.startsWith('/')) {
184
186
  globPath = '/' + globPath;
185
187
  }