The console took pasted SVG text and a URL. It now: - takes a PNG or SVG and makes the logo BIMI accepts (SVG Tiny PS, square, at most 32 KB). An SVG has what the format forbids removed and is told what; a PNG is traced into vectors in the browser (imagetracerjs, public domain), walking down quality presets until it fits. The person positions it as in the photo editor: drag, zoom, background colour, preview in a circle or rounded square, and downloads the exact SVG to give a certificate authority - holds the .pem the authority returns, validated against the logo and domain, and serves it at /.well-known/bimi/vmc.pem (routed by the webmail) - shows the DNS record and runs the setup check (logo, DMARC, record, public URLs, certificate) - a golden-file contract: the SVGs the studio produces are validated by the server's own validator (Go) and pinned by the studio's tests (TS) - found by those tests: an element inside a link kept its onclick when the link was unwrapped; links are now unwrapped before cleaning - the BIMI and photo texts are in Brazilian Portuguese with accents (they had been written without), and in Spanish with accents A VMC cannot be generated from an image: it is issued by a certificate authority. The README and the panel say so. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
43 lines
950 B
JSON
43 lines
950 B
JSON
{
|
|
"name": "@lambdamail/webmail",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start -p 3000",
|
|
"test": "vitest run",
|
|
"lint": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"clsx": "^2.1.1",
|
|
"dompurify": "^3.4.14",
|
|
"framer-motion": "^11.18.2",
|
|
"imagetracerjs": "1.2.6",
|
|
"lucide-react": "^0.474.0",
|
|
"next": "15.5.27",
|
|
"qrcode-generator": "^2.0.4",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"tailwind-merge": "^3.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/dompurify": "^3.0.5",
|
|
"@types/node": "^20.14.0",
|
|
"@types/react": "^18.3.3",
|
|
"autoprefixer": "^10.4.20",
|
|
"jsdom": "^29.1.1",
|
|
"postcss": "^8.5.25",
|
|
"tailwindcss": "^3.4.17",
|
|
"typescript": "^5.5.4",
|
|
"vitest": "^3.2.7"
|
|
},
|
|
"overrides": {
|
|
"sharp": "^0.35.0",
|
|
"next": {
|
|
"postcss": "^8.5.25"
|
|
},
|
|
"nanoid": "^3.3.18"
|
|
}
|
|
}
|