vike 0.4.236-commit-08fbc10 → 0.4.236-commit-79f1ef0

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 (76) hide show
  1. package/dist/cjs/client/shared/createGetGlobalContextClient.js +20 -10
  2. package/dist/cjs/client/shared/utils.js +1 -0
  3. package/dist/cjs/node/runtime/globalContext.js +104 -20
  4. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +3 -1
  5. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +3 -1
  6. package/dist/cjs/node/runtime/utils.js +3 -0
  7. package/dist/cjs/node/vite/index.js +2 -0
  8. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +19 -11
  9. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +2 -2
  10. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -3
  11. package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
  12. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +10 -8
  13. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +3 -3
  14. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  15. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +51 -0
  16. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
  17. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.js +4 -0
  18. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
  19. package/dist/cjs/node/vite/shared/getMagicString.js +18 -0
  20. package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +10 -0
  21. package/dist/cjs/shared/createGlobalContextShared.js +5 -1
  22. package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
  23. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  24. package/dist/cjs/utils/assertSetup.js +2 -0
  25. package/dist/cjs/utils/debug.js +1 -0
  26. package/dist/cjs/utils/getViteRPC.js +79 -0
  27. package/dist/cjs/utils/isRunnableDevEnvironment.js +9 -0
  28. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  29. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -2
  30. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
  31. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +1 -1
  32. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  33. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
  34. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +1 -1
  35. package/dist/esm/client/shared/createGetGlobalContextClient.js +20 -10
  36. package/dist/esm/client/shared/utils.d.ts +1 -0
  37. package/dist/esm/client/shared/utils.js +1 -0
  38. package/dist/esm/node/prerender/runPrerender.d.ts +40 -132
  39. package/dist/esm/node/runtime/globalContext.d.ts +32 -52
  40. package/dist/esm/node/runtime/globalContext.js +105 -21
  41. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +4 -2
  42. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +10 -33
  43. package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -2
  44. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +20 -66
  45. package/dist/esm/node/runtime/renderPage.d.ts +10 -33
  46. package/dist/esm/node/runtime/utils.d.ts +3 -0
  47. package/dist/esm/node/runtime/utils.js +3 -0
  48. package/dist/esm/node/vite/index.js +2 -0
  49. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
  50. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +19 -11
  51. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +2 -2
  52. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +0 -2
  53. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -2
  54. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  55. package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
  56. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +10 -8
  57. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +26 -0
  58. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +49 -0
  59. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.js +4 -0
  60. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
  61. package/dist/esm/node/vite/shared/getMagicString.d.ts +9 -0
  62. package/dist/esm/node/vite/shared/getMagicString.js +13 -0
  63. package/dist/esm/node/vite/shared/getManifestFilePathRelative.d.ts +2 -0
  64. package/dist/esm/node/vite/shared/getManifestFilePathRelative.js +8 -0
  65. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  66. package/dist/esm/shared/createGlobalContextShared.js +5 -1
  67. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  68. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  69. package/dist/esm/utils/assertSetup.js +2 -0
  70. package/dist/esm/utils/debug.d.ts +1 -1
  71. package/dist/esm/utils/debug.js +1 -0
  72. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  73. package/dist/esm/utils/getViteRPC.js +77 -0
  74. package/dist/esm/utils/isRunnableDevEnvironment.d.ts +3 -0
  75. package/dist/esm/utils/isRunnableDevEnvironment.js +7 -0
  76. package/package.json +11 -2
