vike 0.4.229 → 0.4.230-commit-8b60b8c

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 (235) hide show
  1. package/dist/cjs/client/server-routing-runtime/utils.js +1 -0
  2. package/dist/cjs/client/shared/{preparePageContextForUserConsumptionClientSide.js → preparePageContextForPublicUsageClientShared.js} +14 -19
  3. package/dist/cjs/node/api/build.js +2 -5
  4. package/dist/cjs/node/plugin/index.js +3 -1
  5. package/dist/cjs/node/plugin/onLoad.js +2 -0
  6. package/dist/cjs/node/plugin/plugins/build/pluginDistFileNames.js +1 -0
  7. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +4 -4
  8. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +5 -0
  9. package/dist/cjs/node/plugin/plugins/envVars.js +17 -19
  10. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -1
  11. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +2 -2
  12. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -0
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +1 -1
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +5 -0
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +2 -2
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -8
  17. package/dist/cjs/node/plugin/plugins/replaceConstants.js +76 -0
  18. package/dist/cjs/node/plugin/shared/applyRegExWithMagicString.js +10 -0
  19. package/dist/cjs/node/plugin/shared/findPageFiles.js +1 -1
  20. package/dist/cjs/node/plugin/shared/loggerNotProd.js +2 -2
  21. package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +1 -1
  22. package/dist/cjs/node/prerender/runPrerender.js +42 -38
  23. package/dist/cjs/node/prerender/utils.js +1 -1
  24. package/dist/cjs/node/runtime/globalContext.js +13 -27
  25. package/dist/cjs/node/runtime/html/renderHtml.js +12 -2
  26. package/dist/cjs/node/runtime/html/serializeContext.js +4 -2
  27. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
  28. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +3 -4
  29. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +6 -9
  30. package/dist/cjs/node/runtime/renderPage/execHookServer.js +11 -0
  31. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
  32. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
  33. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +1 -1
  34. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +1 -1
  35. package/dist/cjs/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
  36. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +10 -0
  37. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
  38. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +0 -2
  39. package/dist/cjs/node/runtime/renderPage.js +21 -12
  40. package/dist/cjs/node/runtime/utils.js +1 -1
  41. package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -1
  42. package/dist/cjs/shared/addIs404ToPageProps.js +0 -7
  43. package/dist/cjs/shared/createGlobalContextShared.js +37 -8
  44. package/dist/cjs/shared/createPageContextShared.js +14 -11
  45. package/dist/cjs/shared/getPageContext.js +3 -3
  46. package/dist/cjs/shared/getPageContextUrlComputed.js +2 -36
  47. package/dist/cjs/shared/getProxyForPublicUsage.js +56 -0
  48. package/dist/cjs/shared/hooks/execHook.js +170 -0
  49. package/dist/cjs/shared/hooks/getHook.js +23 -4
  50. package/dist/cjs/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +54 -47
  51. package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +10 -0
  52. package/dist/cjs/shared/preparePageContextForPublicUsage.js +80 -0
  53. package/dist/cjs/shared/route/abort.js +2 -2
  54. package/dist/cjs/shared/route/debug.js +17 -7
  55. package/dist/cjs/shared/route/executeGuardHook.js +4 -9
  56. package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +4 -3
  57. package/dist/cjs/shared/route/index.js +2 -4
  58. package/dist/cjs/shared/route/loadPageRoutes.js +6 -0
  59. package/dist/cjs/shared/route/resolveRouteFunction.js +14 -10
  60. package/dist/cjs/shared/utils.js +1 -0
  61. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  62. package/dist/cjs/utils/debug.js +15 -6
  63. package/dist/cjs/utils/isDev.js +3 -1
  64. package/dist/cjs/utils/isScriptFile.js +24 -21
  65. package/dist/cjs/utils/objectAssign.js +3 -3
  66. package/dist/cjs/utils/objectDefineProperty.js +1 -1
  67. package/dist/cjs/utils/parseNpmPackage.js +1 -0
  68. package/dist/cjs/utils/parseUrl-extras.js +0 -1
  69. package/dist/cjs/utils/requireResolve.js +39 -19
  70. package/dist/esm/client/client-routing-runtime/{createPageContext.d.ts → createPageContextClientSide.d.ts} +21 -13
  71. package/dist/esm/client/client-routing-runtime/{createPageContext.js → createPageContextClientSide.js} +9 -11
  72. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +400 -15
  73. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +56 -54
  74. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +11 -1
  75. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +3 -8
  76. package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
  77. package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.d.ts +11 -0
  78. package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
  79. package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +135 -0
  80. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +72 -81
  81. package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
  82. package/dist/esm/client/client-routing-runtime/utils.js +1 -0
  83. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +19 -13
  84. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +15 -26
  85. package/dist/esm/client/server-routing-runtime/entry.js +4 -4
  86. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +11 -1
  87. package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.d.ts +9 -0
  88. package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
  89. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
  90. package/dist/esm/client/server-routing-runtime/utils.js +1 -0
  91. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +11 -1
  92. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +3 -3
  93. package/dist/esm/client/shared/executeOnRenderClientHook.js +4 -13
  94. package/dist/esm/client/shared/{loadUserFilesClientSide.d.ts → loadPageConfigsLazyClientSide.d.ts} +2 -2
  95. package/dist/esm/client/shared/{loadUserFilesClientSide.js → loadPageConfigsLazyClientSide.js} +4 -4
  96. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +11 -0
  97. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +39 -0
  98. package/dist/esm/node/api/build.js +2 -2
  99. package/dist/esm/node/plugin/index.js +3 -1
  100. package/dist/esm/node/plugin/onLoad.js +2 -0
  101. package/dist/esm/node/plugin/plugins/build/pluginDistFileNames.js +1 -0
  102. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +4 -4
  103. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -1
  104. package/dist/esm/node/plugin/plugins/envVars.js +18 -20
  105. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +4 -2
  106. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.d.ts +1 -2
  107. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +2 -2
  108. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -0
  109. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +2 -2
  110. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +6 -1
  111. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +3 -3
  112. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +1 -1
  113. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -8
  114. package/dist/esm/node/plugin/plugins/replaceConstants.d.ts +3 -0
  115. package/dist/esm/node/plugin/plugins/replaceConstants.js +71 -0
  116. package/dist/esm/node/plugin/shared/applyRegExWithMagicString.d.ts +3 -0
  117. package/dist/esm/node/plugin/shared/applyRegExWithMagicString.js +8 -0
  118. package/dist/esm/node/plugin/shared/findPageFiles.js +2 -2
  119. package/dist/esm/node/plugin/shared/loggerNotProd.js +1 -1
  120. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.d.ts +1 -1
  121. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +1 -1
  122. package/dist/esm/node/prerender/runPrerender.d.ts +37 -73
  123. package/dist/esm/node/prerender/runPrerender.js +42 -38
  124. package/dist/esm/node/prerender/utils.d.ts +1 -1
  125. package/dist/esm/node/prerender/utils.js +1 -1
  126. package/dist/esm/node/runtime/globalContext.d.ts +46 -251
  127. package/dist/esm/node/runtime/globalContext.js +14 -28
  128. package/dist/esm/node/runtime/html/renderHtml.js +12 -2
  129. package/dist/esm/node/runtime/html/serializeContext.d.ts +1 -1
  130. package/dist/esm/node/runtime/html/serializeContext.js +4 -2
  131. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +1 -1
  132. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
  133. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +2 -2
  134. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +3 -4
  135. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +26 -41
  136. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +7 -10
  137. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +12 -0
  138. package/dist/esm/node/runtime/renderPage/execHookServer.js +9 -0
  139. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -3
  140. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
  141. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +4 -2
  142. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
  143. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +1 -1
  144. package/dist/esm/node/runtime/renderPage/getPageAssets.js +1 -1
  145. package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.d.ts → loadPageConfigsLazyServerSide.d.ts} +6 -6
  146. package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
  147. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +20 -0
  148. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +8 -0
  149. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +38 -74
  150. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
  151. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +0 -2
  152. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +0 -1
  153. package/dist/esm/node/runtime/renderPage.d.ts +21 -39
  154. package/dist/esm/node/runtime/renderPage.js +22 -13
  155. package/dist/esm/node/runtime/utils.d.ts +1 -1
  156. package/dist/esm/node/runtime/utils.js +1 -1
  157. package/dist/esm/shared/NOT_SERIALIZABLE.js +0 -1
  158. package/dist/esm/shared/addIs404ToPageProps.d.ts +1 -6
  159. package/dist/esm/shared/addIs404ToPageProps.js +1 -8
  160. package/dist/esm/shared/createGlobalContextShared.d.ts +28 -6
  161. package/dist/esm/shared/createGlobalContextShared.js +37 -8
  162. package/dist/esm/shared/createPageContextShared.d.ts +7 -6
  163. package/dist/esm/shared/createPageContextShared.js +15 -12
  164. package/dist/esm/shared/getPageContext.d.ts +1 -1
  165. package/dist/esm/shared/getPageContext.js +1 -1
  166. package/dist/esm/shared/getPageContextUrlComputed.d.ts +2 -5
  167. package/dist/esm/shared/getPageContextUrlComputed.js +3 -37
  168. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  169. package/dist/esm/shared/getProxyForPublicUsage.d.ts +4 -0
  170. package/dist/esm/shared/getProxyForPublicUsage.js +54 -0
  171. package/dist/esm/shared/hooks/execHook.d.ts +63 -0
  172. package/dist/esm/shared/hooks/execHook.js +168 -0
  173. package/dist/esm/shared/hooks/getHook.d.ts +10 -11
  174. package/dist/esm/shared/hooks/getHook.js +23 -4
  175. package/dist/esm/shared/page-configs/Config.d.ts +11 -4
  176. package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.d.ts → getUserFriendlyConfigs.d.ts} +8 -6
  177. package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +55 -48
  178. package/dist/esm/shared/prepareGlobalContextForPublicUsage.d.ts +7 -0
  179. package/dist/esm/shared/prepareGlobalContextForPublicUsage.js +8 -0
  180. package/dist/esm/shared/preparePageContextForPublicUsage.d.ts +11 -0
  181. package/dist/esm/shared/preparePageContextForPublicUsage.js +78 -0
  182. package/dist/esm/shared/route/abort.js +1 -1
  183. package/dist/esm/shared/route/debug.d.ts +4 -1
  184. package/dist/esm/shared/route/debug.js +17 -7
  185. package/dist/esm/shared/route/executeGuardHook.d.ts +4 -3
  186. package/dist/esm/shared/route/executeGuardHook.js +4 -9
  187. package/dist/esm/shared/route/executeOnBeforeRouteHook.js +4 -3
  188. package/dist/esm/shared/route/index.js +2 -4
  189. package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -1
  190. package/dist/esm/shared/route/loadPageRoutes.js +7 -1
  191. package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
  192. package/dist/esm/shared/route/resolveRouteFunction.js +14 -10
  193. package/dist/esm/shared/types.d.ts +14 -4
  194. package/dist/esm/shared/utils.d.ts +1 -0
  195. package/dist/esm/shared/utils.js +1 -0
  196. package/dist/esm/types/index.d.ts +1 -1
  197. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  198. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  199. package/dist/esm/utils/debug.d.ts +1 -1
  200. package/dist/esm/utils/debug.js +15 -6
  201. package/dist/esm/utils/isDev.js +3 -1
  202. package/dist/esm/utils/isScriptFile.d.ts +5 -5
  203. package/dist/esm/utils/isScriptFile.js +23 -20
  204. package/dist/esm/utils/objectAssign.d.ts +1 -1
  205. package/dist/esm/utils/objectAssign.js +3 -3
  206. package/dist/esm/utils/objectDefineProperty.d.ts +0 -1
  207. package/dist/esm/utils/objectDefineProperty.js +1 -1
  208. package/dist/esm/utils/parseNpmPackage.d.ts +2 -0
  209. package/dist/esm/utils/parseNpmPackage.js +1 -1
  210. package/dist/esm/utils/parseUrl-extras.js +0 -1
  211. package/dist/esm/utils/requireResolve.js +39 -19
  212. package/package.json +2 -2
  213. package/dist/cjs/client/shared/getPageContextProxyForUser.js +0 -16
  214. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -16
  215. package/dist/cjs/shared/getPageConfigsRuntime.js +0 -23
  216. package/dist/cjs/shared/hooks/executeHook.js +0 -87
  217. package/dist/cjs/shared/hooks/executeHookGeneric.js +0 -18
  218. package/dist/cjs/shared/preparePageContextForUserConsumption.js +0 -34
  219. package/dist/cjs/utils/getPublicProxy.js +0 -27
  220. package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +0 -2
  221. package/dist/esm/client/shared/getPageContextProxyForUser.js +0 -14
  222. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +0 -12
  223. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +0 -44
  224. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +0 -24
  225. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -14
  226. package/dist/esm/shared/getPageConfigsRuntime.d.ts +0 -14
  227. package/dist/esm/shared/getPageConfigsRuntime.js +0 -21
  228. package/dist/esm/shared/hooks/executeHook.d.ts +0 -21
  229. package/dist/esm/shared/hooks/executeHook.js +0 -85
  230. package/dist/esm/shared/hooks/executeHookGeneric.d.ts +0 -8
  231. package/dist/esm/shared/hooks/executeHookGeneric.js +0 -16
  232. package/dist/esm/shared/preparePageContextForUserConsumption.d.ts +0 -5
  233. package/dist/esm/shared/preparePageContextForUserConsumption.js +0 -32
  234. package/dist/esm/utils/getPublicProxy.d.ts +0 -2
  235. package/dist/esm/utils/getPublicProxy.js +0 -25
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scriptFileExtensionList = exports.scriptFileExtensions = void 0;
3
+ exports.scriptFileExtensionList = exports.scriptFileExtensionPattern = void 0;
4
4
  exports.isScriptFile = isScriptFile;
