{ "name": "project-reactrouter-cms", "private": true, "type": "module", "scripts": { "build": "react-router build", "dev": "react-router dev", "start": "react-router-serve ./build/server/index.js", "typecheck": "react-router typegen && tsc", "knip": "knip", "format": "prettier --write .", "lint": "eslint .", "prepare": "husky", "validate": "pnpm lint && pnpm typecheck && pnpm knip" }, "dependencies": { "@edgefirst-dev/batcher": "^1.0.1", "@edgefirst-dev/jwt": "^1.2.0", "@edgefirst-dev/server-timing": "^0.0.1", "@headlessui/react": "^2.2.0", "@heroicons/react": "^2.2.0", "@hookform/resolvers": "^4.1.1", "@monaco-editor/react": "^4.7.0", "@oslojs/crypto": "^1.0.1", "@oslojs/encoding": "^1.1.0", "@react-router/fs-routes": "^7.1.3", "@react-router/node": "^7.1.3", "@react-router/serve": "^7.1.3", "@sidekickicons/react": "^0.12.0", "@tiptap/extension-color": "^2.11.5", "@tiptap/extension-highlight": "^2.11.5", "@tiptap/extension-image": "^2.11.5", "@tiptap/extension-link": "^2.11.5", "@tiptap/extension-text-align": "^2.11.5", "@tiptap/extension-text-style": "^2.11.5", "@tiptap/react": "^2.11.5", "@tiptap/starter-kit": "^2.11.5", "chart.js": "^4.4.8", "class-variance-authority": "^0.7.1", "datatables.net-dt": "^2.2.2", "datatables.net-react": "^1.0.0", "embla-carousel-autoplay": "^8.5.2", "embla-carousel-react": "^8.5.2", "html-react-parser": "^5.2.2", "intl-parse-accept-language": "^1.0.0", "is-ip": "^5.0.1", "isbot": "^5.1.17", "react": "^19.0.0", "react-chartjs-2": "^5.3.0", "react-colorful": "^5.6.1", "react-dom": "^19.0.0", "react-hook-form": "^7.54.2", "react-hook-reading-time": "^1.0.0", "react-hot-toast": "^2.5.2", "react-router": "^7.1.3", "react-share": "^5.2.2", "remix-hook-form": "^6.1.3", "remix-utils": "^8.5.0", "string-strip-html": "^13.4.12", "tailwind-merge": "^3.0.1", "xior": "^0.6.3", "zod": "^3.24.2" }, "devDependencies": { "@commitlint/cli": "^19.6.1", "@commitlint/config-conventional": "^19.6.0", "@commitlint/format": "^19.5.0", "@commitlint/is-ignored": "^19.6.0", "@eslint/js": "^9.19.0", "@hookform/devtools": "^4.3.3", "@react-router/dev": "^7.1.3", "@tailwindcss/typography": "^0.5.16", "@tailwindcss/vite": "^4.0.0", "@tanstack/eslint-plugin-query": "^5.66.1", "@types/node": "^20.17.16", "@types/react": "^19.0.1", "@types/react-dom": "^19.0.1", "@typescript-eslint/parser": "^8.22.0", "eslint": "^8.0.1", "eslint-config-prettier": "^10.0.1", "eslint-import-resolver-typescript": "^3.8.3", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.4", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-unicorn": "^56.0.1", "eslint-plugin-unused-imports": "^4.1.4", "globals": "^15.14.0", "husky": "^9.1.7", "knip": "^5.43.6", "lint-staged": "^15.4.3", "prettier": "^3.4.2", "prettier-plugin-tailwindcss": "^0.6.11", "react-router-devtools": "^1.1.0", "tailwindcss": "^4.0.0", "typescript": "^5.7.3", "typescript-eslint": "^8.22.0", "vite": "^5.4.11", "vite-tsconfig-paths": "^5.1.4" }, "engines": { "node": ">=22.13.1", "pnpm": ">=9.15.4" } }