@@ -51,8 +51,14 @@ declare function getGlobalContextServerInternal(): Promise<{
51
51
  _isProduction: false;
52
52
  _isPrerendering: false;
53
53
  assetsManifest: null;
54
- _viteDevServer: ViteDevServer;
55
- viteConfig: ResolvedConfig;
54
+ _viteDevServer: ViteDevServer | undefined;
55
+ viteConfig: ResolvedConfig | undefined;
56
+ isClientSide: false;
57
+ _pageRoutes: PageRoutes;
58
+ _onBeforeRouteHook: Hook | null;
59
+ } & {
60
+ baseServer: string;
61
+ baseAssets: string;
56
62
  viteConfigRuntime: {
57
63
  root: string;
58
64
  build: {
@@ -63,11 +69,6 @@ declare function getGlobalContextServerInternal(): Promise<{
63
69
  inject: boolean | undefined;
64
70
  };
65
71
  };
66
- baseServer: string;
67
- baseAssets: string;
68
- isClientSide: false;
69
- _pageRoutes: PageRoutes;
70
- _onBeforeRouteHook: Hook | null;
71
72
  }) | (Record<string, unknown> & {
72
73
  isGlobalContext: true;
73
74
  _isOriginalObject: true;
@@ -92,6 +93,13 @@ declare function getGlobalContextServerInternal(): Promise<{
92
93
  _isProduction: true;
93
94
  assetsManifest: ViteManifest;
94
95
  _viteDevServer: null;
96
+ _usesClientRouter: boolean;
97
+ isClientSide: false;
98
+ _pageRoutes: PageRoutes;
99
+ _onBeforeRouteHook: Hook | null;
100
+ } & {
101
+ baseServer: string;
102
+ baseAssets: string;
95
103
  viteConfigRuntime: {
96
104
  root: string;
97
105
  build: {
@@ -102,12 +110,6 @@ declare function getGlobalContextServerInternal(): Promise<{
102
110
  inject: boolean | undefined;
103
111
  };
104
112
  };
105
- _usesClientRouter: boolean;
106
- baseServer: string;
107
- baseAssets: string;
108
- isClientSide: false;
109
- _pageRoutes: PageRoutes;
110
- _onBeforeRouteHook: Hook | null;
111
113
  }) | (Record<string, unknown> & {
112
114
  isGlobalContext: true;
113
115
  _isOriginalObject: true;
@@ -132,6 +134,13 @@ declare function getGlobalContextServerInternal(): Promise<{
132
134
  _isProduction: true;
133
135
  assetsManifest: ViteManifest;
134
136
  _viteDevServer: null;
137
+ _usesClientRouter: boolean;
138
+ isClientSide: false;
139
+ _pageRoutes: PageRoutes;
140
+ _onBeforeRouteHook: Hook | null;
141
+ } & {
142
+ baseServer: string;
143
+ baseAssets: string;
135
144
  viteConfigRuntime: {
136
145
  root: string;
137
146
  build: {
@@ -142,12 +151,6 @@ declare function getGlobalContextServerInternal(): Promise<{
142
151
  inject: boolean | undefined;
143
152
  };
144
153
  };
145
- _usesClientRouter: boolean;
146
- baseServer: string;
147
- baseAssets: string;
148
- isClientSide: false;
149
- _pageRoutes: PageRoutes;
150
- _onBeforeRouteHook: Hook | null;
151
154
  });
152
155
  }>;
153
156
  /**
@@ -205,24 +208,12 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
205
208
  pages: {
206
209
  [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
207
210
  };
208
- } & ({
211
+ } & (({
209
212
  _isProduction: false;
210
213
  _isPrerendering: false;
211
214
  assetsManifest: null;
212
- _viteDevServer: ViteDevServer;
213
- viteConfig: ResolvedConfig;
214
- viteConfigRuntime: {
215
- root: string;
216
- build: {
217
- outDir: string;
218
- };
219
- _baseViteOriginal: string;
220
- vitePluginServerEntry: {
221
- inject: boolean | undefined;
222
- };
223
- };
224
- baseServer: string;
225
- baseAssets: string;
215
+ _viteDevServer: ViteDevServer | undefined;
216
+ viteConfig: ResolvedConfig | undefined;
226
217
  isClientSide: false;
227
218
  _pageRoutes: PageRoutes;
228
219
  _onBeforeRouteHook: Hook | null;
@@ -232,19 +223,7 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
232
223
  _isProduction: true;
233
224
  assetsManifest: ViteManifest;
234
225
  _viteDevServer: null;
235
- viteConfigRuntime: {
236
- root: string;
237
- build: {
238
- outDir: string;
239
- };
240
- _baseViteOriginal: string;
241
- vitePluginServerEntry: {
242
- inject: boolean | undefined;
243
- };
244
- };
245
226
  _usesClientRouter: boolean;
246
- baseServer: string;
247
- baseAssets: string;
248
227
  isClientSide: false;
249
228
  _pageRoutes: PageRoutes;
250
229
  _onBeforeRouteHook: Hook | null;
@@ -254,6 +233,13 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
254
233
  _isProduction: true;
255
234
  assetsManifest: ViteManifest;
256
235
  _viteDevServer: null;
236
+ _usesClientRouter: boolean;
237
+ isClientSide: false;
238
+ _pageRoutes: PageRoutes;
239
+ _onBeforeRouteHook: Hook | null;
240
+ }) & {
241
+ baseServer: string;
242
+ baseAssets: string;
257
243
  viteConfigRuntime: {
258
244
  root: string;
259
245
  build: {
@@ -264,11 +250,5 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
264
250
  inject: boolean | undefined;
265
251
  };
266
252
  };
267
- _usesClientRouter: boolean;
268
- baseServer: string;
269
- baseAssets: string;
270
- isClientSide: false;
271
- _pageRoutes: PageRoutes;
272
- _onBeforeRouteHook: Hook | null;
273
253
  })>;
274
254
  declare function clearGlobalContext(): void;
@@ -18,6 +18,12 @@ export { clearGlobalContext };
18
18
  export { assertBuildInfo };
19
19
  export { updateUserFiles };
20
20
  export { vikeConfigErrorRecoverMsg };
21
+ // TODO/now: use isProductionEnvironment() instead of globalObject.isProduction
22
+ // TODO/now: rename:
23
+ // - isProduction => isProductionEnvironment
24
+ // - setIsProduction => setIsProductionEnvironment
25
+ // - setGlobalContext_isProduction => setGlobalContext_isProductionEnvironment
26
+ // - sProductionEnvironment => sDevEnv
21
27
  // The core logic revolves around:
22
28
  // - virtualFileExports is the main requirement
23
29
  // - In production: globalObject.buildEntry which is the production entry set by @brillout/vite-plugin-server-entry
@@ -26,7 +32,7 @@ export { vikeConfigErrorRecoverMsg };
26
32
  // - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
27
33
  // - In development: globalObject.viteDevServer which is Vite's development server
28
34
  // - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExports
29
- import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, } from './utils.js';
35
+ import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, getViteRPC, isRunnableDevEnvironment, assertIsNotBrowser, } from './utils.js';
30
36
  import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
31
37
  import { virtualFileIdEntryServer } from '../shared/virtualFiles/virtualFileEntry.js';
32
38
  import pc from '@brillout/picocolors';
@@ -44,6 +50,7 @@ const globalObject = getGlobalObject('runtime/globalContext.ts', getInitialGloba
44
50
  // https://chat.deepseek.com/a/chat/s/d7e9f90a-c7f3-4108-9cd5-4ad6caed3539
45
51
  const globalObjectTyped = globalObject;
46
52
  const vikeConfigErrorRecoverMsg = pc.bold(pc.green('Vike config loaded'));
53
+ assertIsNotBrowser();
47
54
  async function getGlobalContextServerInternal() {
48
55
  // getGlobalContextServerInternal() should always be called after initGlobalContext()
49
56
  assert(globalObject.isInitialized);
@@ -130,10 +137,12 @@ async function setGlobalContext_viteDevServer(viteDevServer) {
130
137
  assert(globalObject.viteConfig);
131
138
  globalObject.viteDevServer = viteDevServer;
132
139
  globalObject.viteDevServerPromiseResolve(viteDevServer);
133
- const { success } = await updateUserFiles();
134
- if (!success)
135
- return;
136
- assertGlobalContextIsDefined();
140
+ if (isRunnable(viteDevServer)) {
141
+ const { success } = await updateUserFiles();
142
+ if (!success)
143
+ return;
144
+ assertGlobalContextIsDefined();
145
+ }
137
146
  }
138
147
  function setGlobalContext_viteConfig(viteConfig, viteConfigRuntime) {
139
148
  if (globalObject.viteConfig)
@@ -150,6 +159,7 @@ function setGlobalContext_isPrerendering() {
150
159
  globalObject.isPrerendering = true;
151
160
  setIsProduction(true);
152
161
  }
162
+ // TODO/now: `rename tolerateContraditction tolerateContradiction`
153
163
  function setGlobalContext_isProduction(isProduction, tolerateContraditction = false) {
154
164
  if (debug.isActivated)
155
165
  debug('setGlobalContext_isProduction()', { isProduction, tolerateContraditction });
@@ -201,7 +211,13 @@ async function initGlobalContext() {
201
211
  const { isProduction } = globalObject;
202
212
  assert(typeof isProduction === 'boolean');
203
213
  if (!isProduction) {
204
- await globalObject.viteDevServerPromise;
214
+ if (isProcessSharedWithVite()) {
215
+ await globalObject.viteDevServerPromise;
216
+ }
217
+ else {
218
+ assert(isNonRunnableDev());
219
+ await updateUserFiles();
220
+ }
205
221
  assert(globalObject.waitForUserFilesUpdate);
206
222
  await globalObject.waitForUserFilesUpdate;
207
223
  }
@@ -335,16 +351,46 @@ async function updateUserFiles() {
335
351
  // Avoid race condition: abort if there is a new globalObject.viteDevServer (happens when vite.config.js is modified => Vite's dev server is fully reloaded).
336
352
  viteDevServer !== globalObject.viteDevServer;
337
353
  const { viteDevServer } = globalObject;
338
- assert(viteDevServer);
339
354
  let hasError = false;
340
355
  let virtualFileExports;
341
356
  let err;
342
- try {
343
- virtualFileExports = await viteDevServer.ssrLoadModule(virtualFileIdEntryServer);
357
+ if (viteDevServer) {
358
+ assert(isRunnable(viteDevServer));
359
+ /* We don't use runner.import() yet, because as of vite@7.0.6 (July 2025) runner.import() unexpectedly invalidates the module graph, which is a unexpected behavior that doesn't happen with ssrLoadModule()
360
+ // Vite 6
361
+ try {
362
+ virtualFileExports = await (viteDevServer.environments.ssr as RunnableDevEnvironment).runner.import(
363
+ 'virtual:vike:entry:server',
364
+ )
365
+ } catch (err_) {
366
+ hasError = true
367
+ err = err_
368
+ }
369
+ */
370
+ // Vite 5
371
+ try {
372
+ virtualFileExports = await viteDevServer.ssrLoadModule(virtualFileIdEntryServer);
373
+ }
374
+ catch (err_) {
375
+ hasError = true;
376
+ err = err_;
377
+ }
344
378
  }
345
- catch (err_) {
346
- hasError = true;
347
- err = err_;
379
+ else {
380
+ try {
381
+ /* We use __VIKE__DYNAMIC_IMPORT instead of directly using import() to workaround what seems to be a Vite HMR bug:
382
+ ```js
383
+ assert(false)
384
+ // This line breaks the HMR of regular (runnable) apps, even though (as per the assert() above) it's never run. It seems to be a Vite bug: handleHotUpdate() receives an empty `modules` list.
385
+ import('virtual:vike:entry:server')
386
+ ```
387
+ */
388
+ virtualFileExports = await __VIKE__DYNAMIC_IMPORT('virtual:vike:entry:server');
389
+ }
390
+ catch (err_) {
391
+ hasError = true;
392
+ err = err_;
393
+ }
348
394
  }
349
395
  if (isOutdated())
350
396
  return { success: false };
@@ -370,7 +416,7 @@ async function updateUserFiles() {
370
416
  async function setGlobalContext(virtualFileExports) {
371
417
  debug('setGlobalContext()');
372
418
  assert(!getVikeConfigErrorBuild());
373
- const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext, addGlobalContextTmp);
419
+ const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext, addGlobalContextTmp, addGlobalContextAsync);
374
420
  assertV1Design(
375
421
  // pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
376
422
  globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
@@ -396,23 +442,18 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
396
442
  _pageRoutes: pageRoutes,
397
443
  _onBeforeRouteHook: onBeforeRouteHook,
398
444
  };
399
- const { viteDevServer, viteConfig, viteConfigRuntime, isPrerendering, isProduction } = globalObject;
445
+ const { viteDevServer, viteConfig, isPrerendering, isProduction } = globalObject;
400
446
  assert(typeof isProduction === 'boolean');
401
447
  if (!isProduction) {
402
- assert(viteDevServer);
403
448
  assert(globalContext); // main common requirement
404
- assert(viteConfig);
405
- assert(viteConfigRuntime);
406
449
  assert(!isPrerendering);
407
450
  return {
408
451
  ...globalContextBase,
409
- ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
410
452
  _isProduction: false,
411
453
  _isPrerendering: false,
412
454
  assetsManifest: null,
413
455
  _viteDevServer: viteDevServer,
414
456
  viteConfig,
415
- viteConfigRuntime,
416
457
  };
417
458
  }
418
459
  else {
@@ -423,11 +464,9 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
423
464
  assert(assetsManifest);
424
465
  const globalContextBase2 = {
425
466
  ...globalContextBase,
426
- ...resolveBaseRuntime(buildInfo.viteConfigRuntime, globalContext.config),
427
467
  _isProduction: true,
428
468
  assetsManifest,
429
469
  _viteDevServer: null,
430
- viteConfigRuntime: buildInfo.viteConfigRuntime,
431
470
  _usesClientRouter: buildInfo.usesClientRouter,
432
471
  };
433
472
  if (isPrerendering) {
@@ -447,6 +486,27 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
447
486
  }
448
487
  }
449
488
  }
489
+ async function addGlobalContextAsync(globalContext) {
490
+ debug('addGlobalContextAsync()');
491
+ let { viteConfigRuntime, buildInfo } = globalObject;
492
+ if (!viteConfigRuntime) {
493
+ if (buildInfo) {
494
+ viteConfigRuntime = buildInfo.viteConfigRuntime;
495
+ }
496
+ else {
497
+ assert(!isProcessSharedWithVite()); // process shared with Vite => globalObject.viteConfigRuntime should be set
498
+ assert(!globalObject.isProduction); // production => globalObject.buildInfo.viteConfigRuntime should be set
499
+ assert(isNonRunnableDev());
500
+ const rpc = getViteRPC();
501
+ viteConfigRuntime = await rpc.getViteConfigRuntimeRPC();
502
+ }
503
+ }
504
+ assert(viteConfigRuntime);
505
+ return {
506
+ viteConfigRuntime,
507
+ ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
508
+ };
509
+ }
450
510
  function clearGlobalContext() {
451
511
  debug('clearGlobalContext()');
452
512
  objectReplace(globalObject, getInitialGlobalObject(), ['buildEntryPrevious']);
@@ -455,6 +515,7 @@ function getInitialGlobalObject() {
455
515
  debug('getInitialGlobalObject()');
456
516
  const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = genPromise();
457
517
  return {
518
+ isProduction: isNonRunnableDev() ? false : undefined,
458
519
  viteDevServerPromise,
459
520
  viteDevServerPromiseResolve,
460
521
  };
@@ -465,3 +526,26 @@ function resolveBaseRuntime(viteConfigRuntime, config) {
465
526
  const baseAssetsUnresolved = config.baseAssets ?? null;
466
527
  return resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved);
467
528
  }
529
+ function isProcessSharedWithVite() {
530
+ const yes = globalThis.__VIKE__IS_PROCESS_SHARED_WITH_VITE ?? false;
531
+ if (yes)
532
+ assert(!isNonRunnableDev());
533
+ return yes;
534
+ }
535
+ function isRunnable(viteDevServer) {
536
+ const yes =
537
+ // Vite 5
538
+ !viteDevServer.environments ||
539
+ // Vite 6 or above
540
+ isRunnableDevEnvironment(viteDevServer.environments.ssr);
541
+ if (yes)
542
+ assert(!isNonRunnableDev());
543
+ return yes;
544
+ }
545
+ function isNonRunnableDev() {
546
+ if (typeof __VIKE__IS_NON_RUNNABLE_DEV === 'undefined')
547
+ return null;
548
+ const yes = __VIKE__IS_NON_RUNNABLE_DEV;
549
+ assert(typeof yes === 'boolean');
550
+ return yes;
551
+ }
@@ -1,5 +1,5 @@
1
1
  export { getViteDevScript };
2
- import { assert, assertUsage, assertWarning } from '../../utils.js';
2
+ import { assert, assertUsage, assertWarning, getViteRPC } from '../../utils.js';
3
3
  import pc from '@brillout/picocolors';
4
4
  const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
5
5
  async function getViteDevScript(pageContext) {
@@ -11,7 +11,9 @@ async function getViteDevScript(pageContext) {
11
11
  const fakeHtmlBegin = '<html> <head>'; // White space to test whether user is using a minifier
12
12
  const fakeHtmlEnd = '</head><body></body></html>';
13
13
  let fakeHtml = fakeHtmlBegin + fakeHtmlEnd;
14
- fakeHtml = await viteDevServer.transformIndexHtml('/', fakeHtml);
14
+ fakeHtml = viteDevServer
15
+ ? await viteDevServer.transformIndexHtml('/', fakeHtml)
16
+ : await getViteRPC().transformIndexHtmlRPC(fakeHtml);
15
17
  assertUsage(!fakeHtml.includes('vite-plugin-pwa'), `The HTML transformer of ${pc.cyan('vite-plugin-pwa')} cannot be applied, see workaround at https://github.com/vikejs/vike/issues/388#issuecomment-1199280084`);
16
18
  assertUsage(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')), `Vite plugins that minify the HTML cannot be applied, see https://github.com/vikejs/vike/issues/224`);
17
19
  assertUsage(fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd), `You are using a Vite Plugin that transforms the HTML in a way that conflicts with Vike. ${reachOutCTA}`);
@@ -41,24 +41,12 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
41
41
  pages: {
42
42
  [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
43
43
  };
44
- } & ({
44
+ } & (({
45
45
  _isProduction: false;
46
46
  _isPrerendering: false;
47
47
  assetsManifest: null;
48
- _viteDevServer: import("vite").ViteDevServer;
49
- viteConfig: import("vite").ResolvedConfig;
50
- viteConfigRuntime: {
51
- root: string;
52
- build: {
53
- outDir: string;
54
- };
55
- _baseViteOriginal: string;
56
- vitePluginServerEntry: {
57
- inject: boolean | undefined;
58
- };
59
- };
60
- baseServer: string;
61
- baseAssets: string;
48
+ _viteDevServer: import("vite").ViteDevServer | undefined;
49
+ viteConfig: import("vite").ResolvedConfig | undefined;
62
50
  isClientSide: false;
63
51
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
64
52
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -68,19 +56,7 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
68
56
  _isProduction: true;
69
57
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
70
58
  _viteDevServer: null;
71
- viteConfigRuntime: {
72
- root: string;
73
- build: {
74
- outDir: string;
75
- };
76
- _baseViteOriginal: string;
77
- vitePluginServerEntry: {
78
- inject: boolean | undefined;
79
- };
80
- };
81
59
  _usesClientRouter: boolean;
82
- baseServer: string;
83
- baseAssets: string;
84
60
  isClientSide: false;
85
61
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
86
62
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -90,6 +66,13 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
90
66
  _isProduction: true;
91
67
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
92
68
  _viteDevServer: null;
69
+ _usesClientRouter: boolean;
70
+ isClientSide: false;
71
+ _pageRoutes: import("../../../__internal/index.js").PageRoutes;
72
+ _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
73
+ }) & {
74
+ baseServer: string;
75
+ baseAssets: string;
93
76
  viteConfigRuntime: {
94
77
  root: string;
95
78
  build: {
@@ -100,12 +83,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
100
83
  inject: boolean | undefined;
101
84
  };
102
85
  };
103
- _usesClientRouter: boolean;
104
- baseServer: string;
105
- baseAssets: string;
106
- isClientSide: false;
107
- _pageRoutes: import("../../../__internal/index.js").PageRoutes;
108
- _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
109
86
  });
110
87
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
111
88
  _baseServer: string;
@@ -1,7 +1,7 @@
1
1
  export { getPageAssets };
2
2
  export { setResolveClientEntriesDev };
3
3
  export { resolveIncludeAssetsImportedByServer };
4
- import { assert, prependBase, toPosixPath, unique, getGlobalObject } from '../utils.js';
4
+ import { assert, prependBase, toPosixPath, unique, getGlobalObject, getViteRPC } from '../utils.js';
5
5
  import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
6
6
  import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
7
7
  import { inferMediaType } from './inferMediaType.js';
@@ -15,7 +15,9 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
15
15
  const { _isProduction: isProduction } = globalContext;
16
16
  const isDev = !isProduction;
17
17
  const { assetUrls, clientEntriesSrc } = isDev
18
- ? await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
18
+ ? !globalContext._viteDevServer
19
+ ? await getViteRPC().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
20
+ : await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
19
21
  : retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries, resolveIncludeAssetsImportedByServer(globalContext.config));
20
22
  let pageAssets = [];
21
23
  unique([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
@@ -56,24 +56,12 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
56
56
  pages: {
57
57
  [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
58
58
  };
59
- } & ({
59
+ } & (({
60
60
  _isProduction: false;
61
61
  _isPrerendering: false;
62
62
  assetsManifest: null;
63
- _viteDevServer: import("vite").ViteDevServer;
64
- viteConfig: import("vite").ResolvedConfig;
65
- viteConfigRuntime: {
66
- root: string;
67
- build: {
68
- outDir: string;
69
- };
70
- _baseViteOriginal: string;
71
- vitePluginServerEntry: {
72
- inject: boolean | undefined;
73
- };
74
- };
75
- baseServer: string;
76
- baseAssets: string;
63
+ _viteDevServer: import("vite").ViteDevServer | undefined;
64
+ viteConfig: import("vite").ResolvedConfig | undefined;
77
65
  isClientSide: false;
78
66
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
79
67
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -83,19 +71,7 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
83
71
  _isProduction: true;
84
72
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
85
73
  _viteDevServer: null;
86
- viteConfigRuntime: {
87
- root: string;
88
- build: {
89
- outDir: string;
90
- };
91
- _baseViteOriginal: string;
92
- vitePluginServerEntry: {
93
- inject: boolean | undefined;
94
- };
95
- };
96
74
  _usesClientRouter: boolean;
97
- baseServer: string;
98
- baseAssets: string;
99
75
  isClientSide: false;
100
76
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
101
77
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -105,6 +81,13 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
105
81
  _isProduction: true;
106
82
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
107
83
  _viteDevServer: null;
84
+ _usesClientRouter: boolean;
85
+ isClientSide: false;
86
+ _pageRoutes: import("../../../__internal/index.js").PageRoutes;
87
+ _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
88
+ }) & {
89
+ baseServer: string;
90
+ baseAssets: string;
108
91
  viteConfigRuntime: {
109
92
  root: string;
110
93
  build: {
@@ -115,12 +98,6 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
115
98
  inject: boolean | undefined;
116
99
  };
117
100
  };
118
- _usesClientRouter: boolean;
119
- baseServer: string;
120
- baseAssets: string;
121
- isClientSide: false;
122
- _pageRoutes: import("../../../__internal/index.js").PageRoutes;
123
- _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
124
101
  });
125
102
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
126
103
  _baseServer: string;
@@ -191,24 +168,12 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
191
168
  pages: {
192
169
  [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
193
170
  };
194
- } & ({
171
+ } & (({
195
172
  _isProduction: false;
196
173
  _isPrerendering: false;
197
174
  assetsManifest: null;
198
- _viteDevServer: import("vite").ViteDevServer;
199
- viteConfig: import("vite").ResolvedConfig;
200
- viteConfigRuntime: {
201
- root: string;
202
- build: {
203
- outDir: string;
204
- };
205
- _baseViteOriginal: string;
206
- vitePluginServerEntry: {
207
- inject: boolean | undefined;
208
- };
209
- };
210
- baseServer: string;
211
- baseAssets: string;
175
+ _viteDevServer: import("vite").ViteDevServer | undefined;
176
+ viteConfig: import("vite").ResolvedConfig | undefined;
212
177
  isClientSide: false;
213
178
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
214
179
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -218,19 +183,7 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
218
183
  _isProduction: true;
219
184
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
220
185
  _viteDevServer: null;
221
- viteConfigRuntime: {
222
- root: string;
223
- build: {
224
- outDir: string;
225
- };
226
- _baseViteOriginal: string;
227
- vitePluginServerEntry: {
228
- inject: boolean | undefined;
229
- };
230
- };
231
186
  _usesClientRouter: boolean;
232
- baseServer: string;
233
- baseAssets: string;
234
187
  isClientSide: false;
235
188
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
236
189
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
@@ -240,6 +193,13 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
240
193
  _isProduction: true;
241
194
  assetsManifest: import("../../../types/ViteManifest.js").ViteManifest;
242
195
  _viteDevServer: null;
196
+ _usesClientRouter: boolean;
197
+ isClientSide: false;
198
+ _pageRoutes: import("../../../__internal/index.js").PageRoutes;
199
+ _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
200
+ }) & {
201
+ baseServer: string;
202
+ baseAssets: string;
243
203
  viteConfigRuntime: {
244
204
  root: string;
245
205
  build: {
@@ -250,12 +210,6 @@ declare function prerenderPage(pageContext: PageContextCreated & PageConfigsLazy
250
210
  inject: boolean | undefined;
251
211
  };
252
212
  };
253
- _usesClientRouter: boolean;
254
- baseServer: string;
255
- baseAssets: string;
256
- isClientSide: false;
257
- _pageRoutes: import("../../../__internal/index.js").PageRoutes;
258
- _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
259
213
  });
260
214
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
261
215
  _baseServer: string;