{ "name": "umami", "version": "1.26.0", "description": "A simple, fast, website analytics alternative to Google Analytics.", "author": "Mike Cao ", "license": "MIT", "homepage": "https://umami.is", "repository": { "type": "git", "url": "https://github.com/mikecao/umami.git" }, "scripts": { "dev": "next dev", "build": "npm-run-all build-tracker build-geo build-db build-app", "start": "next start", "start-env": "node -r dotenv/config scripts/start-env.js", "build-app": "next build", "build-tracker": "rollup -c rollup.tracker.config.js", "build-db": "npm-run-all copy-db-schema build-db-client", "build-lang": "npm-run-all format-lang compile-lang", "build-geo": "node scripts/build-geo.js", "build-db-schema": "dotenv prisma introspect", "build-db-client": "dotenv prisma generate", "build-mysql-schema": "dotenv prisma introspect -- --schema=./prisma/schema.mysql.prisma", "build-mysql-client": "dotenv prisma generate -- --schema=./prisma/schema.mysql.prisma", "build-postgresql-schema": "dotenv prisma introspect -- --schema=./prisma/schema.postgresql.prisma", "build-postgresql-client": "dotenv prisma generate -- --schema=./prisma/schema.postgresql.prisma", "copy-db-schema": "node scripts/copy-db-schema.js", "generate-lang": "npm-run-all extract-lang merge-lang", "extract-lang": "formatjs extract \"{pages,components}/**/*.js\" --out-file build/messages.json", "merge-lang": "node scripts/merge-lang.js", "format-lang": "node scripts/format-lang.js", "compile-lang": "formatjs compile-folder --ast build public/messages", "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": "husky install" }, "lint-staged": { "**/*.js": [ "prettier --write", "eslint" ], "**/*.css": [ "stylelint --fix", "prettier --write" ], "**/*.json": [ "prettier --write" ] }, "dependencies": { "@fontsource/inter": "4.5.0", "@prisma/client": "3.9.2", "@reduxjs/toolkit": "^1.6.1", "bcryptjs": "^2.4.3", "chalk": "^4.1.1", "chart.js": "^2.9.4", "classnames": "^2.3.1", "colord": "^2.9.2", "cookie": "^0.4.1", "cors": "^2.8.5", "date-fns": "^2.23.0", "date-fns-tz": "^1.1.4", "detect-browser": "^5.2.0", "dotenv": "^10.0.0", "formik": "^2.2.9", "immer": "^9.0.12", "ipaddr.js": "^2.0.1", "is-localhost-ip": "^1.4.0", "isbot": "^3.2.2", "jose": "2.0.5", "maxmind": "^4.3.2", "moment-timezone": "^0.5.33", "next": "12.1.0", "prompts": "2.4.2", "prop-types": "^15.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-intl": "^5.20.6", "react-redux": "^7.2.4", "react-simple-maps": "^2.3.0", "react-spring": "^8.0.27", "react-tooltip": "^4.2.21", "react-use-measure": "^2.0.4", "react-window": "^1.8.6", "redux": "^4.1.0", "redux-thunk": "^2.3.0", "request-ip": "^2.1.3", "semver": "^7.3.5", "thenby": "^1.3.4", "timezone-support": "^2.0.2", "uuid": "^8.3.2", "zustand": "^3.7.0" }, "devDependencies": { "@formatjs/cli": "^4.2.29", "@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-node-resolve": "^11.2.1", "@rollup/plugin-replace": "^2.3.4", "@svgr/webpack": "^5.5.0", "cross-env": "^7.0.3", "del": "^6.0.0", "dotenv-cli": "^4.0.0", "eslint": "^7.32.0", "eslint-config-next": "^12.0.1", "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.24.0", "eslint-plugin-react-hooks": "^4.2.0", "extract-react-intl-messages": "^4.1.1", "husky": "^7.0.0", "lint-staged": "^11.0.0", "loadtest": "5.1.2", "npm-run-all": "^4.1.5", "postcss": "^8.2.15", "postcss-flexbugs-fixes": "^5.0.2", "postcss-import": "^14.0.2", "postcss-preset-env": "^6.7.0", "postcss-rtlcss": "^3.3.2", "prettier": "^2.3.2", "prettier-eslint": "^13.0.0", "prisma": "3.9.2", "rollup": "^2.48.0", "rollup-plugin-hashbang": "^2.2.2", "rollup-plugin-terser": "^7.0.2", "stylelint": "^13.13.0", "stylelint-config-css-modules": "^2.2.0", "stylelint-config-prettier": "^9.0.3", "stylelint-config-recommended": "^5.0.0", "tar": "^6.1.2" } }