{
  "name": "evcc",
  "description": "evcc UI",
  "author": "evcc-io",
  "scripts": {
    "lint": "vp run lint:format && vp run lint:lint && vp run lint:tsc && vp run lint:i18n",
    "lint:format": "vp fmt assets tests i18n --write && vp fmt '**/*.{yaml,sh}' --write",
    "lint:lint": "vp lint --fix --max-warnings=0",
    "lint:tsc": "vue-tsc --noEmit",
    "lint:i18n": "tsx i18n/check.ts",
    "dev": "vp dev",
    "playwright": "playwright install && playwright test --ui",
    "playwright:ci": "cross-env CI=true playwright test",
    "simulator": "vp dev tests/simulator",
    "storybook": "storybook dev -p 6006",
    "license": "license-compliance --production --report detailed --allow \"MIT;Apache-2.0;ISC;BSD-2-Clause;BSD-3-Clause;0BSD\""
  },
  "type": "module",
  "main": "index.js",
  "dependencies": {
    "@codemirror/commands": "^6.11.0",
    "@codemirror/lang-yaml": "^6.1.3",
    "@codemirror/language": "^6.12.4",
    "@codemirror/state": "^6.7.1",
    "@codemirror/view": "^6.43.9",
    "@formkit/drag-and-drop": "^0.6.1",
    "@h2d2/shopicons": "^1.9.1",
    "@lezer/highlight": "^1.2.3",
    "@popperjs/core": "^2.11.8",
    "@unhead/vue": "^2.1.17",
    "axios": "^1.19.0",
    "bootstrap": "^5.3.8",
    "canvas-confetti": "^1.9.4",
    "countup.js": "^2.10.1",
    "dayjs": "^1.11.23",
    "echarts": "^6.1.0",
    "qrcode": "^1.5.4",
    "smoothscroll-polyfill": "^0.4.4",
    "snarkdown": "^2.0.0",
    "vue": "^3.5.41",
    "vue-i18n": "^11.4.9",
    "vue-router": "^5.2.0"
  },
  "engines": {
    "npm": ">=10.0.0",
    "node": ">=26.0.0"
  },
  "devEngines": {
    "packageManager": {
      "name": "npm",
      "version": ">=10.0.0"
    }
  },
  "license": "MIT",
  "repository": "github:evcc-io/evcc",
  "devDependencies": {
    "@playwright/test": "^1.62.1",
    "@redocly/openapi-core": "^2.47.0",
    "@storybook/vue3": "^10.4.4",
    "@storybook/vue3-vite": "^10.5.10",
    "@types/body-parser": "^1.19.6",
    "@types/bootstrap": "^5.2.11",
    "@types/canvas-confetti": "^1.9.0",
    "@types/kill-port": "^2.0.3",
    "@types/qrcode": "^1.5.6",
    "@types/smoothscroll-polyfill": "^0.3.4",
    "@types/wait-on": "^5.3.4",
    "@types/ws": "^8.18.1",
    "@vitejs/plugin-legacy": "^8.2.3",
    "@vitejs/plugin-vue": "^6.0.8",
    "@vue/compiler-sfc": "^3.5.38",
    "@vue/test-utils": "^2.4.11",
    "@vue/tsconfig": "^0.9.1",
    "ajv": "^8.20.0",
    "ajv-formats": "^3.0.1",
    "body-parser": "^2.3.0",
    "cross-env": "^10.1.0",
    "happy-dom": "^20.11.6",
    "kill-port": "^2.0.1",
    "license-compliance": "^4.0.0",
    "mqtt": "^5.15.2",
    "rollup-plugin-visualizer": "^7.1.1",
    "storybook": "^10.5.10",
    "terser": "^5.50.0",
    "ts-json-schema-generator": "^2.9.0",
    "tsx": "^4.23.12",
    "typescript": "^5.9.3",
    "vite": "npm:@voidzero-dev/vite-plus-core@0.2.6",
    "vite-plus": "0.2.6",
    "vitest": "4.1.10",
    "vue-hot-reload-api": "^2.3.4",
    "vue-tsc": "^3.3.11",
    "wait-on": "^9.1.0",
    "ws": "^8.21.3",
    "yaml": "^2.9.0"
  },
  "overrides": {
    "vite": "npm:@voidzero-dev/vite-plus-core@0.2.6",
    "vitest": "4.1.10"
  }
}
