Browse Source

Merge branch 'master' of github.com:Squidex/squidex

pull/1124/head
Sebastian Stehle 2 years ago
parent
commit
efd00e4dbd
  1. 10
      backend/extensions/Squidex.Extensions/Squidex.Extensions.csproj
  2. 2
      backend/src/Migrations/Migrations.csproj
  3. 2
      backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj
  4. 8
      backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Internal/CacheParser.cs
  5. 8
      backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs
  6. 2
      backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ScriptExecutionContext.cs
  7. 14
      backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj
  8. 7
      backend/src/Squidex.Domain.Apps.Core.Operations/Templates/Extensions/JsonArrayFluidValue.cs
  9. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Apps/MongoAppRepository.cs
  10. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetFolderRepository.cs
  11. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs
  12. 5
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/QueryInDedicatedCollection.cs
  13. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs
  14. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs
  15. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleRepository.cs
  16. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Schemas/MongoSchemaRepository.cs
  17. 4
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj
  18. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Teams/MongoTeamRepository.cs
  19. 6
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Text/MongoTextIndexBase.cs
  20. 1
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs
  21. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/Steps/ConvertData.cs
  22. 8
      backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj
  23. 2
      backend/src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj
  24. 6
      backend/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs
  25. 4
      backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj
  26. 6
      backend/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj
  27. 10
      backend/src/Squidex.Infrastructure.GetEventStore/Squidex.Infrastructure.GetEventStore.csproj
  28. 6
      backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs
  29. 6
      backend/src/Squidex.Infrastructure.MongoDb/Log/MongoRequestLogRepository.cs
  30. 6
      backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj
  31. 4
      backend/src/Squidex.Infrastructure/Commands/DefaultDomainObjectFactory.cs
  32. 20
      backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj
  33. 2
      backend/src/Squidex.Infrastructure/States/StoreExtensions.cs
  34. 2
      backend/src/Squidex.Infrastructure/Tasks/Scheduler.cs
  35. 2
      backend/src/Squidex.Infrastructure/Translations/MissingKeys.cs
  36. 2
      backend/src/Squidex.Shared/Squidex.Shared.csproj
  37. 2
      backend/src/Squidex.Web/GraphQL/DynamicUserContextBuilder.cs
  38. 8
      backend/src/Squidex.Web/Squidex.Web.csproj
  39. 2
      backend/src/Squidex/Areas/Api/Config/OpenApi/SecurityProcessor.cs
  40. 1
      backend/src/Squidex/Areas/Api/Controllers/Contents/ContentsController.cs
  41. 35
      backend/src/Squidex/Areas/Api/Controllers/Contents/ContentsSharedController.cs
  42. 2
      backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/OperationBuilder.cs
  43. 2
      backend/src/Squidex/Config/Domain/EventSourcingServices.cs
  44. 4
      backend/src/Squidex/Config/Domain/HealthCheckServices.cs
  45. 5
      backend/src/Squidex/Config/Domain/ResizeServices.cs
  46. 2
      backend/src/Squidex/Config/Domain/StoreServices.cs
  47. 1
      backend/src/Squidex/Config/Domain/TelemetryServices.cs
  48. 70
      backend/src/Squidex/Squidex.csproj
  49. 4
      backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs
  50. 8
      backend/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj
  51. 4
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/CalculatePreviewTextTests.cs
  52. 14
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj
  53. 8
      backend/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj
  54. 8
      backend/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj
  55. 8
      backend/tests/Squidex.Web.Tests/Squidex.Web.Tests.csproj

10
backend/extensions/Squidex.Extensions/Squidex.Extensions.csproj

@ -12,22 +12,22 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Algolia.Search" Version="6.17.0" /> <PackageReference Include="Algolia.Search" Version="6.17.0" />
<PackageReference Include="Azure.Monitor.OpenTelemetry.Exporter" Version="1.3.0" /> <PackageReference Include="Azure.Monitor.OpenTelemetry.Exporter" Version="1.3.0" />
<PackageReference Include="Azure.Search.Documents" Version="11.5.1" /> <PackageReference Include="Azure.Search.Documents" Version="11.6.0" />
<PackageReference Include="Confluent.SchemaRegistry.Serdes.Avro" Version="2.4.0" /> <PackageReference Include="Confluent.SchemaRegistry.Serdes.Avro" Version="2.5.2" />
<PackageReference Include="CoreTweet" Version="1.0.0.483" /> <PackageReference Include="CoreTweet" Version="1.0.0.483" />
<PackageReference Include="Elasticsearch.Net" Version="7.17.5" /> <PackageReference Include="Elasticsearch.Net" Version="7.17.5" />
<PackageReference Include="Google.Cloud.Diagnostics.Common" Version="5.2.0" /> <PackageReference Include="Google.Cloud.Diagnostics.Common" Version="5.2.0" />
<PackageReference Include="Google.Cloud.Logging.V2" Version="4.4.0" /> <PackageReference Include="Google.Cloud.Logging.V2" Version="4.4.0" />
<PackageReference Include="Google.Cloud.Monitoring.V3" Version="3.11.0" /> <PackageReference Include="Google.Cloud.Monitoring.V3" Version="3.11.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Azure.CognitiveServices.Vision.ComputerVision" Version="7.0.1" /> <PackageReference Include="Microsoft.Azure.CognitiveServices.Vision.ComputerVision" Version="7.0.1" />
<PackageReference Include="Microsoft.Azure.SignalR.Management" Version="1.25.2" /> <PackageReference Include="Microsoft.Azure.SignalR.Management" Version="1.27.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.OData.Core" Version="7.21.3" /> <PackageReference Include="Microsoft.OData.Core" Version="8.0.1" />
<PackageReference Include="NodaTime" Version="3.1.11" /> <PackageReference Include="NodaTime" Version="3.1.11" />
<PackageReference Include="OpenSearch.Net" Version="1.7.1" /> <PackageReference Include="OpenSearch.Net" Version="1.7.1" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.9.0" /> <PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.9.0" />

2
backend/src/Migrations/Migrations.csproj

@ -6,7 +6,7 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

2
backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj

@ -12,7 +12,7 @@
<DebugSymbols>True</DebugSymbols> <DebugSymbols>True</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

8
backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Internal/Parser.cs → backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Internal/CacheParser.cs

