{ "name": "shellphoneappremixed", "private": true, "sideEffects": false, "scripts": { "dev:build": "cross-env NODE_ENV=development dotenv npm run build:server -- --watch", "dev:css": "cross-env NODE_ENV=development tailwindcss -i ./styles/tailwind.css -o ./app/styles/tailwind.css --watch", "dev:remix": "cross-env NODE_ENV=development remix watch", "dev:server": "cross-env NODE_ENV=development dotenv node ./server.js", "dev:init": "cross-env NODE_ENV=development dotenv run-s build:remix build:server", "dev": "npm run dev:init && run-p dev:build dev:css dev:remix dev:server", "build:server": "node ./scripts/build-server.js", "build:css": "tailwindcss -i ./styles/tailwind.css -o ./app/styles/tailwind.css", "build:remix": "remix build", "build": "cross-env NODE_ENV=production run-s build:css build:remix build:server", "start": "cross-env NODE_ENV=production node ./server.js", "test": "vitest", "test:coverage": "vitest run --coverage", "lint": "eslint --ignore-path .gitignore --ext .js,.ts,.tsx .", "db:setup": "prisma migrate deploy", "e2e:run": "cypress run", "e2e:ci": "start-server-and-test start http://localhost:3000/ e2e:run", "e2e:local": "start-server-and-test dev http://localhost:3000/ e2e:run", "e2e": "dotenv -e .env.e2e npm run e2e:local", "prepare": "husky install" }, "lint-staged": { "*.{js,ts,tsx,css}": "prettier --write", "*.prisma": "prisma format" }, "prettier": { "bracketSameLine": false, "printWidth": 120, "quoteProps": "as-needed", "semi": true, "singleQuote": false, "tabWidth": 4, "trailingComma": "all", "useTabs": true }, "eslintConfig": { "env": { "node": true }, "extends": [ "@remix-run/eslint-config" ] }, "dependencies": { "@bull-board/express": "3.11.0", "@headlessui/react": "1.6.1", "@maizzle/framework": "3.7.3", "@prisma/client": "3.14.0", "@react-aria/interactions": "3.8.4", "@remix-run/express": "1.4.3", "@remix-run/node": "1.4.3", "@remix-run/react": "1.4.3", "@tailwindcss/forms": "0.5.1", "@tailwindcss/line-clamp": "0.4.0", "@tailwindcss/typography": "0.5.2", "awesome-phonenumber": "3.0.1", "aws-sdk": "2.1134.0", "bullmq": "1.82.0", "clsx": "1.1.1", "compression": "1.7.4", "cross-env": "7.0.3", "express": "4.18.1", "ioredis": "5.0.4", "isbot": "3.4.7", "jotai": "1.6.6", "luxon": "2.4.0", "morgan": "1.10.0", "nanoid": "3.3.4", "nodemailer": "6.7.5", "preview-email": "3.0.5", "react": "18.1.0", "react-dom": "18.1.0", "react-icons": "4.3.1", "remix-auth": "3.2.2", "remix-auth-form": "1.1.2", "remix-seo": "0.1.0", "remix-utils": "3.2.0", "secure-password": "4.0.0", "stripe": "9.1.0", "superjson-remix": "0.1.2", "tiny-invariant": "1.2.0", "tslog": "3.3.3", "twilio": "3.77.0", "zod": "3.16.0" }, "devDependencies": { "@remix-run/dev": "1.4.3", "@remix-run/eslint-config": "1.4.3", "@testing-library/cypress": "8.0.2", "@testing-library/dom": "8.13.0", "@testing-library/jest-dom": "5.16.4", "@testing-library/react": "13.2.0", "@testing-library/user-event": "14.2.0", "@types/compression": "1.7.2", "@types/express": "4.17.13", "@types/luxon": "2.3.2", "@types/morgan": "1.9.3", "@types/nodemailer": "6.4.4", "@types/preview-email": "2.0.1", "@types/react": "18.0.9", "@types/react-dom": "18.0.4", "@types/secure-password": "3.1.1", "@vitejs/plugin-react": "1.3.2", "c8": "7.11.2", "cypress": "9.6.1", "dotenv-cli": "5.1.0", "esbuild": "0.14.39", "esbuild-node-externals": "1.4.1", "eslint": "8.15.0", "happy-dom": "3.2.0", "husky": "7.0.4", "lint-staged": "12.4.1", "npm-run-all": "4.1.5", "prettier": "2.6.2", "prettier-plugin-prisma": "3.14.0", "prisma": "3.14.0", "start-server-and-test": "1.14.0", "tailwindcss": "3.0.24", "ts-eager": "npm:@m5r/ts-eager@2.1.0", "typescript": "4.6.4", "vite": "2.9.9", "vite-tsconfig-paths": "3.4.1", "vitest": "0.11.0" }, "engines": { "node": "16" }, "prisma": { "schema": "prisma/schema.prisma", "seed": "ts-eager prisma/seed.ts" } }