@alignable/bifrost 0.0.10 → 0.0.12

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 (112) hide show
  1. package/dist/index.d.ts +1 -22
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/lib/PageShell.d.ts.map +1 -1
  4. package/dist/lib/getElementAttributes.d.ts +2 -0
  5. package/dist/lib/getElementAttributes.d.ts.map +1 -0
  6. package/dist/lib/getElementAttributes.js +7 -0
  7. package/dist/lib/turbolinks/browser_adapter.d.ts.map +1 -1
  8. package/dist/lib/turbolinks/browser_adapter.js +1 -4
  9. package/dist/lib/turbolinks/controller.d.ts +18 -44
  10. package/dist/lib/turbolinks/controller.d.ts.map +1 -1
  11. package/dist/lib/turbolinks/controller.js +42 -113
  12. package/dist/lib/turbolinks/head_details.d.ts +1 -0
  13. package/dist/lib/turbolinks/head_details.d.ts.map +1 -1
  14. package/dist/lib/turbolinks/head_details.js +5 -0
  15. package/dist/lib/turbolinks/index.d.ts +3 -3
  16. package/dist/lib/turbolinks/index.d.ts.map +1 -1
  17. package/dist/lib/turbolinks/index.js +18 -18
  18. package/dist/lib/turbolinks/lruCache.d.ts.map +1 -0
  19. package/dist/lib/turbolinks/mergeHead.d.ts +2 -0
  20. package/dist/lib/turbolinks/mergeHead.d.ts.map +1 -0
  21. package/dist/lib/{mergeHead.js → turbolinks/mergeHead.js} +27 -33
  22. package/dist/lib/turbolinks/util.d.ts +4 -0
  23. package/dist/lib/turbolinks/util.d.ts.map +1 -1
  24. package/dist/lib/turbolinks/util.js +40 -0
  25. package/dist/lib/turbolinks/visit.d.ts +5 -23
  26. package/dist/lib/turbolinks/visit.d.ts.map +1 -1
  27. package/dist/lib/turbolinks/visit.js +54 -118
  28. package/dist/proxy/pages/onRenderClient.d.ts.map +1 -1
  29. package/dist/proxy/pages/onRenderClient.js +40 -29
  30. package/dist/proxy/pages/onRenderHtml.d.ts.map +1 -1
  31. package/dist/proxy/pages/onRenderHtml.js +19 -5
  32. package/dist/proxy/pages/restorationVisit/+config.d.ts +2 -0
  33. package/dist/proxy/pages/restorationVisit/+config.d.ts.map +1 -1
  34. package/dist/proxy/pages/restorationVisit/+config.js +3 -0
  35. package/dist/proxy/pages/restorationVisit/onRenderClient.d.ts +3 -0
  36. package/dist/proxy/pages/restorationVisit/onRenderClient.d.ts.map +1 -0
  37. package/dist/proxy/pages/restorationVisit/onRenderClient.js +41 -0
  38. package/dist/renderer/onBeforeRoute.d.ts +1 -6
  39. package/dist/renderer/onBeforeRoute.d.ts.map +1 -1
  40. package/dist/renderer/onBeforeRoute.js +19 -11
  41. package/dist/renderer/onRenderClient.d.ts.map +1 -1
  42. package/dist/renderer/onRenderClient.js +29 -23
  43. package/dist/renderer/onRenderHtml.d.ts.map +1 -1
  44. package/dist/renderer/onRenderHtml.js +12 -16
  45. package/dist/renderer/utils/buildHead.d.ts +4 -0
  46. package/dist/renderer/utils/buildHead.d.ts.map +1 -0
  47. package/dist/renderer/utils/buildHead.js +10 -0
  48. package/dist/types/internal.d.ts +28 -17
  49. package/dist/types/internal.d.ts.map +1 -1
  50. package/package.json +13 -5
  51. package/dist/lib/dispatchTurbolinks.d.ts +0 -28
  52. package/dist/lib/dispatchTurbolinks.d.ts.map +0 -1
  53. package/dist/lib/dispatchTurbolinks.js +0 -5
  54. package/dist/lib/domUtils.d.ts +0 -3
  55. package/dist/lib/domUtils.d.ts.map +0 -1
  56. package/dist/lib/domUtils.js +0 -34
  57. package/dist/lib/getGlobalObject.d.ts +0 -5
  58. package/dist/lib/getGlobalObject.d.ts.map +0 -1
  59. package/dist/lib/getGlobalObject.js +0 -7
  60. package/dist/lib/linkInterceptor.d.ts +0 -2
  61. package/dist/lib/linkInterceptor.d.ts.map +0 -1
  62. package/dist/lib/linkInterceptor.js +0 -74
  63. package/dist/lib/lruCache.d.ts.map +0 -1
  64. package/dist/lib/mergeHead.d.ts +0 -2
  65. package/dist/lib/mergeHead.d.ts.map +0 -1
  66. package/dist/lib/navigateAnywhere.d.ts +0 -3
  67. package/dist/lib/navigateAnywhere.d.ts.map +0 -1
  68. package/dist/lib/navigateAnywhere.js +0 -15
  69. package/dist/lib/snapshots.d.ts +0 -9
  70. package/dist/lib/snapshots.d.ts.map +0 -1
  71. package/dist/lib/snapshots.js +0 -50
  72. package/dist/lib/turbolinks/history.d.ts +0 -22
  73. package/dist/lib/turbolinks/history.d.ts.map +0 -1
  74. package/dist/lib/turbolinks/history.js +0 -60
  75. package/dist/lib/turbolinks/namespace.d.ts +0 -12
  76. package/dist/lib/turbolinks/namespace.d.ts.map +0 -1
  77. package/dist/lib/turbolinks/namespace.js +0 -20
  78. package/dist/lib/turbolinks/passthrough_renderer.d.ts +0 -32
  79. package/dist/lib/turbolinks/passthrough_renderer.d.ts.map +0 -1
  80. package/dist/lib/turbolinks/passthrough_renderer.js +0 -128
  81. package/dist/lib/turbolinks/renderer.d.ts +0 -14
  82. package/dist/lib/turbolinks/renderer.d.ts.map +0 -1
  83. package/dist/lib/turbolinks/renderer.js +0 -28
  84. package/dist/lib/turbolinks/scroll_manager.d.ts +0 -16
  85. package/dist/lib/turbolinks/scroll_manager.d.ts.map +0 -1
  86. package/dist/lib/turbolinks/scroll_manager.js +0 -32
  87. package/dist/lib/turbolinks/snapshot.d.ts +0 -25
  88. package/dist/lib/turbolinks/snapshot.d.ts.map +0 -1
  89. package/dist/lib/turbolinks/snapshot.js +0 -77
  90. package/dist/lib/turbolinks/snapshot_cache.d.ts +0 -18
  91. package/dist/lib/turbolinks/snapshot_cache.d.ts.map +0 -1
  92. package/dist/lib/turbolinks/snapshot_cache.js +0 -42
  93. package/dist/lib/turbolinks/snapshot_renderer copy.d.ts +0 -45
  94. package/dist/lib/turbolinks/snapshot_renderer copy.d.ts.map +0 -1
  95. package/dist/lib/turbolinks/snapshot_renderer copy.js +0 -179
  96. package/dist/lib/turbolinks/snapshot_renderer.d.ts +0 -43
  97. package/dist/lib/turbolinks/snapshot_renderer.d.ts.map +0 -1
  98. package/dist/lib/turbolinks/snapshot_renderer.js +0 -139
  99. package/dist/lib/turbolinks/view.d.ts +0 -21
  100. package/dist/lib/turbolinks/view.d.ts.map +0 -1
  101. package/dist/lib/turbolinks/view.js +0 -42
  102. package/dist/lib/turbolinks.d.ts +0 -5
  103. package/dist/lib/turbolinks.d.ts.map +0 -1
  104. package/dist/lib/turbolinks.js +0 -14
  105. package/dist/proxy/pages/onPageTransitionStart.d.ts +0 -3
  106. package/dist/proxy/pages/onPageTransitionStart.d.ts.map +0 -1
  107. package/dist/proxy/pages/onPageTransitionStart.js +0 -9
  108. package/dist/renderer/utils/formatMetaObject.d.ts +0 -4
  109. package/dist/renderer/utils/formatMetaObject.d.ts.map +0 -1
  110. package/dist/renderer/utils/formatMetaObject.js +0 -3
  111. /package/dist/lib/{lruCache.d.ts → turbolinks/lruCache.d.ts} +0 -0
  112. /package/dist/lib/{lruCache.js → turbolinks/lruCache.js} +0 -0