@ -5,26 +5,26 @@
// All rights reserved. Licensed under the MIT license. // All rights reserved. Licensed under the MIT license.
// ========================================================================== // ==========================================================================
using Esprima.Ast; using Acornima.Ast;
using Jint; using Jint;
using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Caching.Memory;
namespace Squidex.Domain.Apps.Core.Scripting.Internal; namespace Squidex.Domain.Apps.Core.Scripting.Internal;
internal sealed class Parser internal sealed class CacheParser
{ {
private static readonly TimeSpan CacheDuration = TimeSpan.FromMinutes(10); private static readonly TimeSpan CacheDuration = TimeSpan.FromMinutes(10);
private readonly IMemoryCache cache; private readonly IMemoryCache cache;
public Parser(IMemoryCache cache) public CacheParser(IMemoryCache cache)
{ {
this.cache = cache; this.cache = cache;
} }
public Prepared<Script> Parse(string script) public Prepared<Script> Parse(string script)
{ {
var cacheKey = $"{typeof(Parser)}_Script_{script}"; var cacheKey = $"{typeof(CacheParser)}_Script_{script}";
return cache.GetOrCreate(cacheKey, entry => return cache.GetOrCreate(cacheKey, entry =>
{ {

8
backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs

@ -6,7 +6,7 @@
// ========================================================================== // ==========================================================================
using System.Diagnostics; using System.Diagnostics;
using Esprima; using Acornima;
using Jint; using Jint;
using Jint.Native; using Jint.Native;
using Jint.Runtime; using Jint.Runtime;
@ -26,13 +26,13 @@ namespace Squidex.Domain.Apps.Core.Scripting;
public sealed class JintScriptEngine : IScriptEngine, IScriptDescriptor public sealed class JintScriptEngine : IScriptEngine, IScriptDescriptor
{ {
private readonly IJintExtension[] extensions; private readonly IJintExtension[] extensions;
private readonly Parser parser; private readonly CacheParser parser;
private readonly TimeSpan timeoutScript; private readonly TimeSpan timeoutScript;
private readonly TimeSpan timeoutExecution; private readonly TimeSpan timeoutExecution;
public JintScriptEngine(IMemoryCache cache, IOptions<JintScriptOptions> options, IEnumerable<IJintExtension>? extensions = null) public JintScriptEngine(IMemoryCache cache, IOptions<JintScriptOptions> options, IEnumerable<IJintExtension>? extensions = null)
{ {
parser = new Parser(cache); parser = new CacheParser(cache);
timeoutScript = options.Value.TimeoutScript; timeoutScript = options.Value.TimeoutScript;
timeoutExecution = options.Value.TimeoutExecution; timeoutExecution = options.Value.TimeoutExecution;
@ -203,7 +203,7 @@ public sealed class JintScriptEngine : IScriptEngine, IScriptDescriptor
return BuildException("common.jsParseError", inner.Message); return BuildException("common.jsParseError", inner.Message);
case JavaScriptException: case JavaScriptException:
return BuildException("common.jsError", inner.Message); return BuildException("common.jsError", inner.Message);
case ParserException: case ParseErrorException:
return BuildException("common.jsError", inner.Message); return BuildException("common.jsError", inner.Message);
case DomainException: case DomainException:
return inner; return inner;

2
backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/ScriptExecutionContext.cs

@ -5,7 +5,7 @@
// All rights reserved. Licensed under the MIT license. // All rights reserved. Licensed under the MIT license.
// ========================================================================== // ==========================================================================
using Esprima.Ast; using Acornima.Ast;
using Jint; using Jint;
using Jint.Native; using Jint.Native;
using Squidex.Infrastructure.Tasks; using Squidex.Infrastructure.Tasks;

14
backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj

@ -18,18 +18,18 @@
<ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" /> <ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Fluid.Core" Version="2.10.0" /> <PackageReference Include="Fluid.Core" Version="2.11.1" />
<PackageReference Include="GeoJSON.Net" Version="1.2.19" /> <PackageReference Include="GeoJSON.Net" Version="1.4.1" />
<PackageReference Include="Jint" Version="3.1.4" /> <PackageReference Include="Jint" Version="4.0.2" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="NJsonSchema" Version="11.0.1" /> <PackageReference Include="NJsonSchema" Version="11.0.2" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="Squidex.AI" Version="6.18.0" /> <PackageReference Include="Squidex.AI" Version="6.19.0" />
<PackageReference Include="Squidex.Messaging.Subscriptions" Version="6.18.0" /> <PackageReference Include="Squidex.Messaging.Subscriptions" Version="6.19.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" /> <PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
<PackageReference Include="System.Linq.Async" Version="6.0.1" /> <PackageReference Include="System.Linq.Async" Version="6.0.1" />

7
backend/src/Squidex.Domain.Apps.Core.Operations/Templates/Extensions/JsonArrayFluidValue.cs

@ -98,6 +98,13 @@ public sealed class JsonArrayFluidValue : FluidValue
} }
} }
public override ValueTask WriteToAsync(TextWriter writer, TextEncoder encoder, CultureInfo cultureInfo)
{
writer.Write(value);
return default;
}
[Obsolete("Made obsolete in base library.")]
public override void WriteTo(TextWriter writer, TextEncoder encoder, CultureInfo cultureInfo) public override void WriteTo(TextWriter writer, TextEncoder encoder, CultureInfo cultureInfo)
{ {
writer.Write(value); writer.Write(value);

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Apps/MongoAppRepository.cs

@ -28,8 +28,8 @@ public sealed class MongoAppRepository : MongoSnapshotStoreBase<App, MongoAppEnt
protected override Task SetupCollectionAsync(IMongoCollection<MongoAppEntity> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoAppEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoAppEntity>( new CreateIndexModel<MongoAppEntity>(
Index Index
.Ascending(x => x.IndexedName)), .Ascending(x => x.IndexedName)),
@ -39,7 +39,7 @@ public sealed class MongoAppRepository : MongoSnapshotStoreBase<App, MongoAppEnt
new CreateIndexModel<MongoAppEntity>( new CreateIndexModel<MongoAppEntity>(
Index Index
.Ascending(x => x.IndexedTeamId)) .Ascending(x => x.IndexedTeamId))
}, ct); ], ct);
} }
Task IDeleter.DeleteAppAsync(App app, Task IDeleter.DeleteAppAsync(App app,

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetFolderRepository.cs

@ -33,14 +33,14 @@ public sealed partial class MongoAssetFolderRepository : MongoRepositoryBase<Mon
protected override Task SetupCollectionAsync(IMongoCollection<MongoAssetFolderEntity> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoAssetFolderEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoAssetFolderEntity>( new CreateIndexModel<MongoAssetFolderEntity>(
Index Index
.Ascending(x => x.IndexedAppId) .Ascending(x => x.IndexedAppId)
.Ascending(x => x.ParentId) .Ascending(x => x.ParentId)
.Ascending(x => x.IsDeleted)) .Ascending(x => x.IsDeleted))
}, ct); ], ct);
} }
public async Task<IResultList<AssetFolder>> QueryAsync(DomainId appId, DomainId? parentId, public async Task<IResultList<AssetFolder>> QueryAsync(DomainId appId, DomainId? parentId,

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs

@ -49,8 +49,8 @@ public sealed partial class MongoAssetRepository : MongoRepositoryBase<MongoAsse
protected override Task SetupCollectionAsync(IMongoCollection<MongoAssetEntity> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoAssetEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoAssetEntity>( new CreateIndexModel<MongoAssetEntity>(
Index Index
.Descending(x => x.LastModified) .Descending(x => x.LastModified)
@ -71,7 +71,7 @@ public sealed partial class MongoAssetRepository : MongoRepositoryBase<MongoAsse
Index Index
.Ascending(x => x.Id) .Ascending(x => x.Id)
.Ascending(x => x.IsDeleted)) .Ascending(x => x.IsDeleted))
}, ct); ], ct);
} }
public async IAsyncEnumerable<Asset> StreamAll(DomainId appId, public async IAsyncEnumerable<Asset> StreamAll(DomainId appId,

5
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/QueryInDedicatedCollection.cs

@ -45,8 +45,7 @@ internal sealed class QueryInDedicatedCollection : MongoBase<MongoContentEntity>
var schemaCollection = schemaDatabase.GetCollection<MongoContentEntity>($"{prefixCollection}_{schemaId}"); var schemaCollection = schemaDatabase.GetCollection<MongoContentEntity>($"{prefixCollection}_{schemaId}");
await schemaCollection.Indexes.CreateManyAsync( await schemaCollection.Indexes.CreateManyAsync(
new[] [
{
new CreateIndexModel<MongoContentEntity>(Index new CreateIndexModel<MongoContentEntity>(Index
.Descending(x => x.LastModified) .Descending(x => x.LastModified)
.Ascending(x => x.Id) .Ascending(x => x.Id)
@ -56,7 +55,7 @@ internal sealed class QueryInDedicatedCollection : MongoBase<MongoContentEntity>
.Ascending(x => x.IndexedSchemaId) .Ascending(x => x.IndexedSchemaId)
.Ascending(x => x.IsDeleted) .Ascending(x => x.IsDeleted)
.Descending(x => x.LastModified)) .Descending(x => x.LastModified))
}); ]);
return schemaCollection; return schemaCollection;
}); });

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs

