From 8eb0e8d84f1b06a695600f328b86ad211bdddc6d Mon Sep 17 00:00:00 2001 From: Matteo Gregoricchio <32459930+followynne@users.noreply.github.com> Date: Mon, 29 Jan 2024 23:20:53 +0100 Subject: [PATCH] chore: release serilog-ui 2.6.0 (#110) --- samples/SampleWebApp/SampleWebApp.csproj | 1 + src/Serilog.Ui.Core/AggregateDataProvider.cs | 37 +- .../RelationalDbOptionsExtensions.cs | 9 + src/Serilog.Ui.Core/Models/LogModel.cs | 24 ++ .../OptionsBuilder/RelationalDbOptions.cs | 12 + .../OptionsBuilder/SerilogUiOptionsBuilder.cs | 8 + src/Serilog.Ui.Core/Serilog.Ui.Core.csproj | 2 +- .../Serilog.Ui.ElasticSearchProvider.csproj | 2 +- .../Serilog.Ui.MongoDbProvider.csproj | 2 +- .../package-lock.json | 6 + .../Serilog.Ui.MySqlProvider.csproj | 6 +- .../Extensions/PostgreSqlDbOptions.cs | 4 + .../Extensions/PostgreSqlSinkType.cs | 13 +- .../PostgreDataProvider.cs | 3 + .../Serilog.Ui.PostgreSqlProvider.csproj | 2 +- .../Endpoints/SerilogUiEndpoints.cs | 2 +- .../Extensions/ServiceCollectionExtensions.cs | 2 +- src/Serilog.Ui.Web/Serilog.Ui.Web.csproj | 5 +- src/Serilog.Ui.Web/package-lock.json | 376 +++++++++--------- src/Serilog.Ui.Web/package.json | 7 +- .../DataSamples/MongoDbLogModelFaker.cs | 6 +- .../TestSuites/Impl/IntegrationSearchTests.cs | 5 +- .../SerilogUiOptionBuilderExtensionsTest.cs | 4 +- .../DataProvider/QueryBuilderTests.cs | 56 ++- .../BasicAuthenticationFilterTests.cs | 11 +- .../Serilog.Ui.Web.Tests.csproj | 1 + 26 files changed, 367 insertions(+), 239 deletions(-) create mode 100644 src/Serilog.Ui.MsSqlServerProvider/package-lock.json diff --git a/samples/SampleWebApp/SampleWebApp.csproj b/samples/SampleWebApp/SampleWebApp.csproj index 925b7214..897bd2ed 100644 --- a/samples/SampleWebApp/SampleWebApp.csproj +++ b/samples/SampleWebApp/SampleWebApp.csproj @@ -30,6 +30,7 @@ + diff --git a/src/Serilog.Ui.Core/AggregateDataProvider.cs b/src/Serilog.Ui.Core/AggregateDataProvider.cs index 48208668..5eda60b9 100644 --- a/src/Serilog.Ui.Core/AggregateDataProvider.cs +++ b/src/Serilog.Ui.Core/AggregateDataProvider.cs @@ -2,21 +2,26 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Ardalis.GuardClauses; namespace Serilog.Ui.Core { /// - /// Aggregates multiple into one instance. + /// Aggregates multiple into one instance. /// public class AggregateDataProvider : IDataProvider { - private IDataProvider _selectedDataProvider; - private readonly Dictionary _dataProviders = new Dictionary(); + private readonly Dictionary _dataProviders = new(); + /// + /// It creates an instance of . + /// + /// IEnumerable of providers. + /// when is null + /// when is empty public AggregateDataProvider(IEnumerable dataProviders) { - if (dataProviders == null) - throw new ArgumentNullException(nameof(dataProviders)); + Guard.Against.NullOrEmpty(dataProviders, nameof(dataProviders)); foreach (var grouped in dataProviders.GroupBy(dp => dp.Name, p => p, (k, e) => e.ToList())) { @@ -39,25 +44,33 @@ public AggregateDataProvider(IEnumerable dataProviders) } } - _selectedDataProvider = _dataProviders.First(c => true).Value; + SelectedDataProvider = _dataProviders.First().Value; } /// - /// NOTE We assume only one Aggregate provider, so - /// the name is static. + /// + /// NOTE: We assume only one Aggregate provider, so the name is static. /// public string Name => nameof(AggregateDataProvider); /// - /// If there is only one data provider, this is it. If there are multiple, this is the - /// current data provider. + /// If there is only one data provider, this is it. + /// If there are multiple, this is the current data provider. /// - public IDataProvider SelectedDataProvider => _selectedDataProvider; + private IDataProvider SelectedDataProvider { get; set; } - public void SwitchToProvider(string key) => _selectedDataProvider = _dataProviders[key]; + /// + /// Switch active data provider by key. + /// + /// Data provider key + public void SwitchToProvider(string key) => SelectedDataProvider = _dataProviders[key]; + /// + /// Existing data providers keys. + /// public IEnumerable Keys => _dataProviders.Keys; + /// public Task<(IEnumerable, int)> FetchDataAsync( int page, int count, diff --git a/src/Serilog.Ui.Core/Extensions/RelationalDbOptionsExtensions.cs b/src/Serilog.Ui.Core/Extensions/RelationalDbOptionsExtensions.cs index c56bcd28..7b0042c8 100644 --- a/src/Serilog.Ui.Core/Extensions/RelationalDbOptionsExtensions.cs +++ b/src/Serilog.Ui.Core/Extensions/RelationalDbOptionsExtensions.cs @@ -1,7 +1,16 @@ namespace Serilog.Ui.Core { + /// + /// Relational Db Options extensions. + /// public static class RelationalDbOptionsExtensions { + /// + /// Generates a complete data provider name, by using its properties. + /// + /// + /// Data provider name. + /// public static string ToDataProviderName(this RelationalDbOptions options, string providerName) => string.Join(".", providerName, options.Schema, options.TableName); } diff --git a/src/Serilog.Ui.Core/Models/LogModel.cs b/src/Serilog.Ui.Core/Models/LogModel.cs index 608aa2d1..bc9a0b20 100644 --- a/src/Serilog.Ui.Core/Models/LogModel.cs +++ b/src/Serilog.Ui.Core/Models/LogModel.cs @@ -2,20 +2,44 @@ namespace Serilog.Ui.Core { + /// + /// Log Model class. + /// public class LogModel { + /// + /// It gets or sets RowNo. + /// public virtual int RowNo { get; set; } + /// + /// It gets or sets Level. + /// public virtual string Level { get; set; } + /// + /// It gets or sets Message. + /// public virtual string Message { get; set; } + /// + /// It gets or sets Timestamp. + /// public virtual DateTime Timestamp { get; set; } + /// + /// It gets or sets Exception. + /// public virtual string Exception { get; set; } + /// + /// It gets or sets Properties. + /// public virtual string Properties { get; set; } + /// + /// It gets or sets PropertyType. + /// public virtual string PropertyType { get; set; } } } \ No newline at end of file diff --git a/src/Serilog.Ui.Core/OptionsBuilder/RelationalDbOptions.cs b/src/Serilog.Ui.Core/OptionsBuilder/RelationalDbOptions.cs index 99d06763..4c17e11b 100644 --- a/src/Serilog.Ui.Core/OptionsBuilder/RelationalDbOptions.cs +++ b/src/Serilog.Ui.Core/OptionsBuilder/RelationalDbOptions.cs @@ -1,11 +1,23 @@ namespace Serilog.Ui.Core { + /// + /// RelationDbOptions class + /// public class RelationalDbOptions { + /// + /// It gets or sets ConnectionString. + /// public string ConnectionString { get; set; } + /// + /// It gets or sets TableName. + /// public string TableName { get; set; } + /// + /// It gets or sets Schema. + /// public string Schema { get; set; } } } \ No newline at end of file diff --git a/src/Serilog.Ui.Core/OptionsBuilder/SerilogUiOptionsBuilder.cs b/src/Serilog.Ui.Core/OptionsBuilder/SerilogUiOptionsBuilder.cs index 505a9ac9..5ff565c1 100644 --- a/src/Serilog.Ui.Core/OptionsBuilder/SerilogUiOptionsBuilder.cs +++ b/src/Serilog.Ui.Core/OptionsBuilder/SerilogUiOptionsBuilder.cs @@ -2,10 +2,18 @@ namespace Serilog.Ui.Core { + /// + /// SerilogUi OptionsBuilder class, used during app services registration. + /// Implements . + /// public class SerilogUiOptionsBuilder : ISerilogUiOptionsBuilder { private readonly IServiceCollection _services; + /// + /// It creates an instance of . + /// + /// Service collection. public SerilogUiOptionsBuilder(IServiceCollection services) { _services = services; diff --git a/src/Serilog.Ui.Core/Serilog.Ui.Core.csproj b/src/Serilog.Ui.Core/Serilog.Ui.Core.csproj index 81cb1365..d860c047 100644 --- a/src/Serilog.Ui.Core/Serilog.Ui.Core.csproj +++ b/src/Serilog.Ui.Core/Serilog.Ui.Core.csproj @@ -3,7 +3,7 @@ netstandard2.0 True latest - 2.5.0 + 2.6.0 diff --git a/src/Serilog.Ui.ElasticSearchProvider/Serilog.Ui.ElasticSearchProvider.csproj b/src/Serilog.Ui.ElasticSearchProvider/Serilog.Ui.ElasticSearchProvider.csproj index df5193a2..1784c646 100644 --- a/src/Serilog.Ui.ElasticSearchProvider/Serilog.Ui.ElasticSearchProvider.csproj +++ b/src/Serilog.Ui.ElasticSearchProvider/Serilog.Ui.ElasticSearchProvider.csproj @@ -12,6 +12,6 @@ - + \ No newline at end of file diff --git a/src/Serilog.Ui.MongoDbProvider/Serilog.Ui.MongoDbProvider.csproj b/src/Serilog.Ui.MongoDbProvider/Serilog.Ui.MongoDbProvider.csproj index de60b6d9..631bbb3a 100644 --- a/src/Serilog.Ui.MongoDbProvider/Serilog.Ui.MongoDbProvider.csproj +++ b/src/Serilog.Ui.MongoDbProvider/Serilog.Ui.MongoDbProvider.csproj @@ -13,6 +13,6 @@ - + \ No newline at end of file diff --git a/src/Serilog.Ui.MsSqlServerProvider/package-lock.json b/src/Serilog.Ui.MsSqlServerProvider/package-lock.json new file mode 100644 index 00000000..6390b5ee --- /dev/null +++ b/src/Serilog.Ui.MsSqlServerProvider/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "Serilog.Ui.MsSqlServerProvider", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/src/Serilog.Ui.MySqlProvider/Serilog.Ui.MySqlProvider.csproj b/src/Serilog.Ui.MySqlProvider/Serilog.Ui.MySqlProvider.csproj index 9ac5aa7f..f223b848 100644 --- a/src/Serilog.Ui.MySqlProvider/Serilog.Ui.MySqlProvider.csproj +++ b/src/Serilog.Ui.MySqlProvider/Serilog.Ui.MySqlProvider.csproj @@ -2,8 +2,8 @@ netstandard2.0 - latest - 2.2.1 + latest + 2.2.1 @@ -12,6 +12,6 @@ - + \ No newline at end of file diff --git a/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlDbOptions.cs b/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlDbOptions.cs index 1170c2a5..6aee1604 100644 --- a/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlDbOptions.cs +++ b/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlDbOptions.cs @@ -2,7 +2,11 @@ namespace Serilog.Ui.PostgreSqlProvider; +/// - Postgres implementation public class PostgreSqlDbOptions : RelationalDbOptions { + /// + /// It gets or sets SinkType. + /// public PostgreSqlSinkType SinkType { get; set; } } \ No newline at end of file diff --git a/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlSinkType.cs b/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlSinkType.cs index 74046dcc..55c6641b 100644 --- a/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlSinkType.cs +++ b/src/Serilog.Ui.PostgreSqlProvider/Extensions/PostgreSqlSinkType.cs @@ -1,8 +1,17 @@ -namespace Serilog.Ui.PostgreSqlProvider; +// ReSharper disable InconsistentNaming +namespace Serilog.Ui.PostgreSqlProvider; +/// +/// Available Postgres sink types. +/// public enum PostgreSqlSinkType { + /// + /// Sink + /// SerilogSinksPostgreSQL, - + /// + /// Sink + /// SerilogSinksPostgreSQLAlternative } \ No newline at end of file diff --git a/src/Serilog.Ui.PostgreSqlProvider/PostgreDataProvider.cs b/src/Serilog.Ui.PostgreSqlProvider/PostgreDataProvider.cs index d5226b83..fa9ef667 100644 --- a/src/Serilog.Ui.PostgreSqlProvider/PostgreDataProvider.cs +++ b/src/Serilog.Ui.PostgreSqlProvider/PostgreDataProvider.cs @@ -10,10 +10,13 @@ namespace Serilog.Ui.PostgreSqlProvider; +/// public class PostgresDataProvider(PostgreSqlDbOptions options) : IDataProvider { + /// public string Name => options.ToDataProviderName("NPGSQL"); + /// public async Task<(IEnumerable, int)> FetchDataAsync( int page, int count, diff --git a/src/Serilog.Ui.PostgreSqlProvider/Serilog.Ui.PostgreSqlProvider.csproj b/src/Serilog.Ui.PostgreSqlProvider/Serilog.Ui.PostgreSqlProvider.csproj index 3123747e..59c5cb6c 100644 --- a/src/Serilog.Ui.PostgreSqlProvider/Serilog.Ui.PostgreSqlProvider.csproj +++ b/src/Serilog.Ui.PostgreSqlProvider/Serilog.Ui.PostgreSqlProvider.csproj @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/src/Serilog.Ui.Web/Endpoints/SerilogUiEndpoints.cs b/src/Serilog.Ui.Web/Endpoints/SerilogUiEndpoints.cs index 1771c048..6a239a58 100644 --- a/src/Serilog.Ui.Web/Endpoints/SerilogUiEndpoints.cs +++ b/src/Serilog.Ui.Web/Endpoints/SerilogUiEndpoints.cs @@ -122,7 +122,7 @@ private static (int currPage, int count, string dbKey, string level, string text /// private Task OnError(HttpContext httpContext, Exception ex) { - _logger.LogError(ex, "@Message", ex.Message); + _logger.LogError(ex, "{Message}", ex.Message); httpContext.Response.StatusCode = (int) HttpStatusCode.InternalServerError; httpContext.Response.ContentType = "application/problem+json"; diff --git a/src/Serilog.Ui.Web/Extensions/ServiceCollectionExtensions.cs b/src/Serilog.Ui.Web/Extensions/ServiceCollectionExtensions.cs index fb063cd9..3fb1f287 100644 --- a/src/Serilog.Ui.Web/Extensions/ServiceCollectionExtensions.cs +++ b/src/Serilog.Ui.Web/Extensions/ServiceCollectionExtensions.cs @@ -40,7 +40,7 @@ public static IServiceCollection AddSerilogUi(this IServiceCollection services, services.AddScoped(); services.Decorate(); - services.TryAddScoped(typeof(AggregateDataProvider)); + services.TryAddScoped(); return services; } diff --git a/src/Serilog.Ui.Web/Serilog.Ui.Web.csproj b/src/Serilog.Ui.Web/Serilog.Ui.Web.csproj index 99f3db45..0cdbdd10 100644 --- a/src/Serilog.Ui.Web/Serilog.Ui.Web.csproj +++ b/src/Serilog.Ui.Web/Serilog.Ui.Web.csproj @@ -1,9 +1,10 @@  + Serilog.UI netcoreapp3.1;net5.0;net6.0;net7.0 latest - 2.5.1 + 2.6.0 @@ -15,7 +16,7 @@ - + diff --git a/src/Serilog.Ui.Web/package-lock.json b/src/Serilog.Ui.Web/package-lock.json index 54c63141..1b687eea 100644 --- a/src/Serilog.Ui.Web/package-lock.json +++ b/src/Serilog.Ui.Web/package-lock.json @@ -1,12 +1,12 @@ { "name": "serilog-ui", - "version": "1.0.0", + "version": "2.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "serilog-ui", - "version": "1.0.0", + "version": "2.6.0", "dependencies": { "@fortawesome/fontawesome-free": "^6.5.1", "bootstrap": "4.5.3", @@ -24,7 +24,7 @@ "@types/jest": "^29.5.1", "@types/jquery": "^3.5.16", "@types/jsdom": "^21.1.1", - "@types/node": "^20.11.0", + "@types/node": "^20.11.9", "@types/parcel-bundler": "^1.12.5", "grunt": "^1.6.1", "grunt-contrib-clean": "^2.0.1", @@ -40,12 +40,15 @@ "ts-jest": "^29.1.0", "typescript": "^5.0.4", "whatwg-fetch": "^3.6.2" + }, + "optionalDependencies": { + "@parcel/watcher-linux-x64-glibc": "^2.4.0" } }, "node_modules/@adobe/css-tools": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz", - "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", "dev": true }, "node_modules/@ampproject/remapping": { @@ -146,9 +149,9 @@ } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -156,11 +159,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -332,14 +335,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", - "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" @@ -422,9 +425,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -611,9 +614,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", - "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -622,23 +625,23 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", @@ -647,8 +650,8 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -657,9 +660,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -1069,9 +1072,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1079,15 +1082,15 @@ } }, "node_modules/@lezer/common": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.0.tgz", - "integrity": "sha512-Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", + "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==", "dev": true }, "node_modules/@lezer/lr": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz", - "integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz", + "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==", "dev": true, "dependencies": { "@lezer/common": "^1.0.0" @@ -2572,9 +2575,9 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", - "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz", + "integrity": "sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2591,24 +2594,24 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.3.0", - "@parcel/watcher-darwin-arm64": "2.3.0", - "@parcel/watcher-darwin-x64": "2.3.0", - "@parcel/watcher-freebsd-x64": "2.3.0", - "@parcel/watcher-linux-arm-glibc": "2.3.0", - "@parcel/watcher-linux-arm64-glibc": "2.3.0", - "@parcel/watcher-linux-arm64-musl": "2.3.0", - "@parcel/watcher-linux-x64-glibc": "2.3.0", - "@parcel/watcher-linux-x64-musl": "2.3.0", - "@parcel/watcher-win32-arm64": "2.3.0", - "@parcel/watcher-win32-ia32": "2.3.0", - "@parcel/watcher-win32-x64": "2.3.0" + "@parcel/watcher-android-arm64": "2.4.0", + "@parcel/watcher-darwin-arm64": "2.4.0", + "@parcel/watcher-darwin-x64": "2.4.0", + "@parcel/watcher-freebsd-x64": "2.4.0", + "@parcel/watcher-linux-arm-glibc": "2.4.0", + "@parcel/watcher-linux-arm64-glibc": "2.4.0", + "@parcel/watcher-linux-arm64-musl": "2.4.0", + "@parcel/watcher-linux-x64-glibc": "2.4.0", + "@parcel/watcher-linux-x64-musl": "2.4.0", + "@parcel/watcher-win32-arm64": "2.4.0", + "@parcel/watcher-win32-ia32": "2.4.0", + "@parcel/watcher-win32-x64": "2.4.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz", - "integrity": "sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz", + "integrity": "sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==", "cpu": [ "arm64" ], @@ -2626,9 +2629,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz", - "integrity": "sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz", + "integrity": "sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==", "cpu": [ "arm64" ], @@ -2646,9 +2649,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz", - "integrity": "sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz", + "integrity": "sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==", "cpu": [ "x64" ], @@ -2666,9 +2669,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz", - "integrity": "sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz", + "integrity": "sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==", "cpu": [ "x64" ], @@ -2686,9 +2689,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz", - "integrity": "sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz", + "integrity": "sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==", "cpu": [ "arm" ], @@ -2706,9 +2709,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz", - "integrity": "sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz", + "integrity": "sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==", "cpu": [ "arm64" ], @@ -2726,9 +2729,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz", - "integrity": "sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz", + "integrity": "sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==", "cpu": [ "arm64" ], @@ -2746,13 +2749,12 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", - "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz", + "integrity": "sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2766,9 +2768,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", - "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz", + "integrity": "sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==", "cpu": [ "x64" ], @@ -2786,9 +2788,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz", - "integrity": "sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz", + "integrity": "sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==", "cpu": [ "arm64" ], @@ -2806,9 +2808,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz", - "integrity": "sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz", + "integrity": "sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==", "cpu": [ "ia32" ], @@ -2826,9 +2828,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz", - "integrity": "sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz", + "integrity": "sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==", "cpu": [ "x64" ], @@ -2886,9 +2888,9 @@ "dev": true }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -3070,9 +3072,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.17.42", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz", + "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==", "dev": true, "dependencies": { "@types/node": "*", @@ -3201,9 +3203,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz", - "integrity": "sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==", + "version": "20.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.9.tgz", + "integrity": "sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -3349,9 +3351,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -3725,9 +3727,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", "dev": true, "funding": [ { @@ -3744,8 +3746,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -3840,9 +3842,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001572", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", - "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "version": "1.0.30001581", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz", + "integrity": "sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==", "dev": true, "funding": [ { @@ -4656,9 +4658,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.618", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.618.tgz", - "integrity": "sha512-mTM2HieHLxs1RbD/R/ZoQLMsGI8lWIkP17G7cx32mJRBJt9wlNPkXwE3sYg/OnNb5GBkus98lXatSthoL8Y5Ag==", + "version": "1.4.648", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz", + "integrity": "sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==", "dev": true }, "node_modules/emittery": { @@ -7579,9 +7581,9 @@ } }, "node_modules/lightningcss": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.22.1.tgz", - "integrity": "sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.23.0.tgz", + "integrity": "sha512-SEArWKMHhqn/0QzOtclIwH5pXIYQOUEkF8DgICd/105O+GCgd7jxjNod/QPnBCSWvpRHQBGVz5fQ9uScby03zA==", "dev": true, "dependencies": { "detect-libc": "^1.0.3" @@ -7594,21 +7596,21 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.22.1", - "lightningcss-darwin-x64": "1.22.1", - "lightningcss-freebsd-x64": "1.22.1", - "lightningcss-linux-arm-gnueabihf": "1.22.1", - "lightningcss-linux-arm64-gnu": "1.22.1", - "lightningcss-linux-arm64-musl": "1.22.1", - "lightningcss-linux-x64-gnu": "1.22.1", - "lightningcss-linux-x64-musl": "1.22.1", - "lightningcss-win32-x64-msvc": "1.22.1" + "lightningcss-darwin-arm64": "1.23.0", + "lightningcss-darwin-x64": "1.23.0", + "lightningcss-freebsd-x64": "1.23.0", + "lightningcss-linux-arm-gnueabihf": "1.23.0", + "lightningcss-linux-arm64-gnu": "1.23.0", + "lightningcss-linux-arm64-musl": "1.23.0", + "lightningcss-linux-x64-gnu": "1.23.0", + "lightningcss-linux-x64-musl": "1.23.0", + "lightningcss-win32-x64-msvc": "1.23.0" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz", - "integrity": "sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.23.0.tgz", + "integrity": "sha512-kl4Pk3Q2lnE6AJ7Qaij47KNEfY2/UXRZBT/zqGA24B8qwkgllr/j7rclKOf1axcslNXvvUdztjo4Xqh39Yq1aA==", "cpu": [ "arm64" ], @@ -7626,9 +7628,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz", - "integrity": "sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.23.0.tgz", + "integrity": "sha512-KeRFCNoYfDdcolcFXvokVw+PXCapd2yHS1Diko1z1BhRz/nQuD5XyZmxjWdhmhN/zj5sH8YvWsp0/lPLVzqKpg==", "cpu": [ "x64" ], @@ -7646,9 +7648,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz", - "integrity": "sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.23.0.tgz", + "integrity": "sha512-xhnhf0bWPuZxcqknvMDRFFo2TInrmQRWZGB0f6YoAsZX8Y+epfjHeeOIGCfAmgF0DgZxHwYc8mIR5tQU9/+ROA==", "cpu": [ "x64" ], @@ -7666,9 +7668,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz", - "integrity": "sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.23.0.tgz", + "integrity": "sha512-fBamf/bULvmWft9uuX+bZske236pUZEoUlaHNBjnueaCTJ/xd8eXgb0cEc7S5o0Nn6kxlauMBnqJpF70Bgq3zg==", "cpu": [ "arm" ], @@ -7686,9 +7688,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz", - "integrity": "sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.23.0.tgz", + "integrity": "sha512-RS7sY77yVLOmZD6xW2uEHByYHhQi5JYWmgVumYY85BfNoVI3DupXSlzbw+b45A9NnVKq45+oXkiN6ouMMtTwfg==", "cpu": [ "arm64" ], @@ -7706,9 +7708,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz", - "integrity": "sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.23.0.tgz", + "integrity": "sha512-cU00LGb6GUXCwof6ACgSMKo3q7XYbsyTj0WsKHLi1nw7pV0NCq8nFTn6ZRBYLoKiV8t+jWl0Hv8KkgymmK5L5g==", "cpu": [ "arm64" ], @@ -7726,9 +7728,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz", - "integrity": "sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.23.0.tgz", + "integrity": "sha512-q4jdx5+5NfB0/qMbXbOmuC6oo7caPnFghJbIAV90cXZqgV8Am3miZhC4p+sQVdacqxfd+3nrle4C8icR3p1AYw==", "cpu": [ "x64" ], @@ -7746,9 +7748,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz", - "integrity": "sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.23.0.tgz", + "integrity": "sha512-G9Ri3qpmF4qef2CV/80dADHKXRAQeQXpQTLx7AiQrBYQHqBjB75oxqj06FCIe5g4hNCqLPnM9fsO4CyiT1sFSQ==", "cpu": [ "x64" ], @@ -7766,9 +7768,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz", - "integrity": "sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.23.0.tgz", + "integrity": "sha512-1rcBDJLU+obPPJM6qR5fgBUiCdZwZLafZM5f9kwjFLkb/UBNIzmae39uCSmh71nzPCTXZqHbvwu23OWnWEz+eg==", "cpu": [ "x64" ], @@ -8210,10 +8212,13 @@ "integrity": "sha512-yyfRLCKAxodL/2PtbtPULWulsh8pa0GRTKZrzAtjwNKGGUL8GtyFYrcWmCIaPFGohWOcUfITDr2fr42GRFIg6Q==" }, "node_modules/node-addon-api": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", - "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==", - "dev": true + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "dev": true, + "engines": { + "node": "^16 || ^18 || >= 20" + } }, "node_modules/node-fetch": { "version": "2.7.0", @@ -9288,15 +9293,16 @@ "dev": true }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "dev": true, "dependencies": { "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -9626,9 +9632,9 @@ } }, "node_modules/terser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", - "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -9752,9 +9758,9 @@ } }, "node_modules/ts-jest": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", - "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", + "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", "dev": true, "dependencies": { "bs-logger": "0.x", @@ -9770,7 +9776,7 @@ "ts-jest": "cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", @@ -9970,9 +9976,9 @@ "dev": true }, "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", "dev": true, "engines": { "node": ">= 4" @@ -10242,9 +10248,9 @@ "dev": true }, "node_modules/xml-formatter": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-3.6.0.tgz", - "integrity": "sha512-Wic80ENNLF/5mLcc82hVLmoOWQlLDJtVv+N1/hkP4hBuVXPLKrXo92/4V23QYPKfUxvCU6Y2AcdpHCIA/xexFw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-3.6.2.tgz", + "integrity": "sha512-enWhevZNOwffZFUhzl1WMcha8lFLZUgJ7NzFs5Ug4ZOFCoNheGYXz1J9Iz/e+cTn9rCkuT1GwTacz+YlmFHOGw==", "dependencies": { "xml-parser-xo": "^4.1.0" }, diff --git a/src/Serilog.Ui.Web/package.json b/src/Serilog.Ui.Web/package.json index 9be65b6f..48d08a27 100644 --- a/src/Serilog.Ui.Web/package.json +++ b/src/Serilog.Ui.Web/package.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", + "version": "2.6.0", "name": "serilog-ui", "private": true, "scripts": { @@ -19,7 +19,7 @@ "@types/jest": "^29.5.1", "@types/jquery": "^3.5.16", "@types/jsdom": "^21.1.1", - "@types/node": "^20.11.0", + "@types/node": "^20.11.9", "@types/parcel-bundler": "^1.12.5", "grunt": "^1.6.1", "grunt-contrib-clean": "^2.0.1", @@ -45,6 +45,9 @@ "popper.js": "1.16.1", "xml-formatter": "^3.6.0" }, + "optionalDependencies": { + "@parcel/watcher-linux-x64-glibc": "^2.4.0" + }, "jest-junit": { "outputDirectory": "reports", "outputName": "jest-junit.xml", diff --git a/tests/Serilog.Ui.Common.Tests/DataSamples/MongoDbLogModelFaker.cs b/tests/Serilog.Ui.Common.Tests/DataSamples/MongoDbLogModelFaker.cs index 83fab0ea..a4475add 100644 --- a/tests/Serilog.Ui.Common.Tests/DataSamples/MongoDbLogModelFaker.cs +++ b/tests/Serilog.Ui.Common.Tests/DataSamples/MongoDbLogModelFaker.cs @@ -3,7 +3,7 @@ using Serilog.Ui.MongoDbProvider; using System.Collections.Generic; using System.Linq; -using System.Text.Json; +using Newtonsoft.Json; using Bogus; namespace Serilog.Ui.Common.Tests.DataSamples @@ -18,7 +18,7 @@ public static (IEnumerable logs, LogModelPropsCollector collect var modelCollector = new LogModelPropsCollector(originalLogs); var faker = new Faker(); - + var logs = originalLogs.Select(p => new MongoDbLogModel { Id = p.RowNo, @@ -26,7 +26,7 @@ public static (IEnumerable logs, LogModelPropsCollector collect RenderedMessage = p.Message, Timestamp = p.Timestamp, UtcTimeStamp = p.Timestamp.ToUniversalTime(), - Properties = JsonSerializer.Deserialize(p.Properties), + Properties = JsonConvert.DeserializeObject(p.Properties), Exception = faker.System.Exception() // Serialization round-trip not possible for an exception, so we generate a new exception. .ToBsonDocument(), }); diff --git a/tests/Serilog.Ui.Common.Tests/TestSuites/Impl/IntegrationSearchTests.cs b/tests/Serilog.Ui.Common.Tests/TestSuites/Impl/IntegrationSearchTests.cs index ef7e8393..4814222c 100644 --- a/tests/Serilog.Ui.Common.Tests/TestSuites/Impl/IntegrationSearchTests.cs +++ b/tests/Serilog.Ui.Common.Tests/TestSuites/Impl/IntegrationSearchTests.cs @@ -47,7 +47,10 @@ protected virtual async Task It_finds_data_with_all_filters_by_utc(bool checkWit var log = Logs.First(); log.Message.Should().Be(logCollector.Example.Message); log.Level.Should().Be(logCollector.Example.Level); - if (!excludeProps) log.Properties.Should().Be(logCollector.Example.Properties); + if (!excludeProps) + { + log.Properties.Should().Be(logCollector.Example.Properties); + } ConvertToUtc(log.Timestamp, checkWithUtc).Should().BeCloseTo(logCollector.Example.Timestamp, TimeSpan.FromMinutes(5)); Count.Should().BeCloseTo(1, 2); } diff --git a/tests/Serilog.Ui.MsSqlServerProvider.Tests/Extensions/SerilogUiOptionBuilderExtensionsTest.cs b/tests/Serilog.Ui.MsSqlServerProvider.Tests/Extensions/SerilogUiOptionBuilderExtensionsTest.cs index b7835384..2ce699ac 100644 --- a/tests/Serilog.Ui.MsSqlServerProvider.Tests/Extensions/SerilogUiOptionBuilderExtensionsTest.cs +++ b/tests/Serilog.Ui.MsSqlServerProvider.Tests/Extensions/SerilogUiOptionBuilderExtensionsTest.cs @@ -41,10 +41,10 @@ public void It_throws_on_invalid_registration() { var nullables = new List> { - () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer(null, "name")), + () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer(null!, "name")), () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer(" ", "name")), () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer("", "name")), - () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer("name", null)), + () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer("name", null!)), () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer("name", " ")), () => serviceCollection.AddSerilogUi((builder) => builder.UseSqlServer("name", "")), }; diff --git a/tests/Serilog.Ui.PostgreSqlProvider.Tests/DataProvider/QueryBuilderTests.cs b/tests/Serilog.Ui.PostgreSqlProvider.Tests/DataProvider/QueryBuilderTests.cs index a2efabaf..467f5bf6 100644 --- a/tests/Serilog.Ui.PostgreSqlProvider.Tests/DataProvider/QueryBuilderTests.cs +++ b/tests/Serilog.Ui.PostgreSqlProvider.Tests/DataProvider/QueryBuilderTests.cs @@ -33,22 +33,46 @@ public class QueryBuilderTestData : IEnumerable { private readonly List _data = new() { - new object[] {"dbo", "logs", null, null , null, null, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", null, null, DateTime.Now, null, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Timestamp\" >= @StartDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", null, null, null, DateTime.Now, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Timestamp\" <= @EndDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", null, null, DateTime.Now, DateTime.Now, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Timestamp\" >= @StartDate AND \"Timestamp\" <= @EndDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", "Information", null, null, null, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Level\" = @Level ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", null, "Test", null, null, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND (\"Message\" LIKE @Search OR \"Exception\" LIKE @Search) ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", "Information", "Test", null, null, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Level\" = @Level AND (\"Message\" LIKE @Search OR \"Exception\" LIKE @Search) ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, - new object[] {"dbo", "logs", "Information", "Test", DateTime.Now, DateTime.Now, - "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Level\" = @Level AND (\"Message\" LIKE @Search OR \"Exception\" LIKE @Search) AND \"Timestamp\" >= @StartDate AND \"Timestamp\" <= @EndDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset "}, + new object[] + { + "dbo", "logs", null!, null!, null!, null!, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", null!, null!, DateTime.Now, null!, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Timestamp\" >= @StartDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", null!, null!, null!, DateTime.Now, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Timestamp\" <= @EndDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", null!, null!, DateTime.Now, DateTime.Now, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Timestamp\" >= @StartDate AND \"Timestamp\" <= @EndDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", "Information", null!, null!, null!, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Level\" = @Level ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", null!, "Test", null!, null!, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND (\"Message\" LIKE @Search OR \"Exception\" LIKE @Search) ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", "Information", "Test", null!, null!, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Level\" = @Level AND (\"Message\" LIKE @Search OR \"Exception\" LIKE @Search) ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, + new object[] + { + "dbo", "logs", "Information", "Test", DateTime.Now, DateTime.Now, + "SELECT \"Message\", \"MessageTemplate\", \"Level\", \"Timestamp\", \"Exception\", \"LogEvent\" AS \"Properties\" FROM \"dbo\".\"logs\" WHERE TRUE AND \"Level\" = @Level AND (\"Message\" LIKE @Search OR \"Exception\" LIKE @Search) AND \"Timestamp\" >= @StartDate AND \"Timestamp\" <= @EndDate ORDER BY \"Timestamp\" DESC LIMIT @Count OFFSET @Offset " + }, }; public IEnumerator GetEnumerator() => _data.GetEnumerator(); diff --git a/tests/Serilog.Ui.Web.Tests/Authorization/BasicAuthenticationFilterTests.cs b/tests/Serilog.Ui.Web.Tests/Authorization/BasicAuthenticationFilterTests.cs index e6ec73f0..a0b33bc8 100644 --- a/tests/Serilog.Ui.Web.Tests/Authorization/BasicAuthenticationFilterTests.cs +++ b/tests/Serilog.Ui.Web.Tests/Authorization/BasicAuthenticationFilterTests.cs @@ -1,16 +1,17 @@ using System.Linq; +using System.Threading.Tasks; using FluentAssertions; using Microsoft.AspNetCore.Http; using Microsoft.Net.Http.Headers; -using System.Threading.Tasks; +using Serilog.Ui.Web.Authorization; using Xunit; -namespace Serilog.Ui.Web.Authorization.Tests; +namespace Ui.Web.Tests.Authorization; public class BasicAuthenticationFilterTests { [Fact] - public async Task Authorize_WithValidCredentials_ShouldReturnTrue() + public void Authorize_WithValidCredentials_ShouldReturnTrue() { // Arrange var filter = new BasicAuthenticationFilter @@ -32,7 +33,7 @@ public async Task Authorize_WithValidCredentials_ShouldReturnTrue() } [Fact] - public async Task Authorize_WithInvalidCredentials_ShouldReturnFalse() + public void Authorize_WithInvalidCredentials_ShouldReturnFalse() { // Arrange var filter = new BasicAuthenticationFilter @@ -52,7 +53,7 @@ public async Task Authorize_WithInvalidCredentials_ShouldReturnFalse() } [Fact] - public async Task Authorize_WithMissingAuthorizationHeader_ShouldSetChallengeResponse() + public void Authorize_WithMissingAuthorizationHeader_ShouldSetChallengeResponse() { // Arrange var filter = new BasicAuthenticationFilter diff --git a/tests/Serilog.Ui.Web.Tests/Serilog.Ui.Web.Tests.csproj b/tests/Serilog.Ui.Web.Tests/Serilog.Ui.Web.Tests.csproj index 519f915c..27102552 100644 --- a/tests/Serilog.Ui.Web.Tests/Serilog.Ui.Web.Tests.csproj +++ b/tests/Serilog.Ui.Web.Tests/Serilog.Ui.Web.Tests.csproj @@ -24,6 +24,7 @@ +