{ "description": "A frontend for Home Assistant using the Polymer framework", "repository": { "type": "git", "url": "https://github.com/home-assistant/home-assistant-polymer" }, "name": "home-assistant-frontend", "version": "1.0.0", "scripts": { "build": "script/build_frontend", "lint:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --ignore-path .gitignore", "format:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --fix --ignore-path .gitignore", "lint:prettier": "prettier \"**/src/**/*.{js,ts,json,css,md}\" --check", "format:prettier": "prettier \"**/src/**/*.{js,ts,json,css,md}\" --write", "lint:types": "tsc", "lint:lit": "lit-analyzer \"**/src/**/*.ts\" --format markdown --outFile result.md", "lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:types", "format": "npm run format:eslint && npm run format:prettier", "mocha": "node_modules/.bin/ts-mocha -p test-mocha/tsconfig.test.json --opts test-mocha/mocha.opts", "test": "npm run lint && npm run mocha" }, "author": "Paulus Schoutsen (http://paulusschoutsen.nl)", "license": "Apache-2.0", "dependencies": { "@formatjs/intl-getcanonicallocales": "^1.4.6", "@formatjs/intl-pluralrules": "^3.4.10", "@fullcalendar/common": "5.1.0", "@fullcalendar/core": "5.1.0", "@fullcalendar/daygrid": "5.1.0", "@fullcalendar/interaction": "5.1.0", "@fullcalendar/list": "5.1.0", "@material/chips": "=8.0.0-canary.774dcfc8e.0", "@material/mwc-button": "^0.19.0", "@material/mwc-checkbox": "^0.19.0", "@material/mwc-circular-progress": "^0.19.0", "@material/mwc-dialog": "^0.19.0", "@material/mwc-fab": "^0.19.0", "@material/mwc-formfield": "^0.19.0", "@material/mwc-icon-button": "^0.19.0", "@material/mwc-list": "^0.19.0", "@material/mwc-menu": "^0.19.0", "@material/mwc-radio": "^0.19.0", "@material/mwc-ripple": "^0.19.0", "@material/mwc-switch": "^0.19.0", "@material/mwc-tab": "^0.19.0", "@material/mwc-tab-bar": "^0.19.0", "@material/top-app-bar": "=8.0.0-canary.774dcfc8e.0", "@mdi/js": "5.6.55", "@mdi/svg": "5.6.55", "@polymer/app-layout": "^3.0.2", "@polymer/app-route": "^3.0.2", "@polymer/app-storage": "^3.0.2", "@polymer/iron-autogrow-textarea": "^3.0.1", "@polymer/iron-flex-layout": "^3.0.1", "@polymer/iron-icon": "^3.0.1", "@polymer/iron-image": "^3.0.1", "@polymer/iron-input": "^3.0.1", "@polymer/iron-label": "^3.0.1", "@polymer/iron-overlay-behavior": "^3.0.2", "@polymer/iron-resizable-behavior": "^3.0.1", "@polymer/paper-card": "^3.0.1", "@polymer/paper-checkbox": "^3.1.0", "@polymer/paper-dialog": "^3.0.1", "@polymer/paper-dialog-behavior": "^3.0.1", "@polymer/paper-dialog-scrollable": "^3.0.1", "@polymer/paper-dropdown-menu": "^3.0.1", "@polymer/paper-input": "^3.0.1", "@polymer/paper-item": "^3.0.1", "@polymer/paper-listbox": "^3.0.1", "@polymer/paper-menu-button": "^3.0.1", "@polymer/paper-progress": "^3.0.1", "@polymer/paper-radio-button": "^3.0.1", "@polymer/paper-radio-group": "^3.0.1", "@polymer/paper-ripple": "^3.0.1", "@polymer/paper-slider": "^3.0.1", "@polymer/paper-styles": "^3.0.1", "@polymer/paper-tabs": "^3.0.1", "@polymer/paper-toast": "^3.0.1", "@polymer/paper-tooltip": "^3.0.1", "@polymer/polymer": "3.1.0", "@thomasloven/round-slider": "0.5.2", "@types/chromecast-caf-sender": "^1.0.3", "@types/sortablejs": "^1.10.6", "@vaadin/vaadin-combo-box": "^5.0.10", "@vaadin/vaadin-date-picker": "^4.0.7", "@vibrant/color": "^3.2.1-alpha.1", "@vibrant/core": "^3.2.1-alpha.1", "@vibrant/quantizer-mmcq": "^3.2.1-alpha.1", "@vue/web-component-wrapper": "^1.2.0", "@webcomponents/webcomponentsjs": "^2.2.7", "chart.js": "~2.8.0", "chartjs-chart-timeline": "^0.3.0", "codemirror": "^5.49.0", "comlink": "^4.3.0", "core-js": "^3.6.5", "cropperjs": "^1.5.7", "deep-clone-simple": "^1.1.1", "deep-freeze": "^0.0.1", "fecha": "^4.2.0", "fuse.js": "^6.0.0", "google-timezones-json": "^1.0.2", "hls.js": "^0.13.2", "home-assistant-js-websocket": "^5.4.1", "idb-keyval": "^3.2.0", "intl-messageformat": "^8.3.9", "js-yaml": "^3.13.1", "leaflet": "^1.4.0", "leaflet-draw": "^1.0.4", "lit-element": "^2.4.0", "lit-html": "^1.3.0", "lit-virtualizer": "^0.4.2", "marked": "^1.1.1", "mdn-polyfills": "^5.16.0", "memoize-one": "^5.0.2", "node-vibrant": "3.2.1-alpha.1", "proxy-polyfill": "^0.3.1", "punycode": "^2.1.1", "qrcode": "^1.4.4", "regenerator-runtime": "^0.13.2", "resize-observer-polyfill": "^1.5.1", "roboto-fontface": "^0.10.0", "sortablejs": "^1.10.2", "superstruct": "^0.10.12", "tinykeys": "^1.1.1", "unfetch": "^4.1.0", "vue": "^2.6.11", "vue2-daterange-picker": "^0.5.1", "web-animations-js": "^2.3.2", "workbox-core": "^5.1.3", "workbox-precaching": "^5.1.3", "workbox-routing": "^5.1.3", "workbox-strategies": "^5.1.3", "xss": "^1.0.6" }, "devDependencies": { "@babel/core": "^7.11.6", "@babel/plugin-external-helpers": "^7.10.4", "@babel/plugin-proposal-class-properties": "^7.10.4", "@babel/plugin-proposal-decorators": "^7.10.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", "@babel/plugin-proposal-object-rest-spread": "^7.11.0", "@babel/plugin-proposal-optional-chaining": "^7.11.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/preset-env": "^7.11.5", "@babel/preset-typescript": "^7.10.4", "@rollup/plugin-babel": "^5.2.1", "@koa/cors": "^3.1.0", "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-json": "^4.0.3", "@rollup/plugin-node-resolve": "^7.1.3", "@rollup/plugin-replace": "^2.3.2", "@types/chai": "^4.1.7", "@types/chromecast-caf-receiver": "^5.0.11", "@types/codemirror": "^0.0.97", "@types/hls.js": "^0.12.3", "@types/js-yaml": "^3.12.1", "@types/leaflet": "^1.4.3", "@types/leaflet-draw": "^1.0.1", "@types/marked": "^1.1.0", "@types/memoize-one": "4.1.0", "@types/mocha": "^7.0.2", "@types/resize-observer-browser": "^0.1.3", "@types/webspeechapi": "^0.0.29", "@typescript-eslint/eslint-plugin": "^4.4.0", "@typescript-eslint/parser": "^4.4.0", "@web/dev-server": "^0.0.21", "@web/dev-server-esbuild": "^0.2.6", "@web/dev-server-rollup": "^0.2.11", "babel-loader": "^8.1.0", "chai": "^4.2.0", "cpx": "^1.5.0", "del": "^4.0.0", "eslint": "^6.8.0", "eslint-config-airbnb-typescript": "^7.2.1", "eslint-config-prettier": "^6.10.1", "eslint-import-resolver-webpack": "^0.12.2", "eslint-plugin-disable": "^2.0.1", "eslint-plugin-import": "^2.20.2", "eslint-plugin-lit": "^1.2.0", "eslint-plugin-prettier": "^3.1.3", "eslint-plugin-wc": "^1.2.0", "fancy-log": "^1.3.3", "fs-extra": "^7.0.1", "gulp": "^4.0.0", "gulp-foreach": "^0.1.0", "gulp-json-transform": "^0.4.6", "gulp-merge-json": "^1.3.1", "gulp-rename": "^2.0.0", "gulp-zopfli-green": "^3.0.1", "html-minifier": "^4.0.0", "husky": "^1.3.1", "lint-staged": "^8.1.5", "lit-analyzer": "^1.2.1", "lodash.template": "^4.5.0", "magic-string": "^0.25.7", "map-stream": "^0.0.7", "merge-stream": "^1.0.1", "mocha": "^7.2.0", "object-hash": "^2.0.3", "open": "^7.0.4", "prettier": "^2.0.4", "raw-loader": "^2.0.0", "require-dir": "^1.2.0", "rollup": "^2.8.2", "rollup-plugin-string": "^3.0.0", "rollup-plugin-terser": "^5.3.0", "rollup-plugin-visualizer": "^4.0.4", "serve": "^11.3.0", "sinon": "^7.3.1", "source-map-url": "^0.4.0", "systemjs": "^6.3.2", "terser-webpack-plugin": "^5.0.0", "ts-lit-plugin": "^1.2.1", "ts-mocha": "^7.0.0", "typescript": "^4.0.3", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", "webpack": "5.1.3", "webpack-cli": "4.1.0", "webpack-dev-server": "^3.11.0", "webpack-manifest-plugin": "3.0.0-rc.0", "workbox-build": "^5.1.3" }, "_comment": "Polymer fixed to 3.1 because 3.2 throws on logbook page", "_comment_2": "Fix in https://github.com/Polymer/polymer/pull/5569", "resolutions": { "@webcomponents/webcomponentsjs": "^2.2.10", "@polymer/polymer": "3.1.0", "lit-html": "1.3.0", "lit-element": "2.4.0" }, "main": "src/home-assistant.js", "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "linters": { "*.{js,ts,json,css,md}": [ "prettier --write", "git add" ] }, "ignore": [ "translations/**" ] }, "prettier": { "trailingComma": "es5", "arrowParens": "always" } }