@ -44,8 +44,8 @@ public sealed class MongoHistoryEventRepository : MongoRepositoryBase<HistoryEve
protected override Task SetupCollectionAsync(IMongoCollection<HistoryEvent> collection, protected override Task SetupCollectionAsync(IMongoCollection<HistoryEvent> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<HistoryEvent>( new CreateIndexModel<HistoryEvent>(
Index Index
.Ascending(x => x.OwnerId) .Ascending(x => x.OwnerId)
@ -57,7 +57,7 @@ public sealed class MongoHistoryEventRepository : MongoRepositoryBase<HistoryEve
.Ascending(x => x.OwnerId) .Ascending(x => x.OwnerId)
.Descending(x => x.Created) .Descending(x => x.Created)
.Descending(x => x.Version)) .Descending(x => x.Version))
}, ct); ], ct);
} }
async Task IDeleter.DeleteAppAsync(App app, async Task IDeleter.DeleteAppAsync(App app,

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs

@ -31,8 +31,8 @@ public sealed class MongoRuleEventRepository : MongoRepositoryBase<MongoRuleEven
protected override async Task SetupCollectionAsync(IMongoCollection<MongoRuleEventEntity> collection, protected override async Task SetupCollectionAsync(IMongoCollection<MongoRuleEventEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
await collection.Indexes.CreateManyAsync(new[] await collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoRuleEventEntity>( new CreateIndexModel<MongoRuleEventEntity>(
Index.Ascending(x => x.NextAttempt)), Index.Ascending(x => x.NextAttempt)),
@ -46,7 +46,7 @@ public sealed class MongoRuleEventRepository : MongoRepositoryBase<MongoRuleEven
{ {
ExpireAfter = TimeSpan.Zero ExpireAfter = TimeSpan.Zero
}) })
}, ct); ], ct);
} }
async Task IDeleter.DeleteAppAsync(App app, async Task IDeleter.DeleteAppAsync(App app,

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleRepository.cs

@ -29,12 +29,12 @@ public sealed class MongoRuleRepository : MongoSnapshotStoreBase<Rule, MongoRule
protected override Task SetupCollectionAsync(IMongoCollection<MongoRuleEntity> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoRuleEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoRuleEntity>( new CreateIndexModel<MongoRuleEntity>(
Index Index
.Ascending(x => x.IndexedAppId)) .Ascending(x => x.IndexedAppId))
}, ct); ], ct);
} }
Task IDeleter.DeleteAppAsync(App app, Task IDeleter.DeleteAppAsync(App app,

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Schemas/MongoSchemaRepository.cs

@ -29,13 +29,13 @@ public sealed class MongoSchemaRepository : MongoSnapshotStoreBase<Schema, Mongo
protected override Task SetupCollectionAsync(IMongoCollection<MongoSchemaEntity> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoSchemaEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoSchemaEntity>( new CreateIndexModel<MongoSchemaEntity>(
Index Index
.Ascending(x => x.IndexedAppId) .Ascending(x => x.IndexedAppId)
.Ascending(x => x.IndexedName)) .Ascending(x => x.IndexedName))
}, ct); ], ct);
} }
Task IDeleter.DeleteAppAsync(App app, Task IDeleter.DeleteAppAsync(App app,

4
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj

@ -19,11 +19,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Lucene.Net.QueryParser" Version="4.8.0-beta00016" /> <PackageReference Include="Lucene.Net.QueryParser" Version="4.8.0-beta00016" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="MongoDB.Driver" Version="2.27.0" /> <PackageReference Include="MongoDB.Driver" Version="2.28.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Teams/MongoTeamRepository.cs

@ -28,12 +28,12 @@ public sealed class MongoTeamRepository : MongoSnapshotStoreBase<Team, MongoTeam
protected override Task SetupCollectionAsync(IMongoCollection<MongoTeamEntity> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoTeamEntity> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoTeamEntity>( new CreateIndexModel<MongoTeamEntity>(
Index Index
.Ascending(x => x.IndexedUserIds)) .Ascending(x => x.IndexedUserIds))
}, ct); ], ct);
} }
public async Task<List<Team>> QueryAllAsync(string contributorId, public async Task<List<Team>> QueryAllAsync(string contributorId,

6
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Text/MongoTextIndexBase.cs

@ -46,8 +46,8 @@ public abstract class MongoTextIndexBase<T> : MongoRepositoryBase<MongoTextIndex
protected override Task SetupCollectionAsync(IMongoCollection<MongoTextIndexEntity<T>> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoTextIndexEntity<T>> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoTextIndexEntity<T>>( new CreateIndexModel<MongoTextIndexEntity<T>>(
Index Index
.Ascending(x => x.AppId) .Ascending(x => x.AppId)
@ -59,7 +59,7 @@ public abstract class MongoTextIndexBase<T> : MongoRepositoryBase<MongoTextIndex
.Ascending(x => x.SchemaId) .Ascending(x => x.SchemaId)
.Ascending(x => x.GeoField) .Ascending(x => x.GeoField)
.Geo2DSphere(x => x.GeoObject)) .Geo2DSphere(x => x.GeoObject))
}, ct); ], ct);
} }
protected override string CollectionName() protected override string CollectionName()

