vike 0.4.236-commit-85d361d → 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 (60) hide show
  1. package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -2
  2. package/dist/cjs/node/runtime/globalContext.js +83 -21
  3. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  4. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +15 -12
  5. package/dist/cjs/node/runtime/utils.js +1 -0
  6. package/dist/cjs/node/vite/index.js +2 -0
  7. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  8. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +2 -1
  9. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  10. package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
  11. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +3 -3
  12. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  13. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
  14. package/dist/cjs/node/vite/plugins/pluginViteRPC.js +42 -0
  15. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
  16. package/dist/cjs/shared/createGlobalContextShared.js +14 -6
  17. package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
  18. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  19. package/dist/cjs/utils/assertSetup.js +3 -0
  20. package/dist/cjs/utils/debug.js +1 -0
  21. package/dist/cjs/utils/getViteRPC.js +79 -0
  22. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  23. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -2
  24. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
  25. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +1 -1
  26. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  27. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
  28. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +1 -1
  29. package/dist/esm/client/shared/createGetGlobalContextClient.js +1 -1
  30. package/dist/esm/node/prerender/runPrerender.d.ts +40 -132
  31. package/dist/esm/node/runtime/globalContext.d.ts +32 -52
  32. package/dist/esm/node/runtime/globalContext.js +84 -22
  33. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  34. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +10 -33
  35. package/dist/esm/node/runtime/renderPage/getPageAssets.js +16 -13
  36. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +20 -66
  37. package/dist/esm/node/runtime/renderPage.d.ts +10 -33
  38. package/dist/esm/node/runtime/utils.d.ts +1 -0
  39. package/dist/esm/node/runtime/utils.js +1 -0
  40. package/dist/esm/node/vite/index.js +2 -0
  41. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
  42. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  43. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +1 -1
  44. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +2 -1
  45. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  46. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  47. package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
  48. package/dist/esm/node/vite/plugins/pluginViteRPC.d.ts +25 -0
  49. package/dist/esm/node/vite/plugins/pluginViteRPC.js +40 -0
  50. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
  51. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  52. package/dist/esm/shared/createGlobalContextShared.js +14 -6
  53. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  54. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  55. package/dist/esm/utils/assertSetup.js +3 -0
  56. package/dist/esm/utils/debug.d.ts +1 -1
  57. package/dist/esm/utils/debug.js +1 -0
  58. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  59. package/dist/esm/utils/getViteRPC.js +77 -0
  60. package/package.json +10 -1
@@ -26,7 +26,7 @@ export { vikeConfigErrorRecoverMsg };
26
26
  // - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
27
27
  // - In development: globalObject.viteDevServer which is Vite's development server
28
28
  // - 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';
29
+ import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, getViteRPC, } from './utils.js';
30
30
  import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
31
31
  import { virtualFileIdEntryServer } from '../shared/virtualFiles/virtualFileEntry.js';
32
32
  import pc from '@brillout/picocolors';
@@ -151,6 +151,9 @@ function setGlobalContext_isPrerendering() {
151
151
  setIsProduction(true);
152
152
  }
