vike 0.4.228-commit-c2f6e1f → 0.4.228-commit-8d90991

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 (115) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/client/client-routing-runtime/globalContext.js +49 -0
  3. package/dist/cjs/client/server-routing-runtime/globalContext.js +41 -0
  4. package/dist/cjs/client/shared/createGetGlobalContext.js +31 -0
  5. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +31 -0
  6. package/dist/cjs/client/shared/utils.js +21 -0
  7. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +1 -0
  8. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -0
  9. package/dist/cjs/node/prerender/runPrerender.js +42 -40
  10. package/dist/cjs/node/prerender/utils.js +1 -1
  11. package/dist/cjs/node/runtime/globalContext.js +87 -119
  12. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  13. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  14. package/dist/cjs/node/runtime/html/propKeys.js +47 -0
  15. package/dist/cjs/node/runtime/html/renderHtml.js +1 -1
  16. package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +37 -67
  17. package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -1
  18. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +14 -13
  19. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
  20. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  21. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  22. package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -1
  23. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
  24. package/dist/cjs/node/runtime/renderPage.js +10 -10
  25. package/dist/cjs/node/runtime/utils.js +1 -1
  26. package/dist/cjs/shared/createGlobalContextShared.js +45 -0
  27. package/dist/cjs/shared/createPageContextShared.js +2 -2
  28. package/dist/cjs/{node/runtime/renderPage → shared/hooks}/executeHookGeneric.js +4 -4
  29. package/dist/cjs/shared/htmlElementIds.js +5 -0
  30. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  31. package/dist/cjs/utils/catchInfiniteLoop.js +3 -3
  32. package/dist/cjs/utils/getPublicProxy.js +27 -0
  33. package/dist/cjs/utils/objectAssign.js +5 -5
  34. package/dist/cjs/utils/objectReplace.js +4 -4
  35. package/dist/esm/__internal/index.js +2 -2
  36. package/dist/esm/client/client-routing-runtime/{createPageContextClientSide.d.ts → createPageContext.d.ts} +17 -8
  37. package/dist/esm/client/client-routing-runtime/{createPageContextClientSide.js → createPageContext.js} +14 -16
  38. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
  39. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +16 -0
  40. package/dist/esm/client/client-routing-runtime/globalContext.js +13 -0
  41. package/dist/esm/client/client-routing-runtime/prefetch.js +1 -1
  42. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +2 -3
  43. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +13 -4
  44. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +16 -15
  45. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +13 -0
  46. package/dist/esm/client/server-routing-runtime/globalContext.js +5 -0
  47. package/dist/esm/client/shared/createGetGlobalContext.d.ts +11 -0
  48. package/dist/esm/client/shared/createGetGlobalContext.js +29 -0
  49. package/dist/esm/client/shared/{getPageContextSerializedInHtml.d.ts → getJsonSerializedInHtml.d.ts} +2 -0
  50. package/dist/esm/client/shared/getJsonSerializedInHtml.js +29 -0
  51. package/dist/esm/client/shared/utils.d.ts +3 -0
  52. package/dist/esm/client/shared/utils.js +3 -0
  53. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +1 -0
  54. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +5 -0
  55. package/dist/esm/node/prerender/runPrerender.d.ts +300 -5
  56. package/dist/esm/node/prerender/runPrerender.js +43 -41
  57. package/dist/esm/node/prerender/utils.d.ts +1 -1
  58. package/dist/esm/node/prerender/utils.js +1 -1
  59. package/dist/esm/node/runtime/globalContext.d.ts +393 -46
  60. package/dist/esm/node/runtime/globalContext.js +88 -120
  61. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  62. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  63. package/dist/esm/node/runtime/html/injectAssets.d.ts +1 -1
  64. package/dist/esm/node/runtime/html/propKeys.d.ts +8 -0
  65. package/dist/esm/node/runtime/html/propKeys.js +45 -0
  66. package/dist/esm/node/runtime/html/renderHtml.js +1 -1
  67. package/dist/esm/node/runtime/html/{serializePageContextClientSide.d.ts → serializeContext.d.ts} +7 -6
  68. package/dist/esm/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +36 -67
  69. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  70. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +95 -35
  71. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +14 -13
  72. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
  73. package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
  74. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  75. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  76. package/dist/esm/node/runtime/renderPage/log404/index.js +1 -1
  77. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  78. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +186 -64
  79. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
  80. package/dist/esm/node/runtime/renderPage.d.ts +95 -34
  81. package/dist/esm/node/runtime/renderPage.js +10 -10
  82. package/dist/esm/node/runtime/utils.d.ts +1 -1
  83. package/dist/esm/node/runtime/utils.js +1 -1
  84. package/dist/esm/shared/VikeNamespace.d.ts +32 -10
  85. package/dist/esm/shared/createGlobalContextShared.d.ts +25 -0
  86. package/dist/esm/shared/createGlobalContextShared.js +43 -0
  87. package/dist/esm/shared/createPageContextShared.js +2 -2
  88. package/dist/esm/shared/hooks/executeHookGeneric.d.ts +8 -0
  89. package/dist/esm/{node/runtime/renderPage → shared/hooks}/executeHookGeneric.js +4 -4
  90. package/dist/esm/shared/htmlElementIds.d.ts +2 -0
  91. package/dist/esm/shared/htmlElementIds.js +2 -0
  92. package/dist/esm/shared/page-configs/Config.d.ts +7 -2
  93. package/dist/esm/shared/types.d.ts +20 -13
  94. package/dist/esm/types/index.d.ts +1 -5
  95. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  96. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  97. package/dist/esm/utils/catchInfiniteLoop.js +4 -4
  98. package/dist/esm/utils/getGlobalObject.d.ts +1 -1
  99. package/dist/esm/utils/getPublicProxy.d.ts +2 -0
  100. package/dist/esm/utils/getPublicProxy.js +25 -0
  101. package/dist/esm/utils/objectAssign.d.ts +1 -1
  102. package/dist/esm/utils/objectAssign.js +5 -5
  103. package/dist/esm/utils/objectReplace.d.ts +1 -1
  104. package/dist/esm/utils/objectReplace.js +4 -4
  105. package/package.json +2 -2
  106. package/dist/cjs/client/client-routing-runtime/globalContextClientSide.js +0 -10
  107. package/dist/cjs/client/client-routing-runtime/onLoad.js +0 -10
  108. package/dist/cjs/client/client-routing-runtime/utils.js +0 -43
  109. package/dist/cjs/utils/makePublicCopy.js +0 -32
  110. package/dist/esm/client/client-routing-runtime/globalContextClientSide.d.ts +0 -5
  111. package/dist/esm/client/client-routing-runtime/globalContextClientSide.js +0 -8
  112. package/dist/esm/client/shared/getPageContextSerializedInHtml.js +0 -20
  113. package/dist/esm/node/runtime/renderPage/executeHookGeneric.d.ts +0 -8
  114. package/dist/esm/utils/makePublicCopy.d.ts +0 -3
  115. package/dist/esm/utils/makePublicCopy.js +0 -30