1
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLExecutionContext.cs

@ -5,6 +5,7 @@
// All rights reserved. Licensed under the MIT license. // All rights reserved. Licensed under the MIT license.
// ========================================================================== // ==========================================================================
using GraphQL;
using GraphQL.DataLoader; using GraphQL.DataLoader;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Squidex.Domain.Apps.Entities.Assets; using Squidex.Domain.Apps.Entities.Assets;

2
backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/Steps/ConvertData.cs

@ -16,8 +16,6 @@ using Squidex.Infrastructure;
using Squidex.Infrastructure.Json; using Squidex.Infrastructure.Json;
using Squidex.Infrastructure.Tasks; using Squidex.Infrastructure.Tasks;
#pragma warning disable MA0073 // Avoid comparison with bool constant
namespace Squidex.Domain.Apps.Entities.Contents.Queries.Steps; namespace Squidex.Domain.Apps.Entities.Contents.Queries.Steps;
public sealed class ConvertData : IContentEnricherStep public sealed class ConvertData : IContentEnricherStep

8
backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj

@ -25,16 +25,16 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CsvHelper" Version="33.0.1" /> <PackageReference Include="CsvHelper" Version="33.0.1" />
<PackageReference Include="GraphQL" Version="7.8.0" /> <PackageReference Include="GraphQL" Version="8.0.2" />
<PackageReference Include="GraphQL.DataLoader" Version="7.8.0" /> <PackageReference Include="GraphQL.DataLoader" Version="8.0.2" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageReference Include="Notifo.SDK" Version="1.7.5" /> <PackageReference Include="Notifo.SDK" Version="1.7.5" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="Squidex.CLI.Core" Version="13.0.0" /> <PackageReference Include="Squidex.CLI.Core" Version="13.3.0" />
<PackageReference Include="Squidex.YDotNet.Extensions" Version="0.2.9" /> <PackageReference Include="Squidex.YDotNet.Extensions" Version="0.2.9" />
<PackageReference Include="Squidex.YDotNet.Server" Version="0.2.9" /> <PackageReference Include="Squidex.YDotNet.Server" Version="0.2.9" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />

2
backend/src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj

@ -14,7 +14,7 @@
<ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" /> <ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

6
backend/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs

@ -136,8 +136,8 @@ public sealed class MongoUserStore :
protected override Task SetupCollectionAsync(IMongoCollection<MongoUser> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoUser> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoUser>( new CreateIndexModel<MongoUser>(
Index Index
.Ascending("Logins.LoginProvider") .Ascending("Logins.LoginProvider")
@ -156,7 +156,7 @@ public sealed class MongoUserStore :
{ {
Unique = true Unique = true
}) })
}, ct); ], ct);
} }
protected override MongoCollectionSettings CollectionSettings() protected override MongoCollectionSettings CollectionSettings()

4
backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj

@ -19,12 +19,12 @@
<ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" /> <ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" /> <PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="MongoDB.Driver" Version="2.27.0" /> <PackageReference Include="MongoDB.Driver" Version="2.28.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.Security.Principal.Windows" Version="5.0.0" /> <PackageReference Include="System.Security.Principal.Windows" Version="5.0.0" />

6
backend/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj

@ -18,13 +18,13 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="IdentityModel" Version="7.0.0" /> <PackageReference Include="IdentityModel" Version="7.0.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="8.0.6" /> <PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="8.0.8" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" /> <PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="OpenIddict.AspNetCore" Version="5.7.0" /> <PackageReference Include="OpenIddict.AspNetCore" Version="5.8.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="SharpPwned.NET" Version="2.0.1" /> <PackageReference Include="SharpPwned.NET" Version="2.0.1" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />

10
backend/src/Squidex.Infrastructure.GetEventStore/Squidex.Infrastructure.GetEventStore.csproj

@ -11,11 +11,11 @@
<DebugSymbols>True</DebugSymbols> <DebugSymbols>True</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.3.3" /> <PackageReference Include="EventStore.Client.Grpc.PersistentSubscriptions" Version="23.3.4" />
<PackageReference Include="EventStore.Client.Grpc.ProjectionManagement" Version="23.3.3" /> <PackageReference Include="EventStore.Client.Grpc.ProjectionManagement" Version="23.3.4" />
<PackageReference Include="EventStore.Client.Grpc.Streams" Version="23.3.3" /> <PackageReference Include="EventStore.Client.Grpc.Streams" Version="23.3.4" />
<PackageReference Include="Grpc.Net.Client" Version="2.63.0" /> <PackageReference Include="Grpc.Net.Client" Version="2.65.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

6
backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs

@ -44,8 +44,8 @@ public partial class MongoEventStore : MongoRepositoryBase<MongoEventCommit>, IE
protected override async Task SetupCollectionAsync(IMongoCollection<MongoEventCommit> collection, protected override async Task SetupCollectionAsync(IMongoCollection<MongoEventCommit> collection,
CancellationToken ct) CancellationToken ct)
{ {
await collection.Indexes.CreateManyAsync(new[] await collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoEventCommit>( new CreateIndexModel<MongoEventCommit>(
Index Index
.Ascending(x => x.EventStream) .Ascending(x => x.EventStream)
@ -62,7 +62,7 @@ public partial class MongoEventStore : MongoRepositoryBase<MongoEventCommit>, IE
{ {
Unique = true Unique = true
}) })
}, ct); ], ct);
var clusterVersion = await Database.GetMajorVersionAsync(ct); var clusterVersion = await Database.GetMajorVersionAsync(ct);
var clusteredAsReplica = Database.Client.Cluster.Description.Type == ClusterType.ReplicaSet; var clusteredAsReplica = Database.Client.Cluster.Description.Type == ClusterType.ReplicaSet;

