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
@@ -5,30 +5,31 @@ exports.createPageContextServerSideWithoutGlobalContext = createPageContextServe
5
5
  const utils_js_1 = require("../utils.js");
6
6
  const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
7
7
  const createPageContextShared_js_1 = require("../../../shared/createPageContextShared.js");
8
- async function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
8
+ async function createPageContextServerSide(pageContextInit, globalContext, globalObject_public, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
9
9
  urlHandler: null,
10
10
  isClientSideNavigation: false
11
11
  } }) {
12
12
  (0, utils_js_1.assert)(pageContextInit.urlOriginal);
13
13
  const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
14
- (0, utils_js_1.objectAssign)(pageContextCreated, pageContextInit);
15
14
  (0, utils_js_1.objectAssign)(pageContextCreated, {
15
+ /* Don't spread globalContext for now? Or never spread it as it leads to confusion? The convenience isn't worth the added confusion?
16
+ // We must use Flatten<T> otherwise TypeScript complains upon assigning types
17
+ ...(globalContext as Flatten<typeof globalContext>), // least precedence
18
+ */
19
+ globalContext: globalObject_public,
20
+ _globalContext: globalContext,
16
21
  // The following is defined on `pageContext` because we can eventually make these non-global
17
22
  _baseServer: globalContext.baseServer,
18
23
  _baseAssets: globalContext.baseAssets,
19
24
  // TODO/now: add meta.default
20
25
  _includeAssetsImportedByServer: globalContext.config.includeAssetsImportedByServer ?? true,
21
26
  // TODO/soon: use GloablContext instead
22
- _pageFilesAll: globalContext.pageFilesAll,
23
- _pageConfigs: globalContext.pageConfigs,
24
- _pageConfigGlobal: globalContext.pageConfigGlobal,
25
- _allPageIds: globalContext.allPageIds,
26
- _pageRoutes: globalContext.pageRoutes,
27
- _onBeforeRouteHook: globalContext.onBeforeRouteHook,
28
- _globalContext: globalContext,
29
- // TODO/now: add PageContext['globalContext']
30
- /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
31
- globalContext: globalContext.globalContext_public,
27
+ _pageFilesAll: globalContext._pageFilesAll,
28
+ _pageConfigs: globalContext._pageConfigs,
29
+ _pageConfigGlobal: globalContext._pageConfigGlobal,
30
+ _allPageIds: globalContext._allPageIds,
31
+ _pageRoutes: globalContext._pageRoutes,
32
+ _onBeforeRouteHook: globalContext._onBeforeRouteHook,
32
33
  _pageContextInit: pageContextInit,
33
34
  _urlRewrite: null,
34
35
  _urlHandler: urlHandler,
@@ -54,7 +55,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
54
55
  }
55
56
  (0, utils_js_1.objectAssign)(pageContextCreated, { headers });
56
57
  }
57
- const pageContextAugmented = await (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext.pageConfigGlobal);
58
+ const pageContextAugmented = await (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext._pageConfigGlobal);
58
59
  (0, utils_js_1.augmentType)(pageContextCreated, pageContextAugmented);
59
60
  return pageContextCreated;
60
61
  }
@@ -13,12 +13,12 @@ const globalObject = (0, utils_js_1.getGlobalObject)('renderPage/getPageAssets.t
13
13
  });
14
14
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
15
15
  const globalContext = pageContext._globalContext;
16
- const { isProduction } = globalContext;
16
+ const { _isProduction: isProduction } = globalContext;
17
17
  const isDev = !isProduction;
18
18
  let assetUrls;
19
19
  let clientEntriesSrc;
20
20
  if (isDev) {
21
- const { viteDevServer } = globalContext;
21
+ const { _viteDevServer: viteDevServer } = globalContext;
22
22
  clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer)));
23
23
  assetUrls = await (0, retrieveAssetsDev_js_1.retrieveAssetsDev)(clientDependencies, viteDevServer);
24
24
  }