@@ -0,0 +1,41 @@
1
+ import React from "react";
2
+ import { PageShell } from "../../../lib/PageShell.js";
3
+ import { renderReact } from "../../../lib/renderReact.js";
4
+ import { Turbolinks } from "../../../lib/turbolinks/index.js";
5
+ import { getElementAttributes } from "../../../lib/getElementAttributes.js";
6
+ import { copyElementAttributes } from "../../../lib/turbolinks/util.js";
7
+ export default async function onRenderClient(pageContext) {
8
+ if (pageContext.isHydration) {
9
+ throw new Error("restoration visit should never happen on initial render");
10
+ }
11
+ const { layoutProps, layout, bodyEl, headEl } = pageContext;
12
+ const { layoutMap } = pageContext.config;
13
+ if (!layoutMap) {
14
+ throw new Error("layoutMap needs to be defined in config");
15
+ }
16
+ const Layout = layoutMap[layout];
17
+ function render(body) {
18
+ renderReact(React.createElement(PageShell, { key: pageContext.urlOriginal, pageContext: pageContext },
19
+ React.createElement(Layout, { ...layoutProps },
20
+ React.createElement("div", { id: "proxied-body", dangerouslySetInnerHTML: { __html: body } }))), pageContext.isHydration);
21
+ }
22
+ const proxyBodyEl = bodyEl.querySelector("#proxied-body");
23
+ if (!proxyBodyEl) {
24
+ throw new Error("proxied body not found in cached snapshot");
25
+ }
26
+ Turbolinks._vpsOnRenderClient(headEl, true, () => {
27
+ // merge body attributes
28
+ document.body
29
+ .getAttributeNames()
30
+ .forEach((n) => document.body.removeAttribute(n));
31
+ copyElementAttributes(document.body, bodyEl);
32
+ // render body with react
33
+ render(proxyBodyEl.innerHTML);
34
+ });
35
+ // cache page context will save it and return it to us during restoration visits
36
+ Turbolinks._vpsCachePageContext({
37
+ layoutProps,
38
+ layout,
39
+ bodyAttrs: getElementAttributes(bodyEl),
40
+ });
41
+ }
@@ -1,9 +1,4 @@
1
1
  export default function onBeforeRoute(_pageContext: any): {
2
- pageContext: {
3
- _pageId: string;
4
- layoutProps: Record<string, unknown>;
5
- proxySendClient?: import("../types/internal.js").Proxy | undefined;
6
- layout: string;
7
- };
2
+ pageContext: any;
8
3
  } | undefined;