6
backend/src/Squidex.Infrastructure.MongoDb/Log/MongoRequestLogRepository.cs

@ -32,8 +32,8 @@ public sealed class MongoRequestLogRepository : MongoRepositoryBase<MongoRequest
protected override Task SetupCollectionAsync(IMongoCollection<MongoRequest> collection, protected override Task SetupCollectionAsync(IMongoCollection<MongoRequest> collection,
CancellationToken ct) CancellationToken ct)
{ {
return collection.Indexes.CreateManyAsync(new[] return collection.Indexes.CreateManyAsync(
{ [
new CreateIndexModel<MongoRequest>( new CreateIndexModel<MongoRequest>(
Index Index
.Ascending(x => x.Key) .Ascending(x => x.Key)
@ -45,7 +45,7 @@ public sealed class MongoRequestLogRepository : MongoRepositoryBase<MongoRequest
{ {
ExpireAfter = TimeSpan.FromDays(options.StoreRetentionInDays) ExpireAfter = TimeSpan.FromDays(options.StoreRetentionInDays)
}) })
}, ct); ], ct);
} }
public Task InsertManyAsync(IEnumerable<Request> items, public Task InsertManyAsync(IEnumerable<Request> items,

6
backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj

@ -14,12 +14,12 @@
<ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" /> <ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="MongoDB.Driver" Version="2.27.0" /> <PackageReference Include="MongoDB.Driver" Version="2.28.0" />
<PackageReference Include="MongoDB.Driver.GridFS" Version="2.27.0" /> <PackageReference Include="MongoDB.Driver.GridFS" Version="2.28.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />

4
backend/src/Squidex.Infrastructure/Commands/DefaultDomainObjectFactory.cs

@ -23,7 +23,7 @@ public sealed class DefaultDomainObjectFactory : IDomainObjectFactory
public static T Create(IServiceProvider serviceProvider, DomainId id) public static T Create(IServiceProvider serviceProvider, DomainId id)
{ {
return (T)ObjectFactory(serviceProvider, new object[] { id }); return (T)ObjectFactory(serviceProvider, [id]);
} }
} }
@ -34,7 +34,7 @@ public sealed class DefaultDomainObjectFactory : IDomainObjectFactory
public static T Create(IServiceProvider serviceProvider, DomainId id, IPersistenceFactory<TState> persistenceFactory) public static T Create(IServiceProvider serviceProvider, DomainId id, IPersistenceFactory<TState> persistenceFactory)
{ {
return (T)ObjectFactory(serviceProvider, new object[] { id, persistenceFactory }); return (T)ObjectFactory(serviceProvider, [id, persistenceFactory]);
} }
} }

20
backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj

@ -11,25 +11,25 @@
<DebugSymbols>True</DebugSymbols> <DebugSymbols>True</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="MailKit" Version="4.7.0" /> <PackageReference Include="MailKit" Version="4.7.1.1" />
<PackageReference Include="McMaster.NETCore.Plugins" Version="1.4.0" /> <PackageReference Include="McMaster.NETCore.Plugins" Version="1.4.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="8.0.6" /> <PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="8.0.8" />
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.1" /> <PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.1" />
<PackageReference Include="Microsoft.OData.Core" Version="7.21.3" /> <PackageReference Include="Microsoft.OData.Core" Version="8.0.1" />
<PackageReference Include="NodaTime" Version="3.1.11" /> <PackageReference Include="NodaTime" Version="3.1.11" />
<PackageReference Include="OpenTelemetry.Api" Version="1.9.0" /> <PackageReference Include="OpenTelemetry.Api" Version="1.9.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="Squidex.Assets" Version="6.18.0" /> <PackageReference Include="Squidex.Assets" Version="6.19.0" />
<PackageReference Include="Squidex.Caching" Version="6.18.0" /> <PackageReference Include="Squidex.Caching" Version="6.19.0" />
<PackageReference Include="Squidex.Hosting.Abstractions" Version="6.18.0" /> <PackageReference Include="Squidex.Hosting.Abstractions" Version="6.19.0" />
<PackageReference Include="Squidex.Log" Version="6.18.0" /> <PackageReference Include="Squidex.Log" Version="6.19.0" />
<PackageReference Include="Squidex.Messaging" Version="6.18.0" /> <PackageReference Include="Squidex.Messaging" Version="6.19.0" />
<PackageReference Include="Squidex.Text" Version="6.18.0" /> <PackageReference Include="Squidex.Text" Version="6.19.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" /> <PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />

2
backend/src/Squidex.Infrastructure/States/StoreExtensions.cs

@ -14,6 +14,6 @@ public static class StoreExtensions
public static Task WriteEventAsync<T>(this IPersistence<T> persistence, Envelope<IEvent> @event, public static Task WriteEventAsync<T>(this IPersistence<T> persistence, Envelope<IEvent> @event,
CancellationToken ct = default) CancellationToken ct = default)
{ {
return persistence.WriteEventsAsync(new[] { @event }, ct); return persistence.WriteEventsAsync([@event], ct);
} }
} }

2
backend/src/Squidex.Infrastructure/Tasks/Scheduler.cs

@ -41,7 +41,7 @@ public sealed class Scheduler
if (pendingTasks >= 1) if (pendingTasks >= 1)
{ {
// If we already in a tasks we just queue it with the semaphore. // If we already in a tasks we just queue it with the semaphore.
ScheduleTasks(new[] { task }, default); ScheduleTasks([task], default);
return; return;
} }

2
backend/src/Squidex.Infrastructure/Translations/MissingKeys.cs

@ -33,7 +33,7 @@ public sealed class MissingKeys
{ {
if (!missingTranslations.Add(key)) if (!missingTranslations.Add(key))
{ {
File.AppendAllLines(MissingFileName, new[] { key }); File.AppendAllLines(MissingFileName, [key]);
} }
} }
} }

2
backend/src/Squidex.Shared/Squidex.Shared.csproj

@ -10,7 +10,7 @@
<DebugSymbols>True</DebugSymbols> <DebugSymbols>True</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

