- Set Spanish as default language with ephemeral/encrypted privacy focus - Translate all user-facing strings and legal pages to Spanish - Replace Norwegian flag with Spanish flag in footer - Remove Hemmelig/terces.cloud links, add cloudhost.es sponsorship - Rewrite PrivacyPage: zero data collection, ephemeral design emphasis - Rewrite TermsPage: Spanish law, RGPD, paste.es/CloudHost.es references - Update PWA manifest, HTML meta tags, package.json branding - Rename webhook headers to X-Paste-Event / X-Paste-Signature - Update API docs title and contact to paste.es / cloudhost.es Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
123 lines
4.2 KiB
JSON
123 lines
4.2 KiB
JSON
{
|
|
"name": "paste-es",
|
|
"version": "7.0.0",
|
|
"description": "Comparte secretos de forma segura con mensajes cifrados que se autodestruyen tras ser leídos.",
|
|
"type": "module",
|
|
"main": "dist/app.js",
|
|
"scripts": {
|
|
"build": "npx vite build",
|
|
"start": "npx prisma migrate deploy && npx tsx dist/app.js",
|
|
"dev:api": "npx prisma migrate dev && npx tsx --watch server.ts",
|
|
"dev:client": "npx vite",
|
|
"dev": "npm run dev:client",
|
|
"migrate:dev": "npx prisma migrate dev",
|
|
"migrate:deploy": "npx prisma migrate deploy",
|
|
"migrate:reset": "npx prisma migrate reset",
|
|
"migrate:status": "npx prisma migrate status",
|
|
"set:admin": "npx tsx scripts/admin.ts",
|
|
"seed:demo": "npx tsx scripts/seed-demo.ts",
|
|
"deploy": "npm run build && npm run migrate:deploy && npm run start",
|
|
"test": "hurl api/tests",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:ui": "playwright test --ui",
|
|
"test:e2e:debug": "playwright test --debug",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"prepare": "husky || true"
|
|
},
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx,json,css,md}": "prettier --write"
|
|
},
|
|
"keywords": [
|
|
"react",
|
|
"vite",
|
|
"hono",
|
|
"secrets",
|
|
"encryption",
|
|
"privacy",
|
|
"security"
|
|
],
|
|
"dependencies": {
|
|
"@hono/node-server": "^1.19.7",
|
|
"@hono/swagger-ui": "^0.5.2",
|
|
"@hono/zod-openapi": "^1.1.5",
|
|
"@hono/zod-validator": "^0.7.5",
|
|
"@prisma/adapter-better-sqlite3": "^7.4.1",
|
|
"@prisma/client": "^7.4.1",
|
|
"@tailwindcss/vite": "^4.1.18",
|
|
"argon2": "^0.44.0",
|
|
"better-auth": "^1.4.6",
|
|
"better-sqlite3": "^12.5.0",
|
|
"croner": "^9.1.0",
|
|
"dlv": "^1.1.3",
|
|
"dotenv": "^17.2.3",
|
|
"hono": "^4.11.7",
|
|
"hono-rate-limiter": "^0.4.2",
|
|
"ip-address": "^10.1.0",
|
|
"ip-range-check": "^0.2.0",
|
|
"is-cidr": "^6.0.1",
|
|
"is-ip": "^5.0.1",
|
|
"isbot": "^5.1.32",
|
|
"nanoid": "^5.1.6",
|
|
"prisma": "^7.4.1",
|
|
"prom-client": "^15.1.3",
|
|
"react-markdown": "^10.1.0",
|
|
"ua-parser-js": "^2.0.7",
|
|
"validator": "^13.15.23",
|
|
"zod": "^4.1.13"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.39.2",
|
|
"@hono/vite-dev-server": "^0.23.0",
|
|
"@playwright/test": "^1.57.0",
|
|
"@tabler/icons-react": "^3.35.0",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@tiptap/extension-character-count": "^3.13.0",
|
|
"@tiptap/extension-color": "^3.13.0",
|
|
"@tiptap/extension-link": "^3.13.0",
|
|
"@tiptap/extension-list-item": "^3.13.0",
|
|
"@tiptap/extension-text-style": "^3.13.0",
|
|
"@tiptap/react": "^3.13.0",
|
|
"@tiptap/starter-kit": "^3.13.0",
|
|
"@types/dlv": "^1.1.5",
|
|
"@types/node": "^25.0.1",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/validator": "^13.15.10",
|
|
"@vitejs/plugin-react": "^5.1.2",
|
|
"autoprefixer": "^10.4.22",
|
|
"clsx": "^2.1.1",
|
|
"eslint": "^9.39.2",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.4.24",
|
|
"generate-password-browser": "^1.1.0",
|
|
"globals": "^16.5.0",
|
|
"husky": "^9.1.7",
|
|
"i18next": "^25.7.2",
|
|
"i18next-browser-languagedetector": "^8.2.0",
|
|
"lint-staged": "^16.2.7",
|
|
"lucide-react": "^0.561.0",
|
|
"postcss": "^8.5.6",
|
|
"prettier": "^3.7.4",
|
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
"prettier-plugin-prisma": "^5.0.0",
|
|
"qrcode.react": "^4.2.0",
|
|
"react": "^19.2.3",
|
|
"react-dom": "^19.2.3",
|
|
"react-dropzone": "^14.3.8",
|
|
"react-i18next": "^16.5.0",
|
|
"react-router-dom": "^7.12.0",
|
|
"recharts": "^3.5.1",
|
|
"sonner": "^2.0.7",
|
|
"tailwindcss": "^4.1.18",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.9.3",
|
|
"typescript-eslint": "^8.49.0",
|
|
"vite": "^7.2.7",
|
|
"zustand": "^5.0.9"
|
|
},
|
|
"prisma": {
|
|
"schema": "prisma/schema.prisma"
|
|
}
|
|
}
|