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
@@ -1,4 +1,4 @@
1
- // TODO/v1-release - move:
1
+ // TO-DO/next-major-release: move
2
2
  // import { resolveRoute } from 'vike/routing'
3
3
  // to:
4
4
  // import { resolveRoute } from 'vike'
@@ -44,6 +44,7 @@ import type { Vike, VikePackages } from './VikeNamespace.js';
44
44
  import type { HooksTimeoutProvidedByUser } from '../shared/hooks/getHook.js';
45
45
  import type { GlobalContext, PageContextClient, PageContextServer } from './PageContext.js';
46
46
  import type { InlineConfig } from 'vite';
47
+ import type { PassToClient } from '../node/runtime/html/serializeContext.js';
47
48
  type HookNameOld = HookName | HookNameOldDesign;
48
49
  type HookName = HookNamePage | HookNameGlobal;
49
50
  type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data' | 'onData' | 'route';
@@ -362,7 +363,7 @@ type ConfigBuiltIn = {
362
363
  *
363
364
  * https://vike.dev/passToClient
364
365
  */
365
- passToClient?: string[] | ImportString;
366
+ passToClient?: PassToClient | ImportString;
366
367
  /** Hook called when page is rendered on the client-side.
367
368
  *
368
369
  * https://vike.dev/onRenderClient
@@ -508,6 +509,12 @@ type ConfigBuiltIn = {
508
509
  * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
509
510
  */
510
511
  cacheControl?: string;
512
+ /**
513
+ * Add HTTP headers to the HTTP response.
514
+ *
515
+ * https://vike.dev/headers#response
516
+ */
517
+ headersResponse?: HeadersInit;
511
518
  /**
512
519
  * Make development/preview server available over LAN and public addresses.
513
520
  *
@@ -561,6 +568,7 @@ type ConfigBuiltInResolved = {
561
568
  redirects?: Record<string, string>[];
562
569
  prerender?: Exclude<Config['prerender'], ImportString | undefined>[];
563
570
  middleware?: Function[];
571
+ headersResponse?: HeadersInit[];
564
572
  };
565
573
  type ConfigMeta = Record<string, ConfigDefinition>;
566
574
  type ImportString = `import:${string}`;
@@ -81,7 +81,7 @@ type PageContextBuiltInCommon<Data> = {
81
81
  */
82
82
  urlOriginal: string;
83
83
  /**
84
- * The HTTP Headers of the incoming HTTP Request.
84
+ * The HTTP request headers.
85
85
  *
86
86
  * As a string object normalized by Vike.
87
87
  *
@@ -90,7 +90,7 @@ type PageContextBuiltInCommon<Data> = {
90
90
  */
91
91
  headers: Record<string, string> | null;
92
92
  /**
93
- * The HTTP Headers of the incoming HTTP Request.
93
+ * The HTTP request headers.
94
94
  *
95
95
  * The original object provided by the server.
96
96
  *
@@ -98,6 +98,12 @@ type PageContextBuiltInCommon<Data> = {
98
98
  * https://vike.dev/pageContext#headersOriginal
99
99
  */
100
100
  headersOriginal?: unknown;
101
+ /**
102
+ * The HTTP response headers.
103
+ *
104
+ * https://vike.dev/headers#response
105
+ */
106
+ headersResponse: Headers;
101
107
  /** If an error occurs, whether the error is a `404 Page Not Found`.
102
108
  *
103
109
  * https://vike.dev/error-page
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.235";
1
+ export declare const PROJECT_VERSION: "0.4.236-commit-64431e7";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.235';
2
+ export const PROJECT_VERSION = '0.4.236-commit-64431e7';
@@ -24,22 +24,25 @@ function assertIsNotProductionRuntime() {
24
24
  setup.shouldNotBeProduction = true;
25
25
  }
26
26
  function onSetupRuntime() {
27
+ // TODO/now
28
+ if (true)
29
+ return;
27
30
  if (debug.isActivated)
28
31
  debug('assertSetup()', new Error().stack);
29
32
  if (isTest())
30
33
  return;
31
34
  assertNodeEnvIsNotUndefinedString();
32
35
  if (!setup.viteDevServer && setup.isViteDev === undefined) {
33
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
34
- 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 });
35
- assertUsage(!setup.vikeVitePlugin, `Loading Vike's Vite plugin (the ${pc.cyan('vike/plugin')} module) is prohibited in production.`);
36
+ // TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
37
+ assertWarning(!isNodeEnvDev(), `The ${getEnvDescription()}, which is contradictory because the environment seems to be a production environment (Vite isn't loaded), see ${pc.underline('https://vike.dev/NODE_ENV')} and ${pc.underline('https://vike.dev/warning/setup')}`, { onlyOnce: true });
38
+ assertUsage(!setup.vikeVitePlugin, `Vike's Vite plugin (the ${pc.cyan('vike/plugin')} module) shouldn't be loaded in production, see ${pc.underline('https://vike.dev/warning/setup')}`);
36
39
  // This assert() one of the main goal of this file: it ensures assertIsNotProductionRuntime()
37
40
  assert(!setup.shouldNotBeProduction);
38
41
  }
39
42
  else {
40
43
  if (!setup.isPreview && !setup.vitePreviewServer && !setup.isPrerendering) {
41
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
42
- assertWarning(isNodeEnvDev(), `The ${getEnvDescription()}, but Vite is loaded which is prohibited in production, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
44
+ // TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
45
+ assertWarning(isNodeEnvDev(), `The ${getEnvDescription()} while Vite is loaded, but Vite shouldn't be loaded in production, see ${pc.underline('https://vike.dev/warning/setup')}`, { onlyOnce: true });
43
46
  }
44
47
  assert(setup.vikeVitePlugin);
45
48
  assert(setup.shouldNotBeProduction);
@@ -108,8 +111,8 @@ function markSetup_isPreview() {
108
111
  function assertUsageNodeEnvIsNotDev(operation) {
109
112
  if (!isNodeEnvDev())
110
113
  return;
111
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
112
- assertWarning(false, `The ${getEnvDescription()} which is forbidden upon ${operation}, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
114
+ // TO-DO/eventually: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
115
+ assertWarning(false, `The ${getEnvDescription()} upon ${operation} which shouldn't be the case, see ${pc.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
113
116
  }
114
117
  function getEnvDescription() {
115
118
  const envType = `${(isNodeEnvDev() ? 'development' : 'production')} environment`;
@@ -120,7 +123,7 @@ function getEnvDescription() {
120
123
  // https://github.com/cloudflare/workers-sdk/issues/7886
121
124
  function assertNodeEnvIsNotUndefinedString() {
122
125
  const nodeEnv = getNodeEnv();
123
- assertWarning(nodeEnv !== 'undefined', `${pc.cyan('process.env.NODE_ENV==="undefined"')} which is unexpected: ${pc.cyan('process.env.NODE_ENV')} is allowed to be the *value* ${pc.cyan('undefined')} (i.e. ${pc.cyan('process.env.NODE_ENV===undefined')}) but it shouldn't be the *string* ${pc.cyan('"undefined"')} ${pc.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
126
+ assertWarning(nodeEnv !== 'undefined', `${pc.cyan('process.env.NODE_ENV==="undefined"')} which is unexpected: ${pc.cyan('process.env.NODE_ENV')} is allowed to be the *value* ${pc.cyan('undefined')} (i.e. ${pc.cyan('process.env.NODE_ENV===undefined')}) but it shouldn't be the *string* ${pc.cyan('"undefined"')} — see ${pc.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
124
127
  }
125
128
  function isNodeEnvDev() {
126
129
  const nodeEnv = getNodeEnv();
@@ -1,7 +1,7 @@
1
1
  export { createDebugger };
2
2
  export { isDebugActivated };
3
3
  export type { Debug };
4
- declare const flags: readonly ["vike:crawl", "vike:error", "vike:esbuild-resolve", "vike:pluginExtractAssets", "vike:pluginExtractExportNames", "vike:glob", "vike:globalContext", "vike:log", "vike:optimizeDeps", "vike:outDir", "vike:pageFiles", "vike:pointer-imports", "vike:resolve", "vike:routing", "vike:setup", "vike:stream", "vike:virtualFiles"];
4
+ declare const flags: readonly ["vike:crawl", "vike:error", "vike:esbuild-resolve", "vike:pluginExtractAssets", "vike:pluginExtractExportNames", "vike:glob", "vike:globalContext", "vike:log", "vike:optimizeDeps", "vike:outDir", "vike:pageFiles", "vike:pointer-imports", "vike:resolve", "vike:routing", "vike:setup", "vike:stream", "vike:virtualFiles", "vike:vite-rpc"];
5
5
  type Flag = (typeof flags)[number];
6
6
  type Debug = ReturnType<typeof createDebugger>;
7
7
  type Options = {
@@ -30,6 +30,7 @@ const flags = [
30
30
  'vike:setup',
31
31
  'vike:stream',
32
32
  'vike:virtualFiles',
33
+ 'vike:vite-rpc',
33
34
  ];
34
35
  const flagsSkipWildcard = ['vike:log'];
35
36
  const flagRegex = /\bvike:[a-zA-Z-]+/g;
@@ -1,3 +1,3 @@
1
1
  import { createDebugger } from './debug.js';
2
- // TODO/v1-release: remove (or rename?)
2
+ // TO-DO/next-major-release: remove (or rename?)
3
3
  export const debugGlob = createDebugger('vike:glob');
@@ -0,0 +1,6 @@
1
+ export { getViteRPC };
2
+ export { createViteRPC };
3
+ import type { ViteDevServer } from 'vite';
4
+ declare function getViteRPC<RpcFunctions>(): RpcFunctions;
5
+ type AsyncFunction = (...args: any[]) => Promise<unknown>;
6
+ declare function createViteRPC(viteDevServer: ViteDevServer, getRpcFunctions: (viteDevServer: ViteDevServer) => Record<string, AsyncFunction>): void;
@@ -0,0 +1,77 @@
1
+ export { getViteRPC }; // consumer (aka RPC client)
2
+ export { createViteRPC }; // provider (aka RPC server)
3
+ import { assert } from './assert.js';
4
+ import { genPromise } from './genPromise.js';
5
+ import { getRandomId } from './getRandomId.js';
6
+ import { getGlobalObject } from './getGlobalObject.js';
7
+ import { createDebugger } from './debug.js';
8
+ import { assertIsNotBrowser } from './assertIsNotBrowser.js';
9
+ assertIsNotBrowser();
10
+ const globalObject = getGlobalObject('utils/getViteRPC.ts', {
11
+ rpc: null,
12
+ });
13
+ const debug = createDebugger('vike:vite-rpc');
14
+ function getViteRPC() {
15
+ globalObject.rpc ?? (globalObject.rpc = createRpcClient());
16
+ return globalObject.rpc;
17
+ }
18
+ function createRpcClient() {
19
+ // @ts-ignore
20
+ const hot = import.meta.hot;
21
+ assert(hot);
22
+ const callbacks = [];
23
+ hot.on(`vike:rpc:response`, (dataResponse) => {
24
+ if (debug.isActivated)
25
+ debug('Response received', dataResponse);
26
+ const { callId, functionReturn } = dataResponse;
27
+ callbacks.forEach((c) => {
28
+ if (callId !== c.callId)
29
+ return;
30
+ c.cb(functionReturn);
31
+ callbacks.splice(callbacks.indexOf(c), 1);
32
+ });
33
+ });
34
+ const rpc = new Proxy({}, {
35
+ get(_, functionName) {
36
+ return async (...functionArgs) => {
37
+ // @ts-ignore
38
+ const hot = import.meta.hot;
39
+ assert(hot);
40
+ const callId = getRandomId();
41
+ const { promise, resolve } = genPromise({ timeout: 3 * 1000 });
42
+ callbacks.push({
43
+ callId,
44
+ cb: (functionReturn) => {
45
+ resolve(functionReturn);
46
+ },
47
+ });
48
+ const dataRequest = { callId, functionName, functionArgs };
49
+ if (debug.isActivated)
50
+ debug('Request sent', dataRequest);
51
+ // Vite's type is wrong; it import.meta.hot.send() does seem to return a promise
52
+ await hot.send('vike:rpc:request', dataRequest);
53
+ const functionReturn = await promise;
54
+ return functionReturn;
55
+ };
56
+ },
57
+ });
58
+ return rpc;
59
+ }
60
+ function createViteRPC(viteDevServer, getRpcFunctions) {
61
+ const rpcFunctions = getRpcFunctions(viteDevServer);
62
+ const { environments } = viteDevServer;
63
+ for (const envName in environments) {
64
+ debug('Listening to environment', envName);
65
+ const env = environments[envName];
66
+ env.hot.on('vike:rpc:request', async (dataRequest) => {
67
+ if (debug.isActivated)
68
+ debug('Request received', dataRequest);
69
+ const { callId, functionName, functionArgs } = dataRequest;
70
+ const functionReturn = await rpcFunctions[functionName](...functionArgs);
71
+ const dataResponse = { callId, functionReturn };
72
+ if (debug.isActivated)
73
+ debug('Response sent', dataResponse);
74
+ env.hot.send('vike:rpc:response', dataResponse);
75
+ });
76
+ }
77
+ }
@@ -52,7 +52,7 @@ function isPathAliasRecommended(alias) {
52
52
  // - 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.
53
53
  // - But we still enforce path aliases to start with a special character because it's a much simpler rule to follow.
54
54
  if (alias.startsWith('@/'))
55
- return true; // Needed by contra.com
55
+ return true; // Needed by contra.com and https://github.com/vikejs/vike/issues/1567#issuecomment-3076374243
56
56
  const firstLetter = alias[0];
57
57
  assert(firstLetter);
58
58
  if (firstLetter === '@' || /[0-9a-z]/.test(firstLetter.toLowerCase()))
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.235",
3
+ "version": "0.4.236-commit-64431e7",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
7
7
  "worker": "./dist/esm/node/runtime/index.js",
8
+ "workerd": "./dist/esm/node/runtime/index.js",
8
9
  "require": "./dist/cjs/node/runtime/index.js",
9
10
  "node": "./dist/esm/node/runtime/index.js",
10
11
  "browser": "./dist/esm/client/node.js",
@@ -19,6 +20,7 @@
19
20
  },
20
21
  "./client/router": {
21
22
  "worker": "./dist/esm/node/client/router.js",
23
+ "workerd": "./dist/esm/node/client/router.js",
22
24
  "require": "./dist/cjs/node/client/router.js",
23
25
  "node": "./dist/esm/node/client/router.js",
24
26
  "browser": "./dist/esm/client/runtime-client-routing/index.js",
@@ -27,6 +29,7 @@
27
29
  },
28
30
  "./routing": {
29
31
  "worker": "./dist/esm/shared/route/routing.js",
32
+ "workerd": "./dist/esm/shared/route/routing.js",
30
33
  "require": "./dist/cjs/shared/route/routing.js",
31
34
  "node": "./dist/esm/shared/route/routing.js",
32
35
  "browser": "./dist/esm/shared/route/routing.js",
@@ -59,6 +62,7 @@
59
62
  },
60
63
  "./RenderErrorPage": {
61
64
  "worker": "./dist/esm/shared/RenderErrorPage.js",
65
+ "workerd": "./dist/esm/shared/RenderErrorPage.js",
62
66
  "require": "./dist/cjs/shared/RenderErrorPage.js",
63
67
  "node": "./dist/esm/shared/RenderErrorPage.js",
64
68
  "browser": "./dist/esm/shared/RenderErrorPage.js",
@@ -67,6 +71,7 @@
67
71
  },
68
72
  "./abort": {
69
73
  "worker": "./dist/esm/shared/abort.js",
74
+ "workerd": "./dist/esm/shared/abort.js",
70
75
  "require": "./dist/cjs/shared/abort.js",
71
76
  "node": "./dist/esm/shared/abort.js",
72
77
  "browser": "./dist/esm/shared/abort.js",
@@ -75,6 +80,7 @@
75
80
  },
76
81
  "./getPageContext": {
77
82
  "worker": "./dist/esm/shared/getPageContext.js",
83
+ "workerd": "./dist/esm/shared/getPageContext.js",
78
84
  "require": "./dist/cjs/shared/getPageContext.js",
79
85
  "node": "./dist/esm/shared/getPageContext.js",
80
86
  "browser": "./dist/esm/shared/getPageContext.js",
@@ -83,6 +89,7 @@
83
89
  },
84
90
  "./modifyUrl": {
85
91
  "worker": "./dist/esm/shared/modifyUrl.js",
92
+ "workerd": "./dist/esm/shared/modifyUrl.js",
86
93
  "require": "./dist/cjs/shared/modifyUrl.js",
87
94
  "node": "./dist/esm/shared/modifyUrl.js",
88
95
  "browser": "./dist/esm/shared/modifyUrl.js",
@@ -91,6 +98,7 @@
91
98
  },
92
99
  "./universal-middleware": {
93
100
  "worker": "./dist/esm/node/runtime/universal-middleware.js",
101
+ "workerd": "./dist/esm/node/runtime/universal-middleware.js",
94
102
  "require": "./dist/cjs/node/runtime/universal-middleware.js",
95
103
  "node": "./dist/esm/node/runtime/universal-middleware.js",
96
104
  "browser": "./dist/esm/client/node.js",
@@ -111,6 +119,7 @@
111
119
  },
112
120
  ".": {
113
121
  "worker": "./dist/esm/node/runtime/index.js",
122
+ "workerd": "./dist/esm/node/runtime/index.js",
114
123
  "require": "./dist/cjs/node/runtime/index.js",
115
124
  "node": "./dist/esm/node/runtime/index.js",
116
125
  "browser": "./dist/esm/client/index.js",
@@ -120,7 +129,7 @@
120
129
  },
121
130
  "dependencies": {
122
131
  "@brillout/import": "^0.2.6",
123
- "@brillout/json-serializer": "^0.5.15",
132
+ "@brillout/json-serializer": "^0.5.16",
124
133
  "@brillout/picocolors": "^1.0.26",
125
134
  "@brillout/require-shim": "^0.1.2",
126
135
  "@brillout/vite-plugin-server-entry": "^0.7.8",
@@ -245,16 +254,13 @@
245
254
  "./universal-middleware.js"
246
255
  ],
247
256
  "devDependencies": {
248
- "@biomejs/biome": "^1.9.4",
249
257
  "@brillout/release-me": "^0.4.2",
250
258
  "@types/estree": "^1.0.5",
251
- "@types/jest": "^29.5.11",
252
259
  "@types/node": "^20.10.5",
253
260
  "@types/picomatch": "^3.0.2",
254
- "@types/resolve": "^1.20.6",
255
261
  "@types/semver": "^7.5.8",
256
262
  "@types/source-map-support": "^0.5.10",
257
- "react-streaming": "^0.4.2",
263
+ "react-streaming": "^0.4.3",
258
264
  "rimraf": "^5.0.5",
259
265
  "typescript": "^5.8.3",
260
266
  "vite": "^6.3.2"
@@ -1,5 +0,0 @@
1
- export { getCacheControl };
2
- import type { PageConfigRuntime } from '../../../../types/PageConfig.js';
3
- import type { HttpResponse } from '../createHttpResponse.js';
4
- type StatusCode = HttpResponse['statusCode'];
5
- declare function getCacheControl(pageId: string | null, pageConfigs: PageConfigRuntime[], statusCode: StatusCode): string;