2
backend/src/Squidex.Web/GraphQL/DynamicUserContextBuilder.cs

@ -19,7 +19,7 @@ public sealed class DynamicUserContextBuilder : IUserContextBuilder
public ValueTask<IDictionary<string, object?>?> BuildUserContextAsync(HttpContext context, object? payload) public ValueTask<IDictionary<string, object?>?> BuildUserContextAsync(HttpContext context, object? payload)
{ {
var executionContext = (GraphQLExecutionContext)factory(context.RequestServices, new object[] { context.Context() }); var executionContext = (GraphQLExecutionContext)factory(context.RequestServices, [context.Context()]);
return new ValueTask<IDictionary<string, object?>?>(executionContext); return new ValueTask<IDictionary<string, object?>?>(executionContext);
} }

8
backend/src/Squidex.Web/Squidex.Web.csproj

@ -13,10 +13,10 @@
<FrameworkReference Include="Microsoft.AspNetCore.App" /> <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="GraphQL" Version="7.8.0" /> <PackageReference Include="GraphQL" Version="8.0.2" />
<PackageReference Include="GraphQL.SystemTextJson" Version="7.8.0" /> <PackageReference Include="GraphQL.SystemTextJson" Version="8.0.2" />
<PackageReference Include="GraphQL.Server.Transports.AspNetCore" Version="7.7.1" /> <PackageReference Include="GraphQL.Server.Transports.AspNetCore" Version="8.0.2" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

2
backend/src/Squidex/Areas/Api/Config/OpenApi/SecurityProcessor.cs

@ -15,7 +15,7 @@ namespace Squidex.Areas.Api.Config.OpenApi;
public sealed class SecurityProcessor : SecurityDefinitionAppender public sealed class SecurityProcessor : SecurityDefinitionAppender
{ {
public SecurityProcessor(IUrlGenerator urlGenerator) public SecurityProcessor(IUrlGenerator urlGenerator)
: base(Constants.SecurityDefinition, new[] { Constants.ScopeApi }, CreateOAuthSchema(urlGenerator)) : base(Constants.SecurityDefinition, [Constants.ScopeApi], CreateOAuthSchema(urlGenerator))
{ {
} }

1
backend/src/Squidex/Areas/Api/Controllers/Contents/ContentsController.cs

@ -452,6 +452,7 @@ public sealed class ContentsController : ApiController
/// <param name="app">The name of the app.</param> /// <param name="app">The name of the app.</param>
/// <param name="schema">The name of the schema.</param> /// <param name="schema">The name of the schema.</param>
/// <param name="id">The ID of the content item to update.</param> /// <param name="id">The ID of the content item to update.</param>
/// <param name="request">The request parameters.</param>
/// <response code="200">Content updated.</response> /// <response code="200">Content updated.</response>
/// <response code="404">Content references, schema or app not found.</response> /// <response code="404">Content references, schema or app not found.</response>
/// <remarks> /// <remarks>

35
backend/src/Squidex/Areas/Api/Controllers/Contents/ContentsSharedController.cs

@ -24,6 +24,13 @@ namespace Squidex.Areas.Api.Controllers.Contents;
[ApiExplorerSettings(GroupName = nameof(Contents))] [ApiExplorerSettings(GroupName = nameof(Contents))]
public sealed class ContentsSharedController : ApiController public sealed class ContentsSharedController : ApiController
{ {
private static readonly GraphQLHttpMiddlewareOptions GraphQLOptions = new GraphQLHttpMiddlewareOptions
{
DefaultResponseContentType = new MediaTypeHeaderValue("application/json"),
CsrfProtectionEnabled = false,
CsrfProtectionHeaders = []
};
private readonly IContentQueryService contentQuery; private readonly IContentQueryService contentQuery;
private readonly IContentWorkflow contentWorkflow; private readonly IContentWorkflow contentWorkflow;
@ -54,12 +61,7 @@ public sealed class ContentsSharedController : ApiController
[IgnoreCacheFilter] [IgnoreCacheFilter]
public IActionResult GetGraphQL(string app, GraphQLQueryDto request) public IActionResult GetGraphQL(string app, GraphQLQueryDto request)
{ {
var options = new GraphQLHttpMiddlewareOptions return new GraphQLExecutionActionResult<DummySchema>(GraphQLOptions);
{
DefaultResponseContentType = new MediaTypeHeaderValue("application/json")
};
return new GraphQLExecutionActionResult<DummySchema>(options);
} }
/// <summary> /// <summary>
@ -80,12 +82,7 @@ public sealed class ContentsSharedController : ApiController
[IgnoreCacheFilter] [IgnoreCacheFilter]
public IActionResult PostGraphQL(string app) public IActionResult PostGraphQL(string app)
{ {
var options = new GraphQLHttpMiddlewareOptions return new GraphQLExecutionActionResult<DummySchema>(GraphQLOptions);
{
DefaultResponseContentType = new MediaTypeHeaderValue("application/json")
};
return new GraphQLExecutionActionResult<DummySchema>(options);
} }
/// <summary> /// <summary>
@ -106,12 +103,7 @@ public sealed class ContentsSharedController : ApiController
[IgnoreCacheFilter] [IgnoreCacheFilter]
public IActionResult GetGraphQLBatch(string app, GraphQLQueryDto request) public IActionResult GetGraphQLBatch(string app, GraphQLQueryDto request)
{ {
var options = new GraphQLHttpMiddlewareOptions return new GraphQLExecutionActionResult<DummySchema>(GraphQLOptions);
{
DefaultResponseContentType = new MediaTypeHeaderValue("application/json")
};
return new GraphQLExecutionActionResult<DummySchema>(options);
} }
/// <summary> /// <summary>
@ -132,12 +124,7 @@ public sealed class ContentsSharedController : ApiController
[IgnoreCacheFilter] [IgnoreCacheFilter]
public IActionResult PostGraphQLBatch(string app) public IActionResult PostGraphQLBatch(string app)
{ {
var options = new GraphQLHttpMiddlewareOptions return new GraphQLExecutionActionResult<DummySchema>(GraphQLOptions);
{
DefaultResponseContentType = new MediaTypeHeaderValue("application/json")
};
return new GraphQLExecutionActionResult<DummySchema>(options);
} }
/// <summary> /// <summary>

2
backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/OperationBuilder.cs

@ -151,7 +151,7 @@ internal sealed class OperationBuilder
{ {
new OpenApiSecurityRequirement new OpenApiSecurityRequirement
{ {
[Constants.SecurityDefinition] = new[] { fullId } [Constants.SecurityDefinition] = [fullId]
} }
}; };

2
backend/src/Squidex/Config/Domain/EventSourcingServices.cs

@ -45,7 +45,7 @@ public static class EventSourcingServices
.As<IEventStore>(); .As<IEventStore>();
services.AddHealthChecks() services.AddHealthChecks()
.AddCheck<GetEventStoreHealthCheck>("EventStore", tags: new[] { "node" }); .AddCheck<GetEventStoreHealthCheck>("EventStore", tags: ["node"]);
} }
}); });

