Enhance modularity and add comprehensive XML documentation

Refactored the codebase to introduce new modular assemblies, including Jellyfin.CodeAnalysis, Jellyfin.Data, Jellyfin.Database.Implementations, and Jellyfin.Extensions, along with their debug symbols and detailed XML documentation files. Added GlobalSuppressions.cs to formalize code style rules. Updated build outputs for MediaBrowser.Common and MediaBrowser.Model, and included dependency manifests. These changes significantly improve API documentation, enforce code style standards, and support a more modular project structure. No functional code changes were made.
This commit is contained in:
2026-02-20 16:32:02 -05:00
parent af1152b001
commit 86e41f4f6f
70 changed files with 20272 additions and 3 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+14
View File
@@ -0,0 +1,14 @@
// <copyright file="GlobalSuppressions.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1101:PrefixLocalCallsWithThis", Justification = "Project style preference", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented", Justification = "Documentation provided via CS1591 pragma", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.NamingRules", "SA1309:FieldNamesMustNotBeginWithUnderscore", Justification = "Project style preference for private fields", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1200:UsingDirectivesMustBePlacedCorrectly", Justification = "Using directives placed outside namespace per project style", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:ElementsMustBeOrderedByAccess", Justification = "Project style preference", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1128:ConstructorInitializerMustBeOnOwnLine", Justification = "Project style preference", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1108:BlockStatementsMustNotContainEmbeddedComments", Justification = "Project style preference", Scope = "module")]
[assembly: SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1413:UseTrailingCommasInMultiLineInitializers", Justification = "Project style preference", Scope = "module")]
@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Jellyfin.CodeAnalysis</name>
</assembly>
<members>
<member name="T:Jellyfin.CodeAnalysis.AsyncDisposalPatternAnalyzer">
<summary>
Analyzer to detect sync disposal of async-created IAsyncDisposable objects.
</summary>
</member>
<member name="F:Jellyfin.CodeAnalysis.AsyncDisposalPatternAnalyzer.AsyncDisposableSyncDisposal">
<summary>
Diagnostic descriptor for sync disposal of async-created IAsyncDisposable objects.
</summary>
</member>
<member name="P:Jellyfin.CodeAnalysis.AsyncDisposalPatternAnalyzer.SupportedDiagnostics">
<inheritdoc/>
</member>
<member name="M:Jellyfin.CodeAnalysis.AsyncDisposalPatternAnalyzer.Initialize(Microsoft.CodeAnalysis.Diagnostics.AnalysisContext)">
<inheritdoc/>
</member>
</members>
</doc>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,716 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Jellyfin.Extensions</name>
</assembly>
<members>
<member name="T:Jellyfin.Extensions.CopyToExtensions">
<summary>
Provides <c>CopyTo</c> extensions methods for <see cref="T:System.Collections.Generic.IReadOnlyList`1" />.
</summary>
</member>
<member name="M:Jellyfin.Extensions.CopyToExtensions.CopyTo``1(System.Collections.Generic.IReadOnlyList{``0},System.Collections.Generic.IList{``0},System.Int32)">
<summary>
Copies all the elements of the current collection to the specified list
starting at the specified destination array index. The index is specified as a 32-bit integer.
</summary>
<param name="source">The current collection that is the source of the elements.</param>
<param name="destination">The list that is the destination of the elements copied from the current collection.</param>
<param name="index">A 32-bit integer that represents the index in <c>destination</c> at which copying begins.</param>
<typeparam name="T">The type of the array.</typeparam>
</member>
<member name="T:Jellyfin.Extensions.DictionaryExtensions">
<summary>
Static extensions for the <see cref="T:System.Collections.Generic.IReadOnlyDictionary`2"/> interface.
</summary>
</member>
<member name="M:Jellyfin.Extensions.DictionaryExtensions.GetFirstNotNullNorWhiteSpaceValue(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.String,System.String,System.String,System.String)">
<summary>
Gets a string from a string dictionary, checking all keys sequentially,
stopping at the first key that returns a result that's neither null nor blank.
</summary>
<param name="dictionary">The dictionary.</param>
<param name="key1">The first checked key.</param>
<param name="key2">The second checked key.</param>
<param name="key3">The third checked key.</param>
<param name="key4">The fourth checked key.</param>
<returns>System.String.</returns>
</member>
<member name="T:Jellyfin.Extensions.EnumerableExtensions">
<summary>
Static extensions for the <see cref="T:System.Collections.Generic.IEnumerable`1"/> interface.
</summary>
</member>
<member name="M:Jellyfin.Extensions.EnumerableExtensions.Contains(System.Collections.Generic.IEnumerable{System.String},System.ReadOnlySpan{System.Char},System.StringComparison)">
<summary>
Determines whether the value is contained in the source collection.
</summary>
<param name="source">An instance of the <see cref="T:System.Collections.Generic.IEnumerable`1"/> interface.</param>
<param name="value">The value to look for in the collection.</param>
<param name="stringComparison">The string comparison.</param>
<returns>A value indicating whether the value is contained in the collection.</returns>
<exception cref="T:System.ArgumentNullException">The source is null.</exception>
</member>
<member name="M:Jellyfin.Extensions.EnumerableExtensions.SingleItemAsEnumerable``1(``0)">
<summary>
Gets an IEnumerable from a single item.
</summary>
<param name="item">The item to return.</param>
<typeparam name="T">The type of item.</typeparam>
<returns>The IEnumerable{T}.</returns>
</member>
<member name="M:Jellyfin.Extensions.EnumerableExtensions.GetUniqueFlags``1(``0)">
<summary>
Gets an IEnumerable consisting of all flags of an enum.
</summary>
<param name="flags">The flags enum.</param>
<typeparam name="T">The type of item.</typeparam>
<returns>The IEnumerable{Enum}.</returns>
</member>
<member name="T:Jellyfin.Extensions.FileHelper">
<summary>
Provides helper functions for <see cref="T:System.IO.File" />.
</summary>
</member>
<member name="M:Jellyfin.Extensions.FileHelper.CreateEmpty(System.String)">
<summary>
Creates, or truncates a file in the specified path.
</summary>
<param name="path">The path and name of the file to create.</param>
</member>
<member name="T:Jellyfin.Extensions.FormattingStreamWriter">
<summary>
A custom StreamWriter which supports setting a IFormatProvider.
</summary>
</member>
<member name="M:Jellyfin.Extensions.FormattingStreamWriter.#ctor(System.IO.Stream,System.IFormatProvider)">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.FormattingStreamWriter"/> class.
</summary>
<param name="stream">The stream to write to.</param>
<param name="formatProvider">The format provider to use.</param>
</member>
<member name="M:Jellyfin.Extensions.FormattingStreamWriter.#ctor(System.String,System.IFormatProvider)">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.FormattingStreamWriter"/> class.
</summary>
<param name="path">The complete file path to write to.</param>
<param name="formatProvider">The format provider to use.</param>
</member>
<member name="P:Jellyfin.Extensions.FormattingStreamWriter.FormatProvider">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.GuidExtensions">
<summary>
Guid specific extensions.
</summary>
</member>
<member name="M:Jellyfin.Extensions.GuidExtensions.IsEmpty(System.Guid)">
<summary>
Determine whether the guid is default.
</summary>
<param name="guid">The guid.</param>
<returns>Whether the guid is the default value.</returns>
</member>
<member name="M:Jellyfin.Extensions.GuidExtensions.IsNullOrEmpty(System.Nullable{System.Guid})">
<summary>
Determine whether the guid is null or default.
</summary>
<param name="guid">The guid.</param>
<returns>Whether the guid is null or the default valueF.</returns>
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonBoolNumberConverter">
<summary>
Converts a number to a boolean.
This is needed for HDHomerun.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonBoolNumberConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonBoolNumberConverter.Write(System.Text.Json.Utf8JsonWriter,System.Boolean,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonBoolStringConverter">
<summary>
Converts a string to a boolean.
This is needed for FFprobe.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonBoolStringConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonBoolStringConverter.Write(System.Text.Json.Utf8JsonWriter,System.Boolean,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverter`1">
<summary>
Convert comma delimited string to collection of type.
</summary>
<typeparam name="T">Type to convert to.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverter`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverter`1"/> class.
</summary>
</member>
<member name="P:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverter`1.Delimiter">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverterFactory">
<summary>
Json comma delimited collection converter factory.
</summary>
<remarks>
This must be applied as an attribute, adding to the JsonConverter list causes stack overflow.
</remarks>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverterFactory.CanConvert(System.Type)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonCommaDelimitedCollectionConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonDateTimeConverter">
<summary>
Legacy DateTime converter.
Milliseconds aren't output if zero by default.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDateTimeConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDateTimeConverter.Write(System.Text.Json.Utf8JsonWriter,System.DateTime,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverter`1">
<summary>
Json unknown enum converter.
</summary>
<typeparam name="T">The type of enum.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverter`1.#ctor(System.Text.Json.Serialization.JsonConverter{`0})">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverter`1"/> class.
</summary>
<param name="baseConverter">The base json converter.</param>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverter`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverter`1.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverterFactory">
<summary>
Utilizes the JsonStringEnumConverter and sets a default value if not provided.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverterFactory.CanConvert(System.Type)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonDelimitedCollectionConverter`1">
<summary>
Convert delimited string to array of type.
</summary>
<typeparam name="T">Type to convert to.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDelimitedCollectionConverter`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.Json.Converters.JsonDelimitedCollectionConverter`1"/> class.
</summary>
</member>
<member name="P:Jellyfin.Extensions.Json.Converters.JsonDelimitedCollectionConverter`1.Delimiter">
<summary>
Gets the array delimiter.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDelimitedCollectionConverter`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonDelimitedCollectionConverter`1.Write(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.IReadOnlyCollection{`0},System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverter`1">
<summary>
Enum flag to json array converter.
</summary>
<typeparam name="T">The type of enum.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverter`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverter`1.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverterFactory">
<summary>
Json flag enum converter factory.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverterFactory.CanConvert(System.Type)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonGuidConverter">
<summary>
Converts a GUID object or value to/from JSON.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonGuidConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonGuidConverter.Write(System.Text.Json.Utf8JsonWriter,System.Guid,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonNullableGuidConverter">
<summary>
Converts a GUID object or value to/from JSON.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonNullableGuidConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonNullableGuidConverter.Write(System.Text.Json.Utf8JsonWriter,System.Nullable{System.Guid},System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonNullableStructConverter`1">
<summary>
Converts a nullable struct or value to/from JSON.
Required - some clients send an empty string.
</summary>
<typeparam name="TStruct">The struct type.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonNullableStructConverter`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonNullableStructConverter`1.Write(System.Text.Json.Utf8JsonWriter,System.Nullable{`0},System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonNullableStructConverterFactory">
<summary>
Json nullable struct converter factory.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonNullableStructConverterFactory.CanConvert(System.Type)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonNullableStructConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverter`1">
<summary>
Convert Pipe delimited string to array of type.
</summary>
<typeparam name="T">Type to convert to.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverter`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverter`1"/> class.
</summary>
</member>
<member name="P:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverter`1.Delimiter">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverterFactory">
<summary>
Json Pipe delimited collection converter factory.
</summary>
<remarks>
This must be applied as an attribute, adding to the JsonConverter list causes stack overflow.
</remarks>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverterFactory.CanConvert(System.Type)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonPipeDelimitedCollectionConverterFactory.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonStringConverter">
<summary>
Converter to allow the serializer to read strings.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonStringConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonStringConverter.Write(System.Text.Json.Utf8JsonWriter,System.String,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.Converters.JsonVersionConverter">
<summary>
Converts a Version object or value to/from JSON.
</summary>
<remarks>
Required to send <see cref="T:System.Version"/> as a string instead of an object.
</remarks>
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonVersionConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="M:Jellyfin.Extensions.Json.Converters.JsonVersionConverter.Write(System.Text.Json.Utf8JsonWriter,System.Version,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:Jellyfin.Extensions.Json.JsonDefaults">
<summary>
Helper class for having compatible JSON throughout the codebase.
</summary>
</member>
<member name="F:Jellyfin.Extensions.Json.JsonDefaults.PascalCaseMediaType">
<summary>
Pascal case json profile media type.
</summary>
</member>
<member name="F:Jellyfin.Extensions.Json.JsonDefaults.CamelCaseMediaType">
<summary>
Camel case json profile media type.
</summary>
</member>
<member name="F:Jellyfin.Extensions.Json.JsonDefaults._jsonSerializerOptions">
<summary>
When changing these options, update
Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
-> AddJellyfinApi
-> AddJsonOptions.
</summary>
</member>
<member name="P:Jellyfin.Extensions.Json.JsonDefaults.Options">
<summary>
Gets the default <see cref="T:System.Text.Json.JsonSerializerOptions" /> options.
</summary>
<remarks>
The return value must not be modified.
If the defaults must be modified the author must use the copy constructor.
</remarks>
<returns>The default <see cref="T:System.Text.Json.JsonSerializerOptions" /> options.</returns>
</member>
<member name="P:Jellyfin.Extensions.Json.JsonDefaults.CamelCaseOptions">
<summary>
Gets camelCase json options.
</summary>
<remarks>
The return value must not be modified.
If the defaults must be modified the author must use the copy constructor.
</remarks>
<returns>The camelCase <see cref="T:System.Text.Json.JsonSerializerOptions" /> options.</returns>
</member>
<member name="P:Jellyfin.Extensions.Json.JsonDefaults.PascalCaseOptions">
<summary>
Gets PascalCase json options.
</summary>
<remarks>
The return value must not be modified.
If the defaults must be modified the author must use the copy constructor.
</remarks>
<returns>The PascalCase <see cref="T:System.Text.Json.JsonSerializerOptions" /> options.</returns>
</member>
<member name="T:Jellyfin.Extensions.Json.Utf8JsonExtensions">
<summary>
Extensions for Utf8JsonReader and Utf8JsonWriter.
</summary>
</member>
<member name="M:Jellyfin.Extensions.Json.Utf8JsonExtensions.IsEmptyString(System.Text.Json.Utf8JsonReader)">
<summary>
Determines if the reader contains an empty string.
</summary>
<param name="reader">The reader.</param>
<returns>Whether the reader contains an empty string.</returns>
</member>
<member name="M:Jellyfin.Extensions.Json.Utf8JsonExtensions.IsNull(System.Text.Json.Utf8JsonReader)">
<summary>
Determines if the reader contains a null value.
</summary>
<param name="reader">The reader.</param>
<returns>Whether the reader contains null.</returns>
</member>
<member name="T:Jellyfin.Extensions.ReadOnlyListExtension">
<summary>
Static extensions for the <see cref="T:System.Collections.Generic.IReadOnlyList`1"/> interface.
</summary>
</member>
<member name="M:Jellyfin.Extensions.ReadOnlyListExtension.IndexOf``1(System.Collections.Generic.IReadOnlyList{``0},``0)">
<summary>
Finds the index of the desired item.
</summary>
<param name="source">The source list.</param>
<param name="value">The value to fine.</param>
<typeparam name="T">The type of item to find.</typeparam>
<returns>Index if found, else -1.</returns>
</member>
<member name="M:Jellyfin.Extensions.ReadOnlyListExtension.FindIndex``1(System.Collections.Generic.IReadOnlyList{``0},System.Predicate{``0})">
<summary>
Finds the index of the predicate.
</summary>
<param name="source">The source list.</param>
<param name="match">The value to find.</param>
<typeparam name="T">The type of item to find.</typeparam>
<returns>Index if found, else -1.</returns>
</member>
<member name="M:Jellyfin.Extensions.ReadOnlyListExtension.FirstOrDefault``1(System.Collections.Generic.IReadOnlyList{``0})">
<summary>
Get the first or default item from a list.
</summary>
<param name="source">The source list.</param>
<typeparam name="T">The type of item.</typeparam>
<returns>The first item or default if list is empty.</returns>
</member>
<member name="T:Jellyfin.Extensions.ShuffleExtensions">
<summary>
Provides <c>Shuffle</c> extensions methods for <see cref="T:System.Collections.Generic.IList`1" />.
</summary>
</member>
<member name="M:Jellyfin.Extensions.ShuffleExtensions.Shuffle``1(System.Collections.Generic.IList{``0})">
<summary>
Shuffles the items in a list.
</summary>
<param name="list">The list that should get shuffled.</param>
<typeparam name="T">The type.</typeparam>
</member>
<member name="M:Jellyfin.Extensions.ShuffleExtensions.Shuffle``1(System.Collections.Generic.IList{``0},System.Random)">
<summary>
Shuffles the items in a list.
</summary>
<param name="list">The list that should get shuffled.</param>
<param name="rng">The random number generator to use.</param>
<typeparam name="T">The type.</typeparam>
</member>
<member name="T:Jellyfin.Extensions.SplitStringExtensions">
<summary>
Extension class for splitting lines without unnecessary allocations.
</summary>
</member>
<member name="M:Jellyfin.Extensions.SplitStringExtensions.SpanSplit(System.String,System.Char)">
<summary>
Creates a new string split enumerator.
</summary>
<param name="str">The string to split.</param>
<param name="separator">The separator to split on.</param>
<returns>The enumerator struct.</returns>
</member>
<member name="M:Jellyfin.Extensions.SplitStringExtensions.Split(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Creates a new span split enumerator.
</summary>
<param name="str">The span to split.</param>
<param name="separator">The separator to split on.</param>
<returns>The enumerator struct.</returns>
</member>
<member name="T:Jellyfin.Extensions.SplitStringExtensions.Enumerator">
<summary>
Provides an enumerator for the substrings separated by the separator.
</summary>
</member>
<member name="M:Jellyfin.Extensions.SplitStringExtensions.Enumerator.#ctor(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Initializes a new instance of the <see cref="T:Jellyfin.Extensions.SplitStringExtensions.Enumerator"/> struct.
</summary>
<param name="str">The span to split.</param>
<param name="separator">The separator to split on.</param>
</member>
<member name="P:Jellyfin.Extensions.SplitStringExtensions.Enumerator.Current">
<summary>
Gets a reference to the item at the current position of the enumerator.
</summary>
</member>
<member name="M:Jellyfin.Extensions.SplitStringExtensions.Enumerator.GetEnumerator">
<summary>
Returns <c>this</c>.
</summary>
<returns><c>this</c>.</returns>
</member>
<member name="M:Jellyfin.Extensions.SplitStringExtensions.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next item.
</summary>
<returns><c>true</c> if there is a next element; otherwise <c>false</c>.</returns>
</member>
<member name="T:Jellyfin.Extensions.StreamExtensions">
<summary>
Class BaseExtensions.
</summary>
</member>
<member name="M:Jellyfin.Extensions.StreamExtensions.ReadAllLines(System.IO.Stream)">
<summary>
Reads all lines in the <see cref="T:System.IO.Stream" />.
</summary>
<param name="stream">The <see cref="T:System.IO.Stream" /> to read from.</param>
<returns>All lines in the stream.</returns>
</member>
<member name="M:Jellyfin.Extensions.StreamExtensions.ReadAllLines(System.IO.Stream,System.Text.Encoding)">
<summary>
Reads all lines in the <see cref="T:System.IO.Stream" />.
</summary>
<param name="stream">The <see cref="T:System.IO.Stream" /> to read from.</param>
<param name="encoding">The character encoding to use.</param>
<returns>All lines in the stream.</returns>
</member>
<member name="M:Jellyfin.Extensions.StreamExtensions.ReadAllLines(System.IO.TextReader)">
<summary>
Reads all lines in the <see cref="T:System.IO.TextReader" />.
</summary>
<param name="reader">The <see cref="T:System.IO.TextReader" /> to read from.</param>
<returns>All lines in the stream.</returns>
</member>
<member name="M:Jellyfin.Extensions.StreamExtensions.ReadAllLinesAsync(System.IO.TextReader,System.Threading.CancellationToken)">
<summary>
Reads all lines in the <see cref="T:System.IO.TextReader" />.
</summary>
<param name="reader">The <see cref="T:System.IO.TextReader" /> to read from.</param>
<param name="cancellationToken">The token to monitor for cancellation requests.</param>
<returns>All lines in the stream.</returns>
</member>
<member name="T:Jellyfin.Extensions.StringBuilderExtensions">
<summary>
Extension methods for the <see cref="T:System.Text.StringBuilder"/> class.
</summary>
</member>
<member name="M:Jellyfin.Extensions.StringBuilderExtensions.AppendJoinInSingleQuotes(System.Text.StringBuilder,System.Char,System.Collections.Generic.IReadOnlyList{System.String})">
<summary>
Concatenates and appends the members of a collection in single quotes using the specified delimiter.
</summary>
<param name="builder">The string builder.</param>
<param name="delimiter">The character delimiter.</param>
<param name="values">The collection of strings to concatenate.</param>
<returns>The updated string builder.</returns>
</member>
<member name="T:Jellyfin.Extensions.StringExtensions">
<summary>
Provides extensions methods for <see cref="T:System.String" />.
</summary>
<summary>
Checks whether or not the specified string has diacritics in it.
</summary>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.RemoveDiacritics(System.String)">
<summary>
Removes the diacritics character from the strings.
</summary>
<param name="text">The string to act on.</param>
<returns>The string without diacritics character.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.HasDiacritics(System.String)">
<summary>
Checks whether or not the specified string has diacritics in it.
</summary>
<param name="text">The string to check.</param>
<returns>True if the string has diacritics, false otherwise.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.Count(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Counts the number of occurrences of [needle] in the string.
</summary>
<param name="value">The haystack to search in.</param>
<param name="needle">The character to search for.</param>
<returns>The number of occurrences of the [needle] character.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.LeftPart(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Returns the part on the left of the <c>needle</c>.
</summary>
<param name="haystack">The string to seek.</param>
<param name="needle">The needle to find.</param>
<returns>The part left of the <paramref name="needle" />.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.RightPart(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Returns the part on the right of the <c>needle</c>.
</summary>
<param name="haystack">The string to seek.</param>
<param name="needle">The needle to find.</param>
<returns>The part right of the <paramref name="needle" />.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.Transliterated(System.String)">
<summary>
Returns a transliterated string which only contain ascii characters.
</summary>
<param name="text">The string to act on.</param>
<returns>The transliterated string.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.Trimmed(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Ensures all strings are non-null and trimmed of leading an trailing blanks.
</summary>
<param name="values">The enumerable of strings to trim.</param>
<returns>The enumeration of trimmed strings.</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.TruncateAtNull(System.String)">
<summary>
Truncates a string at the first null character ('\0').
</summary>
<param name="text">The input string.</param>
<returns>
The substring up to (but not including) the first null character,
or the original string if no null character is present.
</returns>
</member>
<member name="M:Jellyfin.Extensions.StringExtensions.NonConformingUnicodeRegex">
<remarks>
Pattern:<br/>
<code>([\ud800-\udbff](?![\udc00-\udfff]))|((?&lt;![\ud800-\udbff])[\udc00-\udfff])|()</code><br/>
Explanation:<br/>
<code>
○ Match with 3 alternative expressions, atomically.<br/>
○ 1st capture group.<br/>
○ Match a character in the set [\uD800-\uDBFF].<br/>
○ Zero-width negative lookahead.<br/>
○ Match a character in the set [\uDC00-\uDFFF].<br/>
○ 2nd capture group.<br/>
○ Zero-width negative lookbehind.<br/>
○ Match a character in the set [\uD800-\uDBFF] right-to-left.<br/>
○ Match a character in the set [\uDC00-\uDFFF].<br/>
○ 3rd capture group.<br/>
○ Match ''.<br/>
</code>
</remarks>
</member>
<member name="T:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0">
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the NonConformingUnicodeRegex method.</summary>
</member>
<member name="F:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.Instance">
<summary>Cached, thread-safe singleton instance.</summary>
</member>
<member name="M:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.#ctor">
<summary>Initializes the instance.</summary>
</member>
<member name="T:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.RunnerFactory">
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
</member>
<member name="M:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.RunnerFactory.CreateInstance">
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
</member>
<member name="T:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.RunnerFactory.Runner">
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
</member>
<member name="M:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
<param name="inputSpan">The text being scanned by the regular expression.</param>
</member>
<member name="M:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
<param name="inputSpan">The text being scanned by the regular expression.</param>
<returns>true if a possible match was found; false if no more matches are possible.</returns>
</member>
<member name="M:System.Text.RegularExpressions.Generated.NonConformingUnicodeRegex_0.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
<param name="inputSpan">The text being scanned by the regular expression.</param>
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
</member>
<member name="T:System.Text.RegularExpressions.Generated.Utilities">
<summary>Helper methods used by generated <see cref="T:System.Text.RegularExpressions.Regex"/>-derived implementations.</summary>
</member>
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout">
<summary>Default timeout value set in <see cref="T:System.AppContext"/>, or <see cref="F:System.Text.RegularExpressions.Regex.InfiniteMatchTimeout"/> if none was set.</summary>
</member>
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_hasTimeout">
<summary>Whether <see cref="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout"/> is non-infinite.</summary>
</member>
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IndexOfNonAsciiOrAny_AEA8CFA2B5BC71ABC904D402F4CC4D3E0211E0681824955E81054C16A76CB030(System.ReadOnlySpan{System.Char})">
<summary>Finds the next index of any character that matches a character in the set [\uD800-\uDFFF\uFFFD].</summary>
</member>
</members>
</doc>
@@ -0,0 +1,428 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"MediaBrowser.Common/10.12.0": {
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Model": "10.12.0",
"Jellyfin.Sdk": "2025.10.21",
"MediaBrowser.Model": "10.12.0.0"
},
"runtime": {
"MediaBrowser.Common.dll": {}
}
},
"Diacritics/4.1.4": {
"runtime": {
"lib/net9.0/Diacritics.dll": {
"assemblyVersion": "4.1.4.0",
"fileVersion": "4.1.4.0"
}
}
},
"ICU4N/60.1.0-alpha.356": {
"dependencies": {
"J2N": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/ICU4N.dll": {
"assemblyVersion": "60.0.0.0",
"fileVersion": "60.1.0.0"
}
}
},
"ICU4N.Transliterator/60.1.0-alpha.356": {
"dependencies": {
"ICU4N": "60.1.0-alpha.356"
},
"runtime": {
"lib/netstandard2.0/ICU4N.Transliterator.dll": {
"assemblyVersion": "60.0.0.0",
"fileVersion": "60.1.0.0"
}
}
},
"J2N/2.0.0": {
"runtime": {
"lib/net6.0/J2N.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"Jellyfin.Sdk/2025.10.21": {
"dependencies": {
"Microsoft.Kiota.Abstractions": "1.20.1",
"Microsoft.Kiota.Http.HttpClientLibrary": "1.20.1",
"Microsoft.Kiota.Serialization.Form": "1.20.1",
"Microsoft.Kiota.Serialization.Json": "1.20.1",
"Microsoft.Kiota.Serialization.Multipart": "1.20.1",
"Microsoft.Kiota.Serialization.Text": "1.20.1"
},
"runtime": {
"lib/net8.0/Jellyfin.Sdk.dll": {
"assemblyVersion": "2025.10.21.0",
"fileVersion": "2025.10.21.0"
}
}
},
"Microsoft.EntityFrameworkCore/10.0.3": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "10.0.3"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.dll": {
"assemblyVersion": "10.0.3.0",
"fileVersion": "10.0.326.7603"
}
}
},
"Microsoft.EntityFrameworkCore.Abstractions/10.0.3": {
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
"assemblyVersion": "10.0.3.0",
"fileVersion": "10.0.326.7603"
}
}
},
"Microsoft.EntityFrameworkCore.Relational/10.0.3": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "10.0.3"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll": {
"assemblyVersion": "10.0.3.0",
"fileVersion": "10.0.326.7603"
}
}
},
"Microsoft.Kiota.Abstractions/1.20.1": {
"dependencies": {
"Std.UriTemplate": "2.0.5"
},
"runtime": {
"lib/net8.0/Microsoft.Kiota.Abstractions.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"Microsoft.Kiota.Http.HttpClientLibrary/1.20.1": {
"dependencies": {
"Microsoft.Kiota.Abstractions": "1.20.1"
},
"runtime": {
"lib/net8.0/Microsoft.Kiota.Http.HttpClientLibrary.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"Microsoft.Kiota.Serialization.Form/1.20.1": {
"dependencies": {
"Microsoft.Kiota.Abstractions": "1.20.1"
},
"runtime": {
"lib/net8.0/Microsoft.Kiota.Serialization.Form.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"Microsoft.Kiota.Serialization.Json/1.20.1": {
"dependencies": {
"Microsoft.Kiota.Abstractions": "1.20.1"
},
"runtime": {
"lib/net8.0/Microsoft.Kiota.Serialization.Json.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"Microsoft.Kiota.Serialization.Multipart/1.20.1": {
"dependencies": {
"Microsoft.Kiota.Abstractions": "1.20.1"
},
"runtime": {
"lib/net8.0/Microsoft.Kiota.Serialization.Multipart.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"Microsoft.Kiota.Serialization.Text/1.20.1": {
"dependencies": {
"Microsoft.Kiota.Abstractions": "1.20.1"
},
"runtime": {
"lib/net8.0/Microsoft.Kiota.Serialization.Text.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"Polly/8.6.5": {
"dependencies": {
"Polly.Core": "8.6.5"
},
"runtime": {
"lib/net6.0/Polly.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.6.5.5194"
}
}
},
"Polly.Core/8.6.5": {
"runtime": {
"lib/net8.0/Polly.Core.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.6.5.5194"
}
}
},
"Std.UriTemplate/2.0.5": {
"runtime": {
"lib/net5.0/Std.UriTemplate.dll": {
"assemblyVersion": "2.0.5.0",
"fileVersion": "2.0.5.0"
}
}
},
"Jellyfin.CodeAnalysis/1.0.0": {
"dependencies": {
"Jellyfin.Sdk": "2025.10.21"
},
"runtime": {
"Jellyfin.CodeAnalysis.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Jellyfin.Data/10.12.0": {
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Database.Implementations": "10.11.0",
"Jellyfin.Sdk": "2025.10.21"
},
"runtime": {
"Jellyfin.Data.dll": {
"assemblyVersion": "10.12.0.0",
"fileVersion": "10.12.0.0"
}
}
},
"Jellyfin.Database.Implementations/10.11.0": {
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Microsoft.EntityFrameworkCore.Relational": "10.0.3",
"Polly": "8.6.5"
},
"runtime": {
"Jellyfin.Database.Implementations.dll": {
"assemblyVersion": "10.12.0.0",
"fileVersion": "10.12.0.0"
}
}
},
"Jellyfin.Extensions/10.12.0": {
"dependencies": {
"Diacritics": "4.1.4",
"ICU4N.Transliterator": "60.1.0-alpha.356",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Sdk": "2025.10.21"
},
"runtime": {
"Jellyfin.Extensions.dll": {
"assemblyVersion": "10.12.0.0",
"fileVersion": "10.12.0.0"
}
}
},
"Jellyfin.Model/10.12.0": {
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Data": "10.12.0",
"Jellyfin.Extensions": "10.12.0",
"Jellyfin.Sdk": "2025.10.21"
},
"runtime": {
"MediaBrowser.Model.dll": {
"assemblyVersion": "10.12.0.0",
"fileVersion": "10.12.0.0"
}
}
},
"MediaBrowser.Model/10.12.0.0": {
"runtime": {
"MediaBrowser.Model.dll": {
"assemblyVersion": "10.12.0.0",
"fileVersion": "10.12.0.0"
}
}
}
}
},
"libraries": {
"MediaBrowser.Common/10.12.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Diacritics/4.1.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9JK2bI+oWnzOK4Lu+5FXt7czofD28AMnZ95np5fkSClqioPnga1JVpjaUxVJaEpc/5HIlfikc6YI33lm2qu4mw==",
"path": "diacritics/4.1.4",
"hashPath": "diacritics.4.1.4.nupkg.sha512"
},
"ICU4N/60.1.0-alpha.356": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YMZtDnjcqWzziOKiE7w6Ma7Rl5vuFDxzOsUlHh1QyfghbNEIZQOLRs9MMfwCWAjX6n9UitrF6vLXy55Z5q+4Fg==",
"path": "icu4n/60.1.0-alpha.356",
"hashPath": "icu4n.60.1.0-alpha.356.nupkg.sha512"
},
"ICU4N.Transliterator/60.1.0-alpha.356": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lFOSO6bbEtB6HkWMNDJAq+rFwVyi9g6xVc5O/2xHa6iZnV7wLVDqCbaQ4W4vIeBSQZAafqhxciaEkmAvSdzlCg==",
"path": "icu4n.transliterator/60.1.0-alpha.356",
"hashPath": "icu4n.transliterator.60.1.0-alpha.356.nupkg.sha512"
},
"J2N/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-M5bwDajAARZiyqupU+rHQJnsVLxNBOHJ8vKYHd8LcLIb1FgLfzzcJvc31Qo5Xz/GEHFjDF9ScjKL/ks/zRTXuA==",
"path": "j2n/2.0.0",
"hashPath": "j2n.2.0.0.nupkg.sha512"
},
"Jellyfin.Sdk/2025.10.21": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1pG60suEiV3v77zqLd5fO9S8m8qryxj9mZYb24Me1XgSXlaCIt0SC1V1sbFKyoG70Q3n915wT4Ko4BUanorRug==",
"path": "jellyfin.sdk/2025.10.21",
"hashPath": "jellyfin.sdk.2025.10.21.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CDEImwD4A7BseABJMCpLZnhfFjmPY/bHwhhS70elc6gLI/bYUEOhxWt7PmaNGYGhIEzOnStlCy5QcVb+8dod5Q==",
"path": "microsoft.entityframeworkcore/10.0.3",
"hashPath": "microsoft.entityframeworkcore.10.0.3.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Abstractions/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c7Uoz381xnMHNBRB8eHRhGgzUtXbgddlbODhwZRrTSzZWDharp3RkJsFwhxyESbeXhCqmML7VdvjMQ7uu+HreA==",
"path": "microsoft.entityframeworkcore.abstractions/10.0.3",
"hashPath": "microsoft.entityframeworkcore.abstractions.10.0.3.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Relational/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Pmh60OK9neVr/M0FJwm9hlzm2bD4Kd65SID8E6SP5c90tExNgXwORrlEWl0oGU/ig9ifpNN4PSpIrnHNozlT5w==",
"path": "microsoft.entityframeworkcore.relational/10.0.3",
"hashPath": "microsoft.entityframeworkcore.relational.10.0.3.nupkg.sha512"
},
"Microsoft.Kiota.Abstractions/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bv1n2gnxA/O+1a26h3YB6bgcc3ZSLCjRumMh7sVkFmksLaVonhcrJpUrEtBlnnYPrnHwzm/1BYQnYjCVG7A+fA==",
"path": "microsoft.kiota.abstractions/1.20.1",
"hashPath": "microsoft.kiota.abstractions.1.20.1.nupkg.sha512"
},
"Microsoft.Kiota.Http.HttpClientLibrary/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pQzs+9n3QAG/FKFwgIaRE0EqOXfW3rWliOdk9XZbghyRdeAtiQjSbJbpascdZlf7uatLpPYA145q6MYpLxvsgA==",
"path": "microsoft.kiota.http.httpclientlibrary/1.20.1",
"hashPath": "microsoft.kiota.http.httpclientlibrary.1.20.1.nupkg.sha512"
},
"Microsoft.Kiota.Serialization.Form/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-n7izb8GZSoatmFSpMaHmh78U3oW+YdYb2gDwhkG86COHuiGWV9s0BKBeUlFakAV00CDwaH9iFqxCQ0veYVkG1A==",
"path": "microsoft.kiota.serialization.form/1.20.1",
"hashPath": "microsoft.kiota.serialization.form.1.20.1.nupkg.sha512"
},
"Microsoft.Kiota.Serialization.Json/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4MumZe45DI/o1YP+hq7wyArOHDhjkSiu14ysN4xWKe6vwlu43BUYydA/yT0CtjoPwbFW/6jfx/NVSvM3DzBzbg==",
"path": "microsoft.kiota.serialization.json/1.20.1",
"hashPath": "microsoft.kiota.serialization.json.1.20.1.nupkg.sha512"
},
"Microsoft.Kiota.Serialization.Multipart/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tP7ZxA1zsIi3FE8CHwfA5JnzlW1NYld+LpFihFq+S7IXFDv1x37I968lPKGIdEpWW9vWacuqDQVKIyJiKZ257A==",
"path": "microsoft.kiota.serialization.multipart/1.20.1",
"hashPath": "microsoft.kiota.serialization.multipart.1.20.1.nupkg.sha512"
},
"Microsoft.Kiota.Serialization.Text/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Cue4l9AeU0WgL2CdUW8K58BMwQOyiHgT7aCov2qGEKpmpeWQj7cmAWCgxDfPHYPkZtz1Ccbrw4/6KrDgCmrC3Q==",
"path": "microsoft.kiota.serialization.text/1.20.1",
"hashPath": "microsoft.kiota.serialization.text.1.20.1.nupkg.sha512"
},
"Polly/8.6.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VqtW2ZE/ALvQMAH1cQY3qZ2cF2OXa3oe/HKMdOv6Q02HCoEW0rsFNfcBONXlHBe1TnjWW1vdRxBEkPeq0/2FHA==",
"path": "polly/8.6.5",
"hashPath": "polly.8.6.5.nupkg.sha512"
},
"Polly.Core/8.6.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t+sUVrIwvo7UmsgHGgOG9F0GDZSRIm47u2ylH17Gvcv1q5hNEwgD5GoBlFyc0kh/pebmPyrAgvGsR/65ZBaXlg==",
"path": "polly.core/8.6.5",
"hashPath": "polly.core.8.6.5.nupkg.sha512"
},
"Std.UriTemplate/2.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PtqPdWNBObRcDHjyjbgOz2XoCJQaiA+HNDPQve/O7yGCkospfHDCuH9ULVx1msImwHHG+uhpDjiZX7bpLN/cnw==",
"path": "std.uritemplate/2.0.5",
"hashPath": "std.uritemplate.2.0.5.nupkg.sha512"
},
"Jellyfin.CodeAnalysis/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Jellyfin.Data/10.12.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Jellyfin.Database.Implementations/10.11.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Jellyfin.Extensions/10.12.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Jellyfin.Model/10.12.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"MediaBrowser.Model/10.12.0.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1 +1 @@
ea1900ada7e71b699cc8b32fc18ed9c2c4c85d035c2a9f53d43b9e309a7daf47
1847081e3aee36130fd6ec4bcb8cdb0e44ca826b7dc207e528d695869d0bcaa0
@@ -5,3 +5,27 @@ E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBrowser.Co
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBrowser.Common.GeneratedMSBuildEditorConfig.editorconfig
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBrowser.Common.csproj.CoreCompileInputs.cache
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBrowser.Common.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Common.deps.json
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Common.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Common.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Common.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.CodeAnalysis.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Data.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Database.Implementations.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Extensions.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Model.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.CodeAnalysis.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.CodeAnalysis.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Model.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\MediaBrowser.Model.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Data.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Data.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Database.Implementations.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Database.Implementations.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Extensions.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\bin\Debug\net10.0\Jellyfin.Extensions.xml
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBro.AA9CB4DA.Up2Date
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBrowser.Common.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\refint\MediaBrowser.Common.dll
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\MediaBrowser.Common.pdb
E:\Projects\pgsql-jellyfin\MediaBrowser.Common\obj\Debug\net10.0\ref\MediaBrowser.Common.dll
@@ -13,7 +13,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+44ab9e1d6dd9b53ec5329bad76927c63bbda5507")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+af1152b00181ecb2bfb56080e178788dddf9082c")]
[assembly: System.Reflection.AssemblyProductAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyTitleAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
60f37a3971178c12f2b146129f13c97be898798f5096dc88d8c9ad4a8265fea2
b99dc225cae883ef0418353cf91a59a5a855f9b1e612ef2d00b032fd3aec4e9e