{"id":19679,"name":"Sankey Chart Card","description":"A Home Assistant lovelace card to display a sankey chart showing energy, power and water consumption.","url":"https://github.com/MindFreeze/ha-sankey-chart","last_synced_at":"2026-04-08T02:30:29.215Z","repository":{"id":38394175,"uuid":"455846088","full_name":"MindFreeze/ha-sankey-chart","owner":"MindFreeze","description":"A Home Assistant lovelace card to display a sankey chart. For example for power consumption","archived":false,"fork":false,"pushed_at":"2026-01-28T13:33:01.000Z","size":1636,"stargazers_count":642,"open_issues_count":35,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-03-22T06:57:23.144Z","etag":null,"topics":["energy-consumption","home-assistant","lovelace-card"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MindFreeze.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["MindFreeze"],"buy_me_a_coffee":"MindFreeze"}},"created_at":"2022-02-05T11:04:19.000Z","updated_at":"2026-03-19T15:24:27.000Z","dependencies_parsed_at":"2024-01-13T07:48:44.539Z","dependency_job_id":"6f548874-3e42-44dd-b14d-dd89ace54e16","html_url":"https://github.com/MindFreeze/ha-sankey-chart","commit_stats":{"total_commits":325,"total_committers":10,"mean_commits":32.5,"dds":0.2646153846153846,"last_synced_commit":"c544e58a281b0c81a8805fb8d77eb4891b24ca78"},"previous_names":[],"tags_count":96,"template":false,"template_full_name":"custom-cards/boilerplate-card","purl":"pkg:github/MindFreeze/ha-sankey-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindFreeze","download_url":"https://codeload.github.com/MindFreeze/ha-sankey-chart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31060546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T19:32:53.857Z","status":"ssl_error","status_checked_at":"2026-03-27T19:32:45.136Z","response_time":164,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"MindFreeze","name":"Petar Petrov","uuid":"5219205","kind":"user","description":"freon14 on the Home Assistant Discord","email":"","website":null,"location":"Sofia","twitter":"MindFreeze","company":null,"icon_url":"https://avatars.githubusercontent.com/u/5219205?v=4","repositories_count":2,"last_synced_at":"2025-12-27T23:51:04.105Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/MindFreeze","funding_links":["https://github.com/sponsors/MindFreeze"],"total_stars":null,"followers":40,"following":4,"created_at":"2022-11-16T22:10:06.802Z","updated_at":"2025-12-27T23:51:04.105Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindFreeze","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindFreeze/repositories"},"packages":[{"id":12804720,"name":"home-assistant-custom-lovelace-modules.sankey-chart","ecosystem":"nixpkgs","description":"Home Assistant lovelace card to display a sankey chart","homepage":"https://github.com/MindFreeze/ha-sankey-chart","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/MindFreeze/ha-sankey-chart","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-26T15:20:10.928Z","latest_release_published_at":"2026-01-26T15:20:10.928Z","latest_release_number":"3.10.0","last_synced_at":"2026-03-07T05:27:10.687Z","created_at":"2026-01-26T15:20:10.719Z","updated_at":"2026-03-22T20:15:51.907Z","registry_url":"https://search.nixos.org/packages?channel=unstable\u0026query=home-assistant-custom-lovelace-modules.sankey-chart","install_command":"nix-env -iA nixpkgs.home-assistant-custom-lovelace-modules.sankey-chart","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/servers/home-assistant/custom-lovelace-modules/sankey-chart/package.nix#L30","metadata":{"nix_attribute":"sankey-chart-3.10.0","position":"pkgs/servers/home-assistant/custom-lovelace-modules/sankey-chart/package.nix:30","platforms":["i686-cygwin","x86_64-cygwin","x86_64-darwin","aarch64-darwin","i686-freebsd","x86_64-freebsd","aarch64-freebsd","aarch64-genode","i686-genode","x86_64-genode","x86_64-solaris","javascript-ghcjs","aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","mmix-mmixware","aarch64-netbsd","armv6l-netbsd","armv7a-netbsd","armv7l-netbsd","i686-netbsd","m68k-netbsd","mipsel-netbsd","powerpc-netbsd","riscv32-netbsd","riscv64-netbsd","x86_64-netbsd","aarch64_be-none","aarch64-none","arm-none","armv6l-none","avr-none","i686-none","microblaze-none","microblazeel-none","mips-none","mips64-none","msp430-none","or1k-none","m68k-none","powerpc-none","powerpcle-none","riscv32-none","riscv64-none","rx-none","s390-none","s390x-none","vc4-none","x86_64-none","i686-openbsd","x86_64-openbsd","x86_64-redox","wasm64-wasi","wasm32-wasi","aarch64-windows","x86_64-windows","i686-windows","aarch64-uefi","x86_64-uefi"],"broken":false,"insecure":false,"unfree":false,"outputs":["out"]},"repo_metadata":{"id":38394175,"uuid":"455846088","full_name":"MindFreeze/ha-sankey-chart","owner":"MindFreeze","description":"A Home Assistant lovelace card to display a sankey chart. For example for power consumption","archived":false,"fork":false,"pushed_at":"2026-01-28T13:33:01.000Z","size":1636,"stargazers_count":642,"open_issues_count":35,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-03-22T06:57:23.144Z","etag":null,"topics":["energy-consumption","home-assistant","lovelace-card"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MindFreeze.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["MindFreeze"],"buy_me_a_coffee":"MindFreeze"}},"created_at":"2022-02-05T11:04:19.000Z","updated_at":"2026-03-19T15:24:27.000Z","dependencies_parsed_at":"2024-01-13T07:48:44.539Z","dependency_job_id":"6f548874-3e42-44dd-b14d-dd89ace54e16","html_url":"https://github.com/MindFreeze/ha-sankey-chart","commit_stats":{"total_commits":325,"total_committers":10,"mean_commits":32.5,"dds":0.2646153846153846,"last_synced_commit":"c544e58a281b0c81a8805fb8d77eb4891b24ca78"},"previous_names":[],"tags_count":96,"template":false,"template_full_name":"custom-cards/boilerplate-card","purl":"pkg:github/MindFreeze/ha-sankey-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindFreeze","download_url":"https://codeload.github.com/MindFreeze/ha-sankey-chart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30833894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-22T05:45:47.827Z","status":"ssl_error","status_checked_at":"2026-03-22T05:45:39.030Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-03-22T20:15:51.906Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":0.0,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":100},"purl":"pkg:nix/home-assistant-custom-lovelace-modules.sankey-chart?channel=unstable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/home-assistant-custom-lovelace-modules.sankey-chart","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/home-assistant-custom-lovelace-modules.sankey-chart","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/home-assistant-custom-lovelace-modules.sankey-chart/dependencies","status":null,"funding_links":["https://github.com/sponsors/MindFreeze","https://buymeacoffee.com/MindFreeze"],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-20T08:02:06.946Z","issues_count":174,"pull_requests_count":128,"avg_time_to_close_issue":5058193.549618321,"avg_time_to_close_pull_request":243925.7,"issues_closed_count":131,"pull_requests_closed_count":120,"pull_request_authors_count":10,"issue_authors_count":127,"avg_comments_per_issue":2.293103448275862,"avg_comments_per_pull_request":0.6328125,"merged_pull_requests_count":120,"bot_issues_count":0,"bot_pull_requests_count":94,"past_year_issues_count":30,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":153689.9411764706,"past_year_avg_time_to_close_pull_request":11897.923076923076,"past_year_issues_closed_count":17,"past_year_pull_requests_closed_count":13,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":27,"past_year_avg_comments_per_issue":1.0333333333333332,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":14,"past_year_merged_pull_requests_count":13,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/issues","maintainers":[{"login":"MindFreeze","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MindFreeze"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/home-assistant-custom-lovelace-modules.sankey-chart/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/home-assistant-custom-lovelace-modules.sankey-chart/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/home-assistant-custom-lovelace-modules.sankey-chart/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/home-assistant-custom-lovelace-modules.sankey-chart/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages/home-assistant-custom-lovelace-modules.sankey-chart/codemeta","maintainers":[{"uuid":"mweinelt","login":null,"name":"Martin Weinelt","email":"hexa@darmstadt.ccc.de","url":"https://github.com/mweinelt","packages_count":534,"html_url":null,"role":null,"created_at":"2026-03-07T05:27:10.857Z","updated_at":"2026-03-07T05:27:10.857Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/maintainers/mweinelt/packages"}],"registry":{"name":"nixpkgs-unstable","url":"https://channels.nixos.org/nixos-unstable","ecosystem":"nixpkgs","default":true,"packages_count":144114,"maintainers_count":4585,"namespaces_count":0,"keywords_count":1,"github":"NixOS","metadata":{"funded_packages_count":1418},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:52.762Z","updated_at":"2026-03-27T08:56:20.186Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-unstable/namespaces"}},{"id":13053464,"name":"home-assistant-custom-lovelace-modules.sankey-chart","ecosystem":"nixpkgs","description":"Home Assistant lovelace card to display a sankey chart.","homepage":"https://github.com/MindFreeze/ha-sankey-chart","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/MindFreeze/ha-sankey-chart","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-02-01T16:22:03.340Z","latest_release_published_at":"2026-02-01T16:22:03.340Z","latest_release_number":"3.5.0","last_synced_at":"2026-03-04T21:15:19.072Z","created_at":"2026-02-01T16:22:02.963Z","updated_at":"2026-03-22T20:16:08.648Z","registry_url":"https://search.nixos.org/packages?channel=24.11\u0026query=home-assistant-custom-lovelace-modules.sankey-chart","install_command":"nix-env -iA nixpkgs.home-assistant-custom-lovelace-modules.sankey-chart","documentation_url":"https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/servers/home-assistant/custom-lovelace-modules/sankey-chart/default.nix#L30","metadata":{"nix_attribute":"sankey-chart-3.5.0","position":"pkgs/servers/home-assistant/custom-lovelace-modules/sankey-chart/default.nix:30","platforms":["i686-cygwin","x86_64-cygwin","x86_64-darwin","i686-darwin","aarch64-darwin","armv7a-darwin","i686-freebsd","x86_64-freebsd","aarch64-genode","i686-genode","x86_64-genode","x86_64-solaris","javascript-ghcjs","aarch64-linux","armv5tel-linux","armv6l-linux","armv7a-linux","armv7l-linux","i686-linux","loongarch64-linux","m68k-linux","microblaze-linux","microblazeel-linux","mips-linux","mips64-linux","mips64el-linux","mipsel-linux","powerpc64-linux","powerpc64le-linux","riscv32-linux","riscv64-linux","s390-linux","s390x-linux","x86_64-linux","mmix-mmixware","aarch64-netbsd","armv6l-netbsd","armv7a-netbsd","armv7l-netbsd","i686-netbsd","m68k-netbsd","mipsel-netbsd","powerpc-netbsd","riscv32-netbsd","riscv64-netbsd","x86_64-netbsd","aarch64_be-none","aarch64-none","arm-none","armv6l-none","avr-none","i686-none","microblaze-none","microblazeel-none","mips-none","mips64-none","msp430-none","or1k-none","m68k-none","powerpc-none","powerpcle-none","riscv32-none","riscv64-none","rx-none","s390-none","s390x-none","vc4-none","x86_64-none","i686-openbsd","x86_64-openbsd","x86_64-redox","wasm64-wasi","wasm32-wasi","aarch64-windows","x86_64-windows","i686-windows"],"broken":false,"insecure":false,"unfree":false,"outputs":["out"]},"repo_metadata":{"id":38394175,"uuid":"455846088","full_name":"MindFreeze/ha-sankey-chart","owner":"MindFreeze","description":"A Home Assistant lovelace card to display a sankey chart. For example for power consumption","archived":false,"fork":false,"pushed_at":"2026-01-28T13:33:01.000Z","size":1636,"stargazers_count":642,"open_issues_count":35,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-03-22T06:57:23.144Z","etag":null,"topics":["energy-consumption","home-assistant","lovelace-card"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MindFreeze.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["MindFreeze"],"buy_me_a_coffee":"MindFreeze"}},"created_at":"2022-02-05T11:04:19.000Z","updated_at":"2026-03-19T15:24:27.000Z","dependencies_parsed_at":"2024-01-13T07:48:44.539Z","dependency_job_id":"6f548874-3e42-44dd-b14d-dd89ace54e16","html_url":"https://github.com/MindFreeze/ha-sankey-chart","commit_stats":{"total_commits":325,"total_committers":10,"mean_commits":32.5,"dds":0.2646153846153846,"last_synced_commit":"c544e58a281b0c81a8805fb8d77eb4891b24ca78"},"previous_names":[],"tags_count":96,"template":false,"template_full_name":"custom-cards/boilerplate-card","purl":"pkg:github/MindFreeze/ha-sankey-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindFreeze","download_url":"https://codeload.github.com/MindFreeze/ha-sankey-chart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30833901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-22T05:45:47.827Z","status":"ssl_error","status_checked_at":"2026-03-22T05:45:39.030Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2026-03-22T20:16:08.648Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{},"purl":"pkg:nix/home-assistant-custom-lovelace-modules.sankey-chart?channel=24.11\u0026repository_url=https://channels.nixos.org/nixos-24.11","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nixpkgs/home-assistant-custom-lovelace-modules.sankey-chart","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nixpkgs/home-assistant-custom-lovelace-modules.sankey-chart","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nixpkgs/home-assistant-custom-lovelace-modules.sankey-chart/dependencies","status":null,"funding_links":["https://github.com/sponsors/MindFreeze","https://buymeacoffee.com/MindFreeze"],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-20T08:02:06.946Z","issues_count":174,"pull_requests_count":128,"avg_time_to_close_issue":5058193.549618321,"avg_time_to_close_pull_request":243925.7,"issues_closed_count":131,"pull_requests_closed_count":120,"pull_request_authors_count":10,"issue_authors_count":127,"avg_comments_per_issue":2.293103448275862,"avg_comments_per_pull_request":0.6328125,"merged_pull_requests_count":120,"bot_issues_count":0,"bot_pull_requests_count":94,"past_year_issues_count":30,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":153689.9411764706,"past_year_avg_time_to_close_pull_request":11897.923076923076,"past_year_issues_closed_count":17,"past_year_pull_requests_closed_count":13,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":27,"past_year_avg_comments_per_issue":1.0333333333333332,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":14,"past_year_merged_pull_requests_count":13,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/issues","maintainers":[{"login":"MindFreeze","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MindFreeze"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/home-assistant-custom-lovelace-modules.sankey-chart/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/home-assistant-custom-lovelace-modules.sankey-chart/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/home-assistant-custom-lovelace-modules.sankey-chart/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/home-assistant-custom-lovelace-modules.sankey-chart/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages/home-assistant-custom-lovelace-modules.sankey-chart/codemeta","maintainers":[{"uuid":"mweinelt","login":null,"name":"Martin Weinelt","email":"hexa@darmstadt.ccc.de","url":"https://github.com/mweinelt","packages_count":1364,"html_url":null,"role":null,"created_at":"2026-03-04T21:15:19.278Z","updated_at":"2026-03-04T21:15:19.278Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/maintainers/mweinelt/packages"}],"registry":{"name":"nixpkgs-24.11","url":"https://channels.nixos.org/nixos-24.11","ecosystem":"nixpkgs","default":false,"packages_count":121983,"maintainers_count":3777,"namespaces_count":0,"keywords_count":0,"github":"NixOS","metadata":{"funded_packages_count":148},"icon_url":"https://github.com/NixOS.png","created_at":"2026-01-25T22:30:53.059Z","updated_at":"2026-03-18T07:39:53.908Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/nixpkgs-24.11/namespaces"}}],"commits":{"id":1334801,"full_name":"MindFreeze/ha-sankey-chart","default_branch":"master","total_commits":358,"total_committers":11,"total_bot_commits":75,"total_bot_committers":1,"mean_commits":32.54545454545455,"dds":0.270949720670391,"past_year_total_commits":33,"past_year_total_committers":4,"past_year_total_bot_commits":9,"past_year_total_bot_committers":1,"past_year_mean_commits":8.25,"past_year_dds":0.33333333333333337,"last_synced_at":"2026-03-22T20:16:14.692Z","last_synced_commit":"e4f4f57130ecf48c5547f421dde272e0ea786f5f","created_at":"2023-09-11T17:47:06.798Z","updated_at":"2026-03-22T20:16:00.479Z","committers":[{"name":"Petar Petrov","email":"MindFreeze","login":"MindFreeze","count":261},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":75},{"name":"Atticus Maximus","email":"atticus.rationalis@gmail.com","login":"amaximus","count":6},{"name":"misa1515","email":"61636045+misa1515","login":"misa1515","count":6},{"name":"Andrew Reiter","email":"reiterandrew@gmail.com","login":"madsciencetist","count":3},{"name":"Joseph Lochy","email":"github@lochy.cz","login":"LochyCZ","count":2},{"name":"ngommers","email":"82467671+ngommers","login":"ngommers","count":1},{"name":"kiryph","email":"kiryph","login":"kiryph","count":1},{"name":"emufan","email":"emufan","login":"emufan","count":1},{"name":"Rodion","email":"75478062+rodion981","login":"rodion981","count":1},{"name":"P1LH4","email":"joao.calby@gmail.com","login":"p1lh4","count":1}],"past_year_committers":[{"name":"Petar Petrov","email":"MindFreeze","login":"MindFreeze","count":22},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":9},{"name":"Rodion","email":"75478062+rodion981","login":"rodion981","count":1},{"name":"Andrew Reiter","email":"reiterandrew@gmail.com","login":"madsciencetist","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-27T00:00:09.539Z","repositories_count":6204224,"commits_count":927067008,"contributors_count":35824977,"owners_count":1144654,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"MindFreeze/ha-sankey-chart","html_url":"https://github.com/MindFreeze/ha-sankey-chart","last_synced_at":"2026-03-20T08:02:06.946Z","status":null,"issues_count":174,"pull_requests_count":128,"avg_time_to_close_issue":5058193.549618321,"avg_time_to_close_pull_request":243925.7,"issues_closed_count":131,"pull_requests_closed_count":120,"pull_request_authors_count":10,"issue_authors_count":127,"avg_comments_per_issue":2.293103448275862,"avg_comments_per_pull_request":0.6328125,"merged_pull_requests_count":120,"bot_issues_count":0,"bot_pull_requests_count":94,"past_year_issues_count":30,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":153689.9411764706,"past_year_avg_time_to_close_pull_request":11897.923076923076,"past_year_issues_closed_count":17,"past_year_pull_requests_closed_count":13,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":27,"past_year_avg_comments_per_issue":1.0333333333333332,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":14,"past_year_merged_pull_requests_count":13,"created_at":"2023-09-11T17:47:38.654Z","updated_at":"2026-03-20T08:02:06.947Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindFreeze%2Fha-sankey-chart/issues","issue_labels_count":{"bug":84,"enhancement":40,"wontfix":2,"question":1,"documentation":1,"stale":1},"pull_request_labels_count":{"autorelease: tagged":68,"autorelease: pending":26,"enhancement":5},"issue_author_associations_count":{"NONE":162,"OWNER":9,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"CONTRIBUTOR":116,"OWNER":8,"NONE":4},"issue_authors":{"kzajac83":9,"MindFreeze":9,"AleXSR700":5,"Dutchy-79":4,"Mariusthvdb":3,"commentsonly":3,"nathan-curtis":3,"GitHubGoody":3,"Cougar":2,"DavidValeri":2,"XtremeOwnageDotCom":2,"Floppe":2,"cromelex":2,"thoath2":2,"f-zappa":2,"flopp999":2,"iNaiks":2,"tomlut":2,"madsciencetist":2,"icefest":2,"realjax":2,"Madelena":2,"rrozema":2,"Nooton92":2,"sybux":1,"FortranFour":1,"bartekev":1,"arrikhan":1,"thybag":1,"kernel610":1,"npotternyc":1,"abu9":1,"6onions":1,"i00":1,"FlorianWilk":1,"Kedryn":1,"ColinSainsbury":1,"brynyneuadd":1,"widewing":1,"judzk":1,"ey-jo":1,"emufan":1,"rbnltz":1,"wigster":1,"palitu":1,"paintballkev812":1,"PedanticAvenger":1,"cb12tre":1,"MarkGTI":1,"lucasimons":1,"Cptkex82":1,"rmu1987":1,"RN-Say":1,"bob454522":1,"AlexCPU":1,"rschueler":1,"elupus":1,"derhappy":1,"duanemck":1,"bbK1ngSrb":1,"hidefandy":1,"filoor":1,"davidrapan":1,"DorwinDT":1,"CrazyHenk44":1,"michalk-k":1,"MelleD":1,"Mira141":1,"Stephan-4711":1,"NickStallman":1,"raghu-ranganathan":1,"apbarratt":1,"scuppasteve":1,"rosiaantje":1,"yigitar":1,"SAOPP":1,"ojm88":1,"bartkummel":1,"jameswestcott":1,"jelmerwouters":1,"Mika255":1,"Jacky66it":1,"marc4s":1,"orimate":1,"gheydon":1,"iridris":1,"JoeKae":1,"zekje":1,"arnaud-gouder":1,"simenopsahl":1,"Routout":1,"blacknell":1,"segdy":1,"catatung":1,"klaus1k":1,"Dreanaught":1,"JokerGermany":1,"mvdwetering":1,"kaijk":1,"ddeconin-gh":1,"fusion94":1,"bastiaanterhorst":1,"ulope":1,"Waggers58":1,"benjamin-dcs":1,"Ashthos":1,"martinarva":1,"andsee":1,"sfstar":1,"PandemiK911":1,"RoSche2001":1,"Xitro01":1,"matellis":1,"saturnv5":1,"HQOFIQ":1,"david-rapan":1,"18107":1,"bzzzggz":1,"spuke113":1,"forreggbor":1,"amaximus":1,"Ndrinta":1,"KidA001":1,"frittes":1,"Masterz69":1,"macmeck":1,"mattsaxon":1},"pull_request_authors":{"github-actions[bot]":94,"MindFreeze":8,"misa1515":8,"madsciencetist":5,"amaximus":4,"LochyCZ":3,"kiryph":2,"p1lh4":2,"ngommers":1,"rodion981":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-23T00:00:07.489Z","repositories_count":13887312,"issues_count":34647234,"pull_requests_count":113114772,"authors_count":11208691,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"bug":14,"enhancement":5},"past_year_pull_request_labels_count":{"autorelease: tagged":8,"autorelease: pending":6},"past_year_issue_author_associations_count":{"NONE":30},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":16},"past_year_issue_authors":{"thoath2":2,"DavidValeri":2,"Mariusthvdb":2,"yigitar":1,"ulope":1,"sybux":1,"scuppasteve":1,"saturnv5":1,"rbnltz":1,"raghu-ranganathan":1,"PedanticAvenger":1,"paintballkev812":1,"orimate":1,"Mira141":1,"Mika255":1,"kzajac83":1,"hidefandy":1,"FortranFour":1,"forreggbor":1,"ey-jo":1,"duanemck":1,"Dreanaught":1,"ddeconin-gh":1,"bartekev":1,"arrikhan":1,"arnaud-gouder":1,"6onions":1},"past_year_pull_request_authors":{"github-actions[bot]":14,"madsciencetist":1,"rodion981":1},"maintainers":[{"login":"MindFreeze","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MindFreeze"}],"active_maintainers":[]},"events":{"total":{"ReleaseEvent":8,"DeleteEvent":3,"PullRequestEvent":14,"ForkEvent":5,"IssuesEvent":75,"WatchEvent":202,"IssueCommentEvent":97,"PushEvent":35,"PullRequestReviewEvent":1,"CreateEvent":13},"last_year":{"ReleaseEvent":6,"DeleteEvent":2,"PullRequestEvent":8,"ForkEvent":3,"IssuesEvent":46,"WatchEvent":97,"IssueCommentEvent":61,"PushEvent":27,"PullRequestReviewEvent":1,"CreateEvent":9}},"keywords":["energy-consumption","home-assistant","lovelace-card"],"dependencies":[{"ecosystem":"npm","filepath":"package-lock.json","sha":null,"kind":"lockfile","created_at":"2022-08-09T03:16:29.434Z","updated_at":"2022-08-09T03:16:29.434Z","repository_link":"https://github.com/MindFreeze/ha-sankey-chart/blob/master/package-lock.json","dependencies":[{"id":729102457,"package_name":"@babel/code-frame","ecosystem":"npm","requirements":"7.14.5","direct":false,"kind":"development","optional":false},{"id":729102458,"package_name":"@babel/compat-data","ecosystem":"npm","requirements":"7.15.0","direct":false,"kind":"development","optional":false},{"id":729102459,"package_name":"@babel/core","ecosystem":"npm","requirements":"7.15.5","direct":false,"kind":"development","optional":false},{"id":729102460,"package_name":"debug","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"development","optional":false},{"id":729102461,"package_name":"@babel/generator","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102462,"package_name":"@babel/helper-annotate-as-pure","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102463,"package_name":"@babel/helper-compilation-targets","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102464,"package_name":"@babel/helper-create-class-features-plugin","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102465,"package_name":"@babel/helper-function-name","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102466,"package_name":"@babel/helper-get-function-arity","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102467,"package_name":"@babel/helper-hoist-variables","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102468,"package_name":"@babel/helper-member-expression-to-functions","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102469,"package_name":"@babel/helper-module-imports","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":729102470,"package_name":"@babel/types","ecosystem":"npm","requirements":"7.5.5","direct":false,"kind":"development","optional":false},{"id":729102471,"package_name":"@babel/helper-module-transforms","ecosystem":"npm","requirements":"7.15.7","direct":false,"kind":"development","optional":false},{"id":729102472,"package_name":"@babel/helper-module-imports","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102473,"package_name":"@babel/helper-optimise-call-expression","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102474,"package_name":"@babel/helper-plugin-utils","ecosystem":"npm","requirements":"7.14.5","direct":false,"kind":"development","optional":false},{"id":729102475,"package_name":"@babel/helper-replace-supers","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102476,"package_name":"@babel/helper-simple-access","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102477,"package_name":"@babel/helper-split-export-declaration","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102478,"package_name":"@babel/helper-validator-identifier","ecosystem":"npm","requirements":"7.15.7","direct":false,"kind":"development","optional":false},{"id":729102479,"package_name":"@babel/helper-validator-option","ecosystem":"npm","requirements":"7.14.5","direct":false,"kind":"development","optional":false},{"id":729102480,"package_name":"@babel/helpers","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102481,"package_name":"@babel/highlight","ecosystem":"npm","requirements":"7.14.5","direct":false,"kind":"development","optional":false},{"id":729102482,"package_name":"@babel/parser","ecosystem":"npm","requirements":"7.15.7","direct":false,"kind":"development","optional":false},{"id":729102483,"package_name":"@babel/plugin-proposal-class-properties","ecosystem":"npm","requirements":"7.14.5","direct":false,"kind":"development","optional":false},{"id":729102484,"package_name":"@babel/plugin-proposal-decorators","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102485,"package_name":"@babel/plugin-syntax-decorators","ecosystem":"npm","requirements":"7.14.5","direct":false,"kind":"development","optional":false},{"id":729102486,"package_name":"@babel/template","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102487,"package_name":"@babel/traverse","ecosystem":"npm","requirements":"7.15.4","direct":false,"kind":"development","optional":false},{"id":729102488,"package_name":"globals","ecosystem":"npm","requirements":"11.12.0","direct":false,"kind":"development","optional":false},{"id":729102489,"package_name":"@babel/types","ecosystem":"npm","requirements":"7.15.6","direct":false,"kind":"development","optional":false},{"id":729102490,"package_name":"@eslint/eslintrc","ecosystem":"npm","requirements":"0.4.3","direct":false,"kind":"development","optional":false},{"id":729102491,"package_name":"ajv","ecosystem":"npm","requirements":"6.12.6","direct":false,"kind":"development","optional":false},{"id":729102492,"package_name":"import-fresh","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"development","optional":false},{"id":729102493,"package_name":"@formatjs/intl-unified-numberformat","ecosystem":"npm","requirements":"3.3.5","direct":false,"kind":"runtime","optional":false},{"id":729102494,"package_name":"@formatjs/intl-utils","ecosystem":"npm","requirements":"2.2.4","direct":false,"kind":"runtime","optional":false},{"id":729102495,"package_name":"@humanwhocodes/config-array","ecosystem":"npm","requirements":"0.5.0","direct":false,"kind":"development","optional":false},{"id":729102496,"package_name":"@humanwhocodes/object-schema","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":729102497,"package_name":"@lit/reactive-element","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":729102498,"package_name":"@nodelib/fs.scandir","ecosystem":"npm","requirements":"2.1.5","direct":false,"kind":"development","optional":false},{"id":729102499,"package_name":"@nodelib/fs.stat","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":729102500,"package_name":"@nodelib/fs.walk","ecosystem":"npm","requirements":"1.2.8","direct":false,"kind":"development","optional":false},{"id":729102501,"package_name":"@rollup/plugin-json","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":729102502,"package_name":"@rollup/pluginutils","ecosystem":"npm","requirements":"3.0.9","direct":false,"kind":"development","optional":false},{"id":729102503,"package_name":"estree-walker","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102504,"package_name":"@rollup/pluginutils","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"development","optional":false},{"id":729102505,"package_name":"estree-walker","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":729102506,"package_name":"@types/chai","ecosystem":"npm","requirements":"4.2.11","direct":false,"kind":"runtime","optional":false},{"id":729102507,"package_name":"@types/clean-css","ecosystem":"npm","requirements":"4.2.5","direct":false,"kind":"development","optional":false},{"id":729102508,"package_name":"source-map","ecosystem":"npm","requirements":"0.6.1","direct":false,"kind":"development","optional":false},{"id":729102509,"package_name":"@types/estree","ecosystem":"npm","requirements":"0.0.39","direct":false,"kind":"development","optional":false},{"id":729102510,"package_name":"@types/html-minifier","ecosystem":"npm","requirements":"3.5.3","direct":false,"kind":"development","optional":false},{"id":729102511,"package_name":"@types/json-schema","ecosystem":"npm","requirements":"7.0.9","direct":false,"kind":"development","optional":false},{"id":729102512,"package_name":"@types/json5","ecosystem":"npm","requirements":"0.0.29","direct":false,"kind":"development","optional":false},{"id":729102513,"package_name":"@types/node","ecosystem":"npm","requirements":"12.7.2","direct":false,"kind":"development","optional":false},{"id":729102514,"package_name":"@types/relateurl","ecosystem":"npm","requirements":"0.2.29","direct":false,"kind":"development","optional":false},{"id":729102515,"package_name":"@types/resolve","ecosystem":"npm","requirements":"0.0.8","direct":false,"kind":"development","optional":false},{"id":729102516,"package_name":"@types/trusted-types","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":729102517,"package_name":"@types/uglify-js","ecosystem":"npm","requirements":"3.13.1","direct":false,"kind":"development","optional":false},{"id":729102518,"package_name":"@typescript-eslint/eslint-plugin","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102519,"package_name":"ignore","ecosystem":"npm","requirements":"5.1.8","direct":false,"kind":"development","optional":false},{"id":729102520,"package_name":"semver","ecosystem":"npm","requirements":"7.3.5","direct":false,"kind":"development","optional":false},{"id":729102521,"package_name":"@typescript-eslint/experimental-utils","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102522,"package_name":"eslint-utils","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102523,"package_name":"@typescript-eslint/parser","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102524,"package_name":"@typescript-eslint/scope-manager","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102525,"package_name":"@typescript-eslint/types","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102526,"package_name":"@typescript-eslint/typescript-estree","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102527,"package_name":"@typescript-eslint/visitor-keys","ecosystem":"npm","requirements":"4.33.0","direct":false,"kind":"development","optional":false},{"id":729102528,"package_name":"acorn","ecosystem":"npm","requirements":"7.4.1","direct":false,"kind":"development","optional":false},{"id":729102529,"package_name":"acorn-jsx","ecosystem":"npm","requirements":"5.3.2","direct":false,"kind":"development","optional":false},{"id":729102530,"package_name":"ajv","ecosystem":"npm","requirements":"6.10.2","direct":false,"kind":"development","optional":false},{"id":729102531,"package_name":"fast-deep-equal","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":729102532,"package_name":"ansi-colors","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"development","optional":false},{"id":729102533,"package_name":"ansi-regex","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":729102534,"package_name":"ansi-styles","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"development","optional":false},{"id":729102535,"package_name":"argparse","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":729102536,"package_name":"array-includes","ecosystem":"npm","requirements":"3.1.4","direct":false,"kind":"development","optional":false},{"id":729102537,"package_name":"array-union","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102538,"package_name":"array.prototype.flat","ecosystem":"npm","requirements":"1.2.5","direct":false,"kind":"development","optional":false},{"id":729102539,"package_name":"assertion-error","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":729102540,"package_name":"astral-regex","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102541,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102542,"package_name":"brace-expansion","ecosystem":"npm","requirements":"1.1.11","direct":false,"kind":"development","optional":false},{"id":729102543,"package_name":"braces","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":729102544,"package_name":"browserslist","ecosystem":"npm","requirements":"4.17.3","direct":false,"kind":"development","optional":false},{"id":729102545,"package_name":"buffer-from","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":729102546,"package_name":"builtin-modules","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":729102547,"package_name":"call-bind","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102548,"package_name":"callsites","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":729102549,"package_name":"camel-case","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102550,"package_name":"caniuse-lite","ecosystem":"npm","requirements":"1.0.30001264","direct":false,"kind":"development","optional":false},{"id":729102551,"package_name":"chai","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":729102552,"package_name":"chalk","ecosystem":"npm","requirements":"2.4.2","direct":false,"kind":"development","optional":false},{"id":729102553,"package_name":"ansi-styles","ecosystem":"npm","requirements":"3.2.1","direct":false,"kind":"development","optional":false},{"id":729102554,"package_name":"color-convert","ecosystem":"npm","requirements":"1.9.3","direct":false,"kind":"development","optional":false},{"id":729102555,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":729102556,"package_name":"supports-color","ecosystem":"npm","requirements":"5.5.0","direct":false,"kind":"development","optional":false},{"id":729102557,"package_name":"check-error","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":729102558,"package_name":"clean-css","ecosystem":"npm","requirements":"4.2.4","direct":false,"kind":"development","optional":false},{"id":729102559,"package_name":"color-convert","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":729102560,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":729102561,"package_name":"commander","ecosystem":"npm","requirements":"2.20.0","direct":false,"kind":"development","optional":false},{"id":729102562,"package_name":"commondir","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102563,"package_name":"concat-map","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":729102564,"package_name":"confusing-browser-globals","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":729102565,"package_name":"convert-source-map","ecosystem":"npm","requirements":"1.7.0","direct":false,"kind":"development","optional":false},{"id":729102566,"package_name":"cross-spawn","ecosystem":"npm","requirements":"7.0.3","direct":false,"kind":"development","optional":false},{"id":729102567,"package_name":"custom-card-helpers","ecosystem":"npm","requirements":"1.8.0","direct":false,"kind":"runtime","optional":false},{"id":729102568,"package_name":"home-assistant-js-websocket","ecosystem":"npm","requirements":"5.1.0","direct":false,"kind":"runtime","optional":false},{"id":729102569,"package_name":"rollup","ecosystem":"npm","requirements":"2.7.6","direct":false,"kind":"runtime","optional":false},{"id":729102570,"package_name":"typescript","ecosystem":"npm","requirements":"3.8.3","direct":false,"kind":"runtime","optional":false},{"id":729102571,"package_name":"debug","ecosystem":"npm","requirements":"4.3.2","direct":false,"kind":"development","optional":false},{"id":729102572,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"development","optional":false},{"id":729102573,"package_name":"deep-eql","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":729102574,"package_name":"deep-is","ecosystem":"npm","requirements":"0.1.4","direct":false,"kind":"development","optional":false},{"id":729102575,"package_name":"define-properties","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":729102576,"package_name":"dir-glob","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":729102577,"package_name":"path-type","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102578,"package_name":"doctrine","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102579,"package_name":"electron-to-chromium","ecosystem":"npm","requirements":"1.3.860","direct":false,"kind":"development","optional":false},{"id":729102580,"package_name":"emoji-regex","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"development","optional":false},{"id":729102581,"package_name":"enquirer","ecosystem":"npm","requirements":"2.3.6","direct":false,"kind":"development","optional":false},{"id":729102582,"package_name":"error-ex","ecosystem":"npm","requirements":"1.3.2","direct":false,"kind":"development","optional":false},{"id":729102583,"package_name":"es-abstract","ecosystem":"npm","requirements":"1.19.1","direct":false,"kind":"development","optional":false},{"id":729102584,"package_name":"has-symbols","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102585,"package_name":"is-callable","ecosystem":"npm","requirements":"1.2.4","direct":false,"kind":"development","optional":false},{"id":729102586,"package_name":"is-regex","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":729102587,"package_name":"string.prototype.trimstart","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":729102588,"package_name":"es-to-primitive","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":729102589,"package_name":"is-callable","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":729102590,"package_name":"escalade","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":729102591,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":729102592,"package_name":"eslint","ecosystem":"npm","requirements":"7.32.0","direct":false,"kind":"development","optional":false},{"id":729102593,"package_name":"@babel/code-frame","ecosystem":"npm","requirements":"7.12.11","direct":false,"kind":"development","optional":false},{"id":729102594,"package_name":"chalk","ecosystem":"npm","requirements":"4.1.2","direct":false,"kind":"development","optional":false},{"id":729102595,"package_name":"doctrine","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102596,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102597,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":729102598,"package_name":"eslint-config-airbnb-base","ecosystem":"npm","requirements":"14.2.1","direct":false,"kind":"development","optional":false},{"id":729102599,"package_name":"eslint-config-prettier","ecosystem":"npm","requirements":"8.3.0","direct":false,"kind":"development","optional":false},{"id":729102600,"package_name":"eslint-import-resolver-node","ecosystem":"npm","requirements":"0.3.6","direct":false,"kind":"development","optional":false},{"id":729102601,"package_name":"debug","ecosystem":"npm","requirements":"3.2.7","direct":false,"kind":"development","optional":false},{"id":729102602,"package_name":"resolve","ecosystem":"npm","requirements":"1.20.0","direct":false,"kind":"development","optional":false},{"id":729102603,"package_name":"eslint-module-utils","ecosystem":"npm","requirements":"2.6.2","direct":false,"kind":"development","optional":false},{"id":729102604,"package_name":"eslint-plugin-import","ecosystem":"npm","requirements":"2.24.2","direct":false,"kind":"development","optional":false},{"id":729102605,"package_name":"debug","ecosystem":"npm","requirements":"2.6.9","direct":false,"kind":"development","optional":false},{"id":729102606,"package_name":"ms","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102607,"package_name":"eslint-plugin-prettier","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102608,"package_name":"eslint-scope","ecosystem":"npm","requirements":"5.1.1","direct":false,"kind":"development","optional":false},{"id":729102609,"package_name":"estraverse","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"development","optional":false},{"id":729102610,"package_name":"eslint-utils","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102611,"package_name":"eslint-visitor-keys","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"development","optional":false},{"id":729102612,"package_name":"eslint-visitor-keys","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102613,"package_name":"espree","ecosystem":"npm","requirements":"7.3.1","direct":false,"kind":"development","optional":false},{"id":729102614,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":729102615,"package_name":"esquery","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":729102616,"package_name":"esrecurse","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"development","optional":false},{"id":729102617,"package_name":"estraverse","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"development","optional":false},{"id":729102618,"package_name":"estree-walker","ecosystem":"npm","requirements":"0.6.1","direct":false,"kind":"development","optional":false},{"id":729102619,"package_name":"esutils","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"development","optional":false},{"id":729102620,"package_name":"fast-deep-equal","ecosystem":"npm","requirements":"3.1.3","direct":false,"kind":"development","optional":false},{"id":729102621,"package_name":"fast-diff","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":729102622,"package_name":"fast-glob","ecosystem":"npm","requirements":"3.2.7","direct":false,"kind":"development","optional":false},{"id":729102623,"package_name":"micromatch","ecosystem":"npm","requirements":"4.0.4","direct":false,"kind":"development","optional":false},{"id":729102624,"package_name":"fast-json-stable-stringify","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102625,"package_name":"fast-levenshtein","ecosystem":"npm","requirements":"2.0.6","direct":false,"kind":"development","optional":false},{"id":729102626,"package_name":"fastq","ecosystem":"npm","requirements":"1.13.0","direct":false,"kind":"development","optional":false},{"id":729102627,"package_name":"fecha","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":729102628,"package_name":"file-entry-cache","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":729102629,"package_name":"fill-range","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"development","optional":false},{"id":729102630,"package_name":"find-cache-dir","ecosystem":"npm","requirements":"3.3.2","direct":false,"kind":"development","optional":false},{"id":729102631,"package_name":"find-up","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":729102632,"package_name":"locate-path","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":729102633,"package_name":"p-limit","ecosystem":"npm","requirements":"2.2.1","direct":false,"kind":"development","optional":false},{"id":729102634,"package_name":"p-locate","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":729102635,"package_name":"p-try","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":729102636,"package_name":"path-exists","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102637,"package_name":"pkg-dir","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"development","optional":false},{"id":729102638,"package_name":"find-up","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102639,"package_name":"flat-cache","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"development","optional":false},{"id":729102640,"package_name":"flatted","ecosystem":"npm","requirements":"3.2.2","direct":false,"kind":"development","optional":false},{"id":729102641,"package_name":"fs-extra","ecosystem":"npm","requirements":"8.1.0","direct":false,"kind":"development","optional":false},{"id":729102642,"package_name":"fs.realpath","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102643,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":729102644,"package_name":"functional-red-black-tree","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102645,"package_name":"gensync","ecosystem":"npm","requirements":"1.0.0-beta.2","direct":false,"kind":"development","optional":false},{"id":729102646,"package_name":"get-func-name","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":729102647,"package_name":"get-intrinsic","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":729102648,"package_name":"get-symbol-description","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102649,"package_name":"glob","ecosystem":"npm","requirements":"7.1.4","direct":false,"kind":"development","optional":false},{"id":729102650,"package_name":"glob-parent","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"development","optional":false},{"id":729102651,"package_name":"globals","ecosystem":"npm","requirements":"13.11.0","direct":false,"kind":"development","optional":false},{"id":729102652,"package_name":"globby","ecosystem":"npm","requirements":"11.0.4","direct":false,"kind":"development","optional":false},{"id":729102653,"package_name":"graceful-fs","ecosystem":"npm","requirements":"4.2.2","direct":false,"kind":"development","optional":false},{"id":729102654,"package_name":"has","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":729102655,"package_name":"has-bigints","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102656,"package_name":"has-flag","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102657,"package_name":"has-symbols","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102658,"package_name":"has-tostringtag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102659,"package_name":"he","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":729102660,"package_name":"home-assistant-js-websocket","ecosystem":"npm","requirements":"5.11.1","direct":false,"kind":"runtime","optional":false},{"id":729102661,"package_name":"hosted-git-info","ecosystem":"npm","requirements":"2.8.4","direct":false,"kind":"development","optional":false},{"id":729102662,"package_name":"html-minifier","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102663,"package_name":"ignore","ecosystem":"npm","requirements":"4.0.6","direct":false,"kind":"development","optional":false},{"id":729102664,"package_name":"import-fresh","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":729102665,"package_name":"imurmurhash","ecosystem":"npm","requirements":"0.1.4","direct":false,"kind":"development","optional":false},{"id":729102666,"package_name":"inflight","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":729102667,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"development","optional":false},{"id":729102668,"package_name":"internal-slot","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":729102669,"package_name":"intl-format-cache","ecosystem":"npm","requirements":"4.2.26","direct":false,"kind":"runtime","optional":false},{"id":729102670,"package_name":"intl-messageformat","ecosystem":"npm","requirements":"8.3.9","direct":false,"kind":"runtime","optional":false},{"id":729102671,"package_name":"intl-messageformat-parser","ecosystem":"npm","requirements":"5.0.2","direct":false,"kind":"runtime","optional":false},{"id":729102672,"package_name":"is-arrayish","ecosystem":"npm","requirements":"0.2.1","direct":false,"kind":"development","optional":false},{"id":729102673,"package_name":"is-bigint","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":729102674,"package_name":"is-boolean-object","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":729102675,"package_name":"is-callable","ecosystem":"npm","requirements":"1.2.2","direct":false,"kind":"development","optional":false},{"id":729102676,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.7.0","direct":false,"kind":"development","optional":false},{"id":729102677,"package_name":"is-date-object","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102678,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":729102679,"package_name":"is-fullwidth-code-point","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102680,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":729102681,"package_name":"is-module","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102682,"package_name":"is-negative-zero","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":729102683,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":729102684,"package_name":"is-number-object","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":729102685,"package_name":"is-reference","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":729102686,"package_name":"is-regex","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":729102687,"package_name":"is-shared-array-buffer","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102688,"package_name":"is-string","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"development","optional":false},{"id":729102689,"package_name":"is-symbol","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102690,"package_name":"has-symbols","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102691,"package_name":"is-weakref","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102692,"package_name":"call-bind","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102693,"package_name":"get-intrinsic","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102694,"package_name":"isexe","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102695,"package_name":"js-tokens","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102696,"package_name":"js-yaml","ecosystem":"npm","requirements":"3.13.1","direct":false,"kind":"development","optional":false},{"id":729102697,"package_name":"jsesc","ecosystem":"npm","requirements":"2.5.2","direct":false,"kind":"development","optional":false},{"id":729102698,"package_name":"json-parse-better-errors","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102699,"package_name":"json-schema-traverse","ecosystem":"npm","requirements":"0.4.1","direct":false,"kind":"development","optional":false},{"id":729102700,"package_name":"json-stable-stringify-without-jsonify","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102701,"package_name":"json5","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"development","optional":false},{"id":729102702,"package_name":"minimist","ecosystem":"npm","requirements":"1.2.5","direct":false,"kind":"development","optional":false},{"id":729102703,"package_name":"jsonfile","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102704,"package_name":"kind-of","ecosystem":"npm","requirements":"6.0.3","direct":false,"kind":"runtime","optional":false},{"id":729102705,"package_name":"levn","ecosystem":"npm","requirements":"0.4.1","direct":false,"kind":"development","optional":false},{"id":729102706,"package_name":"lit","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":729102707,"package_name":"lit-element","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":729102708,"package_name":"lit-html","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":729102709,"package_name":"load-json-file","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102710,"package_name":"locate-path","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102711,"package_name":"lodash","ecosystem":"npm","requirements":"4.17.19","direct":false,"kind":"development","optional":false},{"id":729102712,"package_name":"lodash.clonedeep","ecosystem":"npm","requirements":"4.5.0","direct":false,"kind":"development","optional":false},{"id":729102713,"package_name":"lodash.merge","ecosystem":"npm","requirements":"4.6.2","direct":false,"kind":"development","optional":false},{"id":729102714,"package_name":"lodash.truncate","ecosystem":"npm","requirements":"4.4.2","direct":false,"kind":"development","optional":false},{"id":729102715,"package_name":"lower-case","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":729102716,"package_name":"lru-cache","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":729102717,"package_name":"magic-string","ecosystem":"npm","requirements":"0.25.7","direct":false,"kind":"development","optional":false},{"id":729102718,"package_name":"make-dir","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":729102719,"package_name":"merge-stream","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102720,"package_name":"merge2","ecosystem":"npm","requirements":"1.4.1","direct":false,"kind":"development","optional":false},{"id":729102721,"package_name":"micromatch","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false},{"id":729102722,"package_name":"picomatch","ecosystem":"npm","requirements":"2.2.2","direct":false,"kind":"development","optional":false},{"id":729102723,"package_name":"mime","ecosystem":"npm","requirements":"2.4.6","direct":false,"kind":"development","optional":false},{"id":729102724,"package_name":"minify-html-literals","ecosystem":"npm","requirements":"1.3.5","direct":false,"kind":"development","optional":false},{"id":729102725,"package_name":"minimatch","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"development","optional":false},{"id":729102726,"package_name":"minimist","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":729102727,"package_name":"ms","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"development","optional":false},{"id":729102728,"package_name":"natural-compare","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":729102729,"package_name":"no-case","ecosystem":"npm","requirements":"2.3.2","direct":false,"kind":"development","optional":false},{"id":729102730,"package_name":"node-releases","ecosystem":"npm","requirements":"1.1.77","direct":false,"kind":"development","optional":false},{"id":729102731,"package_name":"normalize-package-data","ecosystem":"npm","requirements":"2.5.0","direct":false,"kind":"development","optional":false},{"id":729102732,"package_name":"semver","ecosystem":"npm","requirements":"5.7.1","direct":false,"kind":"development","optional":false},{"id":729102733,"package_name":"object-inspect","ecosystem":"npm","requirements":"1.11.0","direct":false,"kind":"development","optional":false},{"id":729102734,"package_name":"object-keys","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":729102735,"package_name":"object.assign","ecosystem":"npm","requirements":"4.1.2","direct":false,"kind":"development","optional":false},{"id":729102736,"package_name":"object.entries","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":729102737,"package_name":"es-abstract","ecosystem":"npm","requirements":"1.17.7","direct":false,"kind":"development","optional":false},{"id":729102738,"package_name":"is-negative-zero","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102739,"package_name":"object-inspect","ecosystem":"npm","requirements":"1.8.0","direct":false,"kind":"development","optional":false},{"id":729102740,"package_name":"string.prototype.trimend","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102741,"package_name":"es-abstract","ecosystem":"npm","requirements":"1.18.0-next.1","direct":false,"kind":"development","optional":false},{"id":729102742,"package_name":"object.values","ecosystem":"npm","requirements":"1.1.5","direct":false,"kind":"development","optional":false},{"id":729102743,"package_name":"once","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":729102744,"package_name":"opener","ecosystem":"npm","requirements":"1.5.1","direct":false,"kind":"development","optional":false},{"id":729102745,"package_name":"optionator","ecosystem":"npm","requirements":"0.9.1","direct":false,"kind":"development","optional":false},{"id":729102746,"package_name":"p-limit","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"development","optional":false},{"id":729102747,"package_name":"p-locate","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102748,"package_name":"p-try","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102749,"package_name":"param-case","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":729102750,"package_name":"parent-module","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102751,"package_name":"parse-json","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102752,"package_name":"parse-literals","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":729102753,"package_name":"path-exists","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102754,"package_name":"path-is-absolute","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102755,"package_name":"path-key","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":729102756,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":729102757,"package_name":"path-type","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102758,"package_name":"pathval","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":729102759,"package_name":"picocolors","ecosystem":"npm","requirements":"0.2.1","direct":false,"kind":"development","optional":false},{"id":729102760,"package_name":"picomatch","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":729102761,"package_name":"pify","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102762,"package_name":"pkg-dir","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102763,"package_name":"pkg-up","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102764,"package_name":"prelude-ls","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":729102765,"package_name":"prettier","ecosystem":"npm","requirements":"2.4.1","direct":false,"kind":"development","optional":false},{"id":729102766,"package_name":"prettier-linter-helpers","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102767,"package_name":"progress","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"development","optional":false},{"id":729102768,"package_name":"punycode","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":729102769,"package_name":"queue-microtask","ecosystem":"npm","requirements":"1.2.3","direct":false,"kind":"development","optional":false},{"id":729102770,"package_name":"randombytes","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102771,"package_name":"safe-buffer","ecosystem":"npm","requirements":"5.2.1","direct":false,"kind":"development","optional":false},{"id":729102772,"package_name":"read-pkg","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102773,"package_name":"read-pkg-up","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102774,"package_name":"regexpp","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"development","optional":false},{"id":729102775,"package_name":"relateurl","ecosystem":"npm","requirements":"0.2.7","direct":false,"kind":"development","optional":false},{"id":729102776,"package_name":"require-from-string","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":729102777,"package_name":"resolve","ecosystem":"npm","requirements":"1.12.0","direct":false,"kind":"development","optional":false},{"id":729102778,"package_name":"resolve-from","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102779,"package_name":"reusify","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":729102780,"package_name":"rimraf","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":729102781,"package_name":"rollup","ecosystem":"npm","requirements":"2.58.0","direct":false,"kind":"development","optional":false},{"id":729102782,"package_name":"rollup-plugin-babel","ecosystem":"npm","requirements":"4.4.0","direct":false,"kind":"development","optional":false},{"id":729102783,"package_name":"rollup-plugin-commonjs","ecosystem":"npm","requirements":"10.1.0","direct":false,"kind":"development","optional":false},{"id":729102784,"package_name":"rollup-plugin-minify-html-literals","ecosystem":"npm","requirements":"1.2.6","direct":false,"kind":"development","optional":false},{"id":729102785,"package_name":"rollup-plugin-node-resolve","ecosystem":"npm","requirements":"5.2.0","direct":false,"kind":"development","optional":false},{"id":729102786,"package_name":"rollup-plugin-serve","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":729102787,"package_name":"rollup-plugin-terser","ecosystem":"npm","requirements":"7.0.2","direct":false,"kind":"development","optional":false},{"id":729102788,"package_name":"jest-worker","ecosystem":"npm","requirements":"26.6.2","direct":false,"kind":"development","optional":false},{"id":729102789,"package_name":"serialize-javascript","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102790,"package_name":"rollup-plugin-typescript2","ecosystem":"npm","requirements":"0.30.0","direct":false,"kind":"development","optional":false},{"id":729102791,"package_name":"rollup-pluginutils","ecosystem":"npm","requirements":"2.8.2","direct":false,"kind":"development","optional":false},{"id":729102792,"package_name":"run-parallel","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":729102793,"package_name":"safe-buffer","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"development","optional":false},{"id":729102794,"package_name":"semver","ecosystem":"npm","requirements":"6.3.0","direct":false,"kind":"development","optional":false},{"id":729102795,"package_name":"shebang-command","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102796,"package_name":"shebang-regex","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102797,"package_name":"side-channel","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":729102798,"package_name":"slash","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102799,"package_name":"slice-ansi","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102800,"package_name":"source-map","ecosystem":"npm","requirements":"0.5.7","direct":false,"kind":"development","optional":false},{"id":729102801,"package_name":"source-map-support","ecosystem":"npm","requirements":"0.5.20","direct":false,"kind":"development","optional":false},{"id":729102802,"package_name":"sourcemap-codec","ecosystem":"npm","requirements":"1.4.8","direct":false,"kind":"development","optional":false},{"id":729102803,"package_name":"spdx-correct","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":729102804,"package_name":"spdx-exceptions","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":729102805,"package_name":"spdx-expression-parse","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102806,"package_name":"spdx-license-ids","ecosystem":"npm","requirements":"3.0.5","direct":false,"kind":"development","optional":false},{"id":729102807,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":729102808,"package_name":"string-width","ecosystem":"npm","requirements":"4.2.3","direct":false,"kind":"development","optional":false},{"id":729102809,"package_name":"string.prototype.trimend","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":729102810,"package_name":"string.prototype.trimstart","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102811,"package_name":"strip-ansi","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":729102812,"package_name":"strip-bom","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":729102813,"package_name":"strip-json-comments","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":729102814,"package_name":"superstruct","ecosystem":"npm","requirements":"0.8.3","direct":false,"kind":"runtime","optional":false},{"id":729102815,"package_name":"supports-color","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":729102816,"package_name":"has-flag","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":729102817,"package_name":"table","ecosystem":"npm","requirements":"6.7.2","direct":false,"kind":"development","optional":false},{"id":729102818,"package_name":"ajv","ecosystem":"npm","requirements":"8.6.3","direct":false,"kind":"development","optional":false},{"id":729102819,"package_name":"json-schema-traverse","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":729102820,"package_name":"terser","ecosystem":"npm","requirements":"5.9.0","direct":false,"kind":"development","optional":false},{"id":729102821,"package_name":"source-map","ecosystem":"npm","requirements":"0.7.3","direct":false,"kind":"development","optional":false},{"id":729102822,"package_name":"text-table","ecosystem":"npm","requirements":"0.2.0","direct":false,"kind":"development","optional":false},{"id":729102823,"package_name":"tiny-invariant","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":729102824,"package_name":"to-fast-properties","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":729102825,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":729102826,"package_name":"tsconfig-paths","ecosystem":"npm","requirements":"3.11.0","direct":false,"kind":"development","optional":false},{"id":729102827,"package_name":"json5","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102828,"package_name":"tslib","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102829,"package_name":"tsutils","ecosystem":"npm","requirements":"3.21.0","direct":false,"kind":"development","optional":false},{"id":729102830,"package_name":"tslib","ecosystem":"npm","requirements":"1.14.1","direct":false,"kind":"development","optional":false},{"id":729102831,"package_name":"type-check","ecosystem":"npm","requirements":"0.4.0","direct":false,"kind":"development","optional":false},{"id":729102832,"package_name":"type-detect","ecosystem":"npm","requirements":"4.0.8","direct":false,"kind":"runtime","optional":false},{"id":729102833,"package_name":"type-fest","ecosystem":"npm","requirements":"0.20.2","direct":false,"kind":"development","optional":false},{"id":729102834,"package_name":"typescript","ecosystem":"npm","requirements":"4.4.3","direct":false,"kind":"development","optional":false},{"id":729102835,"package_name":"uglify-js","ecosystem":"npm","requirements":"3.15.3","direct":false,"kind":"development","optional":false},{"id":729102836,"package_name":"unbox-primitive","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":729102837,"package_name":"universalify","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":729102838,"package_name":"upper-case","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":729102839,"package_name":"uri-js","ecosystem":"npm","requirements":"4.2.2","direct":false,"kind":"development","optional":false},{"id":729102840,"package_name":"v8-compile-cache","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":729102841,"package_name":"validate-npm-package-license","ecosystem":"npm","requirements":"3.0.4","direct":false,"kind":"development","optional":false},{"id":729102842,"package_name":"which","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":729102843,"package_name":"which-boxed-primitive","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102844,"package_name":"is-string","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":729102845,"package_name":"is-symbol","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":729102846,"package_name":"word-wrap","ecosystem":"npm","requirements":"1.2.3","direct":false,"kind":"development","optional":false},{"id":729102847,"package_name":"wrappy","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":729102848,"package_name":"yallist","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"package.json","sha":null,"kind":"manifest","created_at":"2022-08-09T03:16:29.588Z","updated_at":"2022-08-09T03:16:29.588Z","repository_link":"https://github.com/MindFreeze/ha-sankey-chart/blob/master/package.json","dependencies":[{"id":729103037,"package_name":"custom-card-helpers","ecosystem":"npm","requirements":"^1.7.2","direct":true,"kind":"runtime","optional":false},{"id":729103038,"package_name":"home-assistant-js-websocket","ecosystem":"npm","requirements":"^5.11.1","direct":true,"kind":"runtime","optional":false},{"id":729103039,"package_name":"lit","ecosystem":"npm","requirements":"^2.0.0-rc.2","direct":true,"kind":"runtime","optional":false},{"id":729103040,"package_name":"@babel/core","ecosystem":"npm","requirements":"^7.15.0","direct":true,"kind":"development","optional":false},{"id":729103041,"package_name":"@babel/plugin-proposal-class-properties","ecosystem":"npm","requirements":"^7.14.5","direct":true,"kind":"development","optional":false},{"id":729103042,"package_name":"@babel/plugin-proposal-decorators","ecosystem":"npm","requirements":"^7.14.5","direct":true,"kind":"development","optional":false},{"id":729103043,"package_name":"@rollup/plugin-json","ecosystem":"npm","requirements":"^4.1.0","direct":true,"kind":"development","optional":false},{"id":729103044,"package_name":"@typescript-eslint/eslint-plugin","ecosystem":"npm","requirements":"^4.33.0","direct":true,"kind":"development","optional":false},{"id":729103045,"package_name":"@typescript-eslint/parser","ecosystem":"npm","requirements":"^4.33.0","direct":true,"kind":"development","optional":false},{"id":729103046,"package_name":"eslint","ecosystem":"npm","requirements":"^7.32.0","direct":true,"kind":"development","optional":false},{"id":729103047,"package_name":"eslint-config-airbnb-base","ecosystem":"npm","requirements":"^14.2.1","direct":true,"kind":"development","optional":false},{"id":729103048,"package_name":"eslint-config-prettier","ecosystem":"npm","requirements":"^8.3.0","direct":true,"kind":"development","optional":false},{"id":729103049,"package_name":"eslint-plugin-import","ecosystem":"npm","requirements":"^2.24.0","direct":true,"kind":"development","optional":false},{"id":729103050,"package_name":"eslint-plugin-prettier","ecosystem":"npm","requirements":"^4.0.0","direct":true,"kind":"development","optional":false},{"id":729103051,"package_name":"prettier","ecosystem":"npm","requirements":"^2.4.1","direct":true,"kind":"development","optional":false},{"id":729103052,"package_name":"rollup","ecosystem":"npm","requirements":"^2.58.0","direct":true,"kind":"development","optional":false},{"id":729103053,"package_name":"rollup-plugin-babel","ecosystem":"npm","requirements":"^4.4.0","direct":true,"kind":"development","optional":false},{"id":729103054,"package_name":"rollup-plugin-commonjs","ecosystem":"npm","requirements":"^10.1.0","direct":true,"kind":"development","optional":false},{"id":729103055,"package_name":"rollup-plugin-minify-html-literals","ecosystem":"npm","requirements":"^1.2.6","direct":true,"kind":"development","optional":false},{"id":729103056,"package_name":"rollup-plugin-node-resolve","ecosystem":"npm","requirements":"^5.2.0","direct":true,"kind":"development","optional":false},{"id":729103057,"package_name":"rollup-plugin-serve","ecosystem":"npm","requirements":"^1.1.0","direct":true,"kind":"development","optional":false},{"id":729103058,"package_name":"rollup-plugin-terser","ecosystem":"npm","requirements":"^7.0.2","direct":true,"kind":"development","optional":false},{"id":729103059,"package_name":"rollup-plugin-typescript2","ecosystem":"npm","requirements":"^0.30.0","direct":true,"kind":"development","optional":false},{"id":729103060,"package_name":"typescript","ecosystem":"npm","requirements":"^4.4.3","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-02-13T20:31:04.851Z","updated_at":"2023-02-13T20:31:04.851Z","repository_link":"https://github.com/MindFreeze/ha-sankey-chart/blob/master/.github/workflows/build.yml","dependencies":[{"id":7630459908,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release-please.yml","sha":null,"kind":"manifest","created_at":"2023-02-13T20:31:04.910Z","updated_at":"2023-02-13T20:31:04.910Z","repository_link":"https://github.com/MindFreeze/ha-sankey-chart/blob/master/.github/workflows/release-please.yml","dependencies":[{"id":7630459969,"package_name":"google-github-actions/release-please-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yml","sha":null,"kind":"manifest","created_at":"2023-02-13T20:31:04.989Z","updated_at":"2023-02-13T20:31:04.989Z","repository_link":"https://github.com/MindFreeze/ha-sankey-chart/blob/master/.github/workflows/release.yml","dependencies":[{"id":7630460022,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7630460023,"package_name":"svenstaro/upload-release-action","ecosystem":"actions","requirements":"v1-release","direct":true,"kind":"composite","optional":false},{"id":7630460025,"package_name":"hacs/action","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]}],"score":8.915566545710647,"created_at":"2023-09-11T14:43:34.889Z","updated_at":"2026-04-08T02:30:29.219Z","avatar_url":"https://github.com/MindFreeze.png","language":"TypeScript","category":"Energy Systems","sub_category":"Building Energy Monitoring","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Sankey Chart Card\r\n\r\nA Home Assistant lovelace card to display a sankey chart. For example for energy/power/water consumption.\r\n\r\n[![License][license-shield]](LICENSE.md)\r\n[![hacs_badge](https://img.shields.io/badge/HACS-Default-41BDF5.svg?style=for-the-badge)](https://github.com/hacs/integration)\r\n[![GitHub Activity][commits-shield]][commits]\r\n\r\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/mindfreeze)\r\n\r\nThis card is intended to display connections between entities with numeric state. It is not a general graph card.\r\n\r\n![Example card](img/example.png)\r\n\r\n## Installation\r\n\r\nInstall through [HACS](https://hacs.xyz/)\r\n\r\n## Options\r\n\r\n| Name              | Type    | Default             | Description                                 |\r\n| ----------------- | ------- | ------------------- | ------------------------------------------- |\r\n| type              | string  |                     | `custom:sankey-chart`\r\n| autoconfig        | object  |                     | Experimental. See [autoconfig](#autoconfig)\r\n| sections          | list    |                     | Required unless using autoconfig. Entities to show divided by sections, see [sections object](#sections-object) for additional options.\r\n| layout            | string  | auto                | Valid options are: 'horizontal' - flow left to right, 'vertical' - flow top to bottom \u0026 'auto' - determine based on available space (based on the section-\u003e`min_witdh` option, which defaults to 150)\r\n| energy_date_selection | boolean | false           | Integrate with the Energy Dashboard. Filters data based on the [energy-date-selection](https://www.home-assistant.io/dashboards/energy/) card. Use this only for accumulated data sensors (energy/water/gas) and with a `type:energy-date-selection` card. You still need to specify all your entities as HA doesn't know exactly how to connect them but you can use the general kWh entities that you have in the energy dashboard. In the future we may use areas to auto configure the chart. Not compatible with `time_period`\r\n| title             | string  |                     | Optional header title for the card\r\n| unit_prefix       | string  |                     | Metric prefix for the unit of measurment. See \u003chttps://en.wikipedia.org/wiki/Unit_prefix\u003e . Supported values are m, k, M, G, T, and 'auto'. When 'auto' is used, the appropriate prefix is chosen automatically for each value based on its magnitude (m for values \u003c1, k for values \u003e=1000, etc.)\r\n| round             | number  | 0                   | Round the value to at most N decimal places. May not apply to near zero values, see issue [#29](https://github.com/MindFreeze/ha-sankey-chart/issues/29)\r\n| height            | number  | 200                 | The height of the card in pixels. Only matters while in horizontal layout. Vertical layout height is dynamic based on content\r\n| wide              | boolean | false               | Set this to true if you see extra empty space on the right side of the card. This will expand it horizontally to cover all the available space. Only relevant in horizontal mode.\r\n| show_icons        | boolean | false               | Display entity icons\r\n| show_names        | boolean | false               | Display entity names\r\n| show_states       | boolean | true                | Display entity states\r\n| show_units        | boolean | true                | Display unit of measurement\r\n| min_box_size      | number  | 3                   | Minimum size of an entity box\r\n| min_box_distance  | number  | 5                   | Minimum space between entity boxes\r\n| min_state         | number  | \u003e0                  | Any entity below this value will not be displayed. Only positive numbers above 0 are allowed. The default is to show everything above 0.\r\n| throttle          | number  |                     | Minimum time in ms between updates/rerenders\r\n| static_scale      | number  |                     | State value corresponding to the maximum size (height for horizontal layout and width in vertical) of the card. For example, if this is set to 1000, then a box with state 500 will take up half of its section. If some section exceeds the value of `static_scale`, the card will dynamically rescale overriding this option. See (#153)\r\n| convert_units_to  | string  |                     | If entities are electricity (kWh) or gas (ft³) usage, convert them to energy (MJ), cost (monetary) or carbon (gCO2). For cost, you must also specify `electricity_price` and/or `gas_price`, as well as the `monetary_unit` of the price(s). For gCO2, all kWh values will be multiplied by the varying grid CO2 intensity, as with the Energy Dashboard.\r\n| co2_intensity_entity |string | sensor. co2_signal_co2_intensity | Entity providing carbon intensity of electricity (gCO2eq/kWh). If you have solar or storage, you may wish to create a template sensor to convert grid CO2 intensity to consumption CO2 intensity.\r\n| gas_co2_intensity | number  | 66.6 g/ft³ or 2352 g/m³ | Carbon intensity of gas, e.g. in gCO2eq/ft³. Default value depends on locale; units must match those of gas entities.\r\n| electricity_price | number  |                     | Unit price of electricity, e.g. in USD/kWh. Automatic conversion does not support varying electricity prices like the Energy Dashboard does.\r\n| gas_price         | number  |                     | Unit price of gas, e.g. in USD/ft³.\r\n| monetary_unit     | string  |                     | Currency of the gas or electricity price, e.g. 'USD'\r\n| sort_by           | string  |                     | Sort the entities. Valid options are: 'state'. If your values change often, you may want to use the `throttle` option to limit update frequency\r\n| sort_dir          | string  | desc                | Sorting direction. Valid options are: 'asc' for smallest first \u0026 'desc' for biggest first\r\n| time_period_from | string  |                      | Start of custom time period (e.g., \"now-1d\", \"now/d\"). Not compatible with `energy_date_selection`. See [Time period](#time-period)\r\n| time_period_to   | string  | now                  | End of custom time period. Not compatible with `energy_date_selection`. See [Time period](#time-period)\r\n| ignore_missing_entities | boolean | false         | If true, missing entities will be treated as having a state of 0 instead of throwing an error |\r\n\r\n### Sections object\r\n\r\n| Name              | Type    | Requirement  | Default             | Description                                 |\r\n| ----------------- | ------- | ------------ | ------------------- | ------------------------------------------- |\r\n| entities          | list    | **Required** |                     | Entities to show in this section. Could be just the entity_id as a string or an object, see [entities object](#entities-object) for additional options. Note that the order of this list matters\r\n| sort_by           | string  | **Optional** |                     | Sort the entities in this section. Overrides the top level option\r\n| sort_dir          | string  | **Optional** | desc                | Sorting direction for this section. Overrides the top level option\r\n| sort_group_by_parent | boolean | **Optional** | false            | Group entities by parent before sorting. See [#135](https://github.com/MindFreeze/ha-sankey-chart/issues/135)\r\n| min_width         | number   | **Optional** |                     | Minimum section width in pixels. Only relevant while in horizontal layout\r\n\r\n### Entities object\r\n\r\n| Name              | Type    | Requirement  | Default             | Description                                 |\r\n| ----------------- | ------- | ------------ | ------------------- | ------------------------------------------- |\r\n| entity_id         | string  | **Required** |                     | Entity id of the sensor\r\n| attribute         | string  | **Optional** |                     | Use the value of an attribute instead of the state of the entity. unit_of_measurement and id will still come from the entity. For more complex customization, please use HA templates.\r\n| type              | string  | **Optional** | entity              | Possible values are 'entity', 'passthrough', 'remaining_parent_state', 'remaining_child_state'. See [entity types](#entity-types)\r\n| children          | list    | **Optional** |                     | List of entity ids (strings or [childred objects](#children-object)) describing child entities (branches). Only entities in subsequent sections will be connected. *The last section must not contain `children:`*\r\n| name              | string  | **Optional** | entity name from HA | Custom label for this entity\r\n| icon              | string  | **Optional** | entity icon from HA | Custom icon for this entity\r\n| unit_of_measurement| string  | **Optional** | unit_of_measurement from HA | Custom unit_of_measurement for this entity. Useful when using attribute. If it contains a unit prefix, that must be in latin. Ex GВт, not ГВт\r\n| color             | string  | **Optional** | var(--primary-color)| Color of the box. Example values: 'red', '#FFAA2C', 'rgb(255, 170, 44)', 'random' (assigns a random RGB color)\r\n| color_on_state    | boolean | **Optional** | false               | Color the box based on state value\r\n| color_limit       | string  | **Optional** | 1                   | State value for coloring the box based on state value\r\n| color_above       | string  | **Optional** | var(--state-icon-color)| Color for state value above color_limit\r\n| color_below       | string  | **Optional** | var(--primary-color)| Color for state value below color_limit\r\n| url               | string  | **Optional** |                     | Specifying a URL will make the entity label into a link\r\n| add_entities      | list    | **Optional** |                     | Experimental. List of entity ids. Their states will be added to this entity, showing a sum.\r\n| subtract_entities | list    | **Optional** |                     | Experimental. List of entity ids. Their states will be subtracted from this entity's state\r\n| tap_action        | action  | **Optional** | more-info           | Home assistant action to perform on tap. Supported action types are `more-info`, `zoom`, `navigate`, `url`, `toggle`, `call-service`, `fire-dom-event`. Ex: `action: zoom`\r\n| children_sum      | object  | **Optional** |                     | [reconcile config](#reconcile-config). Determines how to handle mismatches between parents \u0026 children. For example if the sum of the energy from all rooms shouldn't exceed the energy of the whole house. See [#37](https://github.com/MindFreeze/ha-sankey-chart/issues/37) and its related issues\r\n| parents_sum       | object  | **Optional** |                     | [reconcile config](#reconcile-config). Determines how to handle mismatches between parents \u0026 children. For example if the sum of the energy from all rooms shouldn't exceed the energy of the whole house. See [#37](https://github.com/MindFreeze/ha-sankey-chart/issues/37) and its related issues\r\n\r\n### Children object\r\n\r\n| Name                 | Type    | Requirement  | Default             | Description                                 |\r\n| -------------------- | ------- | ------------ | ------------------- | ------------------------------------------- |\r\n| entity_id            | string  | **Required** |                     | Entity id of the child box\r\n| connection_entity_id | string  | **Optional** |                     | Entity id of the sensor to that determines how much of the parent flows into the child\r\n\r\n### Reconcile config\r\n\r\n| Name                 | Type    | Requirement  | Default             | Description                                 |\r\n| -------------------- | ------- | ------------ | ------------------- | ------------------------------------------- |\r\n| should_be            | string  | **Required** |                     | Valid options are 'equal', 'equal_or_less', 'equal_or_more'\r\n| reconcile_to         | string  | **Required** |                     | Which value to display in case of inconsistency. Valid options are 'min', 'max', 'mean', 'latest\r\n\r\n### Entity types\r\n\r\n- `entity` - The default value, representing an entity from HA\r\n- `passthrough` - Used for connecting entities across sections, passing through intermediate sections. The card creates such passtroughs automatically when needed but you can create them manually in order to have the connection pass through a specific place. See issue [#9](https://github.com/MindFreeze/ha-sankey-chart/issues/9). Here is an example passthrough config:\r\n\r\n```yaml\r\n- entity_id: sensor.child_sensor\r\n  type: passthrough\r\n  # Note that passthrough entities have no children as they always connect to their own entity_id in the next section\r\n```\r\n\r\n- `remaining_parent_state` - Used for representing the unaccounted state from this entity's parent. Formerly known as the `remaining` configuration. Useful for displaying the unmeasured state as \"Other\". See issue [#2](https://github.com/MindFreeze/ha-sankey-chart/issues/2) \u0026 [#28](https://github.com/MindFreeze/ha-sankey-chart/issues/28). Only 1 is allowed per group. If you add 2, the state will not be split between them but an error will appear. Obviously it must be listed in some prior entity's children. Example:\r\n\r\n```yaml\r\n- entity_id: whatever # as long as it is unique\r\n  type: remaining_parent_state\r\n  name: Other\r\n```\r\n\r\n- `remaining_child_state` - Used for representing the unaccounted state in this entity's children. Like `remaining_parent_state` but in reverse. Useful for displaying discrepancies where the children add up to more than the parent. See issue [#2](https://github.com/MindFreeze/ha-sankey-chart/issues/2) \u0026 [#15](https://github.com/MindFreeze/ha-sankey-chart/issues/15). Example:\r\n\r\n```yaml\r\n- entity_id: whatever # as long as it is unique\r\n  type: remaining_child_state\r\n  name: Discrepancy\r\n  children:\r\n    # the relevant child entities\r\n```\r\n\r\n### Autoconfig\r\n\r\nThis card supports automatic configuration generation based on the HA energy dashboard. It will set default values for some config parameters and populate the `sections` param. This is meant to show energy data and assumes you have configured your [Energy Dashboard in HA](https://my.home-assistant.io/redirect/config_energy). Use it like this:\r\n\r\n```yaml\r\n- type: energy-date-selection # you can put this anywhere you want but it is required for energy dashboard integration\r\n- type: custom:sankey-chart\r\n  # ...any other options\r\n  autoconfig:\r\n    print_yaml: false # optional\r\n    # any additional autoconfig options (listed below)\r\n```\r\n\r\nor like this:\r\n\r\n```yaml\r\n- type: custom:sankey-chart\r\n  autoconfig: true\r\n  time_period_from: \"now/d\" # today\r\n```\r\n\r\n| Name              | Type    | Requirement  | Default             | Description                                 |\r\n| ----------------- | ------- | ------------ | ------------------- | ------------------------------------------- |\r\n| print_yaml        | boolean | **Optional** | false               | Prints the auto generated configuration after the card so you can use it as a starting point for customization. It shows up like an error. Don't worry about it.\r\n| group_by_floor    | boolean | **Optional** | true                | Display data per floor\r\n| group_by_area     | boolean | **Optional** | true                | Display data per area\r\n\r\n### Time Period\r\n\r\nThe `time_period_from` and `time_period_to` options allow you to specify a custom time period for data retrieval. The format is based on [Grafana's time range format](https://grafana.com/docs/grafana/latest/dashboards/use-dashboards/?pg=blog\u0026plcmt=body-txt#set-dashboard-time-range).\r\n\r\nTime units: s (seconds), m (minutes), h (hours), d (days), w (weeks), M (months), y (years)\r\n\r\nNote that while seconds and minutes are supported, there is a delay in the statistics data in HA of up to 1 hour, so showing small periods like the last 30 mins probably won't work.\r\n\r\nExamples:\r\n\r\n- `now-5m`: 5 minutes ago\r\n- `now-1h`: 1 hour ago\r\n- `now-1d`: 1 day ago\r\n- `now-1w`: 1 week ago\r\n- `now-1M`: 1 month ago\r\n- `now/d`: Start of the current day\r\n- `now/w`: Start of the current week\r\n- `now/M`: Start of the current month\r\n- `now/y`: Start of the current year\r\n- `now-1d/d`: Start of the previous day\r\n\r\nIf `time_period_to` is not specified, it defaults to `now`.\r\n\r\nExample configurations:\r\n\r\n```yaml\r\ntype: custom:sankey-chart\r\ntitle: Last 7 days up to the current moment\r\ntime_period_from: \"now-7d\"\r\n```\r\n\r\n```yaml\r\ntype: custom:sankey-chart\r\ntitle: Yesterday\r\ntime_period_from: \"now-1d/d\"\r\ntime_period_to: \"now/d\"\r\n```\r\n\r\n\r\n## Examples\r\n\r\n### Simple\r\n\r\n![Simple example card](img/example-simple.png)\r\n\r\n```yaml\r\n- type: custom:sankey-chart\r\n  show_names: true\r\n  sections:\r\n    - entities:\r\n      - entity_id: sensor.power\r\n        children:\r\n          - sensor.washing_machine_power\r\n          - sensor.other_power\r\n    - entities:\r\n      - sensor.washing_machine_power\r\n      - sensor.other_power\r\n```\r\n\r\n### Energy use\r\n\r\n![Energy example card](img/example-energy.png)\r\n\r\n```yaml\r\n- type: custom:sankey-chart\r\n  show_names: true\r\n  unit_prefix: k\r\n  round: 1\r\n  wide: true\r\n  sections:\r\n    - entities:\r\n        - entity_id: sensor.solar\r\n          color: var(--warning-color)\r\n          children:\r\n            - sensor.total_energy\r\n        - entity_id: sensor.grid\r\n          children:\r\n            - sensor.total_energy\r\n        - entity_id: sensor.battery\r\n          color: var(--success-color)\r\n          children:\r\n            - sensor.total_energy\r\n    - entities:\r\n        - entity_id: sensor.total_energy\r\n          children:\r\n            - sensor.floor1\r\n            - sensor.floor2\r\n            - sensor.garage\r\n    - entities:\r\n        - entity_id: sensor.garage\r\n          color: purple\r\n          children:\r\n            - sensor.ev_charger\r\n            - garage_other\r\n        - entity_id: sensor.floor1\r\n          children:\r\n            - sensor.living_room\r\n            - entity_id: sensor.washer\r\n              connection_entity_id: sensor.washer_energy_net\r\n        - entity_id: sensor.floor2\r\n    - entities:\r\n        - entity_id: sensor.ev_charger\r\n          tap_action:\r\n            action: toggle\r\n        - entity_id: garage_other\r\n          type: remaining_parent_state\r\n          name: Other\r\n        - sensor.living_room\r\n        - sensor.washer\r\n```\r\n\r\n### Reconcile state\r\n\r\nExample config where the state of the children must not exceed their parent. `reconcile_to: max` means to take the bigger of the two values. In other words, if the sum of the children is more than the state of the parent, the parent state will be set to the sum of its children within the card. `reconcile_to: min` would do the opposite and reduce the state of the children so they fully fit within the parent. `latest` just takes whichever value was updated last.\r\n\r\n```yaml\r\n- type: custom:sankey-chart\r\n  show_names: true\r\n  sections:\r\n    - entities:\r\n      - entity_id: sensor.power\r\n        children_sum:\r\n          should_be: equal_or_less\r\n          reconcile_to: max\r\n        children:\r\n          - sensor.washing_machine_power\r\n          - sensor.other_power\r\n    - entities:\r\n      - sensor.washing_machine_power\r\n      - sensor.other_power\r\n```\r\n\r\nYou can find more examples and help in the HA forum \u003chttps://community.home-assistant.io/t/anyone-using-the-sankey-chart-card/423125\u003e\r\n\r\n## Energy Dashboard\r\n\r\nThis card supports partial Energy dashboard integration. You still need to specify the entities and connections for now. See `energy_date_selection` option.\r\n\r\nCurrently this chart just shows historical data based on a energy-date-selection card. It doesn't know/care if your entities are in the default energy dashboard.\r\n\r\n## FAQ\r\n\r\n**Q: Do my entities need to be added to the energy dashboard first?**\r\n\r\n**A:** This card doesn't know/care if an entity is in the energy dashboard. Unless you use `autoconfig` because that relies entirely on the energy dashboard.\r\n\r\n**Q: How do I get total [daily] energy?**\r\n\r\n**A:** There isn't a general Consumed Energy sensor in the HA Energy dashboard AFAIK. HA calculates it based on all the in/out kWh values. I can't tell you exactly how to calculate it because it depends on what values you can monitor. Some people already have a Total Consumption sensor, others have a Current Consumption and create an integration sensor from that, etc.\r\n\r\n**Q: Can I group/sum entities in the chart?**\r\n\r\n**A:** The easiest way is to do it with a template sensor in HA. However it can be done in the chart without a new HA entity. If you have an entity with `type: remaining_parent_state` and it is the only child of its parents, it will just be a sum of all the parents. Similarly if you have an entity with `type: remaining_child_state` and it is the only parent of all its children, it will be a sum of all the children.\r\n\r\n**Q: How do I zoom back out after using the zoom action?**\r\n\r\n**A:** Tap the same (currently top level) entity again to reset the zoom level.\r\n\r\n**Q: My (template) sensor doesn't work with energy_date_selection!?**\r\n\r\n**A:** Sensors should have a proper `state_class` in order for statistics to work. Most commonly `state_class: total`. See \u003chttps://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics\u003e\r\n\r\n**Q: Can you add feature X, so I don't have to create template entities in HA?**\r\n\r\n**A:** Most probably no. There is nothing wrong with template entities and they should be the prefered approach instead of duplicating HA functionality in every card. I do make exceptions for often required features like `remaining_parent_state` but prefer to rely on HA functionality whenever I can.\r\n\r\n**Q: My entities are not rendered where I expected**\r\n\r\n**A:** By default entities are displayed in the order in which they appear in the config. You can rearrange them in the YAML or use the sorting options.\r\n\r\n**Q: The font size is too small sometimes**\r\n\r\n**A:** The font size is determined by the available space, so you can increase the minimum font size by increasing `min_box_size` and/or `min_box_distance`\r\n\r\n## Development\r\n\r\n1. `npm i`\r\n2. `npm start`\r\n3. The compiled `.js` file will be accessible on\r\n   `http://127.0.0.1:3000/ha-sankey-chart.js`.\r\n4. On a running Home Assistant installation add this to your Lovelace `resources:`\r\n\r\n```yaml\r\n- url: 'http://127.0.0.1:3000/ha-sankey-chart.js'\r\n  type: module\r\n```\r\n\r\n[commits-shield]: https://img.shields.io/github/commit-activity/y/MindFreeze/ha-sankey-chart.svg?style=for-the-badge\r\n[commits]: https://github.com//MindFreeze/ha-sankey-chart/commits/master\r\n[license-shield]: https://img.shields.io/github/license/MindFreeze/ha-sankey-chart.svg?style=for-the-badge\r\n","funding_links":["https://github.com/sponsors/MindFreeze","https://buymeacoffee.com/MindFreeze","https://www.buymeacoffee.com/mindfreeze"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["sensor"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/19679","html_url":"https://ost.ecosyste.ms/projects/19679"}