{ "name": "fromchat", "private": true, "version": "0.0.0", "type": "module", "main": "frontend/build/electron/core/main.js", "description": "A 100% Open Source Messenger", "license": "GPL-3.0", "authors": "denis0001-dev", "scripts": { "backend:run": "cd backend && dotenv -e ../deployment/.env -- ../.venv/bin/uvicorn main:app --host 127.0.0.1 --port 8300 --reload --reload-exclude './alembic' --reload-exclude './alembic/*' --reload-exclude './alembic/versions/*' --access-log", "backend:dependencies": "python3 -m venv .venv && ./.venv/bin/pip3 install -r backend/requirements.txt", "backend:reinstall": "rm -rf .venv && npm run backend:dependencies", "backend:clean": "rm -rf backend/data", "frontend:dev": "vite frontend", "frontend:typecheck": "tsc --project frontend", "frontend:lint": "eslint frontend/src --ext .js,.jsx,.ts,.tsx", "frontend:check": "npm run frontend:lint && npm run frontend:typecheck", "frontend:build": "npm run frontend:check && vite build frontend", "frontend:electron:dev": "VITE_ELECTRON=true npm run frontend:dev", "frontend:electron:build": "VITE_ELECTRON=true npm run frontend:build && rm -rf out && electron-forge make --force --arch arm64,x64", "frontend:preview": "vite preview frontend", "frontend:dependencies": "npm install --ignore-scripts", "frontend:clean": "rm -rf frontend/dist", "dev": "concurrently 'npm run frontend:dev' 'npm run backend:run'", "dev:electron": "concurrently 'npm run frontend:electron:dev' 'npm run backend:run'", "build:electron": "npm run frontend:electron:build", "build": "npm run frontend:build && npm run build:electron", "preview": "cd deployment && docker compose up --build --watch", "preview:clean": "cd deployment && docker compose down -v", "clean": "npm run backend:clean && npm run frontend:clean && npm run preview:clean", "install": "npm run backend:dependencies && npm run generate:env", "prepare": "husky", "generate:env": "echo \"JWT_SECRET=\\\"$(openssl rand -base64 32)\\\"\" > deployment/.env && ./.venv/bin/python3 backend/generate_vapid_keys.py 1>>deployment/.env" }, "files": [ "frontend/build/electron" ], "devDependencies": { "@electron-forge/cli": "^7.9.0", "@electron-forge/maker-deb": "^7.9.0", "@electron-forge/maker-dmg": "^7.9.0", "@electron-forge/maker-rpm": "^7.9.0", "@electron-forge/maker-squirrel": "^7.9.0", "@electron-forge/maker-zip": "^7.9.0", "@electron-forge/plugin-auto-unpack-natives": "^7.9.0", "@electron-forge/plugin-fuses": "^7.9.0", "@electron/fuses": "^1.0.0", "@eslint/js": "^9.37.0", "@types/eslint-plugin-jsx-a11y": "^6.10.1", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", "@typescript-eslint/eslint-plugin": "^8.46.0", "@typescript-eslint/parser": "^8.46.0", "@vitejs/plugin-react": "^5.0.3", "autoprefixer": "^10.4.21", "concurrently": "^9.2.1", "dotenv-cli": "^10.0.0", "electron": "^38.1.2", "eslint": "^9.37.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.0", "eslint-plugin-react-refresh": "^0.4.23", "husky": "^9.1.7", "postcss": "^8.5.6", "rollup-plugin-visualizer": "^6.0.4", "sass-embedded": "^1.93.0", "terser": "^5.44.0", "typescript": "~5.9.2", "vite": "^7.1.6", "vite-plugin-electron": "^0.29.0", "vite-plugin-electron-renderer": "^0.14.6", "vite-plugin-html": "^3.2.2" }, "dependencies": { "dompurify": "^3.2.7", "electron-squirrel-startup": "^1.0.1", "marked": "^16.3.0", "mdui": "^2.1.4", "react": "^19.1.1", "react-dom": "^19.1.1", "react-router-dom": "^7.9.3", "tweetnacl": "^1.0.3", "use-immer": "^0.11.0", "zustand": "^5.0.8" }, "config": { "forge": "frontend/forge.config.ts" } }