diff --git a/examples/tuono-app/package.json b/examples/tuono-app/package.json
index 1596dea5..96d94478 100644
--- a/examples/tuono-app/package.json
+++ b/examples/tuono-app/package.json
@@ -3,13 +3,13 @@
"description": "Basic tuono application",
"version": "0.0.1",
"dependencies": {
- "react": "18.3.1",
- "react-dom": "18.3.1",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
"tuono": "link:../../packages/tuono"
},
"devDependencies": {
- "@types/react": "^18.3.13",
- "@types/react-dom": "^18.3.0",
- "typescript": "^5.6.3"
+ "@types/react": "19.0.2",
+ "@types/react-dom": "19.0.2",
+ "typescript": "5.6.3"
}
}
diff --git a/examples/tuono-app/src/routes/__root.tsx b/examples/tuono-app/src/routes/__root.tsx
index 2a9d1425..8218e6fd 100644
--- a/examples/tuono-app/src/routes/__root.tsx
+++ b/examples/tuono-app/src/routes/__root.tsx
@@ -5,5 +5,11 @@ interface RootRouteProps {
}
export default function RootRoute({ children }: RootRouteProps): JSX.Element {
- return {children}
+ return (
+
+
+ {children}
+
+
+ )
}
diff --git a/examples/tuono-tutorial/package.json b/examples/tuono-tutorial/package.json
index ef8796a1..35be0805 100644
--- a/examples/tuono-tutorial/package.json
+++ b/examples/tuono-tutorial/package.json
@@ -3,13 +3,13 @@
"description": "The basic tutorial for tuono applications",
"version": "0.0.1",
"dependencies": {
- "react": "18.3.1",
- "react-dom": "18.3.1",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
"tuono": "link:../../packages/tuono"
},
"devDependencies": {
- "@types/react": "^18.3.13",
- "@types/react-dom": "^18.3.0",
+ "@types/react": "^19.0.2",
+ "@types/react-dom": "^19.0.2",
"typescript": "^5.6.3"
}
}
diff --git a/examples/tuono-tutorial/src/routes/__root.tsx b/examples/tuono-tutorial/src/routes/__root.tsx
index 2a9d1425..8218e6fd 100644
--- a/examples/tuono-tutorial/src/routes/__root.tsx
+++ b/examples/tuono-tutorial/src/routes/__root.tsx
@@ -5,5 +5,11 @@ interface RootRouteProps {
}
export default function RootRoute({ children }: RootRouteProps): JSX.Element {
- return {children}
+ return (
+
+
+ {children}
+
+
+ )
}
diff --git a/examples/tuono-tutorial/src/routes/index.tsx b/examples/tuono-tutorial/src/routes/index.tsx
index 79d26d55..377189f3 100644
--- a/examples/tuono-tutorial/src/routes/index.tsx
+++ b/examples/tuono-tutorial/src/routes/index.tsx
@@ -1,6 +1,6 @@
// src/routes/index.tsx
import type { JSX } from 'react'
-import { Head, type TuonoProps } from 'tuono'
+import type { TuonoProps } from 'tuono'
import PokemonLink from '@/components/PokemonLink'
@@ -15,20 +15,25 @@ interface IndexProps {
export default function IndexPage({
data,
}: TuonoProps): JSX.Element | null {
- if (!data?.results) {
- return null
- }
+ if (!data?.results) return null
return (
<>
-
- Tuono tutorial
-
+ Tuono tutorial
+
@@ -43,9 +48,10 @@ export default function IndexPage({
- {data.results.map((pokemon, i) => {
- return
- })}
+
+ {data.results.map((pokemon, i) => (
+
+ ))}
>
)
diff --git a/examples/tuono-tutorial/src/routes/pokemons/[pokemon].tsx b/examples/tuono-tutorial/src/routes/pokemons/[pokemon].tsx
index cfb2ea72..847cc68b 100644
--- a/examples/tuono-tutorial/src/routes/pokemons/[pokemon].tsx
+++ b/examples/tuono-tutorial/src/routes/pokemons/[pokemon].tsx
@@ -1,5 +1,5 @@
import type { JSX } from 'react'
-import { Head, type TuonoProps } from 'tuono'
+import type { TuonoProps } from 'tuono'
import PokemonView from '@/components/PokemonView'
@@ -15,9 +15,8 @@ export default function PokemonPage({
}: TuonoProps): JSX.Element {
return (
<>
-
- {`Pokemon: ${data?.name}`}
-
+ {`Pokemon: ${data?.name ?? ''}`}
+
>
)
diff --git a/examples/tuono-tutorial/src/styles/global.css b/examples/tuono-tutorial/src/styles/global.css
index 84fc0842..af1e31e3 100644
--- a/examples/tuono-tutorial/src/styles/global.css
+++ b/examples/tuono-tutorial/src/styles/global.css
@@ -4,6 +4,7 @@
0% {
transform: rotate(0deg);
}
+
100% {
transform: rotate(360deg);
}
diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json
index 93b7bf92..1fb9302b 100644
--- a/examples/with-mdx/package.json
+++ b/examples/with-mdx/package.json
@@ -4,14 +4,14 @@
"version": "0.0.1",
"dependencies": {
"@mdx-js/react": "3.1.0",
- "react": "18.3.1",
- "react-dom": "18.3.1",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
"tuono": "link:../../packages/tuono"
},
"devDependencies": {
"@mdx-js/rollup": "3.1.0",
- "@types/react": "18.3.18",
- "@types/react-dom": "18.3.5",
+ "@types/react": "^19.0.2",
+ "@types/react-dom": "^19.0.2",
"typescript": "^5.6.3"
}
}
diff --git a/examples/with-mdx/src/routes/__root.tsx b/examples/with-mdx/src/routes/__root.tsx
index f85690e2..7599d3bf 100644
--- a/examples/with-mdx/src/routes/__root.tsx
+++ b/examples/with-mdx/src/routes/__root.tsx
@@ -7,8 +7,12 @@ interface RootRouteProps {
export default function RootRoute({ children }: RootRouteProps): JSX.Element {
return (
-
- {children}
-
+
+
+
+ {children}
+
+
+
)
}
diff --git a/package.json b/package.json
index 28baccf5..1b0b0323 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
"license": "MIT",
"devDependencies": {
"@eslint/js": "9.15.0",
- "@types/node": "22.10.0",
+ "@types/node": "22.10.3",
"eslint": "9.15.0",
"eslint-import-resolver-typescript": "3.6.3",
"eslint-plugin-import": "2.31.0",
diff --git a/packages/tuono-fs-router-vite-plugin/package.json b/packages/tuono-fs-router-vite-plugin/package.json
index f4a75d28..3d4d4e4b 100644
--- a/packages/tuono-fs-router-vite-plugin/package.json
+++ b/packages/tuono-fs-router-vite-plugin/package.json
@@ -52,6 +52,6 @@
"devDependencies": {
"@tanstack/config": "0.7.13",
"@types/babel__core": "^7.20.5",
- "vitest": "^2.0.0"
+ "vitest": "2.1.8"
}
}
diff --git a/packages/tuono-lazy-fn-vite-plugin/package.json b/packages/tuono-lazy-fn-vite-plugin/package.json
index 93695902..4049f49a 100644
--- a/packages/tuono-lazy-fn-vite-plugin/package.json
+++ b/packages/tuono-lazy-fn-vite-plugin/package.json
@@ -52,6 +52,6 @@
"@tanstack/config": "0.7.13",
"@types/babel__core": "^7.20.5",
"prettier": "^3.2.4",
- "vitest": "^2.0.0"
+ "vitest": "2.1.8"
}
}
diff --git a/packages/tuono-router/package.json b/packages/tuono-router/package.json
index ea48fa83..d46323d6 100644
--- a/packages/tuono-router/package.json
+++ b/packages/tuono-router/package.json
@@ -44,20 +44,20 @@
"./package.json": "./package.json"
},
"peerDependencies": {
- "react": ">=16.3.0"
+ "react": ">=19.0.0"
},
"dependencies": {
"react-intersection-observer": "^9.13.0"
},
"devDependencies": {
"@tanstack/config": "0.7.13",
- "@testing-library/jest-dom": "^6.6.0",
- "@testing-library/react": "^16.0.0",
- "@types/react": "18.3.18",
+ "@testing-library/jest-dom": "6.6.3",
+ "@testing-library/react": "16.1.0",
+ "@types/react": "19.0.2",
"@vitejs/plugin-react-swc": "3.7.2",
- "react": "18.3.1",
- "jsdom": "^25.0.0",
+ "jsdom": "25.0.1",
+ "react": "19.0.0",
"vite": "5.4.11",
- "vitest": "^2.0.0"
+ "vitest": "2.1.8"
}
}
diff --git a/packages/tuono-router/src/components/RouteMatch.tsx b/packages/tuono-router/src/components/RouteMatch.tsx
index 54b65ba6..48ef522e 100644
--- a/packages/tuono-router/src/components/RouteMatch.tsx
+++ b/packages/tuono-router/src/components/RouteMatch.tsx
@@ -25,7 +25,9 @@ export const RouteMatch = ({
return (
-
+
+
+
)
}
diff --git a/packages/tuono-router/src/components/RouterProvider.tsx b/packages/tuono-router/src/components/RouterProvider.tsx
index 92b62daa..eb9fa46f 100644
--- a/packages/tuono-router/src/components/RouterProvider.tsx
+++ b/packages/tuono-router/src/components/RouterProvider.tsx
@@ -1,5 +1,4 @@
import type { JSX } from 'react'
-import { Suspense } from 'react'
import type { ServerProps } from '../types'
import type { Router } from '../router'
@@ -20,13 +19,11 @@ export function RouterProvider({
serverProps,
}: RouterProviderProps): JSX.Element {
return (
-
-
-
-
-
+
+
+
)
}
diff --git a/packages/tuono/package.json b/packages/tuono/package.json
index 20fa2bd5..97b62303 100644
--- a/packages/tuono/package.json
+++ b/packages/tuono/package.json
@@ -88,25 +88,16 @@
"bin/**"
],
"peerDependencies": {
- "react": ">=16.3.0",
- "react-dom": ">=16.3.0"
+ "react": ">=19.0.0",
+ "react-dom": ">=19.0.0"
},
"dependencies": {
"@babel/core": "^7.24.4",
- "@babel/generator": "^7.23.6",
"@babel/plugin-syntax-jsx": "^7.24.1",
"@babel/plugin-syntax-typescript": "^7.24.1",
- "@babel/plugin-transform-react-jsx": "^7.23.4",
- "@babel/plugin-transform-typescript": "^7.24.1",
- "@babel/template": "^7.24.0",
- "@babel/traverse": "^7.24.1",
- "@babel/types": "^7.24.0",
"@rollup/plugin-inject": "^5.0.5",
- "@types/babel__core": "^7.20.5",
- "@types/node": "^22.0.0",
"@vitejs/plugin-react-swc": "^3.7.0",
"fast-text-encoding": "^1.0.6",
- "react-helmet-async": "^2.0.5",
"tuono-fs-router-vite-plugin": "workspace:*",
"tuono-lazy-fn-vite-plugin": "workspace:*",
"tuono-router": "workspace:*",
@@ -115,13 +106,14 @@
},
"devDependencies": {
"@tanstack/config": "0.7.13",
- "@types/babel-traverse": "^6.25.10",
- "@types/babel__traverse": "^7.20.6",
- "@types/react": "18.3.18",
- "@types/react-dom": "18.3.5",
- "react": "18.3.1",
- "react-dom": "18.3.1",
- "vitest": "^2.0.0"
+ "@types/babel__core": "7.20.5",
+ "@types/babel__traverse": "7.20.6",
+ "@types/node": "22.10.3",
+ "@types/react": "19.0.2",
+ "@types/react-dom": "19.0.2",
+ "react": "19.0.0",
+ "react-dom": "19.0.0",
+ "vitest": "2.1.8"
},
"sideEffects": false,
"keywords": [
diff --git a/packages/tuono/src/hydration/index.tsx b/packages/tuono/src/hydration/index.tsx
index 0193bb20..ba1fa8a3 100644
--- a/packages/tuono/src/hydration/index.tsx
+++ b/packages/tuono/src/hydration/index.tsx
@@ -2,7 +2,6 @@ import React from 'react'
import { hydrateRoot } from 'react-dom/client'
import { RouterProvider, createRouter } from 'tuono-router'
import type { createRoute } from 'tuono-router'
-import { HelmetProvider } from 'react-helmet-async'
type RouteTree = ReturnType
@@ -10,15 +9,10 @@ export function hydrate(routeTree: RouteTree): void {
// Create a new router instance
const router = createRouter({ routeTree })
- // eslint-disable-next-line
- const rootElement = document.getElementById('__tuono')!
-
hydrateRoot(
- rootElement,
+ document,
-
-
-
+
,
)
}
diff --git a/packages/tuono/src/index.ts b/packages/tuono/src/index.ts
index ea745dbe..7f8aea32 100644
--- a/packages/tuono/src/index.ts
+++ b/packages/tuono/src/index.ts
@@ -1,5 +1,3 @@
-export { Helmet as Head } from 'react-helmet-async'
-
export {
createRoute,
createRootRoute,
diff --git a/packages/tuono/src/react-meta-tags.d.ts b/packages/tuono/src/react-meta-tags.d.ts
deleted file mode 100644
index 85eaf7fc..00000000
--- a/packages/tuono/src/react-meta-tags.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare module 'react-meta-tags'
-declare module 'react-meta-tags/server'
diff --git a/packages/tuono/src/ssr/components/DevResources.tsx b/packages/tuono/src/ssr/components/DevResources.tsx
new file mode 100644
index 00000000..c5a7f485
--- /dev/null
+++ b/packages/tuono/src/ssr/components/DevResources.tsx
@@ -0,0 +1,21 @@
+import type { JSX } from 'react'
+
+const TUONO_DEV_SERVER_PORT = 3000
+const VITE_PROXY_PATH = '/vite-server'
+const SCRIPT_BASE_URL = `http://localhost:${TUONO_DEV_SERVER_PORT}${VITE_PROXY_PATH}`
+
+export const DevResources = (): JSX.Element => (
+ <>
+
+
+
+ >
+)
diff --git a/packages/tuono/src/ssr/components/ProdResources.tsx b/packages/tuono/src/ssr/components/ProdResources.tsx
new file mode 100644
index 00000000..fdb788b8
--- /dev/null
+++ b/packages/tuono/src/ssr/components/ProdResources.tsx
@@ -0,0 +1,26 @@
+import type { JSX } from 'react'
+
+interface ProdResourcesProps {
+ cssBundles: Array
+ jsBundles: Array
+}
+
+export const ProdResources = ({
+ cssBundles,
+ jsBundles,
+}: ProdResourcesProps): JSX.Element => (
+ <>
+ {cssBundles.map((cssHref) => (
+
+ ))}
+
+ {jsBundles.map((scriptSrc) => (
+
+ ))}
+ >
+)
diff --git a/packages/tuono/src/ssr/server.tsx b/packages/tuono/src/ssr/server.tsx
index ec82b9ad..253ed004 100644
--- a/packages/tuono/src/ssr/server.tsx
+++ b/packages/tuono/src/ssr/server.tsx
@@ -1,43 +1,55 @@
-import 'fast-text-encoding' // Mandatory for React18
+// #region POLYFILLS
+/**
+ * Tuono internally uses a V8 JS engine that implements very few
+ * browser/node/deno APIs in order to make it super fast and
+ * share it within a multi thread runtime.
+ *
+ * While this is the reason of its speed, server side rendering
+ * requires some JS APIs that need to be polyfilled.
+ *
+ * We basically have three ways to polyfill APIs:
+ * 1. Create them with rust and expose them directly through the V8 engine to
+ * the JS source.
+ * 2. Polyfill them at the beginning of the JS source
+ * (what we are doing here)
+ * 3. Inject them via rollup-inject plugin, when needed
+ *
+ * Q: Why not all the libraries can be just injected with rollup-inject?
+ * A: Leaving to rollup the duty of linking them can cause to declare them after their usage.
+ * The following APIs are JS classes, and are not hoisted, hence this might
+ * cause ReferenceError(s).
+ *
+ * The best solution is to create these polyfills within the rust environment
+ * and share the classes in the JS scope by passing them through the V8 engine
+ * (best for speed and code quality).
+ *
+ * This function might be a good entry point for adding such polyfills
+ * https://docs.rs/ssr_rs/latest/ssr_rs/struct.Ssr.html#method.add_global_fn
+ */
+import 'fast-text-encoding'
+
+/* eslint-disable import/order, import/newline-after-import */
+import { MessageChannelPolyfill } from './polyfills/MessageChannel'
+;(function (
+ scope: Partial> = {},
+): void {
+ scope['MessageChannel'] = scope['MessageChannel'] ?? MessageChannelPolyfill
+})(this)
+/* eslint-enable import/order, import/newline-after-import */
+// #endregion POLYFILLS
+
import type { ReadableStream } from 'node:stream/web'
-import { renderToStaticMarkup, renderToReadableStream } from 'react-dom/server'
-import type { HelmetServerState } from 'react-helmet-async'
-import { HelmetProvider } from 'react-helmet-async'
+import { renderToReadableStream } from 'react-dom/server'
import { RouterProvider, createRouter } from 'tuono-router'
import type { createRoute } from 'tuono-router'
+import { DevResources } from './components/DevResources'
+import { ProdResources } from './components/ProdResources'
+import type { Mode } from './types'
import { streamToString } from './utils'
type RouteTree = ReturnType
-type Mode = 'Dev' | 'Prod'
-
-const TUONO_DEV_SERVER_PORT = 3000
-const VITE_PROXY_PATH = '/vite-server'
-
-const VITE_DEV_AND_HMR = `
-
-`
-
-function generateCssLinks(cssBundles: Array, mode: Mode): string {
- if (mode === 'Dev') return ''
- return cssBundles.reduce((acc, value) => {
- return acc + ``
- }, '')
-}
-
-function generateJsScripts(jsBundles: Array, mode: Mode): string {
- if (mode === 'Dev') return ''
- return jsBundles.reduce((acc, value) => {
- return acc + ``
- }, '')
-}
export function serverSideRendering(routeTree: RouteTree) {
return async function render(payload: string | undefined): Promise {
@@ -51,45 +63,24 @@ export function serverSideRendering(routeTree: RouteTree) {
const cssBundles = serverProps.cssBundles as Array
const router = createRouter({ routeTree }) // Render the app
- const helmetContext = {} as { helmet: HelmetServerState }
const stream = await renderToReadableStream(
-
+ <>
- ,
+
+ {mode === 'Dev' && }
+ {mode === 'Prod' && (
+
+ )}
+
+
+ >,
)
await stream.allReady
- const { helmet } = helmetContext
-
- const app = await streamToString(
+ return await streamToString(
// ReadableStream should be implemented in node)
stream as unknown as ReadableStream,
)
-
- return `
-
-
- ${helmet.title.toString()}
- ${helmet.priority.toString()}
- ${helmet.meta.toString()}
- ${helmet.link.toString()}
- ${helmet.script.toString()}
- ${generateCssLinks(cssBundles, mode)}
-
-
- ${app}
- ${renderToStaticMarkup(
- ,
- )}
- ${generateJsScripts(jsBundles, mode)}
- ${mode === 'Dev' ? VITE_DEV_AND_HMR : ''}
-
-
- `
}
}
diff --git a/packages/tuono/src/ssr/types.ts b/packages/tuono/src/ssr/types.ts
new file mode 100644
index 00000000..8501b1ad
--- /dev/null
+++ b/packages/tuono/src/ssr/types.ts
@@ -0,0 +1 @@
+export type Mode = 'Dev' | 'Prod'
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 92e0ff14..7e359235 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,8 +12,8 @@ importers:
specifier: 9.15.0
version: 9.15.0
'@types/node':
- specifier: 22.10.0
- version: 22.10.0
+ specifier: 22.10.3
+ version: 22.10.3
eslint:
specifier: 9.15.0
version: 9.15.0
@@ -94,43 +94,43 @@ importers:
examples/tuono-app:
dependencies:
react:
- specifier: 18.3.1
- version: 18.3.1
+ specifier: ^19.0.0
+ version: 19.0.0
react-dom:
- specifier: 18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
tuono:
specifier: link:../../packages/tuono
version: link:../../packages/tuono
devDependencies:
'@types/react':
- specifier: ^18.3.13
- version: 18.3.18
+ specifier: 19.0.2
+ version: 19.0.2
'@types/react-dom':
- specifier: ^18.3.0
- version: 18.3.5(@types/react@18.3.18)
+ specifier: 19.0.2
+ version: 19.0.2(@types/react@19.0.2)
typescript:
- specifier: ^5.6.3
+ specifier: 5.6.3
version: 5.6.3
examples/tuono-tutorial:
dependencies:
react:
- specifier: 18.3.1
- version: 18.3.1
+ specifier: ^19.0.0
+ version: 19.0.0
react-dom:
- specifier: 18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
tuono:
specifier: link:../../packages/tuono
version: link:../../packages/tuono
devDependencies:
'@types/react':
- specifier: ^18.3.13
- version: 18.3.18
+ specifier: ^19.0.2
+ version: 19.0.2
'@types/react-dom':
- specifier: ^18.3.0
- version: 18.3.5(@types/react@18.3.18)
+ specifier: ^19.0.2
+ version: 19.0.2(@types/react@19.0.2)
typescript:
specifier: ^5.6.3
version: 5.6.3
@@ -139,13 +139,13 @@ importers:
dependencies:
'@mdx-js/react':
specifier: 3.1.0
- version: 3.1.0(@types/react@18.3.18)(react@18.3.1)
+ version: 3.1.0(@types/react@19.0.2)(react@19.0.0)
react:
- specifier: 18.3.1
- version: 18.3.1
+ specifier: ^19.0.0
+ version: 19.0.0
react-dom:
- specifier: 18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
tuono:
specifier: link:../../packages/tuono
version: link:../../packages/tuono
@@ -154,11 +154,11 @@ importers:
specifier: 3.1.0
version: 3.1.0(acorn@8.14.0)(rollup@4.25.0)
'@types/react':
- specifier: 18.3.18
- version: 18.3.18
+ specifier: ^19.0.2
+ version: 19.0.2
'@types/react-dom':
- specifier: 18.3.5
- version: 18.3.5(@types/react@18.3.18)
+ specifier: ^19.0.2
+ version: 19.0.2(@types/react@19.0.2)
typescript:
specifier: ^5.6.3
version: 5.6.3
@@ -168,48 +168,21 @@ importers:
'@babel/core':
specifier: ^7.24.4
version: 7.26.0
- '@babel/generator':
- specifier: ^7.23.6
- version: 7.26.3
'@babel/plugin-syntax-jsx':
specifier: ^7.24.1
version: 7.25.9(@babel/core@7.26.0)
'@babel/plugin-syntax-typescript':
specifier: ^7.24.1
version: 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-react-jsx':
- specifier: ^7.23.4
- version: 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-typescript':
- specifier: ^7.24.1
- version: 7.26.3(@babel/core@7.26.0)
- '@babel/template':
- specifier: ^7.24.0
- version: 7.25.9
- '@babel/traverse':
- specifier: ^7.24.1
- version: 7.26.4
- '@babel/types':
- specifier: ^7.24.0
- version: 7.26.3
'@rollup/plugin-inject':
specifier: ^5.0.5
version: 5.0.5(rollup@4.25.0)
- '@types/babel__core':
- specifier: ^7.20.5
- version: 7.20.5
- '@types/node':
- specifier: ^22.0.0
- version: 22.10.3
'@vitejs/plugin-react-swc':
specifier: ^3.7.0
version: 3.7.2(vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)))
fast-text-encoding:
specifier: ^1.0.6
version: 1.0.6
- react-helmet-async:
- specifier: ^2.0.5
- version: 2.0.5(react@18.3.1)
tuono-fs-router-vite-plugin:
specifier: workspace:*
version: link:../tuono-fs-router-vite-plugin
@@ -229,26 +202,29 @@ importers:
'@tanstack/config':
specifier: 0.7.13
version: 0.7.13(@types/node@22.10.3)(esbuild@0.21.5)(rollup@4.25.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)))
- '@types/babel-traverse':
- specifier: ^6.25.10
- version: 6.25.10
+ '@types/babel__core':
+ specifier: 7.20.5
+ version: 7.20.5
'@types/babel__traverse':
- specifier: ^7.20.6
+ specifier: 7.20.6
version: 7.20.6
+ '@types/node':
+ specifier: 22.10.3
+ version: 22.10.3
'@types/react':
- specifier: 18.3.18
- version: 18.3.18
+ specifier: 19.0.2
+ version: 19.0.2
'@types/react-dom':
- specifier: 18.3.5
- version: 18.3.5(@types/react@18.3.18)
+ specifier: 19.0.2
+ version: 19.0.2(@types/react@19.0.2)
react:
- specifier: 18.3.1
- version: 18.3.1
+ specifier: 19.0.0
+ version: 19.0.0
react-dom:
- specifier: 18.3.1
- version: 18.3.1(react@18.3.1)
+ specifier: 19.0.0
+ version: 19.0.0(react@19.0.0)
vitest:
- specifier: ^2.0.0
+ specifier: 2.1.8
version: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(sugarss@4.0.1(postcss@8.4.49))
packages/tuono-fs-router-vite-plugin:
@@ -261,7 +237,7 @@ importers:
version: 7.26.3
prettier:
specifier: ^3.2.4
- version: 3.4.2
+ version: 3.4.1
vite:
specifier: ^5.2.11
version: 5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
@@ -273,7 +249,7 @@ importers:
specifier: ^7.20.5
version: 7.20.5
vitest:
- specifier: ^2.0.0
+ specifier: 2.1.8
version: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(sugarss@4.0.1(postcss@8.4.49))
packages/tuono-lazy-fn-vite-plugin:
@@ -296,43 +272,43 @@ importers:
version: 7.20.5
prettier:
specifier: ^3.2.4
- version: 3.4.2
+ version: 3.4.1
vitest:
- specifier: ^2.0.0
+ specifier: 2.1.8
version: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(sugarss@4.0.1(postcss@8.4.49))
packages/tuono-router:
dependencies:
react-intersection-observer:
specifier: ^9.13.0
- version: 9.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 9.13.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
devDependencies:
'@tanstack/config':
specifier: 0.7.13
version: 0.7.13(@types/node@22.10.3)(esbuild@0.21.5)(rollup@4.25.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)))
'@testing-library/jest-dom':
- specifier: ^6.6.0
+ specifier: 6.6.3
version: 6.6.3
'@testing-library/react':
- specifier: ^16.0.0
- version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: 16.1.0
+ version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@types/react':
- specifier: 18.3.18
- version: 18.3.18
+ specifier: 19.0.2
+ version: 19.0.2
'@vitejs/plugin-react-swc':
specifier: 3.7.2
version: 3.7.2(vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)))
jsdom:
- specifier: ^25.0.0
+ specifier: 25.0.1
version: 25.0.1
react:
- specifier: 18.3.1
- version: 18.3.1
+ specifier: 19.0.0
+ version: 19.0.0
vite:
specifier: 5.4.11
version: 5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
vitest:
- specifier: ^2.0.0
+ specifier: 2.1.8
version: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(sugarss@4.0.1(postcss@8.4.49))
packages:
@@ -356,10 +332,6 @@ packages:
resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.26.2':
- resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==}
- engines: {node: '>=6.9.0'}
-
'@babel/generator@7.26.3':
resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==}
engines: {node: '>=6.9.0'}
@@ -426,11 +398,6 @@ packages:
resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.26.2':
- resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
'@babel/parser@7.26.3':
resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
engines: {node: '>=6.0.0'}
@@ -460,12 +427,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-typescript@7.26.3':
- resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/runtime@7.26.0':
resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
engines: {node: '>=6.9.0'}
@@ -474,18 +435,10 @@ packages:
resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.25.9':
- resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==}
- engines: {node: '>=6.9.0'}
-
'@babel/traverse@7.26.4':
resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.26.0':
- resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
- engines: {node: '>=6.9.0'}
-
'@babel/types@7.26.3':
resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
engines: {node: '>=6.9.0'}
@@ -711,10 +664,6 @@ packages:
resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
engines: {node: '>=18.18'}
- '@jridgewell/gen-mapping@0.3.5':
- resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
- engines: {node: '>=6.0.0'}
-
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
@@ -1055,12 +1004,6 @@ packages:
'@types/aria-query@5.0.4':
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
- '@types/babel-traverse@6.25.10':
- resolution: {integrity: sha512-B3XitTFG8YeXb5lr7Nj62t1DikCDuAJ/4BDeK6GCuWREEmdunI9DWnv+81oHl2yQBQPWY/C1PmV3vaRZB4LQmw==}
-
- '@types/babel-types@7.0.16':
- resolution: {integrity: sha512-5QXs9GBFTNTmilLlWBhnsprqpjfrotyrnzUdwDrywEL/DA4LuCWQT300BTOXA3Y9ngT9F2uvmCoIxI6z8DlJEA==}
-
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -1103,9 +1046,6 @@ packages:
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
- '@types/node@22.10.0':
- resolution: {integrity: sha512-XC70cRZVElFHfIUB40FgZOBbgJYFKKMa5nb9lxcwYstFG/Mi+/Y0bGS+rs6Dmhmkpq4pnNiLiuZAbc02YCOnmA==}
-
'@types/node@22.10.3':
resolution: {integrity: sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==}
@@ -1117,9 +1057,17 @@ packages:
peerDependencies:
'@types/react': ^18.0.0
+ '@types/react-dom@19.0.2':
+ resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==}
+ peerDependencies:
+ '@types/react': ^19.0.0
+
'@types/react@18.3.18':
resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==}
+ '@types/react@19.0.2':
+ resolution: {integrity: sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==}
+
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -1328,10 +1276,6 @@ packages:
resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
engines: {node: '>= 0.4'}
- array.prototype.flatmap@1.3.2:
- resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
- engines: {node: '>= 0.4'}
-
array.prototype.flatmap@1.3.3:
resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
engines: {node: '>= 0.4'}
@@ -1547,15 +1491,6 @@ packages:
supports-color:
optional: true
- debug@4.3.7:
- resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: '>=6.0'}
@@ -2268,11 +2203,6 @@ packages:
canvas:
optional: true
- jsesc@3.0.2:
- resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
- engines: {node: '>=6'}
- hasBin: true
-
jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: '>=6'}
@@ -2364,9 +2294,6 @@ packages:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
- magic-string@0.30.14:
- resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==}
-
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
@@ -2590,10 +2517,6 @@ packages:
resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
engines: {node: '>=0.10.0'}
- object.values@1.2.0:
- resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
- engines: {node: '>= 0.4'}
-
object.values@1.2.1:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
@@ -2730,11 +2653,6 @@ packages:
engines: {node: '>=14'}
hasBin: true
- prettier@3.4.2:
- resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
- engines: {node: '>=14'}
- hasBin: true
-
pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -2760,6 +2678,11 @@ packages:
peerDependencies:
react: ^18.3.1
+ react-dom@19.0.0:
+ resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
+ peerDependencies:
+ react: ^19.0.0
+
react-fast-compare@3.2.2:
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
@@ -2829,6 +2752,10 @@ packages:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
+ react@19.0.0:
+ resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
+ engines: {node: '>=0.10.0'}
+
rechoir@0.8.0:
resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
engines: {node: '>= 10.13.0'}
@@ -2932,6 +2859,9 @@ packages:
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+ scheduler@0.25.0:
+ resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
+
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -3600,26 +3530,18 @@ snapshots:
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
'@babel/helpers': 7.26.0
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.26.3
'@babel/template': 7.25.9
'@babel/traverse': 7.26.4
'@babel/types': 7.26.3
convert-source-map: 2.0.0
- debug: 4.3.7
+ debug: 4.4.0
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.26.2':
- dependencies:
- '@babel/parser': 7.26.2
- '@babel/types': 7.26.0
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
- jsesc: 3.0.2
-
'@babel/generator@7.26.3':
dependencies:
'@babel/parser': 7.26.3
@@ -3709,10 +3631,6 @@ snapshots:
'@babel/template': 7.25.9
'@babel/types': 7.26.3
- '@babel/parser@7.26.2':
- dependencies:
- '@babel/types': 7.26.3
-
'@babel/parser@7.26.3':
dependencies:
'@babel/types': 7.26.3
@@ -3749,17 +3667,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)':
- dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-annotate-as-pure': 7.25.9
- '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
- '@babel/helper-plugin-utils': 7.25.9
- '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
- '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
- transitivePeerDependencies:
- - supports-color
-
'@babel/runtime@7.26.0':
dependencies:
regenerator-runtime: 0.14.1
@@ -3767,21 +3674,9 @@ snapshots:
'@babel/template@7.25.9':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.26.3
'@babel/types': 7.26.3
- '@babel/traverse@7.25.9':
- dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
- '@babel/parser': 7.26.2
- '@babel/template': 7.25.9
- '@babel/types': 7.26.0
- debug: 4.3.7
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
-
'@babel/traverse@7.26.4':
dependencies:
'@babel/code-frame': 7.26.2
@@ -3794,11 +3689,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/types@7.26.0':
- dependencies:
- '@babel/helper-string-parser': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
-
'@babel/types@7.26.3':
dependencies:
'@babel/helper-string-parser': 7.25.9
@@ -3894,7 +3784,7 @@ snapshots:
'@eslint/config-array@0.19.0':
dependencies:
'@eslint/object-schema': 2.1.4
- debug: 4.3.7
+ debug: 4.4.0
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -3904,7 +3794,7 @@ snapshots:
'@eslint/eslintrc@3.2.0':
dependencies:
ajv: 6.12.6
- debug: 4.3.7
+ debug: 4.4.0
espree: 10.3.0
globals: 14.0.0
ignore: 5.3.2
@@ -3961,12 +3851,6 @@ snapshots:
'@humanwhocodes/retry@0.4.1': {}
- '@jridgewell/gen-mapping@0.3.5':
- dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
-
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
@@ -4055,6 +3939,12 @@ snapshots:
'@types/react': 18.3.18
react: 18.3.1
+ '@mdx-js/react@3.1.0(@types/react@19.0.2)(react@19.0.0)':
+ dependencies:
+ '@types/mdx': 2.0.13
+ '@types/react': 19.0.2
+ react: 19.0.0
+
'@mdx-js/rollup@3.1.0(acorn@8.14.0)(rollup@4.25.0)':
dependencies:
'@mdx-js/mdx': 3.1.0(acorn@8.14.0)
@@ -4119,7 +4009,7 @@ snapshots:
dependencies:
'@rollup/pluginutils': 5.1.3(rollup@4.25.0)
estree-walker: 2.0.2
- magic-string: 0.30.14
+ magic-string: 0.30.17
optionalDependencies:
rollup: 4.25.0
@@ -4324,15 +4214,15 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
- '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@babel/runtime': 7.26.0
'@testing-library/dom': 10.4.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
+ react: 19.0.0
+ react-dom: 19.0.0(react@19.0.0)
optionalDependencies:
- '@types/react': 18.3.18
- '@types/react-dom': 18.3.5(@types/react@18.3.18)
+ '@types/react': 19.0.2
+ '@types/react-dom': 19.0.2(@types/react@19.0.2)
'@types/acorn@4.0.6':
dependencies:
@@ -4342,15 +4232,9 @@ snapshots:
'@types/aria-query@5.0.4': {}
- '@types/babel-traverse@6.25.10':
- dependencies:
- '@types/babel-types': 7.0.16
-
- '@types/babel-types@7.0.16': {}
-
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.26.3
'@babel/types': 7.26.3
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
@@ -4362,7 +4246,7 @@ snapshots:
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.26.3
'@babel/types': 7.26.3
'@types/babel__traverse@7.20.6':
@@ -4399,10 +4283,6 @@ snapshots:
'@types/ms@0.7.34': {}
- '@types/node@22.10.0':
- dependencies:
- undici-types: 6.20.0
-
'@types/node@22.10.3':
dependencies:
undici-types: 6.20.0
@@ -4413,11 +4293,19 @@ snapshots:
dependencies:
'@types/react': 18.3.18
+ '@types/react-dom@19.0.2(@types/react@19.0.2)':
+ dependencies:
+ '@types/react': 19.0.2
+
'@types/react@18.3.18':
dependencies:
'@types/prop-types': 15.7.14
csstype: 3.1.3
+ '@types/react@19.0.2':
+ dependencies:
+ csstype: 3.1.3
+
'@types/unist@2.0.11': {}
'@types/unist@3.0.3': {}
@@ -4506,13 +4394,6 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
- '@vitejs/plugin-react-swc@3.7.2(vite@5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49)))':
- dependencies:
- '@swc/core': 1.9.3
- vite: 5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49))
- transitivePeerDependencies:
- - '@swc/helpers'
-
'@vitejs/plugin-react-swc@3.7.2(vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)))':
dependencies:
'@swc/core': 1.9.3
@@ -4691,13 +4572,6 @@ snapshots:
es-abstract: 1.23.7
es-shim-unscopables: 1.0.2
- array.prototype.flatmap@1.3.2:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.23.7
- es-shim-unscopables: 1.0.2
-
array.prototype.flatmap@1.3.3:
dependencies:
call-bind: 1.0.8
@@ -4916,10 +4790,6 @@ snapshots:
dependencies:
ms: 2.1.3
- debug@4.3.7:
- dependencies:
- ms: 2.1.3
-
debug@4.4.0:
dependencies:
ms: 2.1.3
@@ -5142,7 +5012,7 @@ snapshots:
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.15.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
- debug: 4.3.7
+ debug: 4.4.0
enhanced-resolve: 5.17.1
eslint: 9.15.0
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.15.0(eslint@9.15.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0)
@@ -5175,7 +5045,7 @@ snapshots:
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5
array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
+ array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
eslint: 9.15.0
@@ -5187,7 +5057,7 @@ snapshots:
minimatch: 3.1.2
object.fromentries: 2.0.8
object.groupby: 1.0.3
- object.values: 1.2.0
+ object.values: 1.2.1
semver: 6.3.1
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
@@ -5250,7 +5120,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.5
- debug: 4.3.7
+ debug: 4.4.0
escape-string-regexp: 4.0.0
eslint-scope: 8.2.0
eslint-visitor-keys: 4.2.0
@@ -5832,8 +5702,6 @@ snapshots:
- supports-color
- utf-8-validate
- jsesc@3.0.2: {}
-
jsesc@3.1.0: {}
json-buffer@3.0.1: {}
@@ -5923,10 +5791,6 @@ snapshots:
lz-string@1.5.0: {}
- magic-string@0.30.14:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
-
magic-string@0.30.17:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -6336,12 +6200,6 @@ snapshots:
dependencies:
isobject: 3.0.1
- object.values@1.2.0:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-object-atoms: 1.0.0
-
object.values@1.2.1:
dependencies:
call-bind: 1.0.8
@@ -6468,8 +6326,6 @@ snapshots:
prettier@3.4.1: {}
- prettier@3.4.2: {}
-
pretty-format@27.5.1:
dependencies:
ansi-regex: 5.0.1
@@ -6496,6 +6352,11 @@ snapshots:
react: 18.3.1
scheduler: 0.23.2
+ react-dom@19.0.0(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ scheduler: 0.25.0
+
react-fast-compare@3.2.2: {}
react-helmet-async@2.0.5(react@18.3.1):
@@ -6511,6 +6372,12 @@ snapshots:
optionalDependencies:
react-dom: 18.3.1(react@18.3.1)
+ react-intersection-observer@9.13.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ optionalDependencies:
+ react-dom: 19.0.0(react@19.0.0)
+
react-is@16.13.1: {}
react-is@17.0.2: {}
@@ -6561,6 +6428,8 @@ snapshots:
dependencies:
loose-envify: 1.4.0
+ react@19.0.0: {}
+
rechoir@0.8.0:
dependencies:
resolve: 1.22.8
@@ -6683,7 +6552,7 @@ snapshots:
rollup-plugin-preserve-directives@0.4.0(rollup@4.25.0):
dependencies:
'@rollup/pluginutils': 5.1.3(rollup@4.25.0)
- magic-string: 0.30.14
+ magic-string: 0.30.17
rollup: 4.25.0
rollup@4.25.0:
@@ -6740,6 +6609,8 @@ snapshots:
dependencies:
loose-envify: 1.4.0
+ scheduler@0.25.0: {}
+
semver@6.3.1: {}
semver@7.5.4:
@@ -6976,12 +6847,12 @@ snapshots:
tslib@2.8.1: {}
- tuono-fs-router-vite-plugin@0.16.9(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49)):
+ tuono-fs-router-vite-plugin@0.16.9(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)):
dependencies:
'@babel/core': 7.26.0
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
prettier: 3.4.1
- vite: 5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49))
+ vite: 5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
transitivePeerDependencies:
- '@types/node'
- less
@@ -6993,11 +6864,11 @@ snapshots:
- supports-color
- terser
- tuono-lazy-fn-vite-plugin@0.16.9(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49)):
+ tuono-lazy-fn-vite-plugin@0.16.9(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)):
dependencies:
'@babel/core': 7.26.0
- '@babel/types': 7.26.0
- vite: 5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49))
+ '@babel/types': 7.26.3
+ vite: 5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
transitivePeerDependencies:
- '@types/node'
- less
@@ -7019,26 +6890,26 @@ snapshots:
tuono@0.16.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.25.0)(sugarss@4.0.1(postcss@8.4.49)):
dependencies:
'@babel/core': 7.26.0
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.26.3
'@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
'@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
'@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0)
'@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0)
'@babel/template': 7.25.9
- '@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/traverse': 7.26.4
+ '@babel/types': 7.26.3
'@rollup/plugin-inject': 5.0.5(rollup@4.25.0)
'@types/babel__core': 7.20.5
- '@types/node': 22.10.0
- '@vitejs/plugin-react-swc': 3.7.2(vite@5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49)))
+ '@types/node': 22.10.3
+ '@vitejs/plugin-react-swc': 3.7.2(vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)))
fast-text-encoding: 1.0.6
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-helmet-async: 2.0.5(react@18.3.1)
- tuono-fs-router-vite-plugin: 0.16.9(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49))
- tuono-lazy-fn-vite-plugin: 0.16.9(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49))
+ tuono-fs-router-vite-plugin: 0.16.9(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
+ tuono-lazy-fn-vite-plugin: 0.16.9(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
tuono-router: 0.16.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- vite: 5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49))
+ vite: 5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49))
web-streams-polyfill: 4.0.0
transitivePeerDependencies:
- '@swc/helpers'
@@ -7270,7 +7141,7 @@ snapshots:
'@vue/language-core': 1.8.27(typescript@5.7.2)
debug: 4.4.0
kolorist: 1.8.0
- magic-string: 0.30.14
+ magic-string: 0.30.17
typescript: 5.7.2
vue-tsc: 1.8.27(typescript@5.7.2)
optionalDependencies:
@@ -7295,16 +7166,6 @@ snapshots:
- supports-color
- typescript
- vite@5.4.11(@types/node@22.10.0)(sugarss@4.0.1(postcss@8.4.49)):
- dependencies:
- esbuild: 0.21.5
- postcss: 8.4.49
- rollup: 4.25.0
- optionalDependencies:
- '@types/node': 22.10.0
- fsevents: 2.3.3
- sugarss: 4.0.1(postcss@8.4.49)
-
vite@5.4.11(@types/node@22.10.3)(sugarss@4.0.1(postcss@8.4.49)):
dependencies:
esbuild: 0.21.5