@alignable/bifrost 0.0.36 → 0.0.38

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.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { Config, GuardAsync, GuardSync, Meta, OnBeforePrerenderStartAsync, OnBeforePrerenderStartSync, OnBeforeRenderAsync, OnBeforeRenderSync, OnBeforeRouteAsync, OnBeforeRouteSync, OnHydrationEndAsync, OnHydrationEndSync, OnPageTransitionEndAsync, OnPageTransitionEndSync, OnPageTransitionStartAsync, OnPageTransitionStartSync, OnPrerenderStartAsync, OnPrerenderStartSync, OnRenderClientAsync, OnRenderClientSync, OnRenderHtmlAsync, OnRenderHtmlSync, RouteAsync, RouteSync } from 'vike/types';
2
2
  import { navigate as navigate$1 } from 'vike/client/router';
3
3
  export { prefetch } from 'vike/client/router';
4
- import { A as ApplicationFacingPageContext, a as AugmentMe } from './internal-28df99a9.js';
5
- export { N as BifrostConfig, P as BifrostProxyConfig, D as DocumentProps, b as LayoutComponent, L as LayoutMap, c as PageContext } from './internal-28df99a9.js';
4
+ import { A as ApplicationFacingPageContext, a as AugmentMe } from './internal-44398797.js';
5
+ export { N as BifrostConfig, P as BifrostProxyConfig, D as DocumentProps, b as LayoutComponent, L as LayoutMap, c as PageContext } from './internal-44398797.js';
6
6
  export { PageContextProvider, usePageContext } from './renderer/usePageContext.js';
7
7
  export { useNavigation } from './renderer/useNavigation.js';
8
8
  import 'react';
@@ -24,6 +24,10 @@ interface DocumentProps {
24
24
  };
25
25
  metaTags?: MetaTag[];
26
26
  }
27
+ type BodyAttrs = {
28
+ name: string;
29
+ value: string;
30
+ }[];
27
31
  type MetaTag = {
28
32
  name?: string;
29
33
  property?: string;
@@ -72,6 +76,7 @@ type PageContextProxyRestorationVisit = PageContextClient & {
72
76
  type NoProxyConfig = ConfigConstructor<typeof _default$1, {
73
77
  Layout: LayoutComponent;
74
78
  layoutProps: AugmentMe.LayoutProps;
79
+ bodyAttrs: BodyAttrs;
75
80
  documentProps: DocumentProps;
76
81
  scripts: string[];
77
82
  favicon: string;
@@ -81,6 +86,7 @@ type PageProps = Record<string, unknown>;
81
86
  type Page = React.ComponentType<PageProps>;
82
87
  interface ApplicationFacingPageContext {
83
88
  pageProps: PageProps;
89
+ bodyAttrs?: BodyAttrs;
84
90
  documentProps?: DocumentProps;
85
91
  layoutProps: AugmentMe.LayoutProps;
86
92
  redirectTo?: string;
@@ -1,4 +1,4 @@
1
- import { f as PageContextNoProxyServer } from '../../../internal-28df99a9.js';
1
+ import { f as PageContextNoProxyServer } from '../../../internal-44398797.js';
2
2
  import 'react';
3
3
  import 'vike/types';
4
4
  import '../wrapped/_config.js';
@@ -1,4 +1,4 @@
1
- import { g as PageContextProxyInit, a as AugmentMe } from '../../../internal-28df99a9.js';
1
+ import { g as PageContextProxyInit, a as AugmentMe } from '../../../internal-44398797.js';
2
2
  import 'react';
3
3
  import 'vike/types';
4
4
  import './_config.js';
@@ -1,4 +1,4 @@
1
- import { h as PageContextProxyClient } from '../../../internal-28df99a9.js';
1
+ import { h as PageContextProxyClient } from '../../../internal-44398797.js';
2
2
  import 'react';
3
3
  import 'vike/types';
4
4
  import './_config.js';
@@ -1,5 +1,5 @@
1
1
  import * as vike_dist_esm_node_runtime_html_renderHtml_js from 'vike/dist/esm/node/runtime/html/renderHtml.js';
2
- import { i as PageContextProxyServer } from '../../../internal-28df99a9.js';
2
+ import { i as PageContextProxyServer } from '../../../internal-44398797.js';
3
3
  import 'react';
4
4
  import 'vike/types';
5
5
  import './_config.js';
@@ -1,4 +1,4 @@
1
- import { j as PageContextProxyRestorationVisit } from '../../../../internal-28df99a9.js';
1
+ import { j as PageContextProxyRestorationVisit } from '../../../../internal-44398797.js';
2
2
  import 'react';
3
3
  import 'vike/types';
4
4
  import '../_config.js';
@@ -24,6 +24,12 @@ declare const _default: {
24
24
  client: true;
25
25
  };
26
26
  };
27
+ bodyAttrs: {
28
+ env: {
29
+ server: true;
30
+ client: true;
31
+ };
32
+ };
27
33
  scripts: {
28
34
  env: {
29
35
  server: true;
@@ -3,6 +3,7 @@ var passToClient = [
3
3
  "layoutProps",
4
4
  "pageProps",
5
5
  "redirectTo",
6
+ "bodyAttrs",
6
7
  "documentProps",
7
8
  "scripts",
8
9
  "is404"
@@ -18,6 +19,7 @@ var config_default = {
18
19
  Layout: { env: { server: true, client: true } },
19
20
  layoutProps: { env: { server: true, client: true } },
20
21
  documentProps: { env: { server: true, client: true } },
22
+ bodyAttrs: { env: { server: true, client: true } },
21
23
  scripts: { env: { server: true, client: true } },
22
24
  favicon: { env: { server: true } },
23
25
  onClientInit: { env: { client: true } }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../renderer/+config.ts"],"sourcesContent":["import { type Config } from \"vike/types\";\n\nconst passToClient = [\n \"layoutProps\",\n \"pageProps\",\n \"redirectTo\",\n \"documentProps\",\n \"scripts\",\n \"is404\",\n];\nexport default {\n passToClient,\n onRenderClient: \"import:@alignable/bifrost/renderer/onRenderClient\",\n onRenderHtml: \"import:@alignable/bifrost/renderer/onRenderHtml\",\n onBeforeRoute: \"import:@alignable/bifrost/renderer/onBeforeRoute\",\n clientRouting: true,\n hydrationCanBeAborted: true,\n meta: {\n Layout: { env: { server: true, client: true } },\n layoutProps: { env: { server: true, client: true } },\n documentProps: { env: { server: true, client: true } },\n scripts: { env: { server: true, client: true } },\n favicon: { env: { server: true } },\n onClientInit: { env: { client: true } },\n },\n} satisfies Config;\n"],"mappings":";AAEA,IAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAO,iBAAQ;AAAA,EACb;AAAA,EACA,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,MAAM;AAAA,IACJ,QAAQ,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IAC9C,aAAa,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IACnD,eAAe,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IACrD,SAAS,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IAC/C,SAAS,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE;AAAA,IACjC,cAAc,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE;AAAA,EACxC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../renderer/+config.ts"],"sourcesContent":["import { type Config } from \"vike/types\";\n\nconst passToClient = [\n \"layoutProps\",\n \"pageProps\",\n \"redirectTo\",\n \"bodyAttrs\",\n \"documentProps\",\n \"scripts\",\n \"is404\",\n];\nexport default {\n passToClient,\n onRenderClient: \"import:@alignable/bifrost/renderer/onRenderClient\",\n onRenderHtml: \"import:@alignable/bifrost/renderer/onRenderHtml\",\n onBeforeRoute: \"import:@alignable/bifrost/renderer/onBeforeRoute\",\n clientRouting: true,\n hydrationCanBeAborted: true,\n meta: {\n Layout: { env: { server: true, client: true } },\n layoutProps: { env: { server: true, client: true } },\n documentProps: { env: { server: true, client: true } },\n bodyAttrs: { env: { server: true, client: true } },\n scripts: { env: { server: true, client: true } },\n favicon: { env: { server: true } },\n onClientInit: { env: { client: true } },\n },\n} satisfies Config;\n"],"mappings":";AAEA,IAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAO,iBAAQ;AAAA,EACb;AAAA,EACA,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,MAAM;AAAA,IACJ,QAAQ,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IAC9C,aAAa,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IACnD,eAAe,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IACrD,WAAW,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IACjD,SAAS,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK,EAAE;AAAA,IAC/C,SAAS,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE;AAAA,IACjC,cAAc,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE;AAAA,EACxC;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- import { d as PageContextNoProxy } from '../internal-28df99a9.js';
1
+ import { d as PageContextNoProxy } from '../internal-44398797.js';
2
2
  import 'react';
3
3
  import 'vike/types';
4
4
  import '../proxy/pages/wrapped/_config.js';
@@ -1,4 +1,4 @@
1
- import { e as PageContextNoProxyClient } from '../internal-28df99a9.js';
1
+ import { e as PageContextNoProxyClient } from '../internal-44398797.js';
2
2
  import 'react';
3
3
  import 'vike/types';
4
4
  import '../proxy/pages/wrapped/_config.js';
@@ -37,6 +37,7 @@ async function onRenderClient(pageContext) {
37
37
  const { Page, pageProps } = pageContext;
38
38
  const { Layout = PassThruLayout } = pageContext.config;
39
39
  const layoutProps = getPageContextOrConfig(pageContext, "layoutProps") || {};
40
+ const bodyAttrs = getPageContextOrConfig(pageContext, "bodyAttrs") || [];
40
41
  if (!Page)
41
42
  throw new Error("Client-side render() hook expects Page to be exported");
42
43
  const page = /* @__PURE__ */ React.createElement(PageShell, { pageContext }, /* @__PURE__ */ React.createElement(Layout, { ...layoutProps }, /* @__PURE__ */ React.createElement(Page, { ...pageProps })));
@@ -56,6 +57,9 @@ async function onRenderClient(pageContext) {
56
57
  requestAnimationFrame(() => {
57
58
  Turbolinks._vpsOnRenderClient(head, false, false, () => {
58
59
  document.body.getAttributeNames().forEach((n) => document.body.removeAttribute(n));
60
+ bodyAttrs.forEach(
61
+ ({ name, value }) => document.body.setAttribute(name, value)
62
+ );
59
63
  renderReact(page, pageContext.isHydration);
60
64
  });
61
65
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../renderer/onRenderClient.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { renderReact } from \"../lib/renderReact.js\";\nimport { PageContextNoProxyClient } from \"../types/internal.js\";\nimport { PageShell } from \"../lib/PageShell.js\";\nimport { Turbolinks } from \"../lib/turbolinks/index.js\";\nimport { documentPropsToReact } from \"./utils/buildHead.js\";\nimport { getPageContextOrConfig } from \"./getConfigOrPageContext.js\";\nimport { createRoot } from \"react-dom/client\";\nimport { runClientInit } from \"../lib/runClientInit.js\";\n\nTurbolinks.start();\n\nconst PassThruLayout: React.ComponentType<PropsWithChildren> = ({\n children,\n}) => <>{children}</>;\n\nexport default async function onRenderClient(\n pageContext: PageContextNoProxyClient\n) {\n if (pageContext.redirectTo) {\n Turbolinks.visit(pageContext.redirectTo);\n return;\n }\n\n // Back button leading to 404 means we hit a page bifrost can't handle in the browser history.\n // Reload allows us to revert to passthru proxy and/or let ALB handle\n if (pageContext.isBackwardNavigation && pageContext.is404) {\n Turbolinks.controller.viewInvalidated();\n return;\n }\n\n const { Page, pageProps } = pageContext;\n const { Layout = PassThruLayout } = pageContext.config;\n const layoutProps = getPageContextOrConfig(pageContext, \"layoutProps\") || {};\n\n if (!Page)\n throw new Error(\"Client-side render() hook expects Page to be exported\");\n\n const page = (\n <PageShell pageContext={pageContext}>\n <Layout {...layoutProps}>\n <Page {...pageProps} />\n </Layout>\n </PageShell>\n );\n if (pageContext.isHydration) {\n // During hydration of initial ssr, body is in dom, not page props (to avoid double-send)\n await runClientInit(pageContext.configEntries);\n renderReact(page, pageContext.isHydration);\n } else {\n const head = document.createElement(\"head\");\n createRoot(head).render(\n documentPropsToReact(\n getPageContextOrConfig(pageContext, \"documentProps\") || {}\n )\n );\n pageContext.config.scripts?.forEach((s) => {\n head.insertAdjacentHTML(\"beforeend\", s);\n });\n\n requestAnimationFrame(() => {\n Turbolinks._vpsOnRenderClient(head, false, false, () => {\n // clear anything on body\n document.body\n .getAttributeNames()\n .forEach((n) => document.body.removeAttribute(n));\n renderReact(page, pageContext.isHydration);\n });\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAkC;AAOzC,SAAS,kBAAkB;AAG3B,WAAW,MAAM;AAEjB,IAAM,iBAAyD,CAAC;AAAA,EAC9D;AACF,MAAM,0DAAG,QAAS;AAElB,eAAO,eACL,aACA;AACA,MAAI,YAAY,YAAY;AAC1B,eAAW,MAAM,YAAY,UAAU;AACvC;AAAA,EACF;AAIA,MAAI,YAAY,wBAAwB,YAAY,OAAO;AACzD,eAAW,WAAW,gBAAgB;AACtC;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,UAAU,IAAI;AAC5B,QAAM,EAAE,SAAS,eAAe,IAAI,YAAY;AAChD,QAAM,cAAc,uBAAuB,aAAa,aAAa,KAAK,CAAC;AAE3E,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,uDAAuD;AAEzE,QAAM,OACJ,oCAAC,aAAU,eACT,oCAAC,UAAQ,GAAG,eACV,oCAAC,QAAM,GAAG,WAAW,CACvB,CACF;AAEF,MAAI,YAAY,aAAa;AAE3B,UAAM,cAAc,YAAY,aAAa;AAC7C,gBAAY,MAAM,YAAY,WAAW;AAAA,EAC3C,OAAO;AACL,UAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,eAAW,IAAI,EAAE;AAAA,MACf;AAAA,QACE,uBAAuB,aAAa,eAAe,KAAK,CAAC;AAAA,MAC3D;AAAA,IACF;AACA,gBAAY,OAAO,SAAS,QAAQ,CAAC,MAAM;AACzC,WAAK,mBAAmB,aAAa,CAAC;AAAA,IACxC,CAAC;AAED,0BAAsB,MAAM;AAC1B,iBAAW,mBAAmB,MAAM,OAAO,OAAO,MAAM;AAEtD,iBAAS,KACN,kBAAkB,EAClB,QAAQ,CAAC,MAAM,SAAS,KAAK,gBAAgB,CAAC,CAAC;AAClD,oBAAY,MAAM,YAAY,WAAW;AAAA,MAC3C,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../renderer/onRenderClient.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { renderReact } from \"../lib/renderReact.js\";\nimport { PageContextNoProxyClient } from \"../types/internal.js\";\nimport { PageShell } from \"../lib/PageShell.js\";\nimport { Turbolinks } from \"../lib/turbolinks/index.js\";\nimport { documentPropsToReact } from \"./utils/buildHead.js\";\nimport { getPageContextOrConfig } from \"./getConfigOrPageContext.js\";\nimport { createRoot } from \"react-dom/client\";\nimport { runClientInit } from \"../lib/runClientInit.js\";\n\nTurbolinks.start();\n\nconst PassThruLayout: React.ComponentType<PropsWithChildren> = ({\n children,\n}) => <>{children}</>;\n\nexport default async function onRenderClient(\n pageContext: PageContextNoProxyClient\n) {\n if (pageContext.redirectTo) {\n Turbolinks.visit(pageContext.redirectTo);\n return;\n }\n\n // Back button leading to 404 means we hit a page bifrost can't handle in the browser history.\n // Reload allows us to revert to passthru proxy and/or let ALB handle\n if (pageContext.isBackwardNavigation && pageContext.is404) {\n Turbolinks.controller.viewInvalidated();\n return;\n }\n\n const { Page, pageProps } = pageContext;\n const { Layout = PassThruLayout } = pageContext.config;\n const layoutProps = getPageContextOrConfig(pageContext, \"layoutProps\") || {};\n const bodyAttrs = getPageContextOrConfig(pageContext, \"bodyAttrs\") || [];\n\n if (!Page)\n throw new Error(\"Client-side render() hook expects Page to be exported\");\n\n const page = (\n <PageShell pageContext={pageContext}>\n <Layout {...layoutProps}>\n <Page {...pageProps} />\n </Layout>\n </PageShell>\n );\n if (pageContext.isHydration) {\n // During hydration of initial ssr, body is in dom, not page props (to avoid double-send)\n await runClientInit(pageContext.configEntries);\n renderReact(page, pageContext.isHydration);\n } else {\n const head = document.createElement(\"head\");\n createRoot(head).render(\n documentPropsToReact(\n getPageContextOrConfig(pageContext, \"documentProps\") || {}\n )\n );\n pageContext.config.scripts?.forEach((s) => {\n head.insertAdjacentHTML(\"beforeend\", s);\n });\n\n requestAnimationFrame(() => {\n Turbolinks._vpsOnRenderClient(head, false, false, () => {\n // clear anything on body\n document.body\n .getAttributeNames()\n .forEach((n) => document.body.removeAttribute(n));\n // add set bodyAttrs\n bodyAttrs.forEach(({ name, value }) =>\n document.body.setAttribute(name, value)\n );\n renderReact(page, pageContext.isHydration);\n });\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAkC;AAOzC,SAAS,kBAAkB;AAG3B,WAAW,MAAM;AAEjB,IAAM,iBAAyD,CAAC;AAAA,EAC9D;AACF,MAAM,0DAAG,QAAS;AAElB,eAAO,eACL,aACA;AACA,MAAI,YAAY,YAAY;AAC1B,eAAW,MAAM,YAAY,UAAU;AACvC;AAAA,EACF;AAIA,MAAI,YAAY,wBAAwB,YAAY,OAAO;AACzD,eAAW,WAAW,gBAAgB;AACtC;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,UAAU,IAAI;AAC5B,QAAM,EAAE,SAAS,eAAe,IAAI,YAAY;AAChD,QAAM,cAAc,uBAAuB,aAAa,aAAa,KAAK,CAAC;AAC3E,QAAM,YAAY,uBAAuB,aAAa,WAAW,KAAK,CAAC;AAEvE,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,uDAAuD;AAEzE,QAAM,OACJ,oCAAC,aAAU,eACT,oCAAC,UAAQ,GAAG,eACV,oCAAC,QAAM,GAAG,WAAW,CACvB,CACF;AAEF,MAAI,YAAY,aAAa;AAE3B,UAAM,cAAc,YAAY,aAAa;AAC7C,gBAAY,MAAM,YAAY,WAAW;AAAA,EAC3C,OAAO;AACL,UAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,eAAW,IAAI,EAAE;AAAA,MACf;AAAA,QACE,uBAAuB,aAAa,eAAe,KAAK,CAAC;AAAA,MAC3D;AAAA,IACF;AACA,gBAAY,OAAO,SAAS,QAAQ,CAAC,MAAM;AACzC,WAAK,mBAAmB,aAAa,CAAC;AAAA,IACxC,CAAC;AAED,0BAAsB,MAAM;AAC1B,iBAAW,mBAAmB,MAAM,OAAO,OAAO,MAAM;AAEtD,iBAAS,KACN,kBAAkB,EAClB,QAAQ,CAAC,MAAM,SAAS,KAAK,gBAAgB,CAAC,CAAC;AAElD,kBAAU;AAAA,UAAQ,CAAC,EAAE,MAAM,MAAM,MAC/B,SAAS,KAAK,aAAa,MAAM,KAAK;AAAA,QACxC;AACA,oBAAY,MAAM,YAAY,WAAW;AAAA,MAC3C,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import * as vike_dist_esm_node_runtime_html_renderHtml_js from 'vike/dist/esm/node/runtime/html/renderHtml.js';
2
- import { f as PageContextNoProxyServer } from '../internal-28df99a9.js';
2
+ import { f as PageContextNoProxyServer } from '../internal-44398797.js';
3
3
  import 'react';
4
4
  import 'vike/types';
5
5
  import '../proxy/pages/wrapped/_config.js';
@@ -38,6 +38,7 @@ async function onRenderHtml(pageContext) {
38
38
  getPageContextOrConfig(pageContext, "documentProps") || {}
39
39
  )
40
40
  );
41
+ const bodyAttrs = getPageContextOrConfig(pageContext, "bodyAttrs") || [];
41
42
  const { favicon } = pageContext.config;
42
43
  const faviconTag = !favicon ? "" : escapeInject`<link rel="icon" href="${favicon}" />`;
43
44
  const documentHtml = escapeInject`<!DOCTYPE html>
@@ -57,7 +58,9 @@ async function onRenderHtml(pageContext) {
57
58
  })
58
59
  </script>`)}
59
60
  </head>
60
- <body>
61
+ <body ${dangerouslySkipEscape(
62
+ bodyAttrs.map(({ name, value }) => `${name}="${value}"`).join(" ")
63
+ )}>
61
64
  <div id="page-view">${dangerouslySkipEscape(pageHtml)}</div>
62
65
  </body>
63
66
  </html>`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../renderer/onRenderHtml.tsx"],"sourcesContent":["import ReactDOMServer from \"react-dom/server\";\nimport React from \"react\";\nimport { PageShell } from \"../lib/PageShell.js\";\nimport { escapeInject, dangerouslySkipEscape } from \"vike/server\";\nimport { PageContextNoProxyServer } from \"../types/internal.js\";\nimport { documentPropsToReact } from \"./utils/buildHead.js\";\nimport { getPageContextOrConfig } from \"./getConfigOrPageContext.js\";\n\nexport default async function onRenderHtml(\n pageContext: PageContextNoProxyServer\n) {\n const { Page, pageProps, redirectTo } = pageContext;\n if (redirectTo) {\n return {\n pageContext: {\n redirectTo,\n },\n };\n }\n const { Layout } = pageContext.config;\n const layoutProps = getPageContextOrConfig(pageContext, \"layoutProps\") || {};\n\n if (!Page)\n throw new Error(\"Server-side render() hook expects Page to be exported\");\n if (!Layout)\n throw new Error(\"Server-side render() hook expects Layout to be exported\");\n\n const pageHtml = ReactDOMServer.renderToString(\n <PageShell pageContext={pageContext}>\n <Layout {...layoutProps}>\n <Page {...pageProps} />\n </Layout>\n </PageShell>\n );\n\n const headHtml = ReactDOMServer.renderToString(\n documentPropsToReact(\n getPageContextOrConfig(pageContext, \"documentProps\") || {}\n )\n );\n\n const { favicon } = pageContext.config;\n const faviconTag = !favicon\n ? \"\"\n : escapeInject`<link rel=\"icon\" href=\"${favicon}\" />`;\n\n const documentHtml = escapeInject`<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n ${faviconTag}\n ${dangerouslySkipEscape(headHtml)}\n ${dangerouslySkipEscape(\n Object.values(pageContext.config.scripts || {}).join(\"\")\n )}\n ${dangerouslySkipEscape(`<script>\n window.Turbolinks = {controller:{restorationIdentifier: ''}};\n addEventListener(\"DOMContentLoaded\", () => {\n const event = new Event(\"turbolinks:load\", { bubbles: true, cancelable: true });\n event.data = {url: window.location.href};\n document.dispatchEvent(event); \n })\n </script>`)}\n </head>\n <body>\n <div id=\"page-view\">${dangerouslySkipEscape(pageHtml)}</div>\n </body>\n </html>`;\n\n return {\n documentHtml,\n pageContext: {\n // We can add some `pageContext` here, which is useful if we want to do page redirection https://vike.com/page-redirection\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,oBAAoB;AAC3B,OAAO,WAAW;AAElB,SAAS,cAAc,6BAA6B;AAKpD,eAAO,aACL,aACA;AACA,QAAM,EAAE,MAAM,WAAW,WAAW,IAAI;AACxC,MAAI,YAAY;AACd,WAAO;AAAA,MACL,aAAa;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,OAAO,IAAI,YAAY;AAC/B,QAAM,cAAc,uBAAuB,aAAa,aAAa,KAAK,CAAC;AAE3E,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,uDAAuD;AACzE,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,yDAAyD;AAE3E,QAAM,WAAW,eAAe;AAAA,IAC9B,oCAAC,aAAU,eACT,oCAAC,UAAQ,GAAG,eACV,oCAAC,QAAM,GAAG,WAAW,CACvB,CACF;AAAA,EACF;AAEA,QAAM,WAAW,eAAe;AAAA,IAC9B;AAAA,MACE,uBAAuB,aAAa,eAAe,KAAK,CAAC;AAAA,IAC3D;AAAA,EACF;AAEA,QAAM,EAAE,QAAQ,IAAI,YAAY;AAChC,QAAM,aAAa,CAAC,UAChB,KACA,sCAAsC,OAAO;AAEjD,QAAM,eAAe;AAAA;AAAA;AAAA,QAGf,UAAU;AAAA,QACV,sBAAsB,QAAQ,CAAC;AAAA,QAC/B;AAAA,IACA,OAAO,OAAO,YAAY,OAAO,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE;AAAA,EACzD,CAAC;AAAA,QACC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOd,CAAC;AAAA;AAAA;AAAA,8BAGa,sBAAsB,QAAQ,CAAC;AAAA;AAAA;AAI3D,SAAO;AAAA,IACL;AAAA,IACA,aAAa;AAAA;AAAA,IAEb;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../renderer/onRenderHtml.tsx"],"sourcesContent":["import ReactDOMServer from \"react-dom/server\";\nimport React from \"react\";\nimport { PageShell } from \"../lib/PageShell.js\";\nimport { escapeInject, dangerouslySkipEscape } from \"vike/server\";\nimport { PageContextNoProxyServer } from \"../types/internal.js\";\nimport { documentPropsToReact } from \"./utils/buildHead.js\";\nimport { getPageContextOrConfig } from \"./getConfigOrPageContext.js\";\n\nexport default async function onRenderHtml(\n pageContext: PageContextNoProxyServer\n) {\n const { Page, pageProps, redirectTo } = pageContext;\n if (redirectTo) {\n return {\n pageContext: {\n redirectTo,\n },\n };\n }\n const { Layout } = pageContext.config;\n const layoutProps = getPageContextOrConfig(pageContext, \"layoutProps\") || {};\n\n if (!Page)\n throw new Error(\"Server-side render() hook expects Page to be exported\");\n if (!Layout)\n throw new Error(\"Server-side render() hook expects Layout to be exported\");\n\n const pageHtml = ReactDOMServer.renderToString(\n <PageShell pageContext={pageContext}>\n <Layout {...layoutProps}>\n <Page {...pageProps} />\n </Layout>\n </PageShell>\n );\n\n const headHtml = ReactDOMServer.renderToString(\n documentPropsToReact(\n getPageContextOrConfig(pageContext, \"documentProps\") || {}\n )\n );\n\n const bodyAttrs = getPageContextOrConfig(pageContext, \"bodyAttrs\") || [];\n\n const { favicon } = pageContext.config;\n const faviconTag = !favicon\n ? \"\"\n : escapeInject`<link rel=\"icon\" href=\"${favicon}\" />`;\n\n const documentHtml = escapeInject`<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n ${faviconTag}\n ${dangerouslySkipEscape(headHtml)}\n ${dangerouslySkipEscape(\n Object.values(pageContext.config.scripts || {}).join(\"\")\n )}\n ${dangerouslySkipEscape(`<script>\n window.Turbolinks = {controller:{restorationIdentifier: ''}};\n addEventListener(\"DOMContentLoaded\", () => {\n const event = new Event(\"turbolinks:load\", { bubbles: true, cancelable: true });\n event.data = {url: window.location.href};\n document.dispatchEvent(event); \n })\n </script>`)}\n </head>\n <body ${dangerouslySkipEscape(\n bodyAttrs.map(({ name, value }) => `${name}=\"${value}\"`).join(\" \")\n )}>\n <div id=\"page-view\">${dangerouslySkipEscape(pageHtml)}</div>\n </body>\n </html>`;\n\n return {\n documentHtml,\n pageContext: {\n // We can add some `pageContext` here, which is useful if we want to do page redirection https://vike.com/page-redirection\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,oBAAoB;AAC3B,OAAO,WAAW;AAElB,SAAS,cAAc,6BAA6B;AAKpD,eAAO,aACL,aACA;AACA,QAAM,EAAE,MAAM,WAAW,WAAW,IAAI;AACxC,MAAI,YAAY;AACd,WAAO;AAAA,MACL,aAAa;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,OAAO,IAAI,YAAY;AAC/B,QAAM,cAAc,uBAAuB,aAAa,aAAa,KAAK,CAAC;AAE3E,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,uDAAuD;AACzE,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,yDAAyD;AAE3E,QAAM,WAAW,eAAe;AAAA,IAC9B,oCAAC,aAAU,eACT,oCAAC,UAAQ,GAAG,eACV,oCAAC,QAAM,GAAG,WAAW,CACvB,CACF;AAAA,EACF;AAEA,QAAM,WAAW,eAAe;AAAA,IAC9B;AAAA,MACE,uBAAuB,aAAa,eAAe,KAAK,CAAC;AAAA,IAC3D;AAAA,EACF;AAEA,QAAM,YAAY,uBAAuB,aAAa,WAAW,KAAK,CAAC;AAEvE,QAAM,EAAE,QAAQ,IAAI,YAAY;AAChC,QAAM,aAAa,CAAC,UAChB,KACA,sCAAsC,OAAO;AAEjD,QAAM,eAAe;AAAA;AAAA;AAAA,QAGf,UAAU;AAAA,QACV,sBAAsB,QAAQ,CAAC;AAAA,QAC/B;AAAA,IACA,OAAO,OAAO,YAAY,OAAO,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE;AAAA,EACzD,CAAC;AAAA,QACC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOd,CAAC;AAAA;AAAA,cAEH;AAAA,IACN,UAAU,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG;AAAA,EACnE,CAAC;AAAA,8BACuB,sBAAsB,QAAQ,CAAC;AAAA;AAAA;AAI3D,SAAO;AAAA,IACL;AAAA,IACA,aAAa;AAAA;AAAA,IAEb;AAAA,EACF;AACF;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { c as PageContext } from '../internal-28df99a9.js';
2
+ import { c as PageContext } from '../internal-44398797.js';
3
3
  import 'vike/types';
4
4
  import '../proxy/pages/wrapped/_config.js';
5
5
  import './_config.js';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { D as DocumentProps } from '../../internal-28df99a9.js';
2
+ import { D as DocumentProps } from '../../internal-44398797.js';
3
3
  import 'vike/types';
4
4
  import '../../proxy/pages/wrapped/_config.js';
5
5
  import '../_config.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alignable/bifrost",
3
3
  "repository": "https://github.com/Alignable/bifrost.git",
4
- "version": "0.0.36",
4
+ "version": "0.0.38",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
@@ -91,14 +91,14 @@
91
91
  "react-dom": "^18.x.x",
92
92
  "tough-cookie": "^4.1.2",
93
93
  "uuid": "^9.0.0",
94
- "vike": "0.4.160-commit-937d8d5"
94
+ "vike": "0.4.168"
95
95
  },
96
96
  "peerDependencies": {
97
97
  "jsdom": "^22.1.0",
98
98
  "react": "^18.x.x",
99
99
  "react-dom": "^18.x.x",
100
100
  "typescript": ">=4.7",
101
- "vike": "0.4.160-commit-937d8d5"
101
+ "vike": "0.4.168"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@types/jsdom": "^21.1.2",