@alignable/bifrost 0.1.2 → 1.0.1
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/chunk-4W4KH2A5.js +50 -0
- package/dist/chunk-4W4KH2A5.js.map +1 -0
- package/dist/{chunk-X3MUHPJ3.js → chunk-NS2C4D24.js} +59 -177
- package/dist/chunk-NS2C4D24.js.map +1 -0
- package/dist/controller-af32e731.d.ts +9 -0
- package/dist/index.d.ts +1 -15
- package/dist/index.js +1 -13
- package/dist/index.js.map +1 -1
- package/dist/renderer/+config.js +2 -46
- package/dist/renderer/Head.d.ts +5 -0
- package/dist/renderer/Head.js +25 -0
- package/dist/renderer/Head.js.map +1 -0
- package/dist/renderer/bifrost/onAfterRenderClient.d.ts +5 -0
- package/dist/renderer/bifrost/onAfterRenderClient.js +14 -0
- package/dist/renderer/bifrost/onAfterRenderClient.js.map +1 -0
- package/dist/renderer/bifrost/onBeforeRenderClient.d.ts +5 -0
- package/dist/renderer/bifrost/onBeforeRenderClient.js +15 -0
- package/dist/renderer/bifrost/onBeforeRenderClient.js.map +1 -0
- package/dist/renderer/config.d.ts +51 -70
- package/dist/renderer/config.js.map +1 -1
- package/dist/renderer/headHtmlEnd.d.ts +7 -0
- package/dist/renderer/headHtmlEnd.js +8 -0
- package/dist/renderer/headHtmlEnd.js.map +1 -0
- package/dist/renderer/onBeforeRoute.d.ts +3 -6
- package/dist/renderer/onBeforeRoute.js +9 -3
- package/dist/renderer/onBeforeRoute.js.map +1 -1
- package/dist/renderer/wrapped/Page.d.ts +9 -0
- package/dist/renderer/wrapped/Page.js +25 -0
- package/dist/renderer/wrapped/Page.js.map +1 -0
- package/dist/renderer/wrapped/onAfterRenderClient.d.ts +7 -0
- package/dist/renderer/wrapped/onAfterRenderClient.js +30 -0
- package/dist/renderer/wrapped/onAfterRenderClient.js.map +1 -0
- package/dist/renderer/wrapped/onBeforeRender.client.d.ts +7 -0
- package/dist/renderer/wrapped/onBeforeRender.client.js +40 -0
- package/dist/renderer/wrapped/onBeforeRender.client.js.map +1 -0
- package/dist/renderer/wrapped/onBeforeRenderClient.d.ts +7 -0
- package/dist/renderer/wrapped/onBeforeRenderClient.js +172 -0
- package/dist/renderer/wrapped/onBeforeRenderClient.js.map +1 -0
- package/dist/renderer/wrapped/onBeforeRenderHtml.d.ts +5 -0
- package/dist/renderer/wrapped/onBeforeRenderHtml.js +14 -0
- package/dist/renderer/wrapped/onBeforeRenderHtml.js.map +1 -0
- package/dist/type-82702ff4.d.ts +27 -0
- package/package.json +14 -24
- package/dist/chunk-2DSY3VFP.js +0 -118
- package/dist/chunk-2DSY3VFP.js.map +0 -1
- package/dist/chunk-5SP2QGEH.js +0 -76
- package/dist/chunk-5SP2QGEH.js.map +0 -1
- package/dist/chunk-ABLEI4J7.js +0 -30
- package/dist/chunk-ABLEI4J7.js.map +0 -1
- package/dist/chunk-EYYCKU6F.js +0 -11
- package/dist/chunk-EYYCKU6F.js.map +0 -1
- package/dist/chunk-IYGONC4I.js +0 -31
- package/dist/chunk-IYGONC4I.js.map +0 -1
- package/dist/chunk-JHLK62FM.js +0 -20
- package/dist/chunk-JHLK62FM.js.map +0 -1
- package/dist/chunk-K4H777XA.js +0 -9
- package/dist/chunk-K4H777XA.js.map +0 -1
- package/dist/chunk-OXCN6F2S.js +0 -10
- package/dist/chunk-OXCN6F2S.js.map +0 -1
- package/dist/chunk-PESUYCE4.js +0 -33
- package/dist/chunk-PESUYCE4.js.map +0 -1
- package/dist/chunk-RQ34EW7E.js +0 -13
- package/dist/chunk-RQ34EW7E.js.map +0 -1
- package/dist/chunk-RSVASTEA.js +0 -63
- package/dist/chunk-RSVASTEA.js.map +0 -1
- package/dist/chunk-VYXAWOXV.js +0 -22
- package/dist/chunk-VYXAWOXV.js.map +0 -1
- package/dist/chunk-X2R7ODLQ.js +0 -14
- package/dist/chunk-X2R7ODLQ.js.map +0 -1
- package/dist/chunk-X3MUHPJ3.js.map +0 -1
- package/dist/chunk-XMNZZA6S.js +0 -75
- package/dist/chunk-XMNZZA6S.js.map +0 -1
- package/dist/internal-837e7a40.d.ts +0 -128
- package/dist/renderer/_error/Page.d.ts +0 -8
- package/dist/renderer/_error/Page.js +0 -14
- package/dist/renderer/_error/Page.js.map +0 -1
- package/dist/renderer/bifrost/onRenderClient.d.ts +0 -9
- package/dist/renderer/bifrost/onRenderClient.js +0 -15
- package/dist/renderer/bifrost/onRenderClient.js.map +0 -1
- package/dist/renderer/bifrost/onRenderHtml.d.ts +0 -20
- package/dist/renderer/bifrost/onRenderHtml.js +0 -13
- package/dist/renderer/bifrost/onRenderHtml.js.map +0 -1
- package/dist/renderer/configs/bifrost.d.ts +0 -50
- package/dist/renderer/configs/bifrost.js +0 -7
- package/dist/renderer/configs/bifrost.js.map +0 -1
- package/dist/renderer/configs/wrapped.d.ts +0 -25
- package/dist/renderer/configs/wrapped.js +0 -7
- package/dist/renderer/configs/wrapped.js.map +0 -1
- package/dist/renderer/onRenderClient.d.ts +0 -9
- package/dist/renderer/onRenderClient.js +0 -35
- package/dist/renderer/onRenderClient.js.map +0 -1
- package/dist/renderer/onRenderHtml.d.ts +0 -37
- package/dist/renderer/onRenderHtml.js +0 -32
- package/dist/renderer/onRenderHtml.js.map +0 -1
- package/dist/renderer/useNavigation.d.ts +0 -13
- package/dist/renderer/useNavigation.js +0 -12
- package/dist/renderer/useNavigation.js.map +0 -1
- package/dist/renderer/usePageContext.d.ts +0 -14
- package/dist/renderer/usePageContext.js +0 -10
- package/dist/renderer/usePageContext.js.map +0 -1
- package/dist/renderer/utils/PassthruLayout.d.ts +0 -5
- package/dist/renderer/utils/PassthruLayout.js +0 -7
- package/dist/renderer/utils/PassthruLayout.js.map +0 -1
- package/dist/renderer/utils/buildHead.d.ts +0 -9
- package/dist/renderer/utils/buildHead.js +0 -7
- package/dist/renderer/utils/buildHead.js.map +0 -1
- package/dist/renderer/utils/getConfigOrPageContext.d.ts +0 -13
- package/dist/renderer/utils/getConfigOrPageContext.js +0 -7
- package/dist/renderer/utils/getConfigOrPageContext.js.map +0 -1
- package/dist/renderer/utils/getGlobalObject.d.ts +0 -6
- package/dist/renderer/utils/getGlobalObject.js +0 -7
- package/dist/renderer/utils/getGlobalObject.js.map +0 -1
- package/dist/renderer/wrapped/onRenderClient.d.ts +0 -9
- package/dist/renderer/wrapped/onRenderClient.js +0 -13
- package/dist/renderer/wrapped/onRenderClient.js.map +0 -1
- package/dist/renderer/wrapped/onRenderHtml.d.ts +0 -27
- package/dist/renderer/wrapped/onRenderHtml.js +0 -12
- package/dist/renderer/wrapped/onRenderHtml.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../lib/turbolinks/mergeHead.ts","../../../renderer/wrapped/onBeforeRenderClient.ts"],"sourcesContent":["import { createScriptElement } from \"./util\";\n\ninterface ElementDetails {\n tracked: boolean;\n}\nconst allHeadScriptsEverRun: { [outerHTML: string]: ElementDetails } = {};\nlet firstLoad = true;\nlet lastTrackedScriptSignature: string;\n\n// Returns function which resolves when all new blocking head scripts have loaded\nexport function mergeHead(head: HTMLHeadElement) {\n const newHead = categorizeHead(head);\n const oldHead = categorizeHead(document.head);\n const reload = () => window.Turbolinks.controller.viewInvalidated();\n\n if (\n head\n .querySelector('meta[name=\"turbolinks-visit-control\"]')\n ?.getAttribute(\"content\") === \"reload\"\n ) {\n reload();\n }\n\n lastTrackedScriptSignature =\n lastTrackedScriptSignature ||\n trackedElementSignature([...oldHead.scripts, ...oldHead.stylesheets]);\n if (\n lastTrackedScriptSignature !==\n trackedElementSignature([...newHead.scripts, ...newHead.stylesheets])\n ) {\n reload();\n }\n\n if (firstLoad) {\n // TODO: messy code\n for (const element of oldHead.scripts) {\n allHeadScriptsEverRun[element.outerHTML] = {\n tracked: elementIsTracked(element),\n };\n }\n firstLoad = false;\n }\n\n copyNewHeadStylesheetElements(newHead.stylesheets, oldHead.stylesheets);\n removeCurrentHeadProvisionalElements(oldHead.provisional);\n copyNewHeadProvisionalElements(newHead.provisional);\n\n return copyNewHeadScriptElements(newHead.scripts);\n}\n\nfunction trackedElementSignature(scripts: Element[]) {\n return scripts\n .filter(elementIsTracked)\n .map((s) => s.outerHTML)\n .join();\n}\n\nfunction copyNewHeadStylesheetElements(next: Element[], prev: Element[]) {\n const existing = prev.map((s) => s.outerHTML);\n for (const element of next) {\n if (!existing.includes(element.outerHTML)) {\n document.head.appendChild(element);\n }\n }\n}\n\nfunction copyNewHeadScriptElements(next: Element[]): () => Promise<void> {\n const deferredScripts: Element[] = [];\n let blockingLoaded: boolean[] = [];\n const scriptsLoadedPromise = new Promise<void>((onScriptsLoaded) => {\n for (const element of next as HTMLScriptElement[]) {\n const runBefore = element.outerHTML in allHeadScriptsEverRun;\n if (!runBefore) {\n let cb;\n if (!element.defer && element.src) {\n const idx = blockingLoaded.length;\n cb = () => {\n blockingLoaded[idx] = true;\n if (blockingLoaded.every((v) => v)) {\n onScriptsLoaded();\n }\n };\n blockingLoaded.push(false);\n }\n const newElement = createScriptElement(element, cb);\n if (element.defer) {\n deferredScripts.push(newElement);\n } else {\n document.head.appendChild(newElement);\n }\n allHeadScriptsEverRun[element.outerHTML] = {\n tracked: elementIsTracked(element),\n };\n }\n }\n if (blockingLoaded.length === 0) {\n // raf waits for react to finish\n onScriptsLoaded();\n }\n });\n return () => {\n deferredScripts.forEach((s) => document.head.appendChild(s));\n return scriptsLoadedPromise;\n };\n}\n\nfunction removeCurrentHeadProvisionalElements(prev: Element[]) {\n for (const element of prev) {\n document.head.removeChild(element);\n }\n}\n\nfunction copyNewHeadProvisionalElements(next: Element[]) {\n for (const element of next) {\n document.head.appendChild(element);\n }\n}\n\nfunction elementIsTracked(element: Element) {\n return element.getAttribute(\"data-turbolinks-track\") == \"reload\";\n}\n\nfunction elementIsScript(element: Element) {\n const tagName = element.tagName.toLowerCase();\n return tagName == \"script\";\n}\n\nfunction elementIsStylesheet(element: Element) {\n const tagName = element.tagName.toLowerCase();\n return (\n tagName == \"style\" ||\n (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\")\n );\n}\n\nfunction elementIsFavicon(element: Element) {\n const tagName = element.tagName.toLowerCase();\n\n return tagName == \"link\" && element.getAttribute(\"rel\") == \"icon\";\n}\n\nfunction categorizeHead(head: ParentNode) {\n const scripts = [];\n const stylesheets = [];\n const provisional = [];\n for (const element of head.children) {\n // we want to keep the same favicon on page transitions\n if (elementIsFavicon(element)) {\n continue;\n }\n\n if (elementIsScript(element)) {\n scripts.push(element);\n } else if (elementIsStylesheet(element)) {\n stylesheets.push(element);\n } else {\n provisional.push(element);\n }\n }\n return { scripts, stylesheets, provisional };\n}\n","import \"../../lib/type\";\nimport type { PageContextClient } from \"vike/types\";\nimport { Turbolinks } from \"../../lib/turbolinks\";\nimport { copyElementAttributes } from \"../../lib/turbolinks/util\";\nimport { mergeHead } from \"../../lib/turbolinks/mergeHead\";\n\nTurbolinks.start();\n\nexport default async function wrappedOnBeforeRenderClient(\n pageContext: PageContextClient\n) {\n if (pageContext.isHydration) {\n pageContext._turbolinksProxy = {\n body: document.getElementById(\"proxied-body\")!,\n };\n return;\n }\n\n if (pageContext?._snapshot) {\n if (pageContext.isHydration) {\n throw new Error(\n \"restoration visit should never happen on initial render\"\n );\n }\n const { proxyLayoutInfo } = pageContext._snapshot.pageContext;\n const { bodyEl, headEl } = pageContext._snapshot;\n const proxyBodyEl = bodyEl.querySelector(\"#proxied-body\")!;\n if (!proxyBodyEl || !(proxyBodyEl instanceof HTMLElement)) {\n throw new Error(\"proxied body not found in cached snapshot\");\n }\n pageContext.proxyLayoutInfo = proxyLayoutInfo;\n pageContext._turbolinksProxy = {\n body: proxyBodyEl,\n };\n\n await Turbolinks._vikeBeforeRender(() => {\n pageContext._waitForHeadScripts = mergeHead(headEl);\n });\n copyBody(bodyEl);\n } else {\n const { head, body } = pageContext._turbolinksProxy!;\n\n await Turbolinks._vikeBeforeRender(() => {\n pageContext._waitForHeadScripts = mergeHead(head!);\n });\n copyBody(body);\n }\n}\n\n// Copy over body attributes because vike-react only handles body on initial render\nfunction copyBody(bodyEl: HTMLElement) {\n document.body\n .getAttributeNames()\n .forEach((n) => document.body.removeAttribute(n));\n copyElementAttributes(document.body, bodyEl);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// renderer/wrapped/onBeforeRenderHtml.ts
|
|
2
|
+
import { useConfig } from "vike-react/useConfig";
|
|
3
|
+
function wrappedOnBeforeRenderHtml(pageContext) {
|
|
4
|
+
if (pageContext._wrappedServerOnly) {
|
|
5
|
+
const { bodyAttributes, proxyLayoutInfo } = pageContext._wrappedServerOnly;
|
|
6
|
+
const config = useConfig();
|
|
7
|
+
config({ bodyAttributes });
|
|
8
|
+
pageContext.proxyLayoutInfo = proxyLayoutInfo;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
wrappedOnBeforeRenderHtml as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=onBeforeRenderHtml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../renderer/wrapped/onBeforeRenderHtml.ts"],"sourcesContent":["import { PageContextServer } from \"vike/types\";\nimport { useConfig } from \"vike-react/useConfig\";\n\nexport default function wrappedOnBeforeRenderHtml(\n pageContext: PageContextServer\n) {\n if (pageContext._wrappedServerOnly) {\n const { bodyAttributes, proxyLayoutInfo } = pageContext._wrappedServerOnly;\n const config = useConfig();\n\n config({ bodyAttributes });\n\n // Move layout/layoutProps to top-level pageContext so Vike can pass them to client\n pageContext.proxyLayoutInfo = proxyLayoutInfo;\n }\n}\n"],"mappings":";AACA,SAAS,iBAAiB;AAEX,SAAR,0BACL,aACA;AACA,MAAI,YAAY,oBAAoB;AAClC,UAAM,EAAE,gBAAgB,gBAAgB,IAAI,YAAY;AACxD,UAAM,SAAS,UAAU;AAEzB,WAAO,EAAE,eAAe,CAAC;AAGzB,gBAAY,kBAAkB;AAAA,EAChC;AACF;","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { S as Snapshot } from './controller-af32e731.js';
|
|
2
|
+
|
|
3
|
+
interface WrappedServerOnly {
|
|
4
|
+
bodyAttributes: Record<string, string>;
|
|
5
|
+
bodyInnerHtml: string;
|
|
6
|
+
headInnerHtml: string;
|
|
7
|
+
proxyLayoutInfo: Vike.ProxyLayoutInfo;
|
|
8
|
+
}
|
|
9
|
+
declare global {
|
|
10
|
+
namespace Vike {
|
|
11
|
+
interface PageContext {
|
|
12
|
+
_turbolinksProxy?: {
|
|
13
|
+
body: HTMLElement;
|
|
14
|
+
head?: HTMLHeadElement;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface PageContextServer {
|
|
18
|
+
_wrappedServerOnly?: WrappedServerOnly;
|
|
19
|
+
}
|
|
20
|
+
interface PageContextClient {
|
|
21
|
+
_snapshot?: Snapshot;
|
|
22
|
+
_waitForHeadScripts?: () => Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { WrappedServerOnly as W };
|
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.1
|
|
4
|
+
"version": "1.0.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -9,17 +9,9 @@
|
|
|
9
9
|
"types": "./dist/renderer/config.d.ts",
|
|
10
10
|
"default": "./dist/renderer/+config.js"
|
|
11
11
|
},
|
|
12
|
-
"./renderer
|
|
13
|
-
"types": "./dist/renderer
|
|
14
|
-
"default": "./dist/renderer
|
|
15
|
-
},
|
|
16
|
-
"./renderer/onRenderHtml": {
|
|
17
|
-
"types": "./dist/renderer/onRenderHtml.d.ts",
|
|
18
|
-
"default": "./dist/renderer/onRenderHtml.js"
|
|
19
|
-
},
|
|
20
|
-
"./renderer/onBeforeRoute": {
|
|
21
|
-
"types": "./dist/renderer/onBeforeRoute.d.ts",
|
|
22
|
-
"default": "./dist/renderer/onBeforeRoute.js"
|
|
12
|
+
"./__internal/renderer/*": {
|
|
13
|
+
"types": "./dist/renderer/*.d.ts",
|
|
14
|
+
"default": "./dist/renderer/*.js"
|
|
23
15
|
},
|
|
24
16
|
".": {
|
|
25
17
|
"types": "./dist/index.d.ts",
|
|
@@ -47,30 +39,28 @@
|
|
|
47
39
|
"dist/"
|
|
48
40
|
],
|
|
49
41
|
"dependencies": {
|
|
50
|
-
"cross-env": "^7.0.3",
|
|
51
|
-
"jsdom": "^22.1.0",
|
|
52
42
|
"tough-cookie": "^4.1.2",
|
|
53
|
-
"uuid": "^9.0.0"
|
|
54
|
-
"vike": "0.4.244"
|
|
43
|
+
"uuid": "^9.0.0"
|
|
55
44
|
},
|
|
56
45
|
"peerDependencies": {
|
|
57
|
-
"jsdom": "^22.1.0",
|
|
58
46
|
"react": ">=18",
|
|
59
|
-
"react-dom": ">=18",
|
|
60
47
|
"typescript": ">=4.7",
|
|
61
|
-
"vike": "0.4.
|
|
48
|
+
"vike": ">=0.4.247",
|
|
49
|
+
"vike-react": ">=0.6.11"
|
|
62
50
|
},
|
|
63
51
|
"devDependencies": {
|
|
64
52
|
"@types/jsdom": "^21.1.2",
|
|
65
53
|
"@types/node": "^18.11.9",
|
|
66
|
-
"@types/react": "^
|
|
67
|
-
"@types/react-dom": "^
|
|
54
|
+
"@types/react": "^19.2.0",
|
|
55
|
+
"@types/react-dom": "^19.0.0",
|
|
68
56
|
"@vitejs/plugin-react": "^4.7.0",
|
|
57
|
+
"react": "^19.2.0",
|
|
69
58
|
"tsup": "^7.1.0",
|
|
70
59
|
"turbolinks": "5.3.0-beta.1",
|
|
71
60
|
"typescript": "^5.0.4",
|
|
72
|
-
"react": "
|
|
73
|
-
"
|
|
74
|
-
"
|
|
61
|
+
"vike-react": "0.6.11",
|
|
62
|
+
"vite": "^6.3.5",
|
|
63
|
+
"vike": "0.4.247",
|
|
64
|
+
"cross-env": "^7.0.3"
|
|
75
65
|
}
|
|
76
66
|
}
|
package/dist/chunk-2DSY3VFP.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Turbolinks,
|
|
3
|
-
copyElementAttributes,
|
|
4
|
-
renderReact
|
|
5
|
-
} from "./chunk-X3MUHPJ3.js";
|
|
6
|
-
import {
|
|
7
|
-
getElementAttributes
|
|
8
|
-
} from "./chunk-RQ34EW7E.js";
|
|
9
|
-
import {
|
|
10
|
-
PageShell
|
|
11
|
-
} from "./chunk-JHLK62FM.js";
|
|
12
|
-
|
|
13
|
-
// renderer/wrapped/onRenderClient.tsx
|
|
14
|
-
import React from "react";
|
|
15
|
-
var PassThruLayout = ({
|
|
16
|
-
children
|
|
17
|
-
}) => /* @__PURE__ */ React.createElement(React.Fragment, null, children);
|
|
18
|
-
async function wrappedOnRenderClient(pageContext) {
|
|
19
|
-
if ("snapshot" in pageContext) {
|
|
20
|
-
return onRenderClientRestorationVisit(pageContext);
|
|
21
|
-
} else if (pageContext.isHydration) {
|
|
22
|
-
return onRenderClientHydration(pageContext);
|
|
23
|
-
} else {
|
|
24
|
-
return onRenderClientNavigation(pageContext);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
async function onRenderClientHydration(pageContext) {
|
|
28
|
-
const { layoutProps, layout } = pageContext;
|
|
29
|
-
await pageContext.config.onClientInit?.();
|
|
30
|
-
const bodyEl = document.getElementById("proxied-body");
|
|
31
|
-
render({
|
|
32
|
-
html: bodyEl.innerHTML,
|
|
33
|
-
layout,
|
|
34
|
-
layoutProps,
|
|
35
|
-
bodyEl,
|
|
36
|
-
pageContext
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
async function onRenderClientNavigation(pageContext) {
|
|
40
|
-
const resp = await fetch(pageContext.urlOriginal, {
|
|
41
|
-
headers: { ...pageContext.config.proxyHeaders, accept: "text/html" }
|
|
42
|
-
});
|
|
43
|
-
if (resp.redirected) {
|
|
44
|
-
Turbolinks.visit(resp.url);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (!resp.ok) {
|
|
48
|
-
window.location.href = resp.url;
|
|
49
|
-
}
|
|
50
|
-
const html = await resp.text();
|
|
51
|
-
const { layout, layoutProps } = pageContext.config.getLayout(
|
|
52
|
-
Object.fromEntries(resp.headers.entries())
|
|
53
|
-
);
|
|
54
|
-
const parsed = document.createElement("html");
|
|
55
|
-
parsed.innerHTML = html;
|
|
56
|
-
const bodyEl = parsed.querySelector("body");
|
|
57
|
-
const headEl = parsed.querySelector("head");
|
|
58
|
-
Turbolinks._vpsOnRenderClient(headEl, true, true, () => {
|
|
59
|
-
document.body.getAttributeNames().forEach((n) => document.body.removeAttribute(n));
|
|
60
|
-
copyElementAttributes(document.body, bodyEl);
|
|
61
|
-
render({
|
|
62
|
-
html: bodyEl.innerHTML,
|
|
63
|
-
layout,
|
|
64
|
-
layoutProps,
|
|
65
|
-
bodyEl,
|
|
66
|
-
pageContext
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
async function onRenderClientRestorationVisit(pageContext) {
|
|
71
|
-
if (pageContext.isHydration) {
|
|
72
|
-
throw new Error("restoration visit should never happen on initial render");
|
|
73
|
-
}
|
|
74
|
-
const { layoutProps, layout } = pageContext.snapshot.pageContext;
|
|
75
|
-
const { bodyEl, headEl } = pageContext.snapshot;
|
|
76
|
-
const proxyBodyEl = bodyEl.querySelector("#proxied-body");
|
|
77
|
-
if (!proxyBodyEl) {
|
|
78
|
-
throw new Error("proxied body not found in cached snapshot");
|
|
79
|
-
}
|
|
80
|
-
Turbolinks._vpsOnRenderClient(headEl, true, true, () => {
|
|
81
|
-
document.body.getAttributeNames().forEach((n) => document.body.removeAttribute(n));
|
|
82
|
-
copyElementAttributes(document.body, bodyEl);
|
|
83
|
-
render({
|
|
84
|
-
html: proxyBodyEl.innerHTML,
|
|
85
|
-
layout,
|
|
86
|
-
layoutProps,
|
|
87
|
-
bodyEl,
|
|
88
|
-
pageContext
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
function render({
|
|
93
|
-
html,
|
|
94
|
-
layout,
|
|
95
|
-
layoutProps,
|
|
96
|
-
bodyEl,
|
|
97
|
-
pageContext
|
|
98
|
-
}) {
|
|
99
|
-
const { layoutMap } = pageContext.config;
|
|
100
|
-
if (!layoutMap) {
|
|
101
|
-
throw new Error("layoutMap needs to be defined in config");
|
|
102
|
-
}
|
|
103
|
-
const Layout = layoutMap[layout] || PassThruLayout;
|
|
104
|
-
renderReact(
|
|
105
|
-
/* @__PURE__ */ React.createElement(PageShell, { key: pageContext.urlOriginal, pageContext }, /* @__PURE__ */ React.createElement(Layout, { ...layoutProps }, /* @__PURE__ */ React.createElement("div", { id: "proxied-body", dangerouslySetInnerHTML: { __html: html } }))),
|
|
106
|
-
pageContext.isHydration
|
|
107
|
-
);
|
|
108
|
-
Turbolinks._vpsCachePageContext({
|
|
109
|
-
layoutProps,
|
|
110
|
-
layout,
|
|
111
|
-
bodyAttrs: getElementAttributes(bodyEl)
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export {
|
|
116
|
-
wrappedOnRenderClient
|
|
117
|
-
};
|
|
118
|
-
//# sourceMappingURL=chunk-2DSY3VFP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/wrapped/onRenderClient.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport {\n AugmentMe,\n PageContextProxyClient,\n PageContextProxyClientHydration,\n PageContextProxyClientNavigation,\n PageContextProxyClientRestorationVisit,\n} from \"../../types/internal\";\nimport { PageShell } from \"../../lib/PageShell\";\nimport { getElementAttributes } from \"../../lib/getElementAttributes\";\nimport { renderReact } from \"../../lib/renderReact\";\nimport { Turbolinks } from \"../../lib/turbolinks\";\nimport { copyElementAttributes } from \"../../lib/turbolinks/util\";\n\nconst PassThruLayout: React.ComponentType<PropsWithChildren> = ({\n children,\n}) => <>{children}</>;\n\n/* \nWe get here in 3 ways:\n1. Hydration from initial SSR\n2. Client navigation\n3. Back button restoration\n\nEach path needs to generate pageContext differently\n*/\n\nexport async function wrappedOnRenderClient(\n pageContext: PageContextProxyClient\n) {\n if (\"snapshot\" in pageContext) {\n return onRenderClientRestorationVisit(pageContext);\n } else if (pageContext.isHydration) {\n return onRenderClientHydration(pageContext);\n } else {\n return onRenderClientNavigation(pageContext);\n }\n}\n\nasync function onRenderClientHydration(\n pageContext: PageContextProxyClientHydration\n) {\n const { layoutProps, layout } = pageContext;\n\n await pageContext.config.onClientInit?.();\n const bodyEl = document.getElementById(\"proxied-body\")!;\n // During hydration of initial ssr, body is in dom, not page props (to avoid double-send)\n render({\n html: bodyEl.innerHTML,\n layout,\n layoutProps,\n bodyEl,\n pageContext,\n });\n}\n\nasync function onRenderClientNavigation(\n pageContext: PageContextProxyClientNavigation\n) {\n const resp = await fetch(pageContext.urlOriginal, {\n headers: { ...pageContext.config.proxyHeaders, accept: \"text/html\" },\n });\n\n if (resp.redirected) {\n /// Redirect /\n Turbolinks.visit(resp.url);\n return;\n }\n if (!resp.ok) {\n window.location.href = resp.url;\n }\n const html = await resp.text();\n const { layout, layoutProps } = pageContext.config.getLayout!(\n Object.fromEntries(resp.headers.entries())\n );\n\n const parsed = document.createElement(\"html\");\n parsed.innerHTML = html;\n const bodyEl = parsed.querySelector(\"body\")!;\n const headEl = parsed.querySelector(\"head\")!;\n\n Turbolinks._vpsOnRenderClient(headEl, true, true, () => {\n // merge body attributes\n document.body\n .getAttributeNames()\n .forEach((n) => document.body.removeAttribute(n));\n copyElementAttributes(document.body, bodyEl);\n // render body with react\n render({\n html: bodyEl.innerHTML,\n layout,\n layoutProps,\n bodyEl,\n pageContext,\n });\n });\n}\n\nasync function onRenderClientRestorationVisit(\n pageContext: PageContextProxyClientRestorationVisit\n) {\n if (pageContext.isHydration) {\n throw new Error(\"restoration visit should never happen on initial render\");\n }\n const { layoutProps, layout } = pageContext.snapshot.pageContext;\n const { bodyEl, headEl } = pageContext.snapshot;\n const proxyBodyEl = bodyEl.querySelector(\"#proxied-body\");\n if (!proxyBodyEl) {\n throw new Error(\"proxied body not found in cached snapshot\");\n }\n Turbolinks._vpsOnRenderClient(headEl, true, true, () => {\n // merge body attributes\n document.body\n .getAttributeNames()\n .forEach((n) => document.body.removeAttribute(n));\n copyElementAttributes(document.body, bodyEl);\n // render body with react\n render({\n html: proxyBodyEl.innerHTML,\n layout,\n layoutProps,\n bodyEl,\n pageContext,\n });\n });\n}\n\n// Helper to render proxied html into a layout. Copies over body attributes and trigger Turoblinks caching.\nfunction render({\n html,\n layout,\n layoutProps,\n bodyEl,\n pageContext,\n}: {\n html: string;\n layout: string;\n layoutProps: AugmentMe.LayoutProps;\n bodyEl: Element;\n pageContext: PageContextProxyClient;\n}) {\n const { layoutMap } = pageContext.config;\n if (!layoutMap) {\n throw new Error(\"layoutMap needs to be defined in config\");\n }\n const Layout = layoutMap[layout] || PassThruLayout;\n renderReact(\n <PageShell key={pageContext.urlOriginal} pageContext={pageContext}>\n <Layout {...layoutProps}>\n <div id=\"proxied-body\" dangerouslySetInnerHTML={{ __html: html }} />\n </Layout>\n </PageShell>,\n pageContext.isHydration\n );\n // cache page context will save it and return it to us during restoration visits\n Turbolinks._vpsCachePageContext({\n layoutProps,\n layout,\n bodyAttrs: getElementAttributes(bodyEl),\n });\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-5SP2QGEH.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PageShell
|
|
3
|
-
} from "./chunk-JHLK62FM.js";
|
|
4
|
-
import {
|
|
5
|
-
documentPropsToReact
|
|
6
|
-
} from "./chunk-VYXAWOXV.js";
|
|
7
|
-
import {
|
|
8
|
-
getPageContextOrConfig
|
|
9
|
-
} from "./chunk-K4H777XA.js";
|
|
10
|
-
|
|
11
|
-
// renderer/bifrost/onRenderHtml.tsx
|
|
12
|
-
import React from "react";
|
|
13
|
-
import ReactDOMServer from "react-dom/server";
|
|
14
|
-
import { escapeInject, dangerouslySkipEscape } from "vike/server";
|
|
15
|
-
async function bifrostOnRenderHtml(pageContext) {
|
|
16
|
-
const { Page, pageProps, redirectTo } = pageContext;
|
|
17
|
-
if (redirectTo) {
|
|
18
|
-
return {
|
|
19
|
-
pageContext: {
|
|
20
|
-
redirectTo
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const { Layout } = pageContext.config;
|
|
25
|
-
const layoutProps = getPageContextOrConfig(pageContext, "layoutProps") || {};
|
|
26
|
-
if (!Page)
|
|
27
|
-
throw new Error("Server-side render() hook expects Page to be exported");
|
|
28
|
-
if (!Layout)
|
|
29
|
-
throw new Error("Server-side render() hook expects Layout to be exported");
|
|
30
|
-
const pageHtml = ReactDOMServer.renderToString(
|
|
31
|
-
/* @__PURE__ */ React.createElement(PageShell, { pageContext }, /* @__PURE__ */ React.createElement(Layout, { ...layoutProps }, /* @__PURE__ */ React.createElement(Page, { ...pageProps })))
|
|
32
|
-
);
|
|
33
|
-
const headHtml = ReactDOMServer.renderToString(
|
|
34
|
-
documentPropsToReact(
|
|
35
|
-
getPageContextOrConfig(pageContext, "documentProps") || {}
|
|
36
|
-
)
|
|
37
|
-
);
|
|
38
|
-
const bodyAttrs = getPageContextOrConfig(pageContext, "bodyAttrs") || [];
|
|
39
|
-
const { favicon } = pageContext.config;
|
|
40
|
-
const faviconTag = !favicon ? "" : escapeInject`<link rel="icon" href="${favicon}" />`;
|
|
41
|
-
const documentHtml = escapeInject`<!DOCTYPE html>
|
|
42
|
-
<html lang="en">
|
|
43
|
-
<head>
|
|
44
|
-
${faviconTag}
|
|
45
|
-
${dangerouslySkipEscape(headHtml)}
|
|
46
|
-
${dangerouslySkipEscape(
|
|
47
|
-
(pageContext.config.scripts || []).flatMap((s) => s).join("")
|
|
48
|
-
)}
|
|
49
|
-
${dangerouslySkipEscape(
|
|
50
|
-
(pageContext.config.dynamicScripts || []).map((s) => s(pageContext)).join("")
|
|
51
|
-
)}
|
|
52
|
-
${dangerouslySkipEscape(`<script>
|
|
53
|
-
window.Turbolinks = {controller:{restorationIdentifier: ''}};
|
|
54
|
-
addEventListener("DOMContentLoaded", () => {
|
|
55
|
-
const event = new Event("turbolinks:load", { bubbles: true, cancelable: true });
|
|
56
|
-
event.data = {url: window.location.href};
|
|
57
|
-
document.dispatchEvent(event);
|
|
58
|
-
})
|
|
59
|
-
</script>`)}
|
|
60
|
-
</head>
|
|
61
|
-
<body ${dangerouslySkipEscape(
|
|
62
|
-
bodyAttrs.map(({ name, value }) => `${name}="${value}"`).join(" ")
|
|
63
|
-
)}>
|
|
64
|
-
<div id="page-view">${dangerouslySkipEscape(pageHtml)}</div>
|
|
65
|
-
</body>
|
|
66
|
-
</html>`;
|
|
67
|
-
return {
|
|
68
|
-
documentHtml,
|
|
69
|
-
pageContext: {}
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export {
|
|
74
|
-
bifrostOnRenderHtml
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=chunk-5SP2QGEH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/bifrost/onRenderHtml.tsx"],"sourcesContent":["import React from \"react\";\nimport ReactDOMServer from \"react-dom/server\";\nimport { escapeInject, dangerouslySkipEscape } from \"vike/server\";\nimport { PageShell } from \"../../lib/PageShell\";\nimport { PageContextNoProxyServer } from \"../../types/internal\";\nimport { documentPropsToReact } from \"../utils/buildHead\";\nimport { getPageContextOrConfig } from \"../utils/getConfigOrPageContext\";\n\nexport async function bifrostOnRenderHtml(\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 (pageContext.config.scripts || []).flatMap((s) => s).join(\"\")\n )}\n ${dangerouslySkipEscape(\n (pageContext.config.dynamicScripts || [])\n .map((s) => s(pageContext))\n .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 };\n}\n"],"mappings":";;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,oBAAoB;AAC3B,SAAS,cAAc,6BAA6B;AAMpD,eAAsB,oBACpB,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,KACC,YAAY,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE;AAAA,EAC9D,CAAC;AAAA,QACC;AAAA,KACC,YAAY,OAAO,kBAAkB,CAAC,GACpC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EACzB,KAAK,EAAE;AAAA,EACZ,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,CAAC;AAAA,EAChB;AACF;","names":[]}
|
package/dist/chunk-ABLEI4J7.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// renderer/configs/bifrost.ts
|
|
2
|
-
var passToClient = [
|
|
3
|
-
"layoutProps",
|
|
4
|
-
"pageProps",
|
|
5
|
-
"redirectTo",
|
|
6
|
-
"bodyAttrs",
|
|
7
|
-
"documentProps",
|
|
8
|
-
"scripts",
|
|
9
|
-
"is404"
|
|
10
|
-
];
|
|
11
|
-
var bifrostConfig = {
|
|
12
|
-
passToClient,
|
|
13
|
-
meta: {
|
|
14
|
-
Layout: { env: { server: true, client: true } },
|
|
15
|
-
layoutProps: { env: { server: true, client: true } },
|
|
16
|
-
documentProps: { env: { server: true, client: true } },
|
|
17
|
-
bodyAttrs: { env: { server: true, client: true } },
|
|
18
|
-
scripts: {
|
|
19
|
-
env: { server: true, client: true },
|
|
20
|
-
cumulative: true
|
|
21
|
-
},
|
|
22
|
-
dynamicScripts: { env: { server: true, client: false }, global: true },
|
|
23
|
-
favicon: { env: { server: true } }
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export {
|
|
28
|
-
bifrostConfig
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=chunk-ABLEI4J7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/configs/bifrost.ts"],"sourcesContent":["import { Config } from \"vike/types\";\n\nconst passToClient = [\n \"layoutProps\",\n \"pageProps\",\n \"redirectTo\",\n \"bodyAttrs\",\n \"documentProps\",\n \"scripts\",\n \"is404\",\n];\nexport const bifrostConfig = {\n passToClient,\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: {\n env: { server: true, client: true },\n cumulative: true,\n },\n dynamicScripts: { env: { server: true, client: false }, global: true },\n favicon: { env: { server: 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;AACO,IAAM,gBAAgB;AAAA,EAC3B;AAAA,EACA,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;AAAA,MACP,KAAK,EAAE,QAAQ,MAAM,QAAQ,KAAK;AAAA,MAClC,YAAY;AAAA,IACd;AAAA,IACA,gBAAgB,EAAE,KAAK,EAAE,QAAQ,MAAM,QAAQ,MAAM,GAAG,QAAQ,KAAK;AAAA,IACrE,SAAS,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE;AAAA,EACnC;AACF;","names":[]}
|
package/dist/chunk-EYYCKU6F.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// renderer/utils/getGlobalObject.ts
|
|
2
|
-
function getGlobalObject(key, defaultValue) {
|
|
3
|
-
const allGlobalObjects = globalThis.__vite_plugin_ssr = globalThis.__vite_plugin_ssr || {};
|
|
4
|
-
const globalObject = allGlobalObjects[key] = allGlobalObjects[key] || defaultValue;
|
|
5
|
-
return globalObject;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
getGlobalObject
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=chunk-EYYCKU6F.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/utils/getGlobalObject.ts"],"sourcesContent":["// https://github.com/brillout/vike-react/blob/main/vike-react/renderer/utils/getGlobalObject.ts\n\nexport function getGlobalObject<T extends Record<string, unknown> = never>(\n // We use the filename as key; each `getGlobalObject()` call should live in a unique filename.\n key: `${string}.ts`,\n defaultValue: T\n): T {\n const allGlobalObjects = (globalThis.__vite_plugin_ssr = globalThis.__vite_plugin_ssr || {})\n const globalObject = (allGlobalObjects[key] = (allGlobalObjects[key] as T) || defaultValue)\n return globalObject\n}\ndeclare global {\n var __vite_plugin_ssr: undefined | Record<string, Record<string, unknown>>\n}\n"],"mappings":";AAEO,SAAS,gBAEd,KACA,cACG;AACH,QAAM,mBAAoB,WAAW,oBAAoB,WAAW,qBAAqB,CAAC;AAC1F,QAAM,eAAgB,iBAAiB,GAAG,IAAK,iBAAiB,GAAG,KAAW;AAC9E,SAAO;AACT;","names":[]}
|
package/dist/chunk-IYGONC4I.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getGlobalObject
|
|
3
|
-
} from "./chunk-EYYCKU6F.js";
|
|
4
|
-
|
|
5
|
-
// renderer/usePageContext.tsx
|
|
6
|
-
import React, { useContext } from "react";
|
|
7
|
-
var { Context } = getGlobalObject("PageContextProvider.ts", {
|
|
8
|
-
Context: React.createContext(void 0)
|
|
9
|
-
});
|
|
10
|
-
function PageContextProvider({
|
|
11
|
-
pageContext,
|
|
12
|
-
children
|
|
13
|
-
}) {
|
|
14
|
-
if (!pageContext)
|
|
15
|
-
throw new Error("Argument pageContext missing");
|
|
16
|
-
return /* @__PURE__ */ React.createElement(Context.Provider, { value: pageContext }, children);
|
|
17
|
-
}
|
|
18
|
-
function usePageContext() {
|
|
19
|
-
const pageContext = useContext(Context);
|
|
20
|
-
if (!pageContext)
|
|
21
|
-
throw new Error(
|
|
22
|
-
"<PageContextProvider> is needed for being able to use usePageContext()"
|
|
23
|
-
);
|
|
24
|
-
return pageContext;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export {
|
|
28
|
-
PageContextProvider,
|
|
29
|
-
usePageContext
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=chunk-IYGONC4I.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/usePageContext.tsx"],"sourcesContent":["// `usePageContext` allows us to access `pageContext` in any React component.\n// See https://vike.com/pageContext-anywhere\n\nimport React, { useContext } from \"react\";\nimport { PageContext } from \"../types/internal.js\";\nimport { getGlobalObject } from \"./utils/getGlobalObject.js\";\n\nexport { PageContextProvider };\nexport { usePageContext };\n\nconst { Context } = getGlobalObject(\"PageContextProvider.ts\", {\n Context: React.createContext<PageContext>(undefined as never),\n});\n\nfunction PageContextProvider({\n pageContext,\n children,\n}: {\n pageContext: PageContext;\n children: React.ReactNode;\n}) {\n if (!pageContext) throw new Error(\"Argument pageContext missing\");\n return <Context.Provider value={pageContext}>{children}</Context.Provider>;\n}\n\n/** Access the pageContext from any React component */\nfunction usePageContext() {\n const pageContext = useContext(Context);\n if (!pageContext)\n throw new Error(\n \"<PageContextProvider> is needed for being able to use usePageContext()\"\n );\n return pageContext;\n}\n"],"mappings":";;;;;AAGA,OAAO,SAAS,kBAAkB;AAOlC,IAAM,EAAE,QAAQ,IAAI,gBAAgB,0BAA0B;AAAA,EAC5D,SAAS,MAAM,cAA2B,MAAkB;AAC9D,CAAC;AAED,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AACF,GAGG;AACD,MAAI,CAAC;AAAa,UAAM,IAAI,MAAM,8BAA8B;AAChE,SAAO,oCAAC,QAAQ,UAAR,EAAiB,OAAO,eAAc,QAAS;AACzD;AAGA,SAAS,iBAAiB;AACxB,QAAM,cAAc,WAAW,OAAO;AACtC,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;","names":[]}
|
package/dist/chunk-JHLK62FM.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
NavigationProvider
|
|
3
|
-
} from "./chunk-PESUYCE4.js";
|
|
4
|
-
import {
|
|
5
|
-
PageContextProvider
|
|
6
|
-
} from "./chunk-IYGONC4I.js";
|
|
7
|
-
|
|
8
|
-
// lib/PageShell.tsx
|
|
9
|
-
import React from "react";
|
|
10
|
-
function PageShell({
|
|
11
|
-
pageContext,
|
|
12
|
-
children
|
|
13
|
-
}) {
|
|
14
|
-
return /* @__PURE__ */ React.createElement(React.StrictMode, null, /* @__PURE__ */ React.createElement(PageContextProvider, { pageContext }, /* @__PURE__ */ React.createElement(NavigationProvider, null, children)));
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export {
|
|
18
|
-
PageShell
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=chunk-JHLK62FM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/PageShell.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { PageContextProvider } from \"../renderer/usePageContext.js\";\nimport { PageContext } from \"../types/internal.js\";\nimport { NavigationProvider } from \"../renderer/useNavigation.js\";\n\nexport function PageShell({\n pageContext,\n children,\n}: {\n pageContext: PageContext;\n children: ReactNode;\n}) {\n return (\n <React.StrictMode>\n <PageContextProvider pageContext={pageContext}>\n <NavigationProvider>{children}</NavigationProvider>\n </PageContextProvider>\n </React.StrictMode>\n );\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,WAA0B;AAK1B,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AACF,GAGG;AACD,SACE,oCAAC,MAAM,YAAN,MACC,oCAAC,uBAAoB,eACnB,oCAAC,0BAAoB,QAAS,CAChC,CACF;AAEJ;","names":[]}
|
package/dist/chunk-K4H777XA.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/utils/getConfigOrPageContext.ts"],"sourcesContent":["import { PageContextNoProxy } from \"../../types/internal.js\";\n\ntype ConfigOrContext = PageContextNoProxy | PageContextNoProxy[\"config\"];\n\n/**\n * Get page configs that are definable in config and in runtime via onBeforeRoute. documentProps, for example.\n */\nexport function getPageContextOrConfig<T extends keyof ConfigOrContext>(\n pageContext: PageContextNoProxy,\n prop: T\n): ConfigOrContext[T] {\n return pageContext[prop] || pageContext.config[prop];\n}\n"],"mappings":";AAOO,SAAS,uBACd,aACA,MACoB;AACpB,SAAO,YAAY,IAAI,KAAK,YAAY,OAAO,IAAI;AACrD;","names":[]}
|
package/dist/chunk-OXCN6F2S.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/utils/PassthruLayout.tsx"],"sourcesContent":["import React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nexport const PassThruLayout: React.ComponentType<PropsWithChildren> = ({\n children,\n}) => <>{children}</>;\n"],"mappings":";AAAA,OAAO,WAAW;AAGX,IAAM,iBAAyD,CAAC;AAAA,EACrE;AACF,MAAM,0DAAG,QAAS;","names":[]}
|
package/dist/chunk-PESUYCE4.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getGlobalObject
|
|
3
|
-
} from "./chunk-EYYCKU6F.js";
|
|
4
|
-
|
|
5
|
-
// renderer/useNavigation.tsx
|
|
6
|
-
import React, { useContext, useState } from "react";
|
|
7
|
-
var setNavigation = (navigation) => {
|
|
8
|
-
};
|
|
9
|
-
var { Context } = getGlobalObject("useNavigation.ts", {
|
|
10
|
-
Context: React.createContext(void 0)
|
|
11
|
-
});
|
|
12
|
-
function NavigationProvider({ children }) {
|
|
13
|
-
const [navigation, setNav] = useState({ state: "idle" });
|
|
14
|
-
setNavigation = setNav;
|
|
15
|
-
if (!navigation)
|
|
16
|
-
throw new Error("Argument navigation missing");
|
|
17
|
-
return /* @__PURE__ */ React.createElement(Context.Provider, { value: navigation }, children);
|
|
18
|
-
}
|
|
19
|
-
function useNavigation() {
|
|
20
|
-
const navigation = useContext(Context);
|
|
21
|
-
if (!navigation)
|
|
22
|
-
throw new Error(
|
|
23
|
-
"<NavigationProvider> is needed for being able to use useNavigation()"
|
|
24
|
-
);
|
|
25
|
-
return navigation;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export {
|
|
29
|
-
setNavigation,
|
|
30
|
-
NavigationProvider,
|
|
31
|
-
useNavigation
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=chunk-PESUYCE4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../renderer/useNavigation.tsx"],"sourcesContent":["import React, { useContext, useState } from \"react\";\nimport { getGlobalObject } from \"./utils/getGlobalObject.js\";\n\nexport { NavigationProvider };\nexport { useNavigation };\nexport { setNavigation };\n\nlet setNavigation = (navigation: Navigation) => {};\n\ninterface Navigation {\n state: \"idle\" | \"loading\";\n}\n\nconst { Context } = getGlobalObject(\"useNavigation.ts\", {\n Context: React.createContext<Navigation>(undefined as never),\n});\n\nfunction NavigationProvider({ children }: { children: React.ReactNode }) {\n const [navigation, setNav] = useState<Navigation>({ state: \"idle\" });\n // bit of a hack - lets us trigger from outside react.\n setNavigation = setNav;\n if (!navigation) throw new Error(\"Argument navigation missing\");\n return <Context.Provider value={navigation}>{children}</Context.Provider>;\n}\n\n/** Access the navigation from any React component */\nfunction useNavigation() {\n const navigation = useContext(Context);\n if (!navigation)\n throw new Error(\n \"<NavigationProvider> is needed for being able to use useNavigation()\"\n );\n return navigation;\n}\n"],"mappings":";;;;;AAAA,OAAO,SAAS,YAAY,gBAAgB;AAO5C,IAAI,gBAAgB,CAAC,eAA2B;AAAC;AAMjD,IAAM,EAAE,QAAQ,IAAI,gBAAgB,oBAAoB;AAAA,EACtD,SAAS,MAAM,cAA0B,MAAkB;AAC7D,CAAC;AAED,SAAS,mBAAmB,EAAE,SAAS,GAAkC;AACvE,QAAM,CAAC,YAAY,MAAM,IAAI,SAAqB,EAAE,OAAO,OAAO,CAAC;AAEnE,kBAAgB;AAChB,MAAI,CAAC;AAAY,UAAM,IAAI,MAAM,6BAA6B;AAC9D,SAAO,oCAAC,QAAQ,UAAR,EAAiB,OAAO,cAAa,QAAS;AACxD;AAGA,SAAS,gBAAgB;AACvB,QAAM,aAAa,WAAW,OAAO;AACrC,MAAI,CAAC;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;","names":[]}
|
package/dist/chunk-RQ34EW7E.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// lib/getElementAttributes.ts
|
|
2
|
-
function getElementAttributes(element) {
|
|
3
|
-
const bodyAttrs = {};
|
|
4
|
-
element.getAttributeNames().forEach((name) => {
|
|
5
|
-
bodyAttrs[name] = element.getAttribute(name);
|
|
6
|
-
});
|
|
7
|
-
return bodyAttrs;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
getElementAttributes
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=chunk-RQ34EW7E.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/getElementAttributes.ts"],"sourcesContent":["export function getElementAttributes(element: Element) {\n const bodyAttrs: Record<string, string> = {};\n element.getAttributeNames().forEach((name) => {\n bodyAttrs[name] = element.getAttribute(name)!;\n });\n return bodyAttrs;\n}\n"],"mappings":";AAAO,SAAS,qBAAqB,SAAkB;AACrD,QAAM,YAAoC,CAAC;AAC3C,UAAQ,kBAAkB,EAAE,QAAQ,CAAC,SAAS;AAC5C,cAAU,IAAI,IAAI,QAAQ,aAAa,IAAI;AAAA,EAC7C,CAAC;AACD,SAAO;AACT;","names":[]}
|
package/dist/chunk-RSVASTEA.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Turbolinks,
|
|
3
|
-
renderReact
|
|
4
|
-
} from "./chunk-X3MUHPJ3.js";
|
|
5
|
-
import {
|
|
6
|
-
PassThruLayout
|
|
7
|
-
} from "./chunk-OXCN6F2S.js";
|
|
8
|
-
import {
|
|
9
|
-
PageShell
|
|
10
|
-
} from "./chunk-JHLK62FM.js";
|
|
11
|
-
import {
|
|
12
|
-
documentPropsToReact
|
|
13
|
-
} from "./chunk-VYXAWOXV.js";
|
|
14
|
-
import {
|
|
15
|
-
getPageContextOrConfig
|
|
16
|
-
} from "./chunk-K4H777XA.js";
|
|
17
|
-
|
|
18
|
-
// renderer/bifrost/onRenderClient.tsx
|
|
19
|
-
import React from "react";
|
|
20
|
-
import { createRoot } from "react-dom/client";
|
|
21
|
-
async function bifrostOnRenderClient(pageContext) {
|
|
22
|
-
if (pageContext.isBackwardNavigation && pageContext.is404) {
|
|
23
|
-
Turbolinks.controller.viewInvalidated();
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const { Page, pageProps } = pageContext;
|
|
27
|
-
const { Layout = PassThruLayout } = pageContext.config;
|
|
28
|
-
const layoutProps = getPageContextOrConfig(pageContext, "layoutProps") || {};
|
|
29
|
-
const bodyAttrs = getPageContextOrConfig(pageContext, "bodyAttrs") || [];
|
|
30
|
-
if (!Page)
|
|
31
|
-
throw new Error("Client-side render() hook expects Page to be exported");
|
|
32
|
-
const page = /* @__PURE__ */ React.createElement(PageShell, { pageContext }, /* @__PURE__ */ React.createElement(Layout, { ...layoutProps }, /* @__PURE__ */ React.createElement(Page, { ...pageProps })));
|
|
33
|
-
if (pageContext.isHydration) {
|
|
34
|
-
await pageContext.config.onClientInit?.();
|
|
35
|
-
renderReact(page, pageContext.isHydration);
|
|
36
|
-
} else {
|
|
37
|
-
const head = document.createElement("head");
|
|
38
|
-
createRoot(head).render(
|
|
39
|
-
documentPropsToReact(
|
|
40
|
-
getPageContextOrConfig(pageContext, "documentProps") || {}
|
|
41
|
-
)
|
|
42
|
-
);
|
|
43
|
-
(pageContext.config.scripts || []).forEach((sarr) => {
|
|
44
|
-
sarr.forEach((s) => {
|
|
45
|
-
head.insertAdjacentHTML("beforeend", s);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
requestAnimationFrame(() => {
|
|
49
|
-
Turbolinks._vpsOnRenderClient(head, false, false, () => {
|
|
50
|
-
document.body.getAttributeNames().forEach((n) => document.body.removeAttribute(n));
|
|
51
|
-
bodyAttrs.forEach(
|
|
52
|
-
({ name, value }) => document.body.setAttribute(name, value)
|
|
53
|
-
);
|
|
54
|
-
renderReact(page, pageContext.isHydration);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export {
|
|
61
|
-
bifrostOnRenderClient
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=chunk-RSVASTEA.js.map
|