Major bumps: pinia 2 -> 4, vue-router 4 -> 5, vite 6 -> 8, eslint 9 -> 10,
vue-tsc 2 -> 3, @vitejs/plugin-vue 5 -> 6, pdfjs-dist 5 -> 6, marked 17 -> 18.
TypeScript stays on 5.9.3: typescript-eslint declares `typescript
>=4.8.4 <6.1.0` and refuses to load under TS 7, and TS 6 exists only as a
beta. 5.9.3 is the highest version that keeps `make lint-webapp` working.
Drops @codemirror/basic-setup (no importers) and @types/dompurify (an
npm-deprecated stub; dompurify ships its own types).
Vite 8 builds with rolldown, which rejects a type imported as a value, so
Extension moves to an `import type` in JsonEditor.