vike 0.4.239 → 0.4.240-commit-bac5dee

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 (479) hide show
  1. package/dist/esm/client/index.d.ts +1 -1
  2. package/dist/esm/client/index.js +1 -1
  3. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  4. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  5. package/dist/esm/client/runtime-client-routing/entry.js +5 -3
  6. package/dist/esm/client/runtime-client-routing/getBaseServer.js +0 -1
  7. package/dist/esm/client/runtime-client-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
  8. package/dist/esm/client/runtime-client-routing/{globalContext.js → getGlobalContextClientInternal.js} +8 -4
  9. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +6 -6
  10. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +1 -1
  11. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.d.ts +1 -1
  12. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +4 -4
  13. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +15 -4
  14. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  15. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  16. package/dist/esm/client/runtime-server-routing/entry.js +5 -3
  17. package/dist/esm/client/runtime-server-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
  18. package/dist/esm/client/runtime-server-routing/getGlobalContextClientInternal.js +6 -0
  19. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +1 -1
  20. package/dist/esm/client/shared/{createGetGlobalContextClient.d.ts → getGlobalContextClientInternalShared.d.ts} +11 -8
  21. package/dist/esm/client/shared/getGlobalContextClientInternalShared.js +66 -0
  22. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +1 -3
  23. package/dist/esm/node/prerender/runPrerender.d.ts +4 -2
  24. package/dist/esm/node/prerender/runPrerender.js +5 -2
  25. package/dist/esm/node/runtime/globalContext.d.ts +15 -2
  26. package/dist/esm/node/runtime/globalContext.js +46 -32
  27. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +4 -2
  28. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +4 -2
  29. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +8 -4
  30. package/dist/esm/node/runtime/renderPage.d.ts +4 -2
  31. package/dist/esm/node/vite/index.js +42 -18
  32. package/dist/esm/node/vite/onLoad.js +1 -1
  33. package/dist/esm/node/vite/plugins/{pluginBuild → build}/handleAssetsManifest.d.ts +4 -0
  34. package/dist/esm/node/vite/plugins/{pluginBuild → build}/handleAssetsManifest.js +21 -6
  35. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildApp.js +24 -20
  36. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildConfig.js +20 -6
  37. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginDistFileNames.d.ts +1 -1
  38. package/dist/esm/node/vite/plugins/build/pluginDistFileNames.js +253 -0
  39. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginDistPackageJsonFile.d.ts +1 -1
  40. package/dist/esm/node/vite/plugins/build/pluginDistPackageJsonFile.js +40 -0
  41. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginModuleBanner.d.ts +1 -1
  42. package/dist/esm/node/vite/plugins/build/pluginModuleBanner.js +49 -0
  43. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginProdBuildEntry.js +4 -2
  44. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginSuppressRollupWarning.d.ts +1 -1
  45. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginSuppressRollupWarning.js +27 -23
  46. package/dist/esm/node/vite/plugins/non-runnable-dev/pluginReplaceConstantsNonRunnableDev.d.ts +7 -0
  47. package/dist/esm/node/vite/plugins/non-runnable-dev/pluginReplaceConstantsNonRunnableDev.js +47 -0
  48. package/dist/esm/node/vite/plugins/{pluginNonRunnableDev.d.ts → non-runnable-dev/pluginViteRPC.d.ts} +3 -7
  49. package/dist/esm/node/vite/plugins/non-runnable-dev/pluginViteRPC.js +30 -0
  50. package/dist/esm/node/vite/plugins/pluginBaseUrls.d.ts +1 -1
  51. package/dist/esm/node/vite/plugins/pluginBaseUrls.js +39 -33
  52. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -28
  53. package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -1
  54. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +1 -1
  55. package/dist/esm/node/vite/plugins/pluginDev.js +51 -47
  56. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +108 -92
  57. package/dist/esm/node/vite/plugins/pluginExtractExportNames.d.ts +1 -1
  58. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +39 -23
  59. package/dist/esm/node/vite/plugins/pluginFileEnv.d.ts +1 -1
  60. package/dist/esm/node/vite/plugins/pluginFileEnv.js +117 -92
  61. package/dist/esm/node/vite/plugins/pluginPreview.d.ts +1 -1
  62. package/dist/esm/node/vite/plugins/pluginPreview.js +38 -30
  63. package/dist/esm/node/vite/plugins/pluginReplaceConstantsEnvVars.d.ts +3 -0
  64. package/dist/esm/node/vite/plugins/pluginReplaceConstantsEnvVars.js +127 -0
  65. package/dist/esm/node/vite/plugins/pluginReplaceConstantsGlobalThis.d.ts +17 -0
  66. package/dist/esm/node/vite/plugins/pluginReplaceConstantsGlobalThis.js +52 -0
  67. package/dist/esm/node/vite/plugins/pluginReplaceConstantsPageContext.d.ts +3 -0
  68. package/dist/esm/node/vite/plugins/pluginReplaceConstantsPageContext.js +89 -0
  69. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +4 -2
  70. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +1 -1
  71. package/dist/esm/node/vite/plugins/pluginVirtualFiles.d.ts +1 -1
  72. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +67 -47
  73. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.d.ts +1 -1
  74. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +13 -9
  75. package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.d.ts +1 -1
  76. package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +26 -24
  77. package/dist/esm/node/vite/shared/getMagicString.d.ts +1 -1
  78. package/dist/esm/node/vite/shared/getMagicString.js +2 -0
  79. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +2 -2
  80. package/dist/esm/shared/createGlobalContextShared.d.ts +4 -4
  81. package/dist/esm/shared/route/abort.d.ts +22 -11
  82. package/dist/esm/shared/route/abort.js +45 -5
  83. package/dist/esm/shared/route/index.js +13 -4
  84. package/dist/esm/shared/route/utils.d.ts +1 -0
  85. package/dist/esm/shared/route/utils.js +1 -0
  86. package/dist/esm/types/Config.d.ts +1 -1
  87. package/dist/esm/types/PageContext.d.ts +8 -8
  88. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  89. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  90. package/dist/esm/utils/assert.js +1 -0
  91. package/dist/esm/utils/debug.d.ts +5 -3
  92. package/dist/esm/utils/debug.js +28 -11
  93. package/dist/esm/utils/findPackageJson.js +0 -1
  94. package/dist/esm/utils/getGlobalObject.d.ts +5 -1
  95. package/dist/esm/utils/getGlobalObject.js +5 -1
  96. package/dist/esm/utils/getViteRPC.js +0 -2
  97. package/dist/esm/utils/isDev.js +3 -1
  98. package/dist/esm/utils/isNonRunnableDev.js +2 -2
  99. package/dist/esm/utils/requireResolve.js +1 -2
  100. package/dist/esm/utils/virtualFileId.d.ts +4 -0
  101. package/dist/esm/utils/virtualFileId.js +14 -11
  102. package/package.json +7 -26
  103. package/dist/cjs/__internal/index.js +0 -35
  104. package/dist/cjs/client/runtime-client-routing/globalContext.js +0 -49
  105. package/dist/cjs/client/runtime-client-routing/prefetch/PrefetchSetting.js +0 -2
  106. package/dist/cjs/client/runtime-server-routing/globalContext.js +0 -41
  107. package/dist/cjs/client/runtime-server-routing/onLoad.js +0 -7
  108. package/dist/cjs/client/runtime-server-routing/utils.js +0 -34
  109. package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -65
  110. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +0 -40
  111. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +0 -41
  112. package/dist/cjs/client/shared/utils.js +0 -23
  113. package/dist/cjs/node/api/build.js +0 -24
  114. package/dist/cjs/node/api/context.js +0 -23
  115. package/dist/cjs/node/api/dev.js +0 -18
  116. package/dist/cjs/node/api/index.js +0 -44
  117. package/dist/cjs/node/api/onLoad.js +0 -9
  118. package/dist/cjs/node/api/prepareViteApiCall.js +0 -206
  119. package/dist/cjs/node/api/prerender.js +0 -18
  120. package/dist/cjs/node/api/preview.js +0 -38
  121. package/dist/cjs/node/api/types.js +0 -2
  122. package/dist/cjs/node/api/utils.js +0 -27
  123. package/dist/cjs/node/cli/context.js +0 -17
  124. package/dist/cjs/node/cli/entry.js +0 -121
  125. package/dist/cjs/node/cli/index.js +0 -12
  126. package/dist/cjs/node/cli/onLoad.js +0 -9
  127. package/dist/cjs/node/cli/parseCli.js +0 -95
  128. package/dist/cjs/node/cli/utils.js +0 -24
  129. package/dist/cjs/node/client/router.js +0 -19
  130. package/dist/cjs/node/createPageRenderer.js +0 -132
  131. package/dist/cjs/node/importBuild.js +0 -3
  132. package/dist/cjs/node/prerender/context.js +0 -26
  133. package/dist/cjs/node/prerender/index.js +0 -12
  134. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +0 -66
  135. package/dist/cjs/node/prerender/runPrerender.js +0 -777
  136. package/dist/cjs/node/prerender/runPrerenderEntry.js +0 -55
  137. package/dist/cjs/node/prerender/utils.js +0 -37
  138. package/dist/cjs/node/runtime/globalContext.js +0 -572
  139. package/dist/cjs/node/runtime/index-deprecated.js +0 -33
  140. package/dist/cjs/node/runtime/index.js +0 -74
  141. package/dist/cjs/node/runtime/loggerRuntime.js +0 -17
  142. package/dist/cjs/node/runtime/onLoad.js +0 -29
  143. package/dist/cjs/node/runtime/page-files/setup.js +0 -5
  144. package/dist/cjs/node/runtime/renderPage/analyzePage.js +0 -71
  145. package/dist/cjs/node/runtime/renderPage/assertArguments.js +0 -42
  146. package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +0 -51
  147. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -114
  148. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +0 -59
  149. package/dist/cjs/node/runtime/renderPage/csp.js +0 -47
  150. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +0 -31
  151. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +0 -120
  152. package/dist/cjs/node/runtime/renderPage/execHookServer.js +0 -8
  153. package/dist/cjs/node/runtime/renderPage/getCacheControl.js +0 -24
  154. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +0 -20
  155. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +0 -137
  156. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +0 -125
  157. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.js +0 -86
  158. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.js +0 -77
  159. package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +0 -36
  160. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +0 -50
  161. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +0 -41
  162. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +0 -68
  163. package/dist/cjs/node/runtime/renderPage/headersResponse.js +0 -48
  164. package/dist/cjs/node/runtime/renderPage/html/injectAssets/getHtmlTags.js +0 -269
  165. package/dist/cjs/node/runtime/renderPage/html/injectAssets/getViteDevScript.js +0 -32
  166. package/dist/cjs/node/runtime/renderPage/html/injectAssets/inferHtmlTags.js +0 -55
  167. package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectAssets__public.js +0 -31
  168. package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectHtmlTags.js +0 -161
  169. package/dist/cjs/node/runtime/renderPage/html/injectAssets/mergeScriptTags.js +0 -73
  170. package/dist/cjs/node/runtime/renderPage/html/injectAssets/sanitizeJson.js +0 -8
  171. package/dist/cjs/node/runtime/renderPage/html/injectAssets.js +0 -93
  172. package/dist/cjs/node/runtime/renderPage/html/propKeys.js +0 -47
  173. package/dist/cjs/node/runtime/renderPage/html/renderHtml.js +0 -245
  174. package/dist/cjs/node/runtime/renderPage/html/serializeContext.js +0 -189
  175. package/dist/cjs/node/runtime/renderPage/html/stream/react-streaming.js +0 -36
  176. package/dist/cjs/node/runtime/renderPage/html/stream.js +0 -829
  177. package/dist/cjs/node/runtime/renderPage/inferMediaType.js +0 -81
  178. package/dist/cjs/node/runtime/renderPage/isFontFallback.js +0 -29
  179. package/dist/cjs/node/runtime/renderPage/isNewError.js +0 -25
  180. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +0 -124
  181. package/dist/cjs/node/runtime/renderPage/log404/index.js +0 -154
  182. package/dist/cjs/node/runtime/renderPage/logErrorHint/errors.js +0 -20
  183. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +0 -200
  184. package/dist/cjs/node/runtime/renderPage/loggerProd.js +0 -34
  185. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +0 -10
  186. package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +0 -83
  187. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +0 -71
  188. package/dist/cjs/node/runtime/renderPage.js +0 -502
  189. package/dist/cjs/node/runtime/universal-middleware.js +0 -20
  190. package/dist/cjs/node/runtime/utils.js +0 -83
  191. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +0 -27
  192. package/dist/cjs/node/runtime-dev/index.js +0 -42
  193. package/dist/cjs/node/shared/assertV1Design.js +0 -30
  194. package/dist/cjs/node/shared/extractAssetsQuery.js +0 -29
  195. package/dist/cjs/node/shared/getVikeConfigError.js +0 -22
  196. package/dist/cjs/node/shared/isErrorDebug.js +0 -7
  197. package/dist/cjs/node/shared/prependEntriesDir.js +0 -13
  198. package/dist/cjs/node/shared/resolveBase.js +0 -35
  199. package/dist/cjs/node/shared/utils.js +0 -35
  200. package/dist/cjs/node/shared/virtualFileId.js +0 -110
  201. package/dist/cjs/node/vite/index.js +0 -69
  202. package/dist/cjs/node/vite/onLoad.js +0 -21
  203. package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +0 -48
  204. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +0 -342
  205. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +0 -179
  206. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -220
  207. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -254
  208. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -36
  209. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -41
  210. package/dist/cjs/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +0 -109
  211. package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +0 -63
  212. package/dist/cjs/node/vite/plugins/pluginBuild.js +0 -21
  213. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +0 -88
  214. package/dist/cjs/node/vite/plugins/pluginCommon.js +0 -197
  215. package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -28
  216. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +0 -163
  217. package/dist/cjs/node/vite/plugins/pluginDev.js +0 -107
  218. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +0 -87
  219. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +0 -227
  220. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +0 -99
  221. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +0 -149
  222. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +0 -52
  223. package/dist/cjs/node/vite/plugins/pluginPreview.js +0 -76
  224. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +0 -69
  225. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +0 -49
  226. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/debug.js +0 -5
  227. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.js +0 -56
  228. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +0 -190
  229. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +0 -54
  230. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +0 -97
  231. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +0 -215
  232. package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +0 -15
  233. package/dist/cjs/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +0 -35
  234. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +0 -60
  235. package/dist/cjs/node/vite/shared/findPageFiles.js +0 -25
  236. package/dist/cjs/node/vite/shared/getAssetsDir.js +0 -10
  237. package/dist/cjs/node/vite/shared/getClientEntrySrcDev.js +0 -42
  238. package/dist/cjs/node/vite/shared/getEnvVarObject.js +0 -37
  239. package/dist/cjs/node/vite/shared/getFilePath.js +0 -172
  240. package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +0 -125
  241. package/dist/cjs/node/vite/shared/getMagicString.js +0 -18
  242. package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +0 -10
  243. package/dist/cjs/node/vite/shared/getOutDirs.js +0 -146
  244. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +0 -21
  245. package/dist/cjs/node/vite/shared/isAsset.js +0 -40
  246. package/dist/cjs/node/vite/shared/isViteCliCall.js +0 -83
  247. package/dist/cjs/node/vite/shared/isViteServerSide.js +0 -68
  248. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +0 -15
  249. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +0 -15
  250. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +0 -38
  251. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +0 -26
  252. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +0 -85
  253. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +0 -30
  254. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +0 -19
  255. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +0 -19
  256. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +0 -29
  257. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +0 -13
  258. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +0 -15
  259. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +0 -162
  260. package/dist/cjs/node/vite/shared/loggerNotProd/log.js +0 -102
  261. package/dist/cjs/node/vite/shared/loggerNotProd.js +0 -208
  262. package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +0 -26
  263. package/dist/cjs/node/vite/shared/loggerVite.js +0 -54
  264. package/dist/cjs/node/vite/shared/normalizeId.js +0 -9
  265. package/dist/cjs/node/vite/shared/parseEsModule.js +0 -33
  266. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +0 -136
  267. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +0 -262
  268. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +0 -18
  269. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +0 -252
  270. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +0 -190
  271. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getConfigFileExport.js +0 -17
  272. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +0 -127
  273. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +0 -129
  274. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +0 -195
  275. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +0 -102
  276. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +0 -425
  277. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +0 -1151
  278. package/dist/cjs/node/vite/shared/rollupIsEsm.js +0 -15
  279. package/dist/cjs/node/vite/utils.js +0 -45
  280. package/dist/cjs/package.json +0 -1
  281. package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -4
  282. package/dist/cjs/shared/RenderErrorPage.js +0 -6
  283. package/dist/cjs/shared/abort.js +0 -16
  284. package/dist/cjs/shared/addIs404ToPageProps.js +0 -18
  285. package/dist/cjs/shared/assertHookReturnedObject.js +0 -21
  286. package/dist/cjs/shared/assertOnBeforeRenderHookReturn.js +0 -21
  287. package/dist/cjs/shared/assertPageContextProvidedByUser.js +0 -20
  288. package/dist/cjs/shared/createGlobalContextShared.js +0 -109
  289. package/dist/cjs/shared/createPageContextShared.js +0 -17
  290. package/dist/cjs/shared/determinePageIdOld.js +0 -11
  291. package/dist/cjs/shared/error-page.js +0 -40
  292. package/dist/cjs/shared/getPageContext.js +0 -6
  293. package/dist/cjs/shared/getPageContextRequestUrl.js +0 -16
  294. package/dist/cjs/shared/getPageContextUrlComputed.js +0 -132
  295. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +0 -19
  296. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/ClientDependency.js +0 -2
  297. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +0 -50
  298. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +0 -30
  299. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/getExportNames.js +0 -15
  300. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +0 -59
  301. package/dist/cjs/shared/getPageFiles/analyzePageServerSide.js +0 -22
  302. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +0 -24
  303. package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -52
  304. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -102
  305. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -56
  306. package/dist/cjs/shared/getPageFiles/parseVirtualFileExportsGlobalEntry.js +0 -100
  307. package/dist/cjs/shared/getPageFiles.js +0 -7
  308. package/dist/cjs/shared/getProxyForPublicUsage.js +0 -56
  309. package/dist/cjs/shared/hooks/execHook.js +0 -147
  310. package/dist/cjs/shared/hooks/getHook.js +0 -173
  311. package/dist/cjs/shared/htmlElementIds.js +0 -5
  312. package/dist/cjs/shared/misc/isServerSideError.js +0 -4
  313. package/dist/cjs/shared/misc/pageContextInitIsPassedToClient.js +0 -4
  314. package/dist/cjs/shared/modifyUrl.js +0 -28
  315. package/dist/cjs/shared/modifyUrlSameOrigin.js +0 -47
  316. package/dist/cjs/shared/page-configs/assertPlusFileExport.js +0 -42
  317. package/dist/cjs/shared/page-configs/findPageConfig.js +0 -10
  318. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +0 -65
  319. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +0 -68
  320. package/dist/cjs/shared/page-configs/getConfigValueRuntime.js +0 -10
  321. package/dist/cjs/shared/page-configs/getConfigValueTyped.js +0 -32
  322. package/dist/cjs/shared/page-configs/getExportPath.js +0 -29
  323. package/dist/cjs/shared/page-configs/helpers.js +0 -27
  324. package/dist/cjs/shared/page-configs/loadAndParseVirtualFilePageEntry.js +0 -25
  325. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +0 -287
  326. package/dist/cjs/shared/page-configs/serialize/PageConfigSerialized.js +0 -2
  327. package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -1
  328. package/dist/cjs/shared/page-configs/serialize/parsePageConfigsSerialized.js +0 -145
  329. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +0 -290
  330. package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +0 -10
  331. package/dist/cjs/shared/preparePageContextForPublicUsage.js +0 -80
  332. package/dist/cjs/shared/route/abort.js +0 -178
  333. package/dist/cjs/shared/route/debug.js +0 -23
  334. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +0 -52
  335. package/dist/cjs/shared/route/execHookGuard.js +0 -37
  336. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -84
  337. package/dist/cjs/shared/route/index.js +0 -107
  338. package/dist/cjs/shared/route/loadPageRoutes.js +0 -197
  339. package/dist/cjs/shared/route/noRouteMatch.js +0 -4
  340. package/dist/cjs/shared/route/resolvePrecedence.js +0 -93
  341. package/dist/cjs/shared/route/resolveRoute.js +0 -20
  342. package/dist/cjs/shared/route/resolveRouteFunction.js +0 -73
  343. package/dist/cjs/shared/route/resolveRouteString.js +0 -153
  344. package/dist/cjs/shared/route/resolveUrlPathname.js +0 -47
  345. package/dist/cjs/shared/route/routing.js +0 -9
  346. package/dist/cjs/shared/route/utils.js +0 -40
  347. package/dist/cjs/shared/utils.js +0 -49
  348. package/dist/cjs/types/Config/ConfigResolved.js +0 -2
  349. package/dist/cjs/types/Config.js +0 -2
  350. package/dist/cjs/types/FilePath.js +0 -2
  351. package/dist/cjs/types/PageConfig.js +0 -2
  352. package/dist/cjs/types/PageContext.js +0 -2
  353. package/dist/cjs/types/VikeGlobalInternal.js +0 -2
  354. package/dist/cjs/types/VikeNamespace.js +0 -2
  355. package/dist/cjs/types/ViteManifest.js +0 -2
  356. package/dist/cjs/types/defineConfig.js +0 -6
  357. package/dist/cjs/types/index-dreprecated.js +0 -3
  358. package/dist/cjs/types/index.js +0 -5
  359. package/dist/cjs/utils/PROJECT_VERSION.js +0 -5
  360. package/dist/cjs/utils/PromiseType.js +0 -2
  361. package/dist/cjs/utils/assert.js +0 -211
  362. package/dist/cjs/utils/assertIsBrowser.js +0 -8
  363. package/dist/cjs/utils/assertIsNotBrowser.js +0 -9
  364. package/dist/cjs/utils/assertKeys.js +0 -27
  365. package/dist/cjs/utils/assertNodeVersion.js +0 -14
  366. package/dist/cjs/utils/assertRoutingType.js +0 -29
  367. package/dist/cjs/utils/assertSetup.js +0 -171
  368. package/dist/cjs/utils/assertSingleInstance.js +0 -110
  369. package/dist/cjs/utils/assertVersion.js +0 -60
  370. package/dist/cjs/utils/capitalizeFirstLetter.js +0 -9
  371. package/dist/cjs/utils/cast.js +0 -6
  372. package/dist/cjs/utils/catchInfiniteLoop.js +0 -34
  373. package/dist/cjs/utils/changeEnumerable.js +0 -8
  374. package/dist/cjs/utils/checkType.js +0 -6
  375. package/dist/cjs/utils/compareString.js +0 -10
  376. package/dist/cjs/utils/createErrorWithCleanStackTrace.js +0 -39
  377. package/dist/cjs/utils/debug.js +0 -178
  378. package/dist/cjs/utils/debugGlob.js +0 -6
  379. package/dist/cjs/utils/deepEqual.js +0 -10
  380. package/dist/cjs/utils/escapeHtml.js +0 -13
  381. package/dist/cjs/utils/escapeRegex.js +0 -7
  382. package/dist/cjs/utils/findFile.js +0 -30
  383. package/dist/cjs/utils/findPackageJson.js +0 -18
  384. package/dist/cjs/utils/formatHintLog.js +0 -17
  385. package/dist/cjs/utils/freezePartial.js +0 -35
  386. package/dist/cjs/utils/genPromise.js +0 -51
  387. package/dist/cjs/utils/getFileExtension.js +0 -16
  388. package/dist/cjs/utils/getGlobalObject.js +0 -15
  389. package/dist/cjs/utils/getMostSimilar.js +0 -68
  390. package/dist/cjs/utils/getPropAccessNotation.js +0 -9
  391. package/dist/cjs/utils/getRandomId.js +0 -14
  392. package/dist/cjs/utils/getTerminalWidth.js +0 -7
  393. package/dist/cjs/utils/getValuePrintable.js +0 -10
  394. package/dist/cjs/utils/getViteRPC.js +0 -79
  395. package/dist/cjs/utils/hasProp.js +0 -50
  396. package/dist/cjs/utils/humanizeTime.js +0 -24
  397. package/dist/cjs/utils/includes.js +0 -13
  398. package/dist/cjs/utils/injectRollupInputs.js +0 -29
  399. package/dist/cjs/utils/isArray.js +0 -7
  400. package/dist/cjs/utils/isArrayOfStrings.js +0 -7
  401. package/dist/cjs/utils/isBrowser.js +0 -8
  402. package/dist/cjs/utils/isCallable.js +0 -6
  403. package/dist/cjs/utils/isDev.js +0 -20
  404. package/dist/cjs/utils/isDocker.js +0 -45
  405. package/dist/cjs/utils/isEqualStringList.js +0 -13
  406. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +0 -66
  407. package/dist/cjs/utils/isHtml.js +0 -9
  408. package/dist/cjs/utils/isImportPath.js +0 -21
  409. package/dist/cjs/utils/isNodeJS.js +0 -16
  410. package/dist/cjs/utils/isNonRunnableDev.js +0 -12
  411. package/dist/cjs/utils/isNullish.js +0 -16
  412. package/dist/cjs/utils/isObject.js +0 -6
  413. package/dist/cjs/utils/isObjectOfStrings.js +0 -7
  414. package/dist/cjs/utils/isObjectWithKeys.js +0 -15
  415. package/dist/cjs/utils/isPlainObject.js +0 -19
  416. package/dist/cjs/utils/isPromise.js +0 -7
  417. package/dist/cjs/utils/isPropertyGetter.js +0 -7
  418. package/dist/cjs/utils/isReact.js +0 -23
  419. package/dist/cjs/utils/isRunnableDevEnvironment.js +0 -9
  420. package/dist/cjs/utils/isSameErrorMessage.js +0 -9
  421. package/dist/cjs/utils/isScriptFile.js +0 -67
  422. package/dist/cjs/utils/isVikeReactApp.js +0 -8
  423. package/dist/cjs/utils/isVitest.js +0 -6
  424. package/dist/cjs/utils/joinEnglish.js +0 -14
  425. package/dist/cjs/utils/normalizeHeaders.js +0 -17
  426. package/dist/cjs/utils/objectAssign.js +0 -14
  427. package/dist/cjs/utils/objectAssignSafe.js +0 -7
  428. package/dist/cjs/utils/objectDefineProperty.js +0 -7
  429. package/dist/cjs/utils/objectEntries.js +0 -8
  430. package/dist/cjs/utils/objectEntriesForEach.js +0 -7
  431. package/dist/cjs/utils/objectFilter.js +0 -10
  432. package/dist/cjs/utils/objectFromEntries.js +0 -7
  433. package/dist/cjs/utils/objectKeys.js +0 -9
  434. package/dist/cjs/utils/objectReplace.js +0 -9
  435. package/dist/cjs/utils/onPageVisibilityChange.js +0 -18
  436. package/dist/cjs/utils/pLimit.js +0 -134
  437. package/dist/cjs/utils/parseNpmPackage.js +0 -106
  438. package/dist/cjs/utils/parseUrl-extras.js +0 -110
  439. package/dist/cjs/utils/parseUrl.js +0 -338
  440. package/dist/cjs/utils/path.js +0 -59
  441. package/dist/cjs/utils/pick.js +0 -12
  442. package/dist/cjs/utils/preservePropertyGetters.js +0 -30
  443. package/dist/cjs/utils/redirectHard.js +0 -6
  444. package/dist/cjs/utils/removeEmptyLines.js +0 -9
  445. package/dist/cjs/utils/removeFileExtension.js +0 -6
  446. package/dist/cjs/utils/requireResolve.js +0 -214
  447. package/dist/cjs/utils/rollupSourceMap.js +0 -19
  448. package/dist/cjs/utils/sleep.js +0 -6
  449. package/dist/cjs/utils/slice.js +0 -35
  450. package/dist/cjs/utils/sorter.js +0 -117
  451. package/dist/cjs/utils/stringifyStringArray.js +0 -6
  452. package/dist/cjs/utils/stripAnsi.js +0 -21
  453. package/dist/cjs/utils/styleFileRE.js +0 -6
  454. package/dist/cjs/utils/throttle.js +0 -15
  455. package/dist/cjs/utils/trackLogs.js +0 -31
  456. package/dist/cjs/utils/trimWithAnsi.js +0 -40
  457. package/dist/cjs/utils/truncateString.js +0 -23
  458. package/dist/cjs/utils/unique.js +0 -6
  459. package/dist/cjs/utils/updateType.js +0 -9
  460. package/dist/cjs/utils/urlToFile.js +0 -36
  461. package/dist/cjs/utils/virtualFileId.js +0 -39
  462. package/dist/cjs/utils/warnIfErrorIsNotObject.js +0 -23
  463. package/dist/esm/client/runtime-server-routing/globalContext.js +0 -5
  464. package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -65
  465. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -249
  466. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -34
  467. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -39
  468. package/dist/esm/node/vite/plugins/pluginBuild.d.ts +0 -3
  469. package/dist/esm/node/vite/plugins/pluginBuild.js +0 -19
  470. package/dist/esm/node/vite/plugins/pluginEnvVars.d.ts +0 -3
  471. package/dist/esm/node/vite/plugins/pluginEnvVars.js +0 -85
  472. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +0 -50
  473. package/dist/esm/node/vite/plugins/pluginReplaceConstants.d.ts +0 -3
  474. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +0 -67
  475. package/dist/esm/shared/route/debug.d.ts +0 -6
  476. package/dist/esm/shared/route/debug.js +0 -21
  477. /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildApp.d.ts +0 -0
  478. /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildConfig.d.ts +0 -0
  479. /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginProdBuildEntry.d.ts +0 -0