9
4
  //# sourceMappingURL=onBeforeRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onBeforeRoute.d.ts","sourceRoot":"","sources":["../../renderer/onBeforeRoute.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,YAAY,EAAE,GAAG;;;;;;;cAYtD"}
1
+ {"version":3,"file":"onBeforeRoute.d.ts","sourceRoot":"","sources":["../../renderer/onBeforeRoute.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,YAAY,EAAE,GAAG;;cA2BtD"}
@@ -1,15 +1,23 @@
1
- import { getSnapshot } from "../lib/snapshots.js";
1
+ // do NOT import turbolinks in this file. It is used on server side.
2
2
  export default function onBeforeRoute(_pageContext) {
3
- const snapshot = getSnapshot();
4
- if (!!snapshot?.proxySendClient) {
5
- return {
6
- pageContext: {
7
- ...snapshot,
8
- _pageId: "/proxy/pages/restorationVisit",
9
- },
10
- };
11
- }
12
- else {
3
+ if (typeof window === "undefined")
13
4
  return undefined;
5
+ const Turbolinks = window.Turbolinks;
6
+ const currentVisit = Turbolinks.controller.currentVisit;
7
+ if (!currentVisit || currentVisit.state === "completed") {
8
+ // old/nonexistent currentVisit means VPS is doing history navigation. Ideally we might turn off VPS' onpopstate listener.
9
+ const snapshot = Turbolinks.controller.getCachedSnapshotForLocation(window.location.href);
10
+ Turbolinks.controller.historyPoppedToLocationWithRestorationIdentifier(window.location.href, "");
11
+ if (!!snapshot) {
12
+ return {
13
+ pageContext: {
14
+ ...snapshot.pageContext,
15
+ bodyEl: snapshot.bodyEl,
16
+ headEl: snapshot.headEl,
17
+ _pageId: "/proxy/pages/restorationVisit",
18
+ },
19
+ };
20
+ }
14
21
  }
22
+ return undefined;
15
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"onRenderClient.d.ts","sourceRoot":"","sources":["../../renderer/onRenderClient.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAWhE,wBAA8B,cAAc,CAC1C,WAAW,EAAE,wBAAwB,iBAmCtC"}
1
+ {"version":3,"file":"onRenderClient.d.ts","sourceRoot":"","sources":["../../renderer/onRenderClient.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAahE,wBAA8B,cAAc,CAC1C,WAAW,EAAE,wBAAwB,iBA0CtC"}
@@ -1,36 +1,42 @@
1
1
  import React from "react";
2
2
  import { renderReact } from "../lib/renderReact.js";
3
3
  import { PageShell } from "../lib/PageShell.js";
4
- import { turbolinksClickListener } from "../lib/linkInterceptor.js";
4
+ import { Turbolinks } from "../lib/turbolinks/index.js";
5
+ import { documentPropsToReact } from "./utils/buildHead.js";
5
6
  import { getDocumentProps } from "./getDocumentProps.js";
6
- import { cacheProxiedBody } from "../lib/snapshots.js";
7
- import { navigateAnywhere } from "../lib/navigateAnywhere.js";
8
- import { setupTurbolinks } from "../lib/turbolinks.js";
9
- import { formatMetaObject } from "./utils/formatMetaObject.js";
10
- setupTurbolinks();
7
+ import { createRoot } from "react-dom/client";
8
+ Turbolinks.start();
9
+ const PassThruLayout = ({ children, }) => React.createElement(React.Fragment, null, children);
11
10
  export default async function onRenderClient(pageContext) {
12
- if (navigateAnywhere(pageContext.redirectTo))
11
+ if (pageContext.redirectTo) {
12
+ Turbolinks.visit(pageContext.redirectTo);
13
13
  return;
14
+ }
14
15
  const { Page, pageProps } = pageContext;
15
- const { Layout, layoutProps } = pageContext.config;
16
+ const { Layout = PassThruLayout, layoutProps } = pageContext.config;
16
17
  if (!Page)
17
18
  throw new Error("Client-side render() hook expects Page to be exported");
18
- if (!Layout)
19
- throw new Error("Client-side render() hook expects Layout to be exported");
20
- document.removeEventListener("click", turbolinksClickListener);
21
- cacheProxiedBody();
22
- const { title = "", description = "", viewport } = getDocumentProps(pageContext);
23
- document.title = title;
24
- document.head
25
- .querySelector("meta[name='description']")
26
- ?.setAttribute("content", description);
27
- if (viewport) {
28
- document.head
29
- .querySelector("meta[name='viewport']")
30
- ?.setAttribute("content", formatMetaObject(viewport));
31
- }
32
19
  const page = (React.createElement(PageShell, { pageContext: pageContext },
33
20
  React.createElement(Layout, { ...layoutProps },
34
21
  React.createElement(Page, { ...pageProps }))));
35
- renderReact(page, pageContext.isHydration);
22
+ if (pageContext.isHydration) {
23
+ // During hydration of initial ssr, body is in dom, not page props (to avoid double-send)
24
+ renderReact(page, pageContext.isHydration);
25
+ }
26
+ else {
27
+ const head = document.createElement("head");
28
+ createRoot(head).render(documentPropsToReact(getDocumentProps(pageContext)));
29
+ pageContext.config.scripts?.forEach((s) => {
30
+ head.insertAdjacentHTML("beforeend", s);
31
+ });
32
+ requestAnimationFrame(() => {
33
+ Turbolinks._vpsOnRenderClient(head, false, () => {
34
+ // clear anything on body
35
+ document.body
36
+ .getAttributeNames()
37
+ .forEach((n) => document.body.removeAttribute(n));
38
+ renderReact(page, pageContext.isHydration);
39
+ });
40
+ });
41
+ }
36
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"onRenderHtml.d.ts","sourceRoot":"","sources":["../../renderer/onRenderHtml.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,wBAA8B,YAAY,CACxC,WAAW,EAAE,wBAAwB;;;GAmDtC"}
1
+ {"version":3,"file":"onRenderHtml.d.ts","sourceRoot":"","sources":["../../renderer/onRenderHtml.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,wBAA8B,YAAY,CACxC,WAAW,EAAE,wBAAwB;;;GAiDtC"}
@@ -2,8 +2,8 @@ import ReactDOMServer from "react-dom/server";
2
2
  import React from "react";
3
3
  import { PageShell } from "../lib/PageShell.js";
4
4
  import { escapeInject, dangerouslySkipEscape } from "vite-plugin-ssr/server";
5
+ import { documentPropsToReact } from "./utils/buildHead.js";
5
6
  import { getDocumentProps } from "./getDocumentProps.js";
6
- import { formatMetaObject } from "./utils/formatMetaObject.js";
7
7
  export default async function onRenderHtml(pageContext) {
8
8
  const { Page, pageProps } = pageContext;
9
9
  const { Layout, layoutProps } = pageContext.config;
@@ -14,24 +14,20 @@ export default async function onRenderHtml(pageContext) {
14
14
  const pageHtml = ReactDOMServer.renderToString(React.createElement(PageShell, { pageContext: pageContext },
15
15
  React.createElement(Layout, { ...layoutProps },
16
16
  React.createElement(Page, { ...pageProps }))));
17
- const { googleAnalytics, osano } = pageContext.config.scripts;
18
- const googleAnalyticsTag = dangerouslySkipEscape(googleAnalytics);
19
- const osanoTag = dangerouslySkipEscape(osano);
20
- // // See https://vite-plugin-ssr.com/head
21
- const { title = "", description = "", viewport } = getDocumentProps(pageContext);
22
- if (!title) {
23
- console.warn(`No title set for ${pageContext.urlOriginal}!`);
24
- }
25
- const viewportTag = !viewport ? "" : escapeInject `<meta content="${formatMetaObject(viewport)}" name="viewport">`;
17
+ const headHtml = ReactDOMServer.renderToString(documentPropsToReact(getDocumentProps(pageContext)));
26
18
  const documentHtml = escapeInject `<!DOCTYPE html>
27
19
  <html lang="en">
28
20
  <head>
29
- ${googleAnalyticsTag}
30
- ${osanoTag}
31
- <title>${title}</title>
32
- <meta name="title" property="og:title" content="${title}"/>
33
- <meta name="description" content="${description}"/>
34
- ${viewportTag}
21
+ ${dangerouslySkipEscape(headHtml)}
22
+ ${dangerouslySkipEscape(Object.values(pageContext.config.scripts || {}).join(""))}
23
+ ${dangerouslySkipEscape(`<script>
24
+ window.Turbolinks = {controller:{restorationIdentifier: ''}};
25
+ addEventListener("DOMContentLoaded", () => {
26
+ const event = new Event("turbolinks:load", { bubbles: true, cancelable: true });
27
+ event.data = {url: window.location.href};
28
+ document.dispatchEvent(event);
29
+ })
30
+ </script>`)}
35
31
  </head>
36
32
  <body>
37
33
  <div id="page-view">${dangerouslySkipEscape(pageHtml)}</div>
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DocumentProps } from "../../types/internal";
3
+ export declare function documentPropsToReact({ title, description, viewport, }: DocumentProps): React.ReactElement;
4
+ //# sourceMappingURL=buildHead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildHead.d.ts","sourceRoot":"","sources":["../../../renderer/utils/buildHead.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,EACnC,KAAU,EACV,WAAgB,EAChB,QAAa,GACd,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAcpC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export function documentPropsToReact({ title = "", description = "", viewport = {}, }) {
3
+ return (React.createElement(React.Fragment, null,
4
+ React.createElement("title", null, title),
5
+ React.createElement("meta", { name: "title", property: "og:title", content: title }),
6
+ React.createElement("meta", { name: "description", content: description }),
7
+ React.createElement("meta", { name: "viewport", content: Object.entries(viewport)
8
+ .map((e) => e.join("="))
9
+ .join(", ") })));
10
+ }
@@ -1,18 +1,19 @@
1
1
  import { PropsWithChildren } from "react";
2
- import { PageContextBuiltIn, PageContextBuiltInClientWithClientRouting as PageContextBuiltInClient } from "vite-plugin-ssr/types";
3
- export interface Proxy {
4
- body: string;
5
- head: string;
6
- bodyAttrs: Record<string, string>;
7
- }
2
+ import { Config, ConfigNonHeaderFile, PageContextBuiltIn, PageContextBuiltInClientWithClientRouting as PageContextBuiltInClient } from "vite-plugin-ssr/types";
3
+ import InternalProxyConfig from "../proxy/pages/+config.js";
4
+ import InternalNoProxyConfig from "../renderer/+config.js";
5
+ type ConfigConstructor<LibConfig extends ConfigNonHeaderFile, T extends {
6
+ [K in keyof LibConfig["meta"]]: any;
7
+ }> = Config & Partial<T>;
8
8
  export type Layout<LayoutProps> = React.ComponentType<PropsWithChildren<LayoutProps>>;
9
9
  export type LayoutMap<LayoutProps> = Record<string, Layout<LayoutProps>>;
10
+ export type ProxyConfig<LayoutProps> = ConfigConstructor<typeof InternalProxyConfig, {
11
+ layoutMap: LayoutMap<LayoutProps>;
12
+ }>;
10
13
  type PageContextProxyCommon<LayoutProps = Record<string, unknown>> = {
11
14
  layout: string;
12
15
  layoutProps: LayoutProps;
13
- config: {
14
- layoutMap: LayoutMap<LayoutProps>;
15
- };
16
+ config: ProxyConfig<LayoutProps>;
16
17
  };
17
18
  type PageContextProxyClientHydration = {
18
19
  isHydration: true;
@@ -21,32 +22,42 @@ type PageContextProxyClientHydration = {
21
22
  type PageContextProxyClientNav = {
22
23
  isHydration: false;
23
24
  redirectTo?: string;
24
- proxySendClient?: Proxy;
25
+ proxySendClient?: string;
25
26
  };
26
27
  export type PageContextProxyServer = PageContextBuiltIn<Page> & PageContextProxyCommon & {
27
- proxy: Proxy;
28
+ proxy: string;
28
29
  };
29
30
  export type PageContextProxyClient = PageContextBuiltInClient<Page> & PageContextProxyCommon & (PageContextProxyClientHydration | PageContextProxyClientNav);
30
31
  export type PageContextProxy = PageContextProxyServer | PageContextProxyClient;
32
+ export type PageContextProxyRestorationVisit = PageContextBuiltInClient<Page> & {
33
+ bodyEl: Element;
34
+ headEl: HTMLHeadElement;
35
+ } & PageContextProxyCommon;
31
36
  export interface DocumentProps {
32
37
  title?: string;
33
38
  description?: string;
39
+ viewport?: {
40
+ [key: string]: string;
41
+ };
34
42
  }
43
+ export type NoProxyConfig<LayoutProps> = ConfigConstructor<typeof InternalNoProxyConfig, {
44
+ Layout: Layout<LayoutProps>;
45
+ layoutProps: LayoutProps;
46
+ documentProps: DocumentProps;
47
+ scripts: string[];
48
+ isLoggedIn: boolean;
49
+ }>;
35
50
  type PageProps = Record<string, unknown>;
36
51
  type Page = React.ComponentType<PageProps>;
37
52
  interface PageContextNoProxyCommon<LayoutProps = Record<string, unknown>> {
38
53
  pageProps: PageProps;
39
54
  redirectTo?: string;
40
55
  documentProps?: DocumentProps;
41
- config: {
42
- Layout: Layout<LayoutProps>;
43
- layoutProps?: LayoutProps;
44
- documentProps?: DocumentProps;
45
- };
56
+ config: NoProxyConfig<LayoutProps>;
46
57
  }
47
58
  export type PageContextNoProxyServer = PageContextBuiltIn<Page> & PageContextNoProxyCommon;
48
59
  export type PageContextNoProxyClient = PageContextBuiltInClient<Page> & PageContextNoProxyCommon;
49
60
  export type PageContextNoProxy = PageContextNoProxyServer | PageContextNoProxyClient;
50
- export type PageContext = PageContextNoProxy | PageContextProxy;
61
+ export type PageContext = PageContextNoProxy | PageContextProxy | PageContextProxyRestorationVisit;
51
62
  export {};
52
63
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../types/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,yCAAyC,IAAI,wBAAwB,EACtE,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;AACtF,MAAM,MAAM,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAEzE,KAAK,sBAAsB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAEnE,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE;QACN,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;KACnC,CAAC;CACH,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAC3D,sBAAsB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAC5C,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,IAAI,CAAC,GACjE,sBAAsB,GACtB,CAAC,+BAA+B,GAAG,yBAAyB,CAAC,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAK/E,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACzC,KAAK,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAE3C,UAAU,wBAAwB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAC7D,wBAAwB,CAAC;AAC3B,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,IAAI,CAAC,GACnE,wBAAwB,CAAC;AAE3B,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../types/internal.ts"],"names":[],"mappings":"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"}
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.10",
4
+ "version": "0.0.12",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
@@ -49,6 +49,10 @@
49
49
  "types": "./dist/proxy/pages/restorationVisit/route.d.ts",
50
50
  "default": "./dist/proxy/pages/restorationVisit/route.js"
51
51
  },
52
+ "./proxy/pages/restorationVisit/onRenderClient": {
53
+ "types": "./dist/proxy/pages/restorationVisit/onRenderClient.d.ts",
54
+ "default": "./dist/proxy/pages/restorationVisit/onRenderClient.js"
55
+ },
52
56
  ".": {
53
57
  "types": "./dist/index.d.ts",
54
58
  "default": "./dist/index.js"
@@ -66,23 +70,27 @@
66
70
  "scripts": {
67
71
  "dev": "vite",
68
72
  "release": "release-me patch",
69
- "build": "rm -rf dist/ && yarn tsc"
73
+ "build": "rm -rf dist/ && yarn tsc",
74
+ "tsc": "tsc"
70
75
  },
71
76
  "files": [
72
77
  "dist/"
73
78
  ],
74
79
  "dependencies": {
75
80
  "cross-env": "^7.0.3",
81
+ "jsdom": "^22.1.0",
76
82
  "react": "^18.x.x",
77
83
  "react-dom": "^18.x.x",
84
+ "tough-cookie": "^4.1.2",
78
85
  "uuid": "^9.0.0",
79
- "vite-plugin-ssr": "0.4.130"
86
+ "vite-plugin-ssr": "0.4.131-commit-35ca471f7"
80
87
  },
81
88
  "peerDependencies": {
82
89
  "react": "^18.x.x",
83
90
  "react-dom": "^18.x.x",
84
- "vite-plugin-ssr": "0.4.130",
85
- "typescript": ">=4.7"
91
+ "typescript": ">=4.7",
92
+ "jsdom": "^22.1.0",
93
+ "vite-plugin-ssr": "0.4.131-commit-35ca471f7"
86
94
  },
87
95
  "devDependencies": {
88
96
  "@types/node": "^18.11.9",
@@ -1,28 +0,0 @@
1
- export interface TurbolinksTiming {
2
- requestEnd: number;
3
- requestStart: number;
4
- visitEnd: number;
5
- visitStart: number;
6
- }
7
- export type TurbolinksEvents = {
8
- "turbolinks:click": {
9
- url: string;
10
- };
11
- "turbolinks:before-visit": {
12
- url: string;
13
- };
14
- "turbolinks:visit": {
15
- url: string;
16
- };
17
- "turbolinks:before-cache": {};
18
- "turbolinks:before-render": {
19
- newBody: string;
20
- };
21
- "turbolinks:render": {};
22
- "turbolinks:load": {
23
- url: string;
24
- timing?: TurbolinksTiming;
25
- };
26
- };
27
- export declare function dispatchTurbolinks<E extends keyof TurbolinksEvents>(name: E, data: TurbolinksEvents[E], target?: EventTarget): void;
28
- //# sourceMappingURL=dispatchTurbolinks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dispatchTurbolinks.d.ts","sourceRoot":"","sources":["../../lib/dispatchTurbolinks.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,kBAAkB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,yBAAyB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,kBAAkB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,yBAAyB,EAAE,EAAE,CAAC;IAC9B,0BAA0B,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC;IAC/C,mBAAmB,EAAE,EAAE,CAAC;IACxB,iBAAiB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAC/D,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EACjE,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,MAAM,GAAE,WAAsB,QAK/B"}
@@ -1,5 +0,0 @@
1
- export function dispatchTurbolinks(name, data, target = document) {
2
- const event = new Event(name, { bubbles: true, cancelable: true });
3
- event.data = data;
4
- target.dispatchEvent(event);
5
- }
@@ -1,3 +0,0 @@
1
- export declare function createScriptElement(element: Element, cb?: () => void): Element;
2
- export declare function activateNewBodyScriptElements(newScriptElements: HTMLScriptElement[]): void;
3
- //# sourceMappingURL=domUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domUtils.d.ts","sourceRoot":"","sources":["../../lib/domUtils.ts"],"names":[],"mappings":"AASA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,WAepE;AAQD,wBAAgB,6BAA6B,CAC3C,iBAAiB,EAAE,iBAAiB,EAAE,QAMvC"}
@@ -1,34 +0,0 @@
1
- function copyElementAttributes(destinationElement, sourceElement) {
2
- for (const { name, value } of Array.from(sourceElement.attributes)) {
3
- destinationElement.setAttribute(name, value);
4
- }
5
- }
6
- export function createScriptElement(element, cb) {
7
- if (element.getAttribute("data-turbolinks-eval") == "false") {
8
- return element;
9
- }
10
- else {
11
- const createdScriptElement = document.createElement("script");
12
- createdScriptElement.textContent = element.textContent;
13
- // async false makes scripts run in-order. it wont block js execution (thankfully)
14
- // https://github.com/turbolinks/turbolinks/issues/282#issuecomment-355731712
15
- createdScriptElement.async = false;
16
- copyElementAttributes(createdScriptElement, element);
17
- if (cb) {
18
- createdScriptElement.addEventListener("load", cb);
19
- }
20
- return createdScriptElement;
21
- }
22
- }
23
- function replaceElementWithElement(fromElement, toElement) {
24
- const parentElement = fromElement.parentElement;
25
- if (parentElement) {
26
- return parentElement.replaceChild(toElement, fromElement);
27
- }
28
- }
29
- export function activateNewBodyScriptElements(newScriptElements) {
30
- for (const inertScriptElement of newScriptElements) {
31
- const activatedScriptElement = createScriptElement(inertScriptElement);
32
- replaceElementWithElement(inertScriptElement, activatedScriptElement);
33
- }
34
- }
@@ -1,5 +0,0 @@
1
- export declare function getGlobalObject<T extends Record<string, unknown> = never>(key: `${string}.ts`, defaultValue: T): T;
2
- declare global {
3
- var __vite_plugin_ssr: undefined | Record<string, Record<string, unknown>>;
4
- }
5
- //# sourceMappingURL=getGlobalObject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getGlobalObject.d.ts","sourceRoot":"","sources":["../../lib/getGlobalObject.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,EAEvE,GAAG,EAAE,GAAG,MAAM,KAAK,EACnB,YAAY,EAAE,CAAC,GACd,CAAC,CAIH;AACD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,iBAAiB,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC3E"}
@@ -1,7 +0,0 @@
1
- export function getGlobalObject(
2
- // We use the filename as key; each `getGlobalObject()` call should live in a unique filename.
3
- key, defaultValue) {
4
- const allGlobalObjects = (globalThis.__vite_plugin_ssr = globalThis.__vite_plugin_ssr || {});
5
- const globalObject = (allGlobalObjects[key] = allGlobalObjects[key] || defaultValue);
6
- return globalObject;
7
- }
@@ -1,2 +0,0 @@
1
- export declare function turbolinksClickListener(event: MouseEvent): void;
2
- //# sourceMappingURL=linkInterceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkInterceptor.d.ts","sourceRoot":"","sources":["../../lib/linkInterceptor.ts"],"names":[],"mappings":"AA2EA,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,QAgBxD"}
@@ -1,74 +0,0 @@
1
- import { dispatchTurbolinks } from "./dispatchTurbolinks.js";
2
- import { Turbolinks } from "./turbolinks.js";
3
- function isAction(action) {
4
- return action == "advance" || action == "replace" || action == "restore";
5
- }
6
- // TODO: polyfilled closest may not be required. check caniuse?
7
- const closest = (() => {
8
- const html = typeof window !== 'undefined' && document.documentElement;
9
- const match = html.matches ||
10
- html.webkitMatchesSelector ||
11
- html.msMatchesSelector ||
12
- html.mozMatchesSelector;
13
- const closest = (html && html.closest) ||
14
- function (selector) {
15
- let element = this;
16
- while (element) {
17
- if (match.call(element, selector)) {
18
- return element;
19
- }
20
- else {
21
- element = element.parentElement;
22
- }
23
- }
24
- };
25
- return function (element, selector) {
26
- return closest.call(element, selector);
27
- };
28
- })();
29
- function elementIsVisitable(element) {
30
- const container = closest(element, "[data-turbolinks]");
31
- if (container) {
32
- return container.getAttribute("data-turbolinks") != "false";
33
- }
34
- else {
35
- return true;
36
- }
37
- }
38
- function getVisitableLinkForTarget(target) {
39
- if (target instanceof Element && elementIsVisitable(target)) {
40
- return closest(target, "a[href]:not([target]):not([download])");
41
- }
42
- return null;
43
- }
44
- // stolen from turbolinks controller.ts
45
- function clickEventIsSignificant(event) {
46
- return !((event.target && event.target.isContentEditable) ||
47
- event.defaultPrevented ||
48
- event.which > 1 ||
49
- event.altKey ||
50
- event.ctrlKey ||
51
- event.metaKey ||
52
- event.shiftKey);
53
- }
54
- function getActionForLink(link) {
55
- const action = link.getAttribute("data-turbolinks-action");
56
- return isAction(action) ? action : "advance";
57
- }
58
- export function turbolinksClickListener(event) {
59
- if (clickEventIsSignificant(event)) {
60
- const link = getVisitableLinkForTarget(event.target);
61
- if (link) {
62
- const location = link.getAttribute("href") || "";
63
- if (location) {
64
- const action = getActionForLink(link);
65
- event.preventDefault();
66
- // TODO: technically canceling these events should do various things, but afaict we never do that in alignableweb
67
- dispatchTurbolinks("turbolinks:click", { url: location }, link);
68
- dispatchTurbolinks("turbolinks:before-visit", { url: location });
69
- dispatchTurbolinks("turbolinks:visit", { url: location });
70
- Turbolinks.visit(location, { action });
71
- }
72
- }
73
- }
74
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"lruCache.d.ts","sourceRoot":"","sources":["../../lib/lruCache.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,UAAU,CAAC;gBAEP,UAAU,EAAE,MAAM;IAIvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAa/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;CAUjC"}
@@ -1,2 +0,0 @@
1
- export declare function mergeHead(head: string): void;
2
- //# sourceMappingURL=mergeHead.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mergeHead.d.ts","sourceRoot":"","sources":["../../lib/mergeHead.ts"],"names":[],"mappings":"AAUA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,QAuBrC"}
@@ -1,3 +0,0 @@
1
- import { navigate } from "vite-plugin-ssr/client/router";
2
- export declare function navigateAnywhere(to?: string, opts?: Parameters<typeof navigate>[1]): boolean;
3
- //# sourceMappingURL=navigateAnywhere.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigateAnywhere.d.ts","sourceRoot":"","sources":["../../lib/navigateAnywhere.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAIzD,wBAAgB,gBAAgB,CAC9B,EAAE,CAAC,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAWtC"}
@@ -1,15 +0,0 @@
1
- import { navigate } from "vite-plugin-ssr/client/router";
2
- // handle internal and external navigation
3
- // returns whether or not we redirected
4
- export function navigateAnywhere(to, opts) {
5
- if (to) {
6
- const url = new URL(to, window.location.href);
7
- if (url.host !== window.location.host) {
8
- window.location.href = to;
9
- }
10
- else {
11
- navigate(url.pathname + url.hash + url.search, opts);
12
- }
13
- }
14
- return !!to;
15
- }
@@ -1,9 +0,0 @@
1
- import { PageContextProxyClient } from "../types/internal.js";
2
- type Snapshot = Pick<Extract<PageContextProxyClient, {
3
- isHydration: false;
4
- }>, "proxySendClient" | "layout" | "layoutProps">;
5
- export declare function writeRestorationIdentifier(pageContext: PageContextProxyClient): void;
6
- export declare function cacheProxiedBody(): void;
7
- export declare function getSnapshot(): Snapshot | undefined;
8
- export {};
9
- //# sourceMappingURL=snapshots.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../lib/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAS,MAAM,sBAAsB,CAAC;AAKrE,KAAK,QAAQ,GAAG,IAAI,CAClB,OAAO,CAAC,sBAAsB,EAAE;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAAC,EACvD,iBAAiB,GAAG,QAAQ,GAAG,aAAa,CAC7C,CAAC;AAMF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,sBAAsB,QAkBpC;AASD,wBAAgB,gBAAgB,SAiB/B;AAGD,wBAAgB,WAAW,IAAI,QAAQ,GAAG,SAAS,CAGlD"}