vike 0.4.143 → 0.4.144-commit-e40e9b1

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 (182) hide show
  1. package/dist/cjs/node/plugin/index.js +2 -2
  2. package/dist/cjs/node/plugin/plugins/buildConfig.js +1 -1
  3. package/dist/cjs/node/plugin/plugins/config/index.js +1 -1
  4. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +31 -30
  5. package/dist/cjs/node/plugin/plugins/importUserCode/generateEagerImport.js +19 -8
  6. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +19 -10
  7. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +2 -2
  8. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +6 -0
  9. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -4
  10. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +228 -186
  11. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +11 -35
  12. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +60 -95
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/helpers.js +12 -5
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +18 -0
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.js +25 -25
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +14 -13
  17. package/dist/cjs/node/plugin/shared/findPageFiles.js +2 -1
  18. package/dist/cjs/node/plugin/shared/{getConfigValueSource.js → getConfigValueSourcesRelevant.js} +1 -12
  19. package/dist/cjs/node/plugin/shared/loggerNotProd.js +1 -1
  20. package/dist/cjs/node/plugin/utils.js +2 -3
  21. package/dist/cjs/node/prerender/runPrerender.js +18 -20
  22. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  23. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  24. package/dist/cjs/node/runtime/renderPage/loadPageFilesServerSide.js +2 -2
  25. package/dist/cjs/node/runtime/renderPage/log404/index.js +10 -5
  26. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -2
  27. package/dist/cjs/node/runtime/renderPage.js +1 -1
  28. package/dist/cjs/node/shared/getClientEntryFilePath.js +1 -7
  29. package/dist/cjs/shared/assertPageContextProvidedByUser.js +1 -1
  30. package/dist/cjs/shared/error-page.js +1 -1
  31. package/dist/cjs/shared/getPageFiles/getExports.js +8 -11
  32. package/dist/cjs/shared/getPageFiles/parseGlobResults.js +10 -44
  33. package/dist/cjs/shared/hooks/getHook.js +3 -1
  34. package/dist/cjs/shared/page-configs/assertExports.js +60 -0
  35. package/dist/cjs/shared/page-configs/getExportPath.js +9 -10
  36. package/dist/cjs/shared/page-configs/loadConfigValues.js +18 -0
  37. package/dist/cjs/shared/page-configs/serialize/PageConfigSerialized.js +2 -0
  38. package/dist/cjs/shared/page-configs/serialize/assertPageConfigs.js +19 -0
  39. package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +56 -0
  40. package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +65 -0
  41. package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +58 -0
  42. package/dist/cjs/shared/page-configs/utils.js +65 -42
  43. package/dist/cjs/shared/route/loadPageRoutes.js +12 -15
  44. package/dist/cjs/shared/route/resolveRedirects.js +1 -1
  45. package/dist/cjs/shared/route/resolveRouteFunction.js +1 -0
  46. package/dist/cjs/shared/utils.js +0 -1
  47. package/dist/cjs/utils/getOutDirs.js +25 -18
  48. package/dist/cjs/utils/getValuePrintable.js +1 -1
  49. package/dist/cjs/utils/objectAssign.js +3 -1
  50. package/dist/cjs/utils/projectInfo.js +1 -1
  51. package/dist/cjs/utils/{resolve.js → requireResolve.js} +3 -3
  52. package/dist/cjs/utils/warnIfErrorIsNotObject.js +1 -1
  53. package/dist/esm/__internal/index.d.ts +3 -3
  54. package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +2 -2
  55. package/dist/esm/client/client-routing-runtime/getPageContext.d.ts +2 -2
  56. package/dist/esm/client/client-routing-runtime/getPageId.d.ts +2 -2
  57. package/dist/esm/client/client-routing-runtime/useClientRouter.js +3 -3
  58. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
  59. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
  60. package/dist/esm/client/shared/loadPageFilesClientSide.d.ts +2 -2
  61. package/dist/esm/client/shared/loadPageFilesClientSide.js +2 -2
  62. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  63. package/dist/esm/node/plugin/index.js +3 -2
  64. package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
  65. package/dist/esm/node/plugin/plugins/config/index.js +2 -2
  66. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +31 -30
  67. package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.d.ts +13 -2
  68. package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.js +19 -8
  69. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +20 -11
  70. package/dist/esm/node/plugin/plugins/importUserCode/index.js +3 -3
  71. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.d.ts +19 -2
  72. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +6 -0
  73. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +5 -4
  74. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -4
  75. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +4 -4
  76. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +229 -187
  77. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.d.ts +1 -1
  78. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +11 -32
  79. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.d.ts +3 -3
  80. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +60 -95
  81. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.d.ts +3 -3
  82. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.js +12 -5
  83. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.d.ts +7 -0
  84. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +15 -0
  85. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.d.ts +18 -6
  86. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.js +25 -25
  87. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.d.ts +2 -2
  88. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +14 -13
  89. package/dist/esm/node/plugin/shared/findPageFiles.js +3 -2
  90. package/dist/esm/node/plugin/shared/{getConfigValueSource.d.ts → getConfigValueSourcesRelevant.d.ts} +0 -2
  91. package/dist/esm/node/plugin/shared/{getConfigValueSource.js → getConfigValueSourcesRelevant.js} +0 -11
  92. package/dist/esm/node/plugin/shared/loggerNotProd.js +2 -2
  93. package/dist/esm/node/plugin/utils.d.ts +1 -2
  94. package/dist/esm/node/plugin/utils.js +2 -3
  95. package/dist/esm/node/prerender/runPrerender.js +20 -22
  96. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  97. package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -2
  98. package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +2 -2
  99. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
  100. package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -2
  101. package/dist/esm/node/runtime/renderPage/createHttpResponseObject.d.ts +2 -2
  102. package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +2 -2
  103. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +2 -2
  104. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  105. package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.d.ts +2 -2
  106. package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.js +2 -2
  107. package/dist/esm/node/runtime/renderPage/log404/index.js +10 -5
  108. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  109. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +13 -13
  110. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -2
  111. package/dist/esm/node/runtime/renderPage.js +1 -1
  112. package/dist/esm/node/shared/getClientEntryFilePath.d.ts +2 -2
  113. package/dist/esm/node/shared/getClientEntryFilePath.js +2 -8
  114. package/dist/esm/shared/addIs404ToPageProps.d.ts +2 -2
  115. package/dist/esm/shared/addUrlComputedProps.d.ts +4 -2
  116. package/dist/esm/shared/assertPageContextProvidedByUser.js +1 -1
  117. package/dist/esm/shared/error-page.d.ts +3 -3
  118. package/dist/esm/shared/error-page.js +1 -1
  119. package/dist/esm/shared/getPageFiles/analyzeClientSide.d.ts +2 -2
  120. package/dist/esm/shared/getPageFiles/getExports.d.ts +3 -4
  121. package/dist/esm/shared/getPageFiles/getExports.js +7 -10
  122. package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +3 -3
  123. package/dist/esm/shared/getPageFiles/parseGlobResults.js +9 -43
  124. package/dist/esm/shared/getPageFiles/setPageFiles.d.ts +3 -3
  125. package/dist/esm/shared/hooks/getHook.js +3 -1
  126. package/dist/esm/shared/page-configs/Config.d.ts +201 -14
  127. package/dist/esm/shared/page-configs/PageConfig.d.ts +80 -73
  128. package/dist/esm/shared/page-configs/assertExports.d.ts +6 -0
  129. package/dist/esm/shared/page-configs/assertExports.js +54 -0
  130. package/dist/esm/shared/page-configs/findPageConfig.d.ts +2 -2
  131. package/dist/esm/shared/page-configs/getExportPath.d.ts +1 -1
  132. package/dist/esm/shared/page-configs/getExportPath.js +9 -10
  133. package/dist/esm/shared/page-configs/loadConfigValues.d.ts +3 -0
  134. package/dist/esm/shared/page-configs/loadConfigValues.js +15 -0
  135. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +32 -0
  136. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.js +1 -0
  137. package/dist/esm/shared/page-configs/serialize/assertPageConfigs.d.ts +5 -0
  138. package/dist/esm/shared/page-configs/serialize/assertPageConfigs.js +16 -0
  139. package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.d.ts +4 -0
  140. package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +50 -0
  141. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +7 -0
  142. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +62 -0
  143. package/dist/esm/shared/page-configs/serialize/serializeConfigValue.d.ts +8 -0
  144. package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +52 -0
  145. package/dist/esm/shared/page-configs/utils.d.ts +21 -14
  146. package/dist/esm/shared/page-configs/utils.js +64 -41
  147. package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
  148. package/dist/esm/shared/route/index.d.ts +3 -3
  149. package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -2
  150. package/dist/esm/shared/route/loadPageRoutes.js +13 -16
  151. package/dist/esm/shared/route/resolveRedirects.js +1 -1
  152. package/dist/esm/shared/route/resolveRouteFunction.js +1 -0
  153. package/dist/esm/shared/types.d.ts +8 -6
  154. package/dist/esm/shared/utils.d.ts +0 -1
  155. package/dist/esm/shared/utils.js +0 -1
  156. package/dist/esm/types/index.d.ts +2 -1
  157. package/dist/esm/utils/getOutDirs.d.ts +0 -2
  158. package/dist/esm/utils/getOutDirs.js +24 -17
  159. package/dist/esm/utils/getValuePrintable.js +1 -1
  160. package/dist/esm/utils/objectAssign.js +3 -1
  161. package/dist/esm/utils/projectInfo.d.ts +1 -1
  162. package/dist/esm/utils/projectInfo.js +1 -1
  163. package/dist/esm/utils/requireResolve.d.ts +2 -0
  164. package/dist/esm/utils/{resolve.js → requireResolve.js} +2 -2
  165. package/dist/esm/utils/warnIfErrorIsNotObject.js +1 -1
  166. package/package.json +2 -2
  167. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.js +0 -13
  168. package/dist/cjs/shared/getPageFiles/assertPageConfigs.js +0 -19
  169. package/dist/cjs/shared/page-configs/loadPageCode.js +0 -63
  170. package/dist/cjs/utils/assertDefaultExport.js +0 -53
  171. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.d.ts +0 -3
  172. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.js +0 -10
  173. package/dist/esm/shared/getPageFiles/assertPageConfigs.d.ts +0 -5
  174. package/dist/esm/shared/getPageFiles/assertPageConfigs.js +0 -16
  175. package/dist/esm/shared/page-configs/loadPageCode.d.ts +0 -3
  176. package/dist/esm/shared/page-configs/loadPageCode.js +0 -57
  177. package/dist/esm/utils/assertDefaultExport.d.ts +0 -8
  178. package/dist/esm/utils/assertDefaultExport.js +0 -47
  179. package/dist/esm/utils/resolve.d.ts +0 -2
  180. /package/dist/cjs/shared/getPageFiles/{assertExports.js → assert_exports_old_design.js} +0 -0
  181. /package/dist/esm/shared/getPageFiles/{assertExports.d.ts → assert_exports_old_design.d.ts} +0 -0
  182. /package/dist/esm/shared/getPageFiles/{assertExports.js → assert_exports_old_design.js} +0 -0
