vike 0.4.235 → 0.4.236-commit-64431e7

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 (227) hide show
  1. package/dist/cjs/__internal/index.js +1 -1
  2. package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -3
  3. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  4. package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
  5. package/dist/cjs/node/cli/index.js +1 -1
  6. package/dist/cjs/node/createPageRenderer.js +1 -1
  7. package/dist/cjs/node/importBuild.js +1 -1
  8. package/dist/cjs/node/prerender/context.js +1 -1
  9. package/dist/cjs/node/prerender/index.js +1 -1
  10. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +2 -2
  11. package/dist/cjs/node/prerender/runPrerender.js +9 -13
  12. package/dist/cjs/node/runtime/globalContext.js +109 -28
  13. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  14. package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  15. package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  16. package/dist/cjs/node/runtime/html/serializeContext.js +73 -15
  17. package/dist/cjs/node/runtime/index-deprecated.js +1 -1
  18. package/dist/cjs/node/runtime/index.js +1 -1
  19. package/dist/cjs/node/runtime/page-files/setup.js +1 -1
  20. package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
  21. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +9 -6
  22. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  23. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  24. package/dist/cjs/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +9 -9
  25. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  26. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  27. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +15 -12
  28. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -16
  29. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  30. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  31. package/dist/cjs/node/runtime/renderPage.js +4 -6
  32. package/dist/cjs/node/runtime/utils.js +1 -0
  33. package/dist/cjs/node/vite/index.js +2 -0
  34. package/dist/cjs/node/vite/onLoad.js +1 -1
  35. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  36. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
  37. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  38. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  39. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  40. package/dist/cjs/node/vite/plugins/pluginCommon.js +9 -4
  41. package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
  42. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +4 -4
  43. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  44. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
  45. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
  46. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +1 -1
  47. package/dist/cjs/node/vite/plugins/pluginViteRPC.js +42 -0
  48. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
  49. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
  50. package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
  51. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  52. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  53. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  54. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  55. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  56. package/dist/cjs/shared/RenderErrorPage.js +1 -1
  57. package/dist/cjs/shared/abort.js +1 -1
  58. package/dist/cjs/shared/createGlobalContextShared.js +28 -7
  59. package/dist/cjs/shared/createPageContextShared.js +1 -2
  60. package/dist/cjs/shared/determinePageIdOld.js +1 -1
  61. package/dist/cjs/shared/error-page.js +3 -3
  62. package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
  63. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
  64. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  65. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  66. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
  67. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
  68. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  69. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  70. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  71. package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  72. package/dist/cjs/shared/getProxyForPublicUsage.js +3 -3
  73. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
  74. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
  75. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  76. package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
  77. package/dist/cjs/shared/route/abort.js +1 -1
  78. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  79. package/dist/cjs/shared/route/execHookGuard.js +1 -1
  80. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
  81. package/dist/cjs/shared/route/index.js +1 -1
  82. package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
  83. package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
  84. package/dist/cjs/shared/route/resolveRouteString.js +1 -1
  85. package/dist/cjs/shared/route/routing.js +1 -1
  86. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  87. package/dist/cjs/utils/assertSetup.js +11 -8
  88. package/dist/cjs/utils/debug.js +1 -0
  89. package/dist/cjs/utils/debugGlob.js +1 -1
  90. package/dist/cjs/utils/getViteRPC.js +79 -0
  91. package/dist/cjs/utils/parseNpmPackage.js +1 -1
  92. package/dist/esm/__internal/index.d.ts +1 -1
  93. package/dist/esm/__internal/index.js +1 -1
  94. package/dist/esm/client/node.js +1 -1
  95. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  96. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  97. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +10 -2
  98. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
  99. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
  100. package/dist/esm/client/runtime-client-routing/index.js +1 -1
  101. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  102. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
  103. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  104. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +3 -1
  105. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
  106. package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
  107. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  108. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
  109. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
  110. package/dist/esm/client/runtime-server-routing/index.js +1 -1
  111. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
  112. package/dist/esm/client/shared/createGetGlobalContextClient.js +1 -2
  113. package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
  114. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
  115. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  116. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  117. package/dist/esm/node/cli/index.js +1 -1
  118. package/dist/esm/node/createPageRenderer.js +1 -1
  119. package/dist/esm/node/importBuild.js +1 -1
  120. package/dist/esm/node/prerender/context.js +1 -1
  121. package/dist/esm/node/prerender/index.js +1 -1
  122. package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
  123. package/dist/esm/node/prerender/runPrerender.d.ts +42 -133
  124. package/dist/esm/node/prerender/runPrerender.js +9 -13
  125. package/dist/esm/node/runtime/globalContext.d.ts +39 -59
  126. package/dist/esm/node/runtime/globalContext.js +112 -31
  127. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  128. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  129. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  130. package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
  131. package/dist/esm/node/runtime/html/serializeContext.js +73 -15
  132. package/dist/esm/node/runtime/index-deprecated.js +1 -1
  133. package/dist/esm/node/runtime/index.js +1 -1
  134. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  135. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  136. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
  137. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
  138. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +12 -35
  139. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  140. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  141. package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
  142. package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
  143. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  144. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  145. package/dist/esm/node/runtime/renderPage/getPageAssets.js +16 -13
  146. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
  147. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +36 -17
  148. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  149. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +24 -68
  150. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  151. package/dist/esm/node/runtime/renderPage.d.ts +13 -36
  152. package/dist/esm/node/runtime/renderPage.js +4 -6
  153. package/dist/esm/node/runtime/utils.d.ts +1 -0
  154. package/dist/esm/node/runtime/utils.js +1 -0
  155. package/dist/esm/node/vite/index.js +3 -1
  156. package/dist/esm/node/vite/onLoad.js +1 -1
  157. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
  158. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  159. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +1 -1
  160. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
  161. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  162. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  163. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
  164. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  165. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  166. package/dist/esm/node/vite/plugins/pluginCommon.js +9 -4
  167. package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
  168. package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
  169. package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
  170. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
  171. package/dist/esm/node/vite/plugins/pluginViteRPC.d.ts +25 -0
  172. package/dist/esm/node/vite/plugins/pluginViteRPC.js +40 -0
  173. package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
  174. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
  175. package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
  176. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  177. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  178. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  179. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  180. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  181. package/dist/esm/shared/RenderErrorPage.js +1 -1
  182. package/dist/esm/shared/abort.js +1 -1
  183. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  184. package/dist/esm/shared/createGlobalContextShared.js +28 -7
  185. package/dist/esm/shared/createPageContextShared.d.ts +2 -3
  186. package/dist/esm/shared/createPageContextShared.js +1 -2
  187. package/dist/esm/shared/determinePageIdOld.js +1 -1
  188. package/dist/esm/shared/error-page.js +3 -3
  189. package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
  190. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  191. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  192. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  193. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
  194. package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
  195. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  196. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  197. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  198. package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  199. package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
  200. package/dist/esm/shared/hooks/getHook.js +1 -1
  201. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
  202. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
  203. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  204. package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
  205. package/dist/esm/shared/route/abort.js +1 -1
  206. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  207. package/dist/esm/shared/route/execHookGuard.js +1 -1
  208. package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
  209. package/dist/esm/shared/route/index.js +1 -1
  210. package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
  211. package/dist/esm/shared/route/loadPageRoutes.js +10 -4
  212. package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
  213. package/dist/esm/shared/route/resolveRouteString.js +1 -1
  214. package/dist/esm/shared/route/routing.js +1 -1
  215. package/dist/esm/types/Config.d.ts +9 -1
  216. package/dist/esm/types/PageContext.d.ts +8 -2
  217. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  218. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  219. package/dist/esm/utils/assertSetup.js +11 -8
  220. package/dist/esm/utils/debug.d.ts +1 -1
  221. package/dist/esm/utils/debug.js +1 -0
  222. package/dist/esm/utils/debugGlob.js +1 -1
  223. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  224. package/dist/esm/utils/getViteRPC.js +77 -0
  225. package/dist/esm/utils/parseNpmPackage.js +1 -1
  226. package/package.json +12 -6
  227. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
