{ "name": "guia-tes-digital", "description": "Guía digital de protocolos de emergencias para TES", "private": true, "version": "1.0.0", "type": "module", "scripts": { "dev": "vite", "dev:local": "bash scripts/dev-local.sh", "build": "vite build && node scripts/verify-build.js", "build:dev": "vite build --mode development", "build:github": "GITHUB_PAGES=true GITHUB_REPOSITORY_NAME=guia-tes-digital npm run build", "build:production": "NODE_ENV=production vite build && node scripts/verify-build.js", "verify:build": "node scripts/verify-build.js", "preview": "vite preview --host", "start:production": "npx serve -s dist -l 8607", "test": "vitest", "test:ui": "vitest --ui", "test:watch": "vitest --watch", "test:coverage": "vitest --coverage", "test:run": "vitest run", "lint": "eslint .", "lint:fix": "eslint . --fix", "typecheck": "tsc --noEmit", "verify:manual": "tsx scripts/verificar-manual.ts", "quality": "npm run typecheck && npm run lint && npm test -- --run", "precommit": "./scripts/pre-commit.sh", "scorm:generate": "tsx scripts/generate-scorm.ts", "scorm:test": "tsx scripts/generate-scorm.ts", "glossary:export": "tsx backend/scripts/generate-glossary-fixture.ts" }, "dependencies": { "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-select": "^2.2.5", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.12", "@radix-ui/react-toast": "^1.2.14", "@radix-ui/react-tooltip": "^1.2.7", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^3.6.0", "dompurify": "^3.3.1", "highlight.js": "^11.11.1", "lucide-react": "^0.462.0", "next-themes": "^0.3.0", "react": "^19.2.3", "react-dom": "^19.2.3", "react-markdown": "^10.1.0", "react-router-dom": "^6.30.1", "rehype-highlight": "^7.0.2", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "sonner": "^1.7.4", "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7", "zod": "^4.3.6" }, "overrides": { "react": "^19.2.3", "react-dom": "^19.2.3" }, "devDependencies": { "@eslint/js": "^9.32.0", "@tailwindcss/typography": "^0.5.16", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.1", "@types/dompurify": "^3.0.5", "@types/jszip": "^3.4.0", "@types/node": "^22.16.5", "@types/react": "^19.2.8", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react-swc": "^4.2.2", "@vitest/coverage-v8": "^4.0.17", "@vitest/ui": "^4.0.17", "autoprefixer": "^10.4.21", "eslint": "^9.32.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^15.15.0", "happy-dom": "^20.1.0", "jsdom": "^27.4.0", "jszip": "^3.10.1", "postcss": "^8.5.6", "rehype-stringify": "^10.0.1", "remark": "^15.0.1", "remark-rehype": "^11.1.2", "tailwindcss": "^3.4.17", "tsx": "^4.21.0", "typescript": "^5.8.3", "typescript-eslint": "^8.38.0", "vite": "^7.3.1", "vitest": "^4.0.17" } }