819d50a222
- API: detectCertRole() classifies certs as root/intermediate/end-entity via basicConstraints.cA + self-signed check (subject.hash === issuer.hash) - API: SplitEntry gains certRole field; filenames now reflect role (root-ca.pem, intermediate-1.pem, cert.pem) - Web: SplitTab shows colour-coded role badge per cert (red=Root-CA, amber=Zwischen-CA, blue=Zertifikat) - Web: "Alle als ZIP herunterladen" button via fflate (client-side) - i18n: add certRole labels + downloadZip action key (de + en) - i18n: add missing accentColor* and deleteAvatar* keys (de + en) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
43 lines
1.1 KiB
JSON
43 lines
1.1 KiB
JSON
{
|
|
"name": "@tessera/web",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"test": "vitest run",
|
|
"type-check": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@uiw/react-md-editor": "4.1.1",
|
|
"fflate": "^0.8.3",
|
|
"jose": "^6.2.3",
|
|
"next": "^15.3.0",
|
|
"next-intl": "^4.13.0",
|
|
"next-themes": "^0.4.6",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-grid-layout": "2.2.3",
|
|
"react-resizable": "^4.0.2",
|
|
"rehype-sanitize": "^6.0.0",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@types/react-grid-layout": "^2.1.0",
|
|
"@vitejs/plugin-react": "^6.0.2",
|
|
"jsdom": "^29.1.1",
|
|
"postcss": "^8.0.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.5.0",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|