@@ -17,10 +17,10 @@ const assertSetup_js_1 = require("../utils/assertSetup.js");
17
17
  async function getPagesAndRoutes() {
18
18
  (0, assertSetup_js_1.setNodeEnvProduction)();
19
19
  await (0, globalContext_js_2.initGlobalContext_getPagesAndRoutes)();
20
- const globalContext = await (0, globalContext_js_2.getGlobalContextInternal)();
20
+ const { globalContext } = await (0, globalContext_js_2.getGlobalContextInternal)();
21
21
  const {
22
22
  //
23
- pageRoutes, pageFilesAll, pageConfigs, allPageIds } = globalContext;
23
+ _pageRoutes: pageRoutes, _pageFilesAll: pageFilesAll, _pageConfigs: pageConfigs, _allPageIds: allPageIds } = globalContext;
24
24
  return {
25
25
  pageRoutes,
26
26
  pageFilesAll,
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getGlobalContext = void 0;
37
+ const createGetGlobalContext_js_1 = require("../shared/createGetGlobalContext.js");
38
+ const loadPageRoutes_js_1 = require("../../shared/route/loadPageRoutes.js");
39
+ // @ts-ignore
40
+ const virtualFileExports = __importStar(require("virtual:vike:importUserCode:client:client-routing"));
41
+ const getGlobalContext = (0, createGetGlobalContext_js_1.createGetGlobalContext)(virtualFileExports, true, addGlobalContext);
42
+ exports.getGlobalContext = getGlobalContext;
43
+ async function addGlobalContext(globalContext) {
44
+ const { pageRoutes, onBeforeRouteHook } = await (0, loadPageRoutes_js_1.loadPageRoutes)(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
45
+ return {
46
+ _pageRoutes: pageRoutes,
47
+ _onBeforeRouteHook: onBeforeRouteHook
48
+ };
49
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getGlobalContext = void 0;
37
+ const createGetGlobalContext_js_1 = require("../shared/createGetGlobalContext.js");
38
+ // @ts-ignore
39
+ const virtualFileExports = __importStar(require("virtual:vike:importUserCode:client:server-routing"));
40
+ const getGlobalContext = (0, createGetGlobalContext_js_1.createGetGlobalContext)(virtualFileExports, false);
41
+ exports.getGlobalContext = getGlobalContext;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGetGlobalContext = createGetGlobalContext;
4
+ const createGlobalContextShared_js_1 = require("../../shared/createGlobalContextShared.js");
5
+ const getJsonSerializedInHtml_js_1 = require("./getJsonSerializedInHtml.js");
6
+ const utils_js_1 = require("./utils.js");
7
+ const globalObject = (0, utils_js_1.getGlobalObject)('createGetGlobalContext.ts', {});
8
+ function createGetGlobalContext(virtualFileExports, isClientRouting, addGlobalContext) {
9
+ (0, utils_js_1.assert)(globalObject.isClientRouting === undefined || globalObject.isClientRouting === isClientRouting);
10
+ globalObject.isClientRouting = isClientRouting;
11
+ // Eagerly call onCreateGlobalContext() hook
12
+ getGlobalContext();
13
+ return getGlobalContext;
14
+ async function getGlobalContext() {
15
+ // Cache
16
+ if (globalObject.globalContext &&
17
+ // Don't break HMR
18
+ globalObject.globalContext._virtualFileExports !== virtualFileExports) {
19
+ return globalObject.globalContext;
20
+ }
21
+ // Create
22
+ const globalContext = await (0, createGlobalContextShared_js_1.createGlobalContextShared)(virtualFileExports, globalObject, async (globalContext) => {
23
+ const globalContextAddendum = {};
24
+ (0, utils_js_1.objectAssign)(globalContextAddendum, (0, getJsonSerializedInHtml_js_1.getGlobalContextSerializedInHtml)());
25
+ (0, utils_js_1.objectAssign)(globalContextAddendum, await addGlobalContext?.(globalContext));
26
+ return globalContextAddendum;
27
+ });
28
+ // Return
29
+ return globalContext;
30
+ }
31
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageContextSerializedInHtml = getPageContextSerializedInHtml;
4
+ exports.getGlobalContextSerializedInHtml = getGlobalContextSerializedInHtml;
5
+ const parse_1 = require("@brillout/json-serializer/parse");
6
+ const utils_js_1 = require("./utils.js");
7
+ const htmlElementIds_js_1 = require("../../shared/htmlElementIds.js");
8
+ // elements should exist because:
9
+ // 1. <script id="vike_pageContext" type="application/json"> appears before the <script> that loads Vike's client runtime (which includes this file)
10
+ // 2. <script id="vike_pageContext" type="application/json"> is neither async nor defer
11
+ // See https://github.com/vikejs/vike/pull/1271
12
+ function getPageContextSerializedInHtml() {
13
+ const pageContextSerializedInHtml = findAndParseJson(htmlElementIds_js_1.htmlElementId_pageContext);
14
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextSerializedInHtml, 'pageId', 'string'));
15
+ (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextSerializedInHtml, 'routeParams', 'string{}'));
16
+ return pageContextSerializedInHtml;
17
+ }
18
+ function getGlobalContextSerializedInHtml() {
19
+ const globalContextSerializedInHtml = findAndParseJson(htmlElementIds_js_1.htmlElementId_globalContext);
20
+ return globalContextSerializedInHtml;
21
+ }
22
+ function findAndParseJson(id) {
23
+ const elem = document.getElementById(id);
24
+ (0, utils_js_1.assertUsage)(elem,
25
+ // It seems like it can be missing when HTML is malformed: https://github.com/vikejs/vike/issues/913
26
+ `Couldn't find #${id} (which Vike automatically injects in the HTML): make sure it exists (i.e. don't remove it and make sure your HTML isn't malformed)`);
27
+ const jsonStr = elem.textContent;
28
+ (0, utils_js_1.assert)(jsonStr);
29
+ const json = (0, parse_1.parse)(jsonStr);
30
+ return json;
31
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../utils/assert.js"), exports);
18
+ __exportStar(require("../../utils/parseUrl.js"), exports);
19
+ __exportStar(require("../../utils/getGlobalObject.js"), exports);
20
+ __exportStar(require("../../utils/objectAssign.js"), exports);
21
+ __exportStar(require("../../utils/hasProp.js"), exports);
@@ -31,6 +31,7 @@ function pluginModuleBanner() {
31
31
  id = (0, virtual_files_js_1.removeVirtualIdTag)(id);
32
32
  if (id.startsWith(config.root))
33
33
  id = id.slice(config.root.length + 1);
34
+ id = id.replaceAll('*/', '*\\/'); // https://github.com/vikejs/vike/issues/2377
34
35
  const s = new magic_string_1.default(code);
35
36
  // Use legal comment so that esbuild doesn't remove it.
36
37
  // - Terser still removes the comment, but I guess users use terser to minify JavaScript so I guess it's a good thing that comment is removed.
@@ -24,6 +24,11 @@ const configDefinitionsBuiltIn = {
24
24
  global: true,
25
25
  cumulative: true
26
26
  },
27
+ onCreateGlobalContext: {
28
+ env: { server: true, client: true },
29
+ global: true,
30
+ cumulative: true
31
+ },
27
32
  onBeforeRender: {
28
33
  env: { server: true }
29
34
  },
@@ -132,26 +132,26 @@ async function runPrerender(options = {}, standaloneTrigger) {
132
132
  }
133
133
  const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
134
134
  await (0, globalContext_js_1.initGlobalContext_runPrerender)();
135
- const globalContext = await (0, globalContext_js_1.getGlobalContextInternal)();
136
- globalContext.pageFilesAll.forEach(assertExportNames);
135
+ const { globalContext, globalContext_public } = await (0, globalContext_js_1.getGlobalContextInternal)();
136
+ globalContext._pageFilesAll.forEach(assertExportNames);
137
137
  const prerenderContext = {
138
- noExtraDir,
139
138
  pageContexts: [],
140
- pageContextInit: options.pageContextInit ?? null,
141
- prerenderedPageContexts: {},
142
- output: []
139
+ output: [],
140
+ _noExtraDir: noExtraDir,
141
+ _pageContextInit: options.pageContextInit ?? null,
142
+ _prerenderedPageContexts: {}
143
143
  };
144
144
  const doNotPrerenderList = [];
145
145
  await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
146
146
  // Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
147
147
  // https://vike.dev/onBeforePrerenderStart
148
- await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
148
+ await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList);
149
149
  // Create `pageContext` for each page with a static route
150
150
  const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
151
- await createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, false);
151
+ await createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, false);
152
152
  // Create `pageContext` for 404 page