@@ -14,7 +14,7 @@ async function handleErrorWithoutErrorPage(pageContext) {
14
14
  (0, utils_js_1.assert)(pageContext.errorWhileRendering || pageContext.is404);
15
15
  {
16
16
  const isV1 = pageContext._pageConfigs.length > 0;
17
- await warnMissingErrorPage(isV1, pageContext._globalContext.isProduction);
17
+ await warnMissingErrorPage(isV1, pageContext._globalContext._isProduction);
18
18
  }
19
19
  if (!pageContext.isClientSideNavigation) {
20
20
  const httpResponse = (0, createHttpResponse_js_1.createHttpResponseError)(pageContext);
@@ -14,7 +14,7 @@ async function loadUserFilesServerSide(pageContext) {
14
14
  const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
15
15
  const globalContext = pageContext._globalContext;
16
16
  const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
17
- loadPageUserFiles(pageContext._pageFilesAll, pageConfig, globalContext.pageConfigGlobal, pageContext.pageId, !globalContext.isProduction),
17
+ loadPageUserFiles(pageContext._pageFilesAll, pageConfig, globalContext._pageConfigGlobal, pageContext.pageId, !globalContext._isProduction),
18
18
  (0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._pageFilesAll, pageContext.pageId, { sharedPageFilesAlreadyLoaded: true })
19
19
  ]);
20
20
  const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await (0, analyzePage_js_1.analyzePage)(pageContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
@@ -17,7 +17,7 @@ async function log404(pageContext) {
17
17
  */
18
18
  );
19
19
  const globalContext = pageContext._globalContext;
20
- if (!globalContext.isProduction && !isFileRequest(urlPathname) && !pageContext.isClientSideNavigation) {
20
+ if (!globalContext._isProduction && !isFileRequest(urlPathname) && !pageContext.isClientSideNavigation) {
21
21
  const routesInfo = getRoutesInfo(pageRoutes);
22
22
  let msg = `URL ${picocolors_1.default.cyan(urlPathname)} ${noRouteMatch_js_1.noRouteMatch}`;
23
23
  const outro = 'See https://vike.dev/routing for more information about routing.';
@@ -8,7 +8,7 @@ exports.prerenderPage = prerenderPage;
8
8
  const error_page_js_1 = require("../../../shared/error-page.js");
9
9
  const renderHtml_js_1 = require("../html/renderHtml.js");
10
10
  const utils_js_1 = require("../utils.js");
11
- const serializePageContextClientSide_js_1 = require("../html/serializePageContextClientSide.js");
11
+ const serializeContext_js_1 = require("../html/serializeContext.js");
12
12
  const createHttpResponse_js_1 = require("./createHttpResponse.js");
13
13
  const loadUserFilesServerSide_js_1 = require("./loadUserFilesServerSide.js");
14
14
  const executeOnRenderHtmlHook_js_1 = require("./executeOnRenderHtmlHook.js");
@@ -47,7 +47,7 @@ async function renderPageAlreadyRouted(pageContext) {
47
47
  if (isError) {
48
48
  (0, utils_js_1.objectAssign)(pageContext, { [isServerSideError_js_1.isServerSideError]: true });
49
49
  }
50
- const pageContextSerialized = (0, serializePageContextClientSide_js_1.serializePageContextClientSide)(pageContext);
50
+ const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
51
51
  const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePageContextJson)(pageContextSerialized);
52
52
  (0, utils_js_1.objectAssign)(pageContext, { httpResponse });
53
53
  return pageContext;
@@ -77,7 +77,7 @@ async function prerenderPage(pageContext) {
77
77
  return { documentHtml, pageContextSerialized: null, pageContext };
78
78
  }
79
79
  else {
80
- const pageContextSerialized = (0, serializePageContextClientSide_js_1.serializePageContextClientSide)(pageContext);
80
+ const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
81
81
  return { documentHtml, pageContextSerialized, pageContext };
82
82
  }
83
83
  }
@@ -19,7 +19,7 @@ const assertArguments_js_1 = require("./renderPage/assertArguments.js");
19
19
  const index_js_2 = require("./renderPage/log404/index.js");
20
20
  const isVikeConfigInvalid_js_1 = require("./renderPage/isVikeConfigInvalid.js");
21
21
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
22
- const serializePageContextClientSide_js_1 = require("./html/serializePageContextClientSide.js");
22
+ const serializeContext_js_1 = require("./html/serializeContext.js");
23
23
  const error_page_js_1 = require("../../shared/error-page.js");
24
24
  const handleErrorWithoutErrorPage_js_1 = require("./renderPage/handleErrorWithoutErrorPage.js");
25
25
  const loadUserFilesServerSide_js_1 = require("./renderPage/loadUserFilesServerSide.js");
@@ -81,8 +81,8 @@ async function renderPagePrepare(pageContextInit, httpRequestId) {
81
81
  else {
82
82
  // `globalContext` now contains the entire Vike config and getVikeConfig() isn't called anymore for this request.
83
83
  }
84
- const globalContext = await (0, globalContext_js_1.getGlobalContextInternal)();
85
- const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext, httpRequestId);
84
+ const { globalContext, globalContext_public } = await (0, globalContext_js_1.getGlobalContextInternal)();
85
+ const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext, globalContext_public, httpRequestId);
86
86
  // Check Base URL
87
87
  {
88
88
  const pageContextHttpResponse = await checkBaseUrl(pageContextBegin, globalContext);
@@ -159,7 +159,7 @@ async function renderPageAlreadyPrepared(pageContextBegin, globalContext, httpRe
159
159
  Object.assign(pageContextErrorPageInit, handled.pageContextAbort);
160
160
  }
161
161
  {
162
- const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
162
+ const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext._pageFilesAll, globalContext._pageConfigs);
163
163
  if (!errorPageId) {
164
164
  (0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: null });
165
165
  return (0, handleErrorWithoutErrorPage_js_1.handleErrorWithoutErrorPage)(pageContextErrorPageInit);
@@ -304,9 +304,9 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
304
304
  (0, utils_js_1.assert)(pageContext.errorWhileRendering);
305
305
  return pageContext;
306
306
  }
307
- async function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
307
+ async function getPageContextBegin(pageContextInit, globalContext, globalContext_public, httpRequestId) {
308
308
  const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
309
- const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
309
+ const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, globalContext_public, {
310
310
  isPrerendering: false,
311
311
  ssr: {
312
312
  urlHandler: _urlHandler,
@@ -402,12 +402,12 @@ function normalize(url) {
402
402
  async function handleAbortError(errAbort, pageContextsFromRewrite, pageContextBegin,
403
403
  // handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageBegin to it: we only use some pageContextNominalPageBegin information.
404
404
  pageContextNominalPageBegin, httpRequestId, pageContextErrorPageInit, globalContext) {
405
- (0, abort_js_1.logAbortErrorHandled)(errAbort, globalContext.isProduction, pageContextNominalPageBegin);
405
+ (0, abort_js_1.logAbortErrorHandled)(errAbort, globalContext._isProduction, pageContextNominalPageBegin);
406
406
  const pageContextAbort = errAbort._pageContextAbort;
407
407
  let pageContextSerialized;
408
408
  if (pageContextNominalPageBegin.isClientSideNavigation) {
409
409
  if (pageContextAbort.abortStatusCode) {
410
- const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
410
+ const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext._pageFilesAll, globalContext._pageConfigs);
411
411
  const abortCall = pageContextAbort._abortCall;
412
412
  (0, utils_js_1.assert)(abortCall);
413
413
  (0, utils_js_1.assertUsage)(errorPageId, `You called ${picocolors_1.default.cyan(abortCall)} but you didn't define an error page, make sure to define one https://vike.dev/error-page`);
@@ -417,10 +417,10 @@ pageContextNominalPageBegin, httpRequestId, pageContextErrorPageInit, globalCont
417
417
  (0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit, true);
418
418
  (0, utils_js_1.objectAssign)(pageContext, await (0, loadUserFilesServerSide_js_1.loadUserFilesServerSide)(pageContext));
419
419
  // We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
420
- pageContextSerialized = (0, serializePageContextClientSide_js_1.serializePageContextClientSide)(pageContext);
420
+ pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
421
421
  }
422
422
  else {
423
- pageContextSerialized = (0, serializePageContextClientSide_js_1.serializePageContextAbort)(pageContextAbort);
423
+ pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerializedAbort)(pageContextAbort);
424
424
  }
425
425
  const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePageContextJson)(pageContextSerialized);
426
426
  const pageContextReturn = { httpResponse };
@@ -74,5 +74,5 @@ __exportStar(require("../../utils/isVikeReactApp.js"), exports);
74
74
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
75
75
  __exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
76
76
  __exportStar(require("../../utils/genPromise.js"), exports);
77
- __exportStar(require("../../utils/makePublicCopy.js"), exports);
77
+ __exportStar(require("../../utils/getPublicProxy.js"), exports);
78
78
  __exportStar(require("../../utils/augmentType.js"), exports);
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGlobalContextShared = createGlobalContextShared;
4
+ const getPageConfigsRuntime_js_1 = require("./getPageConfigsRuntime.js");
5
+ const executeHookGeneric_js_1 = require("./hooks/executeHookGeneric.js");
6
+ const utils_js_1 = require("./utils.js");
7
+ async function createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext) {
8
+ const globalContext = createGlobalContextBase(virtualFileExports);
9
+ const globalContextAddendum = await addGlobalContext?.(globalContext);
10
+ (0, utils_js_1.objectAssign)(globalContext, globalContextAddendum);
11
+ if (!globalObject.globalContext) {
12
+ globalObject.globalContext = globalContext;
13
+ // - We deliberately call onCreateGlobalContext() only at the beginning and only once per process.
14
+ // - TO-DO/eventually: HMR
15
+ // - Once Photon supports it: `server.hot.send({ type: 'full-server-reload' })`
16
+ // - Either use:
17
+ // - import.meta.hot
18
+ // - https://vite.dev/guide/api-hmr.html
19
+ // - Use a Vite transformer to inject import.meta.hot code into each user-land `+onCreateGlobalContext.js` file
20
+ // - Seems more idiomatic
21
+ // - globalContext._viteDevServer.hot.send()
22
+ // - Send 'full-server-reload' signal whenever a onCreateGlobalContext() function is modified => we need a globalObject to track all hooks and see if one of them is new/modified.
23
+ // - Seems less idiomatic
24
+ await (0, executeHookGeneric_js_1.executeHookGenericGlobalCumulative)('onCreateGlobalContext', globalContext._pageConfigGlobal, null, globalContext);
25
+ }
26
+ else {
27
+ // Singleton: ensure all `globalContext` user-land references are preserved & updated.
28
+ // We don't use objectReplace() in order to keep user-land properties.
29
+ (0, utils_js_1.objectAssign)(globalObject.globalContext, globalContext);
30
+ }
31
+ return globalObject.globalContext;
32
+ }
33
+ function createGlobalContextBase(virtualFileExports) {
34
+ const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig, pageConfigsUserFriendly } = (0, getPageConfigsRuntime_js_1.getPageConfigsRuntime)(virtualFileExports);
35
+ const globalContext = {
36
+ _virtualFileExports: virtualFileExports,
37
+ _pageFilesAll: pageFilesAll,
38
+ _pageConfigs: pageConfigs,
39
+ _pageConfigGlobal: pageConfigGlobal,
40
+ _allPageIds: allPageIds,
41
+ config: globalConfig.config,
42
+ pages: pageConfigsUserFriendly
43
+ };
44
+ return globalContext;
45
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createPageContextShared = createPageContextShared;
4
- const executeHookGeneric_js_1 = require("../node/runtime/renderPage/executeHookGeneric.js");
4
+ const executeHookGeneric_js_1 = require("./hooks/executeHookGeneric.js");
5
5
  const getPageConfigUserFriendly_js_1 = require("./page-configs/getPageConfigUserFriendly.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  async function createPageContextShared(pageContextCreated, pageConfigGlobal) {
@@ -12,6 +12,6 @@ async function createPageContextShared(pageContextCreated, pageConfigGlobal) {
12
12
  _isPageContextObject: true,
13
13
  ...pageConfigGlobalUserFriendly
14
14
  }, true);
15
- await (0, executeHookGeneric_js_1.executeHookGenericGlobalCumulative)('onCreatePageContext', pageConfigGlobal, pageContextCreated);
15
+ await (0, executeHookGeneric_js_1.executeHookGenericGlobalCumulative)('onCreatePageContext', pageConfigGlobal, pageContextCreated, pageContextCreated);
16
16
  return pageContextCreated;
17
17
  }
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeHookGeneric = executeHookGeneric;
4
4
  exports.executeHookGenericGlobalCumulative = executeHookGenericGlobalCumulative;
5
- const executeHook_js_1 = require("../../../shared/hooks/executeHook.js");
6
- const getHook_js_1 = require("../../../shared/hooks/getHook.js");
5
+ const executeHook_js_1 = require("./executeHook.js");
6
+ const getHook_js_1 = require("./getHook.js");
7
7
  async function executeHookGeneric(hookName, pageContext) {
8
8
  const hook = (0, getHook_js_1.getHookFromPageContext)(pageContext, hookName);
9
9
  if (!hook)
10
10
  return;
11
11
  await (0, executeHook_js_1.executeHook)(() => hook.hookFn(pageContext), hook, pageContext);
12
12
  }
13
- async function executeHookGenericGlobalCumulative(hookName, pageConfigGlobal, pageContext) {
13
+ async function executeHookGenericGlobalCumulative(hookName, pageConfigGlobal, pageContext, arg) {
14
14
  const hooks = (0, getHook_js_1.getHookFromPageConfigGlobalCumulative)(pageConfigGlobal, hookName);
15
15
  await Promise.all(hooks.map(async (hook) => {
16
- await (0, executeHook_js_1.executeHook)(() => hook.hookFn(pageContext), hook, null);
16
+ await (0, executeHook_js_1.executeHook)(() => hook.hookFn(arg), hook, pageContext);
17
17
  }));
18
18
  }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.htmlElementId_globalContext = exports.htmlElementId_pageContext = void 0;
4
+ exports.htmlElementId_pageContext = 'vike_pageContext';
5
+ exports.htmlElementId_globalContext = 'vike_globalContext';
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.228-commit-c2f6e1f';
5
+ exports.PROJECT_VERSION = '0.4.228-commit-8d90991';
@@ -14,14 +14,14 @@ function catchInfiniteLoop(functionName, maxNumberOfCalls = 100, withinSeconds =
14
14
  // Count
15
15
  tracker.count++;
16
16
  // Error
17
- const msg = `[Infinite Loop] ${functionName} called ${tracker.count} times within ${withinSeconds} seconds`;
17
+ const msg = `[Infinite Loop] Rendering ${tracker.count} times within ${withinSeconds} seconds [${functionName}]`;
18
18
  if (tracker.count > maxNumberOfCalls) {
19
- (0, assert_js_1.assert)(false, msg);
19
+ (0, assert_js_1.assertUsage)(false, msg);
20
20
  }
21
21
  // Warning, at 50% threshold
22
22
  if (!tracker.warned && tracker.count > maxNumberOfCalls * 0.5) {
23
23
  // Warning is shown upon 10 calls a second, on average during 5 seconds, given the default parameters
24
- (0, assert_js_1.assertWarning)(false, msg, { onlyOnce: false });
24
+ (0, assert_js_1.assertWarning)(false, msg, { onlyOnce: false, showStackTrace: true });
25
25
  tracker.warned = true;
26
26
  }
27
27
  }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPublicProxy = getPublicProxy;
4
+ // We use a proxy instead of property getters.
5
+ // - The issue with property getters is that they can't be `writable: true` but we do want the user to be able to modify the value of internal properties.
6
+ // ```console
7
+ // TypeError: Invalid property descriptor. Cannot both specify accessors and a value or writable attribute, #<Object>
8
+ // ```
9
+ // - Previous implementation using property getters: https://github.com/vikejs/vike/blob/main/vike/utils/makePublicCopy.ts
10
+ const assert_js_1 = require("./assert.js");
11
+ // Show warning when user is accessing internal `_` properties.
12
+ function getPublicProxy(obj, objName, propsPublic, expectCustomUserLandProps) {
13
+ if (!expectCustomUserLandProps) {
14
+ Object.keys(obj).forEach((key) => (0, assert_js_1.assert)(key.startsWith('_') || propsPublic.includes(key)));
15
+ propsPublic.forEach((prop) => prop in obj);
16
+ }
17
+ return new Proxy(obj, {
18
+ get(_, prop) {
19
+ const propStr = String(prop);
20
+ if (propStr.startsWith('_')) {
21
+ (0, assert_js_1.assertWarning)(false, `Using internal ${objName}.${propStr} which may break in any minor version update. Reach out on GitHub and elaborate your use case so that the Vike team can add official support for your use case.`, { onlyOnce: true });
22
+ }
23
+ // @ts-ignore Seems to be TypeScript bug
24
+ return Reflect.get(...arguments);
25
+ }
26
+ });
27
+ }
@@ -6,9 +6,9 @@ const assert_js_1 = require("./assert.js");
6
6
  // - With type inference
7
7
  // - Preserves property descriptors, which we need for preserving the getters of getPageContextUrlComputed()
8
8
  function objectAssign(obj, objAddendum, objAddendumCanBePageContextObject) {
9
- if (objAddendum) {
10
- if (!objAddendumCanBePageContextObject)
11
- (0, assert_js_1.assert)(!('_isPageContextObject' in objAddendum));
12
- Object.defineProperties(obj, Object.getOwnPropertyDescriptors(objAddendum));
13
- }
9
+ if (!objAddendum)
10
+ return;
11
+ if (!objAddendumCanBePageContextObject)
12
+ (0, assert_js_1.assert)(!('_isPageContextObject' in objAddendum));
13
+ Object.defineProperties(obj, Object.getOwnPropertyDescriptors(objAddendum));
14
14
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.objectReplace = objectReplace;
4
- function objectReplace(obj, objNew, except) {
5
- Object.keys(obj)
4
+ function objectReplace(objOld, objNew, except) {
5
+ Object.keys(objOld)
6
6
  .filter((key) => !except?.includes(key))
7
- .forEach((key) => delete obj[key]);
8
- Object.assign(obj, objNew);
7
+ .forEach((key) => delete objOld[key]);
8
+ Object.defineProperties(objOld, Object.getOwnPropertyDescriptors(objNew));
9
9
  }
@@ -13,10 +13,10 @@ import { setNodeEnvProduction } from '../utils/assertSetup.js';
13
13
  async function getPagesAndRoutes() {
14
14
  setNodeEnvProduction();
15
15
  await initGlobalContext_getPagesAndRoutes();
16
- const globalContext = await getGlobalContextInternal();
16
+ const { globalContext } = await getGlobalContextInternal();
17
17
  const {
18
18
  //
19
- pageRoutes, pageFilesAll, pageConfigs, allPageIds } = globalContext;
19
+ _pageRoutes: pageRoutes, _pageFilesAll: pageFilesAll, _pageConfigs: pageConfigs, _allPageIds: allPageIds } = globalContext;
20
20
  return {
21
21
  pageRoutes,
22
22
  pageFilesAll,
@@ -1,20 +1,29 @@
1
1
  export { createPageContextClientSide };
2
2
  declare function createPageContextClientSide(urlOriginal: string): Promise<{
3
- isClientSide: boolean;
4
- isPrerendering: boolean;
5
- urlOriginal: string;
6
3
  globalContext: {
7
- [x: string]: unknown;
4
+ _virtualFileExports: unknown;
5
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
6
+ _pageConfigs: import("../../__internal/index.js").PageConfig[];
7
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
8
+ _allPageIds: string[];
9
+ config: import("../../types/index.js").ConfigResolved;
10
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
11
+ } & object & {
12
+ _pageRoutes: import("../../__internal/index.js").PageRoutes;
13
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
8
14
  };
9
- _urlHandler: null;
10
- _urlRewrite: null;
11
- _baseServer: string;
12
15
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
13
16
  _pageConfigs: import("../../__internal/index.js").PageConfig[];
14
17
  _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
15
18
  _allPageIds: string[];
16
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
19
+ _pageRoutes: import("../../__internal/index.js").PageRoutes;
17
20
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
21
+ isClientSide: boolean;
22
+ isPrerendering: boolean;
23
+ urlOriginal: string;
24
+ _urlHandler: null;
25
+ _urlRewrite: null;
26
+ _baseServer: string;
18
27
  } & {
19
28
  urlParsed: import("./utils.js").UrlPublic;
20
29
  urlPathname: string;
@@ -1,36 +1,34 @@
1
1
  export { createPageContextClientSide };
2
2
  import { createPageContextShared } from '../../shared/createPageContextShared.js';
3
- import { getPageConfigsRuntime } from '../../shared/getPageConfigsRuntime.js';
4
3
  import { getPageContextUrlComputed } from '../../shared/getPageContextUrlComputed.js';
5
- import { loadPageRoutes } from '../../shared/route/loadPageRoutes.js';
6
4
  import { getBaseServer } from './getBaseServer.js';
7
- import { getGlobalContext } from './globalContextClientSide.js';
5
+ import { getGlobalContext } from './globalContext.js';
8
6
  import { assert, augmentType, isBaseServer, objectAssign } from './utils.js';
9
- // @ts-ignore
10
- import * as virtualFileExports from 'virtual:vike:importUserCode:client:client-routing';
11
- const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal } = getPageConfigsRuntime(virtualFileExports);
12
7
  async function createPageContextClientSide(urlOriginal) {
13
- const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
8
+ const globalContext = await getGlobalContext();
14
9
  const baseServer = getBaseServer();
15
10
  assert(isBaseServer(baseServer));
16
11
  const pageContextCreated = {
12
+ /* Don't spread globalContext for now? Or never spread it as it leads to confusion? The convenience isn't worth the added confusion?
13
+ ...globalContext, // least precedence
14
+ */
15
+ globalContext,
16
+ _pageFilesAll: globalContext._pageFilesAll,
17
+ _pageConfigs: globalContext._pageConfigs,
18
+ _pageConfigGlobal: globalContext._pageConfigGlobal,
19
+ _allPageIds: globalContext._allPageIds,
20
+ _pageRoutes: globalContext._pageRoutes,
21
+ _onBeforeRouteHook: globalContext._onBeforeRouteHook,
17
22
  isClientSide: true,
18
23
  isPrerendering: false,
19
24
  urlOriginal,
20
- globalContext: getGlobalContext(),
21
25
  _urlHandler: null,
22
26
  _urlRewrite: null,
23
- _baseServer: baseServer,
24
- _pageFilesAll: pageFilesAll,
25
- _pageConfigs: pageConfigs,
26
- _pageConfigGlobal: pageConfigGlobal,
27
- _allPageIds: allPageIds,
28
- _pageRoutes: pageRoutes,
29
- _onBeforeRouteHook: onBeforeRouteHook
27
+ _baseServer: baseServer
30
28
  };
31
29
  const pageContextUrlComputed = getPageContextUrlComputed(pageContextCreated);
32
30
  objectAssign(pageContextCreated, pageContextUrlComputed);
33
- const pageContextAugmented = await createPageContextShared(pageContextCreated, pageConfigGlobal);
31
+ const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal);
34
32
  augmentType(pageContextCreated, pageContextAugmented);
35
33
  return pageContextCreated;
36
34
  }
@@ -5,7 +5,7 @@ export { getPageContextFromClientHooks };
5
5
  export { setPageContextInitIsPassedToClient };
6
6
  import { assert, assertUsage, hasProp, objectAssign, getProjectError, redirectHard, isObject, getGlobalObject } from './utils.js';
7
7
  import { parse } from '@brillout/json-serializer/parse';
8
- import { getPageContextSerializedInHtml } from '../shared/getPageContextSerializedInHtml.js';
8
+ import { getPageContextSerializedInHtml } from '../shared/getJsonSerializedInHtml.js';
9
9
  import { analyzePageServerSide } from '../../shared/getPageFiles/analyzePageServerSide.js';
10
10
  import { getHookFromPageContext } from '../../shared/hooks/getHook.js';
11
11
  import { preparePageContextForUserConsumptionClientSide } from '../shared/preparePageContextForUserConsumptionClientSide.js';
@@ -0,0 +1,16 @@
1
+ export { getGlobalContext };
2
+ export type { GlobalContextClient };
3
+ import type { GlobalContextSharedPublic } from '../../shared/createGlobalContextShared.js';
4
+ type GlobalContextClient = GlobalContextSharedPublic & Vike.GlobalContext & {};
5
+ declare const getGlobalContext: () => Promise<{
6
+ _virtualFileExports: unknown;
7
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
8
+ _pageConfigs: import("../../__internal/index.js").PageConfig[];
9
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
10
+ _allPageIds: string[];
11
+ config: import("../../types/index.js").ConfigResolved;
12
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
13
+ } & object & {
14
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
15
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
16
+ }>;
@@ -0,0 +1,13 @@
1
+ export { getGlobalContext };
2
+ import { createGetGlobalContext } from '../shared/createGetGlobalContext.js';
3
+ import { loadPageRoutes } from '../../shared/route/loadPageRoutes.js';
4
+ // @ts-ignore
5
+ import * as virtualFileExports from 'virtual:vike:importUserCode:client:client-routing';
6
+ const getGlobalContext = createGetGlobalContext(virtualFileExports, true, addGlobalContext);
7
+ async function addGlobalContext(globalContext) {
8
+ const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
9
+ return {
10
+ _pageRoutes: pageRoutes,
11
+ _onBeforeRouteHook: onBeforeRouteHook
12
+ };
13
+ }
@@ -10,7 +10,7 @@ import { isErrorFetchingStaticAssets, loadUserFilesClientSide } from '../shared/
10
10
  import { skipLink } from './skipLink.js';
11
11
  import { disableClientRouting } from './renderPageClientSide.js';
12
12
  import { isClientSideRoutable } from './isClientSideRoutable.js';
13
- import { createPageContextClientSide } from './createPageContextClientSide.js';
13
+ import { createPageContextClientSide } from './createPageContext.js';
14
14
  import { route } from '../../shared/route/index.js';
15
15
  import { noRouteMatch } from '../../shared/route/noRouteMatch.js';
16
16
  import { getPageContextFromServerHooks } from './getPageContextFromHooks.js';
@@ -5,7 +5,7 @@ export { firstRenderStartPromise };
5
5
  export { getPageContextClient };
6
6
  import { assert, isSameErrorMessage, objectAssign, redirectHard, getGlobalObject, hasProp, augmentType, genPromise, isCallable, catchInfiniteLoop } from './utils.js';
7
7
  import { getPageContextFromClientHooks, getPageContextFromServerHooks, getPageContextFromHooks_isHydration, getPageContextFromHooks_serialized, setPageContextInitIsPassedToClient } from './getPageContextFromHooks.js';
8
- import { createPageContextClientSide } from './createPageContextClientSide.js';
8
+ import { createPageContextClientSide } from './createPageContext.js';
9
9
  import { addLinkPrefetchHandlers, addLinkPrefetchHandlers_unwatch, addLinkPrefetchHandlers_watch, getPageContextPrefetched, populatePageContextPrefetchCache } from './prefetch.js';
10
10
  import { assertInfo, assertWarning, isReact } from './utils.js';
11
11
  import { executeOnRenderClientHook } from '../shared/executeOnRenderClientHook.js';
@@ -27,8 +27,7 @@ const globalObject = getGlobalObject('client-routing-runtime/renderPageClientSid
27
27
  return {
28
28
  renderCounter: 0,
29
29
  firstRenderStartPromise,
30
- firstRenderStartPromiseResolve,
31
- globalContext: {}
30
+ firstRenderStartPromiseResolve
32
31
  };
33
32
  })());
34
33
  const { firstRenderStartPromise } = globalObject;
@@ -1,5 +1,18 @@
1
1
  export { createPageContextClientSide };
2
2
  declare function createPageContextClientSide(): Promise<{
3
+ globalContext: {
4
+ _virtualFileExports: unknown;
5
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
6
+ _pageConfigs: import("../../__internal/index.js").PageConfig[];
7
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
8
+ _allPageIds: string[];
9
+ config: import("../../types/index.js").ConfigResolved;
10
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
11
+ } & object;
12
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
13
+ _pageConfigs: import("../../__internal/index.js").PageConfig[];
14
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
15
+ _allPageIds: string[];
3
16
  isPrerendering: boolean;
4
17
  isClientSide: boolean;
5
18
  isHydration: true;
@@ -9,10 +22,6 @@ declare function createPageContextClientSide(): Promise<{
9
22
  } & {
10
23
  pageId: string;
11
24
  routeParams: Record<string, string>;
12
- } & {
13
- _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
14
- _pageConfigs: import("../../__internal/index.js").PageConfig[];
15
- _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
16
25
  } & import("../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
17
26
  _pageFilesLoaded: import("../../shared/getPageFiles.js").PageFile[];
18
27
  } & {