@@ -54,7 +54,7 @@ function plugin(vikeConfig) {
54
54
  }
55
55
  exports.plugin = plugin;
56
56
  exports.ssr = plugin;
57
- // Enable `const ssr = require('vike/plugin')`.
57
+ // Enable `const vike = require('vike/plugin')`.
58
58
  // - This lives at the end of the file to ensure it happens after all assignments to `exports`.
59
59
  // - This is only used for the CJS build; we wrap it in a try-catch for the ESM build.
60
60
  try {
@@ -65,6 +65,6 @@ catch { }
65
65
  Object.defineProperty(plugin, 'apply', {
66
66
  enumerable: true,
67
67
  get: () => {
68
- (0, utils_js_1.assertUsage)(false, `Add ${picocolors_1.default.cyan('ssr()')} instead of ${picocolors_1.default.cyan('ssr')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
68
+ (0, utils_js_1.assertUsage)(false, `Add ${picocolors_1.default.cyan('vike()')} instead of ${picocolors_1.default.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
69
69
  }
70
70
  });
@@ -73,7 +73,7 @@ exports.buildConfig = buildConfig;
73
73
  async function getEntries(config) {
74
74
  const configVike = await (0, getConfigVike_js_1.getConfigVike)(config);
75
75
  const pageFileEntries = await getPageFileEntries(config, configVike.includeAssetsImportedByServer); // TODO/v1-release: remove
76
- const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config.root, false, configVike.extensions);
76
+ const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot, false, configVike.extensions);
77
77
  (0, utils_js_1.assertUsage)(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
78
78
  if ((0, utils_js_1.viteIsSSR)(config)) {
79
79
  const serverEntries = analyzeServerEntries(pageConfigs);
@@ -30,7 +30,7 @@ async function resolveConfig(vikeConfig, config) {
30
30
  const fromStemPackages = await (0, findConfigVikeFromStemPackages_js_1.findConfigVikeFromStemPackages)(config.root);
31
31
  const configs = [fromPluginOptions, ...fromStemPackages, fromViteConfig];
32
32
  const extensions = (0, resolveExtensions_js_1.resolveExtensions)(configs, config);
33
- const { globalVikeConfig: fromPlusConfigFile } = await (0, getVikeConfig_js_1.getVikeConfig)(config.root, (0, utils_js_1.isDev2)(config), extensions);
33
+ const { globalVikeConfig: fromPlusConfigFile } = await (0, getVikeConfig_js_1.getVikeConfig)(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot, (0, utils_js_1.isDev2)(config), extensions);
34
34
  configs.push(fromPlusConfigFile);
35
35
  (0, assertVikeConfig_js_1.assertVikeConfig)(fromPlusConfigFile, ({ prop, errMsg }) => {
36
36
  // TODO: add config file path ?
@@ -4,11 +4,11 @@ exports.determineOptimizeDeps = void 0;
4
4
  const findPageFiles_js_1 = require("../../shared/findPageFiles.js");
5
5
  const utils_js_1 = require("../../utils.js");
6
6
  const getVikeConfig_js_1 = require("../importUserCode/v1-design/getVikeConfig.js");
7
- const getConfigValueSource_js_1 = require("../../shared/getConfigValueSource.js");
7
+ const getConfigValueSourcesRelevant_js_1 = require("../../shared/getConfigValueSourcesRelevant.js");
8
8
  const buildConfig_js_1 = require("../buildConfig.js");
9
9
  const virtualFileImportUserCode_js_1 = require("../../../shared/virtual-files/virtualFileImportUserCode.js");
10
10
  async function determineOptimizeDeps(config, configVike, isDev) {
11
- const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config.root, isDev, configVike.extensions);
11
+ const { pageConfigs } = await (0, getVikeConfig_js_1.getVikeConfig)(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot, isDev, configVike.extensions);
12
12
  const { entries, include } = await getPageDeps(config, pageConfigs, isDev);
13
13
  {
14
14
  // This actually doesn't work: Vite's dep optimizer doesn't seem to be able to crawl virtual files.
@@ -24,7 +24,7 @@ async function determineOptimizeDeps(config, configVike, isDev) {
24
24
  */
25
25
  config.optimizeDeps.include = [...include, ...normalizeInclude(config.optimizeDeps.include)];
26
26
  config.optimizeDeps.entries = [...entries, ...normalizeEntries(config.optimizeDeps.entries)];
27
- // console.log('config.optimizeDeps', config.optimizeDeps)
27
+ // console.log('config.optimizeDeps', { entries: config.optimizeDeps.entries, include: config.optimizeDeps.include })
28
28
  }
29
29
  exports.determineOptimizeDeps = determineOptimizeDeps;
30
30
  async function getPageDeps(config, pageConfigs, isDev) {
@@ -33,39 +33,40 @@ async function getPageDeps(config, pageConfigs, isDev) {
33
33
  // V1 design
34
34
  {
35
35
  pageConfigs.forEach((pageConfig) => {
36
- const configValueSourcesRelevant = (0, getConfigValueSource_js_1.getConfigValueSourcesRelevant)(pageConfig);
36
+ const configValueSourcesRelevant = (0, getConfigValueSourcesRelevant_js_1.getConfigValueSourcesRelevant)(pageConfig);
37
37
  configValueSourcesRelevant.forEach((configValueSource) => {
38
- const { valueIsImportedAtRuntime, configEnv, definedAtInfo } = configValueSource;
39
- if (!valueIsImportedAtRuntime)
38
+ if (!configValueSource.valueIsImportedAtRuntime)
40
39
  return;
41
- const { filePath } = definedAtInfo;
42
- (0, utils_js_1.assert)(filePath);
40
+ const { definedAtInfo, configEnv } = configValueSource;
43
41
  if (configEnv !== 'client-only' && configEnv !== 'server-and-client')
44
42
  return;
45
- if (filePath.startsWith('/')) {
46
- // Is getFilePathAbsolute() really needed? This contradicts the code below that doesn't need getFilePathAbsolute().
47
- entries.push((0, utils_js_1.getFilePathAbsolute)(filePath, config));
48
- return;
49
- }
50
- // getVikeConfig() resolves relative import paths
51
- (0, utils_js_1.assert)(!filePath.startsWith('.'));
52
- // We need to differentiate between npm package imports and path aliases.
53
- // There are path aliases that cannot be distinguished from npm package names.
54
- // We recommend users to use the '#' prefix convention for path aliases, see https://vike.dev/path-aliases#vite and assertResolveAlias()
55
- if ((0, utils_js_1.isNpmPackageImport)(filePath)) {
56
- // isNpmPackageImport() returns false for a path alias like #root/renderer/onRenderClient
57
- (0, utils_js_1.assert)(!filePath.startsWith('#'));
58
- include.push(filePath);
43
+ if (definedAtInfo.filePathRelativeToUserRootDir !== null) {
44
+ const { filePathAbsolute } = definedAtInfo;
45
+ (0, utils_js_1.assert)(filePathAbsolute);
46
+ // Surprisingly Vite expects entries to be absolute paths
47
+ entries.push(filePathAbsolute);
59
48
  }
60
49
  else {
61
- /* Path aliases, e.g.:
62
- * ```js
63
- * // /renderer/+config.js
64
- * import onRenderClient from '#root/renderer/onRenderClient'
65
- * ```
66
- * Does Vite resolve the path aliases or is getFilePathAbsolute() needed?
67
- */
68
- entries.push(filePath);
50
+ // Adding definedAtInfo.filePathAbsolute doesn't work for npm packages, I guess because of Vite's config.server.fs.allow
51
+ const { importPathAbsolute } = definedAtInfo;
52
+ (0, utils_js_1.assert)(importPathAbsolute);
53
+ // We need to differentiate between npm package imports and path aliases.
54
+ // There are path aliases that cannot be distinguished from npm package names.
55
+ // We recommend users to use the '#' prefix convention for path aliases, see https://vike.dev/path-aliases#vite and assertResolveAlias()
56
+ if ((0, utils_js_1.isNpmPackageImport)(importPathAbsolute)) {
57
+ // isNpmPackageImport() returns false for a path alias like #root/renderer/onRenderClient
58
+ (0, utils_js_1.assert)(!importPathAbsolute.startsWith('#'));
59
+ include.push(importPathAbsolute);
60
+ }
61
+ else {
62
+ /* Path aliases, e.g.:
63
+ * ```js
64
+ * // /renderer/+config.js
65
+ * import onRenderClient from '#root/renderer/onRenderClient'
66
+ * ```
67
+ */
68
+ entries.push(importPathAbsolute);
69
+ }
69
70
  }
70
71
  });
71
72
  });
@@ -2,20 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateEagerImport = void 0;
4
4
  let varCounterGlobal = 0;
5
- function generateEagerImport(importPath, varCounter, importName) {
5
+ /**
6
+ * Naming:
7
+ * `import { someExport as someImport } from './some-file'`
8
+ * <=>
9
+ * `{`
10
+ * `importPath: './some-file',`
11
+ * `exportName: 'someExport',`
12
+ * `importName: 'someImport',`
13
+ * `}`
14
+ * We discard the information that the import variable is called `someImport` because we don't need it.
15
+ */
16
+ function generateEagerImport(importPath, varCounter, exportName) {
6
17
  if (varCounter === undefined)
7
18
  varCounter = varCounterGlobal++;
8
- const importVar = `import_${varCounter}`;
19
+ const importName = `import_${varCounter}`;
9
20
  const importLiteral = (() => {
10
- if (!importName || importName === '*') {
11
- return `* as ${importVar}`;
21
+ if (!exportName || exportName === '*') {
22
+ return `* as ${importName}`;
12
23
  }
13
- if (importName === 'default') {
14
- return importVar;
24
+ if (exportName === 'default') {
25
+ return importName;
15
26
  }
16
- return `{ ${importName} as ${importVar} }`;
27
+ return `{ ${exportName} as ${importName} }`;
17
28
  })();
18
29
  const importStatement = `import ${importLiteral} from '${importPath}';`;
19
- return { importVar, importStatement };
30
+ return { importName, importStatement };
20
31
  }
21
32
  exports.generateEagerImport = generateEagerImport;
@@ -127,9 +127,9 @@ function addImport(importPath, fileType, exportNames, isBuild) {
127
127
  return `() => import('${importPath}${query}')`;
128
128
  }
129
129
  else {
130
- const { importVar, importStatement } = (0, generateEagerImport_js_1.generateEagerImport)(`${importPath}${query}`);
130
+ const { importName, importStatement } = (0, generateEagerImport_js_1.generateEagerImport)(`${importPath}${query}`);
131
131
  fileContent += importStatement + '\n';
132
- return importVar;
132
+ return importName;
133
133
  }
134
134
  })();
135
135
  fileContent += `${mapVar}['${importPath}'] = ${value};\n`;
@@ -146,7 +146,7 @@ export const pageFilesList = [];
146
146
  export const neverLoaded = {};
147
147
  export const isGeneratedFile = true;
148
148
 
149
- ${await (0, getVirtualFilePageConfigs_js_1.getVirtualFilePageConfigs)(config.root, isForClientSide, isDev, id, configVike, isClientRouting)}
149
+ ${await (0, getVirtualFilePageConfigs_js_1.getVirtualFilePageConfigs)(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot, isForClientSide, isDev, id, configVike, isClientRouting)}
150
150
 
151
151
  `;
152
152
  fileTypes_js_1.fileTypes
@@ -210,10 +210,12 @@ function getGlobs(globRoots, isBuild, fileType, query) {
210
210
  ...globRoots.map((globRoot, i) => {
211
211
  const varNameLocal = `${varName}${i + 1}`;
212
212
  varNameLocals.push(varNameLocal);
213
- const globPath = `'${getGlobPath(globRoot, fileType)}'`;
213
+ const globIncludePath = `'${getGlobPath(globRoot.includeDir, fileType)}'`;
214
+ const globExcludePath = globRoot.excludeDir ? `'!${getGlobPath(globRoot.excludeDir, fileType)}'` : null;
214
215
  const globOptions = JSON.stringify({ eager: isEager, as: query });
215
216
  (0, utils_js_1.assert)(globOptions.startsWith('{"eager":true') || globOptions.startsWith('{"eager":false'));
216
- const globLine = `const ${varNameLocal} = import.meta.glob(${globPath}, ${globOptions});`;
217
+ const globPaths = globExcludePath ? `[${globIncludePath}, ${globExcludePath}]` : `[${globIncludePath}]`;
218
+ const globLine = `const ${varNameLocal} = import.meta.glob(${globPaths}, ${globOptions});`;
217
219
  return globLine;
218
220
  }),
219
221
  `const ${varName} = {${varNameLocals.map((varNameLocal) => `...${varNameLocal}`).join(',')}};`,
@@ -222,19 +224,26 @@ function getGlobs(globRoots, isBuild, fileType, query) {
222
224
  ].join('\n');
223
225
  }
224
226
  function getGlobRoots(config, configVike) {
225
- const globRoots = ['/'];
227
+ const globRoots = [
228
+ {
229
+ includeDir: '/',
230
+ excludeDir: path_1.default.posix.relative(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot)
231
+ }
232
+ ];
226
233
  configVike.extensions
227
234
  .map(({ pageConfigsSrcDir }) => pageConfigsSrcDir)
228
235
  .filter(utils_js_1.isNotNullish)
229
236
  .forEach((pageConfigsSrcDir) => {
230
- const globRoot = path_1.default.posix.relative(config.root, pageConfigsSrcDir);
237
+ const globRoot = {
238
+ includeDir: path_1.default.posix.relative(config.root, pageConfigsSrcDir)
239
+ };
231
240
  globRoots.push(globRoot);
232
241
  });
233
242
  return globRoots;
234
243
  }
235
- function getGlobPath(globRoot, fileType) {
236
- (0, utils_js_1.assertPosixPath)(globRoot);
237
- let globPath = [...globRoot.split('/'), '**', `*${fileType}.${utils_js_1.scriptFileExtensions}`].filter(Boolean).join('/');
244
+ function getGlobPath(globRootDir, fileType) {
245
+ (0, utils_js_1.assertPosixPath)(globRootDir);
246
+ let globPath = [...globRootDir.split('/'), '**', `*${fileType}.${utils_js_1.scriptFileExtensions}`].filter(Boolean).join('/');
238
247
  if (!globPath.startsWith('/')) {
239
248
  globPath = '/' + globPath;
240
249
  }
@@ -52,7 +52,7 @@ function importUserCode() {
52
52
  return undefined;
53
53
  id = (0, utils_js_1.getVirtualFileId)(id);
54
54
  if ((0, virtualFilePageConfigValuesAll_js_1.isVirtualFileIdPageConfigValuesAll)(id)) {
55
- const code = await (0, getVirtualFilePageConfigValuesAll_js_1.getVirtualFilePageConfigValuesAll)(id, config.root, isDev, configVike);
55
+ const code = await (0, getVirtualFilePageConfigValuesAll_js_1.getVirtualFilePageConfigValuesAll)(id, config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot, isDev, configVike);
56
56
  return code;
57
57
  }
58
58
  if ((0, virtualFileImportUserCode_js_1.isVirtualFileIdImportUserCode)(id)) {
@@ -126,7 +126,7 @@ function reloadConfig(filePath, config, configVike, op) {
126
126
  const msg = `${op} ${filePathToShowToUser}`;
127
127
  (0, loggerNotProd_js_1.logConfigInfo)(msg, 'info');
128
128
  }
129
- (0, getVikeConfig_js_1.reloadVikeConfig)(config.root, configVike.extensions);
129
+ (0, getVikeConfig_js_1.reloadVikeConfig)(config.root, (0, utils_js_1.getOutDirs)(config).outDirRoot, configVike.extensions);
130
130
  }
131
131
  function getVirtualModules(server) {
132
132
  const virtualModules = Array.from(server.moduleGraph.urlToModuleMap.keys())
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFilePathToShowToUser = void 0;
4
4
  const utils_js_1 = require("../../../utils.js");
5
+ /*
6
+ const f: FilePath = 1 as any
7
+ if (f.filePathRelativeToUserRootDir === null) {
8
+ f.importPathAbsolute
9
+ }
10
+ //*/
5
11
  function getFilePathToShowToUser(filePath) {
6
12
  const filePathToShowToUser = filePath.filePathRelativeToUserRootDir ?? filePath.filePathAbsolute;
7
13
  (0, utils_js_1.assert)(filePathToShowToUser);
@@ -68,13 +68,13 @@ const configDefinitionsBuiltIn = {
68
68
  },
69
69
  isClientSideRenderable: {
70
70
  env: 'server-and-client',
71
- _computed: (pageConfig) => (0, helpers_js_1.isConfigSet)(pageConfig, 'onRenderClient') &&
72
- (0, helpers_js_1.isConfigSet)(pageConfig, 'Page') &&
73
- (0, helpers_js_1.getConfigEnv)(pageConfig, 'Page') !== 'server-only'
71
+ _computed: (configValueSources) => (0, helpers_js_1.isConfigSet)(configValueSources, 'onRenderClient') &&
72
+ (0, helpers_js_1.isConfigSet)(configValueSources, 'Page') &&
73
+ (0, helpers_js_1.getConfigEnv)(configValueSources, 'Page') !== 'server-only'
74
74
  },
75
75
  onBeforeRenderEnv: {
76
76
  env: 'client-only',
77
- _computed: (pageConfig) => !(0, helpers_js_1.isConfigSet)(pageConfig, 'onBeforeRender') ? null : (0, helpers_js_1.getConfigEnv)(pageConfig, 'onBeforeRender')
77
+ _computed: (configValueSources) => !(0, helpers_js_1.isConfigSet)(configValueSources, 'onBeforeRender') ? null : (0, helpers_js_1.getConfigEnv)(configValueSources, 'onBeforeRender')
78
78
  }
79
79
  };
80
80
  exports.configDefinitionsBuiltIn = configDefinitionsBuiltIn;