153
153
  const urlList404 = getUrlList404(globalContext);
154
- await createPageContexts(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
154
+ await createPageContexts(urlList404, prerenderContext, globalContext, globalContext_public, concurrencyLimit, true);
155
155
  // Allow user to duplicate the list of `pageContext` for i18n
156
156
  // https://vike.dev/onPrerenderStart
157
157
  await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
@@ -161,15 +161,15 @@ async function runPrerender(options = {}, standaloneTrigger) {
161
161
  prerenderedCount++;
162
162
  const { pageId } = htmlFile.pageContext;
163
163
  (0, utils_js_1.assert)(pageId);
164
- prerenderContext.prerenderedPageContexts[pageId] = htmlFile.pageContext;
164
+ prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
165
165
  await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
166
166
  };
167
167
  await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
168
- warnContradictoryNoPrerenderList(prerenderContext.prerenderedPageContexts, doNotPrerenderList);
168
+ warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
169
169
  if (logLevel === 'info') {
170
170
  console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
171
171
  }
172
- await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
172
+ await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
173
173
  const prerenderContextPublic = makePublic(prerenderContext);
174
174
  (0, utils_js_1.objectAssign)(vike.prerenderContext, prerenderContextPublic);
175
175
  if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
@@ -196,7 +196,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
196
196
  });
