{ "name": "josemi-blog-fullstack", "private": true, "version": "1.0.0", "type": "module", "scripts": { "frontend": "vite", "backend": "cd backend && node src/index.js", "dev": "concurrently \"npm run frontend\" \"npm run backend\"", "build": "vite build", "lint": "eslint .", "preview": "vite preview" }, "dependencies": { "@tiptap/extension-code-block-lowlight": "^2.11.5", "@tiptap/pm": "^2.11.5", "@tiptap/react": "^2.11.5", "@tiptap/starter-kit": "^2.11.5", "bcryptjs": "^3.0.3", "cors": "^2.8.6", "express": "^5.2.1", "jsonwebtoken": "^9.0.3", "lowlight": "^3.3.0", "pg": "^8.18.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.2.0", "sqlite": "^5.1.1", "sqlite3": "^5.1.7" }, "devDependencies": { "@eslint/js": "^9.15.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.3.4", "concurrently": "^9.2.1", "eslint": "^9.15.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.14", "globals": "^15.12.0", "vite": "^6.1.0" }, "overrides": { "ajv": "^8.17.1" } }