{ "description": "A frontend for Home Assistant", "repository": { "type": "git", "url": "https://github.com/home-assistant/frontend" }, "name": "home-assistant-frontend", "version": "1.0.0", "scripts": { "build": "script/build_frontend", "lint:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-pattern=.gitignore --max-warnings=0", "format:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-pattern=.gitignore --fix", "lint:prettier": "prettier . --cache --check", "format:prettier": "prettier . --cache --write", "lint:types": "tsc", "lint:lit": "lit-analyzer \"{.,*}/src/**/*.ts\"", "lint:licenses": "node --no-deprecation script/check-licenses", "lint": "yarn run lint:eslint && yarn run lint:prettier && yarn run lint:types && yarn run lint:lit", "format": "yarn run format:eslint && yarn run format:prettier", "postinstall": "husky", "prepack": "pinst --disable", "postpack": "pinst --enable", "test": "vitest run --config test/vitest.config.ts", "test:bench": "vitest bench --run --config test/vitest.bench.config.ts", "test:coverage": "vitest run --config test/vitest.config.ts --coverage", "test:e2e": "node test/e2e/run-suites.mjs demo app gallery", "test:e2e:browserstack": "node test/e2e/run-suites.mjs demo:browserstack app:browserstack gallery:browserstack", "test:e2e:show-report": "yarn playwright show-report test/e2e/reports/combined", "test:e2e:demo": "playwright test --config test/e2e/playwright.demo.config.ts", "test:e2e:demo:browserstack": "browserstack-node-sdk playwright test --config test/e2e/playwright.demo.config.ts", "test:e2e:app": "playwright test --config test/e2e/playwright.app.config.ts", "test:e2e:app:browserstack": "browserstack-node-sdk playwright test --config test/e2e/playwright.app.config.ts", "test:e2e:gallery": "playwright test --config test/e2e/playwright.gallery.config.ts", "test:e2e:gallery:browserstack": "browserstack-node-sdk playwright test --config test/e2e/playwright.gallery.config.ts" }, "author": "Paulus Schoutsen (http://paulusschoutsen.nl)", "license": "Apache-2.0", "type": "module", "dependencies": { "@babel/runtime": "7.29.7", "@braintree/sanitize-url": "7.1.2", "@codemirror/autocomplete": "6.20.3", "@codemirror/commands": "6.10.3", "@codemirror/lang-jinja": "6.0.1", "@codemirror/lang-yaml": "6.1.3", "@codemirror/language": "6.12.3", "@codemirror/lint": "6.9.7", "@codemirror/search": "6.7.0", "@codemirror/state": "6.6.0", "@codemirror/view": "6.43.1", "@date-fns/tz": "1.5.0", "@egjs/hammerjs": "2.0.17", "@formatjs/intl-datetimeformat": "7.4.9", "@formatjs/intl-displaynames": "7.3.10", "@formatjs/intl-durationformat": "0.10.14", "@formatjs/intl-getcanonicallocales": "3.2.10", "@formatjs/intl-listformat": "8.3.10", "@formatjs/intl-locale": "5.3.9", "@formatjs/intl-numberformat": "9.3.11", "@formatjs/intl-pluralrules": "6.3.10", "@formatjs/intl-relativetimeformat": "12.3.10", "@fullcalendar/core": "6.1.20", "@fullcalendar/daygrid": "6.1.20", "@fullcalendar/interaction": "6.1.20", "@fullcalendar/list": "6.1.20", "@fullcalendar/luxon3": "6.1.20", "@fullcalendar/timegrid": "6.1.20", "@home-assistant/webawesome": "3.7.0-ha.0", "@lezer/highlight": "1.2.3", "@lit-labs/motion": "1.1.0", "@lit-labs/observers": "2.1.0", "@lit-labs/virtualizer": "2.1.1", "@lit/context": "1.1.6", "@lit/reactive-element": "2.1.2", "@material/mwc-formfield": "patch:@material/mwc-formfield@npm%3A0.27.0#~/.yarn/patches/@material-mwc-formfield-npm-0.27.0-9528cb60f6.patch", "@material/mwc-list": "patch:@material/mwc-list@npm%3A0.27.0#~/.yarn/patches/@material-mwc-list-npm-0.27.0-5344fc9de4.patch", "@material/web": "2.4.1", "@mdi/js": "7.4.47", "@mdi/svg": "7.4.47", "@replit/codemirror-indentation-markers": "6.5.3", "@swc/helpers": "0.5.23", "@thomasloven/round-slider": "0.6.0", "@tsparticles/engine": "4.1.3", "@tsparticles/preset-links": "4.1.3", "@vibrant/color": "4.0.4", "@webcomponents/scoped-custom-element-registry": "0.0.10", "@webcomponents/webcomponentsjs": "2.8.0", "barcode-detector": "3.2.0", "cally": "0.9.2", "color-name": "2.1.0", "comlink": "4.4.2", "core-js": "3.49.0", "cropperjs": "1.6.2", "culori": "4.0.2", "date-fns": "4.4.0", "deep-clone-simple": "1.1.1", "deep-freeze": "0.0.1", "dialog-polyfill": "0.5.6", "echarts": "6.1.0", "element-internals-polyfill": "3.0.2", "fuse.js": "7.4.2", "google-timezones-json": "1.2.0", "gulp-zopfli-green": "7.0.0", "hls.js": "1.6.16", "home-assistant-js-websocket": "9.6.0", "idb-keyval": "6.2.5", "intl-messageformat": "11.2.8", "js-yaml": "4.2.0", "leaflet": "1.9.4", "leaflet-draw": "patch:leaflet-draw@npm%3A1.0.4#./.yarn/patches/leaflet-draw-npm-1.0.4-0ca0ebcf65.patch", "leaflet.markercluster": "1.5.3", "lit": "3.3.3", "lit-html": "3.3.3", "luxon": "3.7.2", "marked": "18.0.5", "memoize-one": "6.0.0", "node-vibrant": "4.0.4", "object-hash": "3.0.0", "punycode": "2.3.1", "qr-scanner": "1.4.2", "qrcode": "1.5.4", "roboto-fontface": "0.10.0", "rrule": "2.8.1", "sortablejs": "patch:sortablejs@npm%3A1.15.6#~/.yarn/patches/sortablejs-npm-1.15.6-3235a8f83b.patch", "stacktrace-js": "2.0.2", "superstruct": "2.0.2", "tinykeys": "patch:tinykeys@npm%3A4.0.0#~/.yarn/patches/tinykeys-npm-4.0.0-a6ca3fd771.patch", "weekstart": "2.0.0", "workbox-cacheable-response": "7.4.1", "workbox-core": "7.4.1", "workbox-expiration": "7.4.1", "workbox-precaching": "7.4.1", "workbox-routing": "7.4.1", "workbox-strategies": "7.4.1", "xss": "1.0.15" }, "devDependencies": { "@babel/core": "7.29.7", "@babel/helper-define-polyfill-provider": "0.6.8", "@babel/plugin-transform-runtime": "7.29.7", "@babel/preset-env": "7.29.7", "@bundle-stats/plugin-webpack-filter": "4.22.2", "@eslint/js": "10.0.1", "@html-eslint/eslint-plugin": "0.62.0", "@lokalise/node-api": "16.0.0", "@octokit/auth-oauth-device": "8.0.3", "@octokit/plugin-retry": "8.1.0", "@octokit/rest": "22.0.1", "@playwright/test": "1.60.0", "@rsdoctor/rspack-plugin": "1.5.13", "@rspack/core": "2.0.8", "@rspack/dev-server": "2.0.3", "@types/babel__plugin-transform-runtime": "7.9.5", "@types/chromecast-caf-receiver": "6.0.26", "@types/chromecast-caf-sender": "1.0.11", "@types/color-name": "2.0.0", "@types/culori": "4.0.1", "@types/html-minifier-terser": "7.0.2", "@types/js-yaml": "4.0.9", "@types/leaflet": "1.9.21", "@types/leaflet-draw": "1.0.13", "@types/leaflet.markercluster": "1.5.6", "@types/lodash.merge": "4.6.9", "@types/luxon": "3.7.1", "@types/qrcode": "1.5.6", "@types/sortablejs": "1.15.9", "@types/tar": "7.0.87", "@vitest/coverage-v8": "4.1.8", "babel-loader": "10.1.1", "babel-plugin-template-html-minifier": "4.1.0", "browserslist-useragent-regexp": "4.1.4", "browserstack-node-sdk": "1.53.2", "del": "8.0.1", "eslint": "10.5.0", "eslint-config-prettier": "10.1.8", "eslint-import-resolver-webpack": "0.13.11", "eslint-plugin-import-x": "4.16.2", "eslint-plugin-lit": "2.3.1", "eslint-plugin-lit-a11y": "5.1.1", "eslint-plugin-unused-imports": "4.4.1", "eslint-plugin-wc": "3.1.0", "fancy-log": "2.0.0", "fs-extra": "11.3.5", "generate-license-file": "4.2.1", "glob": "13.0.6", "globals": "17.6.0", "gulp": "5.0.1", "gulp-brotli": "3.0.0", "gulp-json-transform": "0.5.0", "gulp-rename": "2.1.0", "html-minifier-terser": "7.2.0", "husky": "9.1.7", "jsdom": "29.1.1", "jszip": "3.10.1", "license-checker-rseidelsohn": "5.0.1", "lint-staged": "17.0.7", "lit-analyzer": "2.0.3", "lodash.merge": "4.6.2", "lodash.template": "4.18.1", "map-stream": "0.0.7", "pinst": "3.0.0", "prettier": "3.8.4", "rspack-manifest-plugin": "5.2.2", "serve": "14.2.6", "sinon": "22.0.0", "tar": "7.5.16", "terser-webpack-plugin": "5.6.1", "ts-lit-plugin": "2.0.2", "typescript": "6.0.3", "typescript-eslint": "8.61.0", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.8", "webpack-stats-plugin": "1.1.3", "webpackbar": "7.0.0", "workbox-build": "patch:workbox-build@npm%3A7.4.1#~/.yarn/patches/workbox-build-npm-7.4.1-c84561662c.patch" }, "resolutions": { "lit": "3.3.3", "lit-html": "3.3.3", "clean-css": "5.3.3", "@lit/reactive-element": "2.1.2", "@fullcalendar/daygrid": "6.1.20", "globals": "17.6.0", "tslib": "2.8.1", "@material/mwc-list@^0.27.0": "patch:@material/mwc-list@npm%3A0.27.0#~/.yarn/patches/@material-mwc-list-npm-0.27.0-5344fc9de4.patch", "glob@^10.2.2": "^10.5.0" }, "packageManager": "yarn@4.16.0", "volta": { "node": "24.16.0" } }