197
197
  // Old design
198
198
  // TODO/v1-release: remove
199
- await Promise.all(globalContext.pageFilesAll
199
+ await Promise.all(globalContext._pageFilesAll
200
200
  .filter((p) => {
201
201
  assertExportNames(p);
202
202
  if (!p.exportNames?.includes('doNotPrerender'))
@@ -208,8 +208,8 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
208
208
  (0, utils_js_1.assert)(p.loadFile);
209
209
  await p.loadFile();
210
210
  })));
211
- globalContext.allPageIds.forEach((pageId) => {
212
- const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext.pageFilesAll, pageId);
211
+ globalContext._allPageIds.forEach((pageId) => {
212
+ const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext._pageFilesAll, pageId);
213
213
  for (const p of pageFilesServerSide) {
214
214
  if (!p.exportNames?.includes('doNotPrerender'))
215
215
  continue;
@@ -233,10 +233,10 @@ function assertExportNames(pageFile) {
233
233
  const { exportNames, fileType } = pageFile;
234
234
  (0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
235
235
  }
236
- async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
236
+ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList) {
237
237
  const onBeforePrerenderStartHooks = [];
238
238
  // V1 design
239
- await Promise.all(globalContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
239
+ await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
240
240
  const hookName = 'onBeforePrerenderStart';
241
241
  const pageConfigLoaded = await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, false);
242
242
  const hook = (0, getHook_js_1.getHookFromPageConfig)(pageConfigLoaded, hookName);
@@ -252,7 +252,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
252
252
  });
253
253
  })));
