@jeremyckahn/farmhand
Version:
A farming game
206 lines (205 loc) • 7.02 kB
JSON
{
"name": "@jeremyckahn/farmhand",
"version": "1.19.30",
"publishConfig": {
"access": "public"
},
"description": "A farming game",
"main": "public/electron.js",
"unpkg": "dist/index.html",
"homepage": "https://www.farmhand.life/",
"type": "module",
"scripts": {
"build": "npm run build:api && vite build",
"build:native": "npm run build -- --base='./' && electron-builder --publish=always",
"check:types": "tsc && tsc --project e2e/tsconfig.json",
"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": "npm run build:api && cd e2e && npx playwright test",
"e2e:create": "npx playwright codegen localhost:3000?seed=0.5",
"electron": "wait-on tcp:3000 && electron .",
"print:crops": "vite-node src/scripts/generate-crop-table.ts",
"lint": "eslint src --max-warnings=0",
"prettier": "prettier '{src,e2e}/**/*.{js,ts,tsx}' --write",
"preversion": "npm test",
"postversion": "git push && git push --tags",
"postinstall": "npm run build:api",
"start": "vite --port=3000",
"start:e2e": "cross-env VITE_API_ROOT=http://localhost:3003/ VITE_TRACKER_URL=ws://localhost:8002 vite --port=3002",
"start:api": "NODE_OPTIONS=--openssl-legacy-provider vercel dev --token=$VERCEL_TOKEN --listen=0.0.0.0:3001 --yes",
"start:api:e2e": "NODE_OPTIONS=--openssl-legacy-provider vercel dev --token=$VERCEL_TOKEN --listen=0.0.0.0:3003 --yes",
"start:backend": "docker compose up",
"start:tracker": "bittorrent-tracker",
"start:tracker:e2e": "bittorrent-tracker --port 8002",
"test": "vitest",
"test:debug": "vitest --inspect-brk --no-file-parallelism --run",
"update-images": "bash update-images.sh",
"build:api": "esbuild api-src/get-market-data.ts api-src/post-day-results.ts --bundle --packages=external --platform=node --format=esm --out-extension:.js=.mjs --outdir=api",
"build:vercel-functions": "node scripts/build-vercel-functions.mjs"
},
"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": {
"@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2",
"@eslint/eslintrc": "^3.3.5",
"@playwright/test": "^1.60.0",
"@stylistic/eslint-plugin": "^5.10.0",
"@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/lodash.sortby": "^4.7.7",
"@types/markdown-table": "^2.0.0",
"@types/node": "^22.19.9",
"@types/react": "^17.0.2",
"@typescript-eslint/eslint-plugin": "^8.58.1",
"@typescript-eslint/parser": "^8.58.1",
"@vitejs/plugin-react": "^6.0.2",
"@vitest/coverage-v8": "^4.0.18",
"bittorrent-tracker": "^9.19.0",
"browserslist": "^4.21.9",
"cheerio": "^1.0.0-rc.3",
"cross-env": "^7.0.2",
"electron": "^39.8.4",
"electron-builder": "^26.0.12",
"esbuild": "^0.28.1",
"eslint": "^8.57.1",
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.19.0",
"eslint-plugin-react-hooks": "^4.6.2",
"git-branch-is": "^4.0.0",
"husky": "^4.2.3",
"jest-extended": "^0.11.5",
"jimp": "^0.22.8",
"jsdom": "^29.1.1",
"markdown-table": "^2.0.0",
"mprocs": "^0.9.6",
"nodemon": "^2.0.2",
"npm-run-all": "^4.1.3",
"prettier": "^1.13.7",
"pretty-quick": "^2.0.1",
"serve": "^14.2.0",
"typescript": "^6.0.2",
"vercel": "^54.14.0",
"vite": "8.0.13",
"vite-node": "^6.0.0",
"vite-plugin-pwa": "^1.3.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",
"@trystero-p2p/torrent": "^0.24.0",
"animate.css": "^4.1.0",
"assert": "npm:assert-browserify@^2.0.0",
"axios": "^1.6.0",
"buffer": "^6.0.3",
"classnames": "^2.2.6",
"dinero.js": "^2.0.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.24.0",
"url": "^0.11.0",
"usehooks-ts": "^3.1.0",
"uuid": "^14.0.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"
],
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}