@@ -8,7 +8,7 @@ const getAllPageIdFiles_js_1 = require("./getAllPageIdFiles.js");
8
8
  const getAllPageIdFiles_js_2 = require("./getAllPageIdFiles.js");
9
9
  const utils_js_1 = require("../utils.js");
10
10
  const getExportNames_js_1 = require("./analyzePageClientSide/getExportNames.js");
11
- // TODO/v1-release: remove analyzePageClientSide(), use analyzeClientSide() instead
11
+ // TO-DO/next-major-release: remove analyzePageClientSide(), use analyzeClientSide() instead
12
12
  function analyzePageClientSide(pageFilesAll, pageId) {
13
13
  let pageFilesClientSide = (0, getAllPageIdFiles_js_1.getPageFilesClientSide)(pageFilesAll, pageId);
14
14
  const pageFilesServerSide = (0, getAllPageIdFiles_js_2.getPageFilesServerSide)(pageFilesAll, pageId);
@@ -26,7 +26,7 @@ function analyzePageClientSide(pageFilesAll, pageId) {
26
26
  });
27
27
  return { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide };
28
28
  }
29
- // TODO:v1-release: remove
29
+ // TO-DO/next-major-release: remove
30
30
  async function analyzePageClientSideInit(pageFilesAll, pageId, { sharedPageFilesAlreadyLoaded }) {
31
31
  const pageFilesClientSide = (0, getAllPageIdFiles_js_1.getPageFilesClientSide)(pageFilesAll, pageId);
32
32
  await Promise.all(pageFilesClientSide.map(async (p) => {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // TODO/v1-release: remove this
2
+ // TO-DO/next-major-release: remove this
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.forbiddenDefaultExports = void 0;
5
5
  exports.assertDefaultExports = assertDefaultExports;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // TODO/v1-release: remove
2
+ // TO-DO/next-major-release: remove
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.fileTypes = void 0;
5
5
  exports.isValidFileType = isValidFileType;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // TODO:v1-release: remove this file
2
+ // TO-DO/next-major-release: remove this file
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.getPageFilesClientSide = getPageFilesClientSide;
5
5
  exports.getPageFilesServerSide = getPageFilesServerSide;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // TODO/v1-release: remove
2
+ // TO-DO/next-major-release: remove
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.getPageFileObject = getPageFileObject;
5
5
  const determinePageIdOld_js_1 = require("../determinePageIdOld.js");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseVirtualFileExports = parseVirtualFileExports;
4
- // TODO/v1-release: remove old design code, and remove all assertions.
4
+ // TO-DO/next-major-release: remove old design code, and remove all assertions.
5
5
  const utils_js_1 = require("../utils.js");
6
6
  const assert_exports_old_design_js_1 = require("./assert_exports_old_design.js");
7
7
  const getPageFileObject_js_1 = require("./getPageFileObject.js");
@@ -43,11 +43,11 @@ function onInternalProp(propStr, objName) {
43
43
  // - We must skip it in the client-side because of the reactivity mechanism of UI frameworks like Solid.
44
44
  // - TO-DO/eventually: use import.meta.CLIENT instead of isBrowser()
45
45
  // - Where import.meta.CLIENT is defined by Vike
46
- // - Using import.meta.env.CLIENT (note `.env.`) doesn't seem possible: https://github.com/brillout/playground_node_import.meta.env
47
- // - If Rolldown Vite + Rolldowns always transpiles node_modules/ then we can simply use import.meta.env.SSR
46
+ // - Using ({}).CLIENT (note `.env.`) doesn't seem possible: https://github.com/brillout/playground_node_({})
47
+ // - If Rolldown Vite + Rolldowns always transpiles node_modules/ then we can simply use ({}).SSR
48
48
  if ((0, utils_js_1.isBrowser)())
49
49
  return;
50
- // TODO/now-proxy remove this and only warn on built-in access instead
50
+ // TO-DO/soon/proxy: remove this and only warn on built-in access instead
51
51
  if (propStr === '_configFromHook')
52
52
  return;
53
53
  if (propStr.startsWith('_')) {
@@ -38,12 +38,13 @@ function getDefinedAtString(definedAtData, configName) {
38
38
  if (definedAt.definedBy)
39
39
  return getDefinedByString(definedAt, configName);
40
40
  const { filePathToShowToUser, fileExportPathToShowToUser } = definedAt;
41
- let s = filePathToShowToUser;
42
41
  const exportPath = (0, getExportPath_js_1.getExportPath)(fileExportPathToShowToUser, configName);
43
42
  if (exportPath) {
44
- s = `${s} > ${picocolors_1.default.cyan(exportPath)}`;
43
+ return `${filePathToShowToUser} > ${picocolors_1.default.cyan(exportPath)}`;
44
+ }
45
+ else {
46
+ return filePathToShowToUser;
45
47
  }
46
- return s;
47
48
  })
48
49
  .join(' / ');
49
50
  return definedAtString;
@@ -50,10 +50,10 @@ function resolveVikeConfigPublicPageLazy(pageFiles, // V0.4 design
50
50
  pageConfig, // V1 design
51
51
  pageConfigGlobal) {
52
52
  const config = {};
53
- const configEntries = {}; // TODO/v1-release: remove
54
- const exportsAll = {}; // TODO/v1-release: remove
53
+ const configEntries = {}; // TO-DO/next-major-release: remove
54
+ const exportsAll = {}; // TO-DO/next-major-release: remove
55
55
  // V0.4 design
56
- // TODO/v1-release: remove
56
+ // TO-DO/next-major-release: remove
57
57
  pageFiles.forEach((pageFile) => {
58
58
  const exportValues = getExportValues(pageFile);
59
59
  exportValues.forEach(({ exportName, exportValue, isFromDefaultExport }) => {
@@ -63,7 +63,7 @@ pageConfigGlobal) {
63
63
  exportValue,
64
64
  exportSource: `${pageFile.filePath} > ${isFromDefaultExport ? `\`export default { ${exportName} }\`` : `\`export { ${exportName} }\``}`,
65
65
  filePath: pageFile.filePath,
66
- _filePath: pageFile.filePath, // TODO/next-major-release: remove
66
+ _filePath: pageFile.filePath, // TO-DO/next-major-release: remove
67
67
  _fileType: pageFile.fileType,
68
68
  _isFromDefaultExport: isFromDefaultExport,
69
69
  });
@@ -108,18 +108,18 @@ pageConfigGlobal) {
108
108
  });
109
109
  (0, utils_js_1.assert)(!('default' in exports));
110
110
  (0, utils_js_1.assert)(!('default' in exportsAll));
111
- const pageContextExports = {
111
+ const configPublicPageLazy = {
112
112
  config: config,
113
113
  from,
114
114
  source,
115
115
  sources,
116
- // TODO/now-flat-pageContext: deprecate every prop below
116
+ // TO-DO/soon/flat-pageContext: deprecate every prop below
117
117
  configEntries,
118
118
  exports,
119
119
  exportsAll,
120
120
  };
121
- // TODO/v1-release: remove
122
- (0, utils_js_1.objectDefineProperty)(pageContextExports, 'pageExports', {
121
+ // TO-DO/next-major-release: remove
122
+ (0, utils_js_1.objectDefineProperty)(configPublicPageLazy, 'pageExports', {
123
123
  get: () => {
124
124
  // We only show the warning in Node.js because when using Client Routing Vue integration uses `Object.assign(pageContextReactive, pageContext)` which will wrongully trigger the warning. There is no cross-browser way to catch whether the property accessor was initiated by an `Object.assign()` call.
125
125
  if (!(0, utils_js_1.isBrowser)()) {
@@ -133,7 +133,7 @@ pageConfigGlobal) {
133
133
  enumerable: false,
134
134
  configurable: true,
135
135
  });
136
- return pageContextExports;
136
+ return configPublicPageLazy;
137
137
  }
138
138
  // V1 design
139
139
  function resolveVikeConfigPublic_V1Design(pageConfig) {
@@ -161,7 +161,7 @@ function resolveVikeConfigPublic_V1Design(pageConfig) {
161
161
  configDefinedAt,
162
162
  configDefinedByFile: configValueFilePathToShowToUser,
163
163
  });
164
- // TODO/v1-release: remove
164
+ // TO-DO/next-major-release: remove
165
165
  const exportName = configName;
166
166
  exportsAll[exportName] = exportsAll[exportName] ?? [];
167
167
  exportsAll[exportName].push({
@@ -178,7 +178,7 @@ function logJsonSerializeError(err, configName, definedAtData) {
178
178
  //*/
179
179
  const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(definedAtData);
180
180
  (0, utils_js_1.assert)(configValueFilePathToShowToUser);
181
- (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined over a so-called "pointer import", see https://vike.dev/config#pointer-imports`);
181
+ (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined using a separate file ${picocolors_1.default.bold(`+${configName}.js`)}, see https://vike.dev/error/runtime-in-config`);
182
182
  }
183
183
  function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
184
184
  const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
@@ -11,7 +11,7 @@ function preparePageContextForPublicUsage(pageContext) {
11
11
  (0, utils_js_1.assert)(!pageContext.globalContext); // pageContext.globalContext should only be available to users — Vike itself should use pageContext._globalContext instead
12
12
  (0, utils_js_1.assert)(pageContext._isOriginalObject); // ensure we preserve the original object reference
13
13
  (0, addIs404ToPageProps_js_1.addIs404ToPageProps)(pageContext);
14
- // TODO/next-major-release: remove
14
+ // TO-DO/next-major-release: remove
15
15
  if (!('_pageId' in pageContext)) {
16
16
  Object.defineProperty(pageContext, '_pageId', {
17
17
  get() {
@@ -29,7 +29,7 @@ function preparePageContextForPublicUsage(pageContext) {
29
29
  const globalContextPublic = (0, prepareGlobalContextForPublicUsage_js_1.prepareGlobalContextForPublicUsage)(pageContext._globalContext);
30
30
  const pageContextPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(pageContext, 'pageContext',
31
31
  // We must skip it in the client-side because of the reactivity mechanism of UI frameworks like Solid.
32
- // - TODO/now-proxy: double check whether that's true
32
+ // - TO-DO/soon/proxy: double check whether that's true
33
33
  true, (prop) => {
34
34
  if (prop === 'globalContext') {
35
35
  return globalContextPublic;
@@ -67,11 +67,11 @@ function assertPropertyGetters(pageContext) {
67
67
  ;
68
68
  [
69
69
  'urlPathname',
70
- // TODO/v1-release: remove
70
+ // TO-DO/next-major-release: remove
71
71
  'urlParsed',
72
- // TODO/v1-release: remove
72
+ // TO-DO/next-major-release: remove
73
73
  'url',
74
- // TODO/v1-release: remove
74
+ // TO-DO/next-major-release: remove
75
75
  'pageExports',
76
76
  ].forEach((prop) => {
77
77
  if (pageContext.prop)
@@ -87,7 +87,7 @@ function AbortRender(pageContextAbort) {
87
87
  (0, utils_js_1.checkType)(err);
88
88
  return err;
89
89
  }
90
- // TODO/v1-release: remove
90
+ // TO-DO/next-major-release: remove
91
91
  /**
92
92
  * @deprecated Use `throw render()` or `throw redirect()` instead, see https://vike.dev/render'
93
93
  */
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.deduceRouteStringFromFilesystemPath = deduceRouteStringFromFilesystemPath;
5
5
  const utils_js_1 = require("./utils.js");
6
- // TODO/next-major-update: remove this and whole filesystemRoot mechanism
6
+ // TO-DO/next-major-release: remove this and whole filesystemRoot mechanism
7
7
  function deduceRouteStringFromFilesystemPath(pageId, filesystemRoots) {
8
8
  // Handle Filesystem Routing Root
9
9
  const filesystemRootsMatch = filesystemRoots
@@ -8,7 +8,7 @@ const errIntro = 'The guard() hook defined by';
8
8
  async function execHookGuard(pageContext, prepareForPublicUsage) {
9
9
  let hook;
10
10
  if (pageContext._globalContext._pageFilesAll.length > 0) {
11
- // TODO/v1-release: remove
11
+ // TO-DO/next-major-release: remove
12
12
  // V0.4 design
13
13
  (0, utils_js_1.assert)(pageContext._globalContext._pageConfigs.length === 0);
14
14
  hook = findPageGuard(pageContext.pageId, pageContext._globalContext._pageFilesAll);
@@ -41,7 +41,7 @@ async function execHookOnBeforeRoute(pageContext) {
41
41
  async function getPageContextFromHook(onBeforeRouteHook, pageContext) {
42
42
  let { hookReturn } = (0, execHook_js_1.execHookDirectSync)(onBeforeRouteHook, pageContext, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage);
43
43
  (0, resolveRouteFunction_js_1.assertSyncRouting)(hookReturn, `The onBeforeRoute() hook ${onBeforeRouteHook.hookFilePath}`);
44
- // TODO/v1-release: make execHookOnBeforeRoute() and route() sync
44
+ // TO-DO/next-major-release: make execHookOnBeforeRoute() and route() sync
45
45
  hookReturn = await hookReturn;
46
46
  const errPrefix = `The onBeforeRoute() hook defined by ${onBeforeRouteHook.hookFilePath}`;
47
47
  (0, utils_js_1.assertUsage)(hookReturn === null ||
@@ -17,7 +17,7 @@ const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
17
17
  const execHookOnBeforeRoute_js_1 = require("./execHookOnBeforeRoute.js");
18
18
  const debug_js_1 = require("./debug.js");
19
19
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
20
- // TODO/next-major-release: make it sync
20
+ // TO-DO/next-major-release: make it sync
21
21
  async function route(pageContext, skipOnBeforeRouteHook) {
22
22
  (0, debug_js_1.debug)('Pages routes:', pageContext._globalContext._pageRoutes);
23
23
  const pageContextFromRoute = {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadPageRoutes = loadPageRoutes;
4
+ exports.loadPageRoutesSync = loadPageRoutesSync;
4
5
  const error_page_js_1 = require("../error-page.js");
5
6
  const utils_js_1 = require("./utils.js");
6
7
  const deduceRouteStringFromFilesystemPath_js_1 = require("./deduceRouteStringFromFilesystemPath.js");
@@ -12,8 +13,13 @@ const getHook_js_1 = require("../hooks/getHook.js");
12
13
  async function loadPageRoutes(
13
14
  // Remove all arguments and use GlobalContextServerInternal instead?
14
15
  pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
15
- // TODO/next-major: remove & make this function sync
16
+ // TO-DO/next-major-release: remove this line, remove this function, rename loadPageRoutesSync() to loadPageRoutes()
16
17
  await Promise.all(pageFilesAll.filter((p) => p.fileType === '.page.route').map((p) => p.loadFile?.()));
18
+ return loadPageRoutesSync(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
19
+ }
20
+ function loadPageRoutesSync(
21
+ // Remove all arguments and use GlobalContextServerInternal instead?
22
+ pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds) {
17
23
  const { onBeforeRouteHook, filesystemRoots } = getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal);
18
24
  const pageRoutes = getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds);
19
25
  return { pageRoutes, onBeforeRouteHook };
@@ -51,7 +57,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
51
57
  const { filePathToShowToUser } = definedAtData;
52
58
  (0, utils_js_1.assert)(filePathToShowToUser);
53
59
  (0, utils_js_1.assert)((0, utils_js_2.isCallable)(route));
54
- // TODO/next-major: remove
60
+ // TO-DO/next-major-release: remove
55
61
  if ((0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'iKnowThePerformanceRisksOfAsyncRouteFunctions', 'boolean'))
56
62
  (0, resolveRouteFunction_js_1.warnDeprecatedAllowKey)();
57
63
  pageRoute = {
@@ -84,7 +90,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
84
90
  });
85
91
  }
86
92
  // Old design
87
- // TODO/v1-release: remove
93
+ // TO-DO/next-major-release: remove
88
94
  if (pageConfigs.length === 0) {
89
95
  (0, utils_js_1.assert)(filesystemRoots);
90
96
  const comesFromV1PageConfig = false;
@@ -151,7 +157,7 @@ function getGlobalHooks(pageFilesAll, pageConfigs, pageConfigGlobal) {
151
157
  return { onBeforeRouteHook: hook, filesystemRoots: null };
152
158
  }
153
159
  // Old design
154
- // TODO/v1-release: remove
160
+ // TO-DO/next-major-release: remove
155
161
  let onBeforeRouteHook = null;
156
162
  const filesystemRoots = [];
157
163
  pageFilesAll
@@ -18,7 +18,7 @@ async function resolveRouteFunction(routeFunction, pageContext, routeFunctionFil
18
18
  hookName: 'route',
19
19
  }, pageContext, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage);
20
20
  assertSyncRouting(result, `The Route Function ${routeFunctionFilePath}`);
21
- // TODO/v1-release: make resolveRouteFunction() and route() sync
21
+ // TO-DO/next-major-release: make resolveRouteFunction() and route() sync
22
22
  //* We disallow asynchronous routing, because we need to check whether a link is a Vike link in a synchronous fashion before calling ev.preventDefault() in the 'click' event listener
23
23
  result = await result;
24
24
  //*/
@@ -54,11 +54,11 @@ async function resolveRouteFunction(routeFunction, pageContext, routeFunctionFil
54
54
  routeParams,
55
55
  };
56
56
  }
57
- // TODO/v1-release: remove, and make routing synchronous (enabling Vike to synchronously check whether a link is a Vike link before even calling ev.preventDefault())
57
+ // TO-DO/next-major-release: remove, and make routing synchronous (enabling Vike to synchronously check whether a link is a Vike link before even calling ev.preventDefault())
58
58
  function assertSyncRouting(res, errPrefix) {
59
59
  (0, utils_js_1.assertWarning)(!(0, utils_js_1.isPromise)(res), `${errPrefix} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`, { onlyOnce: true });
60
60
  }
61
- // TODO/v1-release: remove
61
+ // TO-DO/next-major-release: remove
62
62
  function warnDeprecatedAllowKey() {
63
63
  const allowKey = picocolors_1.default.cyan('iKnowThePerformanceRisksOfAsyncRouteFunctions');
64
64
  (0, utils_js_1.assertWarning)(false, `${allowKey} is deprecated and will be removed in the next major release`, { onlyOnce: true });
@@ -13,7 +13,7 @@ const utils_js_1 = require("../utils.js");
13
13
  const utils_js_2 = require("./utils.js");
14
14
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
15
15
  const PARAM_TOKEN_NEW = '@';
16
- // TODO/v1-release: remove
16
+ // TO-DO/next-major-release: remove
17
17
  const PARAM_TOKEN_OLD = ':';
18
18
  function assertRouteString(routeString, errPrefix = 'Invalid') {
19
19
  let errPrefix2 = `${errPrefix} Route String ${highlight(routeString)}`;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveRoute = void 0;
4
- // TODO/v1-release - move:
4
+ // TO-DO/next-major-release: move
5
5
  // import { resolveRoute } from 'vike/routing'
6
6
  // to:
7
7
  // import { resolveRoute } from 'vike'
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.235';
5
+ exports.PROJECT_VERSION = '0.4.236-commit-64431e7';
@@ -29,22 +29,25 @@ function assertIsNotProductionRuntime() {
29
29
  setup.shouldNotBeProduction = true;
30
30
  }
31
31
  function onSetupRuntime() {
32
+ // TODO/now
33
+ if (true)
34
+ return;
32
35
  if (debug.isActivated)
33
36
  debug('assertSetup()', new Error().stack);
34
37
  if (isTest())
35
38
  return;
36
39
  assertNodeEnvIsNotUndefinedString();
37
40
  if (!setup.viteDevServer && setup.isViteDev === undefined) {
38
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
39
- (0, assert_js_1.assertWarning)(!isNodeEnvDev(), `The ${getEnvDescription()}, which is contradictory because the environment seems to be a production environment (Vite isn't loaded), see https://vike.dev/NODE_ENV`, { onlyOnce: true });
40
- (0, assert_js_1.assertUsage)(!setup.vikeVitePlugin, `Loading Vike's Vite plugin (the ${picocolors_1.default.cyan('vike/plugin')} module) is prohibited in production.`);
41
+ // TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
42
+ (0, assert_js_1.assertWarning)(!isNodeEnvDev(), `The ${getEnvDescription()}, which is contradictory because the environment seems to be a production environment (Vite isn't loaded), see ${picocolors_1.default.underline('https://vike.dev/NODE_ENV')} and ${picocolors_1.default.underline('https://vike.dev/warning/setup')}`, { onlyOnce: true });
43
+ (0, assert_js_1.assertUsage)(!setup.vikeVitePlugin, `Vike's Vite plugin (the ${picocolors_1.default.cyan('vike/plugin')} module) shouldn't be loaded in production, see ${picocolors_1.default.underline('https://vike.dev/warning/setup')}`);
41
44
  // This assert() one of the main goal of this file: it ensures assertIsNotProductionRuntime()
42
45
  (0, assert_js_1.assert)(!setup.shouldNotBeProduction);
43
46
  }
44
47
  else {
45
48
  if (!setup.isPreview && !setup.vitePreviewServer && !setup.isPrerendering) {
46
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
47
- (0, assert_js_1.assertWarning)(isNodeEnvDev(), `The ${getEnvDescription()}, but Vite is loaded which is prohibited in production, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
49
+ // TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
50
+ (0, assert_js_1.assertWarning)(isNodeEnvDev(), `The ${getEnvDescription()} while Vite is loaded, but Vite shouldn't be loaded in production, see ${picocolors_1.default.underline('https://vike.dev/warning/setup')}`, { onlyOnce: true });
48
51
  }
49
52
  (0, assert_js_1.assert)(setup.vikeVitePlugin);
50
53
  (0, assert_js_1.assert)(setup.shouldNotBeProduction);
@@ -113,8 +116,8 @@ function markSetup_isPreview() {
113
116
  function assertUsageNodeEnvIsNotDev(operation) {
114
117
  if (!isNodeEnvDev())
115
118
  return;
116
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
117
- (0, assert_js_1.assertWarning)(false, `The ${getEnvDescription()} which is forbidden upon ${operation}, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
119
+ // TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
120
+ (0, assert_js_1.assertWarning)(false, `The ${getEnvDescription()} upon ${operation} which shouldn't be the case, see ${picocolors_1.default.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
118
121
  }
119
122
  function getEnvDescription() {
120
123
  const envType = `${(isNodeEnvDev() ? 'development' : 'production')} environment`;
@@ -125,7 +128,7 @@ function getEnvDescription() {
125
128
  // https://github.com/cloudflare/workers-sdk/issues/7886
126
129
  function assertNodeEnvIsNotUndefinedString() {
127
130
  const nodeEnv = getNodeEnv();
128
- (0, assert_js_1.assertWarning)(nodeEnv !== 'undefined', `${picocolors_1.default.cyan('process.env.NODE_ENV==="undefined"')} which is unexpected: ${picocolors_1.default.cyan('process.env.NODE_ENV')} is allowed to be the *value* ${picocolors_1.default.cyan('undefined')} (i.e. ${picocolors_1.default.cyan('process.env.NODE_ENV===undefined')}) but it shouldn't be the *string* ${picocolors_1.default.cyan('"undefined"')} ${picocolors_1.default.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
131
+ (0, assert_js_1.assertWarning)(nodeEnv !== 'undefined', `${picocolors_1.default.cyan('process.env.NODE_ENV==="undefined"')} which is unexpected: ${picocolors_1.default.cyan('process.env.NODE_ENV')} is allowed to be the *value* ${picocolors_1.default.cyan('undefined')} (i.e. ${picocolors_1.default.cyan('process.env.NODE_ENV===undefined')}) but it shouldn't be the *string* ${picocolors_1.default.cyan('"undefined"')} — see ${picocolors_1.default.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
129
132
  }
130
133
  function isNodeEnvDev() {
131
134
  const nodeEnv = getNodeEnv();
@@ -35,6 +35,7 @@ const flags = [
35
35
  'vike:setup',
36
36
  'vike:stream',
37
37
  'vike:virtualFiles',
38
+ 'vike:vite-rpc',
38
39
  ];
39
40
  const flagsSkipWildcard = ['vike:log'];
40
41
  const flagRegex = /\bvike:[a-zA-Z-]+/g;
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.debugGlob = void 0;
4
4
  const debug_js_1 = require("./debug.js");
5
- // TODO/v1-release: remove (or rename?)
5
+ // TO-DO/next-major-release: remove (or rename?)
6
6
  exports.debugGlob = (0, debug_js_1.createDebugger)('vike:glob');
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getViteRPC = getViteRPC;
4
+ exports.createViteRPC = createViteRPC;
5
+ const assert_js_1 = require("./assert.js");
6
+ const genPromise_js_1 = require("./genPromise.js");
7
+ const getRandomId_js_1 = require("./getRandomId.js");
8
+ const getGlobalObject_js_1 = require("./getGlobalObject.js");
9
+ const debug_js_1 = require("./debug.js");
10
+ const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
11
+ (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
12
+ const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/getViteRPC.ts', {
13
+ rpc: null,
14
+ });
15
+ const debug = (0, debug_js_1.createDebugger)('vike:vite-rpc');
16
+ function getViteRPC() {
17
+ globalObject.rpc ?? (globalObject.rpc = createRpcClient());
18
+ return globalObject.rpc;
19
+ }
20
+ function createRpcClient() {
21
+ // @ts-ignore
22
+ const hot = (undefined);
23
+ (0, assert_js_1.assert)(hot);
24
+ const callbacks = [];
25
+ hot.on(`vike:rpc:response`, (dataResponse) => {
26
+ if (debug.isActivated)
27
+ debug('Response received', dataResponse);
28
+ const { callId, functionReturn } = dataResponse;
29
+ callbacks.forEach((c) => {
30
+ if (callId !== c.callId)
31
+ return;
32
+ c.cb(functionReturn);
33
+ callbacks.splice(callbacks.indexOf(c), 1);
34
+ });
35
+ });
36
+ const rpc = new Proxy({}, {
37
+ get(_, functionName) {
38
+ return async (...functionArgs) => {
39
+ // @ts-ignore
40
+ const hot = (undefined);
41
+ (0, assert_js_1.assert)(hot);
42
+ const callId = (0, getRandomId_js_1.getRandomId)();
43
+ const { promise, resolve } = (0, genPromise_js_1.genPromise)({ timeout: 3 * 1000 });
44
+ callbacks.push({
45
+ callId,
46
+ cb: (functionReturn) => {
47
+ resolve(functionReturn);
48
+ },
49
+ });
50
+ const dataRequest = { callId, functionName, functionArgs };
51
+ if (debug.isActivated)
52
+ debug('Request sent', dataRequest);
53
+ // Vite's type is wrong; it (undefined).send() does seem to return a promise
54
+ await hot.send('vike:rpc:request', dataRequest);
55
+ const functionReturn = await promise;
56
+ return functionReturn;
57
+ };
58
+ },
59
+ });
60
+ return rpc;
61
+ }
62
+ function createViteRPC(viteDevServer, getRpcFunctions) {
63
+ const rpcFunctions = getRpcFunctions(viteDevServer);
64
+ const { environments } = viteDevServer;
65
+ for (const envName in environments) {
66
+ debug('Listening to environment', envName);
67
+ const env = environments[envName];
68
+ env.hot.on('vike:rpc:request', async (dataRequest) => {
69
+ if (debug.isActivated)
70
+ debug('Request received', dataRequest);
71
+ const { callId, functionName, functionArgs } = dataRequest;
72
+ const functionReturn = await rpcFunctions[functionName](...functionArgs);
73
+ const dataResponse = { callId, functionReturn };
74
+ if (debug.isActivated)
75
+ debug('Response sent', dataResponse);
76
+ env.hot.send('vike:rpc:response', dataResponse);
77
+ });
78
+ }
79
+ }
@@ -49,7 +49,7 @@ function isPathAliasRecommended(alias) {
49
49
  // - In principle, we could allow path aliases that don't start with special character as long as they can be distinguished from npm package names.
50
50
  // - But we still enforce path aliases to start with a special character because it's a much simpler rule to follow.
51
51
  if (alias.startsWith('@/'))
52
- return true; // Needed by contra.com
52
+ return true; // Needed by contra.com and https://github.com/vikejs/vike/issues/1567#issuecomment-3076374243
53
53
  const firstLetter = alias[0];
54
54
  (0, assert_js_1.assert)(firstLetter);
55
55
  if (firstLetter === '@' || /[0-9a-z]/.test(firstLetter.toLowerCase()))
@@ -7,7 +7,7 @@ import { PageConfigRuntime } from '../types/PageConfig.js';
7
7
  /**
8
8
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
9
9
  *
10
- * TODO/eventually: remove
10
+ * TO-DO/eventually: remove
11
11
  */
12
12
  declare function getPagesAndRoutes(): Promise<{
13
13
  pageRoutes: PageRoutes;
@@ -8,7 +8,7 @@ import { setNodeEnvProduction } from '../utils/assertSetup.js';
8
8
  /**
9
9
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
10
10
  *
11
- * TODO/eventually: remove
11
+ * TO-DO/eventually: remove
12
12
  */
13
13
  async function getPagesAndRoutes() {
14
14
  setNodeEnvProduction();
@@ -1,4 +1,4 @@
1
- import { assertUsage } from './runtime-server-routing/utils.js';
1
+ import { assertUsage } from '../utils/assert.js';
2
2
  assertUsage(false, [
3
3
  'Server imports are forbidden on the client-side:',
4
4
  " import { something } from 'vike/server'",
@@ -30,7 +30,7 @@ declare function createPageContextClientSide(urlOriginal: string): Promise<{
30
30
  } & {
31
31
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
32
32
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
33
- };
33
+ } & Record<string, any>;
34
34
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
35
35
  _urlHandler: null;
36
36
  _urlRewrite: null | string;
@@ -14,14 +14,14 @@ async function createPageContextClientSide(urlOriginal) {
14
14
  isPrerendering: false,
15
15
  urlOriginal,
16
16
  _globalContext: globalContext,
17
- _pageFilesAll: globalContext._pageFilesAll, // TODO/v1-release: remove
17
+ _pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
18
18
  _urlHandler: null,
19
19
  _urlRewrite: null,
20
20
  _baseServer: baseServer,
21
21
  });
22
22
  const pageContextUrlComputed = getPageContextUrlComputed(pageContextCreated);
23
23
  objectAssign(pageContextCreated, pageContextUrlComputed);
24
- const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._vikeConfigPublicGlobal);
24
+ const pageContextAugmented = createPageContextShared(pageContextCreated, globalContext._vikeConfigPublicGlobal);
25
25
  augmentType(pageContextCreated, pageContextAugmented);
26
26
  return pageContextCreated;
27
27
  }