254
254
  // 0.4 design
255
- await Promise.all(globalContext.pageFilesAll
255
+ await Promise.all(globalContext._pageFilesAll
256
256
  .filter((p) => {
257
257
  assertExportNames(p);
258
258
  if (!p.exportNames?.includes('prerender'))
@@ -296,7 +296,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
296
296
  }
297
297
  // Add result
298
298
  const providedByHook = { hookFilePath, hookName };
299
- const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, false, undefined, providedByHook);
299
+ const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, globalContext_public, false, undefined, providedByHook);
300
300
  prerenderContext.pageContexts.push(pageContextNew);
301
301
  if (pageContext) {
302
302
  (0, utils_js_1.objectAssign)(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
@@ -307,7 +307,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
307
307
  }
308
308
  function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
309
309
  const urlList = [];
310
- globalContext.pageRoutes.map((pageRoute) => {
310
+ globalContext._pageRoutes.map((pageRoute) => {
311
311
  const { pageId } = pageRoute;
312
312
  if (doNotPrerenderList.find((p) => p.pageId === pageId))
313
313
  return;
@@ -332,7 +332,7 @@ function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
332
332
  }
333
333
  function getUrlList404(globalContext) {
334
334
  const urlList = [];
335
- const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
335
+ const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext._pageFilesAll, globalContext._pageConfigs);
336
336
  if (errorPageId) {
337
337
  urlList.push({
338
338
  // A URL is required for `viteDevServer.transformIndexHtml(url,html)`
@@ -342,28 +342,30 @@ function getUrlList404(globalContext) {
342
342
  }
343
343
  return urlList;
344
344
  }
345
- async function createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
345
+ async function createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, is404) {
346
346
  await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
347
347
  // Already included in a onBeforePrerenderStart() hook
348
348
  if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
349
349
  return;
350
350
  }
351
- const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
351
+ const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, null);
352
352
  prerenderContext.pageContexts.push(pageContext);
353
353
  })));
354
354
  }
355
- async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
355
+ async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, providedByHook) {
356
356
  const pageContextInit = {
357
357
  urlOriginal,
358
- ...prerenderContext.pageContextInit
358
+ ...prerenderContext._pageContextInit
359
359
  };
360
- const pageContext = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, { isPrerendering: true });
360
+ const pageContext = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, globalContext_public, {
361
+ isPrerendering: true
362
+ });
361
363
  (0, utils_js_1.assert)(pageContext.isPrerendering === true);
