Skip to content

Commit 037032b

Browse files
authored
Merge pull request #80 from neuroglia-io/feat-resource-oriented
Added the Resource Oriented infrastructure implementations
2 parents 1efe7a5 + e0890e2 commit 037032b

File tree

178 files changed

+10791
-146
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+10791
-146
lines changed

Neuroglia Framework.sln

+37-2
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Mediation.Abstrac
9898
EndProject
9999
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Integration", "src\Neuroglia.Integration\Neuroglia.Integration.csproj", "{B9DF1C37-F41F-4AC8-8BB0-19AD9EB978D7}"
100100
EndProject
101-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neuroglia.Measurements.Sdk.TypeScript", "src\Neuroglia.Measurements.Sdk.TypeScript\Neuroglia.Measurements.Sdk.TypeScript.csproj", "{4BA3F773-5C01-4064-9441-EED11C3264EC}"
101+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Measurements.Sdk.TypeScript", "src\Neuroglia.Measurements.Sdk.TypeScript\Neuroglia.Measurements.Sdk.TypeScript.csproj", "{4BA3F773-5C01-4064-9441-EED11C3264EC}"
102102
EndProject
103-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neuroglia.Data.Schemas.Json", "src\Neuroglia.Data.Schemas.Json\Neuroglia.Data.Schemas.Json.csproj", "{A555095D-AA84-4D67-BF84-A0038EC783BD}"
103+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Data.Schemas.Json", "src\Neuroglia.Data.Schemas.Json\Neuroglia.Data.Schemas.Json.csproj", "{A555095D-AA84-4D67-BF84-A0038EC783BD}"
104+
EndProject
105+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Data.Infrastructure.ResourceOriented.Abstractions", "src\Neuroglia.Data.Infrastructure.ResourceOriented.Abstractions\Neuroglia.Data.Infrastructure.ResourceOriented.Abstractions.csproj", "{72220C70-CEDD-49E9-B682-03EFB1355833}"
106+
EndProject
107+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Security.Abstractions", "src\Neuroglia.Security.Abstractions\Neuroglia.Security.Abstractions.csproj", "{5F5F25CA-6368-4AC7-B71E-8BE4807DA115}"
108+
EndProject
109+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Security.AspNetCore", "src\Neuroglia.Security.AspNetCore\Neuroglia.Security.AspNetCore.csproj", "{661C5BA3-8EA4-45A1-A00F-64C7B5344003}"
110+
EndProject
111+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Neuroglia.Data.Infrastructure.ResourceOriented", "src\Neuroglia.Data.Infrastructure.ResourceOriented\Neuroglia.Data.Infrastructure.ResourceOriented.csproj", "{602949C1-BC44-4E22-AA2E-C79EE5EDD083}"
112+
EndProject
113+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neuroglia.Data.Infrastructure.ResourceOriented.Redis", "src\Neuroglia.Data.Infrastructure.ResourceOriented.Redis\Neuroglia.Data.Infrastructure.ResourceOriented.Redis.csproj", "{25689B2F-D1F3-4611-8059-E43788C26407}"
104114
EndProject
105115
Global
106116
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -284,6 +294,26 @@ Global
284294
{A555095D-AA84-4D67-BF84-A0038EC783BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
285295
{A555095D-AA84-4D67-BF84-A0038EC783BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
286296
{A555095D-AA84-4D67-BF84-A0038EC783BD}.Release|Any CPU.Build.0 = Release|Any CPU
297+
{72220C70-CEDD-49E9-B682-03EFB1355833}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
298+
{72220C70-CEDD-49E9-B682-03EFB1355833}.Debug|Any CPU.Build.0 = Debug|Any CPU
299+
{72220C70-CEDD-49E9-B682-03EFB1355833}.Release|Any CPU.ActiveCfg = Release|Any CPU
300+
{72220C70-CEDD-49E9-B682-03EFB1355833}.Release|Any CPU.Build.0 = Release|Any CPU
301+
{5F5F25CA-6368-4AC7-B71E-8BE4807DA115}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
302+
{5F5F25CA-6368-4AC7-B71E-8BE4807DA115}.Debug|Any CPU.Build.0 = Debug|Any CPU
303+
{5F5F25CA-6368-4AC7-B71E-8BE4807DA115}.Release|Any CPU.ActiveCfg = Release|Any CPU
304+
{5F5F25CA-6368-4AC7-B71E-8BE4807DA115}.Release|Any CPU.Build.0 = Release|Any CPU
305+
{661C5BA3-8EA4-45A1-A00F-64C7B5344003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
306+
{661C5BA3-8EA4-45A1-A00F-64C7B5344003}.Debug|Any CPU.Build.0 = Debug|Any CPU
307+
{661C5BA3-8EA4-45A1-A00F-64C7B5344003}.Release|Any CPU.ActiveCfg = Release|Any CPU
308+
{661C5BA3-8EA4-45A1-A00F-64C7B5344003}.Release|Any CPU.Build.0 = Release|Any CPU
309+
{602949C1-BC44-4E22-AA2E-C79EE5EDD083}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
310+
{602949C1-BC44-4E22-AA2E-C79EE5EDD083}.Debug|Any CPU.Build.0 = Debug|Any CPU
311+
{602949C1-BC44-4E22-AA2E-C79EE5EDD083}.Release|Any CPU.ActiveCfg = Release|Any CPU
312+
{602949C1-BC44-4E22-AA2E-C79EE5EDD083}.Release|Any CPU.Build.0 = Release|Any CPU
313+
{25689B2F-D1F3-4611-8059-E43788C26407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
314+
{25689B2F-D1F3-4611-8059-E43788C26407}.Debug|Any CPU.Build.0 = Debug|Any CPU
315+
{25689B2F-D1F3-4611-8059-E43788C26407}.Release|Any CPU.ActiveCfg = Release|Any CPU
316+
{25689B2F-D1F3-4611-8059-E43788C26407}.Release|Any CPU.Build.0 = Release|Any CPU
287317
EndGlobalSection
288318
GlobalSection(SolutionProperties) = preSolution
289319
HideSolutionNode = FALSE
@@ -333,6 +363,11 @@ Global
333363
{B9DF1C37-F41F-4AC8-8BB0-19AD9EB978D7} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
334364
{4BA3F773-5C01-4064-9441-EED11C3264EC} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
335365
{A555095D-AA84-4D67-BF84-A0038EC783BD} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
366+
{72220C70-CEDD-49E9-B682-03EFB1355833} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
367+
{5F5F25CA-6368-4AC7-B71E-8BE4807DA115} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
368+
{661C5BA3-8EA4-45A1-A00F-64C7B5344003} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
369+
{602949C1-BC44-4E22-AA2E-C79EE5EDD083} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
370+
{25689B2F-D1F3-4611-8059-E43788C26407} = {BDED6037-3D6E-4781-8C58-2EB7D0E53CEA}
336371
EndGlobalSection
337372
GlobalSection(ExtensibilityGlobals) = postSolution
338373
SolutionGuid = {B390984D-3A9D-4F6D-A73B-E93CCEB586E4}

src/Neuroglia..Eventing.CloudEvents/ICloudEvent.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public interface ICloudEvent
2323
{
2424

2525
/// <summary>
26-
/// Gets/sets the version of the CloudEvents specification which the event uses. Defaults to <see cref="CloudEventSpecVersion.v1"/>
26+
/// Gets/sets the version of the CloudEvents specification which the event uses. Defaults to <see cref="CloudEventSpecVersion.V1"/>
2727
/// </summary>
2828
string SpecVersion { get; }
2929

src/Neuroglia.Core/EnumMemberTypeConverter.cs

+3-5
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ namespace Neuroglia;
2121
/// <summary>
2222
/// Represents an <see cref="EnumConverter"/> used to convert enum using the values specified by <see cref="EnumMemberAttribute"/>s
2323
/// </summary>
24-
public class EnumMemberTypeConverter
25-
: EnumConverter
24+
/// <inheritdoc/>
25+
public class EnumMemberTypeConverter([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.PublicFields)] Type type)
26+
: EnumConverter(type)
2627
{
2728

28-
/// <inheritdoc/>
29-
public EnumMemberTypeConverter([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.PublicFields)] Type type) : base(type) { }
30-
3129
/// <inheritdoc/>
3230
public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value)
3331
{

src/Neuroglia.Core/Extensions/IEnumerableExtensions.cs

+8
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ public static object GetElementAt(this IEnumerable enumerable, int index)
4949
throw new ArgumentOutOfRangeException(nameof(index));
5050
}
5151

52+
/// <summary>
53+
/// Joins the values of the <see cref="IEnumerable{T}"/> with the specified character
54+
/// </summary>
55+
/// <param name="values">The values to join</param>
56+
/// <param name="separator">The separator char</param>
57+
/// <returns>A new string that consists of the joined values, separated by the specified char</returns>
58+
public static string Join(this IEnumerable<string> values, char separator) => string.Join(separator, values);
59+
5260
/// <summary>
5361
/// Filters the elements of a sequence based on a specified type
5462
/// </summary>

src/Neuroglia.Core/Extensions/StringExtensions.cs

+36
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,42 @@ public static partial class StringExtensions
2525

2626
const string SubstitutionBlock = "§§";
2727

28+
/// <summary>
29+
/// Determines whether or not the specified input only contains letters
30+
/// </summary>
31+
/// <param name="input">The input to check</param>
32+
/// <returns>A boolean indicating whether or not the specified input only contains letters</returns>
33+
public static bool IsAlphabetic(this string input) => input.All(char.IsLetter);
34+
35+
/// <summary>
36+
/// Determines whether or not the specified input only contains digits
37+
/// </summary>
38+
/// <param name="input">The input to check</param>
39+
/// <returns>A boolean indicating whether or not the specified input only contains digits</returns>
40+
public static bool IsNumeric(this string input) => input.All(char.IsDigit);
41+
42+
/// <summary>
43+
/// Determines whether or not the specified input only contains letters or digits
44+
/// </summary>
45+
/// <param name="input">The input to check</param>
46+
/// <param name="exceptions">An array containing all exceptions allowed</param>
47+
/// <returns>A boolean indicating whether or not the specified input only contains letters or digits</returns>
48+
public static bool IsAlphanumeric(this string input, params char[] exceptions) => input.All(c => char.IsLetterOrDigit(c) || (exceptions != null && exceptions.Contains(c)));
49+
50+
/// <summary>
51+
/// Determines whether or not the specified input is lowercased
52+
/// </summary>
53+
/// <param name="input">The input to check</param>
54+
/// <returns>A boolean indicating whether or not the specified input is lowercased</returns>
55+
public static bool IsLowercased(this string input) => input.Where(char.IsLetter).All(char.IsLower);
56+
57+
/// <summary>
58+
/// Determines whether or not the specified input is uppercased
59+
/// </summary>
60+
/// <param name="input">The input to check</param>
61+
/// <returns>A boolean indicating whether or not the specified input is uppercased</returns>
62+
public static bool IsUppercased(this string input) => input.All(char.IsLower);
63+
2864
/// <summary>
2965
/// Converts the string to its camel case representation
3066
/// </summary>

src/Neuroglia.Core/IOperationResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface IOperationResult
3030
object? Data { get; }
3131

3232
/// <summary>
33-
/// Gets a list containing the errors that have occured, if any, during the execution of the operation
33+
/// Gets a list containing the errors that have occurred, if any, during the execution of the operation
3434
/// </summary>
3535
IReadOnlyCollection<Error>? Errors { get; }
3636

src/Neuroglia.Core/OperationResult.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ protected OperationResult() { }
3838
/// </summary>
3939
/// <param name="status">A value that describes the status of the operation result</param>
4040
/// <param name="data">The data, if any, returned by the operation in case of success</param>
41-
/// <param name="errors">A list of the errors that have occured, if any, during the execution of the operation</param>
41+
/// <param name="errors">A list of the errors that have occurred, if any, during the execution of the operation</param>
4242
public OperationResult(int status, object? data = null, params Error[] errors)
4343
{
4444
this.Status = status;
@@ -80,7 +80,7 @@ protected OperationResult() { }
8080
/// </summary>
8181
/// <param name="status">A value that describes the status of the operation result</param>
8282
/// <param name="data">The data, if any, returned by the operation in case of success</param>
83-
/// <param name="errors">A list of the errors that have occured, if any, during the execution of the operation</param>
83+
/// <param name="errors">A list of the errors that have occurred, if any, during the execution of the operation</param>
8484
public OperationResult(int status, object? data = null, params Error[] errors) : base(status, data, errors) { }
8585

8686
/// <inheritdoc/>

src/Neuroglia.Core/ProblemDetails.cs

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
// Copyright © 2021-Present Neuroglia SRL. All rights reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License"),
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
// http://www.apache.org/licenses/LICENSE-2.0
7+
//
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
14+
using System.Runtime.Serialization;
15+
using System.Text.Json.Serialization;
16+
17+
namespace Neuroglia;
18+
19+
/// <summary>
20+
/// Represents an object used to describe a problem, as defined by <see href="https://www.rfc-editor.org/rfc/rfc7807">RFC 7807</see>
21+
/// </summary>
22+
[DataContract]
23+
public record ProblemDetails
24+
: IExtensible
25+
{
26+
27+
/// <summary>
28+
/// Initialize a new <see cref="ProblemDetails"/>
29+
/// </summary>
30+
public ProblemDetails() { }
31+
32+
/// <summary>
33+
/// Initialize a new <see cref="ProblemDetails"/>
34+
/// </summary>
35+
/// <param name="type">An uri that reference the type of the described problem</param>
36+
/// <param name="title">A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization</param>
37+
/// <param name="status">The status code produced by the described problem</param>
38+
/// <param name="detail">A human-readable explanation specific to this occurrence of the problem</param>
39+
/// <param name="instance">A <see cref="Uri"/> reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced</param>
40+
/// <param name="errors">An optional collection containing error messages mapped per error code</param>
41+
/// <param name="extensionData">A mapping containing problem details extension data, if any</param>
42+
public ProblemDetails(Uri type, string title, int status, string? detail = null, Uri? instance = null, IEnumerable<KeyValuePair<string, string[]>>? errors = null, IDictionary<string, object>? extensionData = null)
43+
{
44+
this.Type = type ?? throw new ArgumentNullException(nameof(type));
45+
this.Title = title ?? throw new ArgumentNullException(nameof(title));
46+
this.Status = status;
47+
this.Detail = detail;
48+
this.Instance = instance;
49+
this.Errors = errors?.WithValueSemantics();
50+
this.ExtensionData = extensionData;
51+
}
52+
53+
/// <summary>
54+
/// Gets/sets an uri that reference the type of the described problem.
55+
/// </summary>
56+
[DataMember(Order = 1, Name = "type"), JsonPropertyName("type")]
57+
public virtual Uri? Type { get; set; } = null!;
58+
59+
/// <summary>
60+
/// Gets/sets a short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
61+
/// </summary>
62+
[DataMember(Order = 2, Name = "title"), JsonPropertyName("title")]
63+
public virtual string? Title { get; set; } = null!;
64+
65+
/// <summary>
66+
/// Gets/sets the status code produced by the described problem
67+
/// </summary>
68+
[DataMember(Order = 3, Name = "status"), JsonPropertyName("status"),]
69+
public virtual int Status { get; set; }
70+
71+
/// <summary>
72+
/// Gets/sets a human-readable explanation specific to this occurrence of the problem.
73+
/// </summary>
74+
[DataMember(Order = 4, Name = "detail"), JsonPropertyName("detail")]
75+
public virtual string? Detail { get; set; }
76+
77+
/// <summary>
78+
/// Gets/sets a <see cref="Uri"/> reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced.
79+
/// </summary>
80+
[DataMember(Order = 5, Name = "instance"), JsonPropertyName("instance")]
81+
public virtual Uri? Instance { get; set; }
82+
83+
/// <summary>
84+
/// Gets/sets an optional collection containing error messages mapped per error code
85+
/// </summary>
86+
[DataMember(Order = 6, Name = "errors"), JsonPropertyName("errors")]
87+
public virtual EquatableList<KeyValuePair<string, string[]>>? Errors { get; set; }
88+
89+
/// <summary>
90+
/// Gets/sets a mapping containing problem details extension data, if any
91+
/// </summary>
92+
[DataMember(Order = 7, Name = "extensionData"), JsonExtensionData]
93+
public virtual IDictionary<string, object>? ExtensionData { get; set; }
94+
95+
/// <inheritdoc/>
96+
public override string ToString() => this.Detail ?? Environment.NewLine + string.Join(Environment.NewLine, this.Errors?.Select(e => string.Join(Environment.NewLine, e.Value.Select(v => $"{e.Key}: {v}")))!);
97+
98+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright © 2021-Present Neuroglia SRL. All rights reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License"),
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
// http://www.apache.org/licenses/LICENSE-2.0
7+
//
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
14+
namespace Neuroglia;
15+
16+
/// <summary>
17+
/// Represents an <see cref="Exception"/> described by <see cref="ProblemDetails"/>
18+
/// </summary>
19+
/// <remarks>
20+
/// Initializes a new <see cref="ProblemDetailsException"/>
21+
/// </remarks>
22+
/// <param name="problem">An object that describes the problem that has occurred</param>
23+
public class ProblemDetailsException(ProblemDetails problem)
24+
: Exception($"[{problem.Status} - {problem.Title}] {problem.Detail}{(problem.Errors?.Count > 0 ? Environment.NewLine + string.Join(Environment.NewLine, problem.Errors.Select(e => $"{e.Key}: {string.Join(", ", e.Value)}")) : "")}")
25+
{
26+
27+
/// <summary>
28+
/// An object that describes the problem that has occurred
29+
/// </summary>
30+
public ProblemDetails Problem { get; } = problem;
31+
32+
}

src/Neuroglia.Data.Expressions.Abstractions/Neuroglia.Data.Expressions.Abstractions.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
</ItemGroup>
3131

3232
<ItemGroup>
33-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
33+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
3434
</ItemGroup>
3535

3636
<ItemGroup>

src/Neuroglia.Data.Expressions.JQ/JQExpressionEvaluator.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public virtual bool Supports(string language)
140140
try { File.Delete(file); } catch { }
141141
}
142142

143-
if (process.ExitCode != 0) throw new Exception($"An error occured while evaluting the specified expression: {error}");
143+
if (process.ExitCode != 0) throw new Exception($"An error occurred while evaluting the specified expression: {error}");
144144
if (string.IsNullOrWhiteSpace(output)) return null;
145145
return this.Serializer.Deserialize(output, expectedType);
146146
}

src/Neuroglia.Data.Expressions.JQ/Neuroglia.Data.Expressions.JQ.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
32+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
3333
</ItemGroup>
3434

3535
<ItemGroup>

src/Neuroglia.Data.Expressions.JavaScript/JavaScriptExpressionEvaluator.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public JavaScriptExpressionEvaluator(ILogger<JavaScriptExpressionEvaluator> logg
6363
public virtual Task<object?> EvaluateAsync(string expression, object data, IDictionary<string, object>? args = null, Type? expectedType = null, CancellationToken cancellationToken = default)
6464
{
6565
if (string.IsNullOrWhiteSpace(expression)) throw new ArgumentNullException(nameof(expression));
66-
if (data == null) throw new ArgumentNullException(nameof(data));
66+
ArgumentNullException.ThrowIfNull(data);
6767
if (expectedType == null) expectedType = typeof(object);
6868
return Task.Run(() =>
6969
{

src/Neuroglia.Data.Expressions.JavaScript/Neuroglia.Data.Expressions.JavaScript.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
<ItemGroup>
3232
<PackageReference Include="Jint" Version="3.0.0-beta-2049" />
33-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
33+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
3434
</ItemGroup>
3535

3636
<ItemGroup>

src/Neuroglia.Data.Infrastructure.Abstractions/Neuroglia.Data.Infrastructure.Abstractions.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
</ItemGroup>
3131

3232
<ItemGroup>
33-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
33+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
3434
</ItemGroup>
3535

3636
<ItemGroup>

src/Neuroglia.Data.Infrastructure.EventSourcing.EventStore/Neuroglia.Data.Infrastructure.EventSourcing.EventStore.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<PackageReference Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.1.0" />
33-
<PackageReference Include="EventStore.Client.Grpc.Streams" Version="23.1.0" />
32+
<PackageReference Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.2.1" />
33+
<PackageReference Include="EventStore.Client.Grpc.Streams" Version="23.2.1" />
3434
<PackageReference Include="System.Reactive" Version="6.0.0" />
3535
</ItemGroup>
3636

0 commit comments

Comments
 (0)