{
  "name": "farmcontrol-ui",
  "author": {
    "name": "Tom Butcher",
    "email": "tom@tombutcher.work"
  },
  "version": "0.1.1",
  "type": "module",
  "private": true,
  "homepage": "./",
  "dependencies": {
    "@ant-design/icons": "^6.1.0",
    "@babel/plugin-transform-private-property-in-object": "^7.27.1",
    "@codemirror/lang-cpp": "^6.0.3",
    "@codemirror/lang-css": "^6.3.1",
    "@codemirror/lang-go": "^6.0.1",
    "@codemirror/lang-html": "^6.4.9",
    "@codemirror/lang-java": "^6.0.2",
    "@codemirror/lang-javascript": "^6.2.4",
    "@codemirror/lang-json": "^6.0.2",
    "@codemirror/lang-markdown": "^6.3.4",
    "@codemirror/lang-php": "^6.0.2",
    "@codemirror/lang-python": "^6.2.1",
    "@codemirror/lang-rust": "^6.0.2",
    "@codemirror/lang-sql": "^6.9.1",
    "@codemirror/lang-xml": "^6.1.0",
    "@codemirror/lang-yaml": "^6.1.2",
    "@codemirror/commands": "6.10.4",
    "@codemirror/language": "6.12.1",
    "@codemirror/state": "6.7.1",
    "@codemirror/theme-one-dark": "^6.1.3",
    "@codemirror/view": "6.39.12",
    "@simplewebauthn/browser": "^13.1.2",
    "@tanstack/react-query": "^5.90.10",
    "@tiptap/extension-link": "^3.20.1",
    "@tiptap/extension-placeholder": "^3.20.1",
    "@tiptap/extension-underline": "^3.20.1",
    "@tiptap/markdown": "^3.20.1",
    "@tiptap/pm": "^3.20.1",
    "@tiptap/react": "^3.20.1",
    "@tiptap/starter-kit": "^3.20.1",
    "@tsparticles/react": "^3.0.0",
    "@tsparticles/slim": "^3.9.1",
    "@uiw/react-codemirror": "^4.25.1",
    "@vscode/sudo-prompt": "^9.3.2",
    "antd": "^5.27.1",
    "antd-style": "^3.7.1",
    "axios": "^1.11.0",
    "blurhash": "^2.0.5",
    "codemirror": "^6.0.2",
    "country-list": "^2.4.1",
    "cross-env": "^10.0.0",
    "dayjs": "^1.11.18",
    "dotenv": "^17.2.1",
    "electron-store": "^11.0.2",
    "gcode-preview": "^2.18.0",
    "json-schema-traverse": "^1.0.0",
    "keycloak-js": "^26.2.0",
    "lodash": "^4.17.23",
    "loglevel": "^1.9.2",
    "nanoid": "^5.1.14",
    "online-3d-viewer": "^0.16.0",
    "prop-types": "^15.8.1",
    "react": "^19.1.1",
    "react-country-flag": "^3.1.0",
    "react-dom": "^19.1.1",
    "react-markdown": "^10.1.0",
    "react-responsive": "^10.0.1",
    "react-router-dom": "^7.8.2",
    "recharts": "^3.8.1",
    "remark-gfm": "^4.0.1",
    "simplebar-react": "^3.3.2",
    "socket.io-client": "*",
    "styled-components": "^6.1.19",
    "three": "^0.179.1",
    "tsparticles": "^3.9.1",
    "web-vitals": "^5.1.0"
  },
  "main": "build/electron.js",
  "description": "3D Printer ERP and Control Software.",
  "scripts": {
    "dev": "cross-env NODE_ENV=development vite",
    "dev:app": "concurrently \"cross-env NODE_ENV=development bun run dev:renderer\" \"cross-env NODE_ENV=development electrobun dev\"",
    "dev:renderer": "vite --port 5780 --no-open",
    "electron": "cross-env ELECTRON_START_URL=http://0.0.0.0:5780 && cross-env NODE_ENV=development && electron .",
    "start": "serve -s build",
    "build": "vite build",
    "build:app": "electrobun build --env=stable",
    "build:app:mac": "bun scripts/build-macos.mjs",
    "dev:electron": "concurrently \"cross-env NODE_ENV=development vite --port 5780 --no-open\" \"cross-env ELECTRON_START_URL=http://localhost:5780 NODE_ENV=development electron public/electron.js\"",
    "build:electron": "vite build && electron-builder",
    "build:cloudflare": "cross-env VITE_DEPLOY_TARGET=cloudflare vite build",
    "deploy": "npm run build:cloudflare && wrangler pages deploy --branch main",
    "postinstall": "bun scripts/patch-electrobun-src.mjs && bun scripts/build-macos-effects.mjs",
    "generate-app-icons": "bun scripts/generate-app-icons.mjs",
    "build:macos-effects": "bun scripts/build-macos-effects.mjs",
    "clean": "bun scripts/clean-build.mjs"
  },
  "eslintConfig": {
    "extends": [
      "react-app"
    ]
  },
  "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",
    "@eslint/js": "^9.39.2",
    "@vitejs/plugin-react": "^5.0.2",
    "concurrently": "^9.2.1",
    "electrobun": "1.18.1",
    "electron": "^38.7.1",
    "jimp": "^1.6.1",
    "png-to-ico": "^2.1.8",
    "electron-builder": "^26.0.12",
    "electron-packager": "^17.1.2",
    "eslint": "^9.34.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-prettier": "^5.5.4",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.20",
    "express": "^5.1.0",
    "globals": "^15.12.0",
    "prettier": "^3.6.2",
    "prettier-eslint": "^16.4.2",
    "rcedit": "^4.0.1",
    "rollup-plugin-visualizer": "^6.0.5",
    "serve": "^14.2.4",
    "standard": "^17.1.2",
    "svgo": "^4.0.0",
    "svgo-loader": "^4.0.0",
    "vite": "^7.1.3",
    "vite-plugin-eslint": "^1.8.1",
    "vite-plugin-svgo": "^2.0.0",
    "vite-plugin-svgr": "^4.5.0",
    "wrangler": "^3.100.0"
  },
  "build": {
    "appId": "com.tombutcher.farmcontrol",
    "productName": "Farm Control",
    "artifactName": "farmcontrol-${version}-${arch}.${ext}",
    "icon": "assets/logos/farmcontrolicon.png",
    "directories": {
      "output": "app_dist"
    },
    "files": [
      "build/**/*",
      "node_modules/**/*"
    ],
    "mac": {
      "target": [
        {
          "target": "dmg",
          "arch": [
            "arm64"
          ]
        },
        {
          "target": "pkg",
          "arch": [
            "arm64"
          ]
        },
        {
          "target": "dmg",
          "arch": [
            "x64"
          ]
        },
        {
          "target": "pkg",
          "arch": [
            "x64"
          ]
        }
      ],
      "mergeASARs": true,
      "x64ArchFiles": "**/node_modules/@esbuild/darwin-x64/**",
      "singleArchFiles": "**/node_modules/**",
      "extendInfo": {
        "CFBundleURLTypes": [
          {
            "CFBundleURLName": "com.tombutcher.farmcontrol",
            "CFBundleURLSchemes": [
              "farmcontrol"
            ]
          }
        ]
      }
    },
    "dmg": {
      "background": "assets/dmg/background.png",
      "iconSize": 100,
      "window": {
        "width": 540,
        "height": 380
      },
      "contents": [
        {
          "x": 130,
          "y": 220
        },
        {
          "x": 410,
          "y": 220,
          "type": "link",
          "path": "/Applications"
        }
      ]
    },
    "pkg": {
      "installLocation": "/Applications",
      "mustClose": [
        "com.tombutcher.farmcontrol"
      ]
    },
    "win": {
      "target": [
        "nsis",
        "msiWrapped"
      ],
      "protocols": [
        {
          "name": "Farm Control Protocol",
          "schemes": [
            "farmcontrol"
          ]
        }
      ]
    },
    "linux": {
      "target": "AppImage"
    },
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true,
      "include": "scripts/installer.nsh",
      "perMachine": false
    },
    "msiWrapped": {
      "upgradeCode": "{735812DB-E33B-57A0-8FBC-5FC3155925AA}",
      "perMachine": false,
      "impersonate": true,
      "wrappedInstallerArgs": "/S /UPDATE /RESTARTFC"
    }
  }
}
