{ "name": "remnantchat", "version": "0.0.0", "homepage": "https://remnant.chat", "author": "Shiloh", "license": "GPL-2.0-or-later", "dependencies": { "@emotion/react": "^11.10.0", "@emotion/styled": "^11.10.0", "@mui/icons-material": "^5.8.4", "@mui/material": "^5.14.12", "@react-hook/debounce": "^4.0.0", "@react-hook/window-size": "^3.1.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^28.1.6", "@types/node": "^18.18.4", "@types/react": "^18.2.25", "@types/react-dom": "^18.0.6", "buffer": "^6.0.3", "classnames": "^2.3.1", "detectincognitojs": "^1.1.2", "fast-memoize": "^2.5.2", "file-saver": "^2.0.5", "fun-animal-names": "^0.1.1", "idb-chunk-store": "^1.0.1", "localforage": "^1.10.0", "mui-markdown": "^0.5.5", "querystring": "^0.2.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-file-reader-input": "^2.0.0", "react-git-info": "^2.0.1", "react-markdown": "^8.0.3", "react-qrcode-logo": "^2.8.0", "react-router-dom": "^6.16.0", "react-scripts": "5.0.1", "react-syntax-highlighter": "^15.5.0", "react-youtube": "^10.1.0", "readable-web-to-node-stream": "^3.0.2", "remark-gfm": "^3.0.1", "sass": "^1.54.3", "sdp": "^3.2.0", "secure-file-transfer": "^0.0.7", "streamsaver": "^2.0.6", "trystero": "^0.15.0", "typeface-public-sans": "^1.1.13", "typeface-roboto": "^1.1.13", "typescript": "^4.9.5", "uuid": "^8.3.2", "web-vitals": "^2.1.4", "webrtc-adapter": "^8.2.2" }, "scripts": { "analyze": "source-map-explorer 'build/static/js/*.js'", "start": "cross-env REACT_APP_HOMEPAGE=$(npm pkg get homepage) react-scripts start", "start:tracker": "bittorrent-tracker", "start:streamsaver": "serve -p 3015 node_modules/streamsaver", "dev": "mprocs \"npx cross-env REACT_APP_TRACKER_URL=\"ws://localhost:8000\" REACT_APP_STREAMSAVER_URL=\"http://localhost:3015/mitm.html\" npm run start\" \"npm run start:tracker\" \"npm run start:streamsaver\"", "build": "npm run build:app && npm run build:sdk", "build:app": "cross-env REACT_APP_HOMEPAGE=$(npm pkg get homepage) react-scripts build", "build:sdk": "parcel build sdk/sdk.ts --dist-dir build --no-content-hash", "build:sdk:watch": "nodemon --exec \"npm run build:sdk\"", "test": "react-scripts test", "prepare": "husky install", "prettier": "prettier 'src/**/*.js' --write", "lint": "eslint src --max-warnings=0" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "engines": { "node": "18.12.1", "npm": "8.19.2" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@types/file-saver": "^2.0.7", "@types/react-file-reader-input": "^2.0.4", "@types/react-syntax-highlighter": "^15.5.5", "@types/streamsaver": "^2.0.1", "@types/uuid": "^8.3.4", "@types/webtorrent": "^0.109.3", "@typescript-eslint/eslint-plugin": "^5.33.0", "@typescript-eslint/parser": "^5.33.0", "autoprefixer": "^10.4.8", "bittorrent-tracker": "^9.19.0", "cross-env": "^7.0.3", "eslint": "^8.21.0", "eslint-config-react-app": "^7.0.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.1", "mprocs": "^0.6.4", "nodemon": "^3.0.1", "parcel": "^2.10.0", "postcss": "^8.4.31", "prettier": "^2.7.1", "pretty-quick": "^3.1.3", "process": "^0.11.10", "serve": "^14.1.2", "source-map-explorer": "^2.5.3", "tailwindcss": "^3.1.8", "url": "^0.11.0", "util": "^0.12.5" }, "overrides": { "ipfs-core": "npm:dry-uninstall", "@svgr/plugin-svgo": { "nth-check": "2.0.1" }, "react-file-reader-input": { "react": "$react", "react-dom": "$react-dom" }, "resolve-url-loader": { "postcss": "8.4.31" } }, "jest": { "transformIgnorePatterns": [ "node_modules/(?!trystero)/" ] } }