UNPKG

@jeremyckahn/farmhand

Version:
207 lines (206 loc) 6.7 kB
{ "name": "@jeremyckahn/farmhand", "version": "1.19.17", "publishConfig": { "access": "public" }, "description": "A farming game", "main": "public/electron.js", "unpkg": "dist/index.html", "homepage": "https://www.farmhand.life/", "type": "module", "scripts": { "build": "vite build", "build:native": "npm run build -- --base='./' && electron-builder --publish=always", "check:types": "tsc", "dev": "mprocs \"cross-env VITE_TRACKER_URL='ws://localhost:8000' npm run start\" \"npm run start:api\" \"npm run start:backend\" \"npm run start:tracker\"", "dev:native": "mprocs \"BROWSER=none npm run start\" \"npm run start:api\" \"npm run start:backend\" \"npm run electron\"", "e2e": "gh act --secret GITHUB_TOKEN=\"$(gh auth token)\" --secret VERCEL_TOKEN=\"$(jq .token ~/.local/share/com.vercel.cli/auth.json)\" -j e2e", "e2e:stop": "docker compose -f e2e/docker-compose.yml down", "e2e:cleanup": "docker rmi $(docker images --filter \"reference=ghcr.io/jeremyckahn/farmhand/*\" -q)", "e2e:serve-app": "npx vite preview --port 3000 --host", "e2e:create": "npx playwright codegen localhost:3000?seed=0.5", "electron": "wait-on tcp:3000 && electron .", "print:crops": "npx babel-node --presets @babel/preset-env --presets babel-preset-vite src/scripts/generate-crop-table.js", "lint": "eslint src --max-warnings=0", "prettier": "prettier 'src/**/*.js' --write", "preversion": "npm test", "postversion": "git push && git push --tags", "start": "vite --port=3000", "start:api": "NODE_OPTIONS=--openssl-legacy-provider vercel dev --token=$VERCEL_TOKEN --listen=0.0.0.0:3001 --yes", "start:backend": "docker compose up", "start:tracker": "bittorrent-tracker", "test": "vitest", "test:debug": "vitest --inspect-brk --no-file-parallelism --run", "update-images": "bash update-images.sh" }, "author": "Jeremy Kahn <jeremyckahn@gmail.com>", "license": "GPL-2.0-or-later", "repository": { "type": "git", "url": "https://github.com/jeremyckahn/farmhand.git" }, "engines": { "node": "22.x" }, "devDependencies": { "@babel/core": "^7.25.2", "@babel/node": "^7.20.7", "@testing-library/dom": "^8.3.0", "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^12.0.0", "@testing-library/user-event": "^14.6.1", "@types/dinero.js": "^1.9.0", "@types/lodash.sortby": "^4.7.7", "@types/markdown-table": "^2.0.0", "@types/node": "^22.19.9", "@types/react": "^17.0.2", "@types/uuid": "^9.0.2", "@typescript-eslint/eslint-plugin": "^2.23.0", "@typescript-eslint/parser": "^2.23.0", "@vitejs/plugin-react": "^4.2.1", "@vitest/coverage-v8": "^4.0.18", "babel-preset-vite": "^1.1.3", "bittorrent-tracker": "^9.19.0", "browserslist": "^4.21.9", "cheerio": "^1.0.0-rc.3", "cross-env": "^7.0.2", "electron": "^35.7.5", "electron-builder": "^26.0.12", "eslint": "^7.13.0", "eslint-config-react-app": "^5.2.0", "eslint-plugin-flowtype": "^4.6.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.19.0", "eslint-plugin-react-hooks": "^2.5.0", "git-branch-is": "^4.0.0", "husky": "^4.2.3", "jest-extended": "^0.11.5", "jimp": "^0.22.8", "jsdom": "^16.2.1", "markdown-table": "^2.0.0", "mprocs": "^0.6.4", "nodemon": "^2.0.2", "npm-run-all": "^4.1.3", "prettier": "^1.13.7", "pretty-quick": "^2.0.1", "sass": "^1.69.5", "scss-reset": "^1.4.2", "serve": "^14.2.0", "vercel": "^50.10.1", "vite": "^7.3.1", "vite-plugin-pwa": "^1.2.0", "vitest": "^4.0.18", "wait-on": "^8.0.3" }, "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fontsource/francois-one": "^5.2.6", "@fontsource/public-sans": "^5.1.1", "@fortawesome/fontawesome-svg-core": "^1.2.27", "@fortawesome/free-regular-svg-icons": "^5.12.1", "@fortawesome/free-solid-svg-icons": "^5.12.1", "@fortawesome/react-fontawesome": "^0.1.9", "@mui/icons-material": "^5.15.0", "@mui/lab": "^5.0.0-alpha.156", "@mui/material": "^5.15.0", "@mui/styles": "^5.15.0", "animate.css": "^4.1.0", "assert": "npm:assert-browserify@^2.0.0", "axios": "^1.6.0", "babel-eslint": "^10.1.0", "buffer": "^6.0.3", "classnames": "^2.2.6", "dinero.js": "^1.7.0", "electron-is-dev": "^2.0.0", "electron-updater": "^6.3.0", "fast-memoize": "^2.5.2", "file-saver": "^2.0.2", "fs": "npm:browserify-fs@^1.0.0", "fun-animal-names": "^0.1.1", "global": "^4.4.0", "http": "npm:http-browserify@^1.7.0", "https": "npm:https-browserify@^1.0.0", "localforage": "^1.7.3", "lodash.debounce": "^4.0.8", "lodash.sortby": "^4.7.0", "lodash.throttle": "^4.1.1", "notistack": "^2.0.8", "path": "npm:path-browserify@^1.0.1", "process": "^0.11.10", "prop-types": "^15.6.2", "react": "^17.0.2", "react-confetti": "6.1.0", "react-dom": "^17.0.2", "react-file-reader-input": "^2.0.0", "react-helmet": "^6.1.0", "react-hotkeys": "^2.0.0", "react-markdown": "^4.3.1", "react-number-format": "^4.4.1", "react-router-dom": "^5.2.0", "react-use": "^17.4.0", "react-zoom-pan-pinch": "^1.6.1", "redis": "^3.0.2", "seedrandom": "^3.0.5", "shifty": "^3.0.1", "stream": "npm:stream-browserify@^3.0.0", "trystero": "^0.22.0", "url": "^0.11.0", "usehooks-ts": "^3.1.0", "uuid": "^3.4.0", "zlib": "npm:browserify-zlib@^0.2.0" }, "build": { "appId": "life.farmhand.game", "productName": "Farmhand", "extraMetadata": { "name": "Farmhand", "main": "dist/electron.js" }, "files": [ "dist/**/*", "node_modules/**/*" ], "directories": { "buildResources": "public", "output": "dist/native" }, "linux": { "target": [ { "target": "AppImage" } ], "category": "Game", "icon": "./public/app-icons/Icon-512x512.png" }, "publish": { "provider": "github", "owner": "jeremyckahn", "repo": "farmhand", "releaseType": "release" } }, "husky": { "hooks": { "pre-commit": "pretty-quick --staged && npm run lint && npm run check:types && if git-branch-is develop; then npm test -- --run; fi" } }, "files": [ "src", "dist", "public" ], "craGenerate": { "cssExtension": "sass", "type": "functional" }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ] }