5
- exports.isPlainJavaScriptFile = isPlainJavaScriptFile;
5
+ exports.isPlainScriptFile = isPlainScriptFile;
6
6
  exports.isTemplateFile = isTemplateFile;
7
- const assert_js_1 = require("./assert.js");
8
7
  // We can't use a RegExp:
9
8
  // - Needs to work with Micromatch: https://github.com/micromatch/micromatch because:
10
9
  // - Vite's `import.meta.glob()` uses Micromatch
@@ -16,26 +15,36 @@ const assert_js_1 = require("./assert.js");
16
15
  // - A post `import.meta.glob()` blocklist filtering doesn't work because Vite would still process the files (e.g. including them in the bundle).
17
16
  // prettier-ignore
18
17
  // biome-ignore format:
19
- const extJavaScript = [
18
+ const extJs = [
20
19
  'js',
21
- 'ts',
22
20
  'cjs',
23
- 'cts',
24
21
  'mjs',
22
+ ];
23
+ // prettier-ignore
24
+ // biome-ignore format:
25
+ const extTs = [
26
+ 'ts',
27
+ 'cts',
25
28
  'mts',
26
29
  ];
30
+ const extJsOrTs = [...extJs, ...extTs];
27
31
  // prettier-ignore
28
32
  // biome-ignore format:
29
33
  const extJsx = [
30
34
  'jsx',
31
- 'tsx',
32
35
  'cjsx',
33
- 'ctsx',
34
36
  'mjsx',
35
- 'mtsx',
36
37
  ];
37
38
  // prettier-ignore
38
39
  // biome-ignore format:
40
+ const extTsx = [
41
+ 'tsx',
42
+ 'ctsx',
43
+ 'mtsx'
44
+ ];
45
+ const extJsxOrTsx = [...extJsx, ...extTsx];
46
+ // prettier-ignore
47
+ // biome-ignore format:
39
48
  const extTemplates = [
40
49
  'vue',
41
50
  'svelte',
@@ -43,21 +52,15 @@ const extTemplates = [
43
52
  'md',
44
53
  'mdx'
45
54
  ];
46
- const scriptFileExtensionList = [...extJavaScript, ...extJsx, ...extTemplates];
55
+ const scriptFileExtensionList = [...extJsOrTs, ...extJsxOrTsx, ...extTemplates];
47
56
  exports.scriptFileExtensionList = scriptFileExtensionList;
48
- const scriptFileExtensions = '(' + scriptFileExtensionList.join('|') + ')';
49
- exports.scriptFileExtensions = scriptFileExtensions;
57
+ const scriptFileExtensionPattern = '(' + scriptFileExtensionList.join('|') + ')';
58
+ exports.scriptFileExtensionPattern = scriptFileExtensionPattern;
50
59
  function isScriptFile(filePath) {
51
- const yes = scriptFileExtensionList.some((ext) => filePath.endsWith('.' + ext));
52
- if (isPlainJavaScriptFile(filePath))
53
- (0, assert_js_1.assert)(yes);
54
- return yes;
60
+ return scriptFileExtensionList.some((ext) => filePath.endsWith('.' + ext));
55
61
  }
56
- function isPlainJavaScriptFile(filePath) {
57
- const yes1 = /\.(c|m)?(j|t)s$/.test(filePath);
58
- const yes2 = extJavaScript.some((ext) => filePath.endsWith('.' + ext));
59
- (0, assert_js_1.assert)(yes1 === yes2);
60
- return yes1;
62
+ function isPlainScriptFile(filePath) {
63
+ return extJsOrTs.some((ext) => filePath.endsWith('.' + ext));
61
64
  }
62
65
  function isTemplateFile(filePath) {
63
66
  return extTemplates.some((ext) => filePath.endsWith('.' + ext));
@@ -5,10 +5,10 @@ const assert_js_1 = require("./assert.js");
5
5
  // Same as Object.assign() but:
6
6
  // - With type inference
7
7
  // - Preserves property descriptors, which we need for preserving the getters of getPageContextUrlComputed()
8
- function objectAssign(obj, objAddendum, objAddendumCanBePageContextObject) {
8
+ function objectAssign(obj, objAddendum, objAddendumCanBeOriginalObject) {
9
9
  if (!objAddendum)
10
10
  return;
11
- if (!objAddendumCanBePageContextObject)
12
- (0, assert_js_1.assert)(!('isPageContext' in objAddendum));
11
+ if (!objAddendumCanBeOriginalObject)
12
+ (0, assert_js_1.assert)(!objAddendum._isOriginalObject);
13
13
  Object.defineProperties(obj, Object.getOwnPropertyDescriptors(objAddendum));
14
14
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.objectDefineProperty = objectDefineProperty;
4
- /** Like Object.defineProperty() but with type inference */
4
+ // Same as Object.defineProperty() but with type inference
5
5
  function objectDefineProperty(obj, prop, { get, ...args }) {
6
6
  Object.defineProperty(obj, prop, { ...args, get });
7
7
  }
@@ -4,6 +4,7 @@ exports.isImportPathNpmPackage = isImportPathNpmPackage;
4
4
  exports.isImportPathNpmPackageOrPathAlias = isImportPathNpmPackageOrPathAlias;
5
5
  exports.assertIsImportPathNpmPackage = assertIsImportPathNpmPackage;
6
6
  exports.isPathAliasRecommended = isPathAliasRecommended;
7
+ exports.getNpmPackageName = getNpmPackageName;
7
8
  exports.parseNpmPackage = parseNpmPackage;
8
9
  exports.isDistinguishable = isDistinguishable;
9
10
  const assert_js_1 = require("./assert.js");
@@ -94,7 +94,6 @@ function modifyUrlPathname(url, modifier) {
94
94
  function removeUrlOrigin(url) {
95
95
  const { origin, pathnameOriginal, searchOriginal, hashOriginal } = (0, parseUrl_js_1.parseUrl)(url, '/');
96
96
  const urlModified = (0, parseUrl_js_1.createUrlFromComponents)(null, pathnameOriginal, searchOriginal, hashOriginal);
97
- (0, assert_js_1.assert)(urlModified.startsWith('/'));
98
97
  return { urlModified, origin };
99
98
  }
100
99
  function setUrlOrigin(url, origin) {
@@ -17,11 +17,13 @@ const node_module_1 = require("node:module");
17
17
  const node_path_1 = __importDefault(require("node:path"));
18
18
  const parseNpmPackage_js_1 = require("./parseNpmPackage.js");
19
19
  const isNullish_js_1 = require("./isNullish.js");
20
+ const debug_js_1 = require("./debug.js");
20
21
  // @ts-ignore `file:///${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
21
22
  const importMetaUrl = `file:///${__filename.split('\\').join('/')}`;
22
23
  (0, path_js_1.assertPosixPath)(importMetaUrl);
23
24
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
24
25
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
26
+ const debug = (0, debug_js_1.createDebugger)('vike:resolve');
25
27
  // - We still can't use import.meta.resolve() as of 23.1.0 (November 2024) because `parent` argument requires an experimental flag.
26
28
  // - https://stackoverflow.com/questions/54977743/do-require-resolve-for-es-modules#comment139581675_62272600
27
29
  // - Passing context to createRequire(context) isn't equivalent to passing it to the `paths` argument of require.resolve()
@@ -30,33 +32,31 @@ const importMetaUrl = `file:///${__filename.split('\\').join('/')}`;
30
32
  // - The argument createRequire(argument) seems to be overriden by the `paths` argument require.resolve()
31
33
  // - For example, passing an empty array to `paths` kills the argument passed to `createRequire()`
32
34
  // - Thus, when `paths` is defined, then the context needs to be passed to both createRequire() as well as the `paths` argument of require.resolve()
33
- function requireResolve_(importPath, importerFilePath, { userRootDir, doNotHandleFileExtension } = {}) {
35
+ function requireResolve_(importPath, importerFilePath, userRootDir, doNotHandleFileExtension = false) {
34
36
  (0, path_js_1.assertPosixPath)(importPath);
35
37
  const contexts = importerFilePath
36
38
  ? [importerFilePath]
37
39
  : [userRootDir ? getFakeImporterFile(userRootDir) : importMetaUrl];
38
- addExtraContextForNpmPackageImport(contexts, { importPath, userRootDir });
40
+ addExtraContextForNpmPackageImport(contexts, importPath, userRootDir);
39
41
  let importPathResolvedFilePath;
40
42
  let failure;
41
43
  for (const context of contexts) {
42
44
  (0, path_js_1.assertPosixPath)(context);
43
- const require_ = (0, node_module_1.createRequire)(ensureFilePrefix(context));
45
+ const contextNode = makeNodeFriendly(ensureFilePrefix(context));
46
+ let importPathNode = makeNodeFriendly(importPath);
47
+ const require_ = (0, node_module_1.createRequire)(contextNode);
44
48
  if (!doNotHandleFileExtension) {
45
49
  addFileExtensionsToRequireResolve(require_);
46
- importPath = removeFileExtention(importPath);
50
+ importPathNode = removeFileExtention(importPathNode);
47
51
  }
48
52
  try {
49
- importPathResolvedFilePath = require_.resolve(importPath);
53
+ importPathResolvedFilePath = require_.resolve(importPathNode);
50
54
  }
51
55
  catch (err) {
52
- /* DEBUG
53
- console.log('err', err)
54
- console.log('importPath', importPath)
55
- console.log('importerFilePath', importerFilePath)
56
- console.log('context', context)
57
- console.log('importMetaUrl', importMetaUrl)
58
- console.log('paths', paths)
59
- //*/
56
+ if (debug.isActivated) {
57
+ const stack = new Error().stack;
58
+ debug('ERROR', { err, importPath, context }, stack);
59
+ }
60
60
  failure ?? (failure = { err });
61
61
  }
62
62
  if (importPathResolvedFilePath)
@@ -64,23 +64,39 @@ function requireResolve_(importPath, importerFilePath, { userRootDir, doNotHandl
64
64
  }
65
65
  if (!importPathResolvedFilePath) {
66
66
  (0, assert_js_1.assert)(failure);
67
+ if (debug.isActivated) {
68
+ debug('FAILURE', {
69
+ importPath,
70
+ importerFilePath,
71
+ userRootDir,
72
+ doNotHandleFileExtension,
73
+ importMetaUrl,
74
+ contexts
75
+ });
76
+ }
67
77
  return { importPathResolvedFilePath: undefined, err: failure.err, hasFailed: true };
68
78
  }
69
79
  else {
80
+ if (failure && debug.isActivated) {
81
+ debug('SUCCESS', {
82
+ importPath,
83
+ contexts
84
+ });
85
+ }
70
86
  (0, assert_js_1.assert)(importPathResolvedFilePath);
71
87
  importPathResolvedFilePath = (0, path_js_1.toPosixPath)(importPathResolvedFilePath);
72
88
  return { importPathResolvedFilePath, err: undefined, hasFailed: false };
73
89
  }
74
90
  }
75
91
  function requireResolveOptional({ importPath, importerFilePath, userRootDir }) {
76
- const res = requireResolve_(importPath, importerFilePath, { userRootDir });
92
+ const res = requireResolve_(importPath, importerFilePath, userRootDir);
77
93
  if (res.hasFailed)
78
94
  return null;
79
95
  return res.importPathResolvedFilePath;
80
96
  }
81
97
  function requireResolveOptionalDir({ importPath, importerDir, userRootDir }) {
82
98
  const importerFilePath = getFakeImporterFile(importerDir);
83
- const res = requireResolve_(importPath, importerFilePath, { userRootDir });
99
+ const res = requireResolve_(importPath, importerFilePath, userRootDir);
84
100
  if (res.hasFailed)
85
101
  return null;
86
102
  return res.importPathResolvedFilePath;
@@ -88,7 +104,7 @@ function requireResolveOptionalDir({ importPath, importerDir, userRootDir }) {
88
104
  function requireResolveNpmPackage({ importPathNpmPackage, userRootDir }) {
89
105
  (0, parseNpmPackage_js_1.assertIsImportPathNpmPackage)(importPathNpmPackage);
90
106
  const importerFilePath = getFakeImporterFile(userRootDir);
91
- const res = requireResolve_(importPathNpmPackage, importerFilePath, { userRootDir });
107
+ const res = requireResolve_(importPathNpmPackage, importerFilePath, userRootDir);
92
108
  if (res.hasFailed)
93
109
  throw res.err;
94
110
  return res.importPathResolvedFilePath;
@@ -97,19 +113,19 @@ function requireResolveVikeDistFile(vikeDistFile) {
97
113
  const vikeNodeModulesRoot = getVikeNodeModulesRoot();
98
114
  (0, path_js_1.assertPosixPath)(vikeNodeModulesRoot);
99
115
  (0, path_js_1.assertPosixPath)(vikeDistFile);
100
- const importPathResolvedFilePath = node_path_1.default.posix.join(vikeNodeModulesRoot, vikeDistFile);
116
+ const importPathResolvedFilePath = makeNodeFriendly(node_path_1.default.posix.join(vikeNodeModulesRoot, vikeDistFile));
101
117
  // Double check
102
118
  {
103
119
  const res = requireResolve_(importPathResolvedFilePath,
104
120
  // No context needed: importPathResolvedFilePath is already resolved and absolute
105
- null, { doNotHandleFileExtension: true });
121
+ null, null, true);
106
122
  if (res.hasFailed)
107
123
  throw res.err;
108
124
  (0, assert_js_1.assert)(res.importPathResolvedFilePath === importPathResolvedFilePath);
109
125
  }
110
126
  return importPathResolvedFilePath;
111
127
  }
112
- function addExtraContextForNpmPackageImport(contexts, { importPath, userRootDir }) {
128
+ function addExtraContextForNpmPackageImport(contexts, importPath, userRootDir) {
113
129
  // We should add extra context only for npm packages, but unfortunately we cannot always disambiguate between npm package imports and path aliases.
114
130
  if (!(0, parseNpmPackage_js_1.isImportPathNpmPackageOrPathAlias)(importPath))
115
131
  return;
@@ -191,3 +207,7 @@ function getFilePrefix() {
191
207
  prefix += '/';
192
208
  return prefix;
193
209
  }
210
+ function makeNodeFriendly(filePath) {
211
+ // https://github.com/vikejs/vike/issues/2436#issuecomment-2849145340
212
+ return decodeURIComponent(filePath);
213
+ }
@@ -1,14 +1,31 @@
1
1
  export { createPageContextClientSide };
2
+ export type PageContextCreated = Awaited<ReturnType<typeof createPageContextClientSide>>;
2
3
  declare function createPageContextClientSide(urlOriginal: string): Promise<{
3
- globalContext: {
4
+ _isOriginalObject: true;
5
+ isPageContext: true;
6
+ } & {
7
+ isClientSide: true;
8
+ isPrerendering: false;
9
+ urlOriginal: string;
10
+ _globalContext: {
4
11
  isGlobalContext: true;
12
+ _isOriginalObject: true;
5
13
  _virtualFileExports: unknown;
6
14
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
7
15
  _pageConfigs: import("../../__internal/index.js").PageConfig[];
8
16
  _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
9
17
  _allPageIds: string[];
18
+ _userFriendlyConfigsGlobal: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
10
19
  config: import("../../types/index.js").ConfigResolved;
11
- pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
20
+ pages: {
21
+ [k: string]: import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
22
+ route: import("../../shared/page-configs/Config.js").Route;
23
+ isErrorPage?: undefined;
24
+ } | {
25
+ route?: undefined;
26
+ isErrorPage: true;
27
+ });
28
+ };
12
29
  } & {
13
30
  isClientSide: true;
14
31
  } & {
@@ -21,20 +38,11 @@ declare function createPageContextClientSide(urlOriginal: string): Promise<{
21
38
  _allPageIds: string[];
22
39
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
23
40
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
24
- isClientSide: boolean;
25
- isPrerendering: boolean;
26
- urlOriginal: string;
27
41
  _urlHandler: null;
28
- _urlRewrite: null;
42
+ _urlRewrite: null | string;
29
43
  _baseServer: string;
30
44
  } & {
31
45
  urlParsed: import("./utils.js").UrlPublic;
32
46
  urlPathname: string;
33
47
  url: string;
34
- } & {
35
- config: import("../../types/index.js").ConfigResolved;
36
- _source: import("../../shared/page-configs/getPageConfigUserFriendly.js").Source;
37
- _sources: import("../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
38
- _from: import("../../shared/page-configs/getPageConfigUserFriendly.js").From;
39
- isPageContext: true;
40
- }>;
48
+ } & import("../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly>;
@@ -1,5 +1,5 @@
1
1
  export { createPageContextClientSide };
2
- import { createPageContextShared } from '../../shared/createPageContextShared.js';
2
+ import { createPageContextObject, createPageContextShared } from '../../shared/createPageContextShared.js';
3
3
  import { getPageContextUrlComputed } from '../../shared/getPageContextUrlComputed.js';
4
4
  import { getBaseServer } from './getBaseServer.js';
5
5
  import { getGlobalContextClientInternal } from './globalContext.js';
@@ -8,27 +8,25 @@ async function createPageContextClientSide(urlOriginal) {
8
8
  const globalContext = await getGlobalContextClientInternal();
9
9
  const baseServer = getBaseServer();
10
10
  assert(isBaseServer(baseServer));
11
- const pageContextCreated = {
12
- /* Don't spread globalContext for now? Or never spread it as it leads to confusion? The convenience isn't worth the added confusion?
13
- ...globalContext, // least precedence
14
- */
15
- globalContext,
11
+ const pageContextCreated = createPageContextObject();
12
+ objectAssign(pageContextCreated, {
13
+ isClientSide: true,
14
+ isPrerendering: false,
15
+ urlOriginal,
16
+ _globalContext: globalContext,
16
17
  _pageFilesAll: globalContext._pageFilesAll,
17
18
  _pageConfigs: globalContext._pageConfigs,
18
19
  _pageConfigGlobal: globalContext._pageConfigGlobal,
19
20
  _allPageIds: globalContext._allPageIds,
20
21
  _pageRoutes: globalContext._pageRoutes,
21
22
  _onBeforeRouteHook: globalContext._onBeforeRouteHook,
22
- isClientSide: true,
23
- isPrerendering: false,
24
- urlOriginal,
25
23
  _urlHandler: null,
26
24
  _urlRewrite: null,
27
25
  _baseServer: baseServer
28
- };
26
+ });
29
27
  const pageContextUrlComputed = getPageContextUrlComputed(pageContextCreated);
30
28
  objectAssign(pageContextCreated, pageContextUrlComputed);
31
- const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal);
29
+ const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._userFriendlyConfigsGlobal);
32
30
  augmentType(pageContextCreated, pageContextAugmented);
33
31
  return pageContextCreated;
34
32
  }