@@ -1,1151 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getVikeConfig = getVikeConfig;
7
- exports.getVikeConfigInternal = getVikeConfigInternal;
8
- exports.getVikeConfigInternalOptional = getVikeConfigInternalOptional;
9
- exports.getVikeConfigInternalSync = getVikeConfigInternalSync;
10
- exports.setVikeConfigContext = setVikeConfigContext;
11
- exports.reloadVikeConfig = reloadVikeConfig;
12
- exports.isV1Design = isV1Design;
13
- exports.getConfVal = getConfVal;
14
- exports.getConfigDefinitionOptional = getConfigDefinitionOptional;
15
- exports.getVikeConfigFromCliOrEnv = getVikeConfigFromCliOrEnv;
16
- const utils_js_1 = require("../utils.js");
17
- const configDefinitionsBuiltIn_js_1 = require("./resolveVikeConfigInternal/configDefinitionsBuiltIn.js");
18
- const filesystemRouting_js_1 = require("./resolveVikeConfigInternal/filesystemRouting.js");
19
- const globalContext_js_1 = require("../../runtime/globalContext.js");
20
- const loggerNotProd_js_1 = require("./loggerNotProd.js");
21
- const removeSuperfluousViteLog_js_1 = require("./loggerVite/removeSuperfluousViteLog.js");
22
- const picocolors_1 = __importDefault(require("@brillout/picocolors"));
23
- const getConfigDefinedAt_js_1 = require("../../../shared/page-configs/getConfigDefinedAt.js");
24
- const loadFileAtConfigTime_js_1 = require("./resolveVikeConfigInternal/loadFileAtConfigTime.js");
25
- const resolvePointerImport_js_1 = require("./resolveVikeConfigInternal/resolvePointerImport.js");
26
- const getFilePath_js_1 = require("./getFilePath.js");
27
- const getConfigValueBuildTime_js_1 = require("../../../shared/page-configs/getConfigValueBuildTime.js");
28
- const resolveVikeConfigPublic_js_1 = require("../../../shared/page-configs/resolveVikeConfigPublic.js");
29
- const serializeConfigValues_js_1 = require("../../../shared/page-configs/serialize/serializeConfigValues.js");
30
- const getPlusFilesAll_js_1 = require("./resolveVikeConfigInternal/getPlusFilesAll.js");
31
- const getEnvVarObject_js_1 = require("./getEnvVarObject.js");
32
- const context_js_1 = require("../../api/context.js");
33
- const context_js_2 = require("../../cli/context.js");
34
- const resolvePrerenderConfig_js_1 = require("../../prerender/resolvePrerenderConfig.js");
35
- const getProxyForPublicUsage_js_1 = require("../../../shared/getProxyForPublicUsage.js");
36
- const getVikeConfigError_js_1 = require("../../shared/getVikeConfigError.js");
37
- (0, utils_js_1.assertIsNotProductionRuntime)();
38
- const globalObject = (0, utils_js_1.getGlobalObject)('vite/shared/resolveVikeConfigInternal.ts', {
39
- restartVite: false,
40
- vikeConfigHasBuildError: null,
41
- isV1Design_: null,
42
- vikeConfigPromise: null,
43
- // TO-DO/next-major-release: remove
44
- vikeConfigSync: null,
45
- vikeConfigCtx: null, // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
46
- prerenderContext: null,
47
- });
48
- function reloadVikeConfig() {
49
- (0, utils_js_1.assert)(globalObject.vikeConfigCtx);
50
- const { userRootDir, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
51
- (0, utils_js_1.assert)(vikeVitePluginOptions);
52
- resolveVikeConfigInternal_withErrorHandling(userRootDir, true, vikeVitePluginOptions);
53
- }
54
- async function getVikeConfigInternal(
55
- // I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
56
- // TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
57
- doNotRestartViteOnError = false) {
58
- (0, utils_js_1.assert)(globalObject.vikeConfigCtx);
59
- const { userRootDir, isDev, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
60
- const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
61
- return vikeConfig;
62
- }
63
- // TO-DO/next-major-release: remove
64
- function getVikeConfigInternalSync() {
65
- (0, utils_js_1.assert)(globalObject.vikeConfigSync);
66
- return globalObject.vikeConfigSync;
67
- }
68
- // TO-DO/eventually: this maybe(/probably?) isn't safe against race conditions upon file changes in development, thus:
69
- // - Like getGlobalContext() and getGlobalContextSync() — make getVikeConfig() async and provide a getVikeConfigSync() while discourage using it
70
- // Public usage
71
- /**
72
- * Get all the information Vike knows about the app in your Vite plugin.
73
- *
74
- * https://vike.dev/getVikeConfig
75
- */
76
- function getVikeConfig(
77
- // TO-DO/eventually: remove unused arguments (older versions used it and we didn't remove it yet to avoid a TypeScript breaking change)
78
- // - No rush: we can do it later since it's getVikeConfig() is a beta feature as documented at https://vike.dev/getVikeConfig
79
- config) {
80
- const vikeConfig = getVikeConfigInternalSync();
81
- (0, utils_js_1.assertUsage)(vikeConfig, 'getVikeConfig() can only be used when Vite is loaded (i.e. during development or build) — Vite is never loaded in production.');
82
- const vikeConfigPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(vikeConfig, 'vikeConfig');
83
- return vikeConfigPublic;
84
- }
85
- function setVikeConfigContext(vikeConfigCtx_) {
86
- // If the user changes Vite's `config.root` => Vite completely reloads itself => setVikeConfigContext() is called again
87
- globalObject.vikeConfigCtx = vikeConfigCtx_;
88
- }
89
- async function getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
90
- if (!globalObject.vikeConfigPromise) {
91
- resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
92
- }
93
- (0, utils_js_1.assert)(globalObject.vikeConfigPromise);
94
- const vikeConfig = await globalObject.vikeConfigPromise;
95
- return vikeConfig;
96
- }
97
- async function getVikeConfigInternalOptional() {
98
- if (!globalObject.vikeConfigPromise)
99
- return null;
100
- const vikeConfig = await globalObject.vikeConfigPromise;
101
- return vikeConfig;
102
- }
103
- function isV1Design() {
104
- (0, utils_js_1.assert)(typeof globalObject.isV1Design_ === 'boolean');
105
- return globalObject.isV1Design_;
106
- }
107
- async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
108
- const { promise, resolve, reject } = (0, utils_js_1.genPromise)();
109
- globalObject.vikeConfigPromise = promise;
110
- const esbuildCache = {
111
- transpileCache: {},
112
- vikeConfigDependencies: new Set(),
113
- };
114
- let hasError = false;
115
- let ret;
116
- let err;
117
- try {
118
- ret = await resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esbuildCache);
119
- }
120
- catch (err_) {
121
- hasError = true;
122
- err = err_;
123
- }
124
- // There is a newer call — let the new call supersede the old one.
125
- // We deliberately swallow the intermetidate state (including any potential error) — it's now outdated and has existed only for a very short period of time.
126
- if (globalObject.vikeConfigPromise !== promise) {
127
- // vikeConfigPromise.then(resolve).catch(reject)
128
- try {
129
- resolve(await globalObject.vikeConfigPromise);
130
- }
131
- catch (err) {
132
- reject(err);
133
- }
134
- return;
135
- }
136
- if (!hasError) {
137
- (0, utils_js_1.assert)(ret);
138
- (0, utils_js_1.assert)(err === undefined);
139
- const hadError = globalObject.vikeConfigHasBuildError;
140
- globalObject.vikeConfigHasBuildError = false;
141
- (0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: false });
142
- if (hadError) {
143
- (0, loggerNotProd_js_1.logConfigErrorRecover)();
144
- if (globalObject.restartVite) {
145
- globalObject.restartVite = false;
146
- restartViteDevServer();
147
- }
148
- }
149
- resolve(ret);
150
- }
151
- else {
152
- (0, utils_js_1.assert)(ret === undefined);
153
- (0, utils_js_1.assert)(err);
154
- globalObject.vikeConfigHasBuildError = true;
155
- (0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: { err } });
156
- if (!doNotRestartViteOnError)
157
- globalObject.restartVite = true;
158
- if (!isDev) {
159
- reject(err);
160
- }
161
- else {
162
- (0, loggerNotProd_js_1.logConfigError)(err);
163
- resolve(getVikeConfigDummy(esbuildCache));
164
- }
165
- }
166
- }
167
- async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esbuildCache) {
168
- const plusFilesAll = await (0, getPlusFilesAll_js_1.getPlusFilesAll)(userRootDir, esbuildCache);
169
- const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache);
170
- const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir);
171
- if (!globalObject.isV1Design_)
172
- globalObject.isV1Design_ = pageConfigs.length > 0;
173
- // Backwards compatibility for vike(options) in vite.config.js
174
- temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
175
- setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
176
- const globalConfigPublic = resolveGlobalConfig(pageConfigGlobal, pageConfigs);
177
- const prerenderContext = resolvePrerenderContext({
178
- config: globalConfigPublic.config,
179
- _from: globalConfigPublic._from,
180
- _pageConfigs: pageConfigs,
181
- });
182
- const vikeConfig = {
183
- ...globalConfigPublic,
184
- prerenderContext,
185
- _pageConfigs: pageConfigs,
186
- _pageConfigGlobal: pageConfigGlobal,
187
- _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
188
- };
189
- globalObject.vikeConfigSync = vikeConfig;
190
- return vikeConfig;
191
- }
192
- function resolveGlobalConfig(pageConfigGlobal, pageConfigs) {
193
- const globalConfigPublic = (0, resolveVikeConfigPublic_js_1.resolveGlobalConfigPublic)(pageConfigs, pageConfigGlobal, getConfigValues);
194
- return globalConfigPublic;
195
- }
196
- async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
197
- const plusFilesAllOrdered = Object.values(plusFilesAll)
198
- .flat()
199
- .sort((plusFile1, plusFile2) => sortAfterInheritanceOrderGlobal(plusFile1, plusFile2, plusFilesAll, null));
200
- const configDefinitionsGlobal = getConfigDefinitions(
201
- // We use `plusFilesAll` in order to allow local Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
202
- plusFilesAllOrdered, (configDef) => !!configDef.global);
203
- await loadCustomConfigBuildTimeFiles(plusFilesAll, configDefinitionsGlobal, userRootDir, esbuildCache);
204
- const configDefinitionsAll = getConfigDefinitions(Object.values(plusFilesAll).flat());
205
- const configNamesKnownAll = Object.keys(configDefinitionsAll);
206
- const configNamesKnownGlobal = Object.keys(configDefinitionsGlobal);
207
- (0, utils_js_1.assert)(configNamesKnownGlobal.every((configName) => configNamesKnownAll.includes(configName)));
208
- const configDefinitionsLocal = {};
209
- await Promise.all((0, utils_js_1.objectEntries)(plusFilesAll).map(async ([locationIdPage, plusFiles]) => {
210
- const plusFilesRelevant = (0, utils_js_1.objectEntries)(plusFilesAll)
211
- .filter(([locationId]) => (0, filesystemRouting_js_1.isInherited)(locationId, locationIdPage))
212
- .map(([, plusFiles]) => plusFiles)
213
- .flat()
214
- .sort((plusFile1, plusFile2) => sortAfterInheritanceOrderPage(plusFile1, plusFile2, locationIdPage, null));
215
- const configDefinitions = getConfigDefinitions(plusFilesRelevant, (configDef) => configDef.global !== true);
216
- await loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache);
217
- const configNamesKnownLocal = (0, utils_js_1.unique)([...Object.keys(configDefinitions), ...configNamesKnownGlobal]);
218
- (0, utils_js_1.assert)(configNamesKnownLocal.every((configName) => configNamesKnownAll.includes(configName)));
219
- configDefinitionsLocal[locationIdPage] = {
220
- configDefinitions,
221
- plusFiles,
222
- plusFilesRelevant,
223
- configNamesKnownLocal,
224
- };
225
- }));
226
- const configDefinitionsResolved = {
227
- configDefinitionsGlobal,
228
- configDefinitionsLocal,
229
- configDefinitionsAll,
230
- configNamesKnownAll,
231
- configNamesKnownGlobal,
232
- };
233
- assertKnownConfigs(configDefinitionsResolved);
234
- return configDefinitionsResolved;
235
- }
236
- // Load value files (with `env.config===true`) of *custom* configs.
237
- // - The value files of *built-in* configs are already loaded at `getPlusFilesAll()`.
238
- async function loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache) {
239
- const plusFileList = Object.values(plusFiles).flat(1);
240
- await Promise.all(plusFileList.map(async (plusFile) => {
241
- if (!plusFile.isConfigFile) {
242
- await (0, loadFileAtConfigTime_js_1.loadValueFile)(plusFile, configDefinitions, userRootDir, esbuildCache);
243
- }
244
- else {
245
- await Promise.all(Object.entries(plusFile.pointerImportsByConfigName).map(async ([configName, pointerImport]) => {
246
- await (0, loadFileAtConfigTime_js_1.loadPointerImport)(pointerImport, userRootDir, configName, configDefinitions, esbuildCache);
247
- }));
248
- }
249
- }));
250
- }
251
- function getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir) {
252
- const pageConfigGlobal = {
253
- configDefinitions: configDefinitionsResolved.configDefinitionsGlobal,
254
- configValueSources: {},
255
- };
256
- (0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsGlobal).forEach(([configName, configDef]) => {
257
- const sources = resolveConfigValueSources(configName, configDef,
258
- // We use `plusFilesAll` in order to allow local Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
259
- Object.values(plusFilesAll).flat(), userRootDir, true, plusFilesAll);
260
- if (sources.length === 0)
261
- return;
262
- pageConfigGlobal.configValueSources[configName] = sources;
263
- });
264
- applyEffectsMetaEnv(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal);
265
- applyEffectsConfVal(pageConfigGlobal.configValueSources, configDefinitionsResolved.configDefinitionsGlobal, plusFilesAll);
266
- sortConfigValueSources(pageConfigGlobal.configValueSources, null);
267
- assertPageConfigGlobal(pageConfigGlobal, plusFilesAll);
268
- const pageConfigs = (0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsLocal)
269
- .filter(([_locationId, { plusFiles }]) => isDefiningPage(plusFiles))
270
- .map(([locationId, { configDefinitions, plusFilesRelevant }]) => {
271
- const configDefinitionsLocal = configDefinitions;
272
- const configValueSources = {};
273
- (0, utils_js_1.objectEntries)(configDefinitionsLocal)
274
- .filter(([_configName, configDef]) => configDef.global !== true)
275
- .forEach(([configName, configDef]) => {
276
- const sources = resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, false, plusFilesAll);
277
- if (sources.length === 0)
278
- return;
279
- configValueSources[configName] = sources;
280
- });
281
- const pageConfigRoute = determineRouteFilesystem(locationId, configValueSources);
282
- applyEffectsMetaEnv(configValueSources, configDefinitionsLocal);
283
- applyEffectsConfVal(configValueSources, configDefinitionsLocal, plusFilesAll);
284
- sortConfigValueSources(configValueSources, locationId);
285
- const pageConfig = {
286
- pageId: locationId,
287
- ...pageConfigRoute,
288
- configDefinitions: configDefinitionsLocal,
289
- plusFiles: plusFilesRelevant,
290
- configValueSources,
291
- };
292
- const configValuesComputed = getComputed(pageConfig);
293
- (0, utils_js_1.objectAssign)(pageConfig, { configValuesComputed });
294
- (0, utils_js_1.checkType)(pageConfig);
295
- return pageConfig;
296
- });
297
- assertPageConfigs(pageConfigs);
298
- return { pageConfigs, pageConfigGlobal };
299
- }
300
- function assertPageConfigGlobal(pageConfigGlobal, plusFilesAll) {
301
- Object.entries(pageConfigGlobal.configValueSources).forEach(([configName, sources]) => {
302
- assertGlobalConfigLocation(configName, sources, plusFilesAll, pageConfigGlobal.configDefinitions);
303
- });
304
- }
305
- function assertGlobalConfigLocation(configName, sources, plusFilesAll, configDefinitionsGlobal) {
306
- // Determine existing global +config.js files
307
- const configFilePathsGlobal = [];
308
- const plusFilesGlobal = Object.values((0, utils_js_1.objectFromEntries)((0, utils_js_1.objectEntries)(plusFilesAll).filter(([locationId]) => isGlobalLocation(locationId, plusFilesAll)))).flat();
309
- plusFilesGlobal
310
- .filter((i) => i.isConfigFile)
311
- .forEach((plusFile) => {
312
- const { filePathAbsoluteUserRootDir } = plusFile.filePath;
313
- if (filePathAbsoluteUserRootDir) {
314
- configFilePathsGlobal.push(filePathAbsoluteUserRootDir);
315
- }
316
- });
317
- // Call assertWarning()
318
- sources.forEach((source) => {
319
- const { plusFile } = source;
320
- // It's `null` when the config is defined by `vike(options)` in vite.config.js
321
- (0, utils_js_1.assert)(plusFile);
322
- const { filePathAbsoluteUserRootDir } = plusFile.filePath;
323
- // Allow local Vike extensions to set global configs (`filePathAbsoluteUserRootDir===null` for Vike extension)
324
- if (!filePathAbsoluteUserRootDir)
325
- return;
326
- (0, utils_js_1.assert)(!plusFile.isExtensionConfig);
327
- if (!isGlobalLocation(source.locationId, plusFilesAll)) {
328
- const configDef = configDefinitionsGlobal[configName];
329
- (0, utils_js_1.assert)(configDef);
330
- const isConditionallyGlobal = (0, utils_js_1.isCallable)(configDef.global);
331
- const errBeg = `${filePathAbsoluteUserRootDir} (which is a local config file) sets the config ${picocolors_1.default.cyan(configName)}`;
332
- const errMid = !isConditionallyGlobal
333
- ? "but it's a global config"
334
- : 'to a value that is global';
335
- const what = isConditionallyGlobal ? 'global values' : picocolors_1.default.cyan(configName);
336
- const errEnd = configFilePathsGlobal.length > 0
337
- ? `define ${what} at a global config file such as ${(0, utils_js_1.joinEnglish)(configFilePathsGlobal.map(picocolors_1.default.bold), 'or')} instead`
338
- : `create a global config file (e.g. /pages/+config.js) and define ${what} there instead`;
339
- // When updating this error message => also update error message at https://vike.dev/warning/global-config
340
- const errMsg = `${errBeg} ${errMid}: ${errEnd} (https://vike.dev/warning/global-config).`;
341
- (0, utils_js_1.assertWarning)(false, errMsg, { onlyOnce: true });
342
- }
343
- });
344
- }
345
- function assertPageConfigs(pageConfigs) {
346
- pageConfigs.forEach((pageConfig) => {
347
- assertOnBeforeRenderEnv(pageConfig);
348
- });
349
- }
350
- function assertOnBeforeRenderEnv(pageConfig) {
351
- const onBeforeRenderConfig = pageConfig.configValueSources.onBeforeRender?.[0];
352
- if (!onBeforeRenderConfig)
353
- return;
354
- const onBeforeRenderEnv = onBeforeRenderConfig.configEnv;
355
- const isClientRouting = (0, getConfigValueBuildTime_js_1.getConfigValueBuildTime)(pageConfig, 'clientRouting', 'boolean');
356
- // When using Server Routing, loading a onBeforeRender() hook on the client-side hasn't any effect (the Server Routing's client runtime never calls it); it unnecessarily bloats client bundle sizes
357
- (0, utils_js_1.assertUsage)(!(onBeforeRenderEnv.client && !isClientRouting), `Page ${pageConfig.pageId} has an onBeforeRender() hook with env ${picocolors_1.default.cyan(JSON.stringify(onBeforeRenderEnv))} which doesn't make sense because the page is using Server Routing: onBeforeRender() can be run in the client only when using Client Routing.`);
358
- }
359
- function getConfigValues(pageConfig, isGlobalConfig) {
360
- const tolerateMissingValue = !isGlobalConfig;
361
- const configValues = {};
362
- (0, serializeConfigValues_js_1.getConfigValuesBase)(pageConfig, { isForConfig: true }, null).forEach((entry) => {
363
- if (entry.configValueBase.type === 'computed') {
364
- (0, utils_js_1.assert)('value' in entry); // Help TS
365
- const { configValueBase, value, configName } = entry;
366
- configValues[configName] = { ...configValueBase, value };
367
- }
368
- if (entry.configValueBase.type === 'standard') {
369
- (0, utils_js_1.assert)('sourceRelevant' in entry); // Help TS
370
- const { configValueBase, sourceRelevant, configName } = entry;
371
- if (!sourceRelevant.valueIsLoaded) {
372
- if (tolerateMissingValue)
373
- return;
374
- (0, utils_js_1.assert)(false);
375
- }
376
- const { value } = sourceRelevant;
377
- configValues[configName] = { ...configValueBase, value };
378
- }
379
- if (entry.configValueBase.type === 'cumulative') {
380
- (0, utils_js_1.assert)('sourcesRelevant' in entry); // Help TS
381
- const { configValueBase, sourcesRelevant, configName } = entry;
382
- const values = [];
383
- sourcesRelevant.forEach((source) => {
384
- if (!source.valueIsLoaded) {
385
- if (tolerateMissingValue)
386
- return;
387
- (0, utils_js_1.assert)(false);
388
- }
389
- values.push(source.value);
390
- });
391
- if (values.length === 0) {
392
- if (tolerateMissingValue)
393
- return;
394
- (0, utils_js_1.assert)(false);
395
- }
396
- configValues[configName] = { ...configValueBase, value: values };
397
- }
398
- });
399
- return configValues;
400
- }
401
- function temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir) {
402
- (0, utils_js_1.assert)((0, utils_js_1.isObject)(vikeVitePluginOptions));
403
- (0, utils_js_1.assertWarning)(Object.keys(vikeVitePluginOptions).length === 0, `Define Vike settings in +config.js instead of vite.config.js ${picocolors_1.default.underline('https://vike.dev/migration/settings')}`, { onlyOnce: true });
404
- Object.entries(vikeVitePluginOptions).forEach(([configName, value]) => {
405
- var _a;
406
- const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
407
- sources.push(getSourceNonConfigFile(configName, value, {
408
- ...(0, getFilePath_js_1.getFilePathResolved)({
409
- userRootDir,
410
- filePathAbsoluteUserRootDir: '/vite.config.js',
411
- }),
412
- fileExportPathToShowToUser: null,
413
- }));
414
- });
415
- }
416
- function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
417
- // Vike API — passed options [lowest precedence]
418
- const vikeApiOperation = (0, context_js_1.getVikeApiOperation)();
419
- if (vikeApiOperation?.options.vikeConfig) {
420
- addSources(vikeApiOperation.options.vikeConfig, { definedBy: 'api', operation: vikeApiOperation.operation }, false);
421
- }
422
- const { configFromCliOptions, configFromEnvVar } = getVikeConfigFromCliOrEnv();
423
- // Vike CLI options
424
- if (configFromCliOptions) {
425
- addSources(configFromCliOptions, { definedBy: 'cli' }, true);
426
- }
427
- // VIKE_CONFIG [highest precedence]
428
- if (configFromEnvVar) {
429
- addSources(configFromEnvVar, { definedBy: 'env' }, false);
430
- }
431
- return;
432
- function addSources(configValues, definedBy, exitOnError) {
433
- Object.entries(configValues).forEach(([configName, value]) => {
434
- var _a;
435
- const sourceName = `The ${(0, getConfigDefinedAt_js_1.getDefinedByString)(definedBy, configName)}`;
436
- assertKnownConfig(configName, configDefinitionsResolved.configNamesKnownGlobal, configDefinitionsResolved, '/', false, sourceName, exitOnError);
437
- const sources = ((_a = pageConfigGlobal.configValueSources)[configName] ?? (_a[configName] = []));
438
- sources.unshift(getSourceNonConfigFile(configName, value, definedBy));
439
- });
440
- }
441
- }
442
- function getVikeConfigFromCliOrEnv() {
443
- const configFromCliOptions = (0, context_js_2.getCliOptions)();
444
- const configFromEnvVar = (0, getEnvVarObject_js_1.getEnvVarObject)('VIKE_CONFIG');
445
- const vikeConfigFromCliOrEnv = {
446
- ...configFromCliOptions, // Lower precedence
447
- ...configFromEnvVar, // Higher precedence
448
- };
449
- return {
450
- vikeConfigFromCliOrEnv,
451
- configFromCliOptions,
452
- configFromEnvVar,
453
- };
454
- }
455
- function getSourceNonConfigFile(configName, value, definedAt) {
456
- (0, utils_js_1.assert)((0, utils_js_1.includes)((0, utils_js_1.objectKeys)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn), configName));
457
- const configDef = configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn[configName];
458
- const source = {
459
- valueIsLoaded: true,
460
- value,
461
- configEnv: configDef.env,
462
- definedAt,
463
- locationId: '/',
464
- plusFile: null,
465
- valueIsLoadedWithImport: false,
466
- valueIsDefinedByPlusValueFile: false,
467
- };
468
- return source;
469
- }
470
- function sortConfigValueSources(configValueSources, locationIdPage) {
471
- Object.entries(configValueSources).forEach(([configName, sources]) => {
472
- sources
473
- .sort((source1, source2) => {
474
- if (!source1.plusFile || !source2.plusFile)
475
- return 0;
476
- const isGlobal = !locationIdPage;
477
- if (isGlobal) {
478
- return sortAfterInheritanceOrderGlobal(source1.plusFile, source2.plusFile, null, configName);
479
- }
480
- else {
481
- return sortAfterInheritanceOrderPage(source1.plusFile, source2.plusFile, locationIdPage, configName);
482
- }
483
- })
484
- // TO-DO/next-major-release: remove
485
- // Interop with vike(options) in vite.config.js — make it least precedence.
486
- .sort((0, utils_js_1.makeLast)((source) => !source.plusFile));
487
- });
488
- }
489
- function sortAfterInheritanceOrderPage(plusFile1, plusFile2, locationIdPage, configName) {
490
- {
491
- const ret = (0, filesystemRouting_js_1.sortAfterInheritanceOrder)(plusFile1.locationId, plusFile2.locationId, locationIdPage);
492
- if (ret !== 0)
493
- return ret;
494
- (0, utils_js_1.assert)(plusFile1.locationId === plusFile2.locationId);
495
- }
496
- if (configName) {
497
- const ret = sortPlusFilesSameLocationId(plusFile1, plusFile2, configName);
498
- if (ret !== 0)
499
- return ret;
500
- }
501
- return 0;
502
- }
503
- function sortAfterInheritanceOrderGlobal(plusFile1, plusFile2, plusFilesAll, configName) {
504
- if (plusFilesAll) {
505
- const ret = (0, utils_js_1.makeFirst)((plusFile) => isGlobalLocation(plusFile.locationId, plusFilesAll))(plusFile1, plusFile2);
506
- if (ret !== 0)
507
- return ret;
508
- }
509
- {
510
- const ret = (0, utils_js_1.lowerFirst)((plusFile) => plusFile.locationId.split('/').length)(plusFile1, plusFile2);
511
- if (ret !== 0)
512
- return ret;
513
- }
514
- if (plusFile1.locationId !== plusFile2.locationId) {
515
- // Same as `sort()` in `['some', 'string', 'array'].sort()`
516
- return plusFile1.locationId > plusFile2.locationId ? 1 : -1;
517
- }
518
- if (configName) {
519
- (0, utils_js_1.assert)(plusFile1.locationId === plusFile2.locationId);
520
- const ret = sortPlusFilesSameLocationId(plusFile1, plusFile2, configName);
521
- if (ret !== 0)
522
- return ret;
523
- }
524
- return 0;
525
- }
526
- function sortPlusFilesSameLocationId(plusFile1, plusFile2, configName) {
527
- (0, utils_js_1.assert)(plusFile1.locationId === plusFile2.locationId);
528
- (0, utils_js_1.assert)(isDefiningConfig(plusFile1, configName));
529
- (0, utils_js_1.assert)(isDefiningConfig(plusFile2, configName));
530
- // Config set by extensions (lowest precedence)
531
- {
532
- const ret = (0, utils_js_1.makeLast)((plusFile) => !!plusFile.isExtensionConfig)(plusFile1, plusFile2);
533
- if (ret !== 0)
534
- return ret;
535
- }
536
- // Config set by side-export (lower precedence)
537
- {
538
- // - For example `export { frontmatter }` of `.mdx` files.
539
- // - This only considers side-export configs that are already loaded at build-time. (E.g. it actually doesn't consider `export { frontmatter }` of .mdx files since .mdx files are loaded only at runtime.)
540
- const ret = (0, utils_js_1.makeLast)((plusFile) => !plusFile.isConfigFile &&
541
- // Is side-export
542
- plusFile.configName !== configName)(plusFile1, plusFile2);
543
- if (ret !== 0)
544
- return ret;
545
- }
546
- // Config set by +config.js
547
- {
548
- const ret = (0, utils_js_1.makeLast)((plusFile) => plusFile.isConfigFile)(plusFile1, plusFile2);
549
- if (ret !== 0)
550
- return ret;
551
- }
552
- // Config set by +{configName}.js (highest precedence)
553
- // No need to make it deterministic: the overall order is already deterministic, see sortMakeDeterministic() at getPlusFilesAll()
554
- return 0;
555
- }
556
- function resolveConfigValueSources(configName, configDef, plusFilesRelevant, userRootDir, isGlobal, plusFilesAll) {
557
- let sources = plusFilesRelevant
558
- .filter((plusFile) => isDefiningConfig(plusFile, configName))
559
- .map((plusFile) => getConfigValueSource(configName, plusFile, configDef, userRootDir));
560
- // Filter hydrid global-local configs
561
- if (!(0, utils_js_1.isCallable)(configDef.global)) {
562
- // Already filtered
563
- (0, utils_js_1.assert)((configDef.global ?? false) === isGlobal);
564
- }
565
- else {
566
- // We cannot filter earlier
567
- (0, utils_js_1.assert)(configDef.env.config);
568
- sources = sources.filter((source) => {
569
- (0, utils_js_1.assert)(source.configEnv.config);
570
- (0, utils_js_1.assert)(source.valueIsLoaded);
571
- const valueIsGlobal = resolveIsGlobalValue(configDef.global, source, plusFilesAll);
572
- return isGlobal ? valueIsGlobal : !valueIsGlobal;
573
- });
574
- }
575
- return sources;
576
- }
577
- function isDefiningConfig(plusFile, configName) {
578
- return getConfigNamesSetByPlusFile(plusFile).includes(configName);
579
- }
580
- function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
581
- const confVal = getConfVal(plusFile, configName);
582
- (0, utils_js_1.assert)(confVal);
583
- const configValueSourceCommon = {
584
- locationId: plusFile.locationId,
585
- plusFile,
586
- };
587
- const definedAtFilePath_ = {
588
- ...plusFile.filePath,
589
- fileExportPathToShowToUser: ['default', configName],
590
- };
591
- // +client.js
592
- if (configDef._valueIsFilePath) {
593
- let definedAtFilePath;
594
- let valueFilePath;
595
- if (plusFile.isConfigFile) {
596
- // Defined over pointer import
597
- (0, utils_js_1.assert)(confVal.valueIsLoaded);
598
- const pointerImport = (0, resolvePointerImport_js_1.resolvePointerImport)(confVal.value, plusFile.filePath, userRootDir, configName);
599
- const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, definedAtFilePath_);
600
- (0, utils_js_1.assertUsage)(pointerImport, `${configDefinedAt} should be an import`);
601
- valueFilePath = pointerImport.fileExportPath.filePathAbsoluteVite;
602
- definedAtFilePath = pointerImport.fileExportPath;
603
- }
604
- else {
605
- // Defined by value file, i.e. +{configName}.js
606
- (0, utils_js_1.assert)(!plusFile.isConfigFile);
607
- valueFilePath = plusFile.filePath.filePathAbsoluteVite;
608
- definedAtFilePath = {
609
- ...plusFile.filePath,
610
- fileExportPathToShowToUser: [],
611
- };
612
- }
613
- const configValueSource = {
614
- ...configValueSourceCommon,
615
- valueIsLoaded: true,
616
- value: valueFilePath,
617
- valueIsFilePath: true,
618
- configEnv: configDef.env,
619
- valueIsLoadedWithImport: false,
620
- valueIsDefinedByPlusValueFile: false,
621
- definedAt: definedAtFilePath,
622
- };
623
- return configValueSource;
624
- }
625
- // +config.js
626
- if (plusFile.isConfigFile) {
627
- (0, utils_js_1.assert)(confVal.valueIsLoaded);
628
- // Defined over pointer import
629
- const pointerImport = plusFile.pointerImportsByConfigName[configName];
630
- if (pointerImport) {
631
- const value = pointerImport.fileExportValueLoaded
632
- ? {
633
- valueIsLoaded: true,
634
- value: pointerImport.fileExportValue,
635
- }
636
- : {
637
- valueIsLoaded: false,
638
- };
639
- const configValueSource = {
640
- ...configValueSourceCommon,
641
- ...value,
642
- configEnv: resolveConfigEnv(configDef.env, pointerImport.fileExportPath),
643
- valueIsLoadedWithImport: true,
644
- valueIsDefinedByPlusValueFile: false,
645
- definedAt: pointerImport.fileExportPath,
646
- };
647
- return configValueSource;
648
- }
649
- // Defined inside +config.js
650
- const configValueSource = {
651
- ...configValueSourceCommon,
652
- valueIsLoaded: true,
653
- value: confVal.value,
654
- configEnv: configDef.env,
655
- valueIsLoadedWithImport: false,
656
- valueIsDefinedByPlusValueFile: false,
657
- definedAt: definedAtFilePath_,
658
- };
659
- return configValueSource;
660
- }
661
- // Defined by value file, i.e. +{configName}.js
662
- if (!plusFile.isConfigFile) {
663
- const configEnvResolved = resolveConfigEnv(configDef.env, plusFile.filePath);
664
- (0, utils_js_1.assert)(confVal.valueIsLoaded === !!configEnvResolved.config);
665
- const configValueSource = {
666
- ...configValueSourceCommon,
667
- ...confVal,
668
- configEnv: configEnvResolved,
669
- valueIsLoadedWithImport: !confVal.valueIsLoaded || !(0, serializeConfigValues_js_1.isJsonValue)(confVal.value),
670
- valueIsDefinedByPlusValueFile: true,
671
- definedAt: {
672
- ...plusFile.filePath,
673
- fileExportPathToShowToUser: configName === plusFile.configName
674
- ? []
675
- : // Side-effect config (e.g. `export { frontmatter }` of .md files)
676
- [configName],
677
- },
678
- };
679
- return configValueSource;
680
- }
681
- (0, utils_js_1.assert)(false);
682
- }
683
- function isDefiningPage(plusFiles) {
684
- for (const plusFile of plusFiles) {
685
- const configNames = getConfigNamesSetByPlusFile(plusFile);
686
- if (configNames.some((configName) => isDefiningPageConfig(configName))) {
687
- return true;
688
- }
689
- }
690
- return false;
691
- }
692
- function isDefiningPageConfig(configName) {
693
- return ['Page', 'route'].includes(configName);
694
- }
695
- function resolveIsGlobalValue(configDefGlobal, source, plusFilesAll) {
696
- (0, utils_js_1.assert)(source.valueIsLoaded);
697
- let isGlobal;
698
- if ((0, utils_js_1.isCallable)(configDefGlobal))
699
- isGlobal = configDefGlobal(source.value, {
700
- isGlobalLocation: isGlobalLocation(source.locationId, plusFilesAll),
701
- });
702
- else
703
- isGlobal = configDefGlobal ?? false;
704
- (0, utils_js_1.assert)(typeof isGlobal === 'boolean');
705
- return isGlobal;
706
- }
707
- function getConfigNamesSetByPlusFile(plusFile) {
708
- if (!plusFile.isConfigFile) {
709
- return [plusFile.configName];
710
- }
711
- else {
712
- return Object.keys(plusFile.fileExportsByConfigName);
713
- }
714
- }
715
- function getConfigDefinitions(plusFilesRelevant, filter) {
716
- let configDefinitions = { ...configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn };
717
- // Add user-land meta configs
718
- plusFilesRelevant
719
- .slice()
720
- .reverse()
721
- .forEach((plusFile) => {
722
- const confVal = getConfVal(plusFile, 'meta');
723
- if (!confVal)
724
- return;
725
- (0, utils_js_1.assert)(confVal.valueIsLoaded);
726
- const meta = confVal.value;
727
- assertMetaUsage(meta, `Config ${picocolors_1.default.cyan('meta')} defined at ${plusFile.filePath.filePathToShowToUser}`);
728
- // Set configDef._userEffectDefinedAtFilePath
729
- Object.entries(meta).forEach(([configName, configDef]) => {
730
- if ('isDefinedByPeerDependency' in configDef)
731
- return;
732
- if (!configDef.effect)
733
- return;
734
- (0, utils_js_1.assert)(plusFile.isConfigFile);
735
- configDef._userEffectDefinedAtFilePath = {
736
- ...plusFile.filePath,
737
- fileExportPathToShowToUser: ['default', 'meta', configName, 'effect'],
738
- };
739
- });
740
- (0, utils_js_1.objectEntries)(meta).forEach(([configName, configDefinitionUserLand]) => {
741
- if ('isDefinedByPeerDependency' in configDefinitionUserLand) {
742
- configDefinitionUserLand = {
743
- env: { client: false, server: false, config: false },
744
- ...configDefinitionUserLand,
745
- };
746
- }
747
- // User can override an existing config definition
748
- configDefinitions[configName] = {
749
- ...configDefinitions[configName],
750
- ...configDefinitionUserLand,
751
- };
752
- });
753
- });
754
- if (filter) {
755
- configDefinitions = Object.fromEntries(Object.entries(configDefinitions).filter(([_configName, configDef]) => filter(configDef)));
756
- }
757
- return configDefinitions;
758
- }
759
- function assertMetaUsage(metaVal, metaConfigDefinedAt) {
760
- if (!(0, utils_js_1.isObject)(metaVal)) {
761
- (0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
762
- (0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} has an invalid type ${picocolors_1.default.cyan(typeof metaVal)}: it should be an object instead.`);
763
- }
764
- (0, utils_js_1.objectEntries)(metaVal).forEach(([configName, def]) => {
765
- if (!(0, utils_js_1.isObject)(def)) {
766
- (0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
767
- (0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}`)} to a value with an invalid type ${picocolors_1.default.cyan(typeof def)}: it should be an object instead.`);
768
- }
769
- if (def.isDefinedByPeerDependency)
770
- return;
771
- // env
772
- let configEnv;
773
- {
774
- (0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
775
- if (!('env' in def)) {
776
- (0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} doesn't set ${picocolors_1.default.cyan(`meta.${configName}.env`)} but it's required.`);
777
- }
778
- configEnv = getConfigEnvValue(def.env, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.env`)} to`);
779
- // Overwrite deprecated value with valid value
780
- // TO-DO/next-major-release: remove once support for the deprecated values is removed
781
- if (typeof def.env === 'string')
782
- def.env = configEnv;
783
- }
784
- // effect
785
- if ('effect' in def) {
786
- if (!(0, utils_js_1.hasProp)(def, 'effect', 'function')) {
787
- (0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
788
- (0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.effect`)} to an invalid type ${picocolors_1.default.cyan(typeof def.effect)}: it should be a function instead`);
789
- }
790
- if (!configEnv.config) {
791
- (0, utils_js_1.assert)(metaConfigDefinedAt); // We expect internal effects to return a valid meta value
792
- (0, utils_js_1.assertUsage)(false, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.effect`)} but it's only supported if meta.${configName}.env has ${picocolors_1.default.cyan('{ config: true }')} (but it's ${picocolors_1.default.cyan(JSON.stringify(configEnv))} instead)`);
793
- }
794
- }
795
- });
796
- }
797
- // Test: https://github.com/vikejs/vike/blob/441a37c4c1a3b07bb8f6efb1d1f7be297a53974a/test/playground/vite.config.ts#L39
798
- function applyEffectsConfVal(configValueSources, configDefinitions, plusFilesAll) {
799
- (0, utils_js_1.objectEntries)(configDefinitions).forEach(([configNameEffect, configDefEffect]) => {
800
- const sourceEffect = configValueSources[configNameEffect]?.[0];
801
- if (!sourceEffect)
802
- return;
803
- const effect = runEffect(configNameEffect, configDefEffect, sourceEffect);
804
- if (!effect)
805
- return;
806
- const configModFromEffect = effect;
807
- applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions, plusFilesAll);
808
- });
809
- }
810
- // Test: https://github.com/vikejs/vike/blob/441a37c4c1a3b07bb8f6efb1d1f7be297a53974a/test/playground/pages/config-meta/effect/e2e-test.ts#L16
811
- function applyEffectsMetaEnv(configValueSources, configDefinitions) {
812
- (0, utils_js_1.objectEntries)(configDefinitions).forEach(([configNameEffect, configDefEffect]) => {
813
- const sourceEffect = configValueSources[configNameEffect]?.[0];
814
- if (!sourceEffect)
815
- return;
816
- const effect = runEffect(configNameEffect, configDefEffect, sourceEffect);
817
- if (!effect)
818
- return;
819
- const configModFromEffect = effect;
820
- applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEffect);
821
- });
822
- }
823
- function runEffect(configName, configDef, source) {
824
- if (!configDef.effect)
825
- return null;
826
- // The value needs to be loaded at config time, that's why we only support effect for configs that are config-only for now.
827
- (0, utils_js_1.assertUsage)(configDef.env.config, [
828
- `Cannot add meta.effect to ${picocolors_1.default.cyan(configName)} because its meta.env is ${picocolors_1.default.cyan(JSON.stringify(configDef.env))} but an effect can only be added to a config that has a meta.env with ${picocolors_1.default.cyan('{ config: true }')}.`,
829
- ].join(' '));
830
- (0, utils_js_1.assert)(source.valueIsLoaded);
831
- // Call effect
832
- const configModFromEffect = configDef.effect({
833
- configValue: source.value,
834
- configDefinedAt: (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, source.definedAt),
835
- });
836
- if (!configModFromEffect)
837
- return null;
838
- return configModFromEffect;
839
- }
840
- function applyEffectConfVal(configModFromEffect, sourceEffect, configValueSources, configNameEffect, configDefEffect, configDefinitions, plusFilesAll) {
841
- (0, utils_js_1.objectEntries)(configModFromEffect).forEach(([configNameTarget, configValue]) => {
842
- if (configNameTarget === 'meta')
843
- return;
844
- const configDef = configDefinitions[configNameTarget];
845
- (0, utils_js_1.assert)(configDef);
846
- (0, utils_js_1.assert)(configDefEffect._userEffectDefinedAtFilePath);
847
- const configValueSource = {
848
- definedAt: configDefEffect._userEffectDefinedAtFilePath,
849
- plusFile: sourceEffect.plusFile,
850
- locationId: sourceEffect.locationId,
851
- configEnv: configDef.env,
852
- valueIsLoadedWithImport: false,
853
- valueIsDefinedByPlusValueFile: false,
854
- valueIsLoaded: true,
855
- value: configValue,
856
- };
857
- (0, utils_js_1.assert)(sourceEffect.valueIsLoaded);
858
- const isValueGlobalSource = resolveIsGlobalValue(configDefEffect.global, sourceEffect, plusFilesAll);
859
- const isValueGlobalTarget = resolveIsGlobalValue(configDef.global, configValueSource, plusFilesAll);
860
- const isGlobalHumanReadable = (isGlobal) => `${isGlobal ? 'non-' : ''}global`;
861
- // The error message make it sound like it's an inherent limitation, it actually isn't (both ways can make senses).
862
- (0, utils_js_1.assertUsage)(isValueGlobalSource === isValueGlobalTarget, `The configuration ${picocolors_1.default.cyan(configNameEffect)} is set to ${picocolors_1.default.cyan(JSON.stringify(sourceEffect.value))} which is considered ${isGlobalHumanReadable(isValueGlobalSource)}. However, it has a meta.effect that sets the configuration ${picocolors_1.default.cyan(configNameTarget)} to ${picocolors_1.default.cyan(JSON.stringify(configValue))} which is considered ${isGlobalHumanReadable(isValueGlobalTarget)}. This is contradictory: make sure the values are either both non-global or both global.`);
863
- configValueSources[configNameTarget] ?? (configValueSources[configNameTarget] = []);
864
- configValueSources[configNameTarget].push(configValueSource);
865
- });
866
- }
867
- function applyEffectMetaEnv(configModFromEffect, configValueSources, configDefEffect) {
868
- const notSupported = `${picocolors_1.default.cyan('meta.effect')} currently only supports setting the value of a config, or modifying the ${picocolors_1.default.cyan('meta.env')} of a config.`;
869
- (0, utils_js_1.objectEntries)(configModFromEffect).forEach(([configNameTarget, configValue]) => {
870
- if (configNameTarget !== 'meta')
871
- return;
872
- let configDefinedAt;
873
- if (configDefEffect._userEffectDefinedAtFilePath) {
874
- configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configNameTarget, configDefEffect._userEffectDefinedAtFilePath);
875
- }
876
- else {
877
- configDefinedAt = null;
878
- }
879
- assertMetaUsage(configValue, configDefinedAt);
880
- (0, utils_js_1.objectEntries)(configValue).forEach(([configTargetName, configTargetDef]) => {
881
- (0, utils_js_1.assert)(!('isDefinedByPeerDependency' in configTargetDef));
882
- {
883
- const keys = Object.keys(configTargetDef);
884
- (0, utils_js_1.assertUsage)(keys.includes('env'), notSupported);
885
- (0, utils_js_1.assertUsage)(keys.length === 1, notSupported);
886
- }
887
- const envOverridden = configTargetDef.env;
888
- const sources = configValueSources[configTargetName];
889
- sources?.forEach((configValueSource) => {
890
- // Apply effect
891
- configValueSource.configEnv = envOverridden;
892
- });
893
- });
894
- });
895
- }
896
- function getComputed(pageConfig) {
897
- const configValuesComputed = {};
898
- (0, utils_js_1.objectEntries)(pageConfig.configDefinitions).forEach(([configName, configDef]) => {
899
- if (!configDef._computed)
900
- return;
901
- const value = configDef._computed(pageConfig);
902
- if (value === undefined)
903
- return;
904
- configValuesComputed[configName] = {
905
- value,
906
- configEnv: configDef.env,
907
- };
908
- });
909
- return configValuesComputed;
910
- }
911
- // Show error message upon unknown config
912
- function assertKnownConfigs(configDefinitionsResolved) {
913
- (0, utils_js_1.objectEntries)(configDefinitionsResolved.configDefinitionsLocal).forEach(([_locationId, { configNamesKnownLocal, plusFiles }]) => {
914
- plusFiles.forEach((plusFile) => {
915
- const configNames = getConfigNamesSetByPlusFile(plusFile);
916
- configNames.forEach((configName) => {
917
- const { locationId } = plusFile;
918
- const sourceName = plusFile.filePath.filePathToShowToUser;
919
- assertKnownConfig(configName, configNamesKnownLocal, configDefinitionsResolved, locationId, true, sourceName, false);
920
- });
921
- });
922
- });
923
- }
924
- function assertKnownConfig(configName, configNamesKnownRelevant, configDefinitionsResolved, locationId, isPlusFile, sourceName, exitOnError) {
925
- const { configNamesKnownAll } = configDefinitionsResolved;
926
- if (configNamesKnownRelevant.includes(configName)) {
927
- (0, utils_js_1.assert)(configNamesKnownAll.includes(configName));
928
- return;
929
- }
930
- const configNameColored = picocolors_1.default.cyan(configName);
931
- // Inheritance issue: config is known but isn't defined at `locationId`
932
- if (configNamesKnownAll.includes(configName)) {
933
- (0, utils_js_1.assertUsage)(false, `${sourceName} sets the value of the config ${configNameColored} which is a custom config that is defined with ${picocolors_1.default.underline('https://vike.dev/meta')} at a path that doesn't apply to ${locationId} — see ${picocolors_1.default.underline('https://vike.dev/config#inheritance')}`, { exitOnError });
934
- }
935
- const errMsg = isPlusFile
936
- ? `${sourceName} sets an unknown config ${configNameColored}`
937
- : `${sourceName} sets an unknown Vike config, see ${picocolors_1.default.underline('https://vike.dev/cli')} for the list of CLI options`;
938
- (0, utils_js_1.assert)(errMsg.includes(configName));
939
- // Missing vike-{react,vue,solid} installation
940
- {
941
- const ui = ['vike-react', 'vike-vue', 'vike-solid'];
942
- const knownVikeExntensionConfigs = {
943
- description: ui,
944
- favicon: ui,
945
- Head: ui,
946
- Layout: ui,
947
- onCreateApp: ['vike-vue'],
948
- title: ui,
949
- ssr: ui,
950
- stream: ui,
951
- Wrapper: ui,
952
- };
953
- if (configName in knownVikeExntensionConfigs) {
954
- const requiredVikeExtension = (0, utils_js_1.joinEnglish)(knownVikeExntensionConfigs[configName].map((e) => picocolors_1.default.bold(e)), 'or');
955
- const errMsgEnhanced = `${errMsg}. If you want to use the configuration ${configNameColored} documented at ${picocolors_1.default.underline(`https://vike.dev/${configName}`)} then make sure to install ${requiredVikeExtension}. (Alternatively, you can define ${configNameColored} yourself by using ${picocolors_1.default.cyan('meta')}, see ${picocolors_1.default.underline('https://vike.dev/meta')} for more information.)`;
956
- (0, utils_js_1.assertUsage)(false, errMsgEnhanced, { exitOnError });
957
- }
958
- }
959
- // Similarity hint
960
- let configNameSimilar = null;
961
- if (configName === 'page') {
962
- configNameSimilar = 'Page';
963
- }
964
- else {
965
- configNameSimilar = (0, utils_js_1.getMostSimilar)(configName, configNamesKnownAll);
966
- }
967
- if (configNameSimilar) {
968
- (0, utils_js_1.assert)(configNameSimilar !== configName);
969
- let errMsgEnhanced = `${errMsg}. Did you mean ${picocolors_1.default.cyan(configNameSimilar)} instead?`;
970
- if (configName === 'page') {
971
- errMsgEnhanced += ` (The name of the config ${picocolors_1.default.cyan('Page')} starts with a capital letter ${picocolors_1.default.cyan('P')} because it defines a UI component: a ubiquitous JavaScript convention is that the name of UI components start with a capital letter.)`;
972
- }
973
- (0, utils_js_1.assertUsage)(false, errMsgEnhanced, { exitOnError });
974
- }
975
- (0, utils_js_1.assertUsage)(false, errMsg, { exitOnError });
976
- }
977
- function determineRouteFilesystem(locationId, configValueSources) {
978
- const configName = 'filesystemRoutingRoot';
979
- const configFilesystemRoutingRoot = configValueSources[configName]?.[0];
980
- let filesystemRouteString = (0, filesystemRouting_js_1.getFilesystemRouteString)(locationId);
981
- if (determineIsErrorPage(filesystemRouteString)) {
982
- return { isErrorPage: true, routeFilesystem: undefined };
983
- }
984
- let filesystemRouteDefinedBy = (0, filesystemRouting_js_1.getFilesystemRouteDefinedBy)(locationId); // for log404()
985
- if (configFilesystemRoutingRoot) {
986
- const routingRoot = getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName);
987
- if (routingRoot) {
988
- const { filesystemRoutingRootEffect /*, filesystemRoutingRootConfigDefinedAt*/ } = routingRoot;
989
- const debugInfo = { locationId, routeFilesystem: filesystemRouteString, configFilesystemRoutingRoot };
990
- (0, utils_js_1.assert)(filesystemRouteString.startsWith(filesystemRoutingRootEffect.before), debugInfo);
991
- filesystemRouteString = (0, filesystemRouting_js_1.applyFilesystemRoutingRootEffect)(filesystemRouteString, filesystemRoutingRootEffect);
992
- // filesystemRouteDefinedBy = `${filesystemRouteDefinedBy} (with ${filesystemRoutingRootConfigDefinedAt})`
993
- }
994
- }
995
- (0, utils_js_1.assert)(filesystemRouteString.startsWith('/'));
996
- const routeFilesystem = {
997
- routeString: filesystemRouteString,
998
- definedAtLocation: filesystemRouteDefinedBy,
999
- };
1000
- return { routeFilesystem, isErrorPage: undefined };
1001
- }
1002
- function getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName) {
1003
- (0, utils_js_1.assert)(configFilesystemRoutingRoot.configEnv.config);
1004
- // Eagerly loaded since it's config-only
1005
- (0, utils_js_1.assert)(configFilesystemRoutingRoot.valueIsLoaded);
1006
- const { value } = configFilesystemRoutingRoot;
1007
- const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', configName, configFilesystemRoutingRoot.definedAt);
1008
- (0, utils_js_1.assertUsage)(typeof value === 'string', `${configDefinedAt} should be a string`);
1009
- (0, utils_js_1.assertUsage)(value.startsWith('/'), `${configDefinedAt} is ${picocolors_1.default.cyan(value)} but it should start with a leading slash ${picocolors_1.default.cyan('/')}`);
1010
- const { definedAt } = configFilesystemRoutingRoot;
1011
- (0, utils_js_1.assert)(!definedAt.definedBy);
1012
- const { filePathAbsoluteUserRootDir } = definedAt;
1013
- (0, utils_js_1.assert)(filePathAbsoluteUserRootDir);
1014
- const before = (0, filesystemRouting_js_1.getFilesystemRouteString)((0, filesystemRouting_js_1.getLocationId)(filePathAbsoluteUserRootDir));
1015
- const after = value;
1016
- const filesystemRoutingRootEffect = { before, after };
1017
- return { filesystemRoutingRootEffect, filesystemRoutingRootConfigDefinedAt: configDefinedAt };
1018
- }
1019
- function determineIsErrorPage(routeFilesystem) {
1020
- (0, utils_js_1.assertPosixPath)(routeFilesystem);
1021
- return routeFilesystem.split('/').includes('_error');
1022
- }
1023
- function getConfigEnvValue(val, errMsgIntro) {
1024
- const errInvalidValue = `${errMsgIntro} an invalid value ${picocolors_1.default.cyan(JSON.stringify(val))}`;
1025
- // Legacy outdated values
1026
- // TO-DO/next-major-release: remove
1027
- if (typeof val === 'string') {
1028
- const valConverted = (() => {
1029
- if (val === 'client-only')
1030
- return { client: true };
1031
- if (val === 'server-only')
1032
- return { server: true };
1033
- if (val === 'server-and-client')
1034
- return { server: true, client: true };
1035
- if (val === 'config-only')
1036
- return { config: true };
1037
- if (val === '_routing-lazy')
1038
- return { server: true, client: 'if-client-routing' };
1039
- if (val === '_routing-eager')
1040
- return { server: true, client: 'if-client-routing', eager: true };
1041
- (0, utils_js_1.assertUsage)(false, errInvalidValue);
1042
- })();
1043
- (0, utils_js_1.assertWarning)(false, `${errMsgIntro} ${picocolors_1.default.cyan(val)} which is deprecated and will be removed in the next major release`, { onlyOnce: true });
1044
- return valConverted;
1045
- }
1046
- (0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(val), `${errMsgIntro} an invalid type ${picocolors_1.default.cyan(typeof val)}`);
1047
- (0, utils_js_1.assertKeys)(val, ['config', 'server', 'client'], `${errInvalidValue}:`);
1048
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(val, 'config', 'undefined') || (0, utils_js_1.hasProp)(val, 'config', 'boolean'), errInvalidValue);
1049
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(val, 'server', 'undefined') || (0, utils_js_1.hasProp)(val, 'server', 'boolean'), errInvalidValue);
1050
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(val, 'client', 'undefined') || (0, utils_js_1.hasProp)(val, 'client', 'boolean'), errInvalidValue);
1051
- /* To allow users to set an eager config:
1052
- * - Uncomment line below.
1053
- * - Add 'eager' to assertKeys() call above.
1054
- * - Add `eager: boolean` to ConfigEnv type.
1055
- assertUsage(hasProp(val, 'eager', 'undefined') || hasProp(val, 'eager', 'boolean'), errInvalidValue)
1056
- */
1057
- return val;
1058
- }
1059
- function getConfigDefinitionOptional(configDefinitions, configName) {
1060
- return configDefinitions[configName] ?? null;
1061
- }
1062
- function getConfVal(plusFile, configName) {
1063
- const configNames = getConfigNamesSetByPlusFile(plusFile);
1064
- if (!configNames.includes(configName))
1065
- return null;
1066
- if (plusFile.isNotLoaded)
1067
- return { valueIsLoaded: false };
1068
- const confVal = { value: plusFile.fileExportsByConfigName[configName], valueIsLoaded: true };
1069
- return confVal;
1070
- }
1071
- function resolveConfigEnv(configEnv, filePath) {
1072
- const configEnvResolved = { ...configEnv };
1073
- if (filePath.filePathAbsoluteFilesystem) {
1074
- const { fileName } = filePath;
1075
- if (fileName.includes('.server.')) {
1076
- configEnvResolved.server = true;
1077
- configEnvResolved.client = false;
1078
- }
1079
- else if (fileName.includes('.client.')) {
1080
- configEnvResolved.client = true;
1081
- configEnvResolved.server = false;
1082
- }
1083
- else if (fileName.includes('.shared.')) {
1084
- configEnvResolved.server = true;
1085
- configEnvResolved.client = true;
1086
- }
1087
- }
1088
- return configEnvResolved;
1089
- }
1090
- /** Whether configs defined in `locationId` apply to every page */
1091
- function isGlobalLocation(locationId, plusFilesAll) {
1092
- const locationIdsPage = (0, utils_js_1.objectEntries)(plusFilesAll)
1093
- .filter(([_locationId, plusFiles]) => isDefiningPage(plusFiles))
1094
- .map(([locationId]) => locationId);
1095
- return locationIdsPage.every((locId) => (0, filesystemRouting_js_1.isInherited)(locationId, locId));
1096
- }
1097
- function resolvePrerenderContext(vikeConfig) {
1098
- const { isPrerenderingEnabled, isPrerenderingEnabledForAllPages } = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
1099
- globalObject.prerenderContext ?? (globalObject.prerenderContext = {
1100
- isPrerenderingEnabled: false,
1101
- isPrerenderingEnabledForAllPages: false,
1102
- // Set at runPrerender()
1103
- output: null,
1104
- // Set at runPrerender()
1105
- pageContexts: null,
1106
- });
1107
- globalObject.prerenderContext.isPrerenderingEnabled = isPrerenderingEnabled;
1108
- globalObject.prerenderContext.isPrerenderingEnabledForAllPages = isPrerenderingEnabledForAllPages;
1109
- return globalObject.prerenderContext;
1110
- }
1111
- function restartViteDevServer() {
1112
- const viteDevServer = (0, globalContext_js_1.getViteDevServer)();
1113
- (0, utils_js_1.assert)(viteDevServer);
1114
- (0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_enable)();
1115
- (async () => {
1116
- try {
1117
- await viteDevServer.restart(true);
1118
- }
1119
- catch (err) {
1120
- console.error('Vite restart error:');
1121
- console.error(err);
1122
- }
1123
- })();
1124
- (0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_disable)();
1125
- }
1126
- function getVikeConfigDummy(esbuildCache) {
1127
- const pageConfigsDummy = [];
1128
- const pageConfigGlobalDummy = {
1129
- configValueSources: {},
1130
- configDefinitions: {},
1131
- };
1132
- const globalConfigPublicDummy = resolveGlobalConfig(pageConfigGlobalDummy, pageConfigsDummy);
1133
- const prerenderContextDummy = resolvePrerenderContext({
1134
- config: globalConfigPublicDummy.config,
1135
- _from: globalConfigPublicDummy._from,
1136
- _pageConfigs: pageConfigsDummy,
1137
- });
1138
- const vikeConfigDummy = {
1139
- _pageConfigs: pageConfigsDummy,
1140
- _pageConfigGlobal: {
1141
- configDefinitions: {},
1142
- configValueSources: {},
1143
- },
1144
- ...globalConfigPublicDummy,
1145
- prerenderContext: prerenderContextDummy,
1146
- _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
1147
- };
1148
- globalObject.vikeConfigSync = vikeConfigDummy;
1149
- globalObject.isV1Design_ = true;
1150
- return vikeConfigDummy;
1151
- }