362
364
  (0, utils_js_1.objectAssign)(pageContext, {
363
365
  _urlHandler: null,
364
366
  _httpRequestId: null,
365
367
  _urlRewrite: null,
366
- _noExtraDir: prerenderContext.noExtraDir,
368
+ _noExtraDir: prerenderContext._noExtraDir,
367
369
  _prerenderContext: prerenderContext,
368
370
  _providedByHook: providedByHook,
369
371
  _urlOriginalModifiedByHook: null,
@@ -389,14 +391,14 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
389
391
  {
390
392
  const { pageId } = pageContext;
391
393
  (0, utils_js_1.assert)(pageId);
392
- (0, utils_js_1.assert)(globalContext.isPrerendering);
393
- if (globalContext.pageConfigs.length > 0) {
394
- const pageConfig = globalContext.pageConfigs.find((p) => p.pageId === pageId);
394
+ (0, utils_js_1.assert)(globalContext._isPrerendering);
395
+ if (globalContext._pageConfigs.length > 0) {
396
+ const pageConfig = globalContext._pageConfigs.find((p) => p.pageId === pageId);
395
397
  (0, utils_js_1.assert)(pageConfig);
396
398
  usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
397
399
  }
398
400
  else {
399
- usesClientRouter = globalContext.usesClientRouter;
401
+ usesClientRouter = globalContext._usesClientRouter;
400
402
  }
401
403
  }
402
404
  (0, utils_js_1.objectAssign)(pageContext, { _usesClientRouter: usesClientRouter });
@@ -433,9 +435,9 @@ function assertRouteMatch(pageContextFromRoute, pageContext) {
433
435
  async function callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit) {
434
436
  let onPrerenderStartHook;
435
437
  // V1 design
436
- if (globalContext.pageConfigs.length > 0) {
438
+ if (globalContext._pageConfigs.length > 0) {
437
439
  const hookName = 'onPrerenderStart';
438
- const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext.pageConfigGlobal, hookName);
440
+ const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext._pageConfigGlobal, hookName);
439
441
  if (hook) {
440
442
  (0, utils_js_1.assert)(hook.hookName === 'onPrerenderStart');
441
443
  onPrerenderStartHook = {
@@ -447,9 +449,9 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
447
449
  }
448
450
  // Old design
449
451
  // TODO/v1-release: remove
450
- if (globalContext.pageConfigs.length === 0) {
452
+ if (globalContext._pageConfigs.length === 0) {
451
453
  const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
452
- const pageFilesWithOnBeforePrerenderHook = globalContext.pageFilesAll.filter((p) => {
454
+ const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
453
455
  assertExportNames(p);
454
456
  if (!p.exportNames?.includes('onBeforePrerender'))
455
457
  return false;
@@ -589,7 +591,7 @@ async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
589
591
  pageContext,
590
592
  htmlString: documentHtml,
591
593
  pageContextSerialized,
592
- doNotCreateExtraDirectory: prerenderContext.noExtraDir ?? pageContext.is404
594
+ doNotCreateExtraDirectory: prerenderContext._noExtraDir ?? pageContext.is404
593
595
  });
594
596
  })));
595
597
  }
@@ -606,16 +608,16 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
606
608
  });
607
609
  }
608
610
  async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
609
- const isV1 = globalContext.pageConfigs.length > 0;
611
+ const isV1 = globalContext._pageConfigs.length > 0;
610
612
  const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
611
613
  /* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
612
614
  const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
613
615
  const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
614
616
  */
615
- globalContext.allPageIds
617
+ globalContext._allPageIds
616
618
  .filter((pageId) => !prerenderedPageContexts[pageId])
617
619
  .filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
618
- .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext.pageConfigs))
620
+ .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext._pageConfigs))
619
621
  .forEach((pageId) => {
620
622
  const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
621
623
  (0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while no ${hookName}() hook returned any URL matching the page's route. You need to use a ${hookName}() hook (https://vike.dev/${hookName}) providing a list of URLs for ${pageAt} that should be pre-rendered. If you don't want to pre-render ${pageAt} then use the option prerender.partial (https://vike.dev/prerender#partial) to suppress this warning.`, { onlyOnce: true });
@@ -768,7 +770,7 @@ function assertIsNotAbort(err, urlOriginal) {
768
770
  (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
769
771
  }
770
772
  function makePublic(prerenderContext) {
771
- const prerenderContextPublic = (0, utils_js_1.makePublicCopy)(prerenderContext, 'prerenderContext', [
773
+ const prerenderContextPublic = (0, utils_js_1.getPublicProxy)(prerenderContext, 'prerenderContext', [
772
774
  'output', // vite-plugin-vercel
773
775
  'pageContexts' // https://vike.dev/i18n#pre-rendering
774
776
  ]);
@@ -31,6 +31,6 @@ __exportStar(require("../../utils/pLimit.js"), exports);
31
31
  __exportStar(require("../../utils/isFilePathAbsoluteFilesystem.js"), exports);
32
32
  __exportStar(require("../../utils/isArray.js"), exports);
33
33
  __exportStar(require("../../utils/isObject.js"), exports);
34
- __exportStar(require("../../utils/makePublicCopy.js"), exports);
34
+ __exportStar(require("../../utils/getPublicProxy.js"), exports);
35
35
  __exportStar(require("../../utils/isNullish.js"), exports);
36
36
  __exportStar(require("../../utils/preservePropertyGetters.js"), exports);