4
backend/src/Squidex/Config/Domain/HealthCheckServices.cs

@ -18,7 +18,7 @@ public static class HealthCheckServices
"diagnostics:gc"); "diagnostics:gc");
services.AddHealthChecks() services.AddHealthChecks()
.AddCheck<GCHealthCheck>("GC", tags: new[] { "node" }) .AddCheck<GCHealthCheck>("GC", tags: ["node"])
.AddCheck<EventConsumersHealthCheck>("EventConsumers", tags: new[] { "background" }); .AddCheck<EventConsumersHealthCheck>("EventConsumers", tags: ["background"]);
} }
} }

5
backend/src/Squidex/Config/Domain/ResizeServices.cs

@ -15,11 +15,10 @@ public static class ResizeServices
public static void AddSquidexImageResizing(this IServiceCollection services, IConfiguration config) public static void AddSquidexImageResizing(this IServiceCollection services, IConfiguration config)
{ {
var thumbnailGenerator = new CompositeThumbnailGenerator( var thumbnailGenerator = new CompositeThumbnailGenerator(
new IAssetThumbnailGenerator[] [
{
new ImageSharpThumbnailGenerator(), new ImageSharpThumbnailGenerator(),
new ImageMagickThumbnailGenerator() new ImageMagickThumbnailGenerator()
}); ]);
var resizerUrl = config.GetValue<string>("assets:resizerUrl"); var resizerUrl = config.GetValue<string>("assets:resizerUrl");

2
backend/src/Squidex/Config/Domain/StoreServices.cs

@ -123,7 +123,7 @@ public static class StoreServices
.As<IDistributedCache>(); .As<IDistributedCache>();
services.AddHealthChecks() services.AddHealthChecks()
.AddCheck<MongoHealthCheck>("MongoDB", tags: new[] { "node" }); .AddCheck<MongoHealthCheck>("MongoDB", tags: ["node"]);
services.AddSingletonAs<MongoRequestLogRepository>() services.AddSingletonAs<MongoRequestLogRepository>()
.As<IRequestLogRepository>(); .As<IRequestLogRepository>();

1
backend/src/Squidex/Config/Domain/TelemetryServices.cs

@ -33,7 +33,6 @@ public static class TelemetryServices
builder.AddAspNetCoreInstrumentation(); builder.AddAspNetCoreInstrumentation();
builder.AddHttpClientInstrumentation(); builder.AddHttpClientInstrumentation();
builder.AddMongoDBInstrumentation();
var sampling = config.GetValue<double>("logging:otlp:sampling"); var sampling = config.GetValue<double>("logging:otlp:sampling");

70
backend/src/Squidex/Squidex.csproj

@ -35,56 +35,56 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AspNet.Security.OAuth.GitHub" Version="8.1.0" /> <PackageReference Include="AspNet.Security.OAuth.GitHub" Version="8.1.0" />
<PackageReference Include="Google.Cloud.Trace.V2" Version="3.6.0" /> <PackageReference Include="Google.Cloud.Trace.V2" Version="3.6.0" />
<PackageReference Include="GraphQL" Version="7.8.0" /> <PackageReference Include="GraphQL" Version="8.0.2" />
<PackageReference Include="GraphQL.MicrosoftDI" Version="7.8.0" /> <PackageReference Include="GraphQL.MicrosoftDI" Version="8.0.2" />
<PackageReference Include="GraphQL.SystemTextJson" Version="7.8.0" /> <PackageReference Include="GraphQL.SystemTextJson" Version="8.0.2" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="8.0.6" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="8.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.6" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.6" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.6" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.8" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.6" /> <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.8" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" /> <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
<PackageReference Include="Microsoft.CodeAnalysis.RulesetToEditorconfigConverter" Version="3.3.3" /> <PackageReference Include="Microsoft.CodeAnalysis.RulesetToEditorconfigConverter" Version="3.3.3" />
<PackageReference Include="Microsoft.Data.Edm" Version="5.8.5" /> <PackageReference Include="Microsoft.Data.Edm" Version="5.8.5" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" /> <PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="7.6.2" /> <PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.0.2" />
<PackageReference Include="Microsoft.OData.Core" Version="7.21.3" /> <PackageReference Include="Microsoft.OData.Core" Version="8.0.1" />
<PackageReference Include="MongoDB.Driver" Version="2.27.0" /> <PackageReference Include="MongoDB.Driver" Version="2.28.0" />
<PackageReference Include="MongoDB.Driver.Core.Extensions.OpenTelemetry" Version="1.0.0" /> <PackageReference Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="1.5.0" />
<PackageReference Include="NetTopologySuite.IO.GeoJSON4STJ" Version="4.0.0" /> <PackageReference Include="NetTopologySuite.IO.GeoJSON4STJ" Version="4.0.0" />
<PackageReference Include="NJsonSchema" Version="11.0.1" /> <PackageReference Include="NJsonSchema" Version="11.0.2" />
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" /> <PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" />
<PackageReference Include="NSwag.AspNetCore" Version="14.0.8" /> <PackageReference Include="NSwag.AspNetCore" Version="14.1.0" />
<PackageReference Include="OpenCover" Version="4.7.1221" PrivateAssets="all" /> <PackageReference Include="OpenCover" Version="4.7.1221" PrivateAssets="all" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" /> <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" /> <PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" /> <PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="ReportGenerator" Version="5.3.7" PrivateAssets="all" /> <PackageReference Include="ReportGenerator" Version="5.3.8" PrivateAssets="all" />
<PackageReference Include="Squidex.Assets.Azure" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.Azure" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.GoogleCloud" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.GoogleCloud" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.FTP" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.FTP" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.ImageMagick" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.ImageMagick" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.ImageSharp" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.ImageSharp" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.Mongo" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.Mongo" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.S3" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.S3" Version="6.19.0" />
<PackageReference Include="Squidex.Assets.TusAdapter" Version="6.18.0" /> <PackageReference Include="Squidex.Assets.TusAdapter" Version="6.19.0" />
<PackageReference Include="Squidex.ClientLibrary" Version="19.2.0" /> <PackageReference Include="Squidex.ClientLibrary" Version="19.7.0" />
<PackageReference Include="Squidex.Hosting" Version="6.18.0" /> <PackageReference Include="Squidex.Hosting" Version="6.19.0" />
<PackageReference Include="Squidex.Messaging.All" Version="6.18.0" /> <PackageReference Include="Squidex.Messaging.All" Version="6.19.0" />
<PackageReference Include="Squidex.Messaging.Subscriptions" Version="6.18.0" /> <PackageReference Include="Squidex.Messaging.Subscriptions" Version="6.19.0" />
<PackageReference Include="Squidex.OpenIddict.MongoDb" Version="5.1.0" /> <PackageReference Include="Squidex.OpenIddict.MongoDb" Version="5.8.1" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="YDotNet" Version="0.4.0" /> <PackageReference Include="YDotNet" Version="0.4.1" />
<PackageReference Include="YDotNet.Native" Version="0.4.0" /> <PackageReference Include="YDotNet.Native" Version="0.4.1" />
<PackageReference Include="YDotNet.Server" Version="0.4.0" /> <PackageReference Include="YDotNet.Server" Version="0.4.1" />
<PackageReference Include="YDotNet.Server.MongoDB" Version="0.4.0" /> <PackageReference Include="YDotNet.Server.MongoDB" Version="0.4.1" />
<PackageReference Include="YDotNet.Server.Redis" Version="0.4.0" /> <PackageReference Include="YDotNet.Server.Redis" Version="0.4.1" />
<PackageReference Include="YDotNet.Server.WebSockets" Version="0.4.0" /> <PackageReference Include="YDotNet.Server.WebSockets" Version="0.4.1" />
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>

4
backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs

@ -13,6 +13,8 @@ using Squidex.Domain.Apps.Core.TestHelpers;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.Json.Objects; using Squidex.Infrastructure.Json.Objects;
#pragma warning disable xUnit1044 // Avoid using TheoryData type arguments that are not serializable
namespace Squidex.Domain.Apps.Core.Operations.ConvertContent; namespace Squidex.Domain.Apps.Core.Operations.ConvertContent;
public class FieldConvertersTests public class FieldConvertersTests
@ -625,7 +627,7 @@ public class FieldConvertersTests
var actual = var actual =
new AddSchemaNames(components) new AddSchemaNames(components)
.ConvertItemAfter(field, source, Enumerable.Empty<IField>()); .ConvertItemAfter(field, source, []);
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }

8
backend/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj

@ -16,19 +16,19 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FakeItEasy" Version="8.3.0" /> <PackageReference Include="FakeItEasy" Version="8.3.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="NetTopologySuite.IO.GeoJSON4STJ" Version="4.0.0" /> <PackageReference Include="NetTopologySuite.IO.GeoJSON4STJ" Version="4.0.0" />
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" /> <PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.8.1" /> <PackageReference Include="xunit" Version="2.9.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1"> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

4
backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/Queries/CalculatePreviewTextTests.cs

@ -30,7 +30,7 @@ public class CalculatePreviewTextTests : GivenContext
{ {
var content = CreateContentWithData(); var content = CreateContentWithData();
await sut.EnrichAsync(ApiContext, new[] { content }, SchemaProvider(), CancellationToken); await sut.EnrichAsync(ApiContext, [content], SchemaProvider(), CancellationToken);
Assert.Equal("Text1Text2", content.ReferenceData!["richText"]!["en"]); Assert.Equal("Text1Text2", content.ReferenceData!["richText"]!["en"]);
Assert.Equal("Text3Text4", content.ReferenceData!["richText"]!["de"]); Assert.Equal("Text3Text4", content.ReferenceData!["richText"]!["de"]);
@ -41,7 +41,7 @@ public class CalculatePreviewTextTests : GivenContext
{ {
var content = CreateContent(); var content = CreateContent();
await sut.EnrichAsync(ApiContext, new[] { content }, SchemaProvider(), CancellationToken); await sut.EnrichAsync(ApiContext, [content], SchemaProvider(), CancellationToken);
Assert.Null(content.ReferenceData); Assert.Null(content.ReferenceData);
} }

14
backend/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj

@ -24,24 +24,24 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FakeItEasy" Version="8.3.0" /> <PackageReference Include="FakeItEasy" Version="8.3.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="GraphQL" Version="7.8.0" /> <PackageReference Include="GraphQL" Version="8.0.2" />
<PackageReference Include="GraphQL.SystemTextJson" Version="7.8.0" /> <PackageReference Include="GraphQL.SystemTextJson" Version="8.0.2" />
<PackageReference Include="Lorem.Universal.Net" Version="4.0.80" /> <PackageReference Include="Lorem.Universal.Net" Version="4.0.80" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" /> <PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="NodaTime.Serialization.JsonNet" Version="3.1.0" /> <PackageReference Include="NodaTime.Serialization.JsonNet" Version="3.1.0" />
<PackageReference Include="Squidex.YDotNet.Native" Version="0.2.9" /> <PackageReference Include="Squidex.YDotNet.Native" Version="0.2.9" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.Reactive.Linq" Version="6.0.1" /> <PackageReference Include="System.Reactive.Linq" Version="6.0.1" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="Verify.Xunit" Version="25.3.0" /> <PackageReference Include="Verify.Xunit" Version="26.2.0" />
<PackageReference Include="xunit" Version="2.8.1" /> <PackageReference Include="xunit" Version="2.9.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1"> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

8
backend/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj

@ -16,15 +16,15 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FakeItEasy" Version="8.3.0" /> <PackageReference Include="FakeItEasy" Version="8.3.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.8.1" /> <PackageReference Include="xunit" Version="2.9.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1"> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

8
backend/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj

@ -16,7 +16,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FakeItEasy" Version="8.3.0" /> <PackageReference Include="FakeItEasy" Version="8.3.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
@ -24,12 +24,12 @@
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" /> <PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.8.1" /> <PackageReference Include="xunit" Version="2.9.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1"> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

8
backend/tests/Squidex.Web.Tests/Squidex.Web.Tests.csproj

@ -16,14 +16,14 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FakeItEasy" Version="8.3.0" /> <PackageReference Include="FakeItEasy" Version="8.3.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.159"> <PackageReference Include="Meziantou.Analyzer" Version="2.0.163">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
<PackageReference Include="xunit" Version="2.8.1" /> <PackageReference Include="xunit" Version="2.9.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1"> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

Loading…
Cancel
Save