{ "name": "evcc", "description": "evcc UI", "author": "evcc-io", "scripts": { "build": "vite build", "test": "TZ=Europe/Berlin vitest", "lint": "prettier assets './**/*.{yml,yaml,sh}' --write && eslint assets/**/*.js assets/**/*.vue --fix --max-warnings=0", "dev": "vite", "histoire": "histoire dev", "playwright": "playwright test --ui", "simulator": "vite tests/simulator" }, "type": "module", "main": "index.js", "dependencies": { "@eslint/eslintrc": "^3.1.0", "@eslint/js": "^9.13.0", "@guolao/vue-monaco-editor": "^1.5.1", "@h2d2/shopicons": "^1.2.0", "@histoire/plugin-vue": "^1.0.0-alpha.1", "@playwright/test": "^1.46.1", "@popperjs/core": "^2.11.5", "@unhead/vue": "^1.8.9", "@vitejs/plugin-legacy": "^6.0.1", "@vitejs/plugin-vue": "^5.0.4", "@vue/compiler-sfc": "^3.2.30", "@vue/eslint-config-prettier": "^10.1.0", "@vue/eslint-config-typescript": "^14.1.3", "@vue/test-utils": "^2.2.7", "@vue/tsconfig": "^0.7.0", "axios": "^1.7.4", "body-parser": "^1.20.2", "bootstrap": "^5.2.2", "canvas-confetti": "^1.4.0", "chart.js": "^4.4.4", "countup.js": "^2.3.2", "eslint": "^9.13.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-import": "^2.25.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^7.1.0", "eslint-plugin-vue": "^9.3.0", "globals": "^15.11.0", "happy-dom": "^16.8.1", "histoire": "^1.0.0-alpha.1", "markty-toml": "^0.1.1", "prettier": "^3.0.0", "prettier-plugin-sh": "^0.14.0", "prettier-plugin-toml": "^2.0.1", "rollup-plugin-visualizer": "^5.8.3", "smoothscroll-polyfill": "^0.4.4", "snarkdown": "^2.0.0", "typescript": "^5.2.2", "vite": "^6.1.0", "vite-plugin-toml": "^0.7.0", "vitest": "^3.0.5", "vue": "^3.2.29", "vue-chartjs": "^5.3.1", "vue-eslint-parser": "^9.1.0", "vue-hot-reload-api": "^2.3.4", "vue-i18n": "^11.1.0", "vue-router": "^4.0.12", "wait-on": "^8.0.0" }, "engines": { "npm": ">=10.0.0", "node": ">=22.0.0" }, "license": "MIT", "repository": "github:evcc-io/evcc" }