{
  "name": "umami",
  "version": "2.10.0",
  "description": "A simple, fast, privacy-focused alternative to Google Analytics.",
  "author": "Mike Cao <mike@mikecao.com>",
  "license": "MIT",
  "homepage": "https://umami.is",
  "repository": {
    "type": "git",
    "url": "https://github.com/umami-software/umami.git"
  },
  "scripts": {
    "dev": "next dev -p 3000",
    "build": "npm-run-all check-env build-db check-db build-tracker build-geo build-app",
    "start": "next start",
    "build-docker": "npm-run-all build-db build-tracker build-geo build-app",
    "start-docker": "npm-run-all check-db update-tracker start-server",
    "start-env": "node scripts/start-env.js",
    "start-server": "node server.js",
    "build-app": "next build",
    "build-components": "rollup -c rollup.components.config.mjs",
    "build-tracker": "rollup -c rollup.tracker.config.mjs",
    "build-db": "npm-run-all copy-db-files build-db-client",
    "build-lang": "npm-run-all format-lang compile-lang clean-lang download-country-names download-language-names",
    "build-geo": "node scripts/build-geo.js",
    "build-db-schema": "prisma db pull",
    "build-db-client": "prisma generate",
    "update-tracker": "node scripts/update-tracker.js",
    "update-db": "prisma migrate deploy",
    "check-db": "node scripts/check-db.js",
    "check-env": "node scripts/check-env.js",
    "copy-db-files": "node scripts/copy-db-files.js",
    "extract-messages": "formatjs extract \"src/{pages,components}/**/*.js\" --out-file build/messages.json",
    "merge-messages": "node scripts/merge-messages.js",
    "generate-lang": "npm-run-all extract-messages merge-messages",
    "format-lang": "node scripts/format-lang.js",
    "compile-lang": "formatjs compile-folder --ast build/messages public/intl/messages",
    "clean-lang": "prettier --write ./public/intl/messages/*.json",
    "check-lang": "node scripts/check-lang.js",
    "download-country-names": "node scripts/download-country-names.js",
    "download-language-names": "node scripts/download-language-names.js",
    "change-password": "node scripts/change-password.js",
    "lint": "next lint --quiet",
    "prepare": "node -e \"if (process.env.NODE_ENV !== 'production'){process.exit(1)} \" || husky install",
    "postbuild": "node scripts/postbuild.js"
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": [
      "prettier --write",
      "eslint"
    ],
    "**/*.css": [
      "stylelint --fix",
      "prettier --write"
    ],
    "**/*.json": [
      "prettier --write"
    ]
  },
  "cacheDirectories": [
    ".next/cache"
  ],
  "dependencies": {
    "@clickhouse/client": "^0.2.2",
    "@fontsource/inter": "^4.5.15",
    "@prisma/client": "5.7.0",
    "@prisma/extension-read-replicas": "^0.3.0",
    "@react-spring/web": "^9.7.3",
    "@tanstack/react-query": "^5.12.2",
    "@umami/prisma-client": "^0.13.0",
    "@umami/redis-client": "^0.18.0",
    "chalk": "^4.1.1",
    "chart.js": "^4.2.1",
    "chartjs-adapter-date-fns": "^3.0.0",
    "classnames": "^2.3.1",
    "colord": "^2.9.2",
    "cors": "^2.8.5",
    "cross-spawn": "^7.0.3",
    "date-fns": "^2.23.0",
    "date-fns-tz": "^1.1.4",
    "dateformat": "^5.0.3",
    "debug": "^4.3.4",
    "del": "^6.0.0",
    "detect-browser": "^5.2.0",
    "dotenv": "^10.0.0",
    "fs-extra": "^10.0.1",
    "immer": "^9.0.12",
    "ipaddr.js": "^2.0.1",
    "is-ci": "^3.0.1",
    "is-docker": "^3.0.0",
    "is-localhost-ip": "^1.4.0",
    "isbot": "^3.4.5",
    "kafkajs": "^2.1.0",
    "maxmind": "^4.3.6",
    "md5": "^2.3.0",
    "moment-timezone": "^0.5.35",
    "next": "14.0.4",
    "next-basics": "^0.39.0",
    "node-fetch": "^3.2.8",
    "npm-run-all": "^4.1.5",
    "prisma": "5.7.0",
    "react": "^18.2.0",
    "react-basics": "^0.122.0",
    "react-beautiful-dnd": "^13.1.0",
    "react-dom": "^18.2.0",
    "react-error-boundary": "^4.0.4",
    "react-intl": "^6.5.5",
    "react-simple-maps": "^2.3.0",
    "react-use-measure": "^2.0.4",
    "react-window": "^1.8.6",
    "request-ip": "^3.3.0",
    "semver": "^7.5.4",
    "thenby": "^1.3.4",
    "timezone-support": "^2.0.2",
    "uuid": "^9.0.0",
    "yup": "^0.32.11",
    "zustand": "^4.3.8"
  },
  "devDependencies": {
    "@formatjs/cli": "^4.2.29",
    "@netlify/plugin-nextjs": "^4.27.3",
    "@rollup/plugin-alias": "^5.0.0",
    "@rollup/plugin-commonjs": "^25.0.4",
    "@rollup/plugin-json": "^6.0.0",
    "@rollup/plugin-node-resolve": "^15.2.0",
    "@rollup/plugin-replace": "^5.0.2",
    "@svgr/rollup": "^8.1.0",
    "@svgr/webpack": "^8.1.0",
    "@types/node": "^20.9.0",
    "@types/react": "^18.2.41",
    "@types/react-dom": "^18.2.17",
    "@types/react-window": "^1.8.8",
    "@typescript-eslint/eslint-plugin": "^6.7.3",
    "@typescript-eslint/parser": "^6.7.3",
    "cross-env": "^7.0.3",
    "esbuild": "^0.17.17",
    "eslint": "^8.33.0",
    "eslint-config-next": "^14.0.4",
    "eslint-config-prettier": "^8.5.0",
    "eslint-import-resolver-alias": "^1.1.2",
    "eslint-plugin-import": "^2.26.0",
    "eslint-plugin-prettier": "^4.0.0",
    "extract-react-intl-messages": "^4.1.1",
    "husky": "^8.0.3",
    "lint-staged": "^14.0.1",
    "postcss": "^8.4.31",
    "postcss-flexbugs-fixes": "^5.0.2",
    "postcss-import": "^15.1.0",
    "postcss-preset-env": "7.8.3",
    "postcss-rtlcss": "^4.0.1",
    "prettier": "^2.6.2",
    "prompts": "2.4.2",
    "rollup": "^3.28.0",
    "rollup-plugin-copy": "^3.4.0",
    "rollup-plugin-delete": "^2.0.0",
    "rollup-plugin-dts": "^5.3.1",
    "rollup-plugin-esbuild": "^5.0.0",
    "rollup-plugin-node-externals": "^6.1.1",
    "rollup-plugin-postcss": "^4.0.2",
    "rollup-plugin-terser": "^7.0.2",
    "stylelint": "^15.10.1",
    "stylelint-config-css-modules": "^4.1.0",
    "stylelint-config-prettier": "^9.0.3",
    "stylelint-config-recommended": "^9.0.0",
    "tar": "^6.1.2",
    "ts-node": "^10.9.1",
    "typescript": "^5.1.6"
  }
}
