From a6ec7e8c44b0c8927544d39467eeeb4a3fe310ed Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Mon, 8 Apr 2024 16:50:20 +0200 Subject: [PATCH] merge /examples/ssr-spa/ into /examples/basic/ --- examples/basic/layouts/LayoutDefault.tsx | 1 + examples/basic/pages/+config.ts | 10 ++- examples/basic/pages/index/+Page.tsx | 3 + examples/basic/pages/without-ssr/+Page.tsx | 22 ++++++ .../pages/without-ssr}/+config.ts | 3 +- examples/basic/readme.md | 3 +- examples/ssr-spa/.gitignore | 2 - examples/ssr-spa/assets/logo.svg | 36 --------- examples/ssr-spa/components/Link.tsx | 15 ---- examples/ssr-spa/layouts/HeadDefault.tsx | 14 ---- examples/ssr-spa/layouts/LayoutDefault.tsx | 75 ------------------- examples/ssr-spa/layouts/style.css | 29 ------- examples/ssr-spa/package.json | 20 ----- examples/ssr-spa/pages/+config.ts | 14 ---- examples/ssr-spa/pages/_error/+Page.tsx | 23 ------ examples/ssr-spa/pages/index/+Page.tsx | 15 ---- examples/ssr-spa/pages/spa/+Page.tsx | 15 ---- examples/ssr-spa/readme.md | 9 --- examples/ssr-spa/tsconfig.json | 13 ---- examples/ssr-spa/vite.config.ts | 7 -- pnpm-lock.yaml | 30 -------- 21 files changed, 36 insertions(+), 323 deletions(-) create mode 100644 examples/basic/pages/without-ssr/+Page.tsx rename examples/{ssr-spa/pages/spa => basic/pages/without-ssr}/+config.ts (66%) delete mode 100644 examples/ssr-spa/.gitignore delete mode 100644 examples/ssr-spa/assets/logo.svg delete mode 100644 examples/ssr-spa/components/Link.tsx delete mode 100644 examples/ssr-spa/layouts/HeadDefault.tsx delete mode 100644 examples/ssr-spa/layouts/LayoutDefault.tsx delete mode 100644 examples/ssr-spa/layouts/style.css delete mode 100644 examples/ssr-spa/package.json delete mode 100644 examples/ssr-spa/pages/+config.ts delete mode 100644 examples/ssr-spa/pages/_error/+Page.tsx delete mode 100644 examples/ssr-spa/pages/index/+Page.tsx delete mode 100644 examples/ssr-spa/pages/spa/+Page.tsx delete mode 100644 examples/ssr-spa/readme.md delete mode 100644 examples/ssr-spa/tsconfig.json delete mode 100644 examples/ssr-spa/vite.config.ts diff --git a/examples/basic/layouts/LayoutDefault.tsx b/examples/basic/layouts/LayoutDefault.tsx index 5a0a7496..c4758917 100644 --- a/examples/basic/layouts/LayoutDefault.tsx +++ b/examples/basic/layouts/LayoutDefault.tsx @@ -19,6 +19,7 @@ function LayoutDefault({ children }: { children: React.ReactNode }) { Welcome Data Fetching HTML Streaming + Without SSR {children} diff --git a/examples/basic/pages/+config.ts b/examples/basic/pages/+config.ts index 05750e8e..05267376 100644 --- a/examples/basic/pages/+config.ts +++ b/examples/basic/pages/+config.ts @@ -7,11 +7,13 @@ import vikeReact from 'vike-react/config' // Default configs (can be overridden by pages) const config = { - Layout: LayoutDefault, - Head: HeadDefault, // title: 'My Vike + React App', - // Enable HTML streaming (https://vike.dev/stream) - stream: true, + Head: HeadDefault, + // https://vike.dev/Layout + Layout: LayoutDefault, + // https://vike.dev/ssr - this line can be removed since `true` is the default + ssr: true, + // https://vike.dev/extends extends: vikeReact } satisfies Config diff --git a/examples/basic/pages/index/+Page.tsx b/examples/basic/pages/index/+Page.tsx index ffe17d86..c573b2e1 100644 --- a/examples/basic/pages/index/+Page.tsx +++ b/examples/basic/pages/index/+Page.tsx @@ -4,6 +4,9 @@ import React from 'react' import { Counter } from '../../components/Counter' function Page() { + // Will be printed on the server and in the browser: + console.log('Rendering the landing page') + return ( <> <h1>My Vike + React app</h1> diff --git a/examples/basic/pages/without-ssr/+Page.tsx b/examples/basic/pages/without-ssr/+Page.tsx new file mode 100644 index 00000000..d0ee82e7 --- /dev/null +++ b/examples/basic/pages/without-ssr/+Page.tsx @@ -0,0 +1,22 @@ +export default Page + +import React from 'react' +import { Counter } from '../../components/Counter' + +function Page() { + // Will be printed only in the browser: + console.log('Rendering page without SSR') + + return ( + <> + <h1>Without SSR</h1> + This page is rendered only in the browser: + <ul> + <li> + Interactive. <Counter /> + </li> + <li>It isn't rendered to HTML.</li> + </ul> + </> + ) +} diff --git a/examples/ssr-spa/pages/spa/+config.ts b/examples/basic/pages/without-ssr/+config.ts similarity index 66% rename from examples/ssr-spa/pages/spa/+config.ts rename to examples/basic/pages/without-ssr/+config.ts index ca6cf72a..f9ec2d6a 100644 --- a/examples/ssr-spa/pages/spa/+config.ts +++ b/examples/basic/pages/without-ssr/+config.ts @@ -1,5 +1,6 @@ import type { Config } from 'vike/types' export default { - ssr: false // SPA + // https://vike.dev/ssr + ssr: false } satisfies Config diff --git a/examples/basic/readme.md b/examples/basic/readme.md index e0719233..3b712cb8 100644 --- a/examples/basic/readme.md +++ b/examples/basic/readme.md @@ -2,8 +2,9 @@ Full-fledged example of using `vike-react`, showcasing: - [Layout](https://vike.dev/Layout) - Fetching data with [`data()`](https://vike.dev/data) -- [Error page](https://vike.dev/error-page) +- [Toggling SSR](https://vike.dev/ssr) on a per-page basis. - [HTML Streaming](https://vike.dev/streaming) +- [Error page](https://vike.dev/error-page) ```bash git clone git@github.com:vikejs/vike-react diff --git a/examples/ssr-spa/.gitignore b/examples/ssr-spa/.gitignore deleted file mode 100644 index b0a5c349..00000000 --- a/examples/ssr-spa/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules/ -/dist/ diff --git a/examples/ssr-spa/assets/logo.svg b/examples/ssr-spa/assets/logo.svg deleted file mode 100644 index 94d3caa0..00000000 --- a/examples/ssr-spa/assets/logo.svg +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<svg width="175" height="175" fill="none" version="1.1" viewBox="0 0 175 175" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <metadata> - <rdf:RDF> - <cc:Work rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> - <dc:title/> - </cc:Work> - </rdf:RDF> - </metadata> - <defs> - <linearGradient id="linearGradient880" x1="108.64" x2="115.51" y1="88.726" y2="136.2" gradientTransform="matrix(1.0498 0 0 1.0498 -2.9171 -2.9658)" gradientUnits="userSpaceOnUse"> - <stop stop-color="#ffea83" offset="0"/> - <stop stop-color="#FFDD35" offset=".083333"/> - <stop stop-color="#FFA800" offset="1"/> - </linearGradient> - <linearGradient id="paint2_linear" x1="48.975" x2="61.299" y1="3.9232" y2="158.04" gradientTransform="translate(-2.832e-5)" gradientUnits="userSpaceOnUse"> - <stop stop-color="#FFEA83" offset="0"/> - <stop stop-color="#FFDD35" offset=".083333"/> - <stop stop-color="#FFA800" offset="1"/> - </linearGradient> - <linearGradient id="paint0_linear-6" x1="-1.4492" x2="116.62" y1="-5.8123" y2="137.08" gradientTransform="translate(-2.832e-5)" gradientUnits="userSpaceOnUse"> - <stop stop-color="#41D1FF" offset="0"/> - <stop stop-color="#BD34FE" offset="1"/> - </linearGradient> - </defs> - <circle cx="87.5" cy="87.5" r="87.5" fill="#c4c4c4"/> - <circle cx="87.5" cy="87.5" r="87.5" fill="url(#paint0_linear-6)"/> - <g transform="translate(632.92 54.355)" fill="#d38787" stroke-width="1.0614"> - <path d="m-549.75 68.457c-5.7533-3.1217-6.1166-5.2295-6.1166-35.489 0-30.458 0.35464-32.448 6.3339-35.54 3.9943-2.0655 24.279-2.2805 26.735-0.28333 0.89718 0.72974 6.7203 6.6637 12.94 13.187l11.309 11.86v19.575c0 18.473-0.12956 19.74-2.3011 22.5-4.0223 5.1136-7.558 5.8565-27.65 5.8099-14.15-0.03287-19.008-0.40294-21.25-1.6191zm42.473-6.3594c2.27-1.59 2.359-2.2909 2.359-18.575v-16.923h-6.9521c-12.443 0-16.4-4.0845-16.4-16.93v-7.4828h-8.9464c-6.7178 0-9.3619 0.41549-10.614 1.668-2.5031 2.5031-2.5031 55.724 0 58.228 2.4502 2.4502 37.058 2.4636 40.553 0.01609zm-1.8867-42.165c0-0.16422-2.8659-3.1346-6.3686-6.6008l-6.3686-6.3022v4.9328c0 6.3185 1.8955 8.2687 8.0366 8.2687 2.5854 0 4.7007-0.13434 4.7007-0.29859zm-57.57 44.279c-5.6185-3.0486-6.1166-5.593-6.1166-31.243 0-18.891 0.31331-24.063 1.6101-26.571 1.809-3.4981 6.5048-6.3339 10.489-6.3339 2.4847 0 2.5814 0.19984 1.541 3.1843-0.61054 1.7514-1.7457 3.1843-2.5226 3.1843-0.77686 0-2.1631 0.75059-3.0805 1.668-2.4923 2.4923-2.4923 47.244 0 49.736 0.91739 0.9174 2.3036 1.668 3.0805 1.668 0.77688 0 1.912 1.4329 2.5226 3.1843 1.0562 3.0298 0.97108 3.1822-1.7537 3.1418-1.575-0.02331-4.1713-0.75194-5.7694-1.6191zm-16.983-4.2458c-5.4392-2.9512-6.1166-5.9415-6.1166-26.997 0-15.096 0.345-19.878 1.6101-22.325 1.7476-3.3796 6.4758-6.3339 10.137-6.3339 1.8666 0 2.1789 0.44955 1.6594 2.3882-0.35184 1.3135-0.64655 2.7465-0.65453 3.1843-8e-3 0.43784-0.69682 0.79608-1.5308 0.79608-0.83399 0-2.2669 0.75059-3.1843 1.668-2.4767 2.4767-2.4767 38.768 0 41.244 0.91741 0.91739 2.2946 1.668 3.0605 1.668 1.196 0 2.6402 2.995 2.6871 5.5726 0.0241 1.3294-4.5804 0.80962-7.6676-0.8655z" style="mix-blend-mode:lighten"/> - <path d="m-552.2 68.911c-5.7533-3.1217-6.1166-5.2295-6.1166-35.489 0-30.458 0.35463-32.448 6.3339-35.54 3.9943-2.0655 24.279-2.2805 26.735-0.28333 0.89718 0.72974 6.7203 6.6637 12.94 13.187l11.309 11.86v19.575c0 18.473-0.12957 19.74-2.3011 22.5-4.0223 5.1136-7.558 5.8565-27.65 5.8099-14.15-0.03287-19.008-0.40294-21.25-1.6191zm42.473-6.3594c2.27-1.59 2.359-2.2909 2.359-18.575v-16.923h-6.952c-12.443 0-16.4-4.0845-16.4-16.93v-7.4828h-8.9464c-6.7179 0-9.3619 0.41549-10.614 1.668-2.5031 2.5031-2.5031 55.724 0 58.228 2.4502 2.4502 37.058 2.4636 40.553 0.01609zm-1.8867-42.165c0-0.16422-2.8659-3.1346-6.3686-6.6008l-6.3686-6.3022v4.9328c0 6.3185 1.8955 8.2688 8.0366 8.2688 2.5854 0 4.7007-0.13434 4.7007-0.29859zm-57.57 44.279c-5.6185-3.0486-6.1166-5.593-6.1166-31.243 0-18.891 0.31331-24.063 1.6101-26.571 1.809-3.4981 6.5048-6.3339 10.489-6.3339 2.4847 0 2.5814 0.19984 1.541 3.1843-0.61054 1.7514-1.7457 3.1843-2.5226 3.1843-0.77687 0-2.1631 0.75059-3.0805 1.668-2.4923 2.4923-2.4923 47.244 0 49.736 0.91741 0.91739 2.3036 1.668 3.0805 1.668 0.77686 0 1.912 1.4329 2.5226 3.1843 1.0562 3.0298 0.97107 3.1822-1.7537 3.1418-1.575-0.02331-4.1713-0.75194-5.7694-1.6191zm-16.983-4.2458c-5.4392-2.9512-6.1166-5.9415-6.1166-26.997 0-15.096 0.34502-19.878 1.6101-22.325 1.7476-3.3796 6.4758-6.3339 10.137-6.3339 1.8666 0 2.1789 0.44955 1.6594 2.3882-0.35182 1.3135-0.64653 2.7465-0.65452 3.1843-8e-3 0.43784-0.69683 0.79608-1.5308 0.79608-0.83397 0-2.2669 0.75059-3.1843 1.668-2.4767 2.4767-2.4767 38.768 0 41.245 0.9174 0.91739 2.2946 1.668 3.0605 1.668 1.196 0 2.6402 2.995 2.6871 5.5726 0.0241 1.3294-4.5804 0.80962-7.6676-0.8655z" fill-opacity=".47466" style="mix-blend-mode:lighten"/> - </g> - <path d="m128.48 88.913-24.027 4.6784c-0.39475 0.07685-0.68766 0.40944-0.71076 0.80849l-1.4782 24.805c-0.0347 0.58371 0.50497 1.0372 1.0792 0.90602l6.6886-1.5338c0.62676-0.14383 1.1916 0.40419 1.0635 1.0299l-1.9874 9.6702c-0.13438 0.65091 0.48084 1.2073 1.1202 1.0142l4.1322-1.2472c0.64041-0.19317 1.2556 0.36535 1.1202 1.0162l-3.158 15.191c-0.19842 0.95011 1.074 1.4677 1.6042 0.653l0.35485-0.54382 19.578-38.827c0.32755-0.64985-0.23727-1.391-0.95641-1.2535l-6.8849 1.3207c-0.6467 0.12389-1.1979-0.47453-1.0152-1.1034l4.4944-15.482c0.18266-0.63012-0.36955-1.2295-1.0173-1.1034z" fill="url(#linearGradient880)" stroke-width="1.0498"/> - <rect x="3" y="3" width="169" height="169" rx="84.5" stroke="url(#paint2_linear)" stroke-width="6" style="mix-blend-mode:soft-light"/> -</svg> diff --git a/examples/ssr-spa/components/Link.tsx b/examples/ssr-spa/components/Link.tsx deleted file mode 100644 index 3bb18237..00000000 --- a/examples/ssr-spa/components/Link.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export { Link } - -import { usePageContext } from 'vike-react/usePageContext' -import React from 'react' - -function Link({ href, children }: { href: string; children: string }) { - const pageContext = usePageContext() - const { urlPathname } = pageContext - const isActive = href === '/' ? urlPathname === href : urlPathname.startsWith(href) - return ( - <a href={href} className={isActive ? 'is-active' : undefined}> - {children} - </a> - ) -} diff --git a/examples/ssr-spa/layouts/HeadDefault.tsx b/examples/ssr-spa/layouts/HeadDefault.tsx deleted file mode 100644 index ef374b88..00000000 --- a/examples/ssr-spa/layouts/HeadDefault.tsx +++ /dev/null @@ -1,14 +0,0 @@ -export default HeadDefault - -import React from 'react' -import logoUrl from '../assets/logo.svg' - -function HeadDefault() { - return ( - <> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta name="description" content="Demo showcasing Vike + React" /> - <link rel="icon" href={logoUrl} /> - </> - ) -} diff --git a/examples/ssr-spa/layouts/LayoutDefault.tsx b/examples/ssr-spa/layouts/LayoutDefault.tsx deleted file mode 100644 index 3d12afe0..00000000 --- a/examples/ssr-spa/layouts/LayoutDefault.tsx +++ /dev/null @@ -1,75 +0,0 @@ -export default LayoutDefault - -import './style.css' -import React from 'react' -import logoUrl from '../assets/logo.svg' -import { Link } from '../components/Link' - -function LayoutDefault({ children }: { children: React.ReactNode }) { - return ( - <div - style={{ - display: 'flex', - maxWidth: 900, - margin: 'auto' - }} - > - <Sidebar> - <Logo /> - <Link href="/">SSR</Link> - <Link href="/spa">SPA</Link> - </Sidebar> - <Content>{children}</Content> - </div> - ) -} - -function Sidebar({ children }: { children: React.ReactNode }) { - return ( - <div - id="sidebar" - style={{ - padding: 20, - flexShrink: 0, - display: 'flex', - flexDirection: 'column', - lineHeight: '1.8em', - borderRight: '2px solid #eee' - }} - > - {children} - </div> - ) -} - -function Content({ children }: { children: React.ReactNode }) { - return ( - <div id="page-container"> - <div - id="page-content" - style={{ - padding: 20, - paddingBottom: 50, - minHeight: '100vh' - }} - > - {children} - </div> - </div> - ) -} - -function Logo() { - return ( - <div - style={{ - marginTop: 20, - marginBottom: 10 - }} - > - <a href="/"> - <img src={logoUrl} height={64} width={64} /> - </a> - </div> - ) -} diff --git a/examples/ssr-spa/layouts/style.css b/examples/ssr-spa/layouts/style.css deleted file mode 100644 index 7afa4ca5..00000000 --- a/examples/ssr-spa/layouts/style.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Links */ -a { - text-decoration: none; -} -#sidebar a { - padding: 2px 10px; - margin-left: -10px; -} -#sidebar a.is-active { - background-color: #eee; -} - -/* Reset */ -body { - margin: 0; - font-family: sans-serif; -} -* { - box-sizing: border-box; -} - -/* Page Transition Anmiation */ -#page-content { - opacity: 1; - transition: opacity 0.3s ease-in-out; -} -body.page-is-transitioning #page-content { - opacity: 0; -} diff --git a/examples/ssr-spa/package.json b/examples/ssr-spa/package.json deleted file mode 100644 index 949215cc..00000000 --- a/examples/ssr-spa/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "test": "tsc --noEmit" - }, - "dependencies": { - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.19", - "@vitejs/plugin-react": "^4.2.1", - "react": "18.2.0", - "react-dom": "18.2.0", - "typescript": "^5.3.3", - "vike": "^0.4.168", - "vike-react": "^0.4.6", - "vite": "^5.1.1" - }, - "type": "module" -} diff --git a/examples/ssr-spa/pages/+config.ts b/examples/ssr-spa/pages/+config.ts deleted file mode 100644 index 321de5f4..00000000 --- a/examples/ssr-spa/pages/+config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { Config } from 'vike/types' -import Layout from '../layouts/LayoutDefault' -import Head from '../layouts/HeadDefault' -import vikeReact from 'vike-react/config' - -// Default configs (can be overridden by pages) -export default { - Layout, - Head, - // <title> - title: 'My Vike + React App', - ssr: true, // can be removed since `true` is the default - extends: vikeReact -} satisfies Config diff --git a/examples/ssr-spa/pages/_error/+Page.tsx b/examples/ssr-spa/pages/_error/+Page.tsx deleted file mode 100644 index 2fa8b1cc..00000000 --- a/examples/ssr-spa/pages/_error/+Page.tsx +++ /dev/null @@ -1,23 +0,0 @@ -export default Page - -import React from 'react' -import { usePageContext } from 'vike-react/usePageContext' - -function Page() { - const { is404 } = usePageContext() - if (is404) { - return ( - <> - <h1>404 Page Not Found</h1> - <p>This page could not be found.</p> - </> - ) - } else { - return ( - <> - <h1>500 Internal Server Error</h1> - <p>Something went wrong.</p> - </> - ) - } -} diff --git a/examples/ssr-spa/pages/index/+Page.tsx b/examples/ssr-spa/pages/index/+Page.tsx deleted file mode 100644 index fd28822b..00000000 --- a/examples/ssr-spa/pages/index/+Page.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export default Page - -import React from 'react' - -function Page() { - // Will be printed on the server and in the browser: - console.log('Rendering SSR page') - - return ( - <> - <h1>My Vike + React app</h1> - This page is rendered to HTML (using SSR) and hydrated in the browser. - </> - ) -} diff --git a/examples/ssr-spa/pages/spa/+Page.tsx b/examples/ssr-spa/pages/spa/+Page.tsx deleted file mode 100644 index 80beca65..00000000 --- a/examples/ssr-spa/pages/spa/+Page.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export default Page - -import React from 'react' - -function Page() { - // Will be printed only in the browser: - console.log('Rendering SPA page') - - return ( - <> - <h1>My Vike + React app</h1> - This page is rendered only in the browser. - </> - ) -} diff --git a/examples/ssr-spa/readme.md b/examples/ssr-spa/readme.md deleted file mode 100644 index ba036363..00000000 --- a/examples/ssr-spa/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -Example of selecting SPA or SSR on a per-page basis. See -[SPA vs SSR (and more)](https://vike.dev/SPA-vs-SSR). - -```bash -git clone git@github.com:vikejs/vike-react -cd vike-react/examples/ssr-spa/ -npm install -npm run dev -``` diff --git a/examples/ssr-spa/tsconfig.json b/examples/ssr-spa/tsconfig.json deleted file mode 100644 index e0bb64ac..00000000 --- a/examples/ssr-spa/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "module": "ES2020", - "moduleResolution": "Node", - "target": "ES2020", - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "types": ["vite/client"], - "jsx": "react", - "skipLibCheck": true, - "esModuleInterop": true - } -} diff --git a/examples/ssr-spa/vite.config.ts b/examples/ssr-spa/vite.config.ts deleted file mode 100644 index dc0d65f2..00000000 --- a/examples/ssr-spa/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import react from '@vitejs/plugin-react' -import ssr from 'vike/plugin' -import { UserConfig } from 'vite' - -export default { - plugins: [react(), ssr()] -} satisfies UserConfig diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c6e98b4..d2e97788 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,36 +100,6 @@ importers: specifier: ^5.1.1 version: 5.1.1(@types/node@20.11.17) - examples/ssr-spa: - dependencies: - '@types/react': - specifier: ^18.2.55 - version: 18.2.55 - '@types/react-dom': - specifier: ^18.2.19 - version: 18.2.19 - '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.1.1) - react: - specifier: 18.2.0 - version: 18.2.0 - react-dom: - specifier: 18.2.0 - version: 18.2.0(react@18.2.0) - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vike: - specifier: ^0.4.168 - version: 0.4.168(react-streaming@0.3.22)(vite@5.1.1) - vike-react: - specifier: link:../../packages/vike-react - version: link:../../packages/vike-react - vite: - specifier: ^5.1.1 - version: 5.1.1(@types/node@20.11.17) - packages/vike-react: dependencies: react-streaming: