{
  "name": "openhab",
  "version": "4.2.0",
  "description": "openHAB",
  "repository": "https://github.com/openhab/openhab-webui",
  "license": "EPL-2.0",
  "framework7": {
    "type": [
      "web",
      "pwa"
    ],
    "name": "openHAB",
    "pkg": "org.openhab.ui",
    "platforms": [
      "ios",
      "android"
    ],
    "framework": "vue",
    "template": "split-view",
    "cssPreProcessor": "stylus",
    "customColor": true,
    "color": "ff7700",
    "bundler": "webpack"
  },
  "scripts": {
    "generate-build-info": "node build/generate-build-info.mjs",
    "build-prod": "cross-env NODE_ENV=production node ./build/build.js",
    "webpack-analyzer": "cross-env NODE_ENV=production cross-env WEBPACK_ANALYZER=1 node ./build/build.js",
    "webpack-analyzer-report": "cross-env NODE_ENV=production cross-env WEBPACK_ANALYZER=1 WEBPACK_ANALYZER_REPORT=1 node ./build/build.js",
    "webpack-analyzer-report-stats": "cross-env NODE_ENV=production cross-env WEBPACK_ANALYZER=1 WEBPACK_ANALYZER_REPORT=1 WEBPACK_ANALYZER_REPORT_STATS=1 node ./build/build.js",
    "predev:blockly": "cross-env NODE_ENV=development npm run generate-build-info",
    "dev:blockly": "cross-env SOURCE_MAPS=1 NODE_ENV=development webpack-dev-server --config ./build/webpack.config.js",
    "predev": "cross-env NODE_ENV=development npm run generate-build-info",
    "dev": "cross-env NODE_ENV=development webpack-dev-server --config ./build/webpack.config.js",
    "start": "npm run dev",
    "lint": "npx eslint --ext js --ext vue src",
    "lint:fix": "npx eslint --fix --ext js --ext vue src",
    "test:unit": "npx jest",
    "test:unit:watch": "npx jest --watch",
    "test:e2e": "npx cypress run",
    "test:e2e:gui": "npx cypress open"
  },
  "browserslist": [
    "Android >= 5",
    "IOS >= 9.3",
    "Edge >= 15",
    "Safari >= 9.1",
    "Chrome >= 49",
    "Firefox >= 31",
    "Samsung >= 5"
  ],
  "dependencies": {
    "@blockly/field-slider": "^6.1.4",
    "@blockly/plugin-typed-variable-modal": "^7.0.15",
    "@blockly/plugin-workspace-search": "^8.1.2",
    "@blockly/shadow-block-converter": "^5.0.0",
    "@blockly/theme-dark": "^6.0.5",
    "@blockly/zoom-to-fit": "^5.0.11",
    "@jsep-plugin/arrow": "^1.0.5",
    "@jsep-plugin/object": "^1.2.1",
    "@jsep-plugin/regex": "^1.0.3",
    "@jsep-plugin/template": "^1.0.4",
    "@mit-app-inventor/blockly-plugin-workspace-multiselect": "^0.1.12",
    "blockly": "^10.4.2",
    "cronstrue": "^2.50.0",
    "crypto-browserify": "^3.12.0",
    "dayjs": "^1.11.12",
    "diacritic": "^0.0.2",
    "dom7": "^2.1.5",
    "echarts": "^5.5.1",
    "event-source-polyfill": "^1.0.22",
    "fast-deep-equal": "^3.1.3",
    "framework7": "^5.7.14",
    "framework7-icons": "^5.0.5",
    "framework7-vue": "^5.7.14",
    "jse-eval": "^1.5.2",
    "jssip": "^3.10.1",
    "leaflet": "^1.9.4",
    "leaflet-providers": "^2.0.0",
    "lodash": "^4.17.21",
    "marked": "^12.0.1",
    "moo": "^0.5.2",
    "nearley": "^2.20.1",
    "path-browserify": "^1.0.1",
    "pkce-challenge": "^3.1.0",
    "qrcode": "^1.5.4",
    "scope-css": "^1.2.1",
    "stream-browserify": "^3.0.0",
    "template7": "^1.4.2",
    "tern": "^0.24.3",
    "v-clipboard": "^2.2.3",
    "video.js": "^7.10.2",
    "vue": "^2.7.16",
    "vue-async-computed": "^3.9.0",
    "vue-codemirror": "^4.0.6",
    "vue-draggable-resizable": "^2.3.0",
    "vue-echarts": "^6.6.9",
    "vue-fragment": "^1.5.1",
    "vue-fullscreen": "^2.6.1",
    "vue-grid-layout": "^2.4.0",
    "vue-i18n": "^8.28.2",
    "vue-magic-grid": "0.0.4",
    "vue-qrcode": "^0.3.5",
    "vue-round-slider": "^1.0.1",
    "vue2-leaflet": "^2.7.1",
    "vuetrend": "^0.3.4",
    "vuex": "^3.6.2",
    "yaml": "^2.5.0"
  },
  "devDependencies": {
    "@babel/core": "^7.25.2",
    "@babel/eslint-parser": "^7.25.1",
    "@babel/eslint-plugin": "^7.25.1",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-syntax-jsx": "^7.24.7",
    "@babel/plugin-transform-modules-commonjs": "^7.24.8",
    "@babel/preset-env": "^7.25.3",
    "@babel/runtime": "^7.25.0",
    "@iconify/vue2": "^1.0.0",
    "@types/jest": "^29.5.12",
    "@vue/eslint-config-standard": "^8.0.1",
    "@vue/test-utils": "^1.3.6",
    "@vue/vue2-jest": "^29.2.6",
    "babel-jest": "^29.7.0",
    "babel-loader": "^9.1.3",
    "babel-plugin-dynamic-import-node": "^2.3.3",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "chalk": "^4.1.2",
    "compression-webpack-plugin": "^11.1.0",
    "copy-webpack-plugin": "^12.0.2",
    "cross-env": "^7.0.3",
    "css-loader": "^7.1.2",
    "css-minimizer-webpack-plugin": "^7.0.0",
    "cypress": "^3.8.3",
    "eslint": "^8.57.0",
    "eslint-plugin-cypress": "^3.4.0",
    "eslint-plugin-es": "^4.1.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-vue": "^9.27.0",
    "eslint-webpack-plugin": "^4.2.0",
    "global-prefix": "^3.0.0",
    "html-webpack-plugin": "^5.6.0",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "jest-serializer-vue": "^3.1.0",
    "jest-transform-nearley": "^2.0.0",
    "jest-transform-stub": "^2.0.0",
    "mini-css-extract-plugin": "^2.9.0",
    "nearley-loader": "^2.0.0",
    "ora": "^5.4.1",
    "postcss-loader": "^8.1.1",
    "postcss-preset-env": "^10.0.0",
    "process": "^0.11.10",
    "rimraf": "^6.0.1",
    "standard": "^17.1.0",
    "style-loader": "^4.0.0",
    "stylus": "^0.63.0",
    "stylus-loader": "^8.1.0",
    "swagger-ui-dist": "^4.1.3",
    "vue-loader": "^15.11.1",
    "vue-masonry-css": "^1.0.3",
    "vue-template-compiler": "^2.7.16",
    "webpack": "^5.94.0",
    "webpack-bundle-analyzer": "^4.10.2",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^5.0.4",
    "webpack-stats-plugin": "^1.1.3",
    "workbox-webpack-plugin": "^7.1.0"
  }
}
