diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 0d022c7f1dfa..7231130a2842 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1321,6 +1321,12 @@ githubId = 5892756; name = "Alec Snyder"; }; + allout58 = { + email = "jamesthollowell@gmail.com"; + github = "allout58"; + githubId = 2939703; + name = "James Hollowell"; + }; allusive = { email = "jasper@allusive.dev"; name = "Allusive"; diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 88e5ef96f57b..7bd7d5b6658a 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -194,6 +194,8 @@ - [nixbit](https://github.com/pbek/nixbit), a GUI application for updating your NixOS system from a Nix Flakes Git repository. Available as [programs.nixbit](#opt-programs.nixbit.enable). +- [ErsatzTV](https://ersatztv.org), a personal IPTV server. Available as [services.ersatztv](#opt-services.ersatztv.enable) + ## Backward Incompatibilities {#sec-release-25.11-incompatibilities} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 1352e67dcb28..7c0a969f9257 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -833,6 +833,7 @@ ./services/misc/dwm-status.nix ./services/misc/dysnomia.nix ./services/misc/errbot.nix + ./services/misc/ersatztv.nix ./services/misc/etebase-server.nix ./services/misc/etesync-dav.nix ./services/misc/evdevremapkeys.nix diff --git a/nixos/modules/services/misc/ersatztv.nix b/nixos/modules/services/misc/ersatztv.nix new file mode 100644 index 000000000000..e32a224241f0 --- /dev/null +++ b/nixos/modules/services/misc/ersatztv.nix @@ -0,0 +1,133 @@ +{ + config, + pkgs, + lib, + ... +}: + +let + inherit (lib) + mkIf + getExe + maintainers + mkEnableOption + mkOption + mkPackageOption + ; + inherit (lib.types) + str + path + bool + float + int + ; + cfg = config.services.ersatztv; + defaultEnv = { + ETV_UI_PORT = 8409; + ETV_BASE_URL = "/"; + }; +in +{ + options = { + services.ersatztv = { + enable = mkEnableOption "ErsatzTV"; + + package = mkPackageOption pkgs "ersatztv" { }; + + user = mkOption { + type = str; + default = "ersatztv"; + description = "User account under which ErsatzTV runs."; + }; + + group = mkOption { + type = str; + default = "ersatztv"; + description = "Group under which ErsatzTV runs."; + }; + + environment = mkOption { + type = + with lib.types; + attrsOf (oneOf [ + str + int + float + bool + ]); + default = defaultEnv; + example = { + ETV_UI_PORT = 8000; + ETV_STREAMING_PORT = 8001; + }; + description = "Environment variables to set for the ErsatzTV service."; + }; + + baseUrl = mkOption { + type = str; + default = "/"; + description = '' + Base URL to support reverse proxies that use paths (e.g. `/ersatztv`) + ''; + }; + + openFirewall = mkOption { + type = bool; + default = false; + description = '' + Open the default ports in the firewall for the server. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + services.ersatztv.environment = lib.mapAttrs (_: lib.mkDefault) defaultEnv; + + systemd = { + services.ersatztv = { + description = "ErsatzTV"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + Type = "simple"; + User = cfg.user; + Group = cfg.group; + DynamicUser = true; + UMask = "0077"; + StateDirectory = "ersatztv"; + WorkingDirectory = "/var/lib/ersatztv"; + ExecStart = getExe cfg.package; + Restart = "on-failure"; + }; + + # Set environment variables for the service, using known values for ETV_CONFIG_FOLDER and ETV_TRANSCODE_FOLDER, and allowing overrides from cfg.environment + environment = { + ETV_CONFIG_FOLDER = "/var/lib/ersatztv/config"; + ETV_TRANSCODE_FOLDER = "/var/lib/ersatztv/transcode"; + } + // cfg.environment; + }; + }; + + users.users = mkIf (cfg.user == "ersatztv") { + ersatztv = { + inherit (cfg) group; + isSystemUser = true; + }; + }; + + users.groups = mkIf (cfg.group == "ersatztv") { ersatztv = { }; }; + + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ + cfg.environment.ETV_UI_PORT + ]; + }; + + }; + + meta.maintainers = with maintainers; [ allout58 ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 237494449a0f..db34a192e767 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -523,6 +523,7 @@ in }; ergo = runTest ./ergo.nix; ergochat = runTest ./ergochat.nix; + ersatztv = handleTest ./ersatztv.nix { }; esphome = runTest ./esphome.nix; etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; }; etcd = import ./etcd/default.nix { inherit pkgs runTest; }; diff --git a/nixos/tests/ersatztv.nix b/nixos/tests/ersatztv.nix new file mode 100644 index 000000000000..0924579a74d9 --- /dev/null +++ b/nixos/tests/ersatztv.nix @@ -0,0 +1,21 @@ +import ./make-test-python.nix ( + { lib, ... }: + + { + name = "ersatztv"; + meta.maintainers = with lib.maintainers; [ allout58 ]; + + nodes.machine = + { ... }: + { + services.ersatztv.enable = true; + }; + + # ErsatzTV doesn't really have an API to speak of currently, so just check if it responds at all + testScript = '' + machine.wait_for_unit("ersatztv.service") + machine.wait_for_open_port(8409) + machine.succeed("curl --fail http://localhost:8409/") + ''; + } +) diff --git a/pkgs/by-name/er/ersatztv/nuget-deps.json b/pkgs/by-name/er/ersatztv/nuget-deps.json new file mode 100644 index 000000000000..4f899019cf40 --- /dev/null +++ b/pkgs/by-name/er/ersatztv/nuget-deps.json @@ -0,0 +1,2092 @@ +[ + { + "pname": "Acornima", + "version": "1.2.0", + "hash": "sha256-eDApwoJgsWOmCTGPn+o2xpfZEXupAw1+41nCBtAzTas=" + }, + { + "pname": "AdvancedStringBuilder", + "version": "0.1.1", + "hash": "sha256-pLixGUct2lQnSeckSHVnIEoGfsvz3gkA914QSHdaheE=" + }, + { + "pname": "AngleSharp", + "version": "0.17.0", + "hash": "sha256-cQvLOL296TROZkL2nVLoLEuRaN5UfjFFJIzG0/JgYrg=" + }, + { + "pname": "AngleSharp", + "version": "0.17.1", + "hash": "sha256-8DLs4SGXeG4ilbAJ8H6KLjaK/GmaXizMEMc3P8ZrEQ0=" + }, + { + "pname": "AngleSharp.Css", + "version": "0.17.0", + "hash": "sha256-sXzp9kY/rp3KauGNDpITkpjdgNoO0BdlC38SQYl0u2A=" + }, + { + "pname": "Azure.Core", + "version": "1.46.1", + "hash": "sha256-xpb9A2pFHEQ07yVrzq0gpeFBTN9LTqk7iHhg707a5Mg=" + }, + { + "pname": "Azure.Core", + "version": "1.47.1", + "hash": "sha256-YJR1bDI9H9lr6p/9QcOWEhnpMD8ePyxxO39S32VAOak=" + }, + { + "pname": "Azure.Identity", + "version": "1.14.2", + "hash": "sha256-PpGcGQrzcEzDtTm65gLmjWrt8yavst4VOKDlr+NuLQo=" + }, + { + "pname": "Blazored.FluentValidation", + "version": "2.2.0", + "hash": "sha256-3y+lkqv/wuffN8ahokjLSCEllmExv84L3v3na9QXDg4=" + }, + { + "pname": "BlazorSortable", + "version": "5.1.3", + "hash": "sha256-gQVWDsjj09hp1KlLW7Du9GQo8RMN3XU1x3wwbhNgp/4=" + }, + { + "pname": "Blurhash.Core", + "version": "2.0.0", + "hash": "sha256-bW3LTDPOZ2ktf4uli+k9umJeA00grHlX5ZEslPcsTFc=" + }, + { + "pname": "Blurhash.SkiaSharp", + "version": "2.0.0", + "hash": "sha256-I22mdiA6Ltr0D2pyryUyS0z5YboBr5UY9LZFcer3FPs=" + }, + { + "pname": "Bugsnag", + "version": "4.1.0", + "hash": "sha256-o30fm7J9tZouVRf0oZNR2hTukc2V8HpdRK30Uu5dZcc=" + }, + { + "pname": "Bugsnag.AspNet.Core", + "version": "4.1.0", + "hash": "sha256-L/aMCcmE7xLEtap5/H56VwCsDI4N/m8jgoj6SkxM7x8=" + }, + { + "pname": "CliWrap", + "version": "3.9.0", + "hash": "sha256-WC1bX8uy+8VZkrV6eK8nJ24Uy81Bj4Aao27OsP1sGyE=" + }, + { + "pname": "Dapper", + "version": "2.1.66", + "hash": "sha256-e5n/wnAFGPDSe30oQQ0fanXrvFZYYa+qCDSTHtfQmPw=" + }, + { + "pname": "Destructurama.Attributed", + "version": "5.1.0", + "hash": "sha256-WG4tbTGOz8INa1TAovAv+wvNIhzwGdLimyjhkT3NZ2o=" + }, + { + "pname": "EFCore.BulkExtensions", + "version": "9.0.2", + "hash": "sha256-8NLxWeNHvecoASIpTRAXRTyCWedmNW2RvApLY/o6WH4=" + }, + { + "pname": "EFCore.BulkExtensions.Core", + "version": "9.0.2", + "hash": "sha256-WwHyDErRjLabXvNS9iv5J+b6SSfiGjwYqNw/IicNZZk=" + }, + { + "pname": "EFCore.BulkExtensions.MySql", + "version": "9.0.2", + "hash": "sha256-OGeMAD5dSyrRMqFCkYjlL0VAiA4K362F5mrM3T6lCEI=" + }, + { + "pname": "EFCore.BulkExtensions.Oracle", + "version": "9.0.2", + "hash": "sha256-c2CzeqhjcEGIzExOQM5nuwx9UQeHcmwlmgbumge2HBc=" + }, + { + "pname": "EFCore.BulkExtensions.PostgreSql", + "version": "9.0.2", + "hash": "sha256-BagHXVvL39vemEaEp8G6pP+zc6J/TvuvwVQpuh96zO4=" + }, + { + "pname": "EFCore.BulkExtensions.Sqlite", + "version": "9.0.2", + "hash": "sha256-o8a71L1izt1bRZtZmc1RWfX7eQqzRsPRintoGS0oDT0=" + }, + { + "pname": "EFCore.BulkExtensions.SqlServer", + "version": "9.0.2", + "hash": "sha256-D4EjIghikQjDaCx2dviUae0isTrLaksUml3SmeDS7h4=" + }, + { + "pname": "Elastic.Clients.Elasticsearch", + "version": "9.2.0", + "hash": "sha256-m79ubD/K1EU9XFeLmYsRxfjymVm6r5r39rjDCXoIt0w=" + }, + { + "pname": "Elastic.Transport", + "version": "0.10.1", + "hash": "sha256-eX9H+arnuPnIzOFQvle4pdDTTpZ0Rw+t7rJ1ohlxbh0=" + }, + { + "pname": "ExtendedNumerics.BigDecimal", + "version": "3001.0.1.201", + "hash": "sha256-c/ujs7UUGwmVwWHYyG0XbvVmgjThbKwMM/MsCQtUMrk=" + }, + { + "pname": "FluentValidation", + "version": "12.0.0", + "hash": "sha256-BaOvGqRZ9BYCpsU+A/kqu25JfN2zr01aWtulSwZfGQ4=" + }, + { + "pname": "FluentValidation.AspNetCore", + "version": "11.3.1", + "hash": "sha256-jNZqvG1k+NGzbq54oKrFRPX+FR2+jL4+nzoOJzuHqEQ=" + }, + { + "pname": "FluentValidation.DependencyInjectionExtensions", + "version": "11.11.0", + "hash": "sha256-HjBzXseY/81qlZE2hlJYo/A3df2/oPpa4DuYwYdw8Fc=" + }, + { + "pname": "Flurl", + "version": "4.0.0", + "hash": "sha256-qCbO6ELAw+OP/RyrJhrxys5b+Kk2xR4RbzpLOsZYheg=" + }, + { + "pname": "Hardware.Info", + "version": "101.1.0", + "hash": "sha256-kVOIbxKjjt5BGGAC5x697DTDp3bhhtrnUTDZOqsWTCc=" + }, + { + "pname": "HarfBuzzSharp", + "version": "8.3.0.1", + "hash": "sha256-ZQwyxpI6jB804Z3d1JAhLqyHIu42fo6mpmk5GVFbEzk=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.Linux", + "version": "8.3.0.1", + "hash": "sha256-Dh04x6b/HWRd+mW9e6Kg7vVEYlwiD/UOceRMCBlTVJo=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.macOS", + "version": "8.3.0.1", + "hash": "sha256-bpow26ydfzv9w6XCtZOcsGqMUVcfmvnIo5qPqtl9NQo=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.Win32", + "version": "8.3.0.1", + "hash": "sha256-2+FA4EfAQ68q1nJlXUuqDcETwIA+6OvD0DB/lMnbKVY=" + }, + { + "pname": "Heron.MudCalendar", + "version": "3.2.0", + "hash": "sha256-XjLkX52jvZpuqFnnsFZELfEvTvJXoH1VWOE5Geg6clo=" + }, + { + "pname": "HtmlSanitizer", + "version": "9.0.886", + "hash": "sha256-OgCbsMn3ci6he1ZlnJnAtJ+/Rr3sFIuBCL2ZVfHRhUk=" + }, + { + "pname": "Humanizer.Core", + "version": "2.14.1", + "hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o=" + }, + { + "pname": "J2N", + "version": "2.1.0", + "hash": "sha256-PKRqOMIgQEJfCm9qa59NdyHeNul0iZkWQnu7TlA5SCg=" + }, + { + "pname": "JetBrains.ReSharper.GlobalTools", + "version": "2025.2.3", + "hash": "sha256-O0391kuA/ds8C7WmtbeMYi4eNiO3DKFPDYsUDHfVFUA=" + }, + { + "pname": "Jint", + "version": "4.4.1", + "hash": "sha256-4ojG4dhMwlk9Sx52/YByKIu39cQ4lnYl+8S5VsE1Ut0=" + }, + { + "pname": "LanguageExt.Core", + "version": "4.4.8", + "hash": "sha256-+20YbhdWglMAnhx+iAkh0qQoaBc8AEt6NlAERjzn7CY=" + }, + { + "pname": "LanguageExt.Core", + "version": "4.4.9", + "hash": "sha256-YzY22dnLm+dVgZELUD+xqsVBgaEKa4z+nQo/ARg0dDc=" + }, + { + "pname": "LanguageExt.Transformers", + "version": "4.4.8", + "hash": "sha256-uiLMjgttFQJEgh4OUHBQUWxXEgpgHNAB29cjY77SMug=" + }, + { + "pname": "Lennox.NvEncSharp", + "version": "2.0.0", + "hash": "sha256-r37R6ap9KaKPZyZaahQZ7f2lNoKhb1glCqEmM06WfXs=" + }, + { + "pname": "Lucene.Net", + "version": "4.8.0-beta00017", + "hash": "sha256-BaD9RlO7xFFq3wBmpp4oQNqJImBDfe2loPk/GLJtfp4=" + }, + { + "pname": "Lucene.Net.Analysis.Common", + "version": "4.8.0-beta00017", + "hash": "sha256-/1kq4wC91E95z2HaXLlob3o7HZLny2LxLZXwtpaSF2k=" + }, + { + "pname": "Lucene.Net.Queries", + "version": "4.8.0-beta00017", + "hash": "sha256-OFuY0u2Q87z1xfBlTfn4I0YbJR1MXj5uogeclXio0bo=" + }, + { + "pname": "Lucene.Net.QueryParser", + "version": "4.8.0-beta00017", + "hash": "sha256-l6LLK6KzVAHc8QBgb19sAvNdKS0KMJqmX9IB+ckMZB4=" + }, + { + "pname": "Lucene.Net.Sandbox", + "version": "4.8.0-beta00017", + "hash": "sha256-hHL4liVC3k8+PZVIE8N8SdT8UQkEj55IocsY5QEX52s=" + }, + { + "pname": "Markdig", + "version": "0.43.0", + "hash": "sha256-lUdjtLzSxAI0BEMdIgEc3fZ/VR8NO0gKSs1k6mgy6zU=" + }, + { + "pname": "MedallionTopologicalSort", + "version": "1.0.0", + "hash": "sha256-pWRZ4ZEDmljvUsfm0lFRoniDmAGnap2SlbgviuBSChE=" + }, + { + "pname": "MediatR", + "version": "10.0.1", + "hash": "sha256-ZMq4LuYAXhgzkpDqlMD/j7oZ/1ZKRbRHM/0PsT4qaFs=" + }, + { + "pname": "MediatR", + "version": "12.5.0", + "hash": "sha256-+eifDqFQLgs+mBkzuXx3lxQQiQLi1xOavRsVM2QXheE=" + }, + { + "pname": "MediatR.Contracts", + "version": "2.0.1", + "hash": "sha256-89ULOtn0fPqX0R7ulvnIjjz+rjKYq4//REhKNO3rUvw=" + }, + { + "pname": "MediatR.Courier", + "version": "5.0.0", + "hash": "sha256-7ff0vw+4JM01vQw4CrOFCsKL9GLhWLoMfQOdUgpPRJE=" + }, + { + "pname": "MediatR.Courier.DependencyInjection", + "version": "5.0.0", + "hash": "sha256-THQ8Z7DAoMDEqAS7feAmAt82NvU7H90Y+jYwC7NwL+0=" + }, + { + "pname": "Microsoft.AspNetCore.Authentication.JwtBearer", + "version": "9.0.10", + "hash": "sha256-6l1ldFyaaj3s068Va9/dB1r/bwz28yvXFrRqqeApO1o=" + }, + { + "pname": "Microsoft.AspNetCore.Authentication.OpenIdConnect", + "version": "9.0.10", + "hash": "sha256-60LP/JjEanENkOHuC+A2uRnH8LX836p1SWeCGz7WI4I=" + }, + { + "pname": "Microsoft.AspNetCore.Authorization", + "version": "9.0.1", + "hash": "sha256-r4kREQ8EBu0ca0mLWURXK+eRXxPDtw3ygkV6gKZHHcU=" + }, + { + "pname": "Microsoft.AspNetCore.Components", + "version": "8.0.6", + "hash": "sha256-UnN6Mp/ZCpyem4IEGLPeit/CM6R9sIZ4t8byhuaBAD8=" + }, + { + "pname": "Microsoft.AspNetCore.Components", + "version": "9.0.1", + "hash": "sha256-dkUlF8cmEplWR5IwkUC9TIDoseFKMkO+KzxGS5VAwVs=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Analyzers", + "version": "9.0.1", + "hash": "sha256-M5EP1+9d2ndDLursIcTGG9eiTst/npb9WlsdNigs8MQ=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Forms", + "version": "8.0.6", + "hash": "sha256-0pj0SSYltkS6LYizVbIixNxJm7mnOen/ZS2pc1qoDZ4=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Forms", + "version": "9.0.1", + "hash": "sha256-R1ZbsMvlu0QL4XUvdg56GJ0ipCwg8NJCpgChR3eVG0o=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Web", + "version": "8.0.0", + "hash": "sha256-dsCb4B6r5iHPbEp8+uFzAfD1txGI5dEIWgwtT9+GgU8=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Web", + "version": "8.0.6", + "hash": "sha256-p4HCxjja7i5ZBM65+p7QJ50/7xYnH+glDn92dWEzaPc=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Web", + "version": "9.0.1", + "hash": "sha256-6x+220UK4IeHH52cIDjtcsVq99++4b/rJdpdYi5aqbU=" + }, + { + "pname": "Microsoft.AspNetCore.JsonPatch", + "version": "9.0.10", + "hash": "sha256-LYa47siOO6avqUiPU7oix1N1n0rg9uBCoOGxjQ+pcCo=" + }, + { + "pname": "Microsoft.AspNetCore.Metadata", + "version": "9.0.1", + "hash": "sha256-QZbltYEjfOxrY991+bu+5fh/37N39eQnIMz30hhvHzc=" + }, + { + "pname": "Microsoft.AspNetCore.Mvc.NewtonsoftJson", + "version": "9.0.10", + "hash": "sha256-Oyz6w/aj7/l9bw1W3WGX9nzm0hF9jcQE9cFxcrNC/d0=" + }, + { + "pname": "Microsoft.AspNetCore.OpenApi", + "version": "9.0.10", + "hash": "sha256-Wq3M/6lQmLozVE40miheZMbc/3Bx8gotSL8wyiUkbYM=" + }, + { + "pname": "Microsoft.AspNetCore.SpaServices.Extensions", + "version": "9.0.10", + "hash": "sha256-2eY4Z9hzQiqQGCdl6BpQGRLjHnbCtxNG21oSNjwLrhQ=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "7.0.0", + "hash": "sha256-1e031E26iraIqun84ad0fCIR4MJZ1hcQo4yFN+B7UfE=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "8.0.0", + "hash": "sha256-9aWmiwMJKrKr9ohD1KSuol37y+jdDxPGJct3m2/Bknw=" + }, + { + "pname": "Microsoft.Bcl.Cryptography", + "version": "9.0.4", + "hash": "sha256-kc98Ghe2N/xl0ruvbDBUYGtFnetvfNIPRLyECmh8RnY=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "16.10.0", + "hash": "sha256-Sj41LE1YQ/NfOdiDf5YnZgWSwGOzQ2uVvP1LgF/HSJ0=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.8.3", + "hash": "sha256-Rp4dN8ejOXqclIKMUXYvIliM6IYB7WMckMLwdCbVZ34=" + }, + { + "pname": "Microsoft.Build.Locator", + "version": "1.7.8", + "hash": "sha256-VhZ4jiJi17Cd5AkENXL1tjG9dV/oGj0aY67IGYd7vNs=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.3.4", + "hash": "sha256-qDzTfZBSCvAUu9gzq2k+LOvh6/eRvJ9++VCNck/ZpnE=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "4.8.0", + "hash": "sha256-3IEinVTZq6/aajMVA8XTRO3LTIEt0PuhGyITGJLtqz4=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "4.8.0", + "hash": "sha256-MmOnXJvd/ezs5UPcqyGLnbZz5m+VedpRfB+kFZeeqkU=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "4.8.0", + "hash": "sha256-WNzc+6mKqzPviOI0WMdhKyrWs8u32bfGj2XwmfL7bwE=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "4.8.0", + "hash": "sha256-X8R4SpWVO/gpip5erVZf5jCCx8EX3VzIRtNrQiLDIoM=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.MSBuild", + "version": "4.8.0", + "hash": "sha256-hxpMKC6OF8OaIiSZhAgJ+Rw7M8nqS6xHdUURnRRxJmU=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.7.0", + "hash": "sha256-Enknv2RsFF68lEPdrf5M+BpV1kHoLTVRApKUwuk/pj0=" + }, + { + "pname": "Microsoft.Data.SqlClient", + "version": "5.1.6", + "hash": "sha256-WKiGbnxb/B1g9yPOpYFRsIqCLn5eOzVY0+L15bhOGHY=" + }, + { + "pname": "Microsoft.Data.SqlClient", + "version": "6.1.2", + "hash": "sha256-yk9khPXKcX8ucokd+G4NG4ZX8O9Yxx4wFVaTWz0P8lI=" + }, + { + "pname": "Microsoft.Data.SqlClient.SNI.runtime", + "version": "6.0.2", + "hash": "sha256-CQuJfjZYoRxfc07cSzUNCOOdzmUJu0p10J+WpcG2BJ0=" + }, + { + "pname": "Microsoft.Data.Sqlite.Core", + "version": "9.0.10", + "hash": "sha256-prsCR2WzQAhbhdZ30xk+/wvLt6rDj0M3k1tvyoD6uYM=" + }, + { + "pname": "Microsoft.Data.Sqlite.Core", + "version": "9.0.9", + "hash": "sha256-lNMizqJQQgW49SxgGNh68us1PI5x2XTjLussuNGmC+c=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "9.0.1", + "hash": "sha256-Cq1tZz2WWDEFy7D2xJ6YaBv+ifGwIFHWgKgsVXwbWSA=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "9.0.10", + "hash": "sha256-Zm4oMVeloK2WmPskzg4l3SXjJuC+sRg3O5aiTK5rHvw=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "9.0.10", + "hash": "sha256-FB+8WtFYKn1PH9R3pgKw7dNJiJDCcS78UkeRkxdOuCk=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "9.0.10", + "hash": "sha256-q6w0uQ4qMAe2EuA65a3rk18rhGXuGVYMrdrIzD5Z+tw=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Design", + "version": "9.0.10", + "hash": "sha256-Zb5u2PySq+VuISn4bSTTDp6sN05ml94eK5O3dZAGO9g=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "9.0.0", + "hash": "sha256-b7YR7J6mv7IN0+TQIIm6xKw4heEPol0dLDgxVHAUu7s=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "9.0.1", + "hash": "sha256-6F6oYj654ceTg9247WgjmOFh7um3Silp/Ziwx5f8CqY=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "9.0.10", + "hash": "sha256-2XHQOKvs4mAXwl8vEZpdi6ZtDFhK2hPusRMFemu3Shw=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "9.0.9", + "hash": "sha256-+d6w+XBbQCbKRDGS2s7be4NlGnvLpAEWp6tN6RNcEpE=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Sqlite", + "version": "9.0.10", + "hash": "sha256-LunzXQSLdZZL1aTlg8E8Jj58oKXniJwYx9zQasPbM2I=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Sqlite.Core", + "version": "9.0.10", + "hash": "sha256-3uBgFul0W3+7MaxwRjZoowQ9iSw58jYPUChyWG/3UF4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Sqlite.Core", + "version": "9.0.9", + "hash": "sha256-fJof6vNwfUynNsVuutVIlCjVVXETqALT4mYOvhf7Dfc=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.SqlServer", + "version": "9.0.9", + "hash": "sha256-QwdUXYH2wzt1XyZGVQIedTs2smKgaACuhUyJLLFhFfs=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.SqlServer.Abstractions", + "version": "9.0.9", + "hash": "sha256-Sl7NEgOjB2vvibD+r/VYnd0vNVXLbMoHNmhyvQ0RGuA=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.SqlServer.HierarchyId", + "version": "9.0.9", + "hash": "sha256-B8U2Yzcv4Rl5Hi4PDIywKMecWrNGqcyxrKu1L4/WnJ0=" + }, + { + "pname": "Microsoft.Extensions.ApiDescription.Server", + "version": "9.0.10", + "hash": "sha256-PRhLCquUa3IE7i31aHMGBap7vlLFC7HPAJRnCyhBQDI=" + }, + { + "pname": "Microsoft.Extensions.Caching.Abstractions", + "version": "9.0.10", + "hash": "sha256-W/9WhAG5t/hWPZxIL5+ILMsPKO/DjprHRymZUmU5YOA=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "9.0.10", + "hash": "sha256-HIXNiUnBJaYN+QGzpTlHzkvkBwYmcU0QUlIgQDhVG5g=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "9.0.4", + "hash": "sha256-5uynkW+dK61Zp1+vs5uW6mwpnkZl7mH/bGSQoGjJH2c=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "9.0.9", + "hash": "sha256-Vd64P8RygTRObuy+R0htLqLZK6d4gogKfoC7eR9c1JQ=" + }, + { + "pname": "Microsoft.Extensions.Configuration", + "version": "9.0.10", + "hash": "sha256-K16pSHfb71WhGqD7mzjrYaNBihU4tga90c6IOHsgRxw=" + }, + { + "pname": "Microsoft.Extensions.Configuration", + "version": "9.0.7", + "hash": "sha256-Su+YntNqtLuY0XEYo1vfQZ4sA0wrHu0ZrcM33blvHWI=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "8.0.0", + "hash": "sha256-4eBpDkf7MJozTZnOwQvwcfgRKQGcNXe0K/kF+h5Rl8o=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "9.0.0", + "hash": "sha256-xtG2USC9Qm0f2Nn6jkcklpyEDT3hcEZOxOwTc0ep7uc=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "9.0.10", + "hash": "sha256-sRv0yS2sbyli7eejtnpmd7UIAz4PwSt5/Po5Irc1j98=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "9.0.7", + "hash": "sha256-45ZR8liM/A6II+WPX9X6v9+g2auAKInPbVvY6a79VLk=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "9.0.9", + "hash": "sha256-Qmi+ftu17qqVVHJ+SgKvLrXCHJDrP5h4ZgTflgDWgzc=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Binder", + "version": "9.0.0", + "hash": "sha256-6ajYWcNOQX2WqftgnoUmVtyvC1kkPOtTCif4AiKEffU=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Binder", + "version": "9.0.10", + "hash": "sha256-4NEBx28byvjjIzo0wQPIUUymk9AzSgPS4fu5IRxkIt4=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Binder", + "version": "9.0.7", + "hash": "sha256-9iT3CPY6Vpwi1RCVwveHVteTgpAXloBAo8KCwIPsePg=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "8.0.0", + "hash": "sha256-+qIDR8hRzreCHNEDtUcPfVHQdurzWPo/mqviCH78+EQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.0", + "hash": "sha256-dAH52PPlTLn7X+1aI/7npdrDzMEFPMXRv4isV1a+14k=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.1", + "hash": "sha256-Kt9fczXVeOIlvwuxXdQDKRfIZKClay0ESGUIAJpYiOw=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.10", + "hash": "sha256-f3r2msA/oV9gGdFn9OEr5bPAfINR17P+sS6/2/NnCuk=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "2.1.0", + "hash": "sha256-WgS/QtxbITCpVjs1JPCWuJRrZSoplOtY7VfOXjLqDDA=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "6.0.0", + "hash": "sha256-SZke0jNKIqJvvukdta+MgIlGsrP2EdPkkS8lfLg7Ju4=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "8.0.0", + "hash": "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "8.0.2", + "hash": "sha256-UfLfEQAkXxDaVPC7foE/J3FVEXd31Pu6uQIhTic3JgY=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.0", + "hash": "sha256-CncVwkKZ5CsIG2O0+OM9qXuYXh3p6UGyueTHSLDVL+c=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.1", + "hash": "sha256-2tWVTPHsw1NG2zO0zsxvi1GybryqeE1V00ZRE66YZB4=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.10", + "hash": "sha256-5rwFXG+Wjbf+TkXeWrkGVKV4wfvOryTPadEkEyPyKj4=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.7", + "hash": "sha256-Ltlh01iGj6641DaZSFif/2/2y3y9iFk7GEd+HuRnxPs=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "9.0.0", + "hash": "sha256-xirwlMWM0hBqgTneQOGkZ8l45mHT08XuSSRIbprgq94=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "9.0.10", + "hash": "sha256-isJHVIKcWkwi+CqwNBVlz2ISKzZj+TilVpmVNOonNWo=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "9.0.9", + "hash": "sha256-0ygY8JLOIKuYFwwdVCtDl8/8fV5IC9JgivfzXsjXXsI=" + }, + { + "pname": "Microsoft.Extensions.DiagnosticAdapter", + "version": "3.1.32", + "hash": "sha256-moN7Vt47IZ0ZHRMjW+Y1Vbn/7ekvkj9GSm4yjIeAGnI=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics", + "version": "8.0.1", + "hash": "sha256-CraHNCaVlMiYx6ff9afT6U7RC/MoOCXM3pn2KrXkiLc=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics", + "version": "9.0.10", + "hash": "sha256-QOjI52VFJne2OpvSPeoep/AcPXvwtr9AtvU0xdCIWog=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics.Abstractions", + "version": "9.0.0", + "hash": "sha256-wG1LcET+MPRjUdz3HIOTHVEnbG/INFJUqzPErCM79eY=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics.Abstractions", + "version": "9.0.10", + "hash": "sha256-FXJrBpG4UieCn9MLcNX25WbPycfZWdPg38/ZLckmAI0=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Abstractions", + "version": "9.0.0", + "hash": "sha256-mVfLjZ8VrnOQR/uQjv74P2uEG+rgW72jfiGdSZhIfDc=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Abstractions", + "version": "9.0.10", + "hash": "sha256-NJUg0fFe+djIUkdYhJDCG5A1JU9hhQ5GXGsz+gBEaFo=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Physical", + "version": "9.0.10", + "hash": "sha256-fqh0OzyoSouNpJkVp/stjqD2NInnBKX9n6JPx+HD5Q0=" + }, + { + "pname": "Microsoft.Extensions.FileSystemGlobbing", + "version": "9.0.10", + "hash": "sha256-m3gjvbPKl36XlrOzCjNHEhWjQcG8agZ5REc/EIOExmQ=" + }, + { + "pname": "Microsoft.Extensions.Hosting.Abstractions", + "version": "9.0.0", + "hash": "sha256-NhEDqZGnwCDFyK/NKn1dwLQExYE82j1YVFcrhXVczqY=" + }, + { + "pname": "Microsoft.Extensions.Hosting.Abstractions", + "version": "9.0.10", + "hash": "sha256-CrysJ8NO0kx9smoGIk0Oz05RnISTUcPVjTLpRKeVBgQ=" + }, + { + "pname": "Microsoft.Extensions.Http", + "version": "8.0.1", + "hash": "sha256-ScPwhBvD3Jd4S0E7JQ18+DqY3PtQvdFLbkohUBbFd3o=" + }, + { + "pname": "Microsoft.Extensions.Http", + "version": "9.0.10", + "hash": "sha256-cDC63R943sHVw34V64A3weVY1KgrjhE3dCtDJfGLaQA=" + }, + { + "pname": "Microsoft.Extensions.Localization", + "version": "9.0.1", + "hash": "sha256-xUjj12JrGno5SMFvElI83InMMAsg2IEmOvnSG0StPGM=" + }, + { + "pname": "Microsoft.Extensions.Localization.Abstractions", + "version": "9.0.1", + "hash": "sha256-TfMJ/RDIzihOh5zt30adc2clcUQMyDoWB173CW87KXg=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "6.0.0", + "hash": "sha256-8WsZKRGfXW5MsXkMmNVf6slrkw+cR005czkOP2KUqTk=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "8.0.1", + "hash": "sha256-vkfVw4tQEg86Xg18v6QO0Qb4Ysz0Njx57d1XcNuj6IU=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.0", + "hash": "sha256-kR16c+N8nQrWeYLajqnXPg7RiXjZMSFLnKLEs4VfjcM=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.10", + "hash": "sha256-/Et36NBhpMoxQzI+p/moW7knwYDfjI7Ma7DF7KIYn+Q=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.7", + "hash": "sha256-7n8guHFss8HPnJuAByfzn9ipguDz7dack/udL1uH3h0=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.9", + "hash": "sha256-NdiJIyXqS4+uE/UPDxLfPt3qCvmapTBVuP3jUcsBb74=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "8.0.2", + "hash": "sha256-cHpe8X2BgYa5DzulZfq24rg8O2K5Lmq2OiLhoyAVgJc=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "8.0.3", + "hash": "sha256-5MSY1aEwUbRXehSPHYw0cBZyFcUH4jkgabddxhMiu3Q=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.0", + "hash": "sha256-iBTs9twjWXFeERt4CErkIIcoJZU1jrd1RWCI8V5j7KU=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.1", + "hash": "sha256-aFZeUno9yLLbvtrj53gA7oD41vxZZYkrJhlOghpMEjo=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.10", + "hash": "sha256-PtYXXHi+mbdQMh2QtA57NbWlt+JEpXiey36zLzbKTmo=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.7", + "hash": "sha256-G8x9e+2D2FzUsYNkXHd4HKQ71iEv5njFiGlvS+7OXLQ=" + }, + { + "pname": "Microsoft.Extensions.Logging.Configuration", + "version": "9.0.7", + "hash": "sha256-ZgS/4d6hmFtCLWdBL4DtlEFXV84295jWJrgzUPQ1IVI=" + }, + { + "pname": "Microsoft.Extensions.Logging.Console", + "version": "9.0.7", + "hash": "sha256-KUsy31YvvO8CTwHoNw4DbBOp+/o2sYscvQL7fvCPUvQ=" + }, + { + "pname": "Microsoft.Extensions.Logging.TraceSource", + "version": "9.0.7", + "hash": "sha256-CTh9gA1if0ejMNZs/sz8KHCABqtJHCK0/KNqzmFE0YY=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "8.0.2", + "hash": "sha256-AjcldddddtN/9aH9pg7ClEZycWtFHLi9IPe1GGhNQys=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.0", + "hash": "sha256-DT5euAQY/ItB5LPI8WIp6Dnd0lSvBRP35vFkOXC68ck=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.1", + "hash": "sha256-wOKd/0+kRK3WrGA2HmS/KNYUTUwXHmTAD5IsClTFA10=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.10", + "hash": "sha256-QTNhi83xhjJuIQ/3QffzQs/KY7avNyBMvnkuuSr3pBo=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.7", + "hash": "sha256-nfUnZxx1tKERUddNNyxhGTK7VDTNZIJGYkiOWSHCt/M=" + }, + { + "pname": "Microsoft.Extensions.Options.ConfigurationExtensions", + "version": "9.0.10", + "hash": "sha256-4YxwQH66IhJiJP53/Fy/lGBIEkVo4k+o/5QxzFQLhfQ=" + }, + { + "pname": "Microsoft.Extensions.Options.ConfigurationExtensions", + "version": "9.0.7", + "hash": "sha256-96ycmW7aMb9i0GFXoLVUlb0cc3IIpYXRJ3Pymz/QJi4=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "8.0.0", + "hash": "sha256-FU8qj3DR8bDdc1c+WeGZx/PCZeqqndweZM9epcpXjSo=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.0", + "hash": "sha256-ZNLusK1CRuq5BZYZMDqaz04PIKScE2Z7sS2tehU7EJs=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.1", + "hash": "sha256-tdbtoC7eQGW5yh66FWCJQqmFJkNJD+9e6DDKTs7YAjs=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.10", + "hash": "sha256-It7NQ+Ap/hrqFX3LXDVJqVz1Xl3j8QIapYDcG2MQ/7w=" + }, + { + "pname": "Microsoft.Identity.Client", + "version": "4.73.1", + "hash": "sha256-cd5ArtDvQK4gdX8M0GHQEsCFWlqpdm6lxvaM2yMHkhc=" + }, + { + "pname": "Microsoft.Identity.Client.Extensions.Msal", + "version": "4.73.1", + "hash": "sha256-wc4oHBGKCJhAqNIyD4LlugCFvmyiW5iVzGYP88bnWqs=" + }, + { + "pname": "Microsoft.IdentityModel.Abstractions", + "version": "6.35.0", + "hash": "sha256-bxyYu6/QgaA4TQYBr5d+bzICL+ktlkdy/tb/1fBu00Q=" + }, + { + "pname": "Microsoft.IdentityModel.Abstractions", + "version": "7.7.1", + "hash": "sha256-v83O6Gb8s4wGhbRPvOA95t0LSX+MAhF6WpA6qZeK2XM=" + }, + { + "pname": "Microsoft.IdentityModel.Abstractions", + "version": "8.0.1", + "hash": "sha256-zPWUKTCfGm4MWcYPU037NzezsFE1g8tEijjQkw5iooI=" + }, + { + "pname": "Microsoft.IdentityModel.JsonWebTokens", + "version": "7.7.1", + "hash": "sha256-vGUx0HYrhDGQiHuIZoe4YOXx3UV9hT+a0krlPGJPQzw=" + }, + { + "pname": "Microsoft.IdentityModel.JsonWebTokens", + "version": "8.0.1", + "hash": "sha256-Xv9MUnjb66U3xeR9drOcSX5n2DjOCIJZPMNSKjWHo9Y=" + }, + { + "pname": "Microsoft.IdentityModel.Logging", + "version": "7.7.1", + "hash": "sha256-JtQclRXgzsFBFnD+kgD59OILf7XkMD2czLupLZkc100=" + }, + { + "pname": "Microsoft.IdentityModel.Logging", + "version": "8.0.1", + "hash": "sha256-FfwrH/2eLT521Kqw+RBIoVfzlTNyYMqlWP3z+T6Wy2Y=" + }, + { + "pname": "Microsoft.IdentityModel.Protocols", + "version": "7.7.1", + "hash": "sha256-PVS46Ut/2814hy0tdNLahG266hBmepw/fzZ9pku1PNg=" + }, + { + "pname": "Microsoft.IdentityModel.Protocols", + "version": "8.0.1", + "hash": "sha256-v3DIpG6yfIToZBpHOjtQHRo2BhXGDoE70EVs6kBtrRg=" + }, + { + "pname": "Microsoft.IdentityModel.Protocols.OpenIdConnect", + "version": "7.7.1", + "hash": "sha256-zXRZLfgOG/0l8aF6mZuAVGWB3wYz5uTkTJwlucYPafw=" + }, + { + "pname": "Microsoft.IdentityModel.Protocols.OpenIdConnect", + "version": "8.0.1", + "hash": "sha256-ZHKaZxqESk+OU1SFTFGxvZ71zbdgWqv1L6ET9+fdXX0=" + }, + { + "pname": "Microsoft.IdentityModel.Tokens", + "version": "7.7.1", + "hash": "sha256-WgbdkeG0R/f+4GJeXlj1WMpFyGv7+iW1JM9Pgt95UFk=" + }, + { + "pname": "Microsoft.IdentityModel.Tokens", + "version": "8.0.1", + "hash": "sha256-beVbbVQy874HlXkTKarPTT5/r7XR1NGHA/50ywWp7YA=" + }, + { + "pname": "Microsoft.IO.RecyclableMemoryStream", + "version": "3.0.1", + "hash": "sha256-unFg/5EcU/XKJbob4GtQC43Ydgi5VjeBGs7hfhj4EYo=" + }, + { + "pname": "Microsoft.JSInterop", + "version": "8.0.6", + "hash": "sha256-lKOvph7MvyvGuuNZZGa0ZGcSH87n6vVxUgc9C/rsC3E=" + }, + { + "pname": "Microsoft.JSInterop", + "version": "9.0.1", + "hash": "sha256-eDXtCDVi6LO2MA04ytmmOSVtvpINq0Km84hu6LOBa2A=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.0", + "hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "5.0.0", + "hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.1.0", + "hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ=" + }, + { + "pname": "Microsoft.OpenApi", + "version": "1.6.17", + "hash": "sha256-Wx9PwlEJPNMq1kp59nJJnLHQ+yNhqCTudcokmlP+tSk=" + }, + { + "pname": "Microsoft.SqlServer.Server", + "version": "1.0.0", + "hash": "sha256-mx/iqHmBMwA8Ulot0n6YFVIKsU1Tx7q4Tru7MSjbEgQ=" + }, + { + "pname": "Microsoft.SqlServer.Types", + "version": "160.1000.6", + "hash": "sha256-XU5s3iwz8JIwIrG5Xe8wZJ8cuCUx7q3fOLYzNHmA9jg=" + }, + { + "pname": "Microsoft.VisualStudio.Threading.Analyzers", + "version": "17.14.15", + "hash": "sha256-wv0Hi7pjPYeSwDFyaa8baIOyiUraVfudmVtpm0okoYU=" + }, + { + "pname": "Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg=" + }, + { + "pname": "Microsoft.Win32.Registry", + "version": "5.0.0", + "hash": "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA=" + }, + { + "pname": "Mono.TextTemplating", + "version": "3.0.0", + "hash": "sha256-VlgGDvgNZb7MeBbIZ4DE2Nn/j2aD9k6XqNHnASUSDr0=" + }, + { + "pname": "MudBlazor", + "version": "8.13.0", + "hash": "sha256-gBVfGt6wHgJmeN0vE0y7Ij+8CAq4aQNI43xiC8S0c6I=" + }, + { + "pname": "MySqlConnector", + "version": "2.4.0", + "hash": "sha256-vymVoL1G3Ia+mR7L3wcHwvvqL+2Xd9qJxsWBuJ7xiVs=" + }, + { + "pname": "NaturalSort.Extension", + "version": "4.4.0", + "hash": "sha256-zLZLY2ONesj58plElgK00aRq0g+RHgp6f6vGrt6dUtc=" + }, + { + "pname": "NCalc.Core", + "version": "5.7.0", + "hash": "sha256-KjtUpx/2n/mN8iashgosKMZ59vE3V+iLnuj2IcgNWf8=" + }, + { + "pname": "NCalcSync", + "version": "5.7.0", + "hash": "sha256-C2sUHYUpn4g1vR2Lhi50CFic/QDnU/KJHX2UMf1yGIg=" + }, + { + "pname": "NETStandard.Library", + "version": "1.6.1", + "hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw=" + }, + { + "pname": "NetTopologySuite", + "version": "2.0.0", + "hash": "sha256-sGv/EpZI+knjObiks9DP/qstFZ+G0UMsagDFvAmgYvo=" + }, + { + "pname": "NetTopologySuite", + "version": "2.6.0", + "hash": "sha256-HxcqD0KfYhRt0jlGQSU6T+D6HF29yckqg3PEPHygRc4=" + }, + { + "pname": "NetTopologySuite.IO.SpatiaLite", + "version": "2.0.0", + "hash": "sha256-Zz4YUTM3o3Am7qlnktfcLROTI6oA4IdpAG0kFigMqkI=" + }, + { + "pname": "NetTopologySuite.IO.SqlServerBytes", + "version": "2.1.0", + "hash": "sha256-ribA66VZQ9arg5lC59TeSaAQxD0JBRq15acgyFcDrco=" + }, + { + "pname": "Newtonsoft.Json", + "version": "12.0.1", + "hash": "sha256-4Xf3RZrJomAh3jaZrEAJX3oPmOowGV8yDB9Y3h0Dw4U=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.3", + "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.4", + "hash": "sha256-8JCB1FdAW681qXP6DFDWvycu1oPyVoxaYgpJ2pUvZSk=" + }, + { + "pname": "Newtonsoft.Json.Bson", + "version": "1.0.2", + "hash": "sha256-ZUj6YFSMZp5CZtXiamw49eZmbp1iYBuNsIKNnjxcRzA=" + }, + { + "pname": "Newtonsoft.Json.Schema", + "version": "4.0.1", + "hash": "sha256-EHBcN4hM9fg34BbHrY8o+mqYh9FYPDb5K6CnEkpUflo=" + }, + { + "pname": "Npgsql", + "version": "9.0.3", + "hash": "sha256-X3F05GNj3vNVl++VOV5TMYE5dvEe6cx0k+5yWo2Q/+o=" + }, + { + "pname": "Npgsql.EntityFrameworkCore.PostgreSQL", + "version": "9.0.4", + "hash": "sha256-jBgcWTQ2Y84rA04OBSzVLzKzYsFC+a1olwbb01wnd0w=" + }, + { + "pname": "Oracle.EntityFrameworkCore", + "version": "9.23.90", + "hash": "sha256-+dBRGgIx3OcoxsppqMayAB+57RwjI3ybSI9wj3iGK2A=" + }, + { + "pname": "Oracle.ManagedDataAccess.Core", + "version": "23.9.0", + "hash": "sha256-8w1V6G9YHt70ph22JCBAMzxVPrpA5NVJ0rcoRidlHHs=" + }, + { + "pname": "Parlot", + "version": "1.4.0", + "hash": "sha256-4I9+uG+MW5KTxbGFjXoEjsK8/g6m6ZvuqUOohGNk2gE=" + }, + { + "pname": "Pomelo.EntityFrameworkCore.MySql", + "version": "9.0.0", + "hash": "sha256-HGWV09tzY87vvMK6E9/83RPnG0yYVBckaJs6JqF2/zs=" + }, + { + "pname": "Refit", + "version": "8.0.0", + "hash": "sha256-YORvtZtDy0+wlUoJTur1lO5wJMovFY/jxoIvfkEkObI=" + }, + { + "pname": "Refit.HttpClientFactory", + "version": "8.0.0", + "hash": "sha256-VNVCqzq3HwPSRK/GrcBkbdhb2iRYrqoeDBvGnPNyrbA=" + }, + { + "pname": "Refit.Newtonsoft.Json", + "version": "8.0.0", + "hash": "sha256-KOZbdzoV/DBYgSNRzrDZOKhcKD1qQWZcakhTpVXBy08=" + }, + { + "pname": "Refit.Xml", + "version": "8.0.0", + "hash": "sha256-Dy/5KaJ/Nq5p/T126Zj7gECEg7232uA+cWlKB+Y+OxQ=" + }, + { + "pname": "RichTextKit.Stbear", + "version": "0.4.167.3", + "hash": "sha256-ntKXv6NYHYQSrqCIYvYSGrlk5B180wPb9JlCXYdHMp0=" + }, + { + "pname": "runtime.any.System.Collections", + "version": "4.3.0", + "hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-8yLKFt2wQxkEf7fNfzB+cPUCjYn2qbqNgQ1+EeY2h/I=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI=" + }, + { + "pname": "runtime.any.System.Globalization", + "version": "4.3.0", + "hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU=" + }, + { + "pname": "runtime.any.System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-AYh39tgXJVFu8aLi9Y/4rK8yWMaza4S4eaxjfcuEEL4=" + }, + { + "pname": "runtime.any.System.IO", + "version": "4.3.0", + "hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE=" + }, + { + "pname": "runtime.any.System.Reflection", + "version": "4.3.0", + "hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk=" + }, + { + "pname": "runtime.any.System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8=" + }, + { + "pname": "runtime.any.System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ=" + }, + { + "pname": "runtime.any.System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4=" + }, + { + "pname": "runtime.any.System.Runtime", + "version": "4.3.0", + "hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM=" + }, + { + "pname": "runtime.any.System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4=" + }, + { + "pname": "runtime.any.System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA=" + }, + { + "pname": "runtime.any.System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs=" + }, + { + "pname": "runtime.any.System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM=" + }, + { + "pname": "runtime.any.System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4=" + }, + { + "pname": "runtime.any.System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-BgHxXCIbicVZtpgMimSXixhFC3V+p5ODqeljDjO8hCs=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA=" + }, + { + "pname": "runtime.native.System", + "version": "4.3.0", + "hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y=" + }, + { + "pname": "runtime.native.System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8=" + }, + { + "pname": "runtime.native.System.Net.Http", + "version": "4.3.0", + "hash": "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw=" + }, + { + "pname": "runtime.unix.Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg=" + }, + { + "pname": "runtime.unix.System.Console", + "version": "4.3.0", + "hash": "sha256-AHkdKShTRHttqfMjmi+lPpTuCrM5vd/WRy6Kbtie190=" + }, + { + "pname": "runtime.unix.System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI=" + }, + { + "pname": "runtime.unix.System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I=" + }, + { + "pname": "runtime.unix.System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-pHJ+I6i16MV6m77uhTC6GPY6jWGReE3SSP3fVB59ti0=" + }, + { + "pname": "runtime.unix.System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-IvgOeA2JuBjKl5yAVGjPYMPDzs9phb3KANs95H9v1w4=" + }, + { + "pname": "runtime.unix.System.Private.Uri", + "version": "4.3.0", + "hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs=" + }, + { + "pname": "runtime.unix.System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4=" + }, + { + "pname": "Scalar.AspNetCore", + "version": "2.9.0", + "hash": "sha256-6ZGrchehXuV9MoXv6/3yzrJh0q1aHFuOsfIknZM/2uU=" + }, + { + "pname": "Scriban.Signed", + "version": "6.4.0", + "hash": "sha256-DDXaTurUONBBG289NI2IYCyalDDFV9hlJo9McoCrBWQ=" + }, + { + "pname": "Serilog", + "version": "4.0.0", + "hash": "sha256-j8hQ5TdL1TjfdGiBO9PyHJFMMPvATHWN1dtrrUZZlNw=" + }, + { + "pname": "Serilog", + "version": "4.2.0", + "hash": "sha256-7f3EpCsEbDxXgsuhE430KVI14p7oDUuCtwRpOCqtnbs=" + }, + { + "pname": "Serilog", + "version": "4.3.0", + "hash": "sha256-jyIy4BjsyFXge3aO4GRFAdnX4/rz1MHfBkBDIpCDsTw=" + }, + { + "pname": "Serilog.AspNetCore", + "version": "9.0.0", + "hash": "sha256-h58CFtXBRvwhTCrhQPHQMKbp98YiK02o+cOyOmktVpQ=" + }, + { + "pname": "Serilog.Extensions.Hosting", + "version": "9.0.0", + "hash": "sha256-bidr2foe7Dp4BJOlkc7ko0q6vt9ITG3IZ8b2BKRa0pw=" + }, + { + "pname": "Serilog.Extensions.Logging", + "version": "9.0.0", + "hash": "sha256-aGkz1V4HVl0rWC1BkcnLhG1EC7WLBoT3tdLdUUTFXaw=" + }, + { + "pname": "Serilog.Formatting.Compact", + "version": "3.0.0", + "hash": "sha256-nejEYqJEMG9P2iFZvbsCUPr5LZRtxbdUTLCI9N71jHY=" + }, + { + "pname": "Serilog.Formatting.Compact.Reader", + "version": "4.0.0", + "hash": "sha256-89+SaaXp9Pt8YTkTwVuMV3PzlPMg9mOHiFBKs3oHOUs=" + }, + { + "pname": "Serilog.Settings.Configuration", + "version": "9.0.0", + "hash": "sha256-Q/q5UiSrcxoy5a/orod20E2RfiRtHDhxjjGMe1dW35I=" + }, + { + "pname": "Serilog.Sinks.Console", + "version": "6.0.0", + "hash": "sha256-QH8ykDkLssJ99Fgl+ZBFBr+RQRl0wRTkeccQuuGLyro=" + }, + { + "pname": "Serilog.Sinks.Debug", + "version": "3.0.0", + "hash": "sha256-7/LmoRF1rUDFhJ47bTRQQFRgSHnZDO8484r3sCGqYvE=" + }, + { + "pname": "Serilog.Sinks.File", + "version": "6.0.0", + "hash": "sha256-KQmlUpG9ovRpNqKhKe6rz3XMLUjkBqjyQhEm2hV5Sow=" + }, + { + "pname": "Serilog.Sinks.File", + "version": "7.0.0", + "hash": "sha256-LxZYUoUPkCjIIVarJilnXnqQiMrFNJtoRilmzTNtUjo=" + }, + { + "pname": "SixLabors.ImageSharp", + "version": "3.1.11", + "hash": "sha256-MlRF+3SGfahbsB1pZGKMOrsfUCx//hCo7ECrXr03DpA=" + }, + { + "pname": "SkiaSharp", + "version": "2.88.0", + "hash": "sha256-0YpAxE+MyEydxBSmI9zqqqSII2Qvp2gz9pVUcf1/DnM=" + }, + { + "pname": "SkiaSharp", + "version": "3.116.1", + "hash": "sha256-EQW/zjk+GsJbpJ3zqyGARh3oHep8XgneWXcSTNnYwuk=" + }, + { + "pname": "SkiaSharp", + "version": "3.119.1", + "hash": "sha256-TIVr52NpQ9cab5eJCcH/OYHjNOTKhwCqpClK2c8S4TM=" + }, + { + "pname": "SkiaSharp.HarfBuzz", + "version": "3.116.1", + "hash": "sha256-GYu9itkxAJUmj7Z4etHGUvPLdtdNr+y0mcUauArRnhE=" + }, + { + "pname": "SkiaSharp.NativeAssets.Linux.NoDependencies", + "version": "3.116.1", + "hash": "sha256-OGeR82WQhXaxw8jDgikyLImB+OdA+ql/PAn5mkYmjU8=" + }, + { + "pname": "SkiaSharp.NativeAssets.Linux.NoDependencies", + "version": "3.119.1", + "hash": "sha256-SprThyApThbDoeTn/JaaS7TKdm9SkMoVO8V8HuCyppI=" + }, + { + "pname": "SkiaSharp.NativeAssets.macOS", + "version": "3.119.1", + "hash": "sha256-0QJGcO91MWLSeQpE4ZNn/KUVoHRcrPeDbKklxCVB00o=" + }, + { + "pname": "SkiaSharp.NativeAssets.Win32", + "version": "3.119.1", + "hash": "sha256-ySPkn8SrShOqhihC33EJ4HJt9desDISC4gAI4FQBi2U=" + }, + { + "pname": "SQLitePCLRaw.bundle_e_sqlite3", + "version": "2.1.10", + "hash": "sha256-kZIWjH/TVTXRIsHPZSl7zoC4KAMBMWmgFYGLrQ15Occ=" + }, + { + "pname": "SQLitePCLRaw.core", + "version": "2.1.10", + "hash": "sha256-gpZcYwiJVCVwCyJu0R6hYxyMB39VhJDmYh9LxcIVAA8=" + }, + { + "pname": "SQLitePCLRaw.lib.e_sqlite3", + "version": "2.1.10", + "hash": "sha256-m2v2RQWol+1MNGZsx+G2N++T9BNtQGLLHXUjcwkdCnc=" + }, + { + "pname": "SQLitePCLRaw.provider.e_sqlite3", + "version": "2.1.10", + "hash": "sha256-MLs3jiETLZ7k/TgkHynZegCWuAbgHaDQKTPB0iNv7Fg=" + }, + { + "pname": "System.AppContext", + "version": "4.3.0", + "hash": "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg=" + }, + { + "pname": "System.Buffers", + "version": "4.3.0", + "hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk=" + }, + { + "pname": "System.Buffers", + "version": "4.5.1", + "hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI=" + }, + { + "pname": "System.ClientModel", + "version": "1.5.1", + "hash": "sha256-n4PHKtjmFXo37s5yhfUQ9UbfnWplqHpC+wsvlHxctow=" + }, + { + "pname": "System.CodeDom", + "version": "6.0.0", + "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + }, + { + "pname": "System.CodeDom", + "version": "8.0.0", + "hash": "sha256-uwVhi3xcvX7eiOGQi7dRETk3Qx1EfHsUfchZsEto338=" + }, + { + "pname": "System.Collections", + "version": "4.3.0", + "hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc=" + }, + { + "pname": "System.Collections.Concurrent", + "version": "4.3.0", + "hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI=" + }, + { + "pname": "System.Collections.Immutable", + "version": "7.0.0", + "hash": "sha256-9an2wbxue2qrtugYES9awshQg+KfJqajhnhs45kQIdk=" + }, + { + "pname": "System.Collections.Immutable", + "version": "9.0.7", + "hash": "sha256-OI+/e7BtdXN+0Ef75ueb/NRf3OjFlJy22QXmodeHG60=" + }, + { + "pname": "System.CommandLine", + "version": "2.0.0-rc.2.25502.107", + "hash": "sha256-aa8dUxLHZxU4bDs1NJ70VhlvwmkxiP/yPHAXaSnT4Uw=" + }, + { + "pname": "System.Composition", + "version": "7.0.0", + "hash": "sha256-YjhxuzuVdAzRBHNQy9y/1ES+ll3QtLcd2o+o8wIyMao=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "7.0.0", + "hash": "sha256-3s52Dyk2J66v/B4LLYFBMyXl0I8DFDshjE+sMjW4ubM=" + }, + { + "pname": "System.Composition.Convention", + "version": "7.0.0", + "hash": "sha256-N4MkkBXSQkcFKsEdcSe6zmyFyMmFOHmI2BNo3wWxftk=" + }, + { + "pname": "System.Composition.Hosting", + "version": "7.0.0", + "hash": "sha256-7liQGMaVKNZU1iWTIXvqf0SG8zPobRoLsW7q916XC3M=" + }, + { + "pname": "System.Composition.Runtime", + "version": "7.0.0", + "hash": "sha256-Oo1BxSGLETmdNcYvnkGdgm7JYAnQmv1jY0gL0j++Pd0=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "7.0.0", + "hash": "sha256-6ZzNdk35qQG3ttiAi4OXrihla7LVP+y2fL3bx40/32s=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "8.0.0", + "hash": "sha256-xhljqSkNQk8DMkEOBSYnn9lzCSEDDq4yO910itptqiE=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "9.0.4", + "hash": "sha256-hIde8A2EK+RpUSAMZx/xTVMRVeZWyaquVuSKmWbxrgw=" + }, + { + "pname": "System.Console", + "version": "4.3.0", + "hash": "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo=" + }, + { + "pname": "System.Diagnostics.Contracts", + "version": "4.3.0", + "hash": "sha256-K74oyUn0Vriv3mwrbZwQFQ6EA0M7Hm9YlcWLRjLjqr8=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "4.3.0", + "hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "4.7.1", + "hash": "sha256-l2TM1pfyRF70Xmzoz1dAqWkB8+/K6b8t5Tj7aF1UO9Y=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "6.0.1", + "hash": "sha256-Xi8wrUjVlioz//TPQjFHqcV/QGhTqnTfUcltsNlcCJ4=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "8.0.0", + "hash": "sha256-rt8xc3kddpQY4HEdghlBeOK4gdw5yIj4mcZhAVtk2/Y=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "9.0.4", + "hash": "sha256-afF72ywJo/vfJXt2XiI8Lf2zKcvn0F/p280P1w3Fmk4=" + }, + { + "pname": "System.Diagnostics.PerformanceCounter", + "version": "8.0.0", + "hash": "sha256-CbTL+orc5YcEJfKbBtr/9p/0rNVVOQPz/fOEaA6Pu5k=" + }, + { + "pname": "System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y=" + }, + { + "pname": "System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q=" + }, + { + "pname": "System.DirectoryServices.Protocols", + "version": "8.0.2", + "hash": "sha256-kfqxVtIqF8b2FcEi9vCWKKEyQNagg7VZqvrp9ylAWxk=" + }, + { + "pname": "System.Formats.Asn1", + "version": "8.0.1", + "hash": "sha256-may/Wg+esmm1N14kQTG4ESMBi+GQKPp0ZrrBo/o6OXM=" + }, + { + "pname": "System.Formats.Asn1", + "version": "9.0.9", + "hash": "sha256-HbbJ0jg+ivuuc/Hbl0DO1k263K/T8qzLjp2EB+H1/B4=" + }, + { + "pname": "System.Globalization", + "version": "4.3.0", + "hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI=" + }, + { + "pname": "System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc=" + }, + { + "pname": "System.Globalization.Extensions", + "version": "4.3.0", + "hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk=" + }, + { + "pname": "System.IdentityModel.Tokens.Jwt", + "version": "7.7.1", + "hash": "sha256-6JfmtdChyt7zd/HKI+/T1HcyesEPx0NNMO/zFJ7lU2c=" + }, + { + "pname": "System.IdentityModel.Tokens.Jwt", + "version": "8.0.1", + "hash": "sha256-hW4f9zWs0afxPbcMqCA/FAGvBZbBFSkugIOurswomHg=" + }, + { + "pname": "System.IO", + "version": "4.3.0", + "hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY=" + }, + { + "pname": "System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA=" + }, + { + "pname": "System.IO.Compression.ZipFile", + "version": "4.3.0", + "hash": "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.3.0", + "hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg=" + }, + { + "pname": "System.IO.Pipelines", + "version": "7.0.0", + "hash": "sha256-W2181khfJUTxLqhuAVRhCa52xZ3+ePGOLIPwEN8WisY=" + }, + { + "pname": "System.IO.Pipelines", + "version": "8.0.0", + "hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE=" + }, + { + "pname": "System.Linq", + "version": "4.3.0", + "hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A=" + }, + { + "pname": "System.Linq.Expressions", + "version": "4.3.0", + "hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8=" + }, + { + "pname": "System.Linq.Queryable", + "version": "4.3.0", + "hash": "sha256-EioRexhnpSoIa96Un0syFO9CP6l1jNaXYhp5LlnaLW4=" + }, + { + "pname": "System.Management", + "version": "8.0.0", + "hash": "sha256-HwpfDb++q7/vxR6q57mGFgl5U0vxy+oRJ6orFKORfP0=" + }, + { + "pname": "System.Memory", + "version": "4.5.3", + "hash": "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk=" + }, + { + "pname": "System.Memory", + "version": "4.5.5", + "hash": "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI=" + }, + { + "pname": "System.Memory", + "version": "4.6.0", + "hash": "sha256-OhAEKzUM6eEaH99DcGaMz2pFLG/q/N4KVWqqiBYUOFo=" + }, + { + "pname": "System.Memory.Data", + "version": "8.0.1", + "hash": "sha256-cxYZL0Trr6RBplKmECv94ORuyjrOM6JB0D/EwmBSisg=" + }, + { + "pname": "System.Net.Http", + "version": "4.3.0", + "hash": "sha256-UoBB7WPDp2Bne/fwxKF0nE8grJ6FzTMXdT/jfsphj8Q=" + }, + { + "pname": "System.Net.NameResolution", + "version": "4.3.0", + "hash": "sha256-eGZwCBExWsnirWBHyp2sSSSXp6g7I6v53qNmwPgtJ5c=" + }, + { + "pname": "System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE=" + }, + { + "pname": "System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus=" + }, + { + "pname": "System.ObjectModel", + "version": "4.3.0", + "hash": "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q=" + }, + { + "pname": "System.Private.Uri", + "version": "4.3.0", + "hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM=" + }, + { + "pname": "System.Reflection", + "version": "4.3.0", + "hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.3.0", + "hash": "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.7.0", + "hash": "sha256-Fw/CSRD+wajH1MqfKS3Q/sIrUH7GN4K+F+Dx68UPNIg=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.3.0", + "hash": "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.3.0", + "hash": "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.7.0", + "hash": "sha256-V0Wz/UUoNIHdTGS9e1TR89u58zJjo/wPUWw6VaVyclU=" + }, + { + "pname": "System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "7.0.0", + "hash": "sha256-GwAKQhkhPBYTqmRdG9c9taqrKSKDwyUgOEhWLKxWNPI=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM=" + }, + { + "pname": "System.Reflection.TypeExtensions", + "version": "4.3.0", + "hash": "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo=" + }, + { + "pname": "System.Runtime", + "version": "4.3.0", + "hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "6.0.0", + "hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI=" + }, + { + "pname": "System.Runtime.InteropServices.RuntimeInformation", + "version": "4.3.0", + "hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA=" + }, + { + "pname": "System.Runtime.Numerics", + "version": "4.3.0", + "hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc=" + }, + { + "pname": "System.Security.AccessControl", + "version": "5.0.0", + "hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54=" + }, + { + "pname": "System.Security.Cryptography.Algorithms", + "version": "4.3.0", + "hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "4.3.0", + "hash": "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw=" + }, + { + "pname": "System.Security.Cryptography.Csp", + "version": "4.3.0", + "hash": "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ=" + }, + { + "pname": "System.Security.Cryptography.Encoding", + "version": "4.3.0", + "hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss=" + }, + { + "pname": "System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "8.0.1", + "hash": "sha256-KMNIkJ3yQ/5O6WIhPjyAIarsvIMhkp26A6aby5KkneU=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "9.0.4", + "hash": "sha256-dfOvsCYBR2bGGvwm6tthWB8kdNS6bxoMTS/lxL4t1gA=" + }, + { + "pname": "System.Security.Cryptography.Primitives", + "version": "4.3.0", + "hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "4.5.0", + "hash": "sha256-Z+X1Z2lErLL7Ynt2jFszku6/IgrngO3V1bSfZTBiFIc=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "8.0.0", + "hash": "sha256-fb0pa9sQxN+mr0vnXg1Igbx49CaOqS+GDkTfWNboUvs=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "9.0.4", + "hash": "sha256-VSlwaKi5WU6J0LYVh/hFfZuSkCG4V99MH2iLwspTrYA=" + }, + { + "pname": "System.Security.Cryptography.X509Certificates", + "version": "4.3.0", + "hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "4.3.0", + "hash": "sha256-mbdLVUcEwe78p3ZnB6jYsizNEqxMaCAWI3tEQNhRQAE=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "5.0.0", + "hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y=" + }, + { + "pname": "System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg=" + }, + { + "pname": "System.Text.Encoding.CodePages", + "version": "6.0.0", + "hash": "sha256-nGc2A6XYnwqGcq8rfgTRjGr+voISxNe/76k2K36coj4=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc=" + }, + { + "pname": "System.Text.Json", + "version": "7.0.3", + "hash": "sha256-aSJZ17MjqaZNQkprfxm/09LaCoFtpdWmqU9BTROzWX4=" + }, + { + "pname": "System.Text.Json", + "version": "9.0.10", + "hash": "sha256-wqeobpRw3PqOw21q8oGvauj5BkX1pS02Cm78E6c742w=" + }, + { + "pname": "System.Text.Json", + "version": "9.0.5", + "hash": "sha256-M5G8EtmsV13O3qNMsAdk4isdKJ/SHfrbRzMhdVsoG2c=" + }, + { + "pname": "System.Text.Json", + "version": "9.0.9", + "hash": "sha256-I+GCgXZZUtgAta94BIBqy72HnZJ3egzNBOTxnVy2Ur8=" + }, + { + "pname": "System.Text.RegularExpressions", + "version": "4.3.0", + "hash": "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0=" + }, + { + "pname": "System.Threading", + "version": "4.3.0", + "hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc=" + }, + { + "pname": "System.Threading.Channels", + "version": "7.0.0", + "hash": "sha256-Cu0gjQsLIR8Yvh0B4cOPJSYVq10a+3F9pVz/C43CNeM=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.3.0", + "hash": "sha256-X2hQ5j+fxcmnm88Le/kSavjiGOmkcumBGTZKBLvorPc=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.5.4", + "hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng=" + }, + { + "pname": "System.Threading.ThreadPool", + "version": "4.3.0", + "hash": "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg=" + }, + { + "pname": "System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s=" + }, + { + "pname": "System.ValueTuple", + "version": "4.5.0", + "hash": "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI=" + }, + { + "pname": "System.Xml.ReaderWriter", + "version": "4.3.0", + "hash": "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA=" + }, + { + "pname": "System.Xml.XDocument", + "version": "4.3.0", + "hash": "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI=" + }, + { + "pname": "TagLibSharp", + "version": "2.3.0", + "hash": "sha256-PD9bVZiPaeC8hNx2D+uDUf701cCaMi2IRi5oPTNN+/w=" + }, + { + "pname": "TimeSpanParserUtil", + "version": "1.2.0", + "hash": "sha256-L/evfJun8q+KJuOOW8KD8n7a6wSu10DZF4RInRP62ko=" + }, + { + "pname": "TimeZoneConverter", + "version": "7.2.0", + "hash": "sha256-M2ETmUMPB6VWFxYrmRPV506Kl4SeXHYRgiTqaqnNBDQ=" + }, + { + "pname": "VueCliMiddleware", + "version": "6.0.0", + "hash": "sha256-0OvENncGlUduhcdRByS9LIHVnU3r7xy+7lUsaRWqwbU=" + }, + { + "pname": "WebMarkupMin.Core", + "version": "2.19.0", + "hash": "sha256-YB7zm1h8/+dlCjNNOYnnyrVMWG9G6KHlFcXvjtbhl6w=" + }, + { + "pname": "Winista.MimeDetect", + "version": "1.1.0", + "hash": "sha256-hdQivcgzUmik9Xya0rPEPEE8XI8K4f+pIz3B+8iZi6Y=" + }, + { + "pname": "YamlDotNet", + "version": "16.3.0", + "hash": "sha256-4Gi8wSQ8Rsi/3+LyegJr//A83nxn2fN8LN1wvSSp39Q=" + } +] diff --git a/pkgs/by-name/er/ersatztv/package.nix b/pkgs/by-name/er/ersatztv/package.nix new file mode 100644 index 000000000000..209b68cd6cfc --- /dev/null +++ b/pkgs/by-name/er/ersatztv/package.nix @@ -0,0 +1,53 @@ +{ + lib, + fetchFromGitHub, + dotnetCorePackages, + buildDotnetModule, + ffmpeg, + which, +}: + +buildDotnetModule rec { + pname = "ersatztv"; + version = "25.8.0"; + + src = fetchFromGitHub { + owner = "ErsatzTV"; + repo = "ErsatzTV"; + rev = "v${version}"; + sha256 = "sha256-FuuX/SxhzzUn7ELJDXJuILkl3ubR3V+5hQwILvZZrFg="; + }; + + buildInputs = [ ffmpeg ]; + + projectFile = "ErsatzTV/ErsatzTV.csproj"; + executables = [ + "ErsatzTV" + "ErsatzTV.Scanner" + ]; + nugetDeps = ./nuget-deps.json; + dotnet-sdk = dotnetCorePackages.sdk_9_0; + dotnet-runtime = dotnetCorePackages.aspnetcore_9_0; + + # ETV uses `which` to find `ffmpeg` and `ffprobe` + makeWrapperArgs = [ + "--suffix" + "PATH" + ":" + "${lib.makeBinPath [ + ffmpeg + which + ]}" + ]; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Stream custom live channels using your own media"; + homepage = "https://ersatztv.org/"; + license = licenses.zlib; + maintainers = with maintainers; [ allout58 ]; + mainProgram = "ErsatzTV"; + platforms = dotnet-runtime.meta.platforms; + }; +} diff --git a/pkgs/by-name/er/ersatztv/update.sh b/pkgs/by-name/er/ersatztv/update.sh new file mode 100755 index 000000000000..bfacbdfea836 --- /dev/null +++ b/pkgs/by-name/er/ersatztv/update.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts gnused nix coreutils + +set -euo pipefail + +latestVersion="$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/ersatztv/ersatztv/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')" +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; ersatztv.version or (lib.getVersion ersatztv)" | tr -d '"') + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "ersatztv is up-to-date: $currentVersion" + exit 0 +fi + +update-source-version ersatztv "$latestVersion" + +$(nix-build . -A ersatztv.fetch-deps --no-out-link)