{ "name": "foxnouns-fe", "private": true, "sideEffects": false, "type": "module", "scripts": { "build": "remix vite:build", "dev": "node ./server.js", "lint": "eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .", "start": "cross-env NODE_ENV=production node ./server.js", "typecheck": "tsc", "format": "prettier -w .", "extract-translations": "i18next 'app/**/*.tsx' -o 'public/locales/$LOCALE.json'" }, "dependencies": { "@remix-run/express": "^2.11.2", "@remix-run/node": "^2.11.2", "@remix-run/react": "^2.11.2", "@remix-run/serve": "^2.11.2", "bootstrap": "^5.3.3", "change-case": "^5.4.4", "classnames": "^2.5.1", "compression": "^1.7.4", "cookie": "^0.6.0", "cross-env": "^7.0.3", "dotenv": "^16.4.5", "express": "^4.19.2", "i18next": "^23.15.1", "i18next-browser-languagedetector": "^8.0.0", "i18next-fs-backend": "^2.3.2", "i18next-http-backend": "^2.6.1", "isbot": "^4.1.0", "luxon": "^3.5.0", "markdown-it": "^14.1.0", "morgan": "^1.10.0", "react": "^18.2.0", "react-bootstrap": "^2.10.4", "react-bootstrap-icons": "^1.11.4", "react-dom": "^18.2.0", "react-i18next": "^15.0.1", "remix-i18next": "^6.3.0", "sanitize-html": "^2.13.0" }, "devDependencies": { "@fontsource/firago": "^5.0.11", "@remix-run/dev": "^2.11.2", "@types/compression": "^1.7.5", "@types/cookie": "^0.6.0", "@types/express": "^4.17.21", "@types/luxon": "^3.4.2", "@types/markdown-it": "^14.1.2", "@types/morgan": "^1.9.9", "@types/react": "^18.2.20", "@types/react-dom": "^18.2.7", "@types/sanitize-html": "^2.13.0", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint": "^8.38.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.28.1", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "i18next-parser": "^9.0.2", "prettier": "^3.3.3", "sass": "1.77.6", "typescript": "^5.1.6", "vite": "^5.1.0", "vite-tsconfig-paths": "^4.2.1" }, "engines": { "node": ">=20.0.0" } }