diff --git a/package-lock.json b/package-lock.json
index 983a814..aa9a7e4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,19 +10,19 @@
"dependencies": {
"history": "^5.3.0",
"jszip": "^3.10.1",
- "preact": "^10.24.3",
- "preact-router": "^4.1.2"
+ "preact": "^10.25.0",
+ "preact-iso": "^2.8.1"
},
"devDependencies": {
- "@preact/preset-vite": "^2.9.1",
+ "@preact/preset-vite": "^2.9.2",
"@typescript-eslint/eslint-plugin": "^8.14.0",
"@typescript-eslint/parser": "^8.15.0",
"eslint": "^8.57.0",
"eslint-config-preact": "^1.5.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jest": "^28.9.0",
- "prettier": "^3.3.3",
- "typescript": "^5.6.3",
+ "prettier": "^3.4.1",
+ "typescript": "^5.7.2",
"vite": "^5.4.11"
}
},
@@ -1080,9 +1080,9 @@
}
},
"node_modules/@preact/preset-vite": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.9.1.tgz",
- "integrity": "sha512-JecWzrOx7ogFhklSMhY+aH/24pajL0Vx+beEgau3WDMUUAo32cpUo/UqerPhLOyhCKXlxK9a3cRoa8g68ZAp5g==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.9.2.tgz",
+ "integrity": "sha512-Gtp0pPd4s/bZiPAvn4Lhd/on5YZXd/AaXoO03MMtLTmH7nsH3BuXFZnBqvXpqozBDthjxwDWwGEJcf129ctY+g==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.22.13",
@@ -1100,7 +1100,7 @@
},
"peerDependencies": {
"@babel/core": "7.x",
- "vite": "2.x || 3.x || 4.x || 5.x"
+ "vite": "2.x || 3.x || 4.x || 5.x || 6.x"
}
},
"node_modules/@prefresh/babel-plugin": {
@@ -4181,18 +4181,28 @@
}
},
"node_modules/preact": {
- "version": "10.24.3",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz",
- "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==",
+ "version": "10.25.2",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.2.tgz",
+ "integrity": "sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
- "node_modules/preact-router": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/preact-router/-/preact-router-4.1.2.tgz",
- "integrity": "sha512-uICUaUFYh+XQ+6vZtQn1q+X6rSqwq+zorWOCLWPF5FAsQh3EJ+RsDQ9Ee+fjk545YWQHfUxhrBAaemfxEnMOUg==",
+ "node_modules/preact-iso": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.8.1.tgz",
+ "integrity": "sha512-RL0yDdJcSiB4Wnk4fBqq0OE9QCfTEW7B2ULf8GHPx72AtFE+j1NvabjBF6y3rBgrNWSuuPuuiN4L4KxYteQD2Q==",
+ "peerDependencies": {
+ "preact": ">=10",
+ "preact-render-to-string": ">=6.4.0"
+ }
+ },
+ "node_modules/preact-render-to-string": {
+ "version": "6.5.11",
+ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz",
+ "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==",
+ "peer": true,
"peerDependencies": {
"preact": ">=10"
}
@@ -4207,9 +4217,9 @@
}
},
"node_modules/prettier": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
- "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz",
+ "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -4676,9 +4686,9 @@
}
},
"node_modules/typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
+ "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -5556,9 +5566,9 @@
}
},
"@preact/preset-vite": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.9.1.tgz",
- "integrity": "sha512-JecWzrOx7ogFhklSMhY+aH/24pajL0Vx+beEgau3WDMUUAo32cpUo/UqerPhLOyhCKXlxK9a3cRoa8g68ZAp5g==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.9.2.tgz",
+ "integrity": "sha512-Gtp0pPd4s/bZiPAvn4Lhd/on5YZXd/AaXoO03MMtLTmH7nsH3BuXFZnBqvXpqozBDthjxwDWwGEJcf129ctY+g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.22.13",
@@ -7701,14 +7711,21 @@
}
},
"preact": {
- "version": "10.24.3",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz",
- "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA=="
+ "version": "10.25.2",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.2.tgz",
+ "integrity": "sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw=="
+ },
+ "preact-iso": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/preact-iso/-/preact-iso-2.8.1.tgz",
+ "integrity": "sha512-RL0yDdJcSiB4Wnk4fBqq0OE9QCfTEW7B2ULf8GHPx72AtFE+j1NvabjBF6y3rBgrNWSuuPuuiN4L4KxYteQD2Q==",
+ "requires": {}
},
- "preact-router": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/preact-router/-/preact-router-4.1.2.tgz",
- "integrity": "sha512-uICUaUFYh+XQ+6vZtQn1q+X6rSqwq+zorWOCLWPF5FAsQh3EJ+RsDQ9Ee+fjk545YWQHfUxhrBAaemfxEnMOUg==",
+ "preact-render-to-string": {
+ "version": "6.5.11",
+ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz",
+ "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==",
+ "peer": true,
"requires": {}
},
"prelude-ls": {
@@ -7718,9 +7735,9 @@
"dev": true
},
"prettier": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
- "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz",
+ "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==",
"dev": true
},
"process-nextick-args": {
@@ -8045,9 +8062,9 @@
}
},
"typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
+ "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
"dev": true
},
"unbox-primitive": {
diff --git a/package.json b/package.json
index 1723dc1..9bd0214 100644
--- a/package.json
+++ b/package.json
@@ -16,19 +16,19 @@
"dependencies": {
"history": "^5.3.0",
"jszip": "^3.10.1",
- "preact": "^10.24.3",
- "preact-router": "^4.1.2"
+ "preact": "^10.25.0",
+ "preact-iso": "^2.8.1"
},
"devDependencies": {
- "@preact/preset-vite": "^2.9.1",
+ "@preact/preset-vite": "^2.9.2",
"@typescript-eslint/eslint-plugin": "^8.14.0",
"@typescript-eslint/parser": "^8.15.0",
"eslint": "^8.57.0",
"eslint-config-preact": "^1.5.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jest": "^28.9.0",
- "prettier": "^3.3.3",
- "typescript": "^5.6.3",
+ "prettier": "^3.4.1",
+ "typescript": "^5.7.2",
"vite": "^5.4.11"
}
}
diff --git a/src/app.tsx b/src/app.tsx
index f7721a7..3847999 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -1,5 +1,4 @@
-import Router from "preact-router";
-import { createHashHistory } from "history";
+import { LocationProvider, Router } from "preact-iso";
import Header from "./header";
import Home from "./pages/home";
import Export from "./pages/export";
@@ -7,17 +6,13 @@ import NotFound from "./pages/_404";
export function App() {
return (
- <>
+
- {/* @ts-expect-error type we know this works, the type is just incorrect*/}
-
- {/* @ts-expect-error type {path:string} is not assignable to type IntrinsicAttributes*/}
+
- {/* @ts-expect-error type {path:string} is not assignable to type IntrinsicAttributes*/}
- {/* @ts-expect-error type {default} is not assignable to type IntrinsicAttributes*/}
- >
+
);
}
diff --git a/src/header.tsx b/src/header.tsx
index cb0249c..c655092 100644
--- a/src/header.tsx
+++ b/src/header.tsx
@@ -1,10 +1,9 @@
-import { Link } from "preact-router/match";
export default function Header() {
return (
);