From f8b7c62f9e1f477916308d6395db212ca1fca410 Mon Sep 17 00:00:00 2001 From: Wendell Jones Date: Sun, 22 Feb 2026 16:15:19 -0500 Subject: [PATCH] Add PostgreSQL provider and code cleanup Added Jellyfin.Database.Providers.Postgres project and integrated Npgsql packages for PostgreSQL support. Updated solution and test project references. Refactored code for clarity and performance, including improved string handling, log formatting, and plugin management. Enhanced .editorconfig rules and fixed minor test issues. Added publishing profiles and updated web server setup references. Cleaned up assembly info and cache files. Now able to successfully build solution --- .editorconfig | 10 +- .../Playlists/PlaylistManager.cs | 5 +- .../Plugins/PluginManager.cs | 13 +- .../Controllers/UniversalAudioController.cs | 10 +- .../Activity/ActivityManager.cs | 30 +- Jellyfin.Server/Helpers/StartupHelpers.cs | 2 +- Jellyfin.Server/Jellyfin.Server.csproj | 1 + Jellyfin.Server/Jellyfin.Server.csproj.user | 6 + .../PublishProfiles/FolderProfile.pubxml | 15 + .../PublishProfiles/FolderProfile.pubxml.user | 9 + Jellyfin.Server/ServerSetupApp/SetupServer.cs | 29 +- .../Jellyfin.Server.csproj.nuget.dgspec.json | 508 ++++++++++++++++++ Jellyfin.Server/obj/project.assets.json | 92 ++++ Jellyfin.Server/obj/project.nuget.cache | 4 +- .../netstandard2.0/Jellyfin.CodeAnalysis.dll | Bin 8704 -> 8704 bytes .../netstandard2.0/Jellyfin.CodeAnalysis.pdb | Bin 10192 -> 10220 bytes .../Jellyfin.CodeAnalysis.AssemblyInfo.cs | 3 +- ...yfin.CodeAnalysis.AssemblyInfoInputs.cache | 2 +- .../netstandard2.0/Jellyfin.CodeAnalysis.dll | Bin 8704 -> 8704 bytes .../netstandard2.0/Jellyfin.CodeAnalysis.pdb | Bin 10192 -> 10220 bytes .../Cryptography/PasswordHashTests.cs | 3 +- .../AudioBook/AudioBookFileInfoTests.cs | 4 +- .../AudioBook/AudioBookListResolverTests.cs | 6 +- .../AudioBook/AudioBookResolverTests.cs | 12 +- .../Common/NamingOptionsTest.cs | 4 +- .../Music/MultiDiscAlbumTests.cs | 4 +- .../TV/AbsoluteEpisodeNumberTests.cs | 4 +- .../TV/DailyEpisodeTests.cs | 4 +- .../TV/EpisodeNumberTests.cs | 4 +- .../TV/EpisodeNumberWithoutSeasonTests.cs | 4 +- .../TV/EpisodePathParserTest.cs | 6 +- .../TV/MultiEpisodeTests.cs | 4 +- .../TV/SeasonNumberTests.cs | 4 +- .../TV/SeriesPathParserTest.cs | 4 +- .../TV/SeriesResolverTests.cs | 4 +- .../TV/SimpleEpisodeTests.cs | 4 +- .../Video/CleanDateTimeTests.cs | 4 +- .../Video/CleanStringTests.cs | 4 +- .../Jellyfin.Naming.Tests/Video/ExtraTests.cs | 4 +- .../Video/Format3DTests.cs | 6 +- .../Video/MultiVersionTests.cs | 4 +- .../Jellyfin.Naming.Tests/Video/StackTests.cs | 4 +- .../Jellyfin.Naming.Tests/Video/StubTests.cs | 6 +- .../Video/VideoListResolverTests.cs | 8 +- .../Video/VideoResolverTests.cs | 10 +- .../Library/AudioResolverTests.cs | 3 +- ...ementations.Tests.csproj.nuget.dgspec.json | 508 ++++++++++++++++++ ...Implementations.Tests.csproj.nuget.g.props | 2 +- .../obj/project.assets.json | 92 ++++ .../obj/project.nuget.cache | 4 +- ...Integration.Tests.csproj.nuget.dgspec.json | 508 ++++++++++++++++++ ...ver.Integration.Tests.csproj.nuget.g.props | 2 +- .../obj/project.assets.json | 92 ++++ .../obj/project.nuget.cache | 4 +- ...yfin.Server.Tests.csproj.nuget.dgspec.json | 508 ++++++++++++++++++ ...Jellyfin.Server.Tests.csproj.nuget.g.props | 2 +- .../obj/project.assets.json | 92 ++++ .../obj/project.nuget.cache | 4 +- 58 files changed, 2563 insertions(+), 122 deletions(-) create mode 100644 Jellyfin.Server/Jellyfin.Server.csproj.user create mode 100644 Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml.user diff --git a/.editorconfig b/.editorconfig index 15acb560..3bebb418 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# EditorConfig for MediaBrowser.Model +S# EditorConfig for MediaBrowser.Model # https://EditorConfig.org root = true @@ -40,17 +40,22 @@ dotnet_diagnostic.SA1633.severity = none # IDE Rules - Suppress non-critical suggestions dotnet_diagnostic.IDE0008.severity = silent +dotnet_diagnostic.IDE0025.severity = none dotnet_diagnostic.IDE0028.severity = silent +dotnet_diagnostic.IDE0045.severity = none dotnet_diagnostic.IDE0046.severity = silent dotnet_diagnostic.IDE0051.severity = warning +dotnet_diagnostic.IDE0052.severity = none dotnet_diagnostic.IDE0055.severity = warning dotnet_diagnostic.IDE0057.severity = silent dotnet_diagnostic.IDE0058.severity = silent dotnet_diagnostic.IDE0065.severity = none +dotnet_diagnostic.IDE0074.severity = none dotnet_diagnostic.IDE0078.severity = silent dotnet_diagnostic.IDE0090.severity = silent dotnet_diagnostic.IDE0160.severity = silent dotnet_diagnostic.IDE0200.severity = suggestion +dotnet_diagnostic.IDE0270.severity = none dotnet_diagnostic.IDE0290.severity = silent dotnet_diagnostic.IDE0300.severity = silent dotnet_diagnostic.IDE0301.severity = silent @@ -70,3 +75,6 @@ dotnet_diagnostic.CA1310.severity = warning # C# Code Style - Using directive placement csharp_using_directive_placement = outside_namespace:silent + +# SA0001: XML comment analysis is disabled due to project configuration +dotnet_diagnostic.SA0001.severity = none diff --git a/Emby.Server.Implementations/Playlists/PlaylistManager.cs b/Emby.Server.Implementations/Playlists/PlaylistManager.cs index 36a92f94..29dca3d9 100644 --- a/Emby.Server.Implementations/Playlists/PlaylistManager.cs +++ b/Emby.Server.Implementations/Playlists/PlaylistManager.cs @@ -19,7 +19,6 @@ using Jellyfin.Extensions; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Extensions; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.Providers; @@ -65,7 +64,7 @@ namespace Emby.Server.Implementations.Playlists public Playlist GetPlaylistForUser(Guid playlistId, Guid userId) { - return GetPlaylists(userId).Where(p => p.Id.Equals(playlistId)).FirstOrDefault(); + return GetPlaylists(userId).FirstOrDefault(p => p.Id.Equals(playlistId)); } public IEnumerable GetPlaylists(Guid userId) @@ -548,7 +547,7 @@ namespace Emby.Server.Implementations.Playlists ArgumentException.ThrowIfNullOrEmpty(folderPath); ArgumentException.ThrowIfNullOrEmpty(fileAbsolutePath); - if (!folderPath.EndsWith(Path.DirectorySeparatorChar)) + if (!folderPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) { folderPath += Path.DirectorySeparatorChar; } diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs index 4b3ae26b..7b3d5e17 100644 --- a/Emby.Server.Implementations/Plugins/PluginManager.cs +++ b/Emby.Server.Implementations/Plugins/PluginManager.cs @@ -47,8 +47,6 @@ namespace Emby.Server.Implementations.Plugins private readonly List _plugins; private readonly Version _minimumVersion; - private IHttpClientFactory? _httpClientFactory; - /// /// Initializes a new instance of the class. /// @@ -92,10 +90,7 @@ namespace Emby.Server.Implementations.Plugins private IHttpClientFactory HttpClientFactory { - get - { - return _httpClientFactory ??= _appHost.Resolve(); - } + get => field ??= _appHost.Resolve(); } /// @@ -125,7 +120,7 @@ namespace Emby.Server.Implementations.Plugins { UpdatePluginSupersededStatus(plugin); - if (plugin.IsEnabledAndSupported == false) + if (!plugin.IsEnabledAndSupported) { _logger.LogInformation("Skipping disabled plugin {Version} of {Name} ", plugin.Version, plugin.Name); continue; @@ -698,7 +693,7 @@ namespace Emby.Server.Implementations.Plugins targetAbi = _minimumVersion; } - if (!Version.TryParse(manifest.Version, out version)) + if (!Version.TryParse(manifest.Version, out _)) { manifest.Version = _minimumVersion.ToString(); } @@ -710,7 +705,7 @@ namespace Emby.Server.Implementations.Plugins // No metafile, so lets see if the folder is versioned. // TODO: Phase this support out in future versions. metafile = dir.Split(Path.DirectorySeparatorChar, StringSplitOptions.RemoveEmptyEntries)[^1]; - int versionIndex = dir.LastIndexOf('_'); + int versionIndex = dir.LastIndexOf("_", StringComparison.Ordinal); if (versionIndex != -1) { // Get the version number from the filename if possible. diff --git a/Jellyfin.Api/Controllers/UniversalAudioController.cs b/Jellyfin.Api/Controllers/UniversalAudioController.cs index 35273543..4fdafaab 100644 --- a/Jellyfin.Api/Controllers/UniversalAudioController.cs +++ b/Jellyfin.Api/Controllers/UniversalAudioController.cs @@ -105,13 +105,17 @@ public class UniversalAudioController : BaseJellyfinApiController [FromQuery] string? mediaSourceId, [FromQuery] string? deviceId, [FromQuery] Guid? userId, - [FromQuery] [RegularExpression(EncodingHelper.ContainerValidationRegex)] string? audioCodec, + [FromQuery] + [RegularExpression(EncodingHelper.ContainerValidationRegex)] + string? audioCodec, [FromQuery] int? maxAudioChannels, [FromQuery] int? transcodingAudioChannels, [FromQuery] int? maxStreamingBitrate, [FromQuery] int? audioBitRate, [FromQuery] long? startTimeTicks, - [FromQuery] [RegularExpression(EncodingHelper.ContainerValidationRegex)] string? transcodingContainer, + [FromQuery] + [RegularExpression(EncodingHelper.ContainerValidationRegex)] + string? transcodingContainer, [FromQuery] MediaStreamProtocol? transcodingProtocol, [FromQuery] int? maxAudioSampleRate, [FromQuery] int? maxAudioBitDepth, @@ -351,7 +355,7 @@ public class UniversalAudioController : BaseJellyfinApiController { Type = CodecType.Audio, Container = string.Join(',', containers), - Conditions = conditions.ToArray() + Conditions = conditions }); } diff --git a/Jellyfin.Server.Implementations/Activity/ActivityManager.cs b/Jellyfin.Server.Implementations/Activity/ActivityManager.cs index 74390b81..d2c4b694 100644 --- a/Jellyfin.Server.Implementations/Activity/ActivityManager.cs +++ b/Jellyfin.Server.Implementations/Activity/ActivityManager.cs @@ -117,23 +117,25 @@ public class ActivityManager : IActivityManager entries = entries.Where(e => e.ActivityLog.LogSeverity == query.Severity); } + var orderedEntries = await ApplyOrdering(entries, query.OrderBy) + .Skip(query.Skip ?? 0) + .Take(query.Limit ?? 100) + .Select(entity => new ActivityLogEntry(entity.ActivityLog.Name, entity.ActivityLog.Type, entity.ActivityLog.UserId) + { + Id = entity.ActivityLog.Id, + Overview = entity.ActivityLog.Overview, + ShortOverview = entity.ActivityLog.ShortOverview, + ItemId = entity.ActivityLog.ItemId, + Date = entity.ActivityLog.DateCreated, + Severity = entity.ActivityLog.LogSeverity + }) + .ToListAsync() + .ConfigureAwait(false); + return new QueryResult( query.Skip, await entries.CountAsync().ConfigureAwait(false), - await ApplyOrdering(entries, query.OrderBy) - .Skip(query.Skip ?? 0) - .Take(query.Limit ?? 100) - .Select(entity => new ActivityLogEntry(entity.ActivityLog.Name, entity.ActivityLog.Type, entity.ActivityLog.UserId) - { - Id = entity.ActivityLog.Id, - Overview = entity.ActivityLog.Overview, - ShortOverview = entity.ActivityLog.ShortOverview, - ItemId = entity.ActivityLog.ItemId, - Date = entity.ActivityLog.DateCreated, - Severity = entity.ActivityLog.LogSeverity - }) - .ToListAsync() - .ConfigureAwait(false)); + orderedEntries); } } diff --git a/Jellyfin.Server/Helpers/StartupHelpers.cs b/Jellyfin.Server/Helpers/StartupHelpers.cs index d91f7678..ddd06364 100644 --- a/Jellyfin.Server/Helpers/StartupHelpers.cs +++ b/Jellyfin.Server/Helpers/StartupHelpers.cs @@ -165,7 +165,7 @@ public static class StartupHelpers // If $XDG_CACHE_HOME is either not set or a relative path, // a default equal to $HOME/.cache should be used. - if (cacheHome is null || !cacheHome.StartsWith('/')) + if (cacheHome is null || !cacheHome.StartsWith("/", StringComparison.Ordinal)) { cacheHome = Path.Join( Environment.GetFolderPath(Environment.SpecialFolder.UserProfile, Environment.SpecialFolderOption.DoNotVerify), diff --git a/Jellyfin.Server/Jellyfin.Server.csproj b/Jellyfin.Server/Jellyfin.Server.csproj index b8fc0917..d102eca6 100644 --- a/Jellyfin.Server/Jellyfin.Server.csproj +++ b/Jellyfin.Server/Jellyfin.Server.csproj @@ -67,6 +67,7 @@ + diff --git a/Jellyfin.Server/Jellyfin.Server.csproj.user b/Jellyfin.Server/Jellyfin.Server.csproj.user new file mode 100644 index 00000000..d245b4ec --- /dev/null +++ b/Jellyfin.Server/Jellyfin.Server.csproj.user @@ -0,0 +1,6 @@ + + + + E:\Projects\pgsql-jellyfin\Jellyfin.Server\Properties\PublishProfiles\FolderProfile.pubxml + + \ No newline at end of file diff --git a/Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml b/Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 00000000..a80b94cf --- /dev/null +++ b/Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,15 @@ + + + + + false + false + true + Release + Any CPU + FileSystem + E:\Program Files\Jellyfin + FileSystem + <_TargetId>Folder + + \ No newline at end of file diff --git a/Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml.user b/Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml.user new file mode 100644 index 00000000..7ac58fcd --- /dev/null +++ b/Jellyfin.Server/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -0,0 +1,9 @@ + + + + + <_PublishTargetUrl>E:\Program Files\Jellyfin + True|2026-02-22T21:05:05.3412117Z||;True|2026-02-22T15:59:39.7645693-05:00||; + + + \ No newline at end of file diff --git a/Jellyfin.Server/ServerSetupApp/SetupServer.cs b/Jellyfin.Server/ServerSetupApp/SetupServer.cs index fb5ec3a4..c6907848 100644 --- a/Jellyfin.Server/ServerSetupApp/SetupServer.cs +++ b/Jellyfin.Server/ServerSetupApp/SetupServer.cs @@ -118,25 +118,16 @@ public sealed class SetupServer : IDisposable }, "FormatLogLevel") .WithFormatter( - (LogLevel logLevel) => + (LogLevel logLevel) => logLevel switch { - switch (logLevel) - { - case LogLevel.Trace: - case LogLevel.Debug: - case LogLevel.None: - return "success"; - case LogLevel.Information: - return "info"; - case LogLevel.Warning: - return "warn"; - case LogLevel.Error: - return "danger"; - case LogLevel.Critical: - return "danger-strong"; - } - - return string.Empty; + LogLevel.Trace => "success", + LogLevel.Debug => "success", + LogLevel.None => "success", + LogLevel.Information => "info", + LogLevel.Warning => "warn", + LogLevel.Error => "danger", + LogLevel.Critical => "danger-strong", + _ => string.Empty }, "ToString") .BuildAndParseAsync() @@ -167,7 +158,7 @@ public sealed class SetupServer : IDisposable var knownBindInterfaces = NetworkManager.GetInterfacesCore(_loggerFactory.CreateLogger(), config.EnableIPv4, config.EnableIPv6); knownBindInterfaces = NetworkManager.FilterBindSettings(config, knownBindInterfaces.ToList(), config.EnableIPv4, config.EnableIPv6); var bindInterfaces = NetworkManager.GetAllBindInterfaces(false, _configurationManager, knownBindInterfaces, config.EnableIPv4, config.EnableIPv6); - Extensions.WebHostBuilderExtensions.SetupJellyfinWebServer( + Jellyfin.Server.Extensions.WebHostBuilderExtensions.SetupJellyfinWebServer( bindInterfaces, config.InternalHttpPort, null, diff --git a/Jellyfin.Server/obj/Jellyfin.Server.csproj.nuget.dgspec.json b/Jellyfin.Server/obj/Jellyfin.Server.csproj.nuget.dgspec.json index a15f9ea5..7d90e284 100644 --- a/Jellyfin.Server/obj/Jellyfin.Server.csproj.nuget.dgspec.json +++ b/Jellyfin.Server/obj/Jellyfin.Server.csproj.nuget.dgspec.json @@ -3040,6 +3040,9 @@ "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj" + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj" }, @@ -8155,6 +8158,511 @@ } } }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "projectName": "Jellyfin.Database.Providers.Postgres", + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "packagesPath": "C:\\Users\\wjones\\.nuget\\packages\\", + "outputPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\obj\\", + "projectStyle": "PackageReference", + "centralPackageVersionsManagementEnabled": true, + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "E:\\Projects\\pgsql-jellyfin\\NuGet.Config", + "C:\\Users\\wjones\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net11.0" + ], + "sources": { + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "projectReferences": { + "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" + } + } + } + }, + "warningProperties": { + "allWarningsAsErrors": true, + "warnAsError": [ + "NU1605" + ], + "warnNotAsError": [ + "NU1902", + "NU1903" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "11.0.100" + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "dependencies": { + "IDisposableAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.0.8, )", + "versionCentrallyManaged": true + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.14.0, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Relational": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Tools": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[11.0.0-preview.1, )", + "versionCentrallyManaged": true + }, + "SerilogAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[0.15.0, )", + "versionCentrallyManaged": true + }, + "SmartAnalyzers.MultithreadingAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[1.1.31, )", + "versionCentrallyManaged": true + }, + "StyleCop.Analyzers": { + "suppressParent": "All", + "target": "Package", + "version": "[1.2.0-beta.556, )", + "versionCentrallyManaged": true + } + }, + "centralPackageVersions": { + "AsyncKeyedLock": "8.0.2", + "AutoFixture": "4.18.1", + "AutoFixture.AutoMoq": "4.18.1", + "AutoFixture.Xunit2": "4.18.1", + "BDInfo": "0.8.0", + "BitFaster.Caching": "2.5.4", + "BlurHashSharp": "1.4.0-pre.1", + "BlurHashSharp.SkiaSharp": "1.4.0-pre.1", + "CommandLineParser": "2.9.1", + "coverlet.collector": "8.0.0", + "Diacritics": "4.1.4", + "DiscUtils.Udf": "0.16.13", + "DotNet.Glob": "3.1.3", + "FsCheck.Xunit": "3.3.2", + "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.1", + "ICU4N.Transliterator": "60.1.0-alpha.356", + "IDisposableAnalyzers": "4.0.8", + "Ignore": "0.2.1", + "Jellyfin.Sdk": "2025.10.21", + "Jellyfin.XmlTv": "10.8.0", + "libse": "4.0.12", + "LrcParser": "2025.623.0", + "MetaBrainz.MusicBrainz": "8.0.1", + "Microsoft.AspNetCore.Authorization": "11.0.0-preview.1.26104.118", + "Microsoft.AspNetCore.Mvc.Testing": "11.0.0-preview.1.26104.118", + "Microsoft.CodeAnalysis.Analyzers": "3.11.0", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "4.14.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.Data.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Design": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Tools": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Memory": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Binder": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.DependencyInjection": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Hosting.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Http": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Logging": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Options": "11.0.0-preview.1.26104.118", + "Microsoft.NET.Test.Sdk": "18.0.1", + "MimeTypes": "2.5.2", + "Moq": "4.18.4", + "Morestachio": "5.0.1.631", + "NEbml": "1.1.0.5", + "Newtonsoft.Json": "13.0.4", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1", + "PlaylistsNET": "1.4.1", + "Polly": "8.6.5", + "prometheus-net": "8.2.1", + "prometheus-net.AspNetCore": "8.2.1", + "prometheus-net.DotNetRuntime": "4.4.1", + "Serilog.AspNetCore": "10.0.0", + "Serilog.Enrichers.Thread": "4.0.0", + "Serilog.Expressions": "5.0.0", + "Serilog.Settings.Configuration": "10.0.0", + "Serilog.Sinks.Async": "2.1.0", + "Serilog.Sinks.Console": "6.1.1", + "Serilog.Sinks.File": "7.0.0", + "Serilog.Sinks.Graylog": "3.1.1", + "SerilogAnalyzer": "0.15.0", + "SharpFuzz": "2.2.0", + "SkiaSharp": "[3.116.1]", + "SkiaSharp.HarfBuzz": "[3.116.1]", + "SkiaSharp.NativeAssets.Linux": "[3.116.1]", + "SmartAnalyzers.MultithreadingAnalyzer": "1.1.31", + "StyleCop.Analyzers": "1.2.0-beta.556", + "Svg.Skia": "3.4.1", + "Swashbuckle.AspNetCore": "7.3.2", + "Swashbuckle.AspNetCore.ReDoc": "6.9.0", + "System.Text.Json": "11.0.0-preview.1.26104.118", + "TagLibSharp": "2.3.0", + "TMDbLib": "2.3.0", + "UTF.Unknown": "2.6.0", + "xunit": "2.9.3", + "Xunit.Priority": "1.1.6", + "xunit.runner.visualstudio": "2.8.2", + "Xunit.SkippableFact": "1.5.61", + "z440.atl.core": "7.11.0" + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\11.0.100-preview.1.26104.118/PortableRuntimeIdentifierGraph.json", + "packagesToPrune": { + "Microsoft.CSharp": "(,4.7.32767]", + "Microsoft.VisualBasic": "(,10.4.32767]", + "Microsoft.Win32.Primitives": "(,4.3.32767]", + "Microsoft.Win32.Registry": "(,5.0.32767]", + "runtime.any.System.Collections": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.any.System.Globalization": "(,4.3.32767]", + "runtime.any.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.any.System.IO": "(,4.3.32767]", + "runtime.any.System.Reflection": "(,4.3.32767]", + "runtime.any.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.any.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.any.System.Runtime": "(,4.3.32767]", + "runtime.any.System.Runtime.Handles": "(,4.3.32767]", + "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.any.System.Text.Encoding": "(,4.3.32767]", + "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.any.System.Threading.Tasks": "(,4.3.32767]", + "runtime.any.System.Threading.Timer": "(,4.3.32767]", + "runtime.aot.System.Collections": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.aot.System.Globalization": "(,4.3.32767]", + "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.aot.System.IO": "(,4.3.32767]", + "runtime.aot.System.Reflection": "(,4.3.32767]", + "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.aot.System.Runtime": "(,4.3.32767]", + "runtime.aot.System.Runtime.Handles": "(,4.3.32767]", + "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.aot.System.Threading.Tasks": "(,4.3.32767]", + "runtime.aot.System.Threading.Timer": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.unix.System.Console": "(,4.3.32767]", + "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.unix.System.IO.FileSystem": "(,4.3.32767]", + "runtime.unix.System.Net.Primitives": "(,4.3.32767]", + "runtime.unix.System.Net.Sockets": "(,4.3.32767]", + "runtime.unix.System.Private.Uri": "(,4.3.32767]", + "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.win.System.Console": "(,4.3.32767]", + "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.win.System.IO.FileSystem": "(,4.3.32767]", + "runtime.win.System.Net.Primitives": "(,4.3.32767]", + "runtime.win.System.Net.Sockets": "(,4.3.32767]", + "runtime.win.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7.System.Private.Uri": "(,4.3.32767]", + "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]", + "System.AppContext": "(,4.3.32767]", + "System.Buffers": "(,5.0.32767]", + "System.Collections": "(,4.3.32767]", + "System.Collections.Concurrent": "(,4.3.32767]", + "System.Collections.Immutable": "(,11.0.0-preview.1.26104.118]", + "System.Collections.NonGeneric": "(,4.3.32767]", + "System.Collections.Specialized": "(,4.3.32767]", + "System.ComponentModel": "(,4.3.32767]", + "System.ComponentModel.Annotations": "(,5.0.32767]", + "System.ComponentModel.EventBasedAsync": "(,4.3.32767]", + "System.ComponentModel.Primitives": "(,4.3.32767]", + "System.ComponentModel.TypeConverter": "(,4.3.32767]", + "System.Console": "(,4.3.32767]", + "System.Data.Common": "(,4.3.32767]", + "System.Data.DataSetExtensions": "(,4.5.32767]", + "System.Diagnostics.Contracts": "(,4.3.32767]", + "System.Diagnostics.Debug": "(,4.3.32767]", + "System.Diagnostics.DiagnosticSource": "(,11.0.0-preview.1.26104.118]", + "System.Diagnostics.FileVersionInfo": "(,4.3.32767]", + "System.Diagnostics.Process": "(,4.3.32767]", + "System.Diagnostics.StackTrace": "(,4.3.32767]", + "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]", + "System.Diagnostics.Tools": "(,4.3.32767]", + "System.Diagnostics.TraceSource": "(,4.3.32767]", + "System.Diagnostics.Tracing": "(,4.3.32767]", + "System.Drawing.Primitives": "(,4.3.32767]", + "System.Dynamic.Runtime": "(,4.3.32767]", + "System.Formats.Asn1": "(,11.0.0-preview.1.26104.118]", + "System.Formats.Tar": "(,11.0.0-preview.1.26104.118]", + "System.Globalization": "(,4.3.32767]", + "System.Globalization.Calendars": "(,4.3.32767]", + "System.Globalization.Extensions": "(,4.3.32767]", + "System.IO": "(,4.3.32767]", + "System.IO.Compression": "(,4.3.32767]", + "System.IO.Compression.ZipFile": "(,4.3.32767]", + "System.IO.FileSystem": "(,4.3.32767]", + "System.IO.FileSystem.AccessControl": "(,5.0.32767]", + "System.IO.FileSystem.DriveInfo": "(,4.3.32767]", + "System.IO.FileSystem.Primitives": "(,4.3.32767]", + "System.IO.FileSystem.Watcher": "(,4.3.32767]", + "System.IO.IsolatedStorage": "(,4.3.32767]", + "System.IO.MemoryMappedFiles": "(,4.3.32767]", + "System.IO.Pipelines": "(,11.0.0-preview.1.26104.118]", + "System.IO.Pipes": "(,4.3.32767]", + "System.IO.Pipes.AccessControl": "(,5.0.32767]", + "System.IO.UnmanagedMemoryStream": "(,4.3.32767]", + "System.Linq": "(,4.3.32767]", + "System.Linq.AsyncEnumerable": "(,11.0.0-preview.1.26104.118]", + "System.Linq.Expressions": "(,4.3.32767]", + "System.Linq.Parallel": "(,4.3.32767]", + "System.Linq.Queryable": "(,4.3.32767]", + "System.Memory": "(,5.0.32767]", + "System.Net.Http": "(,4.3.32767]", + "System.Net.Http.Json": "(,11.0.0-preview.1.26104.118]", + "System.Net.NameResolution": "(,4.3.32767]", + "System.Net.NetworkInformation": "(,4.3.32767]", + "System.Net.Ping": "(,4.3.32767]", + "System.Net.Primitives": "(,4.3.32767]", + "System.Net.Requests": "(,4.3.32767]", + "System.Net.Security": "(,4.3.32767]", + "System.Net.ServerSentEvents": "(,11.0.0-preview.1.26104.118]", + "System.Net.Sockets": "(,4.3.32767]", + "System.Net.WebHeaderCollection": "(,4.3.32767]", + "System.Net.WebSockets": "(,4.3.32767]", + "System.Net.WebSockets.Client": "(,4.3.32767]", + "System.Numerics.Vectors": "(,5.0.32767]", + "System.ObjectModel": "(,4.3.32767]", + "System.Private.DataContractSerialization": "(,4.3.32767]", + "System.Private.Uri": "(,4.3.32767]", + "System.Reflection": "(,4.3.32767]", + "System.Reflection.DispatchProxy": "(,6.0.32767]", + "System.Reflection.Emit": "(,4.7.32767]", + "System.Reflection.Emit.ILGeneration": "(,4.7.32767]", + "System.Reflection.Emit.Lightweight": "(,4.7.32767]", + "System.Reflection.Extensions": "(,4.3.32767]", + "System.Reflection.Metadata": "(,11.0.0-preview.1.26104.118]", + "System.Reflection.Primitives": "(,4.3.32767]", + "System.Reflection.TypeExtensions": "(,4.7.32767]", + "System.Resources.Reader": "(,4.3.32767]", + "System.Resources.ResourceManager": "(,4.3.32767]", + "System.Resources.Writer": "(,4.3.32767]", + "System.Runtime": "(,4.3.32767]", + "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]", + "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]", + "System.Runtime.Extensions": "(,4.3.32767]", + "System.Runtime.Handles": "(,4.3.32767]", + "System.Runtime.InteropServices": "(,4.3.32767]", + "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]", + "System.Runtime.Loader": "(,4.3.32767]", + "System.Runtime.Numerics": "(,4.3.32767]", + "System.Runtime.Serialization.Formatters": "(,4.3.32767]", + "System.Runtime.Serialization.Json": "(,4.3.32767]", + "System.Runtime.Serialization.Primitives": "(,4.3.32767]", + "System.Runtime.Serialization.Xml": "(,4.3.32767]", + "System.Security.AccessControl": "(,6.0.32767]", + "System.Security.Claims": "(,4.3.32767]", + "System.Security.Cryptography.Algorithms": "(,4.3.32767]", + "System.Security.Cryptography.Cng": "(,5.0.32767]", + "System.Security.Cryptography.Csp": "(,4.3.32767]", + "System.Security.Cryptography.Encoding": "(,4.3.32767]", + "System.Security.Cryptography.OpenSsl": "(,5.0.32767]", + "System.Security.Cryptography.Primitives": "(,4.3.32767]", + "System.Security.Cryptography.X509Certificates": "(,4.3.32767]", + "System.Security.Principal": "(,4.3.32767]", + "System.Security.Principal.Windows": "(,5.0.32767]", + "System.Security.SecureString": "(,4.3.32767]", + "System.Text.Encoding": "(,4.3.32767]", + "System.Text.Encoding.CodePages": "(,11.0.0-preview.1.26104.118]", + "System.Text.Encoding.Extensions": "(,4.3.32767]", + "System.Text.Encodings.Web": "(,11.0.0-preview.1.26104.118]", + "System.Text.Json": "(,11.0.0-preview.1.26104.118]", + "System.Text.RegularExpressions": "(,4.3.32767]", + "System.Threading": "(,4.3.32767]", + "System.Threading.AccessControl": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Channels": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Overlapped": "(,4.3.32767]", + "System.Threading.Tasks": "(,4.3.32767]", + "System.Threading.Tasks.Dataflow": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Tasks.Extensions": "(,5.0.32767]", + "System.Threading.Tasks.Parallel": "(,4.3.32767]", + "System.Threading.Thread": "(,4.3.32767]", + "System.Threading.ThreadPool": "(,4.3.32767]", + "System.Threading.Timer": "(,4.3.32767]", + "System.ValueTuple": "(,4.6.32767]", + "System.Xml.ReaderWriter": "(,4.3.32767]", + "System.Xml.XDocument": "(,4.3.32767]", + "System.Xml.XmlDocument": "(,4.3.32767]", + "System.Xml.XmlSerializer": "(,4.3.32767]", + "System.Xml.XPath": "(,4.3.32767]", + "System.Xml.XPath.XDocument": "(,5.0.32767]" + } + } + } + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj": { "version": "1.0.0", "restore": { diff --git a/Jellyfin.Server/obj/project.assets.json b/Jellyfin.Server/obj/project.assets.json index f3933844..989d4a3b 100644 --- a/Jellyfin.Server/obj/project.assets.json +++ b/Jellyfin.Server/obj/project.assets.json @@ -788,6 +788,37 @@ } } }, + "Npgsql/10.0.0": { + "type": "package", + "compile": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "[11.0.0-preview.1.26104.118]", + "Microsoft.EntityFrameworkCore.Relational": "[11.0.0-preview.1.26104.118]", + "Npgsql": "10.0.0" + }, + "compile": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, "PlaylistsNET/1.4.1": { "type": "package", "compile": { @@ -1783,6 +1814,24 @@ "bin/placeholder/Jellyfin.Database.Implementations.dll": {} } }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v11.0", + "dependencies": { + "Jellyfin.CodeAnalysis": "1.0.0", + "Jellyfin.Common": "10.12.0", + "Jellyfin.Database.Implementations": "10.11.0", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1" + }, + "compile": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + }, + "runtime": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + } + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "framework": ".NETCoreApp,Version=v11.0", @@ -3369,6 +3418,40 @@ "packageIcon.png" ] }, + "Npgsql/10.0.0": { + "sha512": "xZAYhPOU2rUIFpV48xsqhCx9vXs6Y+0jX2LCoSEfDFYMw9jtAOUk3iQsCnDLrFIv9NT3JGMihn7nnuZsPKqJmA==", + "type": "package", + "path": "npgsql/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net10.0/Npgsql.dll", + "lib/net10.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/net9.0/Npgsql.dll", + "lib/net9.0/Npgsql.xml", + "npgsql.10.0.0.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "sha512": "zpg0hmbw7f3B0deg1vENgqfNWuas3lcR6c8D7VNwa7HxNLnnNcXp4ABf5ywUYjZzAJOToCy5UH0VV9rtnxWcKQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/11.0.0-preview.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, "PlaylistsNET/1.4.1": { "sha512": "GmDShQkKK08YJD94rOoWebe3M2QRk6XZkMcPL80ZcRnFs255kifAJt7I9n6mmSlcQc/BRpgiY3jHDIOxIqA/cA==", "type": "package", @@ -4513,6 +4596,11 @@ "path": "../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj", "msbuildProject": "../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj" }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "path": "../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj", + "msbuildProject": "../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj" + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "path": "../src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Jellyfin.Database.Providers.Sqlite.csproj", @@ -4596,6 +4684,7 @@ "IDisposableAnalyzers >= 4.0.8", "Jellyfin.CodeAnalysis >= 1.0.0", "Jellyfin.Database.Implementations >= 10.11.0", + "Jellyfin.Database.Providers.Postgres >= 1.0.0", "Jellyfin.Drawing >= 1.0.0", "Jellyfin.Drawing.Skia >= 1.0.0", "Jellyfin.LiveTv >= 1.0.0", @@ -4666,6 +4755,9 @@ "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj" + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj" }, diff --git a/Jellyfin.Server/obj/project.nuget.cache b/Jellyfin.Server/obj/project.nuget.cache index 19436215..5ea6d0b5 100644 --- a/Jellyfin.Server/obj/project.nuget.cache +++ b/Jellyfin.Server/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "uvfyRwbCsEk=", + "dgSpecHash": "Y6i2IMTmM/8=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server\\Jellyfin.Server.csproj", "expectedPackageFiles": [ @@ -56,6 +56,8 @@ "C:\\Users\\wjones\\.nuget\\packages\\morestachio\\5.0.1.631\\morestachio.5.0.1.631.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\nebml\\1.1.0.5\\nebml.1.1.0.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql\\10.0.0\\npgsql.10.0.0.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\11.0.0-preview.1\\npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\playlistsnet\\1.4.1\\playlistsnet.1.4.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly\\8.6.5\\polly.8.6.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly.core\\8.6.5\\polly.core.8.6.5.nupkg.sha512", diff --git a/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll b/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll index ccddc1ebe6e20b3be14d5b292c931643f3a85577..be5887a1846e6cef9ec51a953a09b1e637391422 100644 GIT binary patch delta 235 zcmZp0X>gg)!BQ?+_-|uRjHm#2Iip?0r$ru9l0GbvZ_Z-c{6lmPlSYbRs##i6vZ0ZY znVE^DL9(S`qD6ADu~CX;nq_K|iE)})vZa|}lKJF25^Gq#&%LvDa*t$yfSdHiJC}Kz zy_QHEm^9^RI^X0slEn&8K`j-iAV_t_=|c6aMDtA@kB*+%TrYK##Xp6?kRg@9j3JF7 zi6I%tHUdI3AT(jHWH11VSOUco87zRTWCmlPTnbPm4Tw{L>P>(mX+X6gRc1hSNet$j Jm&->o0RY}@OO*fs delta 235 zcmZp0X>gg)!D1p?^=@NNjHtlmiq9X{UwY#)Y0ai7`)}w5Z2lp-he^XC+1S9q)Yv%9 z(j?6=$;2eZA~D%4EjiiH%*@=(GR4R|F*z;8&>(s89f>t8uXCS1ncO28AmFI${W|1X zr2oXQC%dyRwd7BJBU!8f6+9mZ6$Gi4k)QW^Yk`NnB#$ru=6b1{EdCY@$qdE}20&;E zq>UNU7%Uk~fTSTq5|B1wNMW#GNCc`e1BxXBp&^iE#$XP_mOwcpAPXd$24ouo%}Cz7 ITt1Qs0CsRrQ2+n{ diff --git a/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb b/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb index e58160bd8cc71b99c2e8b100c3606e8cd1442076..c7bc4613f91eaacb897fc95b9d1f9a5aae094012 100644 GIT binary patch delta 571 zcmV-B0>u5$PwY>Sa3Itq001LGY;R%!002fC(cIGwgG!_rz><{3XAbwB+^vz2t|1R2 z0RY(}0RZ$P0RX2Y000000RX}z00000000000RYOAUjfrA!y_jE1OR3OCjbQiqXkv~ z0|55`b^rqa?g0P+1^|O3AOQvdxg;O~2LQaYT>^;$e;o5LYf;?}TR&hlKEvgd2zi1@ z+0K)0!_wHETwg~4*MWG;V(FgHi zlAY`gWD`jymi_jUYgtZOfi5@CGNMJ zz=WRQe*qKB0?-p6NC-~N(%bBXM}lt@69<2>Qngyv%cfJSMP1iLH)}Ur^aCZ308%Pg zb_63%U@#{F_9nzgMnKaRe{+a{zJ~{P4m5!aNr3H4lPx`Z=vG$ zZl&t|9Xx z0RX)t0RY$|0RW36000000RW~X00000000000RXO(UjfrArz0l-1OQ3{CjbQihXqyu z0|55`b^rqa?g0P+1^{OyAOQvdog^Ru2LPb6T>^;$e@Y-JE!uAfOtWL^w@40wamv01 zE6|>+oGVweO=T@iB7s^B1ONc7lTAwlF%X9DLjS|ilOo-1ZLO_}P%9M$L9FOOJj^DO z?Lan>WLDXKFIlB1e$YcFr%c{?-eH*Jd2g%H*~xP_#aeu?Bu4>-^jVusalhgS%4>o* zjIb6!f6)MfcyF^LUCZYybR|U)50WYkTY?H3P*_I-cFKo9N}!+>zOoO1PQx2p3k8Ao zQGm^wCM){z<_Lk-=B*{1=D+m3?a_30>d3ByWfO&}lkeB;j*KNG?A=L{K4FYh6}CD4 zDadA@Z*yP0plfC#fs0ybw|h<2Hilg`_nKx7e{B;vcK4n)20FuK9WZ6TU@xes%gr$h zw)8+DeuoUQema|DuAK3qYI{NZ2XB9(hW-BGaA>9@GblzQJwY`#N)5*2qw!Q99HBCL z&{vz=-UhF0CEJ_oJ&UF7;r^d&yU&+j|5n=ko8@`UR>Napp=7%VSXSf&l*JgcRQC>o hvwsF&AQYnd0iyu{qaFdHDgmQG0i$05qlA<3Ci|*M<-Py_ diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs index ed5d2290..7c13a0b8 100644 --- a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs +++ b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs @@ -1,6 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -13,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8c300533f94f1b44d8ac6fcc166769d27acfd10c")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d1e6fbc12266490c91a8cc32d9f9eb43f6c961b7")] [assembly: System.Reflection.AssemblyProductAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyTitleAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache index 40530831..d83300e7 100644 --- a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache +++ b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache @@ -1 +1 @@ -6962aa3d5d796665d2b25b34dd7aff91349dcb7e0e8dd2fdad8668462b4f7a34 +02669f7b2e5b29053e97c2c10b763f5f61e0ca0906507b64fdb62c6386f0f64f diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll index ccddc1ebe6e20b3be14d5b292c931643f3a85577..be5887a1846e6cef9ec51a953a09b1e637391422 100644 GIT binary patch delta 235 zcmZp0X>gg)!BQ?+_-|uRjHm#2Iip?0r$ru9l0GbvZ_Z-c{6lmPlSYbRs##i6vZ0ZY znVE^DL9(S`qD6ADu~CX;nq_K|iE)})vZa|}lKJF25^Gq#&%LvDa*t$yfSdHiJC}Kz zy_QHEm^9^RI^X0slEn&8K`j-iAV_t_=|c6aMDtA@kB*+%TrYK##Xp6?kRg@9j3JF7 zi6I%tHUdI3AT(jHWH11VSOUco87zRTWCmlPTnbPm4Tw{L>P>(mX+X6gRc1hSNet$j Jm&->o0RY}@OO*fs delta 235 zcmZp0X>gg)!D1p?^=@NNjHtlmiq9X{UwY#)Y0ai7`)}w5Z2lp-he^XC+1S9q)Yv%9 z(j?6=$;2eZA~D%4EjiiH%*@=(GR4R|F*z;8&>(s89f>t8uXCS1ncO28AmFI${W|1X zr2oXQC%dyRwd7BJBU!8f6+9mZ6$Gi4k)QW^Yk`NnB#$ru=6b1{EdCY@$qdE}20&;E zq>UNU7%Uk~fTSTq5|B1wNMW#GNCc`e1BxXBp&^iE#$XP_mOwcpAPXd$24ouo%}Cz7 ITt1Qs0CsRrQ2+n{ diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb index e58160bd8cc71b99c2e8b100c3606e8cd1442076..c7bc4613f91eaacb897fc95b9d1f9a5aae094012 100644 GIT binary patch delta 571 zcmV-B0>u5$PwY>Sa3Itq001LGY;R%!002fC(cIGwgG!_rz><{3XAbwB+^vz2t|1R2 z0RY(}0RZ$P0RX2Y000000RX}z00000000000RYOAUjfrA!y_jE1OR3OCjbQiqXkv~ z0|55`b^rqa?g0P+1^|O3AOQvdxg;O~2LQaYT>^;$e;o5LYf;?}TR&hlKEvgd2zi1@ z+0K)0!_wHETwg~4*MWG;V(FgHi zlAY`gWD`jymi_jUYgtZOfi5@CGNMJ zz=WRQe*qKB0?-p6NC-~N(%bBXM}lt@69<2>Qngyv%cfJSMP1iLH)}Ur^aCZ308%Pg zb_63%U@#{F_9nzgMnKaRe{+a{zJ~{P4m5!aNr3H4lPx`Z=vG$ zZl&t|9Xx z0RX)t0RY$|0RW36000000RW~X00000000000RXO(UjfrArz0l-1OQ3{CjbQihXqyu z0|55`b^rqa?g0P+1^{OyAOQvdog^Ru2LPb6T>^;$e@Y-JE!uAfOtWL^w@40wamv01 zE6|>+oGVweO=T@iB7s^B1ONc7lTAwlF%X9DLjS|ilOo-1ZLO_}P%9M$L9FOOJj^DO z?Lan>WLDXKFIlB1e$YcFr%c{?-eH*Jd2g%H*~xP_#aeu?Bu4>-^jVusalhgS%4>o* zjIb6!f6)MfcyF^LUCZYybR|U)50WYkTY?H3P*_I-cFKo9N}!+>zOoO1PQx2p3k8Ao zQGm^wCM){z<_Lk-=B*{1=D+m3?a_30>d3ByWfO&}lkeB;j*KNG?A=L{K4FYh6}CD4 zDadA@Z*yP0plfC#fs0ybw|h<2Hilg`_nKx7e{B;vcK4n)20FuK9WZ6TU@xes%gr$h zw)8+DeuoUQema|DuAK3qYI{NZ2XB9(hW-BGaA>9@GblzQJwY`#N)5*2qw!Q99HBCL z&{vz=-UhF0CEJ_oJ&UF7;r^d&yU&+j|5n=ko8@`UR>Napp=7%VSXSf&l*JgcRQC>o hvwsF&AQYnd0iyu{qaFdHDgmQG0i$05qlA<3Ci|*M<-Py_ diff --git a/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs b/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs index 4103da02..be15a0a7 100644 --- a/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs +++ b/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs @@ -53,7 +53,8 @@ namespace Jellyfin.Model.Tests.Cryptography new Dictionary() { { "iterations", "1000" }, - { "m", "120" },`r`n })); + { "m", "120" } + })); // Id + hash data.Add( diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs index 8203284e..187c53ba 100644 --- a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs @@ -29,6 +29,6 @@ namespace Jellyfin.Naming.Tests.AudioBook var info1 = new AudioBookFileInfo(string.Empty, string.Empty); var info2 = new AudioBookFileInfo(string.Empty, string.Empty); Assert.Equal(0, info1.CompareTo(info2)); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs index 6bfc637e..ab807d08 100644 --- a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs @@ -183,7 +183,7 @@ namespace Jellyfin.Naming.Tests.AudioBook { Assert.Equal(data[i].Name, result[i].Name); Assert.Equal(data[i].Year, result[i].Year); - }, + } } [Fact] @@ -271,6 +271,6 @@ namespace Jellyfin.Naming.Tests.AudioBook public string Name; public string Path; public int? Year; - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs index 1715a558..f3fb5958 100644 --- a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs @@ -44,10 +44,10 @@ namespace Jellyfin.Naming.Tests.AudioBook var result = new AudioBookResolver(_namingOptions).Resolve(expectedResult.Path); Assert.NotNull(result); - Assert.Equal(result!.Path, expectedResult.Path); - Assert.Equal(result!.Container, expectedResult.Container); - Assert.Equal(result!.ChapterNumber, expectedResult.ChapterNumber); - Assert.Equal(result!.PartNumber, expectedResult.PartNumber); + Assert.Equal(result.Path, expectedResult.Path); + Assert.Equal(result.Container, expectedResult.Container); + Assert.Equal(result.ChapterNumber, expectedResult.ChapterNumber); + Assert.Equal(result.PartNumber, expectedResult.PartNumber); } [Fact] @@ -64,6 +64,6 @@ namespace Jellyfin.Naming.Tests.AudioBook var result = new AudioBookResolver(_namingOptions).Resolve(string.Empty); Assert.Null(result); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs b/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs index bef3dec5..c9d31a4b 100644 --- a/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs +++ b/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs @@ -32,6 +32,6 @@ namespace Jellyfin.Naming.Tests.Common exp.Expression = "test"; Assert.Equal("test", exp.Expression); Assert.NotNull(exp.Regex); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs b/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs index e1d9a746..b7866675 100644 --- a/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs +++ b/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs @@ -49,6 +49,6 @@ namespace Jellyfin.Naming.Tests.Music var parser = new AlbumParser(_namingOptions); Assert.Equal(result, parser.IsMultiPart(path)); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs index 066d89a1..2fcc77cf 100644 --- a/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs @@ -25,6 +25,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _resolver.Resolve(path, false, null, null, true); Assert.Equal(episodeNumber, result?.EpisodeNumber); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs b/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs index 842df334..cf238076 100644 --- a/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs @@ -31,6 +31,6 @@ namespace Jellyfin.Naming.Tests.TV Assert.Equal(month, result?.Month); Assert.Equal(day, result?.Day); Assert.Equal(seriesName, result?.SeriesName, true); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs index 5876d7f3..dcca11b3 100644 --- a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs @@ -95,6 +95,6 @@ namespace Jellyfin.Naming.Tests.TV .Parse(path, false); Assert.Equal(expected, result.EpisodeNumber); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs index bb6afb15..3f172298 100644 --- a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs @@ -33,6 +33,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _resolver.Resolve(path, false); Assert.Equal(episodeNumber, result?.EpisodeNumber); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs index 7d116703..17041bdb 100644 --- a/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs +++ b/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs @@ -83,7 +83,7 @@ namespace Jellyfin.Naming.Tests.TV { var res = new EpisodeResolver(_namingOptions).Resolve("dvd.disc", false); Assert.NotNull(res); - Assert.True(res!.IsStub); + Assert.True(res.IsStub); } /* @@ -103,6 +103,6 @@ namespace Jellyfin.Naming.Tests.TV var res = p.Parse("ABC_2019_10_21 11:00:00", false); Assert.True(res.Success); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs b/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs index c9777400..5d900458 100644 --- a/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs @@ -78,6 +78,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _episodePathParser.Parse(filename, false); Assert.Equal(result.EndingEpisodeNumber, endingEpisodeNumber); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs index d3d88c74..22d4d9cb 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs @@ -63,6 +63,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _resolver.Resolve(path, false); Assert.Equal(expected, result?.SeasonNumber); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs b/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs index f362f64b..a9e65b52 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs @@ -28,6 +28,6 @@ namespace Jellyfin.Naming.Tests.TV Assert.Equal(name, res.SeriesName); Assert.True(res.Success); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs b/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs index 6c396800..64ad3a30 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs @@ -29,6 +29,6 @@ namespace Jellyfin.Naming.Tests.TV var res = SeriesResolver.Resolve(_namingOptions, path); Assert.Equal(name, res.Name); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs b/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs index 034b0c8c..be3e9550 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs @@ -48,6 +48,6 @@ namespace Jellyfin.Naming.Tests.TV Assert.Null(result!.StubType); Assert.Equal(episodeEndNumber, result!.EndingEpisodeNumber); Assert.False(result!.IsByDate); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs b/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs index 7c263f8b..904f2593 100644 --- a/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs @@ -65,6 +65,6 @@ namespace Jellyfin.Naming.Tests.Video Assert.Equal(expectedName, result.Name, true); Assert.Equal(expectedYear, result.Year); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs b/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs index 33d88104..17e7a777 100644 --- a/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs @@ -52,6 +52,6 @@ namespace Jellyfin.Naming.Tests.Video { Assert.False(VideoResolver.TryCleanString(input, _namingOptions, out var newName)); Assert.True(string.IsNullOrEmpty(newName)); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs b/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs index f9a61d03..a42ebeb0 100644 --- a/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs @@ -166,6 +166,6 @@ namespace Jellyfin.Naming.Tests.Video var res = ExtraRuleResolver.GetExtraInfo("extra.mp4", options); Assert.Equal(rule, res.Rule); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs b/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs index 6b11ccf6..07a453aa 100644 --- a/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs @@ -72,7 +72,7 @@ namespace Jellyfin.Naming.Tests.Video else { Assert.Equal(format3D, result.Format3D, true); - }, - }, + } + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs index fa8ebd60..4c4d3ed9 100644 --- a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs @@ -438,6 +438,6 @@ namespace Jellyfin.Naming.Tests.Video var result = VideoListResolver.Resolve(new List(), _namingOptions).ToList(); Assert.Empty(result); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/StackTests.cs b/tests/Jellyfin.Naming.Tests/Video/StackTests.cs index 61831a3a..c99c5cf0 100644 --- a/tests/Jellyfin.Naming.Tests/Video/StackTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/StackTests.cs @@ -402,6 +402,6 @@ namespace Jellyfin.Naming.Tests.Video { Assert.Equal(fileCount, stack.Files.Count); Assert.Equal(name, stack.Name); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/StubTests.cs b/tests/Jellyfin.Naming.Tests/Video/StubTests.cs index b05b1b1f..3660f5c6 100644 --- a/tests/Jellyfin.Naming.Tests/Video/StubTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/StubTests.cs @@ -51,7 +51,7 @@ namespace Jellyfin.Naming.Tests.Video else { Assert.Null(stubTypeResult); - }, - }, + } + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs b/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs index 618a96ed..553f8ddd 100644 --- a/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs @@ -51,11 +51,11 @@ namespace Jellyfin.Naming.Tests.Video Assert.Equal(11, result.Count); var batman = result.FirstOrDefault(x => string.Equals(x.Name, "Batman", StringComparison.Ordinal)); Assert.NotNull(batman); - Assert.Equal(3, batman!.Files.Count); + Assert.Equal(3, batman.Files.Count); var harry = result.FirstOrDefault(x => string.Equals(x.Name, "Harry Potter and the Deathly Hallows", StringComparison.Ordinal)); Assert.NotNull(harry); - Assert.Equal(4, harry!.Files.Count); + Assert.Equal(4, harry.Files.Count); Assert.False(result[2].ExtraType.HasValue); @@ -416,6 +416,6 @@ namespace Jellyfin.Naming.Tests.Video { var stack = new FileStack(string.Empty, false, Array.Empty()); Assert.False(stack.ContainsFile("XX", true)); - }, + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs b/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs index 723ed299..44669e4d 100644 --- a/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs @@ -12,7 +12,7 @@ namespace Jellyfin.Naming.Tests.Video public class VideoResolverTests { - private static NamingOptions _namingOptions = new NamingOptions(); + private static readonly NamingOptions _namingOptions = new NamingOptions(); public static TheoryData ResolveFile_ValidFileNameTestData() { @@ -151,7 +151,7 @@ namespace Jellyfin.Naming.Tests.Video var result = VideoResolver.ResolveFile(expectedResult.Path, _namingOptions); Assert.NotNull(result); - Assert.Equal(result!.Path, expectedResult.Path); + Assert.Equal(result.Path, expectedResult.Path); Assert.Equal(result.Container, expectedResult.Container); Assert.Equal(result.Name, expectedResult.Name); Assert.Equal(result.Year, expectedResult.Year); @@ -192,7 +192,7 @@ namespace Jellyfin.Naming.Tests.Video foreach (var result in results) { Assert.Null(result?.Container); - }, - }, + } + } } -} \ No newline at end of file +} diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/AudioResolverTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/AudioResolverTests.cs index 8edfaa84..d66db835 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Library/AudioResolverTests.cs +++ b/tests/Jellyfin.Server.Implementations.Tests/Library/AudioResolverTests.cs @@ -4,6 +4,7 @@ namespace Jellyfin.Server.Implementations.Tests.Library; +using System; using System.Linq; using Emby.Naming.Common; using Emby.Server.Implementations.Library.Resolvers.Audio; @@ -59,7 +60,7 @@ public class AudioResolverTests var childrenMetadata = children.Select(name => new FileSystemMetadata { FullName = parent + "/" + name, - IsDirectory = name.EndsWith('/') + IsDirectory = name.EndsWith("/", StringComparison.OrdinalIgnoreCase) }).ToArray(); var resolver = new AudioResolver(_namingOptions); diff --git a/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.dgspec.json b/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.dgspec.json index f0292a81..bc811650 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.dgspec.json +++ b/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.dgspec.json @@ -3040,6 +3040,9 @@ "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj" + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj" }, @@ -8155,6 +8158,511 @@ } } }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "projectName": "Jellyfin.Database.Providers.Postgres", + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "packagesPath": "C:\\Users\\wjones\\.nuget\\packages\\", + "outputPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\obj\\", + "projectStyle": "PackageReference", + "centralPackageVersionsManagementEnabled": true, + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "E:\\Projects\\pgsql-jellyfin\\NuGet.Config", + "C:\\Users\\wjones\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net11.0" + ], + "sources": { + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "projectReferences": { + "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" + } + } + } + }, + "warningProperties": { + "allWarningsAsErrors": true, + "warnAsError": [ + "NU1605" + ], + "warnNotAsError": [ + "NU1902", + "NU1903" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "11.0.100" + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "dependencies": { + "IDisposableAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.0.8, )", + "versionCentrallyManaged": true + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.14.0, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Relational": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Tools": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[11.0.0-preview.1, )", + "versionCentrallyManaged": true + }, + "SerilogAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[0.15.0, )", + "versionCentrallyManaged": true + }, + "SmartAnalyzers.MultithreadingAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[1.1.31, )", + "versionCentrallyManaged": true + }, + "StyleCop.Analyzers": { + "suppressParent": "All", + "target": "Package", + "version": "[1.2.0-beta.556, )", + "versionCentrallyManaged": true + } + }, + "centralPackageVersions": { + "AsyncKeyedLock": "8.0.2", + "AutoFixture": "4.18.1", + "AutoFixture.AutoMoq": "4.18.1", + "AutoFixture.Xunit2": "4.18.1", + "BDInfo": "0.8.0", + "BitFaster.Caching": "2.5.4", + "BlurHashSharp": "1.4.0-pre.1", + "BlurHashSharp.SkiaSharp": "1.4.0-pre.1", + "CommandLineParser": "2.9.1", + "coverlet.collector": "8.0.0", + "Diacritics": "4.1.4", + "DiscUtils.Udf": "0.16.13", + "DotNet.Glob": "3.1.3", + "FsCheck.Xunit": "3.3.2", + "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.1", + "ICU4N.Transliterator": "60.1.0-alpha.356", + "IDisposableAnalyzers": "4.0.8", + "Ignore": "0.2.1", + "Jellyfin.Sdk": "2025.10.21", + "Jellyfin.XmlTv": "10.8.0", + "libse": "4.0.12", + "LrcParser": "2025.623.0", + "MetaBrainz.MusicBrainz": "8.0.1", + "Microsoft.AspNetCore.Authorization": "11.0.0-preview.1.26104.118", + "Microsoft.AspNetCore.Mvc.Testing": "11.0.0-preview.1.26104.118", + "Microsoft.CodeAnalysis.Analyzers": "3.11.0", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "4.14.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.Data.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Design": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Tools": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Memory": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Binder": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.DependencyInjection": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Hosting.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Http": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Logging": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Options": "11.0.0-preview.1.26104.118", + "Microsoft.NET.Test.Sdk": "18.0.1", + "MimeTypes": "2.5.2", + "Moq": "4.18.4", + "Morestachio": "5.0.1.631", + "NEbml": "1.1.0.5", + "Newtonsoft.Json": "13.0.4", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1", + "PlaylistsNET": "1.4.1", + "Polly": "8.6.5", + "prometheus-net": "8.2.1", + "prometheus-net.AspNetCore": "8.2.1", + "prometheus-net.DotNetRuntime": "4.4.1", + "Serilog.AspNetCore": "10.0.0", + "Serilog.Enrichers.Thread": "4.0.0", + "Serilog.Expressions": "5.0.0", + "Serilog.Settings.Configuration": "10.0.0", + "Serilog.Sinks.Async": "2.1.0", + "Serilog.Sinks.Console": "6.1.1", + "Serilog.Sinks.File": "7.0.0", + "Serilog.Sinks.Graylog": "3.1.1", + "SerilogAnalyzer": "0.15.0", + "SharpFuzz": "2.2.0", + "SkiaSharp": "[3.116.1]", + "SkiaSharp.HarfBuzz": "[3.116.1]", + "SkiaSharp.NativeAssets.Linux": "[3.116.1]", + "SmartAnalyzers.MultithreadingAnalyzer": "1.1.31", + "StyleCop.Analyzers": "1.2.0-beta.556", + "Svg.Skia": "3.4.1", + "Swashbuckle.AspNetCore": "7.3.2", + "Swashbuckle.AspNetCore.ReDoc": "6.9.0", + "System.Text.Json": "11.0.0-preview.1.26104.118", + "TagLibSharp": "2.3.0", + "TMDbLib": "2.3.0", + "UTF.Unknown": "2.6.0", + "xunit": "2.9.3", + "Xunit.Priority": "1.1.6", + "xunit.runner.visualstudio": "2.8.2", + "Xunit.SkippableFact": "1.5.61", + "z440.atl.core": "7.11.0" + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\11.0.100-preview.1.26104.118/PortableRuntimeIdentifierGraph.json", + "packagesToPrune": { + "Microsoft.CSharp": "(,4.7.32767]", + "Microsoft.VisualBasic": "(,10.4.32767]", + "Microsoft.Win32.Primitives": "(,4.3.32767]", + "Microsoft.Win32.Registry": "(,5.0.32767]", + "runtime.any.System.Collections": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.any.System.Globalization": "(,4.3.32767]", + "runtime.any.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.any.System.IO": "(,4.3.32767]", + "runtime.any.System.Reflection": "(,4.3.32767]", + "runtime.any.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.any.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.any.System.Runtime": "(,4.3.32767]", + "runtime.any.System.Runtime.Handles": "(,4.3.32767]", + "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.any.System.Text.Encoding": "(,4.3.32767]", + "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.any.System.Threading.Tasks": "(,4.3.32767]", + "runtime.any.System.Threading.Timer": "(,4.3.32767]", + "runtime.aot.System.Collections": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.aot.System.Globalization": "(,4.3.32767]", + "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.aot.System.IO": "(,4.3.32767]", + "runtime.aot.System.Reflection": "(,4.3.32767]", + "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.aot.System.Runtime": "(,4.3.32767]", + "runtime.aot.System.Runtime.Handles": "(,4.3.32767]", + "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.aot.System.Threading.Tasks": "(,4.3.32767]", + "runtime.aot.System.Threading.Timer": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.unix.System.Console": "(,4.3.32767]", + "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.unix.System.IO.FileSystem": "(,4.3.32767]", + "runtime.unix.System.Net.Primitives": "(,4.3.32767]", + "runtime.unix.System.Net.Sockets": "(,4.3.32767]", + "runtime.unix.System.Private.Uri": "(,4.3.32767]", + "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.win.System.Console": "(,4.3.32767]", + "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.win.System.IO.FileSystem": "(,4.3.32767]", + "runtime.win.System.Net.Primitives": "(,4.3.32767]", + "runtime.win.System.Net.Sockets": "(,4.3.32767]", + "runtime.win.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7.System.Private.Uri": "(,4.3.32767]", + "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]", + "System.AppContext": "(,4.3.32767]", + "System.Buffers": "(,5.0.32767]", + "System.Collections": "(,4.3.32767]", + "System.Collections.Concurrent": "(,4.3.32767]", + "System.Collections.Immutable": "(,11.0.0-preview.1.26104.118]", + "System.Collections.NonGeneric": "(,4.3.32767]", + "System.Collections.Specialized": "(,4.3.32767]", + "System.ComponentModel": "(,4.3.32767]", + "System.ComponentModel.Annotations": "(,5.0.32767]", + "System.ComponentModel.EventBasedAsync": "(,4.3.32767]", + "System.ComponentModel.Primitives": "(,4.3.32767]", + "System.ComponentModel.TypeConverter": "(,4.3.32767]", + "System.Console": "(,4.3.32767]", + "System.Data.Common": "(,4.3.32767]", + "System.Data.DataSetExtensions": "(,4.5.32767]", + "System.Diagnostics.Contracts": "(,4.3.32767]", + "System.Diagnostics.Debug": "(,4.3.32767]", + "System.Diagnostics.DiagnosticSource": "(,11.0.0-preview.1.26104.118]", + "System.Diagnostics.FileVersionInfo": "(,4.3.32767]", + "System.Diagnostics.Process": "(,4.3.32767]", + "System.Diagnostics.StackTrace": "(,4.3.32767]", + "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]", + "System.Diagnostics.Tools": "(,4.3.32767]", + "System.Diagnostics.TraceSource": "(,4.3.32767]", + "System.Diagnostics.Tracing": "(,4.3.32767]", + "System.Drawing.Primitives": "(,4.3.32767]", + "System.Dynamic.Runtime": "(,4.3.32767]", + "System.Formats.Asn1": "(,11.0.0-preview.1.26104.118]", + "System.Formats.Tar": "(,11.0.0-preview.1.26104.118]", + "System.Globalization": "(,4.3.32767]", + "System.Globalization.Calendars": "(,4.3.32767]", + "System.Globalization.Extensions": "(,4.3.32767]", + "System.IO": "(,4.3.32767]", + "System.IO.Compression": "(,4.3.32767]", + "System.IO.Compression.ZipFile": "(,4.3.32767]", + "System.IO.FileSystem": "(,4.3.32767]", + "System.IO.FileSystem.AccessControl": "(,5.0.32767]", + "System.IO.FileSystem.DriveInfo": "(,4.3.32767]", + "System.IO.FileSystem.Primitives": "(,4.3.32767]", + "System.IO.FileSystem.Watcher": "(,4.3.32767]", + "System.IO.IsolatedStorage": "(,4.3.32767]", + "System.IO.MemoryMappedFiles": "(,4.3.32767]", + "System.IO.Pipelines": "(,11.0.0-preview.1.26104.118]", + "System.IO.Pipes": "(,4.3.32767]", + "System.IO.Pipes.AccessControl": "(,5.0.32767]", + "System.IO.UnmanagedMemoryStream": "(,4.3.32767]", + "System.Linq": "(,4.3.32767]", + "System.Linq.AsyncEnumerable": "(,11.0.0-preview.1.26104.118]", + "System.Linq.Expressions": "(,4.3.32767]", + "System.Linq.Parallel": "(,4.3.32767]", + "System.Linq.Queryable": "(,4.3.32767]", + "System.Memory": "(,5.0.32767]", + "System.Net.Http": "(,4.3.32767]", + "System.Net.Http.Json": "(,11.0.0-preview.1.26104.118]", + "System.Net.NameResolution": "(,4.3.32767]", + "System.Net.NetworkInformation": "(,4.3.32767]", + "System.Net.Ping": "(,4.3.32767]", + "System.Net.Primitives": "(,4.3.32767]", + "System.Net.Requests": "(,4.3.32767]", + "System.Net.Security": "(,4.3.32767]", + "System.Net.ServerSentEvents": "(,11.0.0-preview.1.26104.118]", + "System.Net.Sockets": "(,4.3.32767]", + "System.Net.WebHeaderCollection": "(,4.3.32767]", + "System.Net.WebSockets": "(,4.3.32767]", + "System.Net.WebSockets.Client": "(,4.3.32767]", + "System.Numerics.Vectors": "(,5.0.32767]", + "System.ObjectModel": "(,4.3.32767]", + "System.Private.DataContractSerialization": "(,4.3.32767]", + "System.Private.Uri": "(,4.3.32767]", + "System.Reflection": "(,4.3.32767]", + "System.Reflection.DispatchProxy": "(,6.0.32767]", + "System.Reflection.Emit": "(,4.7.32767]", + "System.Reflection.Emit.ILGeneration": "(,4.7.32767]", + "System.Reflection.Emit.Lightweight": "(,4.7.32767]", + "System.Reflection.Extensions": "(,4.3.32767]", + "System.Reflection.Metadata": "(,11.0.0-preview.1.26104.118]", + "System.Reflection.Primitives": "(,4.3.32767]", + "System.Reflection.TypeExtensions": "(,4.7.32767]", + "System.Resources.Reader": "(,4.3.32767]", + "System.Resources.ResourceManager": "(,4.3.32767]", + "System.Resources.Writer": "(,4.3.32767]", + "System.Runtime": "(,4.3.32767]", + "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]", + "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]", + "System.Runtime.Extensions": "(,4.3.32767]", + "System.Runtime.Handles": "(,4.3.32767]", + "System.Runtime.InteropServices": "(,4.3.32767]", + "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]", + "System.Runtime.Loader": "(,4.3.32767]", + "System.Runtime.Numerics": "(,4.3.32767]", + "System.Runtime.Serialization.Formatters": "(,4.3.32767]", + "System.Runtime.Serialization.Json": "(,4.3.32767]", + "System.Runtime.Serialization.Primitives": "(,4.3.32767]", + "System.Runtime.Serialization.Xml": "(,4.3.32767]", + "System.Security.AccessControl": "(,6.0.32767]", + "System.Security.Claims": "(,4.3.32767]", + "System.Security.Cryptography.Algorithms": "(,4.3.32767]", + "System.Security.Cryptography.Cng": "(,5.0.32767]", + "System.Security.Cryptography.Csp": "(,4.3.32767]", + "System.Security.Cryptography.Encoding": "(,4.3.32767]", + "System.Security.Cryptography.OpenSsl": "(,5.0.32767]", + "System.Security.Cryptography.Primitives": "(,4.3.32767]", + "System.Security.Cryptography.X509Certificates": "(,4.3.32767]", + "System.Security.Principal": "(,4.3.32767]", + "System.Security.Principal.Windows": "(,5.0.32767]", + "System.Security.SecureString": "(,4.3.32767]", + "System.Text.Encoding": "(,4.3.32767]", + "System.Text.Encoding.CodePages": "(,11.0.0-preview.1.26104.118]", + "System.Text.Encoding.Extensions": "(,4.3.32767]", + "System.Text.Encodings.Web": "(,11.0.0-preview.1.26104.118]", + "System.Text.Json": "(,11.0.0-preview.1.26104.118]", + "System.Text.RegularExpressions": "(,4.3.32767]", + "System.Threading": "(,4.3.32767]", + "System.Threading.AccessControl": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Channels": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Overlapped": "(,4.3.32767]", + "System.Threading.Tasks": "(,4.3.32767]", + "System.Threading.Tasks.Dataflow": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Tasks.Extensions": "(,5.0.32767]", + "System.Threading.Tasks.Parallel": "(,4.3.32767]", + "System.Threading.Thread": "(,4.3.32767]", + "System.Threading.ThreadPool": "(,4.3.32767]", + "System.Threading.Timer": "(,4.3.32767]", + "System.ValueTuple": "(,4.6.32767]", + "System.Xml.ReaderWriter": "(,4.3.32767]", + "System.Xml.XDocument": "(,4.3.32767]", + "System.Xml.XmlDocument": "(,4.3.32767]", + "System.Xml.XmlSerializer": "(,4.3.32767]", + "System.Xml.XPath": "(,4.3.32767]", + "System.Xml.XPath.XDocument": "(,5.0.32767]" + } + } + } + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj": { "version": "1.0.0", "restore": { diff --git a/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.g.props b/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.g.props index 5a144c8f..1e14e769 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.g.props +++ b/tests/Jellyfin.Server.Implementations.Tests/obj/Jellyfin.Server.Implementations.Tests.csproj.nuget.g.props @@ -16,11 +16,11 @@ + - diff --git a/tests/Jellyfin.Server.Implementations.Tests/obj/project.assets.json b/tests/Jellyfin.Server.Implementations.Tests/obj/project.assets.json index 96ca60c2..2bfd6aa3 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/obj/project.assets.json +++ b/tests/Jellyfin.Server.Implementations.Tests/obj/project.assets.json @@ -1949,6 +1949,40 @@ } } }, + "Npgsql/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.0" + }, + "compile": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "[11.0.0-preview.1.26104.118]", + "Microsoft.EntityFrameworkCore.Relational": "[11.0.0-preview.1.26104.118]", + "Npgsql": "10.0.0" + }, + "compile": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, "PlaylistsNET/1.4.1": { "type": "package", "compile": { @@ -3033,6 +3067,7 @@ "Emby.Server.Implementations": "1.0.0", "Jellyfin.CodeAnalysis": "1.0.0", "Jellyfin.Database.Implementations": "10.11.0", + "Jellyfin.Database.Providers.Postgres": "1.0.0", "Jellyfin.Drawing": "1.0.0", "Jellyfin.Drawing.Skia": "1.0.0", "Jellyfin.LiveTv": "1.0.0", @@ -3166,6 +3201,24 @@ "bin/placeholder/Jellyfin.Database.Implementations.dll": {} } }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v11.0", + "dependencies": { + "Jellyfin.CodeAnalysis": "1.0.0", + "Jellyfin.Common": "10.12.0", + "Jellyfin.Database.Implementations": "10.11.0", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1" + }, + "compile": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + }, + "runtime": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + } + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "framework": ".NETCoreApp,Version=v11.0", @@ -6285,6 +6338,40 @@ "packageIcon.png" ] }, + "Npgsql/10.0.0": { + "sha512": "xZAYhPOU2rUIFpV48xsqhCx9vXs6Y+0jX2LCoSEfDFYMw9jtAOUk3iQsCnDLrFIv9NT3JGMihn7nnuZsPKqJmA==", + "type": "package", + "path": "npgsql/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net10.0/Npgsql.dll", + "lib/net10.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/net9.0/Npgsql.dll", + "lib/net9.0/Npgsql.xml", + "npgsql.10.0.0.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "sha512": "zpg0hmbw7f3B0deg1vENgqfNWuas3lcR6c8D7VNwa7HxNLnnNcXp4ABf5ywUYjZzAJOToCy5UH0VV9rtnxWcKQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/11.0.0-preview.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, "PlaylistsNET/1.4.1": { "sha512": "GmDShQkKK08YJD94rOoWebe3M2QRk6XZkMcPL80ZcRnFs255kifAJt7I9n6mmSlcQc/BRpgiY3jHDIOxIqA/cA==", "type": "package", @@ -7667,6 +7754,11 @@ "path": "../../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj", "msbuildProject": "../../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj" }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "path": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj", + "msbuildProject": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj" + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "path": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Jellyfin.Database.Providers.Sqlite.csproj", diff --git a/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache b/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache index fb9302aa..051dd071 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "SB6n8FaqhDk=", + "dgSpecHash": "skyqcPUFzNM=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Implementations.Tests\\Jellyfin.Server.Implementations.Tests.csproj", "expectedPackageFiles": [ @@ -105,6 +105,8 @@ "C:\\Users\\wjones\\.nuget\\packages\\nebml\\1.1.0.5\\nebml.1.1.0.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql\\10.0.0\\npgsql.10.0.0.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\11.0.0-preview.1\\npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\playlistsnet\\1.4.1\\playlistsnet.1.4.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly\\8.6.5\\polly.8.6.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly.core\\8.6.5\\polly.core.8.6.5.nupkg.sha512", diff --git a/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.dgspec.json b/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.dgspec.json index 5757cbc8..6e025828 100644 --- a/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.dgspec.json +++ b/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.dgspec.json @@ -3040,6 +3040,9 @@ "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj" + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj" }, @@ -8155,6 +8158,511 @@ } } }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "projectName": "Jellyfin.Database.Providers.Postgres", + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "packagesPath": "C:\\Users\\wjones\\.nuget\\packages\\", + "outputPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\obj\\", + "projectStyle": "PackageReference", + "centralPackageVersionsManagementEnabled": true, + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "E:\\Projects\\pgsql-jellyfin\\NuGet.Config", + "C:\\Users\\wjones\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net11.0" + ], + "sources": { + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "projectReferences": { + "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" + } + } + } + }, + "warningProperties": { + "allWarningsAsErrors": true, + "warnAsError": [ + "NU1605" + ], + "warnNotAsError": [ + "NU1902", + "NU1903" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "11.0.100" + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "dependencies": { + "IDisposableAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.0.8, )", + "versionCentrallyManaged": true + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.14.0, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Relational": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Tools": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[11.0.0-preview.1, )", + "versionCentrallyManaged": true + }, + "SerilogAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[0.15.0, )", + "versionCentrallyManaged": true + }, + "SmartAnalyzers.MultithreadingAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[1.1.31, )", + "versionCentrallyManaged": true + }, + "StyleCop.Analyzers": { + "suppressParent": "All", + "target": "Package", + "version": "[1.2.0-beta.556, )", + "versionCentrallyManaged": true + } + }, + "centralPackageVersions": { + "AsyncKeyedLock": "8.0.2", + "AutoFixture": "4.18.1", + "AutoFixture.AutoMoq": "4.18.1", + "AutoFixture.Xunit2": "4.18.1", + "BDInfo": "0.8.0", + "BitFaster.Caching": "2.5.4", + "BlurHashSharp": "1.4.0-pre.1", + "BlurHashSharp.SkiaSharp": "1.4.0-pre.1", + "CommandLineParser": "2.9.1", + "coverlet.collector": "8.0.0", + "Diacritics": "4.1.4", + "DiscUtils.Udf": "0.16.13", + "DotNet.Glob": "3.1.3", + "FsCheck.Xunit": "3.3.2", + "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.1", + "ICU4N.Transliterator": "60.1.0-alpha.356", + "IDisposableAnalyzers": "4.0.8", + "Ignore": "0.2.1", + "Jellyfin.Sdk": "2025.10.21", + "Jellyfin.XmlTv": "10.8.0", + "libse": "4.0.12", + "LrcParser": "2025.623.0", + "MetaBrainz.MusicBrainz": "8.0.1", + "Microsoft.AspNetCore.Authorization": "11.0.0-preview.1.26104.118", + "Microsoft.AspNetCore.Mvc.Testing": "11.0.0-preview.1.26104.118", + "Microsoft.CodeAnalysis.Analyzers": "3.11.0", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "4.14.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.Data.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Design": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Tools": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Memory": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Binder": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.DependencyInjection": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Hosting.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Http": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Logging": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Options": "11.0.0-preview.1.26104.118", + "Microsoft.NET.Test.Sdk": "18.0.1", + "MimeTypes": "2.5.2", + "Moq": "4.18.4", + "Morestachio": "5.0.1.631", + "NEbml": "1.1.0.5", + "Newtonsoft.Json": "13.0.4", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1", + "PlaylistsNET": "1.4.1", + "Polly": "8.6.5", + "prometheus-net": "8.2.1", + "prometheus-net.AspNetCore": "8.2.1", + "prometheus-net.DotNetRuntime": "4.4.1", + "Serilog.AspNetCore": "10.0.0", + "Serilog.Enrichers.Thread": "4.0.0", + "Serilog.Expressions": "5.0.0", + "Serilog.Settings.Configuration": "10.0.0", + "Serilog.Sinks.Async": "2.1.0", + "Serilog.Sinks.Console": "6.1.1", + "Serilog.Sinks.File": "7.0.0", + "Serilog.Sinks.Graylog": "3.1.1", + "SerilogAnalyzer": "0.15.0", + "SharpFuzz": "2.2.0", + "SkiaSharp": "[3.116.1]", + "SkiaSharp.HarfBuzz": "[3.116.1]", + "SkiaSharp.NativeAssets.Linux": "[3.116.1]", + "SmartAnalyzers.MultithreadingAnalyzer": "1.1.31", + "StyleCop.Analyzers": "1.2.0-beta.556", + "Svg.Skia": "3.4.1", + "Swashbuckle.AspNetCore": "7.3.2", + "Swashbuckle.AspNetCore.ReDoc": "6.9.0", + "System.Text.Json": "11.0.0-preview.1.26104.118", + "TagLibSharp": "2.3.0", + "TMDbLib": "2.3.0", + "UTF.Unknown": "2.6.0", + "xunit": "2.9.3", + "Xunit.Priority": "1.1.6", + "xunit.runner.visualstudio": "2.8.2", + "Xunit.SkippableFact": "1.5.61", + "z440.atl.core": "7.11.0" + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\11.0.100-preview.1.26104.118/PortableRuntimeIdentifierGraph.json", + "packagesToPrune": { + "Microsoft.CSharp": "(,4.7.32767]", + "Microsoft.VisualBasic": "(,10.4.32767]", + "Microsoft.Win32.Primitives": "(,4.3.32767]", + "Microsoft.Win32.Registry": "(,5.0.32767]", + "runtime.any.System.Collections": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.any.System.Globalization": "(,4.3.32767]", + "runtime.any.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.any.System.IO": "(,4.3.32767]", + "runtime.any.System.Reflection": "(,4.3.32767]", + "runtime.any.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.any.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.any.System.Runtime": "(,4.3.32767]", + "runtime.any.System.Runtime.Handles": "(,4.3.32767]", + "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.any.System.Text.Encoding": "(,4.3.32767]", + "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.any.System.Threading.Tasks": "(,4.3.32767]", + "runtime.any.System.Threading.Timer": "(,4.3.32767]", + "runtime.aot.System.Collections": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.aot.System.Globalization": "(,4.3.32767]", + "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.aot.System.IO": "(,4.3.32767]", + "runtime.aot.System.Reflection": "(,4.3.32767]", + "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.aot.System.Runtime": "(,4.3.32767]", + "runtime.aot.System.Runtime.Handles": "(,4.3.32767]", + "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.aot.System.Threading.Tasks": "(,4.3.32767]", + "runtime.aot.System.Threading.Timer": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.unix.System.Console": "(,4.3.32767]", + "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.unix.System.IO.FileSystem": "(,4.3.32767]", + "runtime.unix.System.Net.Primitives": "(,4.3.32767]", + "runtime.unix.System.Net.Sockets": "(,4.3.32767]", + "runtime.unix.System.Private.Uri": "(,4.3.32767]", + "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.win.System.Console": "(,4.3.32767]", + "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.win.System.IO.FileSystem": "(,4.3.32767]", + "runtime.win.System.Net.Primitives": "(,4.3.32767]", + "runtime.win.System.Net.Sockets": "(,4.3.32767]", + "runtime.win.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7.System.Private.Uri": "(,4.3.32767]", + "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]", + "System.AppContext": "(,4.3.32767]", + "System.Buffers": "(,5.0.32767]", + "System.Collections": "(,4.3.32767]", + "System.Collections.Concurrent": "(,4.3.32767]", + "System.Collections.Immutable": "(,11.0.0-preview.1.26104.118]", + "System.Collections.NonGeneric": "(,4.3.32767]", + "System.Collections.Specialized": "(,4.3.32767]", + "System.ComponentModel": "(,4.3.32767]", + "System.ComponentModel.Annotations": "(,5.0.32767]", + "System.ComponentModel.EventBasedAsync": "(,4.3.32767]", + "System.ComponentModel.Primitives": "(,4.3.32767]", + "System.ComponentModel.TypeConverter": "(,4.3.32767]", + "System.Console": "(,4.3.32767]", + "System.Data.Common": "(,4.3.32767]", + "System.Data.DataSetExtensions": "(,4.5.32767]", + "System.Diagnostics.Contracts": "(,4.3.32767]", + "System.Diagnostics.Debug": "(,4.3.32767]", + "System.Diagnostics.DiagnosticSource": "(,11.0.0-preview.1.26104.118]", + "System.Diagnostics.FileVersionInfo": "(,4.3.32767]", + "System.Diagnostics.Process": "(,4.3.32767]", + "System.Diagnostics.StackTrace": "(,4.3.32767]", + "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]", + "System.Diagnostics.Tools": "(,4.3.32767]", + "System.Diagnostics.TraceSource": "(,4.3.32767]", + "System.Diagnostics.Tracing": "(,4.3.32767]", + "System.Drawing.Primitives": "(,4.3.32767]", + "System.Dynamic.Runtime": "(,4.3.32767]", + "System.Formats.Asn1": "(,11.0.0-preview.1.26104.118]", + "System.Formats.Tar": "(,11.0.0-preview.1.26104.118]", + "System.Globalization": "(,4.3.32767]", + "System.Globalization.Calendars": "(,4.3.32767]", + "System.Globalization.Extensions": "(,4.3.32767]", + "System.IO": "(,4.3.32767]", + "System.IO.Compression": "(,4.3.32767]", + "System.IO.Compression.ZipFile": "(,4.3.32767]", + "System.IO.FileSystem": "(,4.3.32767]", + "System.IO.FileSystem.AccessControl": "(,5.0.32767]", + "System.IO.FileSystem.DriveInfo": "(,4.3.32767]", + "System.IO.FileSystem.Primitives": "(,4.3.32767]", + "System.IO.FileSystem.Watcher": "(,4.3.32767]", + "System.IO.IsolatedStorage": "(,4.3.32767]", + "System.IO.MemoryMappedFiles": "(,4.3.32767]", + "System.IO.Pipelines": "(,11.0.0-preview.1.26104.118]", + "System.IO.Pipes": "(,4.3.32767]", + "System.IO.Pipes.AccessControl": "(,5.0.32767]", + "System.IO.UnmanagedMemoryStream": "(,4.3.32767]", + "System.Linq": "(,4.3.32767]", + "System.Linq.AsyncEnumerable": "(,11.0.0-preview.1.26104.118]", + "System.Linq.Expressions": "(,4.3.32767]", + "System.Linq.Parallel": "(,4.3.32767]", + "System.Linq.Queryable": "(,4.3.32767]", + "System.Memory": "(,5.0.32767]", + "System.Net.Http": "(,4.3.32767]", + "System.Net.Http.Json": "(,11.0.0-preview.1.26104.118]", + "System.Net.NameResolution": "(,4.3.32767]", + "System.Net.NetworkInformation": "(,4.3.32767]", + "System.Net.Ping": "(,4.3.32767]", + "System.Net.Primitives": "(,4.3.32767]", + "System.Net.Requests": "(,4.3.32767]", + "System.Net.Security": "(,4.3.32767]", + "System.Net.ServerSentEvents": "(,11.0.0-preview.1.26104.118]", + "System.Net.Sockets": "(,4.3.32767]", + "System.Net.WebHeaderCollection": "(,4.3.32767]", + "System.Net.WebSockets": "(,4.3.32767]", + "System.Net.WebSockets.Client": "(,4.3.32767]", + "System.Numerics.Vectors": "(,5.0.32767]", + "System.ObjectModel": "(,4.3.32767]", + "System.Private.DataContractSerialization": "(,4.3.32767]", + "System.Private.Uri": "(,4.3.32767]", + "System.Reflection": "(,4.3.32767]", + "System.Reflection.DispatchProxy": "(,6.0.32767]", + "System.Reflection.Emit": "(,4.7.32767]", + "System.Reflection.Emit.ILGeneration": "(,4.7.32767]", + "System.Reflection.Emit.Lightweight": "(,4.7.32767]", + "System.Reflection.Extensions": "(,4.3.32767]", + "System.Reflection.Metadata": "(,11.0.0-preview.1.26104.118]", + "System.Reflection.Primitives": "(,4.3.32767]", + "System.Reflection.TypeExtensions": "(,4.7.32767]", + "System.Resources.Reader": "(,4.3.32767]", + "System.Resources.ResourceManager": "(,4.3.32767]", + "System.Resources.Writer": "(,4.3.32767]", + "System.Runtime": "(,4.3.32767]", + "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]", + "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]", + "System.Runtime.Extensions": "(,4.3.32767]", + "System.Runtime.Handles": "(,4.3.32767]", + "System.Runtime.InteropServices": "(,4.3.32767]", + "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]", + "System.Runtime.Loader": "(,4.3.32767]", + "System.Runtime.Numerics": "(,4.3.32767]", + "System.Runtime.Serialization.Formatters": "(,4.3.32767]", + "System.Runtime.Serialization.Json": "(,4.3.32767]", + "System.Runtime.Serialization.Primitives": "(,4.3.32767]", + "System.Runtime.Serialization.Xml": "(,4.3.32767]", + "System.Security.AccessControl": "(,6.0.32767]", + "System.Security.Claims": "(,4.3.32767]", + "System.Security.Cryptography.Algorithms": "(,4.3.32767]", + "System.Security.Cryptography.Cng": "(,5.0.32767]", + "System.Security.Cryptography.Csp": "(,4.3.32767]", + "System.Security.Cryptography.Encoding": "(,4.3.32767]", + "System.Security.Cryptography.OpenSsl": "(,5.0.32767]", + "System.Security.Cryptography.Primitives": "(,4.3.32767]", + "System.Security.Cryptography.X509Certificates": "(,4.3.32767]", + "System.Security.Principal": "(,4.3.32767]", + "System.Security.Principal.Windows": "(,5.0.32767]", + "System.Security.SecureString": "(,4.3.32767]", + "System.Text.Encoding": "(,4.3.32767]", + "System.Text.Encoding.CodePages": "(,11.0.0-preview.1.26104.118]", + "System.Text.Encoding.Extensions": "(,4.3.32767]", + "System.Text.Encodings.Web": "(,11.0.0-preview.1.26104.118]", + "System.Text.Json": "(,11.0.0-preview.1.26104.118]", + "System.Text.RegularExpressions": "(,4.3.32767]", + "System.Threading": "(,4.3.32767]", + "System.Threading.AccessControl": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Channels": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Overlapped": "(,4.3.32767]", + "System.Threading.Tasks": "(,4.3.32767]", + "System.Threading.Tasks.Dataflow": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Tasks.Extensions": "(,5.0.32767]", + "System.Threading.Tasks.Parallel": "(,4.3.32767]", + "System.Threading.Thread": "(,4.3.32767]", + "System.Threading.ThreadPool": "(,4.3.32767]", + "System.Threading.Timer": "(,4.3.32767]", + "System.ValueTuple": "(,4.6.32767]", + "System.Xml.ReaderWriter": "(,4.3.32767]", + "System.Xml.XDocument": "(,4.3.32767]", + "System.Xml.XmlDocument": "(,4.3.32767]", + "System.Xml.XmlSerializer": "(,4.3.32767]", + "System.Xml.XPath": "(,4.3.32767]", + "System.Xml.XPath.XDocument": "(,5.0.32767]" + } + } + } + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj": { "version": "1.0.0", "restore": { diff --git a/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.g.props b/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.g.props index 5a144c8f..1e14e769 100644 --- a/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.g.props +++ b/tests/Jellyfin.Server.Integration.Tests/obj/Jellyfin.Server.Integration.Tests.csproj.nuget.g.props @@ -16,11 +16,11 @@ + - diff --git a/tests/Jellyfin.Server.Integration.Tests/obj/project.assets.json b/tests/Jellyfin.Server.Integration.Tests/obj/project.assets.json index caff5bee..b8c68331 100644 --- a/tests/Jellyfin.Server.Integration.Tests/obj/project.assets.json +++ b/tests/Jellyfin.Server.Integration.Tests/obj/project.assets.json @@ -1949,6 +1949,40 @@ } } }, + "Npgsql/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.0" + }, + "compile": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "[11.0.0-preview.1.26104.118]", + "Microsoft.EntityFrameworkCore.Relational": "[11.0.0-preview.1.26104.118]", + "Npgsql": "10.0.0" + }, + "compile": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, "PlaylistsNET/1.4.1": { "type": "package", "compile": { @@ -3003,6 +3037,7 @@ "Emby.Server.Implementations": "1.0.0", "Jellyfin.CodeAnalysis": "1.0.0", "Jellyfin.Database.Implementations": "10.11.0", + "Jellyfin.Database.Providers.Postgres": "1.0.0", "Jellyfin.Drawing": "1.0.0", "Jellyfin.Drawing.Skia": "1.0.0", "Jellyfin.LiveTv": "1.0.0", @@ -3136,6 +3171,24 @@ "bin/placeholder/Jellyfin.Database.Implementations.dll": {} } }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v11.0", + "dependencies": { + "Jellyfin.CodeAnalysis": "1.0.0", + "Jellyfin.Common": "10.12.0", + "Jellyfin.Database.Implementations": "10.11.0", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1" + }, + "compile": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + }, + "runtime": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + } + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "framework": ".NETCoreApp,Version=v11.0", @@ -6231,6 +6284,40 @@ "packageIcon.png" ] }, + "Npgsql/10.0.0": { + "sha512": "xZAYhPOU2rUIFpV48xsqhCx9vXs6Y+0jX2LCoSEfDFYMw9jtAOUk3iQsCnDLrFIv9NT3JGMihn7nnuZsPKqJmA==", + "type": "package", + "path": "npgsql/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net10.0/Npgsql.dll", + "lib/net10.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/net9.0/Npgsql.dll", + "lib/net9.0/Npgsql.xml", + "npgsql.10.0.0.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "sha512": "zpg0hmbw7f3B0deg1vENgqfNWuas3lcR6c8D7VNwa7HxNLnnNcXp4ABf5ywUYjZzAJOToCy5UH0VV9rtnxWcKQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/11.0.0-preview.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, "PlaylistsNET/1.4.1": { "sha512": "GmDShQkKK08YJD94rOoWebe3M2QRk6XZkMcPL80ZcRnFs255kifAJt7I9n6mmSlcQc/BRpgiY3jHDIOxIqA/cA==", "type": "package", @@ -7574,6 +7661,11 @@ "path": "../../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj", "msbuildProject": "../../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj" }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "path": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj", + "msbuildProject": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj" + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "path": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Jellyfin.Database.Providers.Sqlite.csproj", diff --git a/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache b/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache index 3bd82b26..1eb938d4 100644 --- a/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "F/F7p6QhWSM=", + "dgSpecHash": "HfzlLngu7HE=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Integration.Tests\\Jellyfin.Server.Integration.Tests.csproj", "expectedPackageFiles": [ @@ -105,6 +105,8 @@ "C:\\Users\\wjones\\.nuget\\packages\\nebml\\1.1.0.5\\nebml.1.1.0.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql\\10.0.0\\npgsql.10.0.0.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\11.0.0-preview.1\\npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\playlistsnet\\1.4.1\\playlistsnet.1.4.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly\\8.6.5\\polly.8.6.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly.core\\8.6.5\\polly.core.8.6.5.nupkg.sha512", diff --git a/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.dgspec.json b/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.dgspec.json index 559688f3..a19213eb 100644 --- a/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.dgspec.json +++ b/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.dgspec.json @@ -3040,6 +3040,9 @@ "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj" + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj": { "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj" }, @@ -8155,6 +8158,511 @@ } } }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "projectName": "Jellyfin.Database.Providers.Postgres", + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\Jellyfin.Database.Providers.Postgres.csproj", + "packagesPath": "C:\\Users\\wjones\\.nuget\\packages\\", + "outputPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Postgres\\obj\\", + "projectStyle": "PackageReference", + "centralPackageVersionsManagementEnabled": true, + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "E:\\Projects\\pgsql-jellyfin\\NuGet.Config", + "C:\\Users\\wjones\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net11.0" + ], + "sources": { + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "projectReferences": { + "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj" + }, + "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": { + "projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj" + } + } + } + }, + "warningProperties": { + "allWarningsAsErrors": true, + "warnAsError": [ + "NU1605" + ], + "warnNotAsError": [ + "NU1902", + "NU1903" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "11.0.100" + }, + "frameworks": { + "net11.0": { + "targetAlias": "net11.0", + "dependencies": { + "IDisposableAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.0.8, )", + "versionCentrallyManaged": true + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers", + "suppressParent": "All", + "target": "Package", + "version": "[4.14.0, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Design": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Relational": { + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Microsoft.EntityFrameworkCore.Tools": { + "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", + "suppressParent": "All", + "target": "Package", + "version": "[11.0.0-preview.1.26104.118, )", + "versionCentrallyManaged": true + }, + "Npgsql.EntityFrameworkCore.PostgreSQL": { + "target": "Package", + "version": "[11.0.0-preview.1, )", + "versionCentrallyManaged": true + }, + "SerilogAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[0.15.0, )", + "versionCentrallyManaged": true + }, + "SmartAnalyzers.MultithreadingAnalyzer": { + "suppressParent": "All", + "target": "Package", + "version": "[1.1.31, )", + "versionCentrallyManaged": true + }, + "StyleCop.Analyzers": { + "suppressParent": "All", + "target": "Package", + "version": "[1.2.0-beta.556, )", + "versionCentrallyManaged": true + } + }, + "centralPackageVersions": { + "AsyncKeyedLock": "8.0.2", + "AutoFixture": "4.18.1", + "AutoFixture.AutoMoq": "4.18.1", + "AutoFixture.Xunit2": "4.18.1", + "BDInfo": "0.8.0", + "BitFaster.Caching": "2.5.4", + "BlurHashSharp": "1.4.0-pre.1", + "BlurHashSharp.SkiaSharp": "1.4.0-pre.1", + "CommandLineParser": "2.9.1", + "coverlet.collector": "8.0.0", + "Diacritics": "4.1.4", + "DiscUtils.Udf": "0.16.13", + "DotNet.Glob": "3.1.3", + "FsCheck.Xunit": "3.3.2", + "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.1", + "ICU4N.Transliterator": "60.1.0-alpha.356", + "IDisposableAnalyzers": "4.0.8", + "Ignore": "0.2.1", + "Jellyfin.Sdk": "2025.10.21", + "Jellyfin.XmlTv": "10.8.0", + "libse": "4.0.12", + "LrcParser": "2025.623.0", + "MetaBrainz.MusicBrainz": "8.0.1", + "Microsoft.AspNetCore.Authorization": "11.0.0-preview.1.26104.118", + "Microsoft.AspNetCore.Mvc.Testing": "11.0.0-preview.1.26104.118", + "Microsoft.CodeAnalysis.Analyzers": "3.11.0", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "4.14.0", + "Microsoft.CodeAnalysis.Common": "5.0.0", + "Microsoft.CodeAnalysis.CSharp": "5.0.0", + "Microsoft.Data.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Design": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Sqlite": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Tools": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Caching.Memory": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Configuration.Binder": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.DependencyInjection": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Hosting.Abstractions": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Http": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Logging": "11.0.0-preview.1.26104.118", + "Microsoft.Extensions.Options": "11.0.0-preview.1.26104.118", + "Microsoft.NET.Test.Sdk": "18.0.1", + "MimeTypes": "2.5.2", + "Moq": "4.18.4", + "Morestachio": "5.0.1.631", + "NEbml": "1.1.0.5", + "Newtonsoft.Json": "13.0.4", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1", + "PlaylistsNET": "1.4.1", + "Polly": "8.6.5", + "prometheus-net": "8.2.1", + "prometheus-net.AspNetCore": "8.2.1", + "prometheus-net.DotNetRuntime": "4.4.1", + "Serilog.AspNetCore": "10.0.0", + "Serilog.Enrichers.Thread": "4.0.0", + "Serilog.Expressions": "5.0.0", + "Serilog.Settings.Configuration": "10.0.0", + "Serilog.Sinks.Async": "2.1.0", + "Serilog.Sinks.Console": "6.1.1", + "Serilog.Sinks.File": "7.0.0", + "Serilog.Sinks.Graylog": "3.1.1", + "SerilogAnalyzer": "0.15.0", + "SharpFuzz": "2.2.0", + "SkiaSharp": "[3.116.1]", + "SkiaSharp.HarfBuzz": "[3.116.1]", + "SkiaSharp.NativeAssets.Linux": "[3.116.1]", + "SmartAnalyzers.MultithreadingAnalyzer": "1.1.31", + "StyleCop.Analyzers": "1.2.0-beta.556", + "Svg.Skia": "3.4.1", + "Swashbuckle.AspNetCore": "7.3.2", + "Swashbuckle.AspNetCore.ReDoc": "6.9.0", + "System.Text.Json": "11.0.0-preview.1.26104.118", + "TagLibSharp": "2.3.0", + "TMDbLib": "2.3.0", + "UTF.Unknown": "2.6.0", + "xunit": "2.9.3", + "Xunit.Priority": "1.1.6", + "xunit.runner.visualstudio": "2.8.2", + "Xunit.SkippableFact": "1.5.61", + "z440.atl.core": "7.11.0" + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\11.0.100-preview.1.26104.118/PortableRuntimeIdentifierGraph.json", + "packagesToPrune": { + "Microsoft.CSharp": "(,4.7.32767]", + "Microsoft.VisualBasic": "(,10.4.32767]", + "Microsoft.Win32.Primitives": "(,4.3.32767]", + "Microsoft.Win32.Registry": "(,5.0.32767]", + "runtime.any.System.Collections": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.any.System.Globalization": "(,4.3.32767]", + "runtime.any.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.any.System.IO": "(,4.3.32767]", + "runtime.any.System.Reflection": "(,4.3.32767]", + "runtime.any.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.any.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.any.System.Runtime": "(,4.3.32767]", + "runtime.any.System.Runtime.Handles": "(,4.3.32767]", + "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.any.System.Text.Encoding": "(,4.3.32767]", + "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.any.System.Threading.Tasks": "(,4.3.32767]", + "runtime.any.System.Threading.Timer": "(,4.3.32767]", + "runtime.aot.System.Collections": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]", + "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]", + "runtime.aot.System.Globalization": "(,4.3.32767]", + "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]", + "runtime.aot.System.IO": "(,4.3.32767]", + "runtime.aot.System.Reflection": "(,4.3.32767]", + "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]", + "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]", + "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]", + "runtime.aot.System.Runtime": "(,4.3.32767]", + "runtime.aot.System.Runtime.Handles": "(,4.3.32767]", + "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding": "(,4.3.32767]", + "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]", + "runtime.aot.System.Threading.Tasks": "(,4.3.32767]", + "runtime.aot.System.Threading.Timer": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]", + "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]", + "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.unix.System.Console": "(,4.3.32767]", + "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.unix.System.IO.FileSystem": "(,4.3.32767]", + "runtime.unix.System.Net.Primitives": "(,4.3.32767]", + "runtime.unix.System.Net.Sockets": "(,4.3.32767]", + "runtime.unix.System.Private.Uri": "(,4.3.32767]", + "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]", + "runtime.win.System.Console": "(,4.3.32767]", + "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]", + "runtime.win.System.IO.FileSystem": "(,4.3.32767]", + "runtime.win.System.Net.Primitives": "(,4.3.32767]", + "runtime.win.System.Net.Sockets": "(,4.3.32767]", + "runtime.win.System.Runtime.Extensions": "(,4.3.32767]", + "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]", + "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]", + "runtime.win7.System.Private.Uri": "(,4.3.32767]", + "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]", + "System.AppContext": "(,4.3.32767]", + "System.Buffers": "(,5.0.32767]", + "System.Collections": "(,4.3.32767]", + "System.Collections.Concurrent": "(,4.3.32767]", + "System.Collections.Immutable": "(,11.0.0-preview.1.26104.118]", + "System.Collections.NonGeneric": "(,4.3.32767]", + "System.Collections.Specialized": "(,4.3.32767]", + "System.ComponentModel": "(,4.3.32767]", + "System.ComponentModel.Annotations": "(,5.0.32767]", + "System.ComponentModel.EventBasedAsync": "(,4.3.32767]", + "System.ComponentModel.Primitives": "(,4.3.32767]", + "System.ComponentModel.TypeConverter": "(,4.3.32767]", + "System.Console": "(,4.3.32767]", + "System.Data.Common": "(,4.3.32767]", + "System.Data.DataSetExtensions": "(,4.5.32767]", + "System.Diagnostics.Contracts": "(,4.3.32767]", + "System.Diagnostics.Debug": "(,4.3.32767]", + "System.Diagnostics.DiagnosticSource": "(,11.0.0-preview.1.26104.118]", + "System.Diagnostics.FileVersionInfo": "(,4.3.32767]", + "System.Diagnostics.Process": "(,4.3.32767]", + "System.Diagnostics.StackTrace": "(,4.3.32767]", + "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]", + "System.Diagnostics.Tools": "(,4.3.32767]", + "System.Diagnostics.TraceSource": "(,4.3.32767]", + "System.Diagnostics.Tracing": "(,4.3.32767]", + "System.Drawing.Primitives": "(,4.3.32767]", + "System.Dynamic.Runtime": "(,4.3.32767]", + "System.Formats.Asn1": "(,11.0.0-preview.1.26104.118]", + "System.Formats.Tar": "(,11.0.0-preview.1.26104.118]", + "System.Globalization": "(,4.3.32767]", + "System.Globalization.Calendars": "(,4.3.32767]", + "System.Globalization.Extensions": "(,4.3.32767]", + "System.IO": "(,4.3.32767]", + "System.IO.Compression": "(,4.3.32767]", + "System.IO.Compression.ZipFile": "(,4.3.32767]", + "System.IO.FileSystem": "(,4.3.32767]", + "System.IO.FileSystem.AccessControl": "(,5.0.32767]", + "System.IO.FileSystem.DriveInfo": "(,4.3.32767]", + "System.IO.FileSystem.Primitives": "(,4.3.32767]", + "System.IO.FileSystem.Watcher": "(,4.3.32767]", + "System.IO.IsolatedStorage": "(,4.3.32767]", + "System.IO.MemoryMappedFiles": "(,4.3.32767]", + "System.IO.Pipelines": "(,11.0.0-preview.1.26104.118]", + "System.IO.Pipes": "(,4.3.32767]", + "System.IO.Pipes.AccessControl": "(,5.0.32767]", + "System.IO.UnmanagedMemoryStream": "(,4.3.32767]", + "System.Linq": "(,4.3.32767]", + "System.Linq.AsyncEnumerable": "(,11.0.0-preview.1.26104.118]", + "System.Linq.Expressions": "(,4.3.32767]", + "System.Linq.Parallel": "(,4.3.32767]", + "System.Linq.Queryable": "(,4.3.32767]", + "System.Memory": "(,5.0.32767]", + "System.Net.Http": "(,4.3.32767]", + "System.Net.Http.Json": "(,11.0.0-preview.1.26104.118]", + "System.Net.NameResolution": "(,4.3.32767]", + "System.Net.NetworkInformation": "(,4.3.32767]", + "System.Net.Ping": "(,4.3.32767]", + "System.Net.Primitives": "(,4.3.32767]", + "System.Net.Requests": "(,4.3.32767]", + "System.Net.Security": "(,4.3.32767]", + "System.Net.ServerSentEvents": "(,11.0.0-preview.1.26104.118]", + "System.Net.Sockets": "(,4.3.32767]", + "System.Net.WebHeaderCollection": "(,4.3.32767]", + "System.Net.WebSockets": "(,4.3.32767]", + "System.Net.WebSockets.Client": "(,4.3.32767]", + "System.Numerics.Vectors": "(,5.0.32767]", + "System.ObjectModel": "(,4.3.32767]", + "System.Private.DataContractSerialization": "(,4.3.32767]", + "System.Private.Uri": "(,4.3.32767]", + "System.Reflection": "(,4.3.32767]", + "System.Reflection.DispatchProxy": "(,6.0.32767]", + "System.Reflection.Emit": "(,4.7.32767]", + "System.Reflection.Emit.ILGeneration": "(,4.7.32767]", + "System.Reflection.Emit.Lightweight": "(,4.7.32767]", + "System.Reflection.Extensions": "(,4.3.32767]", + "System.Reflection.Metadata": "(,11.0.0-preview.1.26104.118]", + "System.Reflection.Primitives": "(,4.3.32767]", + "System.Reflection.TypeExtensions": "(,4.7.32767]", + "System.Resources.Reader": "(,4.3.32767]", + "System.Resources.ResourceManager": "(,4.3.32767]", + "System.Resources.Writer": "(,4.3.32767]", + "System.Runtime": "(,4.3.32767]", + "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]", + "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]", + "System.Runtime.Extensions": "(,4.3.32767]", + "System.Runtime.Handles": "(,4.3.32767]", + "System.Runtime.InteropServices": "(,4.3.32767]", + "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]", + "System.Runtime.Loader": "(,4.3.32767]", + "System.Runtime.Numerics": "(,4.3.32767]", + "System.Runtime.Serialization.Formatters": "(,4.3.32767]", + "System.Runtime.Serialization.Json": "(,4.3.32767]", + "System.Runtime.Serialization.Primitives": "(,4.3.32767]", + "System.Runtime.Serialization.Xml": "(,4.3.32767]", + "System.Security.AccessControl": "(,6.0.32767]", + "System.Security.Claims": "(,4.3.32767]", + "System.Security.Cryptography.Algorithms": "(,4.3.32767]", + "System.Security.Cryptography.Cng": "(,5.0.32767]", + "System.Security.Cryptography.Csp": "(,4.3.32767]", + "System.Security.Cryptography.Encoding": "(,4.3.32767]", + "System.Security.Cryptography.OpenSsl": "(,5.0.32767]", + "System.Security.Cryptography.Primitives": "(,4.3.32767]", + "System.Security.Cryptography.X509Certificates": "(,4.3.32767]", + "System.Security.Principal": "(,4.3.32767]", + "System.Security.Principal.Windows": "(,5.0.32767]", + "System.Security.SecureString": "(,4.3.32767]", + "System.Text.Encoding": "(,4.3.32767]", + "System.Text.Encoding.CodePages": "(,11.0.0-preview.1.26104.118]", + "System.Text.Encoding.Extensions": "(,4.3.32767]", + "System.Text.Encodings.Web": "(,11.0.0-preview.1.26104.118]", + "System.Text.Json": "(,11.0.0-preview.1.26104.118]", + "System.Text.RegularExpressions": "(,4.3.32767]", + "System.Threading": "(,4.3.32767]", + "System.Threading.AccessControl": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Channels": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Overlapped": "(,4.3.32767]", + "System.Threading.Tasks": "(,4.3.32767]", + "System.Threading.Tasks.Dataflow": "(,11.0.0-preview.1.26104.118]", + "System.Threading.Tasks.Extensions": "(,5.0.32767]", + "System.Threading.Tasks.Parallel": "(,4.3.32767]", + "System.Threading.Thread": "(,4.3.32767]", + "System.Threading.ThreadPool": "(,4.3.32767]", + "System.Threading.Timer": "(,4.3.32767]", + "System.ValueTuple": "(,4.6.32767]", + "System.Xml.ReaderWriter": "(,4.3.32767]", + "System.Xml.XDocument": "(,4.3.32767]", + "System.Xml.XmlDocument": "(,4.3.32767]", + "System.Xml.XmlSerializer": "(,4.3.32767]", + "System.Xml.XPath": "(,4.3.32767]", + "System.Xml.XPath.XDocument": "(,5.0.32767]" + } + } + } + }, "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj": { "version": "1.0.0", "restore": { diff --git a/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.g.props b/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.g.props index 5a144c8f..1e14e769 100644 --- a/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.g.props +++ b/tests/Jellyfin.Server.Tests/obj/Jellyfin.Server.Tests.csproj.nuget.g.props @@ -16,11 +16,11 @@ + - diff --git a/tests/Jellyfin.Server.Tests/obj/project.assets.json b/tests/Jellyfin.Server.Tests/obj/project.assets.json index 25b493f1..c77dc761 100644 --- a/tests/Jellyfin.Server.Tests/obj/project.assets.json +++ b/tests/Jellyfin.Server.Tests/obj/project.assets.json @@ -1949,6 +1949,40 @@ } } }, + "Npgsql/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.0" + }, + "compile": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net10.0/Npgsql.dll": { + "related": ".xml" + } + } + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "[11.0.0-preview.1.26104.118]", + "Microsoft.EntityFrameworkCore.Relational": "[11.0.0-preview.1.26104.118]", + "Npgsql": "10.0.0" + }, + "compile": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": { + "related": ".xml" + } + } + }, "PlaylistsNET/1.4.1": { "type": "package", "compile": { @@ -2987,6 +3021,7 @@ "Emby.Server.Implementations": "1.0.0", "Jellyfin.CodeAnalysis": "1.0.0", "Jellyfin.Database.Implementations": "10.11.0", + "Jellyfin.Database.Providers.Postgres": "1.0.0", "Jellyfin.Drawing": "1.0.0", "Jellyfin.Drawing.Skia": "1.0.0", "Jellyfin.LiveTv": "1.0.0", @@ -3120,6 +3155,24 @@ "bin/placeholder/Jellyfin.Database.Implementations.dll": {} } }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v11.0", + "dependencies": { + "Jellyfin.CodeAnalysis": "1.0.0", + "Jellyfin.Common": "10.12.0", + "Jellyfin.Database.Implementations": "10.11.0", + "Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118", + "Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118", + "Npgsql.EntityFrameworkCore.PostgreSQL": "11.0.0-preview.1" + }, + "compile": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + }, + "runtime": { + "bin/placeholder/Jellyfin.Database.Providers.Postgres.dll": {} + } + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "framework": ".NETCoreApp,Version=v11.0", @@ -6215,6 +6268,40 @@ "packageIcon.png" ] }, + "Npgsql/10.0.0": { + "sha512": "xZAYhPOU2rUIFpV48xsqhCx9vXs6Y+0jX2LCoSEfDFYMw9jtAOUk3iQsCnDLrFIv9NT3JGMihn7nnuZsPKqJmA==", + "type": "package", + "path": "npgsql/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net10.0/Npgsql.dll", + "lib/net10.0/Npgsql.xml", + "lib/net8.0/Npgsql.dll", + "lib/net8.0/Npgsql.xml", + "lib/net9.0/Npgsql.dll", + "lib/net9.0/Npgsql.xml", + "npgsql.10.0.0.nupkg.sha512", + "npgsql.nuspec", + "postgresql.png" + ] + }, + "Npgsql.EntityFrameworkCore.PostgreSQL/11.0.0-preview.1": { + "sha512": "zpg0hmbw7f3B0deg1vENgqfNWuas3lcR6c8D7VNwa7HxNLnnNcXp4ABf5ywUYjZzAJOToCy5UH0VV9rtnxWcKQ==", + "type": "package", + "path": "npgsql.entityframeworkcore.postgresql/11.0.0-preview.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll", + "lib/net11.0/Npgsql.EntityFrameworkCore.PostgreSQL.xml", + "npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", + "npgsql.entityframeworkcore.postgresql.nuspec", + "postgresql.png" + ] + }, "PlaylistsNET/1.4.1": { "sha512": "GmDShQkKK08YJD94rOoWebe3M2QRk6XZkMcPL80ZcRnFs255kifAJt7I9n6mmSlcQc/BRpgiY3jHDIOxIqA/cA==", "type": "package", @@ -7541,6 +7628,11 @@ "path": "../../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj", "msbuildProject": "../../src/Jellyfin.Database/Jellyfin.Database.Implementations/Jellyfin.Database.Implementations.csproj" }, + "Jellyfin.Database.Providers.Postgres/1.0.0": { + "type": "project", + "path": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj", + "msbuildProject": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Postgres/Jellyfin.Database.Providers.Postgres.csproj" + }, "Jellyfin.Database.Providers.Sqlite/1.0.0": { "type": "project", "path": "../../src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Jellyfin.Database.Providers.Sqlite.csproj", diff --git a/tests/Jellyfin.Server.Tests/obj/project.nuget.cache b/tests/Jellyfin.Server.Tests/obj/project.nuget.cache index 9ad57761..18d8bd16 100644 --- a/tests/Jellyfin.Server.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Server.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "W1tIaEHAq1A=", + "dgSpecHash": "662zqpYGu0A=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Tests\\Jellyfin.Server.Tests.csproj", "expectedPackageFiles": [ @@ -105,6 +105,8 @@ "C:\\Users\\wjones\\.nuget\\packages\\nebml\\1.1.0.5\\nebml.1.1.0.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql\\10.0.0\\npgsql.10.0.0.nupkg.sha512", + "C:\\Users\\wjones\\.nuget\\packages\\npgsql.entityframeworkcore.postgresql\\11.0.0-preview.1\\npgsql.entityframeworkcore.postgresql.11.0.0-preview.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\playlistsnet\\1.4.1\\playlistsnet.1.4.1.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly\\8.6.5\\polly.8.6.5.nupkg.sha512", "C:\\Users\\wjones\\.nuget\\packages\\polly.core\\8.6.5\\polly.core.8.6.5.nupkg.sha512",