153
153
  function setGlobalContext_isProduction(isProduction, tolerateContraditction = false) {
154
+ // TODO/now: try to remove globalObject.isProduction ?
155
+ // TODO/now: `rename tolerateContraditction tolerateContradiction`
156
+ tolerateContraditction = true;
154
157
  if (debug.isActivated)
155
158
  debug('setGlobalContext_isProduction()', { isProduction, tolerateContraditction });
156
159
  if (globalObject.isProduction === undefined) {
@@ -201,7 +204,12 @@ async function initGlobalContext() {
201
204
  const { isProduction } = globalObject;
202
205
  assert(typeof isProduction === 'boolean');
203
206
  if (!isProduction) {
204
- await globalObject.viteDevServerPromise;
207
+ if (isProcessSharedWithVite()) {
208
+ await globalObject.viteDevServerPromise;
209
+ }
210
+ else {
211
+ await updateUserFiles();
212
+ }
205
213
  assert(globalObject.waitForUserFilesUpdate);
206
214
  await globalObject.waitForUserFilesUpdate;
207
215
  }
@@ -335,16 +343,27 @@ async function updateUserFiles() {
335
343
  // 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
344
  viteDevServer !== globalObject.viteDevServer;
337
345
  const { viteDevServer } = globalObject;
338
- assert(viteDevServer);
339
346
  let hasError = false;
340
347
  let virtualFileExports;
341
348
  let err;
342
- try {
343
- virtualFileExports = await viteDevServer.ssrLoadModule(virtualFileIdEntryServer);
349
+ if (viteDevServer) {
350
+ try {
351
+ virtualFileExports = await viteDevServer.ssrLoadModule(virtualFileIdEntryServer);
352
+ }
353
+ catch (err_) {
354
+ hasError = true;
355
+ err = err_;
356
+ }
344
357
  }
345
- catch (err_) {
346
- hasError = true;
347
- err = err_;
358
+ else {
359
+ try {
360
+ // We don't directly use import() to workaround what seems to be a Vite HMR bug: using import() breaks the HMR of normal non-worker apps.
361
+ virtualFileExports = await __VIKE__DYNAMIC_IMPORT('virtual:vike:entry:server');
362
+ }
363
+ catch (err_) {
364
+ hasError = true;
365
+ err = err_;
366
+ }
348
367
  }
349
368
  if (isOutdated())
350
369
  return { success: false };
@@ -370,7 +389,7 @@ async function updateUserFiles() {
370
389
  async function setGlobalContext(virtualFileExports) {
371
390
  debug('setGlobalContext()');
372
391
  assert(!getVikeConfigErrorBuild());
373
- const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContextAsync, addGlobalContextSync);
392
+ const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext, addGlobalContextTmp, addGlobalContextAsync);
374
393
  assertV1Design(
375
394
  // pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
376
395
  globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
@@ -380,13 +399,13 @@ async function setGlobalContext(virtualFileExports) {
380
399
  // Never actually used, only used for TypeScript `ReturnType<typeof setGlobalContext>`
381
400
  return globalContext;
382
401
  }
383
- async function addGlobalContextAsync(globalContext) {
384
- debug('addGlobalContextAsync()');
402
+ async function addGlobalContextTmp(globalContext) {
403
+ debug('addGlobalContextTmp()');
385
404
  const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
386
405
  return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
387
406
  }
388
- function addGlobalContextSync(globalContext) {
389
- debug('addGlobalContextSync()');
407
+ function addGlobalContext(globalContext) {
408
+ debug('addGlobalContext()');
390
409
  const { pageRoutes, onBeforeRouteHook } = loadPageRoutesSync(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
391
410
  return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
392
411
  }
@@ -396,23 +415,18 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
396
415
  _pageRoutes: pageRoutes,
397
416
  _onBeforeRouteHook: onBeforeRouteHook,
398
417
  };
399
- const { viteDevServer, viteConfig, viteConfigRuntime, isPrerendering, isProduction } = globalObject;
418
+ const { viteDevServer, viteConfig, isPrerendering, isProduction } = globalObject;
400
419
  assert(typeof isProduction === 'boolean');
401
420
  if (!isProduction) {
402
- assert(viteDevServer);
403
421
  assert(globalContext); // main common requirement
404
- assert(viteConfig);
405
- assert(viteConfigRuntime);
406
422
  assert(!isPrerendering);
407
423
  return {
408
424
  ...globalContextBase,
409
- ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
410
425
  _isProduction: false,
411
426
  _isPrerendering: false,
412
427
  assetsManifest: null,
413
428
  _viteDevServer: viteDevServer,
414
429
  viteConfig,
415
- viteConfigRuntime,
416
430
  };
417
431
  }
418
432
  else {
@@ -423,11 +437,9 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
423
437
  assert(assetsManifest);
424
438
  const globalContextBase2 = {
425
439
  ...globalContextBase,
426
- ...resolveBaseRuntime(buildInfo.viteConfigRuntime, globalContext.config),
427
440
  _isProduction: true,
428
441
  assetsManifest,
429
442
  _viteDevServer: null,
430
- viteConfigRuntime: buildInfo.viteConfigRuntime,
431
443
  _usesClientRouter: buildInfo.usesClientRouter,
432
444
  };
433
445
  if (isPrerendering) {
@@ -447,14 +459,45 @@ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
447
459
  }
448
460
  }
449
461
  }
462
+ async function addGlobalContextAsync(globalContext) {
463
+ debug('addGlobalContextAsync()');
464
+ let { viteConfigRuntime, buildInfo } = globalObject;
465
+ if (!viteConfigRuntime) {
466
+ if (buildInfo) {
467
+ viteConfigRuntime = buildInfo.viteConfigRuntime;
468
+ }
469
+ else {
470
+ if (!isProcessSharedWithVite()) {
471
+ if (!globalObject.isProduction) {
472
+ const rpc = getViteRPC();
473
+ viteConfigRuntime = await rpc.getViteConfigRuntimeRPC();
474
+ }
475
+ else {
476
+ assert(false); // production => globalObject.buildInfo should be set
477
+ }
478
+ }
479
+ else {
480
+ assert(false); // process shared with Vite => globalObject.viteConfigRuntime should be set
481
+ }
482
+ }
483
+ }
484
+ assert(viteConfigRuntime);
485
+ return {
486
+ viteConfigRuntime,
487
+ ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
488
+ };
489
+ }
450
490
  function clearGlobalContext() {
451
491
  debug('clearGlobalContext()');
452
492
  objectReplace(globalObject, getInitialGlobalObject(), ['buildEntryPrevious']);
453
493
  }
454
494
  function getInitialGlobalObject() {
455
- debug('getInitialGlobalObject()');
495
+ const isProduction = getIsProductionStatic();
496
+ if (debug.isActivated)
497
+ debug('getInitialGlobalObject()', { isProduction });
456
498
  const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = genPromise();
457
499
  return {
500
+ isProduction,
458
501
  viteDevServerPromise,
459
502
  viteDevServerPromiseResolve,
460
503
  };
@@ -465,3 +508,22 @@ function resolveBaseRuntime(viteConfigRuntime, config) {
465
508
  const baseAssetsUnresolved = config.baseAssets ?? null;
466
509
  return resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved);
467
510
  }
511
+ function getIsProductionStatic() {
512
+ // TODO/now add @ts-ignore comments
513
+ // @ts-ignore
514
+ if (!import.meta.env)
515
+ return undefined;
516
+ // @ts-ignore
517
+ const PROD = import.meta.env.PROD;
518
+ return PROD;
519
+ }
520
+ function isProcessSharedWithVite() {
521
+ const ret = globalThis.__VIKE__IS_PROCESS_SHARED_WITH_VITE;
522
+ if (globalObject.isProcessSharedWithVite !== undefined) {
523
+ assert(globalObject.isProcessSharedWithVite === ret);
524
+ }
525
+ else {
526
+ globalObject.isProcessSharedWithVite = ret;
527
+ }
528
+ return ret;
529
+ }
@@ -1,4 +1,5 @@
1
1
  export { getViteDevScript };
2
+ import { getViteRPC } from '../../../../utils/getViteRPC.js';
2
3
  import { assert, assertUsage, assertWarning } from '../../utils.js';
3
4
  import pc from '@brillout/picocolors';
4
5
  const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
@@ -11,7 +12,13 @@ async function getViteDevScript(pageContext) {
11
12
  const fakeHtmlBegin = '<html> <head>'; // White space to test whether user is using a minifier
12
13
  const fakeHtmlEnd = '</head><body></body></html>';
13
14
  let fakeHtml = fakeHtmlBegin + fakeHtmlEnd;
14
- fakeHtml = await viteDevServer.transformIndexHtml('/', fakeHtml);
15
+ if (viteDevServer) {
16
+ fakeHtml = await viteDevServer.transformIndexHtml('/', fakeHtml);
17
+ }
18
+ else {
19
+ const rpc = getViteRPC();
20
+ fakeHtml = await rpc.transformIndexHtmlRPC(fakeHtml);
21
+ }
15
22
  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
23
  assertUsage(!fakeHtml.startsWith(fakeHtmlBegin.replace(' ', '')), `Vite plugins that minify the HTML cannot be applied, see https://github.com/vikejs/vike/issues/224`);
17
24
  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';
@@ -14,18 +14,11 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
14
14
  const globalContext = pageContext._globalContext;
15
15
  const { _isProduction: isProduction } = globalContext;
16
16
  const isDev = !isProduction;
17
- let assetUrls;
18
- let clientEntriesSrc;
19
- if (isDev) {
20
- const { _viteDevServer: viteDevServer } = globalContext;
21
- clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
22
- assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
23
- }
24
- else {
25
- const { assetsManifest } = globalContext;
26
- clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
27
- assetUrls = retrieveAssetsProd(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(pageContext._globalContext.config));
28
- }
17
+ const { assetUrls, clientEntriesSrc } = isDev
18
+ ? !globalContext._viteDevServer
19
+ ? await getViteRPC().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
20
+ : await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
21
+ : retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries, resolveIncludeAssetsImportedByServer(globalContext.config));
29
22
  let pageAssets = [];
30
23
  unique([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
31
24
  const { mediaType = null, assetType = null } = inferMediaType(src) || {};
@@ -59,6 +52,16 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
59
52
  await sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction);
60
53
  return pageAssets;
61
54
  }
55
+ async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
56
+ const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
57
+ const assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
58
+ return { clientEntriesSrc, assetUrls };
59
+ }
60
+ function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, includeAssetsImportedByServer) {
61
+ const clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
62
+ const assetUrls = retrieveAssetsProd(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(includeAssetsImportedByServer));
63
+ return { clientEntriesSrc, assetUrls };
64
+ }
62
65
  function resolveClientEntriesProd(clientEntry, assetsManifest) {
63
66
  const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
64
67
  assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
@@ -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;
@@ -46,24 +46,12 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
46
46
  pages: {
47
47
  [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
48
48
  };
49
- } & ({
49
+ } & (({
50
50
  _isProduction: false;
51
51
  _isPrerendering: false;
52
52
  assetsManifest: null;
53
- _viteDevServer: import("vite").ViteDevServer;
54
- viteConfig: import("vite").ResolvedConfig;
55
- viteConfigRuntime: {
56
- root: string;
57
- build: {
58
- outDir: string;
59
- };
60
- _baseViteOriginal: string;
61
- vitePluginServerEntry: {
62
- inject: boolean | undefined;
63
- };
64
- };
65
- baseServer: string;
66
- baseAssets: string;
53
+ _viteDevServer: import("vite").ViteDevServer | undefined;
54
+ viteConfig: import("vite").ResolvedConfig | undefined;
67
55
  isClientSide: false;
68
56
  _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
69
57
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
@@ -73,19 +61,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
73
61
  _isProduction: true;
74
62
  assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
75
63
  _viteDevServer: null;
76
- viteConfigRuntime: {
77
- root: string;
78
- build: {
79
- outDir: string;
80
- };
81
- _baseViteOriginal: string;
82
- vitePluginServerEntry: {
83
- inject: boolean | undefined;
84
- };
85
- };
86
64
  _usesClientRouter: boolean;
87
- baseServer: string;
88
- baseAssets: string;
89
65
  isClientSide: false;
90
66
  _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
91
67
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
@@ -95,6 +71,13 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
95
71
  _isProduction: true;
96
72
  assetsManifest: import("../../types/ViteManifest.js").ViteManifest;
97
73
  _viteDevServer: null;
74
+ _usesClientRouter: boolean;
75
+ isClientSide: false;
76
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
77
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
78
+ }) & {
79
+ baseServer: string;
80
+ baseAssets: string;
98
81
  viteConfigRuntime: {
99
82
  root: string;
100
83
  build: {
@@ -105,12 +88,6 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
105
88
  inject: boolean | undefined;
106
89
  };
107
90
  };
108
- _usesClientRouter: boolean;
109
- baseServer: string;
110
- baseAssets: string;
111
- isClientSide: false;
112
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
113
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
114
91
  });
115
92
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
116
93
  _baseServer: string;
@@ -56,3 +56,4 @@ export * from '../../utils/PROJECT_VERSION.js';
56
56
  export * from '../../utils/genPromise.js';
57
57
  export * from '../../utils/augmentType.js';
58
58
  export * from '../../utils/changeEnumerable.js';
59
+ export * from '../../utils/getViteRPC.js';
@@ -60,3 +60,4 @@ export * from '../../utils/PROJECT_VERSION.js';
60
60
  export * from '../../utils/genPromise.js';
61
61
  export * from '../../utils/augmentType.js';
62
62
  export * from '../../utils/changeEnumerable.js';
63
+ export * from '../../utils/getViteRPC.js';
@@ -22,6 +22,7 @@ import { resolveClientEntriesDev } from './shared/resolveClientEntriesDev.js';
22
22
  import { pluginWorkaroundCssModuleHmr } from './plugins/pluginWorkaroundCssModuleHmr.js';
23
23
  import { pluginWorkaroundVite6HmrRegression } from './plugins/pluginWorkaroundVite6HmrRegression.js';
24
24
  import { pluginReplaceConstants } from './plugins/pluginReplaceConstants.js';
25
+ import { pluginViteRPC } from './plugins/pluginViteRPC.js';
25
26
  // We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
26
27
  setResolveClientEntriesDev(resolveClientEntriesDev);
27
28
  // Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
@@ -41,6 +42,7 @@ function plugin(vikeVitePluginOptions = {}) {
41
42
  pluginWorkaroundCssModuleHmr(),
42
43
  pluginWorkaroundVite6HmrRegression(),
43
44
  pluginReplaceConstants(),
45
+ pluginViteRPC(),
44
46
  ];
45
47
  Object.assign(plugins, { _vikeVitePluginOptions: vikeVitePluginOptions });
46
48
  return plugins;
@@ -11,7 +11,7 @@ declare function handleAssetsManifest_assertUsageCssTarget(config: ResolvedConfi
11
11
  declare function handleAssetsManifest_getBuildConfig(config: UserConfig): Promise<{
12
12
  readonly ssrEmitAssets: true | undefined;
13
13
  readonly cssMinify: "esbuild" | undefined;
14
- readonly manifest: "_temp_manifest.json";
14
+ readonly manifest: ".vite/manifest.json";
15
15
  readonly copyPublicDir: boolean | undefined;
16
16
  }>;
17
17
  declare function handleAssetsManifest(config: ResolvedConfig, viteEnv: Environment | undefined, options: {
@@ -295,8 +295,8 @@ async function handleAssetsManifest_getBuildConfig(config) {
295
295
  };
296
296
  }
297
297
  async function handleAssetsManifest(config, viteEnv, options, bundle) {
298
- const isSsREnv = isViteServerBuild_onlySsrEnv(config, viteEnv);
299
- if (isSsREnv) {
298
+ const isSsrEnv = isViteServerBuild_onlySsrEnv(config, viteEnv);
299
+ if (isSsrEnv) {
300
300
  assert(!assetsJsonFilePath);
301
301
  const outDirs = getOutDirs(config, viteEnv);
302
302
  assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
@@ -310,7 +310,7 @@ async function handleAssetsManifest(config, viteEnv, options, bundle) {
310
310
  // - Also in some other server builds such as dist/vercel/ from vike-vercel
311
311
  // - Don't replace it in dist/rsc/ from vike-react-rsc since __VITE_ASSETS_MANIFEST__ doesn't exist there
312
312
  const noop = await set_macro_ASSETS_MANIFEST(assetsJsonFilePath, bundle, outDir);
313
- if (isSsREnv)
313
+ if (isSsrEnv)
314
314
  assert(!noop); // dist/server should always contain __VITE_ASSETS_MANIFEST__
315
315
  }
316
316
  }
@@ -4,7 +4,7 @@ export { analyzeClientEntries };
4
4
  export { manifestTempFile };
5
5
  import type { ResolvedConfig, Plugin } from 'vite';
6
6
  import type { PageConfigBuildTime } from '../../../../types/PageConfig.js';
7
- declare const manifestTempFile = "_temp_manifest.json";
7
+ declare const manifestTempFile = ".vite/manifest.json";
8
8
  declare function pluginBuildConfig(): Plugin[];
9
9
  declare function analyzeClientEntries(pageConfigs: PageConfigBuildTime[], config: ResolvedConfig): {
10
10
  hasClientRouting: boolean;
@@ -14,7 +14,8 @@ import { isViteServerBuild } from '../../shared/isViteServerBuild.js';
14
14
  import { resolveOutDir } from '../../shared/getOutDirs.js';
15
15
  import { handleAssetsManifest_assertUsageCssCodeSplit, handleAssetsManifest_getBuildConfig, } from './handleAssetsManifest.js';
16
16
  import { resolveIncludeAssetsImportedByServer } from '../../../runtime/renderPage/getPageAssets.js';
17
- const manifestTempFile = '_temp_manifest.json';
17
+ // TODO/now: stop setting `manifest` altogether and use the resolved value instead? So that other tools can easily read the manifest (e.g. @cloudflare/plugin-vite reads the manifest).
18
+ const manifestTempFile = '.vite/manifest.json';
18
19
  function pluginBuildConfig() {
19
20
  let config;
20
21
  return [