diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 85f04c62..b78657dc 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -7,7 +7,7 @@ true - + all runtime; build; native; contentfiles; analyzers diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj index 37273bc4..cd809cdc 100644 --- a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj +++ b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Nikcio.UHeadless.IntegrationTests.TestProject.csproj @@ -1,4 +1,4 @@ - + net8.0 enable @@ -6,8 +6,8 @@ - - + + diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Program.cs b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Program.cs index b8324de1..6e8e38c7 100644 --- a/src/Nikcio.UHeadless.IntegrationTests.TestProject/Program.cs +++ b/src/Nikcio.UHeadless.IntegrationTests.TestProject/Program.cs @@ -1,4 +1,5 @@ using Nikcio.UHeadless; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Defaults.ContentItems; using Nikcio.UHeadless.Defaults.MediaItems; using Nikcio.UHeadless.Defaults.Members; @@ -10,14 +11,24 @@ builder.Services.ConfigureOptions(); -builder.CreateUmbracoBuilder() + +IUmbracoBuilder umbracoBuilder = builder.CreateUmbracoBuilder() .AddBackOffice() .AddWebsite() .AddDeliveryApi() - .AddComposers() - .AddUHeadless(options => + .AddComposers(); + +if (builder.Environment.IsDevelopment()) +{ + umbracoBuilder.AddUHeadless(options => { - options.DisableAuthorization = true; + options.AddAuth(new() + { + ApiKey = "uheadless123456789123456789123456789", + Secret = "uheadless123456789123456789123456789uheadless123456789123456789123456789uheadless123456789123456789123456789", + }); + + options.AddQuery(); options.AddDefaults(); @@ -50,8 +61,10 @@ { parserOptions.MaxAllowedFields = 10000; }); - }) - .Build(); + }); +} + +umbracoBuilder.Build(); WebApplication app = builder.Build(); @@ -60,7 +73,7 @@ app.UseAuthentication(); app.UseAuthorization(); -app.MapGraphQL(); +app.MapUHeadless(); app.UseUmbraco() .WithMiddleware(u => diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/packages.lock.json b/src/Nikcio.UHeadless.IntegrationTests.TestProject/packages.lock.json index 447a6cb1..2b764e20 100644 --- a/src/Nikcio.UHeadless.IntegrationTests.TestProject/packages.lock.json +++ b/src/Nikcio.UHeadless.IntegrationTests.TestProject/packages.lock.json @@ -17,33 +17,33 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Direct", - "requested": "[17.9.28, )", - "resolved": "17.9.28", - "contentHash": "hNfIadilgBXbAOmV7LCdPSmLsUILA3QZhR4Wu9VbFDaHjtU3dCFRfJMbk45galt1pfffz4yI5qT9oUJl+F8mNQ==" + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Umbraco.Cms": { "type": "Direct", - "requested": "[13.3.0, )", - "resolved": "13.3.0", - "contentHash": "jT7P6VWn3CEpLYCJcLsXeGXbwhFh2kjfGzgICgI/0nL7MHgEJPnrsHdNQQjkYEQqb3AO6rVUJBdntxnWJHOhWg==", + "requested": "[13.3.1, )", + "resolved": "13.3.1", + "contentHash": "yEygy6cxGneL5P7NTuBBPz3N2DuUXN6+tjwnxTP+WiOHlR7qc69iHN4ZWffL6rAywhuQQgAWygsWm4KRh1asdw==", "dependencies": { - "Umbraco.Cms.Imaging.ImageSharp": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.EFCore.SqlServer": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.EFCore.Sqlite": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.SqlServer": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.Sqlite": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Targets": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Imaging.ImageSharp": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.EFCore.SqlServer": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.EFCore.Sqlite": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.SqlServer": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.Sqlite": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Targets": "[13.3.1, 14.0.0)" } }, "uSync": { "type": "Direct", - "requested": "[13.2.0, )", - "resolved": "13.2.0", - "contentHash": "e5qHNnC1/ptDWBI8RbJTGcvbunAW8sq1INrYGckAsKYMDUj5IKGTcDrivCqAKMHOsEv6BchP+tjlW24Z8R+EYw==", + "requested": "[13.2.2, )", + "resolved": "13.2.2", + "contentHash": "dmjgXstYmdzz0SBJR9jvd4WZ1bKZ4wQ2JEzFEUQXkZR4m4DdyILMbZ9SCNbkhHI1qsk4KoNTFkUGtbSeMIxmcA==", "dependencies": { - "uSync.BackOffice": "13.2.0", - "uSync.BackOffice.Assets": "13.2.0", - "uSync.History": "13.2.0" + "uSync.BackOffice": "13.2.2", + "uSync.BackOffice.Assets": "13.2.2", + "uSync.History": "13.2.2" } }, "Asp.Versioning.Abstractions": { @@ -108,10 +108,10 @@ }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "13.0.0", - "contentHash": "6Zj/vfmnCXLjBG7WNdtOgZZ5ZDR3Sy1FQSshZUonIYs3OdzozmsFmqPXMd9XJ0QE9aAildgVGq/lDLpLrMI4Yw==", + "resolved": "16.0.1", + "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", "dependencies": { - "Yarp.ReverseProxy": "2.0.1" + "Yarp.ReverseProxy": "2.1.0" } }, "BouncyCastle.Cryptography": { @@ -170,8 +170,8 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "T8ZYTsm0S48hi89d2symCvUEJoBkg5F+rfU+HFtkEOc7WLZsIBDStnfF3c890Vxjmx/P1tFpY5StDNTM+C6fIw==", + "resolved": "13.9.4", + "contentHash": "jkD4OWSR2CmdfyrO55/m/s2onSaAar/XpCMYQGo1y+qjcaEq93cgc8HL/i8hRdV4mVgfpW60DELREYZrBaiZSw==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0", "System.Diagnostics.DiagnosticSource": "8.0.0", @@ -180,168 +180,168 @@ }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "aGBAW6d9Oj1MfmKJF482yYdJ8G87yJ0rVFxU9l7lA1dg1xjc5XALLQO9jCPz4GCpQLetuAhHdkZ713imJ6WCPw==", + "resolved": "13.9.4", + "contentHash": "4tXT2Y6U3p1h1egdS3K2qu2re0QmxJH+2thYhKfDDXZaErfod6H1NVHZIBOTw4nFdgzpL8FiFUQuvzekEsNYmA==", "dependencies": { - "HotChocolate.Authorization": "13.9.0", - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Types.CursorPagination": "13.9.0", - "HotChocolate.Types.Mutations": "13.9.0", - "HotChocolate.Types.OffsetPagination": "13.9.0", - "HotChocolate.Validation": "13.9.0" + "HotChocolate.Authorization": "13.9.4", + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4", + "HotChocolate.Types.Mutations": "13.9.4", + "HotChocolate.Types.OffsetPagination": "13.9.4", + "HotChocolate.Validation": "13.9.4" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "mb3IPL8V4NRL2FUefZP20fSwIMOnE7uCMLiM4d5Y5cjljYaMUVzUJnvdW9C1tUfbodP49Llk9WnBCR6S9fr8mQ==", + "resolved": "13.9.4", + "contentHash": "82LweGM6vtF4Wc8NmbnNwZE8PeDOWHuY9oIR8zdi/O9XayaAFy2B5bIE5QFszlqTlaiRLW9y8NpCXQkAe0mVHQ==", "dependencies": { - "HotChocolate.Language": "13.9.0", + "HotChocolate.Language": "13.9.4", "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.AspNetCore": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "RnxUdKEYOmsjzNPss473CYOug/9GIt8qlS9j8HxtZrW5TASM/9S7pDb7FthcDj4ag/D7wAwme3YxsqxH+iw5Bg==", + "resolved": "13.9.4", + "contentHash": "kW32o45UlqThLmS8rsukZjKUX2g3zNM8LhQmcS2AnFdCcCg4zWFhlR1UW1BEBv6QLsldaxJVEw5kuvwuLXSIGw==", "dependencies": { - "BananaCakePop.Middleware": "13.0.0", - "HotChocolate": "13.9.0", - "HotChocolate.Subscriptions.InMemory": "13.9.0", - "HotChocolate.Transport.Sockets": "13.9.0", - "HotChocolate.Types.Scalars.Upload": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0" + "BananaCakePop.Middleware": "16.0.1", + "HotChocolate": "13.9.4", + "HotChocolate.Subscriptions.InMemory": "13.9.4", + "HotChocolate.Transport.Sockets": "13.9.4", + "HotChocolate.Types.Scalars.Upload": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4" } }, "HotChocolate.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "z5eLUN9Uai7qLuyq6bwH6UrjYhd38f0tB9WRPjezY+/2Y8Fw2UVk2hz5FAKCr/jWC18njqTNuNateJ95IvwC6Q==", + "resolved": "13.9.4", + "contentHash": "zzxciNLZU1RVRprhiwlClyPSwdxr8G7AvQblZ9rt9EJM7fPgNFbNE9byNHN3tg7m5wEkwhsiE5ClIPH0DZGqFQ==", "dependencies": { - "HotChocolate": "13.9.0" + "HotChocolate": "13.9.4" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6CPA39zObNuMUmkmQ6J3zqmalukhjCiJS/klSEDPpwTtrn9HS/3edsh/7oiKzmUh6PNVKGed0lwkSdDP+DGZDQ==", + "resolved": "13.9.4", + "contentHash": "sU8nUTOHYwEAaZCnneMCzJs/rG+OtBme1cy+DaT3qxq9Oe6kD/kF1q1jRJjSa1juG/anOcmlu9haZZT0hotZ+g==", "dependencies": { - "HotChocolate.Execution": "13.9.0" + "HotChocolate.Execution": "13.9.4" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "zO1aG5qx5lzbZu/iKR56g+zeOgCCCa5pICwxijd1qEap+7J5q0YsME9RByw8wYPH+tNsXCvDcKaeAEcashB4cg==", + "resolved": "13.9.4", + "contentHash": "0CsRwTnG3T6nCpgXK/LI2/yn1vvHPIVDZ/NiRz01JCb4tBzsh6v1yGgT8siRhPaoBHlfryUiTbc/Rv1pp9drvw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0", - "HotChocolate.Validation": "13.9.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4", + "HotChocolate.Validation": "13.9.4", "Microsoft.Extensions.DependencyInjection": "8.0.0", "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "flySLPDyTtM4051tI3mh5Ue0fGrKFDuW3w0ebWmW2qjfuF4jgQzd3pK3ZxfkxAfpxQXyPaVn/Q7fae+fYQxeCg==", + "resolved": "13.9.4", + "contentHash": "hEIfNnbcsUtjXQSn37IL6LbN+iKUNcBt+4+hdb5EY2NUEmvZDwawsuNXzX/9UeE138xB/zdTkJu6p10cP6oHGQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", + "HotChocolate.Abstractions": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "pIw7VlEABejQGLRnJGnO7iPdT40AHklf0psJp5zNXrq0IX+Vq7hRRqON73nubZv5Ofhh8fV3kugqYFKvzcptoA==", + "resolved": "13.9.4", + "contentHash": "3eh6WCocFbJ1Dtcg1oHmpNKcytwI/ZANQUv3mpsRtTT13wE7yXbzPXrZlBcWPFYv0NeJQ2v0kk4wAmRdYxyaYg==", "dependencies": { - "GreenDonut": "13.9.0", - "HotChocolate.Types": "13.9.0" + "GreenDonut": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "M8q0XHQm8Gtab+wKgYXfVPxScjdDE+INify5yaj6g1ZDkV3sLIeX+muu1WebrNO3DgmuAi6o3aW770Ucw7k/dw==", + "resolved": "13.9.4", + "contentHash": "ez1eHzpSz7+Fn+aqG62h6kKaOfktmMwUjaT9M5NWS5LqC81n/8HG4lr8UmbGywbEU9optCWo5GfICNpQItAHaw==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0", - "HotChocolate.Language.Utf8": "13.9.0", - "HotChocolate.Language.Visitors": "13.9.0", - "HotChocolate.Language.Web": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4", + "HotChocolate.Language.Utf8": "13.9.4", + "HotChocolate.Language.Visitors": "13.9.4", + "HotChocolate.Language.Web": "13.9.4" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "+vwrQ0qOiKn/yUBHn53030hQmqj45C1g0WI8sip50CPnkgs3bAPnDInUvrR3IiHbRn5spAonO4tFPtMDdJrEMA==", + "resolved": "13.9.4", + "contentHash": "mPfX23AflbB8nhvC3hAYn93r940UHwRmhZ5jXQ3yTHZOYZhlgJypa+4I5KF/CnTFrB36tWmA3LgXnN3pJ/VMvA==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "IEWNYGvtwejf7+j+Xci25FaYets2UD8wkfzQ5dUCW47c1rnTAyuRdTiO8T8x6LYuZ7+SLg7UTBYgjv4ybwAUgA==", + "resolved": "13.9.4", + "contentHash": "+4GYr3eFPY3b2OZjByHKyOKlpY+bUGnwk0S39RW3z4KRRgv5NkYjPdI+O2iaVbIWBoJXBnb7QlEQWIj64FbbqA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "j6mPBkfVo2fopWYLoczXCoog4PJ+KwbHItSgHfPfI1kDBcNcy9XY4oxth3Uau1uBbfHYIFjnuVc+FrGb1f9KAQ==", + "resolved": "13.9.4", + "contentHash": "yJjnKtNw1gnze50n0vrsod+dS1AK8iGIgEbm9aKvIyLIaSVSQnvx5sXhX21JzKEJV7SegnvVbQdf1zhjOwTlEQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "GI5ufbNVEoKygSC09owVnCvw1Ma2KzOtm1l6uen3wKshAdOKB4gmSVCjzf71pNL2Nt6cL4IHa70ClqjECmu9qg==", + "resolved": "13.9.4", + "contentHash": "aa4ybXm9DdTpjcLvT6FfTPBYTz5xvYsg96J8OaVS0LSKeACHNrBRoF5qP5/cD01UXwSgdr19HqAki1H5D6gRtw==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.0" + "HotChocolate.Language.Utf8": "13.9.4" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "P3ason65NwSzkB2W9myV/pRIm4IMIWXH3RPCtpHVKx22Xw3hRJRJhjLBQZ5LCk5v3+7kKhXNBTbFNpbMyvez3Q==", + "resolved": "13.9.4", + "contentHash": "DRU8lN9sMhqVBAa4p/W47pvclrS+SBSzO9sWYbwDiO6OE/B3SlYSDE+Tqy66YAfcNHqFnx/Cx+rd7Kcc06nllw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "rj5U1Cd2QsjNnSNNdlSopYLtXh0kTZ1NlA1B3v02YFtj4Zu9le6QkGsl3oUljUUq46vSkkrT9ISj+e5wTCcw/Q==", + "resolved": "13.9.4", + "contentHash": "EUOHzVtVbMWQOPjCWGGmYXvIUM4K5rAYbGk6yO+76T+nVefZw/NgVb1lOx9Ii3Eo+cVBwEliPaJte7vm+HSRlA==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Subscriptions": "13.9.0", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Subscriptions": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "4hPlhS2bgqT/tYCZfPtbGtPAaedULKgTbFKkTsjigrDhJcVxBA36Gr3yGM6S3NEw2JdIgiwugYV1log9zXkEjA==", + "resolved": "13.9.4", + "contentHash": "tzLIUlpoadoAwDyPNRjtvtx0soe+fLMO//7IE/d49QFj5J/FM6pTzTuvAo7JafsmC+UU5uRGykTKXup9xdtLeA==", "dependencies": { "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "VGPZePNC4sBlz/iY4x90zIRxW62MWzWNcl2yjLS3JcW+0W8KuKxh99dFLxL0WY/+Eoe8PUecmoob+FrVEvPzpg==", + "resolved": "13.9.4", + "contentHash": "Q7XywadsAIm1hf1v+YBMOe1fbjQYAtL+NNlPk7hgumUYVz5iSY/9WYwomMZl80id0Q1aP63hzOoEDY90Em6TrQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Types.Shared": "13.9.0", - "HotChocolate.Utilities": "13.9.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Types.Shared": "13.9.4", + "HotChocolate.Utilities": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", @@ -350,66 +350,66 @@ }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2+w6tLrdjo+d/aIKyoNW1L/OH/p+FACMwGWHk1P4MwAspqaF7zjy71qTeNks+8QbRwG8uMleey/0sbr8sWpC6w==", + "resolved": "13.9.4", + "contentHash": "sm7ZghRSWQQrde5aa7VZhi/QhSbuzB7yS4jUd5/CB9AOX3WFKjJ3uitY7crWV9scLxcDgaaiAwglF7wWFvubhw==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "NX1zLkb7t19Om5RYubmkA6yRCtBbca454rqSGKSVBYjDrsiA6+4ZDvmS9Kjbw8F+cPm3VqShenrIIgfW8bzCXQ==", + "resolved": "13.9.4", + "contentHash": "pndQvOY8CnoefzKQNCNaJ++r1gf4JbvKC3c3lf6jimqEE/UJMlE935JXwZCGxnUSJ6Npb14sVoOWGM6Kl5myEA==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "LIAaSVRS6FJCssP+s4ooLajhQ1/QfES78twX4OgZFJ9/UZMxXlU3K/IWeB2aXcJNkehfIZLgoiROnouB7ATepw==", + "resolved": "13.9.4", + "contentHash": "J4o/p/HRFNQCsApy1LFlwITVHtGaUlLLhismyi5QRL7CTwC5Lk1or5KlPYufyYgbs9X3BkASlmpr9vGmg+6Ypg==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "hisB6PGGgsekz3a8YJwKgvbZHED98eph9+TMPg5A500tyvrZS00fbdpjRcN+rcTKAxhJ5evzHB2Fo1m62Dyo4w==", + "resolved": "13.9.4", + "contentHash": "AAZLF9M6h80uh3BZjhaAbS3kch0+bDmetdki7bdo5HYiYRN2tuTT1+YblhfBzoh7726mROOtYRvk7h4DQBLWHw==", "dependencies": { - "HotChocolate.Types": "13.9.0" + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2lhdbXU/GltPQWO9r8qePZSzDo9ryFs8Wv0aF7aQgEq3dLvwer6OpvnZhIYmGua6bXXebA1PzBAEaaxPpLx3Wg==", + "resolved": "13.9.4", + "contentHash": "GqaSuucguc1OBH6sg52C1RobCvry8Fzm69r2QSzTHzSJVLBXAC0HNthkVl3GpuWW3c221fM+Yh9UiFfKNaeJ3w==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6zqwjROYxtuzAYjh31JnYKgM/MySRWEq4DHO64oSPFRJQ8NDgg7EvUU771yLt/6T7kUh+S6k25hVnmUipFtEnQ==" + "resolved": "13.9.4", + "contentHash": "g0kRiYho/nxA/QRkBY9n9ZjDqPEby3A33coBvFvkkfXXYRLyFr1P6XE3ZRt3ob35AxbvnWmXYxM3aUZR5u1mfg==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "o1ijY8Rk0IUAo8QZYhfQ8s4/3z78JS9tyXGHzA963gkzTSJPehD4960CAmWlyC19FdE1i2KiTnYLhNOwNoL6+A==", + "resolved": "13.9.4", + "contentHash": "a4SeiruZOBatY4QOksJ8Zlux0vN6s1KW1ydjWPUCcdgANDkDae/+zsbPLNNxiDhkpYovDVQW7gRYkgWoZ8vGKg==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "gC7/YfOcOOmT+zV/V45CubYhK3lZI7+SmNYLGXQ1ko4cwjVRh3PzSJMAaKw3naWDcbjXbEyWwdYc0dLuoVBNEA==", + "resolved": "13.9.4", + "contentHash": "G0xU8wTZegjCBeiFdlHAQ8+27e1LVDwucjwmULZq1NdbH8EQJQnvjYOvM4XYaIhdqNi8Kn9AvUT2FM5LcBFhiQ==", "dependencies": { - "HotChocolate.Types": "13.9.0", + "HotChocolate.Types": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.Options": "8.0.0" } @@ -542,6 +542,14 @@ "resolved": "2.5.140", "contentHash": "JE3vwluOrsJ4t3hnfXzIxJUh6lhx6M/KR8Sark/HOUw1DJ5UKu5JsAnnuaQngg6poFkRx1lzHSLTkxHNJO7+uQ==" }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "type": "Transitive", + "resolved": "8.0.5", + "contentHash": "VqKkXLxsCVHNmSdUIuBtDSXL3OqX0yfDjcZxCcYD8VFNpTutl53BCFHzMb3wvw3asneHnURzC2R8VvIXn3l5Lw==", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + } + }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", "resolved": "8.0.0", @@ -1170,49 +1178,49 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "7iSWSRR72VKeonFdfDi43Lvkca98Y0F3TmmWhRSuHbkjk/IKUSO0Qd272LQFZpi5eDNQNbUXy3o4THXhOAU6cw==" + "resolved": "7.1.2", + "contentHash": "33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "N+hUPsFZs+IhlMU+qmX8NnYVB9uMxVdcWoPIhKo4oHDR/yuIFh19SVZeFby15cm8S9yedynOcfs7TU5oDCheZw==", + "resolved": "7.1.2", + "contentHash": "cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.0.0" + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "6I35Kt2/PQZAyUYLo3+QgT/LubZ5/4Ojelkbyo8KKdDgjMbVocAx2B3P5V7iMCz+rsAe/RLr6ql87QKnHtI+aw==", + "resolved": "7.1.2", + "contentHash": "YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.0.0" + "Microsoft.IdentityModel.Abstractions": "7.1.2" } }, "Microsoft.IdentityModel.Protocols": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "gFHbOw7cRrlmmguB7mgCoSjPYYqNBkARNR5hzonzMDew/x963oXoA4PgO412ca1Mv9oczE9ryRzitaDMqsh/eQ==", + "resolved": "7.1.2", + "contentHash": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.0.0", - "Microsoft.IdentityModel.Tokens": "7.0.0" + "Microsoft.IdentityModel.Logging": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, "Microsoft.IdentityModel.Protocols.OpenIdConnect": { "type": "Transitive", - "resolved": "6.24.0", - "contentHash": "a/2RRrc8C9qaw8qdD9hv1ES9YKFgxaqr/SnwMSLbwQZJSUQDd4qx1K4EYgWaQWs73R+VXLyKSxN0f/uE9CsBiQ==", + "resolved": "7.1.2", + "contentHash": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", "dependencies": { - "Microsoft.IdentityModel.Protocols": "6.24.0", - "System.IdentityModel.Tokens.Jwt": "6.24.0" + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "7.1.2" } }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "dxYqmmFLsjBQZ6F6a4XDzrZ1CTxBRFVigJvWiNtXiIsT6UlYMxs9ONMaGx9XKzcxmcgEQ2ADuCqKZduz0LR9Hw==", + "resolved": "7.1.2", + "contentHash": "oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.0.0" + "Microsoft.IdentityModel.Logging": "7.1.2" } }, "Microsoft.IO.RecyclableMemoryStream": { @@ -2194,11 +2202,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "6.24.0", - "contentHash": "Qibsj9MPWq8S/C0FgvmsLfIlHLE7ay0MJIaAmK94ivN3VyDdglqReed5qMvdQhSL0BzK6v0Z1wB/sD88zVu6Jw==", + "resolved": "7.1.2", + "contentHash": "Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "6.24.0", - "Microsoft.IdentityModel.Tokens": "6.24.0" + "Microsoft.IdentityModel.JsonWebTokens": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, "System.IO": { @@ -2922,29 +2930,29 @@ }, "Umbraco.Cms.Api.Common": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "9ZR6Q8MWB27RM81ebhDotnSypZZCQf95xl2GyiLwjsNv/Fbj0MZ9StiwksuTgE77qcKWJxZRT8V9HAwhU+ik8g==", + "resolved": "13.3.1", + "contentHash": "8ghxJ2D1YQ/ebQGj6PaxMXRQyQvit/plvvDzpTSP7xa11xTnu/gucPcxim+pz69bAbUQSeC3bYey1mPbJ1vbvQ==", "dependencies": { "OpenIddict.Abstractions": "4.10.1", "OpenIddict.AspNetCore": "4.10.1", "Swashbuckle.AspNetCore": "6.5.0", - "Umbraco.Cms.Core": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Core": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Api.Delivery": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "yJ+tU4Zy5uvAXaH8n6es//j+aSl0tacFVEAiperZ91E03wsWjCWpn5OWsgH27324AGnjlXVIwb7iDT7XFfv4/w==", + "resolved": "13.3.1", + "contentHash": "HTG+y+MkDJ5pF75x01nAOMRNobP7K4d19Khu7poXMOEHGe5SGTbHkmx+GPI+XbWTMIsmcVjilQM50yGDxekWHw==", "dependencies": { - "Umbraco.Cms.Api.Common": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Api.Common": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "XQXR10zB+ZsVbTr+D81LvZAz/BEWEv8JFrKn93gUCaDgHY6IxhVFEgBprA3Yb3Tl5ucY1KHaF6oBCBVu+TJGFQ==", + "resolved": "13.3.1", + "contentHash": "kYufe55IBGv/K9RV8Ofv10gCaVvSdPNtFRT5Tq7EBCN0jvFZhmVA1vt/xAghkIod5ruPRTbakVRLJ3U1fC7Ymg==", "dependencies": { "Microsoft.Extensions.Caching.Abstractions": "8.0.0", "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", @@ -2961,28 +2969,28 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "r7LDrko8Zqz8+cbgV3/0vparP0J5owk8tFCHZEi8vpQ1avEMf9TPzhI16gsZn1llP6sMo2M8YNKfEOQlkKyuOw==", + "resolved": "13.3.1", + "contentHash": "2QNxHFMOY6zhypyQkXldnWq+Pq1DlBZ8MufjGFlJ+uw2OLQnoq+nu06kDDzjS2fIek3oPaR3mFafmXWu9AKn+Q==", "dependencies": { "Examine": "3.2.0", "System.Security.Cryptography.Xml": "8.0.0", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Imaging.ImageSharp": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "lVav/63oZZcE+JgwrBExh+H1nZGrPxf+Fk2d6pYgzoCuIlIMMlOJOMvijDyAL2am23gZ98+QdFcHJKHesI85PQ==", + "resolved": "13.3.1", + "contentHash": "AlwjcmBjx8eHXDKkF/gj4ENpZZQ0Iyqtug61pRYcCph2y8iFZTNgsXM3fMbaMoO/M47C0EwFuNzQseA6EhI9Qg==", "dependencies": { "SixLabors.ImageSharp": "3.1.3", "SixLabors.ImageSharp.Web": "3.1.0", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "hVFlrlrgWlkSqTLXHlu909YH7+TSNVxtpVo5w0tVVhv5xsJSMP1vUO4DJiUcvCjro/br1E42XFtCWv3moNiYuA==", + "resolved": "13.3.1", + "contentHash": "5hFXMoiZuZ/499stwiZUxDcEd3xyy4K1VLSHswSCv4UAem7d37gVRNJtsod4m+Vs5iwkzdadnTarDaGiHlZxBQ==", "dependencies": { "Examine.Core": "3.2.0", "HtmlAgilityPack": "1.11.57", @@ -3009,105 +3017,105 @@ "Serilog.Sinks.Async": "1.5.0", "Serilog.Sinks.File": "5.0.0", "Serilog.Sinks.Map": "1.0.2", - "Umbraco.Cms.Core": "[13.3.0, 14.0.0)", + "Umbraco.Cms.Core": "[13.3.1, 14.0.0)", "ncrontab": "3.3.3" } }, "Umbraco.Cms.Persistence.EFCore": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "fULOywlosrY9Sw2bxiEV/ZBKDoV4eB1LBXqKbqymt+1sdhbpPDhwvdvnU7ax41McasET2FEd0azezhGFgGshZA==", + "resolved": "13.3.1", + "contentHash": "nee8j+Y927yWlGYtc5bxa8GrM2wqdOcMa9bbtqix3xv+nbU9ZrIY+RijDxHgwG/KZpLc1jMsnJH11F5sizKuQA==", "dependencies": { "Azure.Identity": "1.10.4", "Microsoft.EntityFrameworkCore.SqlServer": "8.0.1", "Microsoft.EntityFrameworkCore.Sqlite": "8.0.1", "OpenIddict.EntityFrameworkCore": "4.10.1", - "Umbraco.Cms.Core": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Core": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.EFCore.Sqlite": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "jp5gLiCYmn8R1hgXiqiYAvjsY2MHARXTlVVIqiMtSyxPjDhRUn1cy/PPvI2UK8qH7d3ZhBMeLYv727LSwCZVSA==", + "resolved": "13.3.1", + "contentHash": "IqFFXYN7VxTUg8+XaOtfz1E30ht/xeIFnwoh57Av5gfWIlMqiqMVn8TOVijRMefjGlK0ZSxjrj0JJH6pW+vGnw==", "dependencies": { "Microsoft.EntityFrameworkCore.Sqlite": "8.0.1", - "Umbraco.Cms.Persistence.EFCore": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Persistence.EFCore": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.EFCore.SqlServer": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "cfnL8xLpwoVI/VcpfT+6fwRT+0k32yEXdzb6J0QNd0M3YoehOTxvjx0469yp6O+RUD3pVheJz74KMMgrl+oopw==", + "resolved": "13.3.1", + "contentHash": "6E+Z5jdMazCWvuEYHQIH9TqdR+/7sxr8EWDYNbQ//k2Zq7X/H7LR0XQ26PNTdfXcHVkpk7zZoNSv7Hk/jA9zyw==", "dependencies": { "Azure.Identity": "1.10.4", "Microsoft.EntityFrameworkCore.SqlServer": "8.0.1", - "Umbraco.Cms.Persistence.EFCore": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Persistence.EFCore": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.Sqlite": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "VN6FQ+9C2Q13O7zNWuhMRiEWhv4hLuENrN3w3DUorzaSjdfb3OPOPx0G0SYSrFDCvB9XRcHFeBQrMg0d3meP8A==", + "resolved": "13.3.1", + "contentHash": "xjdLaO/s0d/NW1W6n8Anq0GuylDr1odgsgPb3L8HQEnHNPT8i1gazlQ4ciMLRnH67CJhO2iu46H9HPieesZxcg==", "dependencies": { "Microsoft.Data.Sqlite": "8.0.1", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.SqlServer": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "aYMpEv2VeAQWTLzqwnZKvWkmbTfcCnRfZRdiLMNlwoFus3KHeQtzmqzloFVT6iJ6VfXeigAvZQ7yD+t12PqhaQ==", + "resolved": "13.3.1", + "contentHash": "eSVCtZIdFcQmM5s+YWEqxHKkIazGtXOb5oLD+VSs/lHfpYVAFbT2V4Mgjpw0xhesIbnXQudFkGaM0meb0duVIQ==", "dependencies": { "Azure.Identity": "1.10.4", "NPoco.SqlServer": "5.7.1", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "BD1yfAfp+sAilBiFS3IcougfKJgQFsVNsLbxlq+8oQdvhr7oKNrQIsqU0b4pXRIx4AiI4EPayYIbEQluPb5o2g==", + "resolved": "13.3.1", + "contentHash": "RjyD6EknrlvVC7DMaIGvm2UiVYUkdWDc/VaSTwkHRsThMqN0iLQULbQTnMrpxK6LRuyjoHHypk4qmI1pRM4aig==", "dependencies": { "K4os.Compression.LZ4": "1.3.6", "MessagePack": "2.5.140", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.StaticAssets": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "nZORh5JrDMLO1r6V8t/0qGbgSK5qpBS07aYbF9DDLiwChHkQt5OF62S8B55VY6vwUXRSD0/cl/hM0isLSeyikA==", + "resolved": "13.3.1", + "contentHash": "FM9ciQCZX1W9Ri30nSYOssv5ooPc/rsFLgr0vh/xw1uBsvqQec3vKO0MXuVMUXGApsPVWu0DqAjbFrxMlQ7YuQ==", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Web.Website": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.BackOffice": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Web.Website": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Targets": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "iWc9L7t8N1VmikmjO0swHln0caXtyZ2Aec1hN3hIL50fk8p0b/c4k3Dn/p7OKu18V3nx9b7S+JtEJw03LYg5Qw==", + "resolved": "13.3.1", + "contentHash": "YKPx6fqbea+pxQKFKp7sbC8uiddJzKKv66+L/Ke3CvJMqdOr2IclviLknobO4TPuRNW3lCs+vvkqCTvHEL3Beg==", "dependencies": { - "Umbraco.Cms.Api.Delivery": "[13.3.0, 14.0.0)", - "Umbraco.Cms.StaticAssets": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Api.Delivery": "[13.3.1, 14.0.0)", + "Umbraco.Cms.StaticAssets": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Web.BackOffice": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "YQ5KcO7oPruBAvKjMxqddlg59X7aJ6JmZAFAns0KrcAfm6H27FswvccZErjYPm2dgiwazHjzHuGbBbPA2hA98A==", + "resolved": "13.3.1", + "contentHash": "iJRUHNfFf9pQ8oMbswIUZ6QLywLGakMlU86Px5b4qRJXlzHH5oJN/e624nGw8z8Gd698u965G6wiejBqJ3FoVw==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "8.0.1", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "Ix+cQIbP5Sfw8sraHwhdXWNTnqHX4ifMjkMooinXBwrRa8T3B8L0KePwg8Thb/TlikQTdyBJh10eXMkXbgxdIw==", + "resolved": "13.3.1", + "contentHash": "/406cV3L4BtC0Jv4v9hqaZmRG3FWGz6Czc6bAdiOK0wDtOQ0qQIu7fiE0k9+ZMpi0mXnwOdpuTyofxZFv2mzCw==", "dependencies": { "Asp.Versioning.Mvc": "7.1.1", "Asp.Versioning.Mvc.ApiExplorer": "7.1.0", @@ -3120,16 +3128,16 @@ "Smidge.Nuglify": "4.3.0", "System.Net.Http": "4.3.4", "System.Text.RegularExpressions": "4.3.1", - "Umbraco.Cms.Examine.Lucene": "[13.3.0, 14.0.0)", - "Umbraco.Cms.PublishedCache.NuCache": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Examine.Lucene": "[13.3.1, 14.0.0)", + "Umbraco.Cms.PublishedCache.NuCache": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Web.Website": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "FoXc0Gn2/sqLsmw6ffYSMh+OYHCvsHJXTwB37cWzGKFDDD058o0nXBQU+8h9zpAzxchesASbcdNYMBf2BnqaBQ==", + "resolved": "13.3.1", + "contentHash": "5n6T73RwUcW8cfnQsUiam7VogtlZmxghurh7NPitqbPh9DA3ZrapkuEzc+lo2sUm5JUyAp4Y1H8q6ZwhT0/oEA==", "dependencies": { - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -3139,40 +3147,40 @@ }, "uSync.BackOffice": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "dDV5VjviL6mjNjPIZNpxfVV0BtNv1BwrctSIffurQ2YrCfQGDsHV61UnN4b8FWcaYK4rzfAYgymxe3MZ1ASswg==", + "resolved": "13.2.2", + "contentHash": "qWezwe/OzlybHMUxFmO/1RP/t1G99315vK/qG52yAhdvkK7l3EEFWL9C90ZUCbwW4onAKq3zCNHwAjXHzNNxAg==", "dependencies": { - "uSync.Community.Contrib": "13.2.0", - "uSync.Core": "13.2.0" + "uSync.Community.Contrib": "13.2.2", + "uSync.Core": "13.2.2" } }, "uSync.BackOffice.Assets": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "1R8U6WswAW5gt9S5DDNkaMxEd7PZESTKxi/AkWn/lBO/xhyj0ydyobHUMcJnJs1ypSjZ1A5DGeAPXn0sJ9EknQ==", + "resolved": "13.2.2", + "contentHash": "JS2sRBN2ocxGvbOjJmCSEnb3+v7KMd/ALfwoxG3UEmBf81kXN6g+hYjVuY52tzDMHWwXYTC5rdO13OIvA8/d7g==", "dependencies": { "Microsoft.AspNetCore.Components.Web": "8.0.0", - "uSync.BackOffice": "13.2.0", - "uSync.BackOffice.Targets": "13.2.0" + "uSync.BackOffice": "13.2.2", + "uSync.BackOffice.Targets": "13.2.2" } }, "uSync.BackOffice.Targets": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "VxxOpeO4EbBdx7SfevpBYIg8d18hpdxTZPKYcN6cS0LI1FBoMLLQiUZ29kH9lyZ/g/d8y+HhMvOJOmXNBZXGUw==" + "resolved": "13.2.2", + "contentHash": "5gVr9GcYjFPiqMfmgo9eZH1tEAe54J8EEPWSt7lbBf6+ZMyxQ2LGfRP97/w/imC+I44P0b4jUp2gSUWLU91Czw==" }, "uSync.Community.Contrib": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "yCmPZu/dcRU7x+4R6CCTtNlkGG0YWegDOCjZ9laAiald5/iYLOlLLBtJJYT44rpTMf63oQ6ZvVhEu6yIA331oQ==", + "resolved": "13.2.2", + "contentHash": "6C989dy5PW221d8XMRWRjzy1VfugAKbpaBqLCvbxUZtKDoyh0rXVg4DByEA/f9hRU1w5ONfl/xt45A/UjnGvCA==", "dependencies": { - "uSync.Core": "13.2.0" + "uSync.Core": "13.2.2" } }, "uSync.Core": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "ouRjrM5aBIGxuqXKUoKK77TDiANjBqtyN1ZBeia2aouM4KccucdlMfG3rQtf4FvZUxheOf2iDBcLFaXl5LKqsw==", + "resolved": "13.2.2", + "contentHash": "I1F/d8u5fymIcbFm43HNR3kT1kxqv2ycZUlRGMceYRXgWd0ZTYqIvHsm6P2cN47VwgcJ8bSHpXAW3Niy/VFtmw==", "dependencies": { "Umbraco.Cms.Web.BackOffice": "13.0.0", "Umbraco.Cms.Web.Website": "13.0.0" @@ -3180,16 +3188,16 @@ }, "uSync.History": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "Gwpg6wfMIrIUua5Y8Ksb9KmrslMJscFE8gBcwvRcCcvOolbwoGihqcQLBOsCV17Vffkwva4an5TonWM36K/2Sw==", + "resolved": "13.2.2", + "contentHash": "MdcBZ5ABvmcJ2T06gcIkIn1RlPlagMGjWnGU0wd4NUp2MB7qsjJWBKmnlTp5P3MbsBTaqlPVRHnIAd3qaRlr0A==", "dependencies": { - "uSync.BackOffice": "13.2.0" + "uSync.BackOffice": "13.2.2" } }, "Yarp.ReverseProxy": { "type": "Transitive", - "resolved": "2.0.1", - "contentHash": "op7vBwONPFeR1PYxeLw+RLqSodODDX8RWd0OinLGMVIq6yi1q9mv1j56ImuyZgiAToksiC0Dc7jbRUZ9I+jvFA==", + "resolved": "2.1.0", + "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==", "dependencies": { "System.IO.Hashing": "7.0.0" } @@ -3197,11 +3205,12 @@ "nikcio.uheadless": { "type": "Project", "dependencies": { - "HotChocolate.AspNetCore": "[13.9.0, )", - "HotChocolate.AspNetCore.Authorization": "[13.9.0, )", + "HotChocolate.AspNetCore": "[13.9.4, )", + "HotChocolate.AspNetCore.Authorization": "[13.9.4, )", + "Microsoft.AspNetCore.Authentication.JwtBearer": "[8.0.5, )", "Microsoft.Extensions.DependencyInjection.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", - "Umbraco.Cms.Web.Common": "[11.0.0, )" + "Umbraco.Cms.Web.Common": "[13.0.0, )" } } } diff --git a/src/Nikcio.UHeadless.IntegrationTests.TestProject/umbraco/Data/Default-Tests b/src/Nikcio.UHeadless.IntegrationTests.TestProject/umbraco/Data/Default-Tests index 91d13d59..7a3c32ad 100644 Binary files a/src/Nikcio.UHeadless.IntegrationTests.TestProject/umbraco/Data/Default-Tests and b/src/Nikcio.UHeadless.IntegrationTests.TestProject/umbraco/Data/Default-Tests differ diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentAtRootQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentAtRootQuery.cs new file mode 100644 index 00000000..17641f98 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentAtRootQuery.cs @@ -0,0 +1,54 @@ +using System.Net.Http.Json; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _contentAtRootSnapshotPath = $"{SnapshotConstants.AuthBasePath}/ContentAtRoot"; + + [Theory] + [InlineData(1, 1, "en-us", false, null, true, ContentAtRootQuery.ClaimValue)] + [InlineData(1, 1, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead)] + [InlineData(1, 1, "en-us", false, null, false, "Invalid")] + public async Task ContentAtRootQuery_Snaps_Async( + int page, + int pageSize, + string? culture, + bool? includePreview, + string? segment, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_contentAtRootSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = ContentAtRootQueries.GetItems, + variables = new + { + page, + pageSize, + culture, + includePreview, + segment + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"ContentAtRoot_Snaps_{page}_{pageSize}_{culture}_{includePreview}_{segment}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByContentTypeQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByContentTypeQuery.cs new file mode 100644 index 00000000..88181e54 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByContentTypeQuery.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Headers; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.Properties; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _contentByContentTypeSnapshotPath = $"{SnapshotConstants.AuthBasePath}/ContentByContentType"; + + [Theory] + [InlineData("default", 1, 1, "en-us", false, null, true, ContentByContentTypeQuery.ClaimValue)] + [InlineData("default", 1, 1, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead)] + [InlineData("default", 1, 1, "en-us", false, null, true, ContentByContentTypeQuery.ClaimValue, MemberPicker.ClaimValue)] + [InlineData("default", 1, 1, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead, MemberPicker.ClaimValue)] + [InlineData("default", 1, 1, "en-us", false, null, false, "Invalid")] + public async Task ContentByContentTypeQuery_Snaps_Async( + string contentType, + int page, + int pageSize, + string? culture, + bool? includePreview, + string? segment, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_contentByContentTypeSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = ContentByContentTypeQueries.GetItems, + variables = new + { + contentType, + page, + pageSize, + culture, + includePreview, + segment + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"ContentByContentType_Snaps_{contentType}_{page}_{pageSize}_{culture}_{includePreview}_{segment}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByGuidQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByGuidQuery.cs new file mode 100644 index 00000000..96dd5197 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByGuidQuery.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.Properties; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _contentByGuidSnapshotPath = $"{SnapshotConstants.AuthBasePath}/ContentByGuid"; + + [Theory] + [InlineData("eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", "en-us", false, null, true, DefaultClaimValues.GlobalContentRead)] + [InlineData("eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", "en-us", false, null, true, ContentByGuidQuery.ClaimValue)] + [InlineData("ca69a30f-bf47-4acf-b31b-556c585d204b", "en-us", false, null, true, ContentByGuidQuery.ClaimValue, MemberPicker.ClaimValue)] + [InlineData("ca69a30f-bf47-4acf-b31b-556c585d204b", "en-us", false, null, true, DefaultClaimValues.GlobalContentRead, MemberPicker.ClaimValue)] + [InlineData("eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", "en-us", false, null, true, "Invalid")] // Doesn't error because null is a vaild response + public async Task ContentByGuidQuery_Snaps_Async( + string key, + string? culture, + bool? includePreview, + string? segment, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_contentByGuidSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = ContentByGuidQueries.GetItems, + variables = new + { + key, + culture, + includePreview, + segment + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"ContentByGuid_Snaps_{key}_{culture}_{includePreview}_{segment}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByIdQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByIdQuery.cs new file mode 100644 index 00000000..4816d97d --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByIdQuery.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.Properties; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _contentByIdSnapshotPath = $"{SnapshotConstants.AuthBasePath}/ContentById"; + + [Theory] + [InlineData(1146, "en-us", false, null, true, ContentByIdQuery.ClaimValue)] + [InlineData(1146, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead)] + [InlineData(1152, "en-us", false, null, true, ContentByIdQuery.ClaimValue, MemberPicker.ClaimValue)] + [InlineData(1152, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead, MemberPicker.ClaimValue)] + [InlineData(1152, "en-us", false, null, true, "Invalid")] // Doesn't error because null is a vaild response + public async Task ContentByIdQuery_Snaps_Async( + int id, + string? culture, + bool? includePreview, + string? segment, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_contentByIdSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = ContentByIdQueries.GetItems, + variables = new + { + id, + culture, + includePreview, + segment + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"ContentById_Snaps_{id}_{culture}_{includePreview}_{segment}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByRouteQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByRouteQuery.cs new file mode 100644 index 00000000..ac85b422 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByRouteQuery.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.Properties; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _contentByRouteSnapshotPath = $"{SnapshotConstants.AuthBasePath}/ContentByRoute"; + + [Theory] + [InlineData("https://site-1.com", "/homepage", null, false, null, true, ContentByRouteQuery.ClaimValue)] + [InlineData("https://site-1.com", "/homepage", null, false, null, true, DefaultClaimValues.GlobalContentRead)] + [InlineData("https://site-1.com", "/homepage", null, false, null, true, DefaultClaimValues.GlobalContentRead, MemberPicker.ClaimValue)] + [InlineData("https://site-1.com", "/homepage", null, false, null, true, ContentByRouteQuery.ClaimValue, MemberPicker.ClaimValue)] + [InlineData("https://site-1.com", "/homepage", null, false, null, true, "Invalid")] // Doesn't error because null is a vaild response + public async Task ContentByRouteQuery_Snaps_Async( + string baseUrl, + string route, + string? culture, + bool? includePreview, + string? segment, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_contentByRouteSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = ContentByRouteQueries.GetItems, + variables = new + { + baseUrl, + route, + culture, + includePreview, + segment + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"ContentByRoute_Snaps_{Convert.ToBase64String(Encoding.UTF8.GetBytes(baseUrl))}_{Convert.ToBase64String(Encoding.UTF8.GetBytes(route))}_{culture}_{includePreview}_{segment}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByTagQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByTagQuery.cs new file mode 100644 index 00000000..465eb5f3 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.ContentByTagQuery.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.Properties; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _contentByTagSnapshotPath = $"{SnapshotConstants.AuthBasePath}/ContentByTag"; + + [Theory] + //[InlineData("normal", null, "en-us", false, null, true, ContentByTagQuery.ClaimValue)] // For some reason, this test fails only on the CI pipeline + //[InlineData("normal", null, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead)] + [InlineData("normal", null, "en-us", false, null, true, ContentByTagQuery.ClaimValue, MemberPicker.ClaimValue)] + [InlineData("normal", null, "en-us", false, null, true, DefaultClaimValues.GlobalContentRead, MemberPicker.ClaimValue)] + [InlineData("normal", null, "en-us", false, null, false, "Invalid")] + public async Task ContentByTagQuery_Snaps_Async( + string tag, + string? tagGroup, + string? culture, + bool? includePreview, + string? segment, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_contentByTagSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = ContentByTagQueries.GetItems, + variables = new + { + tag, + tagGroup, + culture, + includePreview, + segment + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"ContentByTag_Snaps_{tag}_{tagGroup}_{culture}_{includePreview}_{segment}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.CreateTokenMutation.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.CreateTokenMutation.cs new file mode 100644 index 00000000..627cf10c --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.CreateTokenMutation.cs @@ -0,0 +1,116 @@ +using System.Net; +using System.Net.Http.Json; +using System.Text.Json; +using System.Text.RegularExpressions; +using Nikcio.UHeadless.Defaults.Authorization; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + [Theory] + [InlineData("name", "value", null)] + [InlineData("scope", """{"A": "B", "C": 1, "D": true}""", TokenClaimType.Json)] + [InlineData("scope", """["A", "B", "C"]""", TokenClaimType.JsonArray)] + [InlineData("scope", """[1, 2, 3]""", TokenClaimType.JsonArray)] + public async Task CreateTokenMutation_WithSingleClaim_Async(string name, string value, TokenClaimType? type) + { + HttpClient client = _factory.CreateClient(); + + var claims = new TokenClaim[] + { + new() + { + Name = name, + Value = type == null ? value : JsonSerializer.Deserialize(value) ?? throw new InvalidOperationException("Cannot deserialize JSON."), + Type = type + } + }; + + JwtToken token = await CreateTokenMutation_Async(client, claims).ConfigureAwait(true); + + Assert.NotNull(token); + Assert.NotEmpty(token.Token); + Assert.True(token.Expires > 0); + Assert.Equal(DefaultHeaders.Token, token.Header); + Assert.Equal("Bearer ", token.Prefix); + } + + private static readonly JsonSerializerOptions _jsonSerializerOptions = new() + { + PropertyNameCaseInsensitive = true + }; + + public static async Task CreateTokenMutation_Async(HttpClient client, params TokenClaim[] claims) + { + ArgumentNullException.ThrowIfNull(client); + + using var request = JsonContent.Create(new + { + query = CreateTokenMutations.CreateToken, + variables = new + { + claims = claims.Select(claim => new + { + claim.Name, + claim.Value, + Type = claim.Type.HasValue ? TestUtils.GetHotChocolateEnum(claim.Type.Value.ToString()) : null + }).ToArray() + } + }); + + request.Headers.Add(DefaultHeaders.ApiKey, AuthenticatedApplicationFactory.ApiKey); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + Assert.NotEmpty(responseContent); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + JwtTokenResponse jwtTokenResponse = await response.Content.ReadFromJsonAsync(_jsonSerializerOptions).ConfigureAwait(true) ?? throw new InvalidOperationException("Failed to read token from response."); + return jwtTokenResponse.Data.CreateToken; + } + + private sealed class JwtTokenResponse + { + public required DataObject Data { get; init; } + + public sealed class DataObject + { + public required JwtToken CreateToken { get; init; } + } + } +} + +public static class CreateTokenMutations +{ + public const string CreateToken = """ + mutation CreateTokenMutation($claims: [TokenClaimInput!]!) { + createToken(claims: $claims) { + expires + token + header + prefix + } + } + """; +} + +public static partial class TestUtils +{ + public static string GetHotChocolateEnum(string enumAsString) + { + string result = CapitalLettersRegex().Replace(enumAsString, "_$1").ToUpperInvariant(); + + if (result.StartsWith('_')) + { + result = result[1..]; + } + + return result; + } + + [GeneratedRegex(@"([A-Z])")] + private static partial Regex CapitalLettersRegex(); +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByDisplayNameQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByDisplayNameQuery.cs new file mode 100644 index 00000000..b2caf70e --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByDisplayNameQuery.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; +using Umbraco.Cms.Core.Persistence.Querying; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _findMembersByDisplayNameSnapshotPath = $"{SnapshotConstants.AuthBasePath}/FindMembersByDisplayName"; + + [Theory] + [InlineData("user1", StringPropertyMatchType.Exact, 1, 1, true, FindMembersByDisplayNameQuery.ClaimValue)] + [InlineData("user1", StringPropertyMatchType.Exact, 1, 1, true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("user1", StringPropertyMatchType.Exact, 1, 1, false, "Invalid")] + public async Task FindMembersByDisplayNameQuery_Snaps_Async( + string displayName, + StringPropertyMatchType matchType, + int page, + int pageSize, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_findMembersByDisplayNameSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = FindMembersByDisplayNameQueries.GetItems, + variables = new + { + displayName, + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), + page, + pageSize, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"FindMembersByDisplayName_Snaps_{displayName}_{matchType}_{page}_{pageSize}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByEmailQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByEmailQuery.cs new file mode 100644 index 00000000..2bdcac53 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByEmailQuery.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; +using Umbraco.Cms.Core.Persistence.Querying; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _findMembersByEmailSnapshotPath = $"{SnapshotConstants.AuthBasePath}/FindMembersByEmail"; + + [Theory] + [InlineData("user1@test.com", StringPropertyMatchType.Exact, 1, 1, true, FindMembersByEmailQuery.ClaimValue)] + [InlineData("user1@test.com", StringPropertyMatchType.Exact, 1, 1, true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("user1@test.com", StringPropertyMatchType.Exact, 1, 1, false, "Invalid")] + public async Task FindMembersByEmailQuery_Snaps_Async( + string email, + StringPropertyMatchType matchType, + int page, + int pageSize, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_findMembersByEmailSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = FindMembersByEmailQueries.GetItems, + variables = new + { + email, + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), + page, + pageSize, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"FindMembersByEmail_Snaps_{email}_{matchType}_{page}_{pageSize}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByRoleQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByRoleQuery.cs new file mode 100644 index 00000000..4c4a54ae --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByRoleQuery.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; +using Umbraco.Cms.Core.Persistence.Querying; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _findMembersByRoleSnapshotPath = $"{SnapshotConstants.AuthBasePath}/FindMembersByRole"; + + [Theory] + [InlineData("Member group 1", "", StringPropertyMatchType.Exact, 1, 1, true, FindMembersByRoleQuery.ClaimValue)] + [InlineData("Member group 1", "", StringPropertyMatchType.Exact, 1, 1, true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("Member group 1", "", StringPropertyMatchType.Exact, 1, 1, false, "Invalid")] + public async Task FindMembersByRoleQuery_Snaps_Async( + string roleName, + string usernameToMatch, + StringPropertyMatchType matchType, + int page, + int pageSize, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_findMembersByRoleSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = FindMembersByRoleQueries.GetItems, + variables = new + { + roleName, + usernameToMatch, + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), + page, + pageSize, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"FindMembersByRole_Snaps_{roleName}_{usernameToMatch}_{matchType}_{page}_{pageSize}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByUsernameQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByUsernameQuery.cs new file mode 100644 index 00000000..b5adfeb2 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.FindMembersByUsernameQuery.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; +using Umbraco.Cms.Core.Persistence.Querying; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _findMembersByUsernameSnapshotPath = $"{SnapshotConstants.AuthBasePath}/FindMembersByUsername"; + + [Theory] + [InlineData("user1", StringPropertyMatchType.Exact, 1, 1, true, FindMembersByUsernameQuery.ClaimValue)] + [InlineData("user1", StringPropertyMatchType.Exact, 1, 1, true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("user1", StringPropertyMatchType.Exact, 1, 1, false, "Invalid")] + public async Task FindMembersByUsernameQuery_Snaps_Async( + string username, + StringPropertyMatchType matchType, + int page, + int pageSize, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_findMembersByUsernameSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = FindMembersByUsernameQueries.GetItems, + variables = new + { + username, + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), + page, + pageSize, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"FindMembersByUsername_Snaps_{username}_{matchType}_{page}_{pageSize}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaAtRootQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaAtRootQuery.cs new file mode 100644 index 00000000..0ae88245 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaAtRootQuery.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.MediaItems; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _mediaAtRootSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MediaAtRoot"; + + [Theory] + [InlineData(1, 1, true, MediaAtRootQuery.ClaimValue)] + [InlineData(1, 1, true, DefaultClaimValues.GlobalMediaRead)] + [InlineData(1, 1, false, "Invalid")] + public async Task MediaAtRootQuery_Snaps_Async( + int page, + int pageSize, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_mediaAtRootSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MediaAtRootQueries.GetItems, + variables = new + { + page, + pageSize, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MediaAtRoot_Snaps_{page}_{pageSize}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByContentTypeQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByContentTypeQuery.cs new file mode 100644 index 00000000..28252e6a --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByContentTypeQuery.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.MediaItems; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _mediaByContentTypeSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MediaByContentType"; + + [Theory] + [InlineData("image", 1, 1, true, MediaByContentTypeQuery.ClaimValue)] + [InlineData("image", 1, 1, true, DefaultClaimValues.GlobalMediaRead)] + [InlineData("image", 1, 1, false, "Invalid")] + public async Task MediaByContentTypeQuery_Snaps_Async( + string contentType, + int page, + int pageSize, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_mediaByContentTypeSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MediaByContentTypeQueries.GetItems, + variables = new + { + contentType, + page, + pageSize, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MediaByContentType_Snaps_{contentType}_{page}_{pageSize}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByGuidQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByGuidQuery.cs new file mode 100644 index 00000000..73cb63b9 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByGuidQuery.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.MediaItems; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _mediaByGuidSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MediaByGuid"; + + [Theory] + [InlineData("25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", true, MediaByGuidQuery.ClaimValue)] + [InlineData("25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", true, DefaultClaimValues.GlobalMediaRead)] + [InlineData("25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", true, "Invalid")] // Doesn't error because null is a vaild response + public async Task MediaByGuidQuery_Snaps_Async( + string key, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_mediaByGuidSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MediaByGuidQueries.GetItems, + variables = new + { + key, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MediaByGuid_Snaps_{key}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByIdQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByIdQuery.cs new file mode 100644 index 00000000..c9f099b3 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MediaByIdQuery.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.MediaItems; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _mediaByIdSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MediaById"; + + [Theory] + [InlineData(1138, true, MediaByIdQuery.ClaimValue)] + [InlineData(1138, true, DefaultClaimValues.GlobalMediaRead)] + [InlineData(1138, true, "Invalid")] // Doesn't error because null is a vaild response + public async Task MediaByIdQuery_Snaps_Async( + int id, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_mediaByIdSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MediaByIdQueries.GetItems, + variables = new + { + id, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MediaById_Snaps_{id}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByEmailQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByEmailQuery.cs new file mode 100644 index 00000000..fd3b856f --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByEmailQuery.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _memberByEmailSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MemberByEmail"; + + [Theory] + [InlineData("user1@test.com", true, MemberByEmailQuery.ClaimValue)] + [InlineData("user1@test.com", true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("user1@test.com", true, "Invalid")] + public async Task MemberByEmailQuery_Snaps_Async( + string email, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_memberByEmailSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MemberByEmailQueries.GetItems, + variables = new + { + email, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MemberByEmail_Snaps_{email}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByGuidQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByGuidQuery.cs new file mode 100644 index 00000000..ff397b28 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByGuidQuery.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _memberByGuidSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MemberByGuid"; + + [Theory] + [InlineData("91eecdea-fc1e-408d-ac41-545ceefa3dc5", true, MemberByGuidQuery.ClaimValue)] + [InlineData("91eecdea-fc1e-408d-ac41-545ceefa3dc5", true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("91eecdea-fc1e-408d-ac41-545ceefa3dc5", true, "Invalid")] // Doesn't error because null is a vaild response + public async Task MemberByGuidQuery_Snaps_Async( + Guid key, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_memberByGuidSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MemberByGuidQueries.GetItems, + variables = new + { + key, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MemberByGuid_Snaps_{key}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByIdQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByIdQuery.cs new file mode 100644 index 00000000..2ee0ffd7 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByIdQuery.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _memberByIdSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MemberById"; + + [Theory] + [InlineData(1179, true, MemberByIdQuery.ClaimValue)] + [InlineData(1179, true, DefaultClaimValues.GlobalMemberRead)] + [InlineData(1179, true, "Invalid")] + public async Task MemberByIdQuery_Snaps_Async( + int id, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_memberByIdSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MemberByIdQueries.GetItems, + variables = new + { + id, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MemberById_Snaps_{id}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByUsernameQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByUsernameQuery.cs new file mode 100644 index 00000000..cbb4a2e9 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.MemberByUsernameQuery.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.Members; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _memberByUsernameSnapshotPath = $"{SnapshotConstants.AuthBasePath}/MemberByUsername"; + + [Theory] + [InlineData("user1", true, MemberByUsernameQuery.ClaimValue)] + [InlineData("user1", true, DefaultClaimValues.GlobalMemberRead)] + [InlineData("user1", true, "Invalid")] + public async Task MemberByUsernameQuery_Snaps_Async( + string username, + bool expectSuccess, + params string[] claims) + { + var snapshotProvider = new SnapshotProvider($"{_memberByUsernameSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + JwtToken token = await CreateTokenMutation_Async(client, new TokenClaim() { Name = DefaultClaims.UHeadlessScope, Value = claims }).ConfigureAwait(true); + + client.DefaultRequestHeaders.Add(token.Header, token.Prefix + token.Token); + + using var request = JsonContent.Create(new + { + query = MemberByUsernameQueries.GetItems, + variables = new + { + username, + } + }); + + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"MemberByUsername_Snaps_{username}_{string.Join("-", claims)}"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.Equal(expectSuccess, response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.Schema.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.Schema.cs new file mode 100644 index 00000000..db33467b --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.Schema.cs @@ -0,0 +1,24 @@ +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; + +public partial class ApiAuthTests +{ + private const string _schemaSnapshotPath = $"{SnapshotConstants.AuthBasePath}/Schema"; + + [Fact] + public async Task Can_Get_Schema_Async() + { + var snapshotProvider = new SnapshotProvider($"{_schemaSnapshotPath}"); + HttpClient client = _factory.CreateClient(); + + HttpResponseMessage response = await client.GetAsync("/graphql?sdl").ConfigureAwait(true); + + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"Schema"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.True(response.IsSuccessStatusCode); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.UtilityGetClaimGroups.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.UtilityGetClaimGroups.cs new file mode 100644 index 00000000..45a34f71 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.UtilityGetClaimGroups.cs @@ -0,0 +1,45 @@ +using System.Net.Http.Json; +using Nikcio.UHeadless.IntegrationTests; + +namespace Nikcio.UHeadless.IntegrationTests; +public partial class ApiAuthTests +{ + private const string _utilityGetClaimGroupsSnapshotPath = $"{SnapshotConstants.AuthBasePath}/UtilityGetClaimGroups"; + + [Fact] + public async Task Utility_GetClaimGroups_Snaps_Async() + { + var snapshotProvider = new SnapshotProvider($"{_utilityGetClaimGroupsSnapshotPath}/Snaps"); + HttpClient client = _factory.CreateClient(); + + using var request = JsonContent.Create(new + { + query = UtilityGetClaimGroupsQueries.GetItems, + variables = new + { + } + }); + HttpResponseMessage response = await client.PostAsync("/graphql", request).ConfigureAwait(true); + string responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(true); + + string snapshotName = $"Utility_GetClaimGroups_Snaps"; + + await snapshotProvider.AssertIsSnapshotEqualAsync(snapshotName, responseContent).ConfigureAwait(true); + Assert.True(response.IsSuccessStatusCode); + } +} + +public static class UtilityGetClaimGroupsQueries +{ + public const string GetItems = """ + query { + utility_GetClaimGroups { + groupName + claimValues { + name + values + } + } + } + """; +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.cs new file mode 100644 index 00000000..f004f6ee --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiAuthTests.cs @@ -0,0 +1,12 @@ +namespace Nikcio.UHeadless.IntegrationTests; + +[Collection(nameof(ApplicationFactoryBase))] +public partial class ApiAuthTests : IClassFixture +{ + private readonly AuthenticatedApplicationFactory _factory; + + public ApiAuthTests(AuthenticatedApplicationFactory factory) + { + _factory = factory; + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentAtRootQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentAtRootQuery.cs index 3938df81..e67d1348 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentAtRootQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentAtRootQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByContentTypeQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByContentTypeQuery.cs index dde4cb1f..ee2a54f4 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByContentTypeQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByContentTypeQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByGuidQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByGuidQuery.cs index 752dcfa3..6cb2769d 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByGuidQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByGuidQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByIdQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByIdQuery.cs index 8f9d89a8..54b85427 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByIdQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByIdQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByRouteQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByRouteQuery.cs index c1fe2233..65f14439 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByRouteQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByRouteQuery.cs @@ -1,7 +1,7 @@ using System.Net.Http.Json; using System.Text; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByTagQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByTagQuery.cs index 41e4bfbf..15fdab0a 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByTagQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.ContentByTagQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByDisplayNameQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByDisplayNameQuery.cs index 49b5644c..ce685ad6 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByDisplayNameQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByDisplayNameQuery.cs @@ -1,7 +1,7 @@ using System.Net.Http.Json; using Umbraco.Cms.Core.Persistence.Querying; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { @@ -33,7 +33,7 @@ public async Task FindMembersByDisplayNameQuery_Snaps_Async( variables = new { displayName, - matchType = matchType.ToString().ToUpperInvariant(), + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), page, pageSize, } diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByEmailQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByEmailQuery.cs index 7876f305..75f911c0 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByEmailQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByEmailQuery.cs @@ -1,7 +1,7 @@ using System.Net.Http.Json; using Umbraco.Cms.Core.Persistence.Querying; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { @@ -33,7 +33,7 @@ public async Task FindMembersByEmailQuery_Snaps_Async( variables = new { email, - matchType = matchType.ToString().ToUpperInvariant(), + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), page, pageSize, } diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByRoleQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByRoleQuery.cs index 2882e29e..fbd48042 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByRoleQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByRoleQuery.cs @@ -1,7 +1,7 @@ using System.Net.Http.Json; using Umbraco.Cms.Core.Persistence.Querying; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { @@ -37,7 +37,7 @@ public async Task FindMembersByRoleQuery_Snaps_Async( { roleName, usernameToMatch, - matchType = matchType.ToString().ToUpperInvariant(), + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), page, pageSize, } diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByUsernameQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByUsernameQuery.cs index b135cb6d..af8b172f 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByUsernameQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.FindMembersByUsernameQuery.cs @@ -1,7 +1,7 @@ using System.Net.Http.Json; using Umbraco.Cms.Core.Persistence.Querying; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { @@ -33,7 +33,7 @@ public async Task FindMembersByUsernameQuery_Snaps_Async( variables = new { username, - matchType = matchType.ToString().ToUpperInvariant(), + matchType = TestUtils.GetHotChocolateEnum(matchType.ToString()), page, pageSize, } diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaAtRootQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaAtRootQuery.cs index cf8c0cf3..e8eca5c9 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaAtRootQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaAtRootQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByContentTypeQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByContentTypeQuery.cs index be9e6f97..f25a4991 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByContentTypeQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByContentTypeQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByGuidQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByGuidQuery.cs index 51f8df02..fd4a73ce 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByGuidQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByGuidQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByIdQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByIdQuery.cs index efe47524..56445e14 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByIdQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MediaByIdQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByEmailQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByEmailQuery.cs index 9ef5cf71..d4b2ea36 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByEmailQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByEmailQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByGuidQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByGuidQuery.cs index 1c315db4..4d4307ea 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByGuidQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByGuidQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByIdQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByIdQuery.cs index 48d08e7c..a8bdb214 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByIdQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByIdQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByUsernameQuery.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByUsernameQuery.cs index 458c9eea..fdd255ab 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByUsernameQuery.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.MemberByUsernameQuery.cs @@ -1,6 +1,6 @@ using System.Net.Http.Json; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.Schema.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.Schema.cs index d791051f..cf08640e 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.Schema.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.Schema.cs @@ -1,4 +1,4 @@ -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class ApiTests { diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.cs b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.cs index 76b3ddf9..a51fd6d2 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApiTests.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApiTests.cs @@ -1,10 +1,11 @@ -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; -public partial class ApiTests : IClassFixture +[Collection(nameof(ApplicationFactoryBase))] +public partial class ApiTests : IClassFixture { - private readonly ApplicactionFactory _factory; + private readonly UnAuthenticatedApplicationFactory _factory; - public ApiTests(ApplicactionFactory factory) + public ApiTests(UnAuthenticatedApplicationFactory factory) { _factory = factory; } diff --git a/src/Nikcio.UHeadless.IntegrationTests/ApplicactionFactory.cs b/src/Nikcio.UHeadless.IntegrationTests/ApplicationFactoryBase.cs similarity index 53% rename from src/Nikcio.UHeadless.IntegrationTests/ApplicactionFactory.cs rename to src/Nikcio.UHeadless.IntegrationTests/ApplicationFactoryBase.cs index dbf1bc61..629238f1 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/ApplicactionFactory.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/ApplicationFactoryBase.cs @@ -1,28 +1,41 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; namespace Nikcio.UHeadless.IntegrationTests; -public class ApplicactionFactory : WebApplicationFactory +public abstract class ApplicationFactoryBase : WebApplicationFactory { - protected override void ConfigureWebHost(IWebHostBuilder builder) + public abstract UHeadlessSetup UHeadlessSetup { get; } + + public override async ValueTask DisposeAsync() + { + GC.SuppressFinalize(this); + await base.DisposeAsync().ConfigureAwait(true); + } + + protected override IHost CreateHost(IHostBuilder builder) { ArgumentNullException.ThrowIfNull(builder); - builder.ConfigureAppConfiguration(config => + builder.ConfigureHostConfiguration(config => { config.AddInMemoryCollection(new Dictionary { ["ConnectionStrings:umbracoDbDSN"] = SqliteConnectionStrings.ConnectionString(), - ["ConnectionStrings:umbracoDbDSN_ProviderName"] = "Microsoft.Data.Sqlite" + ["ConnectionStrings:umbracoDbDSN_ProviderName"] = "Microsoft.Data.Sqlite", + [nameof(UHeadlessSetup)] = UHeadlessSetup.GetType().FullName, }); }); - } - public override async ValueTask DisposeAsync() - { - GC.SuppressFinalize(this); - await base.DisposeAsync().ConfigureAwait(true); + builder.UseEnvironment("Testing"); + + return base.CreateHost(builder); } } + +public abstract class UHeadlessSetup +{ + public abstract Action GetSetup(); +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/AuthenticatedApplicationFactory.cs b/src/Nikcio.UHeadless.IntegrationTests/AuthenticatedApplicationFactory.cs new file mode 100644 index 00000000..a662a6d5 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/AuthenticatedApplicationFactory.cs @@ -0,0 +1,63 @@ +using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Authorization; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.MediaItems; +using Nikcio.UHeadless.Defaults.Members; + +namespace Nikcio.UHeadless.IntegrationTests; + +public class AuthenticatedApplicationFactory : ApplicationFactoryBase +{ + public const string ApiKey = "AJvT7FWOPL61h*PFXCsduJbLQKX5Q@w2l9c6VGIzTT4twUhX374dltXfQUwg89lUD&dk@5B^3aYb@QmepnuEARPAUhkAp%czAcQ"; + + public override UHeadlessSetup UHeadlessSetup => new AuthenticatedUHeadlessSetup(); +} + +public class AuthenticatedUHeadlessSetup : UHeadlessSetup +{ + public override Action GetSetup() + { + return options => + { + options.AddAuth(new() + { + ApiKey = AuthenticatedApplicationFactory.ApiKey, + Secret = "GbLv0IRh*gk7bLVuDHw$3CelL409RHx3Z#0sLvRXhHnE&F@kPBMufdjPqYgzl%d8I52gY83k8Sf4CxbGYbMyFg7lQZ2o^49aL9x" + }); + + options.AddDefaults(); + + options.AddQuery(); + + options + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery(); + + options + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery(); + + options + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery(); + + // This is to allow the long queries we build for getting all the fields for tests. + options.RequestExecutorBuilder.ModifyParserOptions(parserOptions => + { + parserOptions.MaxAllowedFields = 10000; + }); + }; + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj b/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj index 6d172afb..707bb3a3 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj +++ b/src/Nikcio.UHeadless.IntegrationTests/Nikcio.UHeadless.IntegrationTests.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -23,10 +23,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -35,7 +35,19 @@ - + + + + ApiTests.cs + + + + + + ApiAuthTests.cs + + + diff --git a/src/Nikcio.UHeadless.IntegrationTests/SnapshotConstants.cs b/src/Nikcio.UHeadless.IntegrationTests/SnapshotConstants.cs index 82fa6862..6e3bf2e9 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/SnapshotConstants.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/SnapshotConstants.cs @@ -3,4 +3,5 @@ namespace Nikcio.UHeadless.IntegrationTests; public static class SnapshotConstants { public const string BasePath = "Snapshots"; + public const string AuthBasePath = "Snapshots/Auth"; } diff --git a/src/Nikcio.UHeadless.IntegrationTests/SnapshotProvider.cs b/src/Nikcio.UHeadless.IntegrationTests/SnapshotProvider.cs index 5977f1f1..94342b71 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/SnapshotProvider.cs +++ b/src/Nikcio.UHeadless.IntegrationTests/SnapshotProvider.cs @@ -3,7 +3,7 @@ using System.Text.Json.Nodes; using System.Text.RegularExpressions; -namespace Nikcio.UHeadless.IntegrationTests.Defaults; +namespace Nikcio.UHeadless.IntegrationTests; public partial class SnapshotProvider { diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__Invalid new file mode 100644 index 00000000..4b9757d4 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 9, + "column": 3 + } + ], + "path": [ + "contentAtRoot" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__content.at.root.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__content.at.root.query new file mode 100644 index 00000000..62993e09 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__content.at.root.query @@ -0,0 +1,27 @@ +{ + "data": { + "contentAtRoot": { + "items": [ + { + "url": "http://site-1.com/", + "redirect": null, + "statusCode": 200, + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null, + "parent": null, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 5, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__global.content.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__global.content.read new file mode 100644 index 00000000..62993e09 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentAtRoot/Snaps/ContentAtRoot_Snaps_1_1_en-us_False__global.content.read @@ -0,0 +1,27 @@ +{ + "data": { + "contentAtRoot": { + "items": [ + { + "url": "http://site-1.com/", + "redirect": null, + "statusCode": 200, + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null, + "parent": null, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 5, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__Invalid new file mode 100644 index 00000000..816e6e41 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 10, + "column": 3 + } + ], + "path": [ + "contentByContentType" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__content.by.contentType.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__content.by.contentType.query new file mode 100644 index 00000000..3758f677 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__content.by.contentType.query @@ -0,0 +1,272 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 424, + "column": 7 + } + ], + "path": [ + "contentByContentType", + "items", + 0, + "properties", + "memberPicker", + "members" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentByContentType": { + "items": [ + { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": null, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 16, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__content.by.contentType.query-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__content.by.contentType.query-property.values.member.picker new file mode 100644 index 00000000..d37624cb --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__content.by.contentType.query-property.values.member.picker @@ -0,0 +1,254 @@ +{ + "data": { + "contentByContentType": { + "items": [ + { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 16, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__global.content.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__global.content.read new file mode 100644 index 00000000..3758f677 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__global.content.read @@ -0,0 +1,272 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 424, + "column": 7 + } + ], + "path": [ + "contentByContentType", + "items", + 0, + "properties", + "memberPicker", + "members" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentByContentType": { + "items": [ + { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": null, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 16, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__global.content.read-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__global.content.read-property.values.member.picker new file mode 100644 index 00000000..d37624cb --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByContentType/Snaps/ContentByContentType_Snaps_default_1_1_en-us_False__global.content.read-property.values.member.picker @@ -0,0 +1,254 @@ +{ + "data": { + "contentByContentType": { + "items": [ + { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 16, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_ca69a30f-bf47-4acf-b31b-556c585d204b_en-us_False__content.by.guid.query-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_ca69a30f-bf47-4acf-b31b-556c585d204b_en-us_False__content.by.guid.query-property.values.member.picker new file mode 100644 index 00000000..208268c3 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_ca69a30f-bf47-4acf-b31b-556c585d204b_en-us_False__content.by.guid.query-property.values.member.picker @@ -0,0 +1,246 @@ +{ + "data": { + "contentByGuid": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_ca69a30f-bf47-4acf-b31b-556c585d204b_en-us_False__global.content.read-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_ca69a30f-bf47-4acf-b31b-556c585d204b_en-us_False__global.content.read-property.values.member.picker new file mode 100644 index 00000000..208268c3 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_ca69a30f-bf47-4acf-b31b-556c585d204b_en-us_False__global.content.read-property.values.member.picker @@ -0,0 +1,246 @@ +{ + "data": { + "contentByGuid": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__Invalid new file mode 100644 index 00000000..19dd3a52 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 8, + "column": 3 + } + ], + "path": [ + "contentByGuid" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentByGuid": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__content.by.guid.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__content.by.guid.query new file mode 100644 index 00000000..4554deb8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__content.by.guid.query @@ -0,0 +1,19 @@ +{ + "data": { + "contentByGuid": { + "url": "http://site-1.com/", + "redirect": null, + "statusCode": 200, + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null, + "parent": null, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__global.content.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__global.content.read new file mode 100644 index 00000000..4554deb8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByGuid/Snaps/ContentByGuid_Snaps_eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf_en-us_False__global.content.read @@ -0,0 +1,19 @@ +{ + "data": { + "contentByGuid": { + "url": "http://site-1.com/", + "redirect": null, + "statusCode": 200, + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null, + "parent": null, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1146_en-us_False__content.by.id.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1146_en-us_False__content.by.id.query new file mode 100644 index 00000000..df689708 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1146_en-us_False__content.by.id.query @@ -0,0 +1,19 @@ +{ + "data": { + "contentById": { + "url": "http://site-1.com/", + "redirect": null, + "statusCode": 200, + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null, + "parent": null, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1146_en-us_False__global.content.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1146_en-us_False__global.content.read new file mode 100644 index 00000000..df689708 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1146_en-us_False__global.content.read @@ -0,0 +1,19 @@ +{ + "data": { + "contentById": { + "url": "http://site-1.com/", + "redirect": null, + "statusCode": 200, + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null, + "parent": null, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__Invalid new file mode 100644 index 00000000..6c8ef67c --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 8, + "column": 3 + } + ], + "path": [ + "contentById" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentById": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__content.by.id.query-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__content.by.id.query-property.values.member.picker new file mode 100644 index 00000000..89238121 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__content.by.id.query-property.values.member.picker @@ -0,0 +1,246 @@ +{ + "data": { + "contentById": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__global.content.read-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__global.content.read-property.values.member.picker new file mode 100644 index 00000000..89238121 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentById/Snaps/ContentById_Snaps_1152_en-us_False__global.content.read-property.values.member.picker @@ -0,0 +1,246 @@ +{ + "data": { + "contentById": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__Invalid new file mode 100644 index 00000000..d03d4f05 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 9, + "column": 3 + } + ], + "path": [ + "contentByRoute" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentByRoute": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__content.by.route.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__content.by.route.query new file mode 100644 index 00000000..c5d49360 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__content.by.route.query @@ -0,0 +1,262 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 421, + "column": 7 + } + ], + "path": [ + "contentByRoute", + "properties", + "memberPicker", + "members" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentByRoute": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": null, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__content.by.route.query-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__content.by.route.query-property.values.member.picker new file mode 100644 index 00000000..5e82e69d --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__content.by.route.query-property.values.member.picker @@ -0,0 +1,246 @@ +{ + "data": { + "contentByRoute": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__global.content.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__global.content.read new file mode 100644 index 00000000..c5d49360 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__global.content.read @@ -0,0 +1,262 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 421, + "column": 7 + } + ], + "path": [ + "contentByRoute", + "properties", + "memberPicker", + "members" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "contentByRoute": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": null, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__global.content.read-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__global.content.read-property.values.member.picker new file mode 100644 index 00000000..5e82e69d --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByRoute/Snaps/ContentByRoute_Snaps_aHR0cHM6Ly9zaXRlLTEuY29t_L2hvbWVwYWdl__False__global.content.read-property.values.member.picker @@ -0,0 +1,246 @@ +{ + "data": { + "contentByRoute": { + "url": "http://site-1.com/homepage/", + "redirect": null, + "statusCode": 200, + "properties": { + "blockGrid": { + "model": "BlockGrid", + "gridColumns": null, + "blocks": [] + }, + "eyeDropperColorPicker": { + "value": "#aa7474", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [ + { + "contentAlias": "multinodeTreepickerEditor", + "settingsAlias": null, + "contentProperties": { + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "__typename": "MultinodeTreepickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "multiUrlPickerEditor", + "settingsAlias": null, + "contentProperties": { + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "__typename": "MultiUrlPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "bf9000", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 3.9889, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "Mark", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "my@email.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "Default" + }, + "urlSegment": "homepage", + "name": "Homepage", + "id": 1152, + "key": "ca69a30f-bf47-4acf-b31b-556c585d204b", + "templateId": null, + "parent": { + "url": "http://site-1.com/", + "properties": { + "__typename": "EmptyPropertyType" + }, + "urlSegment": "site-1", + "name": "Site 1", + "id": 1146, + "key": "eadd5be4-456c-4a7d-8c4a-2f7ead9c8ecf", + "templateId": null + }, + "__typename": "ContentItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__Invalid new file mode 100644 index 00000000..ab7f4eb1 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 9, + "column": 3 + } + ], + "path": [ + "contentByTag" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__content.by.tag.query-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__content.by.tag.query-property.values.member.picker new file mode 100644 index 00000000..8f3362e7 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__content.by.tag.query-property.values.member.picker @@ -0,0 +1,1482 @@ +{ + "data": { + "contentByTag": { + "items": [ + { + "url": "http://site-culture.com/filledpage/", + "redirect": null, + "statusCode": 200, + "properties": { + "eyeDropperColorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "eyeDropperColorPickerCulture": { + "value": "#624343", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "articleCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audioCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "fileCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svgCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "videoCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropperCulture": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "markdownCulture": { + "value": "\u003Cp\u003Efajfasofnjkas njkasdjbaskf\u003C/p\u003E", + "sourceValue": "fajfasofnjkas njkasdjbaskf", + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "imageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/1t2jp2ry/skaermbillede-2023-04-17-kl-201618.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.16.18 (1)", + "id": 1145, + "key": "f297f8da-2938-4e5c-a08b-3a7c83c5cf5d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [], + "model": "BlockList", + "__typename": "BlockList" + }, + "blockListCulture": { + "blocks": [ + { + "contentAlias": "checkboxListEditor", + "settingsAlias": null, + "contentProperties": { + "checkboxList": { + "value": [ + "3" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "CheckboxListEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "colorPickerEditor", + "settingsAlias": null, + "contentProperties": { + "colorPicker": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "ColorPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberGroupPickerCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "memberPickerCulture": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multinodeTreepickerCulture": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "multiUrlPickerCulture": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "numericCulture": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radioboxCulture": { + "value": "2", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxListCulture": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstringsCulture": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "richtextCulture": { + "value": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "sourceValue": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "sliderCulture": { + "value": 1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tagsCulture": { + "value": [ + "normal" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textareaCulture": { + "value": "asjkfklasl", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalseCulture": { + "value": true, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPickerCulture": { + "value": -1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPickerCulture": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "contentPickerCulture": { + "items": [ + { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "__typename": "ContentPickerItem" + } + ], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "decimalCulture": { + "value": 56, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdownCulture": { + "value": "Andy", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddressCulture": { + "value": "mail@mail.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "DefaultCulture" + }, + "urlSegment": "filledpage", + "name": "FilledPage", + "id": 1166, + "key": "118fde67-8217-4c26-9234-4054cc2b1396", + "templateId": null, + "parent": { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "templateId": null + }, + "__typename": "ContentItem" + }, + { + "url": "http://site-culture.com/filledpage-3/", + "redirect": null, + "statusCode": 200, + "properties": { + "eyeDropperColorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "eyeDropperColorPickerCulture": { + "value": "#624343", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "articleCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audioCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "fileCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svgCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "videoCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropperCulture": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "markdownCulture": { + "value": "\u003Cp\u003Efajfasofnjkas njkasdjbaskf\u003C/p\u003E", + "sourceValue": "fajfasofnjkas njkasdjbaskf", + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "imageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/gy0bdnwp/skaermbillede-2023-04-17-kl-201618.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.16.18", + "id": 1144, + "key": "b6113530-0ccf-4006-88d4-3dcd31c8297e", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [], + "model": "BlockList", + "__typename": "BlockList" + }, + "blockListCulture": { + "blocks": [ + { + "contentAlias": "checkboxListEditor", + "settingsAlias": null, + "contentProperties": { + "checkboxList": { + "value": [ + "3" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "CheckboxListEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "colorPickerEditor", + "settingsAlias": null, + "contentProperties": { + "colorPicker": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "ColorPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberGroupPickerCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "memberPickerCulture": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multinodeTreepickerCulture": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "multiUrlPickerCulture": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "numericCulture": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radioboxCulture": { + "value": "2", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxListCulture": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstringsCulture": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "richtextCulture": { + "value": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "sourceValue": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "sliderCulture": { + "value": 1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tagsCulture": { + "value": [ + "normal" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textareaCulture": { + "value": "asjkfklasl", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalseCulture": { + "value": true, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPickerCulture": { + "value": -1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPickerCulture": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "contentPickerCulture": { + "items": [ + { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "__typename": "ContentPickerItem" + } + ], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "decimalCulture": { + "value": 56, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdownCulture": { + "value": "Andy", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddressCulture": { + "value": "mail@mail.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "DefaultCulture" + }, + "urlSegment": "filledpage-3", + "name": "FilledPage (3)", + "id": 1168, + "key": "d3e14e34-13bd-4ed6-84ba-e2c6836b9403", + "templateId": null, + "parent": { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "templateId": null + }, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 10, + "totalItems": 2, + "hasNextPage": false + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__global.content.read-property.values.member.picker b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__global.content.read-property.values.member.picker new file mode 100644 index 00000000..8f3362e7 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/ContentByTag/Snaps/ContentByTag_Snaps_normal__en-us_False__global.content.read-property.values.member.picker @@ -0,0 +1,1482 @@ +{ + "data": { + "contentByTag": { + "items": [ + { + "url": "http://site-culture.com/filledpage/", + "redirect": null, + "statusCode": 200, + "properties": { + "eyeDropperColorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "eyeDropperColorPickerCulture": { + "value": "#624343", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "articleCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audioCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "fileCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svgCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "videoCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropperCulture": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "markdownCulture": { + "value": "\u003Cp\u003Efajfasofnjkas njkasdjbaskf\u003C/p\u003E", + "sourceValue": "fajfasofnjkas njkasdjbaskf", + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "imageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/1t2jp2ry/skaermbillede-2023-04-17-kl-201618.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.16.18 (1)", + "id": 1145, + "key": "f297f8da-2938-4e5c-a08b-3a7c83c5cf5d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [], + "model": "BlockList", + "__typename": "BlockList" + }, + "blockListCulture": { + "blocks": [ + { + "contentAlias": "checkboxListEditor", + "settingsAlias": null, + "contentProperties": { + "checkboxList": { + "value": [ + "3" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "CheckboxListEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "colorPickerEditor", + "settingsAlias": null, + "contentProperties": { + "colorPicker": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "ColorPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberGroupPickerCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "memberPickerCulture": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multinodeTreepickerCulture": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "multiUrlPickerCulture": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "numericCulture": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radioboxCulture": { + "value": "2", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxListCulture": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstringsCulture": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "richtextCulture": { + "value": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "sourceValue": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "sliderCulture": { + "value": 1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tagsCulture": { + "value": [ + "normal" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textareaCulture": { + "value": "asjkfklasl", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalseCulture": { + "value": true, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPickerCulture": { + "value": -1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPickerCulture": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "contentPickerCulture": { + "items": [ + { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "__typename": "ContentPickerItem" + } + ], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "decimalCulture": { + "value": 56, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdownCulture": { + "value": "Andy", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddressCulture": { + "value": "mail@mail.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "DefaultCulture" + }, + "urlSegment": "filledpage", + "name": "FilledPage", + "id": 1166, + "key": "118fde67-8217-4c26-9234-4054cc2b1396", + "templateId": null, + "parent": { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "templateId": null + }, + "__typename": "ContentItem" + }, + { + "url": "http://site-culture.com/filledpage-3/", + "redirect": null, + "statusCode": 200, + "properties": { + "eyeDropperColorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "eyeDropperColorPickerCulture": { + "value": "#624343", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "article": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audio": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "file": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svg": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "video": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "articleCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "audioCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "fileCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "svgCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "videoCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropper": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "imageCropperCulture": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "markdown": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "markdownCulture": { + "value": "\u003Cp\u003Efajfasofnjkas njkasdjbaskf\u003C/p\u003E", + "sourceValue": "fajfasofnjkas njkasdjbaskf", + "model": "RichText", + "__typename": "RichText" + }, + "imageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPicker": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "imageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/gy0bdnwp/skaermbillede-2023-04-17-kl-201618.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.16.18", + "id": 1144, + "key": "b6113530-0ccf-4006-88d4-3dcd31c8297e", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleImageMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacy": { + "mediaItems": [], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "mediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "multipleMediaPickerLegacyCulture": { + "mediaItems": [ + { + "url": "http://localhost/media/eb3ogqdq/skaermbillede-2023-04-17-kl-201540.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.40", + "id": 1139, + "key": "40e37a26-8570-47dd-b30a-a1bd391f603b", + "__typename": "MediaPickerItem" + }, + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "umbracoWidth": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoHeight": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoBytes": { + "value": 0, + "model": "Label", + "__typename": "Label" + }, + "umbracoExtension": { + "value": "", + "model": "Label", + "__typename": "Label" + }, + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "__typename": "MediaPickerItem" + } + ], + "model": "MediaPicker", + "__typename": "MediaPicker" + }, + "blockList": { + "blocks": [], + "model": "BlockList", + "__typename": "BlockList" + }, + "blockListCulture": { + "blocks": [ + { + "contentAlias": "checkboxListEditor", + "settingsAlias": null, + "contentProperties": { + "checkboxList": { + "value": [ + "3" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "CheckboxListEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + }, + { + "contentAlias": "colorPickerEditor", + "settingsAlias": null, + "contentProperties": { + "colorPicker": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "ColorPickerEditor" + }, + "settingsProperties": { + "__typename": "EmptyPropertyType" + }, + "__typename": "BlockListItem" + } + ], + "model": "BlockList", + "__typename": "BlockList" + }, + "memberGroupPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberGroupPickerCulture": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "memberPicker": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "memberPickerCulture": { + "members": [], + "model": "MemberPicker", + "__typename": "MemberPicker" + }, + "multinodeTreepicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multinodeTreepickerCulture": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "multiUrlPicker": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "multiUrlPickerCulture": { + "links": [], + "model": "MultiUrlPicker", + "__typename": "MultiUrlPicker" + }, + "numeric": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "numericCulture": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radiobox": { + "value": null, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "radioboxCulture": { + "value": "2", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxList": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "checkboxListCulture": { + "value": [ + "2" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstrings": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "repeatableTextstringsCulture": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "richtext": { + "value": "", + "sourceValue": null, + "model": "RichText", + "__typename": "RichText" + }, + "richtextCulture": { + "value": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "sourceValue": "\u003Cp\u003Efasjfakjsdk\u003C/p\u003E", + "model": "RichText", + "__typename": "RichText" + }, + "slider": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "sliderCulture": { + "value": 1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tags": { + "value": [], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "tagsCulture": { + "value": [ + "normal" + ], + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textarea": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textareaCulture": { + "value": "asjkfklasl", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstring": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalse": { + "value": false, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "trueOrFalseCulture": { + "value": true, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPicker": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "userPickerCulture": { + "value": -1, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPicker": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "colorPickerCulture": { + "value": "f44336", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "contentPicker": { + "items": [], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "contentPickerCulture": { + "items": [ + { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "__typename": "ContentPickerItem" + } + ], + "model": "ContentPicker", + "__typename": "ContentPicker" + }, + "decimal": { + "value": 0, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "decimalCulture": { + "value": 56, + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdown": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "dropdownCulture": { + "value": "Andy", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddress": { + "value": "", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "emailAddressCulture": { + "value": "mail@mail.com", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "DefaultCulture" + }, + "urlSegment": "filledpage-3", + "name": "FilledPage (3)", + "id": 1168, + "key": "d3e14e34-13bd-4ed6-84ba-e2c6836b9403", + "templateId": null, + "parent": { + "url": "http://site-culture.com/", + "properties": { + "textstring": { + "value": "uncultured string", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "textstringCulture": { + "value": "en-us value", + "model": "DefaultProperty", + "__typename": "DefaultProperty" + }, + "__typename": "SiteWithCulture" + }, + "urlSegment": "site-with-culture", + "name": "Site with culture", + "id": 1151, + "key": "d0351e46-e0bf-4eaa-ad2b-57a45451097e", + "templateId": null + }, + "__typename": "ContentItem" + } + ], + "page": 1, + "pageSize": 10, + "totalItems": 2, + "hasNextPage": false + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_Invalid new file mode 100644 index 00000000..daad1b23 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 7, + "column": 3 + } + ], + "path": [ + "findMembersByDisplayName" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_find.members.by.display.name.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_find.members.by.display.name.query new file mode 100644 index 00000000..4cdc7937 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_find.members.by.display.name.query @@ -0,0 +1,44 @@ +{ + "data": { + "findMembersByDisplayName": [ + { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_global.member.read new file mode 100644 index 00000000..4cdc7937 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByDisplayName/Snaps/FindMembersByDisplayName_Snaps_user1_Exact_1_1_global.member.read @@ -0,0 +1,44 @@ +{ + "data": { + "findMembersByDisplayName": [ + { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_Invalid new file mode 100644 index 00000000..66dd483a --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 7, + "column": 3 + } + ], + "path": [ + "findMembersByEmail" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_find.members.by.email.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_find.members.by.email.query new file mode 100644 index 00000000..6c75f566 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_find.members.by.email.query @@ -0,0 +1,44 @@ +{ + "data": { + "findMembersByEmail": [ + { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_global.member.read new file mode 100644 index 00000000..6c75f566 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByEmail/Snaps/FindMembersByEmail_Snaps_user1@test.com_Exact_1_1_global.member.read @@ -0,0 +1,44 @@ +{ + "data": { + "findMembersByEmail": [ + { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_Invalid new file mode 100644 index 00000000..89fb5b66 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 8, + "column": 3 + } + ], + "path": [ + "findMembersByRole" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_find.members.by.role.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_find.members.by.role.query new file mode 100644 index 00000000..fcafc6b8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_find.members.by.role.query @@ -0,0 +1,12 @@ +{ + "data": { + "findMembersByRole": { + "items": [], + "page": 1, + "pageSize": 1, + "totalItems": 0, + "hasNextPage": false, + "__typename": "PaginationOfMemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_global.member.read new file mode 100644 index 00000000..fcafc6b8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByRole/Snaps/FindMembersByRole_Snaps_Member group 1__Exact_1_1_global.member.read @@ -0,0 +1,12 @@ +{ + "data": { + "findMembersByRole": { + "items": [], + "page": 1, + "pageSize": 1, + "totalItems": 0, + "hasNextPage": false, + "__typename": "PaginationOfMemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_Invalid new file mode 100644 index 00000000..b96c8f29 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 7, + "column": 3 + } + ], + "path": [ + "findMembersByUsername" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_find.members.by.username.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_find.members.by.username.query new file mode 100644 index 00000000..4825a105 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_find.members.by.username.query @@ -0,0 +1,44 @@ +{ + "data": { + "findMembersByUsername": [ + { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_global.member.read new file mode 100644 index 00000000..4825a105 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/FindMembersByUsername/Snaps/FindMembersByUsername_Snaps_user1_Exact_1_1_global.member.read @@ -0,0 +1,44 @@ +{ + "data": { + "findMembersByUsername": [ + { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_Invalid new file mode 100644 index 00000000..a0b20677 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 5, + "column": 3 + } + ], + "path": [ + "mediaAtRoot" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_global.media.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_global.media.read new file mode 100644 index 00000000..abd8b7e7 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_global.media.read @@ -0,0 +1,25 @@ +{ + "data": { + "mediaAtRoot": { + "items": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 6, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_media.at.root.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_media.at.root.query new file mode 100644 index 00000000..abd8b7e7 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaAtRoot/Snaps/MediaAtRoot_Snaps_1_1_media.at.root.query @@ -0,0 +1,25 @@ +{ + "data": { + "mediaAtRoot": { + "items": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 6, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_Invalid new file mode 100644 index 00000000..ee0c2404 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_Invalid @@ -0,0 +1,20 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 6, + "column": 3 + } + ], + "path": [ + "mediaByContentType" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": null +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_global.media.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_global.media.read new file mode 100644 index 00000000..324daaaf --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_global.media.read @@ -0,0 +1,25 @@ +{ + "data": { + "mediaByContentType": { + "items": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 5, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_media.by.contentType.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_media.by.contentType.query new file mode 100644 index 00000000..324daaaf --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByContentType/Snaps/MediaByContentType_Snaps_image_1_1_media.by.contentType.query @@ -0,0 +1,25 @@ +{ + "data": { + "mediaByContentType": { + "items": [ + { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + ], + "page": 1, + "pageSize": 1, + "totalItems": 5, + "hasNextPage": true + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_Invalid new file mode 100644 index 00000000..77b39845 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 2, + "column": 3 + } + ], + "path": [ + "mediaByGuid" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "mediaByGuid": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_global.media.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_global.media.read new file mode 100644 index 00000000..422936e8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_global.media.read @@ -0,0 +1,17 @@ +{ + "data": { + "mediaByGuid": { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_media.by.guid.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_media.by.guid.query new file mode 100644 index 00000000..422936e8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaByGuid/Snaps/MediaByGuid_Snaps_25ba1577-a0c5-4329-8f32-9e9abe4a6d2d_media.by.guid.query @@ -0,0 +1,17 @@ +{ + "data": { + "mediaByGuid": { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_Invalid new file mode 100644 index 00000000..458acc90 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 2, + "column": 3 + } + ], + "path": [ + "mediaById" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "mediaById": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_global.media.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_global.media.read new file mode 100644 index 00000000..b94452cc --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_global.media.read @@ -0,0 +1,17 @@ +{ + "data": { + "mediaById": { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_media.by.id.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_media.by.id.query new file mode 100644 index 00000000..b94452cc --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MediaById/Snaps/MediaById_Snaps_1138_media.by.id.query @@ -0,0 +1,17 @@ +{ + "data": { + "mediaById": { + "url": "http://localhost/media/oeklujof/skaermbillede-2023-04-17-kl-201527.png", + "properties": { + "__typename": "Image" + }, + "urlSegment": null, + "name": "Sk\u00E6rmbillede 2023 04 17 Kl. 20.15.27", + "id": 1138, + "key": "25ba1577-a0c5-4329-8f32-9e9abe4a6d2d", + "templateId": -1, + "parent": null, + "__typename": "MediaItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_Invalid new file mode 100644 index 00000000..63ad6817 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 4, + "column": 3 + } + ], + "path": [ + "memberByEmail" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "memberByEmail": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_global.member.read new file mode 100644 index 00000000..547ea0ec --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_global.member.read @@ -0,0 +1,42 @@ +{ + "data": { + "memberByEmail": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_member.by.email.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_member.by.email.query new file mode 100644 index 00000000..547ea0ec --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByEmail/Snaps/MemberByEmail_Snaps_user1@test.com_member.by.email.query @@ -0,0 +1,42 @@ +{ + "data": { + "memberByEmail": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_Invalid new file mode 100644 index 00000000..bd99f7a8 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 4, + "column": 3 + } + ], + "path": [ + "memberByGuid" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "memberByGuid": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_global.member.read new file mode 100644 index 00000000..3b28023a --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_global.member.read @@ -0,0 +1,42 @@ +{ + "data": { + "memberByGuid": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_member.by.guid.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_member.by.guid.query new file mode 100644 index 00000000..3b28023a --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByGuid/Snaps/MemberByGuid_Snaps_91eecdea-fc1e-408d-ac41-545ceefa3dc5_member.by.guid.query @@ -0,0 +1,42 @@ +{ + "data": { + "memberByGuid": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_Invalid new file mode 100644 index 00000000..e4d322d9 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 4, + "column": 3 + } + ], + "path": [ + "memberById" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "memberById": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_global.member.read new file mode 100644 index 00000000..9d1cf566 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_global.member.read @@ -0,0 +1,42 @@ +{ + "data": { + "memberById": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_member.by.id.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_member.by.id.query new file mode 100644 index 00000000..9d1cf566 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberById/Snaps/MemberById_Snaps_1179_member.by.id.query @@ -0,0 +1,42 @@ +{ + "data": { + "memberById": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_Invalid b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_Invalid new file mode 100644 index 00000000..fb103f64 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_Invalid @@ -0,0 +1,22 @@ +{ + "errors": [ + { + "message": "The current user is not authorized to access this resource.", + "locations": [ + { + "line": 4, + "column": 3 + } + ], + "path": [ + "memberByUsername" + ], + "extensions": { + "code": "AUTH_NOT_AUTHORIZED" + } + } + ], + "data": { + "memberByUsername": null + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_global.member.read b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_global.member.read new file mode 100644 index 00000000..00167616 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_global.member.read @@ -0,0 +1,42 @@ +{ + "data": { + "memberByUsername": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_member.by.username.query b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_member.by.username.query new file mode 100644 index 00000000..00167616 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/MemberByUsername/Snaps/MemberByUsername_Snaps_user1_member.by.username.query @@ -0,0 +1,42 @@ +{ + "data": { + "memberByUsername": { + "properties": { + "umbracoMemberComments": { + "value": "A user comment", + "model": "DefaultProperty" + }, + "umbracoMemberFailedPasswordAttempts": { + "value": 0, + "model": "Label" + }, + "umbracoMemberApproved": { + "value": true, + "model": "DefaultProperty" + }, + "umbracoMemberLockedOut": { + "value": false, + "model": "DefaultProperty" + }, + "umbracoMemberLastLockoutDate": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastLogin": { + "value": null, + "model": "Label" + }, + "umbracoMemberLastPasswordChangeDate": { + "value": null, + "model": "Label" + } + }, + "name": "user1", + "id": 1179, + "key": "91eecdea-fc1e-408d-ac41-545ceefa3dc5", + "templateId": -1, + "parent": null, + "__typename": "MemberItem" + } + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/Schema/Schema b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/Schema/Schema new file mode 100644 index 00000000..cad2c824 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/Schema/Schema @@ -0,0 +1,1509 @@ +schema { + query: Query + mutation: Mutation +} + +interface IBlockGridEditor { + blockGrid: BlockGrid +} + +interface IBlockGridEditor1 { + blockGrid: BlockGrid +} + +interface IBlockListEditor { + blockList: BlockList +} + +interface IBlockListEditorCulture { + blockListCulture: BlockList +} + +interface ICheckboxListEditor { + checkboxList: DefaultProperty +} + +interface ICheckboxListEditorCulture { + checkboxListCulture: DefaultProperty +} + +interface IColorPickerEditor { + colorPicker: DefaultProperty +} + +interface IColorPickerEditorCulture { + colorPickerCulture: DefaultProperty +} + +interface IContentPickerEditor { + contentPicker: ContentPicker +} + +interface IContentPickerEditorCulture { + contentPickerCulture: ContentPicker +} + +interface ICustomMediaType { + approvedColorEditor: DefaultProperty + article: DefaultProperty + audio: DefaultProperty + blockList: BlockList + checkboxList: DefaultProperty + contentPicker: ContentPicker + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker + decimal: DefaultProperty + dropDown: DefaultProperty + dropdownMultiple: DefaultProperty + emailAddress: DefaultProperty + eyeDropperColorPicker: DefaultProperty + file: DefaultProperty + imageCropper: DefaultProperty + imageMediaPicker: MediaPicker + markdownEditor: RichText + memberGroupPicker: DefaultProperty + memberPicker: MemberPicker + multinodeTreepicker: ContentPicker + multiUrlPicker: MultiUrlPicker + numeric: DefaultProperty + radiobox: DefaultProperty + repeatableTextStrings: DefaultProperty + richText: RichText + slider: DefaultProperty + sVG: DefaultProperty + tags: DefaultProperty + textarea: DefaultProperty + textstring: DefaultProperty + toggle: DefaultProperty + userPicker: DefaultProperty + video: DefaultProperty +} + +interface IDatePickerEditor { + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker +} + +interface IDatePickerEditorCulture { + datePickerCulture: DateTimePicker + datePickerWithTimeCulture: DateTimePicker +} + +interface IDecimalEditor { + decimal: DefaultProperty +} + +interface IDecimalEditorCulture { + decimalCulture: DefaultProperty +} + +interface IDefault { + blockGrid: BlockGrid + blockList: BlockList + checkboxList: DefaultProperty + colorPicker: DefaultProperty + contentPicker: ContentPicker + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker + decimal: DefaultProperty + dropdown: DefaultProperty + emailAddress: DefaultProperty + eyeDropperColorPicker: DefaultProperty + article: DefaultProperty + audio: DefaultProperty + file: DefaultProperty + svg: DefaultProperty + video: DefaultProperty + imageCropper: DefaultProperty + markdown: RichText + imageMediaPicker: MediaPicker + mediaPicker: MediaPicker + multipleImageMediaPicker: MediaPicker + multipleMediaPicker: MediaPicker + mediaPickerLegacy: MediaPicker + multipleMediaPickerLegacy: MediaPicker + memberGroupPicker: DefaultProperty + memberPicker: MemberPicker + multinodeTreepicker: ContentPicker + multiUrlPicker: MultiUrlPicker + numeric: DefaultProperty + radiobox: DefaultProperty + repeatableTextstrings: DefaultProperty + richtext: RichText + slider: DefaultProperty + tags: DefaultProperty + textarea: DefaultProperty + textstring: DefaultProperty + trueOrFalse: DefaultProperty + userPicker: DefaultProperty +} + +interface IDefaultCulture { + blockList: BlockList + blockListCulture: BlockList + checkboxList: DefaultProperty + checkboxListCulture: DefaultProperty + colorPicker: DefaultProperty + colorPickerCulture: DefaultProperty + contentPicker: ContentPicker + contentPickerCulture: ContentPicker + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker + datePickerCulture: DateTimePicker + datePickerWithTimeCulture: DateTimePicker + decimal: DefaultProperty + decimalCulture: DefaultProperty + dropdown: DefaultProperty + dropdownCulture: DefaultProperty + emailAddress: DefaultProperty + emailAddressCulture: DefaultProperty + eyeDropperColorPicker: DefaultProperty + eyeDropperColorPickerCulture: DefaultProperty + article: DefaultProperty + audio: DefaultProperty + file: DefaultProperty + svg: DefaultProperty + video: DefaultProperty + articleCulture: DefaultProperty + audioCulture: DefaultProperty + fileCulture: DefaultProperty + svgCulture: DefaultProperty + videoCulture: DefaultProperty + imageCropper: DefaultProperty + imageCropperCulture: DefaultProperty + markdown: RichText + markdownCulture: RichText + imageMediaPicker: MediaPicker + mediaPicker: MediaPicker + multipleImageMediaPicker: MediaPicker + multipleMediaPicker: MediaPicker + imageMediaPickerCulture: MediaPicker + mediaPickerCulture: MediaPicker + multipleImageMediaPickerCulture: MediaPicker + multipleMediaPickerCulture: MediaPicker + mediaPickerLegacy: MediaPicker + multipleMediaPickerLegacy: MediaPicker + mediaPickerLegacyCulture: MediaPicker + multipleMediaPickerLegacyCulture: MediaPicker + memberGroupPicker: DefaultProperty + memberGroupPickerCulture: DefaultProperty + memberPicker: MemberPicker + memberPickerCulture: MemberPicker + multinodeTreepicker: ContentPicker + multinodeTreepickerCulture: ContentPicker + multiUrlPicker: MultiUrlPicker + multiUrlPickerCulture: MultiUrlPicker + numeric: DefaultProperty + numericCulture: DefaultProperty + radiobox: DefaultProperty + radioboxCulture: DefaultProperty + repeatableTextstrings: DefaultProperty + repeatableTextstringsCulture: DefaultProperty + richtext: RichText + richtextCulture: RichText + slider: DefaultProperty + sliderCulture: DefaultProperty + tags: DefaultProperty + tagsCulture: DefaultProperty + textarea: DefaultProperty + textareaCulture: DefaultProperty + textstring: DefaultProperty + textstringCulture: DefaultProperty + trueOrFalse: DefaultProperty + trueOrFalseCulture: DefaultProperty + userPicker: DefaultProperty + userPickerCulture: DefaultProperty +} + +interface IDropdownEditor { + dropdown: DefaultProperty +} + +interface IDropdownEditorCulture { + dropdownCulture: DefaultProperty +} + +interface IEmailAddressEditor { + emailAddress: DefaultProperty +} + +interface IEmailAddressEditorCulture { + emailAddressCulture: DefaultProperty +} + +interface IEyeDropperColorPickerEditor { + eyeDropperColorPicker: DefaultProperty +} + +interface IEyeDropperColorPickerEditorCulture { + eyeDropperColorPickerCulture: DefaultProperty +} + +interface IFile { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +interface IFileUpload { + article: DefaultProperty + audio: DefaultProperty + file: DefaultProperty + svg: DefaultProperty + video: DefaultProperty +} + +interface IFileUploadCulture { + articleCulture: DefaultProperty + audioCulture: DefaultProperty + fileCulture: DefaultProperty + svgCulture: DefaultProperty + videoCulture: DefaultProperty +} + +interface IImage { + umbracoFile: DefaultProperty + "in pixels" + umbracoWidth: Label + "in pixels" + umbracoHeight: Label + "in bytes" + umbracoBytes: Label + umbracoExtension: Label +} + +interface IImageCropperEditor { + imageCropper: DefaultProperty +} + +interface IImageCropperEditorCulture { + imageCropperCulture: DefaultProperty +} + +interface ILabelEditor { + bigint: Label + datetime: Label + decimal: Label + integer: Label + string: Label + time: Label +} + +interface ILabelEditorCulture { + bigintCulture: Label + datetimeCulture: Label + decimalCulture: Label + integerCulture: Label + stringCulture: Label + timeCulture: Label +} + +interface IMarkdownEditor { + markdown: RichText +} + +interface IMarkdownEditorCulture { + markdownCulture: RichText +} + +interface IMediaPickerEditor { + imageMediaPicker: MediaPicker + mediaPicker: MediaPicker + multipleImageMediaPicker: MediaPicker + multipleMediaPicker: MediaPicker +} + +interface IMediaPickerEditorCulture { + imageMediaPickerCulture: MediaPicker + mediaPickerCulture: MediaPicker + multipleImageMediaPickerCulture: MediaPicker + multipleMediaPickerCulture: MediaPicker +} + +interface IMediaPickerLegacyEditor { + mediaPickerLegacy: MediaPicker + multipleMediaPickerLegacy: MediaPicker +} + +interface IMediaPickerLegacyEditorCulture { + mediaPickerLegacyCulture: MediaPicker + multipleMediaPickerLegacyCulture: MediaPicker +} + +interface IMember { + umbracoMemberComments: DefaultProperty + umbracoMemberFailedPasswordAttempts: Label + umbracoMemberApproved: DefaultProperty + umbracoMemberLockedOut: DefaultProperty + umbracoMemberLastLockoutDate: Label + umbracoMemberLastLogin: Label + umbracoMemberLastPasswordChangeDate: Label +} + +interface IMemberGroupPickerEditor { + memberGroupPicker: DefaultProperty +} + +interface IMemberGroupPickerEditorCulture { + memberGroupPickerCulture: DefaultProperty +} + +interface IMemberPickerEditor { + memberPicker: MemberPicker +} + +interface IMemberPickerEditorCulture { + memberPickerCulture: MemberPicker +} + +interface IMultiUrlPickerEditor { + multiUrlPicker: MultiUrlPicker +} + +interface IMultiUrlPickerEditorCulture { + multiUrlPickerCulture: MultiUrlPicker +} + +interface IMultinodeTreepickerEditor { + multinodeTreepicker: ContentPicker +} + +interface IMultinodeTreepickerEditorCulture { + multinodeTreepickerCulture: ContentPicker +} + +interface INumericEditor { + numeric: DefaultProperty +} + +interface INumericEditorCulture { + numericCulture: DefaultProperty +} + +interface IRadioboxEditor { + radiobox: DefaultProperty +} + +interface IRadioboxEditorCulture { + radioboxCulture: DefaultProperty +} + +interface IRepeatableTextstringsEditor { + repeatableTextstrings: DefaultProperty +} + +interface IRepeatableTextstringsEditorCulture { + repeatableTextstringsCulture: DefaultProperty +} + +interface IRichtextEditor { + richtext: RichText +} + +interface IRichtextEditorCulture { + richtextCulture: RichText +} + +interface ISiteWithCulture { + textstring: DefaultProperty + textstringCulture: DefaultProperty +} + +interface ISliderEditor { + slider: DefaultProperty +} + +interface ISliderEditorCulture { + sliderCulture: DefaultProperty +} + +interface ITagsEditor { + tags: DefaultProperty +} + +interface ITagsEditorCulture { + tagsCulture: DefaultProperty +} + +interface ITestMember { + blockList: BlockList + nestedContent: MemberPicker + umbracoMemberComments: DefaultProperty +} + +interface ITextareaEditor { + textarea: DefaultProperty +} + +interface ITextareaEditorCulture { + textareaCulture: DefaultProperty +} + +interface ITextboxEditor { + textstring: DefaultProperty +} + +interface ITextboxEditorCulture { + textstringCulture: DefaultProperty +} + +interface IToggleEditor { + trueOrFalse: DefaultProperty +} + +interface IToggleEditorCulture { + trueOrFalseCulture: DefaultProperty +} + +interface IUmbBlockGridDemoHeadlineBlock { + headline: DefaultProperty +} + +interface IUmbBlockGridDemoImageBlock { + image: MediaPicker +} + +interface IUmbBlockGridDemoRichTextBlock { + richText: RichText +} + +interface IUmbracoMediaArticle { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +interface IUmbracoMediaAudio { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +interface IUmbracoMediaVectorGraphics { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +interface IUmbracoMediaVideo { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +interface IUserPickerEditor { + userPicker: DefaultProperty +} + +interface IUserPickerEditorCulture { + userPickerCulture: DefaultProperty +} + +"A base for property values" +interface PropertyValue { + "The model of the property value" + model: String! +} + +"Represents a block grid property value." +type BlockGrid implements PropertyValue { + "Gets the blocks of a block grid model." + blocks: [BlockGridItem!] + "Gets the number of columns defined for the grid." + gridColumns: Int + "The model of the property value" + model: String! +} + +"Represents a block grid area." +type BlockGridArea { + "Gets the blocks of the block grid area." + blocks: [BlockGridItem!] + "Gets the alias of the block grid area." + alias: String! + "Gets the row dimensions of the block." + rowSpan: Int! + "Gets the column dimensions of the block." + columnSpan: Int! +} + +type BlockGridEditor implements IBlockGridEditor { + blockGrid: BlockGrid +} + +type BlockGridEditor1 implements IBlockGridEditor1 { + blockGrid: BlockGrid +} + +"Represents a block grid item." +type BlockGridItem { + "Gets the content properties of the block grid item." + contentProperties: TypedBlockGridContentProperties! + "Gets the setting properties of the block grid item." + settingsProperties: TypedBlockGridSettingsProperties! + "Gets the areas of the block grid item." + areas: [BlockGridArea!]! + "Gets the alias of the content block grid item." + contentAlias: String + "Gets the alias of the settings block grid item." + settingsAlias: String + "Gets the row dimensions of the block." + rowSpan: Int! + "Gets the column dimensions of the block." + columnSpan: Int! +} + +"Represents a block list model." +type BlockList implements PropertyValue { + "Gets the blocks of a block list model." + blocks: [BlockListItem!] + "The model of the property value" + model: String! +} + +type BlockListEditor implements IBlockListEditor { + blockList: BlockList +} + +type BlockListEditorCulture implements IBlockListEditorCulture { + blockListCulture: BlockList +} + +"Represents a block list item." +type BlockListItem { + "Gets the content properties of the block list item." + contentProperties: TypedBlockListContentProperties! + "Gets the setting properties of the block list item." + settingsProperties: TypedBlockListSettingsProperties! + "Gets the alias of the content block list item." + contentAlias: String + "Gets the alias of the settings block list item." + settingsAlias: String +} + +type CheckboxListEditor implements ICheckboxListEditor { + checkboxList: DefaultProperty +} + +type CheckboxListEditorCulture implements ICheckboxListEditorCulture { + checkboxListCulture: DefaultProperty +} + +"A group of claims." +type ClaimGroup { + "The name of the group." + groupName: String! + "The claim values in the group." + claimValues: [ClaimValue!]! +} + +type ClaimValue { + "The name of the claim." + name: String! + "The available values of the claim." + values: [String!]! +} + +type ColorPickerEditor implements IColorPickerEditor { + colorPicker: DefaultProperty +} + +type ColorPickerEditorCulture implements IColorPickerEditorCulture { + colorPickerCulture: DefaultProperty +} + +type ContentItem { + "Gets the url segment of the content item." + urlSegment: String + "Gets the url of a content item." + url(urlMode: UrlMode!): String + "Gets the name of a content item." + name: String + "Gets the parent of the content item." + parent: ContentItem + "Gets the properties of the content item." + properties: TypedProperties! + "Gets the id of a content item." + id: Int + "Gets the key of a content item." + key: UUID + "Gets the identifier of the template to use to render the content item." + templateId: Int + "Gets the date the content item was last updated." + updateDate: DateTime + statusCode: Int! + "Gets the redirect information for the content item." + redirect: RedirectInfo +} + +"Represents a content picker value." +type ContentPicker implements PropertyValue { + "Gets the content items of a picker." + items: [ContentPickerItem!] + "The model of the property value" + model: String! +} + +type ContentPickerEditor implements IContentPickerEditor { + contentPicker: ContentPicker +} + +type ContentPickerEditorCulture implements IContentPickerEditorCulture { + contentPickerCulture: ContentPicker +} + +"Represents a content picker item." +type ContentPickerItem { + "Gets the url of a content item." + url(urlMode: UrlMode!): String! + "Gets the properties of the content item." + properties: TypedProperties! + "Gets the url segment of the content item." + urlSegment: String + "Gets the name of a content item." + name: String + "Gets the id of a content item." + id: Int! + "Gets the key of a content item." + key: UUID! +} + +type CustomMediaType implements ICustomMediaType { + approvedColorEditor: DefaultProperty + article: DefaultProperty + audio: DefaultProperty + blockList: BlockList + checkboxList: DefaultProperty + contentPicker: ContentPicker + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker + decimal: DefaultProperty + dropDown: DefaultProperty + dropdownMultiple: DefaultProperty + emailAddress: DefaultProperty + eyeDropperColorPicker: DefaultProperty + file: DefaultProperty + imageCropper: DefaultProperty + imageMediaPicker: MediaPicker + markdownEditor: RichText + memberGroupPicker: DefaultProperty + memberPicker: MemberPicker + multinodeTreepicker: ContentPicker + multiUrlPicker: MultiUrlPicker + numeric: DefaultProperty + radiobox: DefaultProperty + repeatableTextStrings: DefaultProperty + richText: RichText + slider: DefaultProperty + sVG: DefaultProperty + tags: DefaultProperty + textarea: DefaultProperty + textstring: DefaultProperty + toggle: DefaultProperty + userPicker: DefaultProperty + video: DefaultProperty +} + +type DatePickerEditor implements IDatePickerEditor { + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker +} + +type DatePickerEditorCulture implements IDatePickerEditorCulture { + datePickerCulture: DateTimePicker + datePickerWithTimeCulture: DateTimePicker +} + +"Represents a date time property value." +type DateTimePicker implements PropertyValue { + "Gets the value of the property." + value: DateTime + "The model of the property value" + model: String! +} + +type DecimalEditor implements IDecimalEditor { + decimal: DefaultProperty +} + +type DecimalEditorCulture implements IDecimalEditorCulture { + decimalCulture: DefaultProperty +} + +type Default implements IBlockGridEditor & IBlockListEditor & ICheckboxListEditor & IColorPickerEditor & IContentPickerEditor & IDatePickerEditor & IDecimalEditor & IDropdownEditor & IEmailAddressEditor & IEyeDropperColorPickerEditor & IFileUpload & IImageCropperEditor & IMarkdownEditor & IMediaPickerEditor & IMediaPickerLegacyEditor & IMemberGroupPickerEditor & IMemberPickerEditor & IMultinodeTreepickerEditor & IMultiUrlPickerEditor & INumericEditor & IRadioboxEditor & IRepeatableTextstringsEditor & IRichtextEditor & ISliderEditor & ITagsEditor & ITextareaEditor & ITextboxEditor & IToggleEditor & IUserPickerEditor & IDefault { + blockGrid: BlockGrid + blockList: BlockList + checkboxList: DefaultProperty + colorPicker: DefaultProperty + contentPicker: ContentPicker + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker + decimal: DefaultProperty + dropdown: DefaultProperty + emailAddress: DefaultProperty + eyeDropperColorPicker: DefaultProperty + article: DefaultProperty + audio: DefaultProperty + file: DefaultProperty + svg: DefaultProperty + video: DefaultProperty + imageCropper: DefaultProperty + markdown: RichText + imageMediaPicker: MediaPicker + mediaPicker: MediaPicker + multipleImageMediaPicker: MediaPicker + multipleMediaPicker: MediaPicker + mediaPickerLegacy: MediaPicker + multipleMediaPickerLegacy: MediaPicker + memberGroupPicker: DefaultProperty + memberPicker: MemberPicker + multinodeTreepicker: ContentPicker + multiUrlPicker: MultiUrlPicker + numeric: DefaultProperty + radiobox: DefaultProperty + repeatableTextstrings: DefaultProperty + richtext: RichText + slider: DefaultProperty + tags: DefaultProperty + textarea: DefaultProperty + textstring: DefaultProperty + trueOrFalse: DefaultProperty + userPicker: DefaultProperty +} + +type DefaultCulture implements IBlockListEditor & IBlockListEditorCulture & ICheckboxListEditor & ICheckboxListEditorCulture & IColorPickerEditor & IColorPickerEditorCulture & IContentPickerEditor & IContentPickerEditorCulture & IDatePickerEditor & IDatePickerEditorCulture & IDecimalEditor & IDecimalEditorCulture & IDropdownEditor & IDropdownEditorCulture & IEmailAddressEditor & IEmailAddressEditorCulture & IEyeDropperColorPickerEditor & IEyeDropperColorPickerEditorCulture & IFileUpload & IFileUploadCulture & IImageCropperEditor & IImageCropperEditorCulture & IMarkdownEditor & IMarkdownEditorCulture & IMediaPickerEditor & IMediaPickerEditorCulture & IMediaPickerLegacyEditor & IMediaPickerLegacyEditorCulture & IMemberGroupPickerEditor & IMemberGroupPickerEditorCulture & IMemberPickerEditor & IMemberPickerEditorCulture & IMultinodeTreepickerEditor & IMultinodeTreepickerEditorCulture & IMultiUrlPickerEditor & IMultiUrlPickerEditorCulture & INumericEditor & INumericEditorCulture & IRadioboxEditor & IRadioboxEditorCulture & IRepeatableTextstringsEditor & IRepeatableTextstringsEditorCulture & IRichtextEditor & IRichtextEditorCulture & ISliderEditor & ISliderEditorCulture & ITagsEditor & ITagsEditorCulture & ITextareaEditor & ITextareaEditorCulture & ITextboxEditor & ITextboxEditorCulture & IToggleEditor & IToggleEditorCulture & IUserPickerEditor & IUserPickerEditorCulture & IDefaultCulture { + blockList: BlockList + blockListCulture: BlockList + checkboxList: DefaultProperty + checkboxListCulture: DefaultProperty + colorPicker: DefaultProperty + colorPickerCulture: DefaultProperty + contentPicker: ContentPicker + contentPickerCulture: ContentPicker + datePicker: DateTimePicker + datePickerWithTime: DateTimePicker + datePickerCulture: DateTimePicker + datePickerWithTimeCulture: DateTimePicker + decimal: DefaultProperty + decimalCulture: DefaultProperty + dropdown: DefaultProperty + dropdownCulture: DefaultProperty + emailAddress: DefaultProperty + emailAddressCulture: DefaultProperty + eyeDropperColorPicker: DefaultProperty + eyeDropperColorPickerCulture: DefaultProperty + article: DefaultProperty + audio: DefaultProperty + file: DefaultProperty + svg: DefaultProperty + video: DefaultProperty + articleCulture: DefaultProperty + audioCulture: DefaultProperty + fileCulture: DefaultProperty + svgCulture: DefaultProperty + videoCulture: DefaultProperty + imageCropper: DefaultProperty + imageCropperCulture: DefaultProperty + markdown: RichText + markdownCulture: RichText + imageMediaPicker: MediaPicker + mediaPicker: MediaPicker + multipleImageMediaPicker: MediaPicker + multipleMediaPicker: MediaPicker + imageMediaPickerCulture: MediaPicker + mediaPickerCulture: MediaPicker + multipleImageMediaPickerCulture: MediaPicker + multipleMediaPickerCulture: MediaPicker + mediaPickerLegacy: MediaPicker + multipleMediaPickerLegacy: MediaPicker + mediaPickerLegacyCulture: MediaPicker + multipleMediaPickerLegacyCulture: MediaPicker + memberGroupPicker: DefaultProperty + memberGroupPickerCulture: DefaultProperty + memberPicker: MemberPicker + memberPickerCulture: MemberPicker + multinodeTreepicker: ContentPicker + multinodeTreepickerCulture: ContentPicker + multiUrlPicker: MultiUrlPicker + multiUrlPickerCulture: MultiUrlPicker + numeric: DefaultProperty + numericCulture: DefaultProperty + radiobox: DefaultProperty + radioboxCulture: DefaultProperty + repeatableTextstrings: DefaultProperty + repeatableTextstringsCulture: DefaultProperty + richtext: RichText + richtextCulture: RichText + slider: DefaultProperty + sliderCulture: DefaultProperty + tags: DefaultProperty + tagsCulture: DefaultProperty + textarea: DefaultProperty + textareaCulture: DefaultProperty + textstring: DefaultProperty + textstringCulture: DefaultProperty + trueOrFalse: DefaultProperty + trueOrFalseCulture: DefaultProperty + userPicker: DefaultProperty + userPickerCulture: DefaultProperty +} + +"A catch all property value that simply returns the value of the property. This is all that is needed for simple properties that doesn't need any special handling or formatting." +type DefaultProperty implements PropertyValue { + "Gets the value of the property." + value: Any + "The model of the property value" + model: String! +} + +type DropdownEditor implements IDropdownEditor { + dropdown: DefaultProperty +} + +type DropdownEditorCulture implements IDropdownEditorCulture { + dropdownCulture: DefaultProperty +} + +type EmailAddressEditor implements IEmailAddressEditor { + emailAddress: DefaultProperty +} + +type EmailAddressEditorCulture implements IEmailAddressEditorCulture { + emailAddressCulture: DefaultProperty +} + +"Represents a content type that doesn't have any properties and therefore needs a placeholder" +type EmptyPropertyType { + "Placeholder field. Will never hold a value." + Empty_Field: String! +} + +type EyeDropperColorPickerEditor implements IEyeDropperColorPickerEditor { + eyeDropperColorPicker: DefaultProperty +} + +type EyeDropperColorPickerEditorCulture implements IEyeDropperColorPickerEditorCulture { + eyeDropperColorPickerCulture: DefaultProperty +} + +type File implements IFile { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +type FileUpload implements IFileUpload { + article: DefaultProperty + audio: DefaultProperty + file: DefaultProperty + svg: DefaultProperty + video: DefaultProperty +} + +type FileUploadCulture implements IFileUploadCulture { + articleCulture: DefaultProperty + audioCulture: DefaultProperty + fileCulture: DefaultProperty + svgCulture: DefaultProperty + videoCulture: DefaultProperty +} + +type Image implements IImage { + umbracoFile: DefaultProperty + "in pixels" + umbracoWidth: Label + "in pixels" + umbracoHeight: Label + "in bytes" + umbracoBytes: Label + umbracoExtension: Label +} + +type ImageCropperEditor implements IImageCropperEditor { + imageCropper: DefaultProperty +} + +type ImageCropperEditorCulture implements IImageCropperEditorCulture { + imageCropperCulture: DefaultProperty +} + +"A JWT token." +type JwtToken { + "The JWT token." + token: String! + "The expiration time of the token in Unix timestamp." + expires: Long! + "The prefix used when using the token." + prefix: String! + "The header used when using the token." + header: String! +} + +type Label implements PropertyValue { + "Gets the value of the property." + value: Any + "The model of the property value" + model: String! +} + +type LabelEditor implements ILabelEditor { + bigint: Label + datetime: Label + decimal: Label + integer: Label + string: Label + time: Label +} + +type LabelEditorCulture implements ILabelEditorCulture { + bigintCulture: Label + datetimeCulture: Label + decimalCulture: Label + integerCulture: Label + stringCulture: Label + timeCulture: Label +} + +type MarkdownEditor implements IMarkdownEditor { + markdown: RichText +} + +type MarkdownEditorCulture implements IMarkdownEditorCulture { + markdownCulture: RichText +} + +type MediaItem { + "Gets the url of a media item." + url(urlMode: UrlMode! propertyAlias: String! = "umbracoFile"): String + "Gets the properties of the media item." + properties: TypedProperties! + "Gets the url segment of the media item." + urlSegment: String + "Gets the name of a media item." + name: String + "Gets the id of a media item." + id: Int + "Gets the key of a media item." + key: UUID + "Gets the identifier of the template to use to render the media item." + templateId: Int + "Gets the date the media item was last updated." + updateDate: DateTime + "Gets the parent of the media item." + parent: MediaItem +} + +"Represents a media picker item." +type MediaPicker implements PropertyValue { + "Gets the media items of a picker." + mediaItems: [MediaPickerItem!]! + "The model of the property value" + model: String! +} + +type MediaPickerEditor implements IMediaPickerEditor { + imageMediaPicker: MediaPicker + mediaPicker: MediaPicker + multipleImageMediaPicker: MediaPicker + multipleMediaPicker: MediaPicker +} + +type MediaPickerEditorCulture implements IMediaPickerEditorCulture { + imageMediaPickerCulture: MediaPicker + mediaPickerCulture: MediaPicker + multipleImageMediaPickerCulture: MediaPicker + multipleMediaPickerCulture: MediaPicker +} + +"Represents a media item." +type MediaPickerItem { + "Gets the url of a media item." + url(urlMode: UrlMode!): String! + "Gets the properties of the media item." + properties: TypedProperties! + "Gets the url segment of the media item." + urlSegment: String + "Gets the name of a media item." + name: String + "Gets the id of a media item." + id: Int! + "Gets the key of a media item." + key: UUID! +} + +type MediaPickerLegacyEditor implements IMediaPickerLegacyEditor { + mediaPickerLegacy: MediaPicker + multipleMediaPickerLegacy: MediaPicker +} + +type MediaPickerLegacyEditorCulture implements IMediaPickerLegacyEditorCulture { + mediaPickerLegacyCulture: MediaPicker + multipleMediaPickerLegacyCulture: MediaPicker +} + +type Member implements IMember { + umbracoMemberComments: DefaultProperty + umbracoMemberFailedPasswordAttempts: Label + umbracoMemberApproved: DefaultProperty + umbracoMemberLockedOut: DefaultProperty + umbracoMemberLastLockoutDate: Label + umbracoMemberLastLogin: Label + umbracoMemberLastPasswordChangeDate: Label +} + +type MemberGroupPickerEditor implements IMemberGroupPickerEditor { + memberGroupPicker: DefaultProperty +} + +type MemberGroupPickerEditorCulture implements IMemberGroupPickerEditorCulture { + memberGroupPickerCulture: DefaultProperty +} + +type MemberItem { + "Gets the properties of the member item." + properties: TypedProperties! + "Gets the name of a member item." + name: String + "Gets the id of a member item." + id: Int + "Gets the key of a member item." + key: UUID + "Gets the identifier of the template to use to render the member item." + templateId: Int + "Gets the date the member item was last updated." + updateDate: DateTime + "Gets the parent of the member item." + parent: MemberItem +} + +"Represents a member picker." +type MemberPicker implements PropertyValue { + "Gets the member items of a picker. Requires the property.values.member.picker or global.member.read claim to access" + members: [MemberPickerItem!]! @authorize(policy: "PropertyValuesMemberPicker") + "The model of the property value" + model: String! +} + +type MemberPickerEditor implements IMemberPickerEditor { + memberPicker: MemberPicker +} + +type MemberPickerEditorCulture implements IMemberPickerEditorCulture { + memberPickerCulture: MemberPicker +} + +"Represents a member item." +type MemberPickerItem { + "Gets the properties of the member item." + properties: TypedProperties! + "Gets the name of a member item." + name: String + "Gets the id of a member item." + id: Int! + "Gets the key of a member item." + key: UUID! +} + +"Represents a multi url picker." +type MultiUrlPicker implements PropertyValue { + "Gets the links of the picker." + links: [MultiUrlPickerItem!]! + "The model of the property value" + model: String! +} + +type MultiUrlPickerEditor implements IMultiUrlPickerEditor { + multiUrlPicker: MultiUrlPicker +} + +type MultiUrlPickerEditorCulture implements IMultiUrlPickerEditorCulture { + multiUrlPickerCulture: MultiUrlPicker +} + +"Represents a content item." +type MultiUrlPickerItem { + "Gets the url of a content item. If the link isn't to a content item or media item then the UrlMode doesn't affect the url." + url(urlMode: UrlMode!): String! + "Gets the properties of the content item." + properties: TypedProperties! + "Gets the url segment of the content item." + urlSegment: String + "Gets the target of the link." + target: String + "Gets the type of the link." + type: LinkType! + "Gets the name of a content item." + name: String + "Gets the id of a content item." + id: Int + "Gets the key of a content item." + key: UUID +} + +type MultinodeTreepickerEditor implements IMultinodeTreepickerEditor { + multinodeTreepicker: ContentPicker +} + +type MultinodeTreepickerEditorCulture implements IMultinodeTreepickerEditorCulture { + multinodeTreepickerCulture: ContentPicker +} + +"The base mutation object" +type Mutation { + "Creates a JWT token to be used for other queries." + createToken("The claims of the token." claims: [TokenClaimInput!]!): JwtToken! @authorize(policy: "CreateTokenMutation") +} + +"Represents nested content." +type NestedContent implements PropertyValue { + "Gets the elements of a nested content." + elements: [NestedContentItem!]! + "The model of the property value" + model: String! +} + +type NestedContentItem { + "Gets the properties of the nested content." + properties: TypedNestedContentProperties! +} + +type NumericEditor implements INumericEditor { + numeric: DefaultProperty +} + +type NumericEditorCulture implements INumericEditorCulture { + numericCulture: DefaultProperty +} + +"Represents a paginated list of items." +type PaginationOfContentItem { + "The page number." + page: Int! + "The page size" + pageSize: Int! + "The total number of items." + totalItems: Int! + "Whether there is a next page." + hasNextPage: Boolean! + "The items in the paginated list." + items: [ContentItem!]! +} + +"Represents a paginated list of items." +type PaginationOfMediaItem { + "The page number." + page: Int! + "The page size" + pageSize: Int! + "The total number of items." + totalItems: Int! + "Whether there is a next page." + hasNextPage: Boolean! + "The items in the paginated list." + items: [MediaItem!]! +} + +"Represents a paginated list of items." +type PaginationOfMemberItem { + "The page number." + page: Int! + "The page size" + pageSize: Int! + "The total number of items." + totalItems: Int! + "Whether there is a next page." + hasNextPage: Boolean! + "The items in the paginated list." + items: [MemberItem!]! +} + +"Implements the String) query" +type Query { + "Utility query. Gets a which claims are used by the registered queries." + utility_GetClaimGroups: [ClaimGroup!]! + "Gets a content item by a route." + contentByRoute("The route to fetch. Example '\/da\/frontpage\/'." route: String! "The base url for the request. Example: 'https:\/\/localhost:4000'. Default is the current domain" baseUrl: String! = "" "The context of the request." inContext: QueryContextInput): ContentItem @authorize(policy: "ContentByRouteQuery") + "Gets all the content items by content type." + contentByContentType("The contentType to fetch." contentType: String! "How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1 "The context of the request." inContext: QueryContextInput): PaginationOfContentItem! @authorize(policy: "ContentByContentTypeQuery") + "Gets all the content items at root level." + contentAtRoot("How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1 "The context of the request." inContext: QueryContextInput): PaginationOfContentItem! @authorize(policy: "ContentAtRootQuery") + "Gets a content item by id." + contentById("The id to fetch." id: Int! "The context of the request." inContext: QueryContextInput): ContentItem @authorize(policy: "ContentByIdQuery") + "Gets a content item by Guid." + contentByGuid("The id to fetch." id: UUID! "The context of the request." inContext: QueryContextInput): ContentItem @authorize(policy: "ContentByGuidQuery") + "Gets content items by tag." + contentByTag("The tag to fetch." tag: String! "The tag group to fetch." tagGroup: String "How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1 "The context of the request." inContext: QueryContextInput): PaginationOfContentItem! @authorize(policy: "ContentByTagQuery") + "Gets all the media items by content type." + mediaByContentType("The content type to fetch." contentType: String! "How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1): PaginationOfMediaItem! @authorize(policy: "MediaByContentTypeQuery") + "Gets all the media items at root level." + mediaAtRoot("How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1): PaginationOfMediaItem! @authorize(policy: "MediaAtRootQuery") + "Gets a Media item by id." + mediaById("The id to fetch." id: Int!): MediaItem @authorize(policy: "MediaByIdQuery") + "Gets a Media item by Guid." + mediaByGuid("The Guid to fetch." id: UUID!): MediaItem @authorize(policy: "MediaByGuidQuery") + "Finds members by display name." + findMembersByDisplayName("The display name (may be partial)." displayName: String! "Determines how to match a string property value." matchType: StringPropertyMatchType! "The page number to fetch. Defaults to 1." page: Int! = 1 "How many items to include in a page. Defaults to 10." pageSize: Int! = 10): [MemberItem]! @authorize(policy: "FindMembersByDisplayNameQuery") + "Finds members by email." + findMembersByEmail("The email (may be partial)." email: String! "Determines how to match a string property value." matchType: StringPropertyMatchType! "The page number to fetch. Defaults to 1." page: Int! = 1 "How many items to include in a page. Defaults to 10." pageSize: Int! = 10): [MemberItem]! @authorize(policy: "FindMembersByEmailQuery") + "Finds members by role." + findMembersByRole("The role name." roleName: String! "The username to match." usernameToMatch: String! "Determines how to match a string property value." matchType: StringPropertyMatchType! "How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1): PaginationOfMemberItem! @authorize(policy: "FindMembersByRoleQuery") + "Finds members by username." + findMembersByUsername("The username (may be partial)." username: String! "Determines how to match a string property value." matchType: StringPropertyMatchType! "The page number to fetch. Defaults to 1." page: Int! = 1 "How many items to include in a page. Defaults to 10." pageSize: Int! = 10): [MemberItem]! @authorize(policy: "FindMembersByUsernameQuery") + "Gets a member by email." + memberByEmail("The email to fetch." email: String!): MemberItem @authorize(policy: "MemberByEmailQuery") + "Gets a member by Guid." + memberByGuid("The id to fetch." id: UUID!): MemberItem @authorize(policy: "MemberByGuidQuery") + "Gets a member by id." + memberById("The id to fetch." id: Int!): MemberItem @authorize(policy: "MemberByIdQuery") + "Gets a member by username." + memberByUsername("The username to fetch." username: String!): MemberItem @authorize(policy: "MemberByUsernameQuery") +} + +type RadioboxEditor implements IRadioboxEditor { + radiobox: DefaultProperty +} + +type RadioboxEditorCulture implements IRadioboxEditorCulture { + radioboxCulture: DefaultProperty +} + +type RedirectInfo { + redirectUrl: String + isPermanent: Boolean! +} + +type RepeatableTextstringsEditor implements IRepeatableTextstringsEditor { + repeatableTextstrings: DefaultProperty +} + +type RepeatableTextstringsEditorCulture implements IRepeatableTextstringsEditorCulture { + repeatableTextstringsCulture: DefaultProperty +} + +"Represents a rich text editor." +type RichText implements PropertyValue { + "Gets the HTML value of the rich text editor or markdown editor." + value: String + "Gets the original value of the rich text editor or markdown editor." + sourceValue: String + "The model of the property value" + model: String! +} + +type RichtextEditor implements IRichtextEditor { + richtext: RichText +} + +type RichtextEditorCulture implements IRichtextEditorCulture { + richtextCulture: RichText +} + +type SiteWithCulture implements ITextboxEditor & ITextboxEditorCulture & ISiteWithCulture { + textstring: DefaultProperty + textstringCulture: DefaultProperty +} + +type SliderEditor implements ISliderEditor { + slider: DefaultProperty +} + +type SliderEditorCulture implements ISliderEditorCulture { + sliderCulture: DefaultProperty +} + +type TagsEditor implements ITagsEditor { + tags: DefaultProperty +} + +type TagsEditorCulture implements ITagsEditorCulture { + tagsCulture: DefaultProperty +} + +type TestMember implements ITestMember { + blockList: BlockList + nestedContent: MemberPicker + umbracoMemberComments: DefaultProperty +} + +type TextareaEditor implements ITextareaEditor { + textarea: DefaultProperty +} + +type TextareaEditorCulture implements ITextareaEditorCulture { + textareaCulture: DefaultProperty +} + +type TextboxEditor implements ITextboxEditor { + textstring: DefaultProperty +} + +type TextboxEditorCulture implements ITextboxEditorCulture { + textstringCulture: DefaultProperty +} + +type ToggleEditor implements IToggleEditor { + trueOrFalse: DefaultProperty +} + +type ToggleEditorCulture implements IToggleEditorCulture { + trueOrFalseCulture: DefaultProperty +} + +type UmbBlockGridDemoHeadlineBlock implements IUmbBlockGridDemoHeadlineBlock { + headline: DefaultProperty +} + +type UmbBlockGridDemoImageBlock implements IUmbBlockGridDemoImageBlock { + image: MediaPicker +} + +type UmbBlockGridDemoRichTextBlock implements IUmbBlockGridDemoRichTextBlock { + richText: RichText +} + +type UmbracoMediaArticle implements IUmbracoMediaArticle { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +type UmbracoMediaAudio implements IUmbracoMediaAudio { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +type UmbracoMediaVectorGraphics implements IUmbracoMediaVectorGraphics { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +type UmbracoMediaVideo implements IUmbracoMediaVideo { + umbracoFile: DefaultProperty + umbracoExtension: Label + "in bytes" + umbracoBytes: Label +} + +"Represents an unsupported property value." +type UnsupportedProperty implements PropertyValue { + "Gets the message of the property." + message: String! + "The model of the property value" + model: String! +} + +type UserPickerEditor implements IUserPickerEditor { + userPicker: DefaultProperty +} + +type UserPickerEditorCulture implements IUserPickerEditorCulture { + userPickerCulture: DefaultProperty +} + +"Used to get typed properties on a block grid property for the content property" +union TypedBlockGridContentProperties = EmptyPropertyType | BlockGridEditor | BlockListEditor | BlockListEditorCulture | CheckboxListEditor | CheckboxListEditorCulture | ColorPickerEditor | ColorPickerEditorCulture | ContentPickerEditor | ContentPickerEditorCulture | DatePickerEditor | DatePickerEditorCulture | DecimalEditor | DecimalEditorCulture | Default | DefaultCulture | DropdownEditor | DropdownEditorCulture | EmailAddressEditor | EmailAddressEditorCulture | EyeDropperColorPickerEditor | EyeDropperColorPickerEditorCulture | FileUpload | FileUploadCulture | ImageCropperEditor | ImageCropperEditorCulture | LabelEditor | LabelEditorCulture | MarkdownEditor | MarkdownEditorCulture | MediaPickerEditor | MediaPickerEditorCulture | MediaPickerLegacyEditor | MediaPickerLegacyEditorCulture | MemberGroupPickerEditor | MemberGroupPickerEditorCulture | MemberPickerEditor | MemberPickerEditorCulture | MultinodeTreepickerEditor | MultinodeTreepickerEditorCulture | MultiUrlPickerEditor | MultiUrlPickerEditorCulture | NumericEditor | NumericEditorCulture | RadioboxEditor | RadioboxEditorCulture | RepeatableTextstringsEditor | RepeatableTextstringsEditorCulture | RichtextEditor | RichtextEditorCulture | SiteWithCulture | SliderEditor | SliderEditorCulture | TagsEditor | TagsEditorCulture | TextareaEditor | TextareaEditorCulture | TextboxEditor | TextboxEditorCulture | ToggleEditor | ToggleEditorCulture | UmbBlockGridDemoHeadlineBlock | UmbBlockGridDemoImageBlock | UmbBlockGridDemoRichTextBlock | UserPickerEditor | UserPickerEditorCulture | BlockGridEditor1 | Image | File | UmbracoMediaVideo | UmbracoMediaAudio | UmbracoMediaArticle | UmbracoMediaVectorGraphics | CustomMediaType | Member | TestMember + +"Used to get typed properties on a block grid property for the settings property" +union TypedBlockGridSettingsProperties = EmptyPropertyType | BlockGridEditor | BlockListEditor | BlockListEditorCulture | CheckboxListEditor | CheckboxListEditorCulture | ColorPickerEditor | ColorPickerEditorCulture | ContentPickerEditor | ContentPickerEditorCulture | DatePickerEditor | DatePickerEditorCulture | DecimalEditor | DecimalEditorCulture | Default | DefaultCulture | DropdownEditor | DropdownEditorCulture | EmailAddressEditor | EmailAddressEditorCulture | EyeDropperColorPickerEditor | EyeDropperColorPickerEditorCulture | FileUpload | FileUploadCulture | ImageCropperEditor | ImageCropperEditorCulture | LabelEditor | LabelEditorCulture | MarkdownEditor | MarkdownEditorCulture | MediaPickerEditor | MediaPickerEditorCulture | MediaPickerLegacyEditor | MediaPickerLegacyEditorCulture | MemberGroupPickerEditor | MemberGroupPickerEditorCulture | MemberPickerEditor | MemberPickerEditorCulture | MultinodeTreepickerEditor | MultinodeTreepickerEditorCulture | MultiUrlPickerEditor | MultiUrlPickerEditorCulture | NumericEditor | NumericEditorCulture | RadioboxEditor | RadioboxEditorCulture | RepeatableTextstringsEditor | RepeatableTextstringsEditorCulture | RichtextEditor | RichtextEditorCulture | SiteWithCulture | SliderEditor | SliderEditorCulture | TagsEditor | TagsEditorCulture | TextareaEditor | TextareaEditorCulture | TextboxEditor | TextboxEditorCulture | ToggleEditor | ToggleEditorCulture | UmbBlockGridDemoHeadlineBlock | UmbBlockGridDemoImageBlock | UmbBlockGridDemoRichTextBlock | UserPickerEditor | UserPickerEditorCulture | BlockGridEditor1 | Image | File | UmbracoMediaVideo | UmbracoMediaAudio | UmbracoMediaArticle | UmbracoMediaVectorGraphics | CustomMediaType | Member | TestMember + +"Used to get typed properties on a block list property for the content property" +union TypedBlockListContentProperties = EmptyPropertyType | BlockGridEditor | BlockListEditor | BlockListEditorCulture | CheckboxListEditor | CheckboxListEditorCulture | ColorPickerEditor | ColorPickerEditorCulture | ContentPickerEditor | ContentPickerEditorCulture | DatePickerEditor | DatePickerEditorCulture | DecimalEditor | DecimalEditorCulture | Default | DefaultCulture | DropdownEditor | DropdownEditorCulture | EmailAddressEditor | EmailAddressEditorCulture | EyeDropperColorPickerEditor | EyeDropperColorPickerEditorCulture | FileUpload | FileUploadCulture | ImageCropperEditor | ImageCropperEditorCulture | LabelEditor | LabelEditorCulture | MarkdownEditor | MarkdownEditorCulture | MediaPickerEditor | MediaPickerEditorCulture | MediaPickerLegacyEditor | MediaPickerLegacyEditorCulture | MemberGroupPickerEditor | MemberGroupPickerEditorCulture | MemberPickerEditor | MemberPickerEditorCulture | MultinodeTreepickerEditor | MultinodeTreepickerEditorCulture | MultiUrlPickerEditor | MultiUrlPickerEditorCulture | NumericEditor | NumericEditorCulture | RadioboxEditor | RadioboxEditorCulture | RepeatableTextstringsEditor | RepeatableTextstringsEditorCulture | RichtextEditor | RichtextEditorCulture | SiteWithCulture | SliderEditor | SliderEditorCulture | TagsEditor | TagsEditorCulture | TextareaEditor | TextareaEditorCulture | TextboxEditor | TextboxEditorCulture | ToggleEditor | ToggleEditorCulture | UmbBlockGridDemoHeadlineBlock | UmbBlockGridDemoImageBlock | UmbBlockGridDemoRichTextBlock | UserPickerEditor | UserPickerEditorCulture | BlockGridEditor1 | Image | File | UmbracoMediaVideo | UmbracoMediaAudio | UmbracoMediaArticle | UmbracoMediaVectorGraphics | CustomMediaType | Member | TestMember + +"Used to get typed properties on a block list property for the settings property" +union TypedBlockListSettingsProperties = EmptyPropertyType | BlockGridEditor | BlockListEditor | BlockListEditorCulture | CheckboxListEditor | CheckboxListEditorCulture | ColorPickerEditor | ColorPickerEditorCulture | ContentPickerEditor | ContentPickerEditorCulture | DatePickerEditor | DatePickerEditorCulture | DecimalEditor | DecimalEditorCulture | Default | DefaultCulture | DropdownEditor | DropdownEditorCulture | EmailAddressEditor | EmailAddressEditorCulture | EyeDropperColorPickerEditor | EyeDropperColorPickerEditorCulture | FileUpload | FileUploadCulture | ImageCropperEditor | ImageCropperEditorCulture | LabelEditor | LabelEditorCulture | MarkdownEditor | MarkdownEditorCulture | MediaPickerEditor | MediaPickerEditorCulture | MediaPickerLegacyEditor | MediaPickerLegacyEditorCulture | MemberGroupPickerEditor | MemberGroupPickerEditorCulture | MemberPickerEditor | MemberPickerEditorCulture | MultinodeTreepickerEditor | MultinodeTreepickerEditorCulture | MultiUrlPickerEditor | MultiUrlPickerEditorCulture | NumericEditor | NumericEditorCulture | RadioboxEditor | RadioboxEditorCulture | RepeatableTextstringsEditor | RepeatableTextstringsEditorCulture | RichtextEditor | RichtextEditorCulture | SiteWithCulture | SliderEditor | SliderEditorCulture | TagsEditor | TagsEditorCulture | TextareaEditor | TextareaEditorCulture | TextboxEditor | TextboxEditorCulture | ToggleEditor | ToggleEditorCulture | UmbBlockGridDemoHeadlineBlock | UmbBlockGridDemoImageBlock | UmbBlockGridDemoRichTextBlock | UserPickerEditor | UserPickerEditorCulture | BlockGridEditor1 | Image | File | UmbracoMediaVideo | UmbracoMediaAudio | UmbracoMediaArticle | UmbracoMediaVectorGraphics | CustomMediaType | Member | TestMember + +"Used to get typed properties on a nested content property" +union TypedNestedContentProperties = EmptyPropertyType | BlockGridEditor | BlockListEditor | BlockListEditorCulture | CheckboxListEditor | CheckboxListEditorCulture | ColorPickerEditor | ColorPickerEditorCulture | ContentPickerEditor | ContentPickerEditorCulture | DatePickerEditor | DatePickerEditorCulture | DecimalEditor | DecimalEditorCulture | Default | DefaultCulture | DropdownEditor | DropdownEditorCulture | EmailAddressEditor | EmailAddressEditorCulture | EyeDropperColorPickerEditor | EyeDropperColorPickerEditorCulture | FileUpload | FileUploadCulture | ImageCropperEditor | ImageCropperEditorCulture | LabelEditor | LabelEditorCulture | MarkdownEditor | MarkdownEditorCulture | MediaPickerEditor | MediaPickerEditorCulture | MediaPickerLegacyEditor | MediaPickerLegacyEditorCulture | MemberGroupPickerEditor | MemberGroupPickerEditorCulture | MemberPickerEditor | MemberPickerEditorCulture | MultinodeTreepickerEditor | MultinodeTreepickerEditorCulture | MultiUrlPickerEditor | MultiUrlPickerEditorCulture | NumericEditor | NumericEditorCulture | RadioboxEditor | RadioboxEditorCulture | RepeatableTextstringsEditor | RepeatableTextstringsEditorCulture | RichtextEditor | RichtextEditorCulture | SiteWithCulture | SliderEditor | SliderEditorCulture | TagsEditor | TagsEditorCulture | TextareaEditor | TextareaEditorCulture | TextboxEditor | TextboxEditorCulture | ToggleEditor | ToggleEditorCulture | UmbBlockGridDemoHeadlineBlock | UmbBlockGridDemoImageBlock | UmbBlockGridDemoRichTextBlock | UserPickerEditor | UserPickerEditorCulture | BlockGridEditor1 | Image | File | UmbracoMediaVideo | UmbracoMediaAudio | UmbracoMediaArticle | UmbracoMediaVectorGraphics | CustomMediaType | Member | TestMember + +"Used to get typed properties on a model - For nested properties use TypedBlockListContentProperties, TypedBlockListSettingsProperties" +union TypedProperties = EmptyPropertyType | BlockGridEditor | BlockListEditor | BlockListEditorCulture | CheckboxListEditor | CheckboxListEditorCulture | ColorPickerEditor | ColorPickerEditorCulture | ContentPickerEditor | ContentPickerEditorCulture | DatePickerEditor | DatePickerEditorCulture | DecimalEditor | DecimalEditorCulture | Default | DefaultCulture | DropdownEditor | DropdownEditorCulture | EmailAddressEditor | EmailAddressEditorCulture | EyeDropperColorPickerEditor | EyeDropperColorPickerEditorCulture | FileUpload | FileUploadCulture | ImageCropperEditor | ImageCropperEditorCulture | LabelEditor | LabelEditorCulture | MarkdownEditor | MarkdownEditorCulture | MediaPickerEditor | MediaPickerEditorCulture | MediaPickerLegacyEditor | MediaPickerLegacyEditorCulture | MemberGroupPickerEditor | MemberGroupPickerEditorCulture | MemberPickerEditor | MemberPickerEditorCulture | MultinodeTreepickerEditor | MultinodeTreepickerEditorCulture | MultiUrlPickerEditor | MultiUrlPickerEditorCulture | NumericEditor | NumericEditorCulture | RadioboxEditor | RadioboxEditorCulture | RepeatableTextstringsEditor | RepeatableTextstringsEditorCulture | RichtextEditor | RichtextEditorCulture | SiteWithCulture | SliderEditor | SliderEditorCulture | TagsEditor | TagsEditorCulture | TextareaEditor | TextareaEditorCulture | TextboxEditor | TextboxEditorCulture | ToggleEditor | ToggleEditorCulture | UmbBlockGridDemoHeadlineBlock | UmbBlockGridDemoImageBlock | UmbBlockGridDemoRichTextBlock | UserPickerEditor | UserPickerEditorCulture | BlockGridEditor1 | Image | File | UmbracoMediaVideo | UmbracoMediaAudio | UmbracoMediaArticle | UmbracoMediaVectorGraphics | CustomMediaType | Member | TestMember + +"Represents the context of a query." +input QueryContextInput { + "The culture of the query." + culture: String + "Whether to include preview content." + includePreview: Boolean + "The fallbacks to use on a property value." + fallbacks: [PropertyFallback!] + "The segment to use on a property value." + segment: String +} + +"A claim for a token." +input TokenClaimInput { + "The name of the claim." + name: String! + "The value of the claim." + value: Any + "The type of claim." + type: TokenClaimType +} + +enum ApplyPolicy { + BEFORE_RESOLVER + AFTER_RESOLVER + VALIDATION +} + +enum LinkType { + CONTENT + MEDIA + EXTERNAL +} + +"Represents a property fallback strategy" +enum PropertyFallback { + "Do not fallback" + NONE + "Fallback to default value" + DEFAULT_VALUE + "Fallback to other languages" + LANGUAGE + "Fallback to tree ancestors" + ANCESTORS +} + +enum StringPropertyMatchType { + EXACT + CONTAINS + STARTS_WITH + ENDS_WITH + WILDCARD +} + +"The type of claim." +enum TokenClaimType { + JSON + JSON_ARRAY +} + +enum UrlMode { + DEFAULT + RELATIVE + ABSOLUTE + AUTO +} + +directive @authorize("The name of the authorization policy that determines access to the annotated resource." policy: String "Roles that are allowed to access the annotated resource." roles: [String!] "Defines when when the authorize directive shall be applied.By default the authorize directives are applied during the validation phase." apply: ApplyPolicy! = BEFORE_RESOLVER) repeatable on OBJECT | FIELD_DEFINITION + +scalar Any + +"The `DateTime` scalar represents an ISO-8601 compliant date time type." +scalar DateTime @specifiedBy(url: "https:\/\/www.graphql-scalars.com\/date-time") + +"The `Long` scalar type represents non-fractional signed whole 64-bit numeric values. Long can represent values between -(2^63) and 2^63 - 1." +scalar Long + +scalar UUID @specifiedBy(url: "https:\/\/tools.ietf.org\/html\/rfc4122") \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/UtilityGetClaimGroups/Snaps/Utility_GetClaimGroups_Snaps b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/UtilityGetClaimGroups/Snaps/Utility_GetClaimGroups_Snaps new file mode 100644 index 00000000..a5f19992 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Auth/UtilityGetClaimGroups/Snaps/Utility_GetClaimGroups_Snaps @@ -0,0 +1,58 @@ +{ + "data": { + "utility_GetClaimGroups": [ + { + "groupName": "Members", + "claimValues": [ + { + "name": "headless-scope", + "values": [ + "property.values.member.picker", + "global.member.read", + "find.members.by.display.name.query", + "find.members.by.email.query", + "find.members.by.role.query", + "find.members.by.username.query", + "member.by.email.query", + "member.by.guid.query", + "member.by.id.query", + "member.by.username.query" + ] + } + ] + }, + { + "groupName": "Content", + "claimValues": [ + { + "name": "headless-scope", + "values": [ + "content.by.route.query", + "global.content.read", + "content.by.contentType.query", + "content.at.root.query", + "content.by.id.query", + "content.by.guid.query", + "content.by.tag.query" + ] + } + ] + }, + { + "groupName": "Media", + "claimValues": [ + { + "name": "headless-scope", + "values": [ + "media.by.contentType.query", + "global.media.read", + "media.at.root.query", + "media.by.id.query", + "media.by.guid.query" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Schema/Schema b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Schema/Schema index a715e757..0e2f83b5 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Schema/Schema +++ b/src/Nikcio.UHeadless.IntegrationTests/Snapshots/Schema/Schema @@ -1056,7 +1056,7 @@ type MemberItem { "Represents a member picker." type MemberPicker implements PropertyValue { - "Gets the member items of a picker." + "Gets the member items of a picker. Requires the property.values.member.picker or global.member.read claim to access" members: [MemberPickerItem!]! @authorize(policy: "PropertyValuesMemberPicker") "The model of the property value" model: String! @@ -1196,7 +1196,7 @@ type Query { "Gets all the content items by content type." contentByContentType("The contentType to fetch." contentType: String! "How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1 "The context of the request." inContext: QueryContextInput): PaginationOfContentItem! @authorize(policy: "ContentByContentTypeQuery") "Gets all the content items at root level." - contentAtRoot("How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1 "The context of the request." inContext: QueryContextInput): PaginationOfContentItem! + contentAtRoot("How many items to include in a page. Defaults to 10." pageSize: Int! = 10 "The page number to fetch. Defaults to 1." page: Int! = 1 "The context of the request." inContext: QueryContextInput): PaginationOfContentItem! @authorize(policy: "ContentAtRootQuery") "Gets a content item by id." contentById("The id to fetch." id: Int! "The context of the request." inContext: QueryContextInput): ContentItem @authorize(policy: "ContentByIdQuery") "Gets a content item by Guid." diff --git a/src/Nikcio.UHeadless.IntegrationTests/UHeadlessSetupComposer.cs b/src/Nikcio.UHeadless.IntegrationTests/UHeadlessSetupComposer.cs new file mode 100644 index 00000000..b523b26d --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/UHeadlessSetupComposer.cs @@ -0,0 +1,24 @@ +using Umbraco.Cms.Core.Composing; + +namespace Nikcio.UHeadless.IntegrationTests; + +/// +/// Sets up UHeadless based on the active +/// +public class UHeadlessSetupComposer : IComposer +{ + public void Compose(IUmbracoBuilder builder) + { + ArgumentNullException.ThrowIfNull(builder); + + string? headlessSetupTypeName = builder.Config[nameof(ApplicationFactoryBase.UHeadlessSetup)]; + + ArgumentException.ThrowIfNullOrWhiteSpace(headlessSetupTypeName); + + var headlessSetup = (UHeadlessSetup?) Activator.CreateInstance(Type.GetType(headlessSetupTypeName) ?? throw new InvalidOperationException("Couldn't create the UHeadless test setup")); + + ArgumentNullException.ThrowIfNull(headlessSetup); + + builder.AddUHeadless(headlessSetup.GetSetup()); + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/UnAuthenticatedApplicationFactory.cs b/src/Nikcio.UHeadless.IntegrationTests/UnAuthenticatedApplicationFactory.cs new file mode 100644 index 00000000..07268691 --- /dev/null +++ b/src/Nikcio.UHeadless.IntegrationTests/UnAuthenticatedApplicationFactory.cs @@ -0,0 +1,54 @@ +using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.ContentItems; +using Nikcio.UHeadless.Defaults.MediaItems; +using Nikcio.UHeadless.Defaults.Members; + +namespace Nikcio.UHeadless.IntegrationTests; + +public class UnAuthenticatedApplicationFactory : ApplicationFactoryBase +{ + public override UHeadlessSetup UHeadlessSetup => new UnAuthenticatedUHeadlessSetup(); +} + +public class UnAuthenticatedUHeadlessSetup : UHeadlessSetup +{ + public override Action GetSetup() + { + return options => + { + options.DisableAuthorization = true; + + options.AddDefaults(); + + options + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery(); + + options + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery(); + + options + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery() + .AddQuery(); + + // This is to allow the long queries we build for getting all the fields for tests. + options.RequestExecutorBuilder.ModifyParserOptions(parserOptions => + { + parserOptions.MaxAllowedFields = 10000; + }); + }; + } +} diff --git a/src/Nikcio.UHeadless.IntegrationTests/packages.lock.json b/src/Nikcio.UHeadless.IntegrationTests/packages.lock.json index 18b91dd4..4d9d2b57 100644 --- a/src/Nikcio.UHeadless.IntegrationTests/packages.lock.json +++ b/src/Nikcio.UHeadless.IntegrationTests/packages.lock.json @@ -10,47 +10,47 @@ }, "Microsoft.AspNetCore.Mvc.Testing": { "type": "Direct", - "requested": "[8.0.4, )", - "resolved": "8.0.4", - "contentHash": "e6IVsUq7zmAO/T4GGd00j1yxh6PBHF1PlQLaiFV/nM1jePH7Rbu+zVoXCRUDC2KOlHnPCym+eqFFlZkNNO2CvQ==", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "OrHhUmP3g9wylaoGF9D3zSyTwMUwZKzUDRc71mDOOHO39fG+rsvAZzKdkmuDImgNMEqXR0SUzfsn3CNwBWP6MA==", "dependencies": { - "Microsoft.AspNetCore.TestHost": "8.0.4", + "Microsoft.AspNetCore.TestHost": "8.0.5", "Microsoft.Extensions.DependencyModel": "8.0.0", "Microsoft.Extensions.Hosting": "8.0.0" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.9.0, )", - "resolved": "17.9.0", - "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", "dependencies": { - "Microsoft.CodeCoverage": "17.9.0", - "Microsoft.TestPlatform.TestHost": "17.9.0" + "Microsoft.CodeCoverage": "17.10.0", + "Microsoft.TestPlatform.TestHost": "17.10.0" } }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Direct", - "requested": "[17.9.28, )", - "resolved": "17.9.28", - "contentHash": "hNfIadilgBXbAOmV7LCdPSmLsUILA3QZhR4Wu9VbFDaHjtU3dCFRfJMbk45galt1pfffz4yI5qT9oUJl+F8mNQ==" + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "xunit": { "type": "Direct", - "requested": "[2.7.1, )", - "resolved": "2.7.1", - "contentHash": "9o050yCLzPvHxbrAkaHnI1j+YfPvRw+/ncvKbTfzIhO4JvQA0rPgoICJxXHMkscfgXmLFwZ8107ehnMUVzE23A==", + "requested": "[2.8.0, )", + "resolved": "2.8.0", + "contentHash": "US3a3twJziAif1kFPGdk9fALwILHxV0n1roX5j67bN/d3o4DGNLHnV3tr5ZX+uinVrzfkf0avH3zGX8JPBC0qA==", "dependencies": { - "xunit.analyzers": "1.12.0", - "xunit.assert": "2.7.1", - "xunit.core": "[2.7.1]" + "xunit.analyzers": "1.13.0", + "xunit.assert": "2.8.0", + "xunit.core": "[2.8.0]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.5.8, )", - "resolved": "2.5.8", - "contentHash": "ZJTm71neOfZcUnqdyY0A0Qgcg1162DoOq6+VpCCsOaD9rwCK5alcjOEHeu17sEekzq4qNv3kyelx6lUMsAt/eA==" + "requested": "[2.8.0, )", + "resolved": "2.8.0", + "contentHash": "mqQbS2zr8dfgSWxkNOC6UTzO8JoqpTmM5+FFn2XR/2nVmx2JvEY0YbM5pt2FmXVg9YVe+jKUPHd6KrroyCl67w==" }, "Asp.Versioning.Abstractions": { "type": "Transitive", @@ -114,10 +114,10 @@ }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "13.0.0", - "contentHash": "6Zj/vfmnCXLjBG7WNdtOgZZ5ZDR3Sy1FQSshZUonIYs3OdzozmsFmqPXMd9XJ0QE9aAildgVGq/lDLpLrMI4Yw==", + "resolved": "16.0.1", + "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", "dependencies": { - "Yarp.ReverseProxy": "2.0.1" + "Yarp.ReverseProxy": "2.1.0" } }, "BouncyCastle.Cryptography": { @@ -176,8 +176,8 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "T8ZYTsm0S48hi89d2symCvUEJoBkg5F+rfU+HFtkEOc7WLZsIBDStnfF3c890Vxjmx/P1tFpY5StDNTM+C6fIw==", + "resolved": "13.9.4", + "contentHash": "jkD4OWSR2CmdfyrO55/m/s2onSaAar/XpCMYQGo1y+qjcaEq93cgc8HL/i8hRdV4mVgfpW60DELREYZrBaiZSw==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0", "System.Diagnostics.DiagnosticSource": "8.0.0", @@ -186,168 +186,168 @@ }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "aGBAW6d9Oj1MfmKJF482yYdJ8G87yJ0rVFxU9l7lA1dg1xjc5XALLQO9jCPz4GCpQLetuAhHdkZ713imJ6WCPw==", + "resolved": "13.9.4", + "contentHash": "4tXT2Y6U3p1h1egdS3K2qu2re0QmxJH+2thYhKfDDXZaErfod6H1NVHZIBOTw4nFdgzpL8FiFUQuvzekEsNYmA==", "dependencies": { - "HotChocolate.Authorization": "13.9.0", - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Types.CursorPagination": "13.9.0", - "HotChocolate.Types.Mutations": "13.9.0", - "HotChocolate.Types.OffsetPagination": "13.9.0", - "HotChocolate.Validation": "13.9.0" + "HotChocolate.Authorization": "13.9.4", + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4", + "HotChocolate.Types.Mutations": "13.9.4", + "HotChocolate.Types.OffsetPagination": "13.9.4", + "HotChocolate.Validation": "13.9.4" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "mb3IPL8V4NRL2FUefZP20fSwIMOnE7uCMLiM4d5Y5cjljYaMUVzUJnvdW9C1tUfbodP49Llk9WnBCR6S9fr8mQ==", + "resolved": "13.9.4", + "contentHash": "82LweGM6vtF4Wc8NmbnNwZE8PeDOWHuY9oIR8zdi/O9XayaAFy2B5bIE5QFszlqTlaiRLW9y8NpCXQkAe0mVHQ==", "dependencies": { - "HotChocolate.Language": "13.9.0", + "HotChocolate.Language": "13.9.4", "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.AspNetCore": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "RnxUdKEYOmsjzNPss473CYOug/9GIt8qlS9j8HxtZrW5TASM/9S7pDb7FthcDj4ag/D7wAwme3YxsqxH+iw5Bg==", + "resolved": "13.9.4", + "contentHash": "kW32o45UlqThLmS8rsukZjKUX2g3zNM8LhQmcS2AnFdCcCg4zWFhlR1UW1BEBv6QLsldaxJVEw5kuvwuLXSIGw==", "dependencies": { - "BananaCakePop.Middleware": "13.0.0", - "HotChocolate": "13.9.0", - "HotChocolate.Subscriptions.InMemory": "13.9.0", - "HotChocolate.Transport.Sockets": "13.9.0", - "HotChocolate.Types.Scalars.Upload": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0" + "BananaCakePop.Middleware": "16.0.1", + "HotChocolate": "13.9.4", + "HotChocolate.Subscriptions.InMemory": "13.9.4", + "HotChocolate.Transport.Sockets": "13.9.4", + "HotChocolate.Types.Scalars.Upload": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4" } }, "HotChocolate.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "z5eLUN9Uai7qLuyq6bwH6UrjYhd38f0tB9WRPjezY+/2Y8Fw2UVk2hz5FAKCr/jWC18njqTNuNateJ95IvwC6Q==", + "resolved": "13.9.4", + "contentHash": "zzxciNLZU1RVRprhiwlClyPSwdxr8G7AvQblZ9rt9EJM7fPgNFbNE9byNHN3tg7m5wEkwhsiE5ClIPH0DZGqFQ==", "dependencies": { - "HotChocolate": "13.9.0" + "HotChocolate": "13.9.4" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6CPA39zObNuMUmkmQ6J3zqmalukhjCiJS/klSEDPpwTtrn9HS/3edsh/7oiKzmUh6PNVKGed0lwkSdDP+DGZDQ==", + "resolved": "13.9.4", + "contentHash": "sU8nUTOHYwEAaZCnneMCzJs/rG+OtBme1cy+DaT3qxq9Oe6kD/kF1q1jRJjSa1juG/anOcmlu9haZZT0hotZ+g==", "dependencies": { - "HotChocolate.Execution": "13.9.0" + "HotChocolate.Execution": "13.9.4" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "zO1aG5qx5lzbZu/iKR56g+zeOgCCCa5pICwxijd1qEap+7J5q0YsME9RByw8wYPH+tNsXCvDcKaeAEcashB4cg==", + "resolved": "13.9.4", + "contentHash": "0CsRwTnG3T6nCpgXK/LI2/yn1vvHPIVDZ/NiRz01JCb4tBzsh6v1yGgT8siRhPaoBHlfryUiTbc/Rv1pp9drvw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0", - "HotChocolate.Validation": "13.9.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4", + "HotChocolate.Validation": "13.9.4", "Microsoft.Extensions.DependencyInjection": "8.0.0", "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "flySLPDyTtM4051tI3mh5Ue0fGrKFDuW3w0ebWmW2qjfuF4jgQzd3pK3ZxfkxAfpxQXyPaVn/Q7fae+fYQxeCg==", + "resolved": "13.9.4", + "contentHash": "hEIfNnbcsUtjXQSn37IL6LbN+iKUNcBt+4+hdb5EY2NUEmvZDwawsuNXzX/9UeE138xB/zdTkJu6p10cP6oHGQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", + "HotChocolate.Abstractions": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "pIw7VlEABejQGLRnJGnO7iPdT40AHklf0psJp5zNXrq0IX+Vq7hRRqON73nubZv5Ofhh8fV3kugqYFKvzcptoA==", + "resolved": "13.9.4", + "contentHash": "3eh6WCocFbJ1Dtcg1oHmpNKcytwI/ZANQUv3mpsRtTT13wE7yXbzPXrZlBcWPFYv0NeJQ2v0kk4wAmRdYxyaYg==", "dependencies": { - "GreenDonut": "13.9.0", - "HotChocolate.Types": "13.9.0" + "GreenDonut": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "M8q0XHQm8Gtab+wKgYXfVPxScjdDE+INify5yaj6g1ZDkV3sLIeX+muu1WebrNO3DgmuAi6o3aW770Ucw7k/dw==", + "resolved": "13.9.4", + "contentHash": "ez1eHzpSz7+Fn+aqG62h6kKaOfktmMwUjaT9M5NWS5LqC81n/8HG4lr8UmbGywbEU9optCWo5GfICNpQItAHaw==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0", - "HotChocolate.Language.Utf8": "13.9.0", - "HotChocolate.Language.Visitors": "13.9.0", - "HotChocolate.Language.Web": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4", + "HotChocolate.Language.Utf8": "13.9.4", + "HotChocolate.Language.Visitors": "13.9.4", + "HotChocolate.Language.Web": "13.9.4" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "+vwrQ0qOiKn/yUBHn53030hQmqj45C1g0WI8sip50CPnkgs3bAPnDInUvrR3IiHbRn5spAonO4tFPtMDdJrEMA==", + "resolved": "13.9.4", + "contentHash": "mPfX23AflbB8nhvC3hAYn93r940UHwRmhZ5jXQ3yTHZOYZhlgJypa+4I5KF/CnTFrB36tWmA3LgXnN3pJ/VMvA==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "IEWNYGvtwejf7+j+Xci25FaYets2UD8wkfzQ5dUCW47c1rnTAyuRdTiO8T8x6LYuZ7+SLg7UTBYgjv4ybwAUgA==", + "resolved": "13.9.4", + "contentHash": "+4GYr3eFPY3b2OZjByHKyOKlpY+bUGnwk0S39RW3z4KRRgv5NkYjPdI+O2iaVbIWBoJXBnb7QlEQWIj64FbbqA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "j6mPBkfVo2fopWYLoczXCoog4PJ+KwbHItSgHfPfI1kDBcNcy9XY4oxth3Uau1uBbfHYIFjnuVc+FrGb1f9KAQ==", + "resolved": "13.9.4", + "contentHash": "yJjnKtNw1gnze50n0vrsod+dS1AK8iGIgEbm9aKvIyLIaSVSQnvx5sXhX21JzKEJV7SegnvVbQdf1zhjOwTlEQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "GI5ufbNVEoKygSC09owVnCvw1Ma2KzOtm1l6uen3wKshAdOKB4gmSVCjzf71pNL2Nt6cL4IHa70ClqjECmu9qg==", + "resolved": "13.9.4", + "contentHash": "aa4ybXm9DdTpjcLvT6FfTPBYTz5xvYsg96J8OaVS0LSKeACHNrBRoF5qP5/cD01UXwSgdr19HqAki1H5D6gRtw==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.0" + "HotChocolate.Language.Utf8": "13.9.4" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "P3ason65NwSzkB2W9myV/pRIm4IMIWXH3RPCtpHVKx22Xw3hRJRJhjLBQZ5LCk5v3+7kKhXNBTbFNpbMyvez3Q==", + "resolved": "13.9.4", + "contentHash": "DRU8lN9sMhqVBAa4p/W47pvclrS+SBSzO9sWYbwDiO6OE/B3SlYSDE+Tqy66YAfcNHqFnx/Cx+rd7Kcc06nllw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "rj5U1Cd2QsjNnSNNdlSopYLtXh0kTZ1NlA1B3v02YFtj4Zu9le6QkGsl3oUljUUq46vSkkrT9ISj+e5wTCcw/Q==", + "resolved": "13.9.4", + "contentHash": "EUOHzVtVbMWQOPjCWGGmYXvIUM4K5rAYbGk6yO+76T+nVefZw/NgVb1lOx9Ii3Eo+cVBwEliPaJte7vm+HSRlA==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Subscriptions": "13.9.0", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Subscriptions": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "4hPlhS2bgqT/tYCZfPtbGtPAaedULKgTbFKkTsjigrDhJcVxBA36Gr3yGM6S3NEw2JdIgiwugYV1log9zXkEjA==", + "resolved": "13.9.4", + "contentHash": "tzLIUlpoadoAwDyPNRjtvtx0soe+fLMO//7IE/d49QFj5J/FM6pTzTuvAo7JafsmC+UU5uRGykTKXup9xdtLeA==", "dependencies": { "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "VGPZePNC4sBlz/iY4x90zIRxW62MWzWNcl2yjLS3JcW+0W8KuKxh99dFLxL0WY/+Eoe8PUecmoob+FrVEvPzpg==", + "resolved": "13.9.4", + "contentHash": "Q7XywadsAIm1hf1v+YBMOe1fbjQYAtL+NNlPk7hgumUYVz5iSY/9WYwomMZl80id0Q1aP63hzOoEDY90Em6TrQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Types.Shared": "13.9.0", - "HotChocolate.Utilities": "13.9.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Types.Shared": "13.9.4", + "HotChocolate.Utilities": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", @@ -356,66 +356,66 @@ }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2+w6tLrdjo+d/aIKyoNW1L/OH/p+FACMwGWHk1P4MwAspqaF7zjy71qTeNks+8QbRwG8uMleey/0sbr8sWpC6w==", + "resolved": "13.9.4", + "contentHash": "sm7ZghRSWQQrde5aa7VZhi/QhSbuzB7yS4jUd5/CB9AOX3WFKjJ3uitY7crWV9scLxcDgaaiAwglF7wWFvubhw==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "NX1zLkb7t19Om5RYubmkA6yRCtBbca454rqSGKSVBYjDrsiA6+4ZDvmS9Kjbw8F+cPm3VqShenrIIgfW8bzCXQ==", + "resolved": "13.9.4", + "contentHash": "pndQvOY8CnoefzKQNCNaJ++r1gf4JbvKC3c3lf6jimqEE/UJMlE935JXwZCGxnUSJ6Npb14sVoOWGM6Kl5myEA==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "LIAaSVRS6FJCssP+s4ooLajhQ1/QfES78twX4OgZFJ9/UZMxXlU3K/IWeB2aXcJNkehfIZLgoiROnouB7ATepw==", + "resolved": "13.9.4", + "contentHash": "J4o/p/HRFNQCsApy1LFlwITVHtGaUlLLhismyi5QRL7CTwC5Lk1or5KlPYufyYgbs9X3BkASlmpr9vGmg+6Ypg==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "hisB6PGGgsekz3a8YJwKgvbZHED98eph9+TMPg5A500tyvrZS00fbdpjRcN+rcTKAxhJ5evzHB2Fo1m62Dyo4w==", + "resolved": "13.9.4", + "contentHash": "AAZLF9M6h80uh3BZjhaAbS3kch0+bDmetdki7bdo5HYiYRN2tuTT1+YblhfBzoh7726mROOtYRvk7h4DQBLWHw==", "dependencies": { - "HotChocolate.Types": "13.9.0" + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2lhdbXU/GltPQWO9r8qePZSzDo9ryFs8Wv0aF7aQgEq3dLvwer6OpvnZhIYmGua6bXXebA1PzBAEaaxPpLx3Wg==", + "resolved": "13.9.4", + "contentHash": "GqaSuucguc1OBH6sg52C1RobCvry8Fzm69r2QSzTHzSJVLBXAC0HNthkVl3GpuWW3c221fM+Yh9UiFfKNaeJ3w==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6zqwjROYxtuzAYjh31JnYKgM/MySRWEq4DHO64oSPFRJQ8NDgg7EvUU771yLt/6T7kUh+S6k25hVnmUipFtEnQ==" + "resolved": "13.9.4", + "contentHash": "g0kRiYho/nxA/QRkBY9n9ZjDqPEby3A33coBvFvkkfXXYRLyFr1P6XE3ZRt3ob35AxbvnWmXYxM3aUZR5u1mfg==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "o1ijY8Rk0IUAo8QZYhfQ8s4/3z78JS9tyXGHzA963gkzTSJPehD4960CAmWlyC19FdE1i2KiTnYLhNOwNoL6+A==", + "resolved": "13.9.4", + "contentHash": "a4SeiruZOBatY4QOksJ8Zlux0vN6s1KW1ydjWPUCcdgANDkDae/+zsbPLNNxiDhkpYovDVQW7gRYkgWoZ8vGKg==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "gC7/YfOcOOmT+zV/V45CubYhK3lZI7+SmNYLGXQ1ko4cwjVRh3PzSJMAaKw3naWDcbjXbEyWwdYc0dLuoVBNEA==", + "resolved": "13.9.4", + "contentHash": "G0xU8wTZegjCBeiFdlHAQ8+27e1LVDwucjwmULZq1NdbH8EQJQnvjYOvM4XYaIhdqNi8Kn9AvUT2FM5LcBFhiQ==", "dependencies": { - "HotChocolate.Types": "13.9.0", + "HotChocolate.Types": "13.9.4", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.Options": "8.0.0" } @@ -548,6 +548,14 @@ "resolved": "2.5.140", "contentHash": "JE3vwluOrsJ4t3hnfXzIxJUh6lhx6M/KR8Sark/HOUw1DJ5UKu5JsAnnuaQngg6poFkRx1lzHSLTkxHNJO7+uQ==" }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "type": "Transitive", + "resolved": "8.0.5", + "contentHash": "VqKkXLxsCVHNmSdUIuBtDSXL3OqX0yfDjcZxCcYD8VFNpTutl53BCFHzMb3wvw3asneHnURzC2R8VvIXn3l5Lw==", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + } + }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", "resolved": "8.0.0", @@ -720,8 +728,8 @@ }, "Microsoft.AspNetCore.TestHost": { "type": "Transitive", - "resolved": "8.0.4", - "contentHash": "NQ5kHSo0aazGFbZ/3J2Fr/uKtOd43H3vJLoXoMY9GXUQppbfXco3zrYF9uBB7zkLsuFh9McBln1izgycYGscUA==", + "resolved": "8.0.5", + "contentHash": "v8ARGcCP1lXVrih+P3GsMxvxkZ7jxfh0p1gQpbL0+mcA3BASSENHfa9tpuBpoRFCuxVaJA2JtnwwN1elD2AT4Q==", "dependencies": { "System.IO.Pipelines": "8.0.0" } @@ -767,8 +775,8 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" }, "Microsoft.CSharp": { "type": "Transitive", @@ -1322,49 +1330,49 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "7iSWSRR72VKeonFdfDi43Lvkca98Y0F3TmmWhRSuHbkjk/IKUSO0Qd272LQFZpi5eDNQNbUXy3o4THXhOAU6cw==" + "resolved": "7.1.2", + "contentHash": "33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "N+hUPsFZs+IhlMU+qmX8NnYVB9uMxVdcWoPIhKo4oHDR/yuIFh19SVZeFby15cm8S9yedynOcfs7TU5oDCheZw==", + "resolved": "7.1.2", + "contentHash": "cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.0.0" + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "6I35Kt2/PQZAyUYLo3+QgT/LubZ5/4Ojelkbyo8KKdDgjMbVocAx2B3P5V7iMCz+rsAe/RLr6ql87QKnHtI+aw==", + "resolved": "7.1.2", + "contentHash": "YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.0.0" + "Microsoft.IdentityModel.Abstractions": "7.1.2" } }, "Microsoft.IdentityModel.Protocols": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "gFHbOw7cRrlmmguB7mgCoSjPYYqNBkARNR5hzonzMDew/x963oXoA4PgO412ca1Mv9oczE9ryRzitaDMqsh/eQ==", + "resolved": "7.1.2", + "contentHash": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.0.0", - "Microsoft.IdentityModel.Tokens": "7.0.0" + "Microsoft.IdentityModel.Logging": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, "Microsoft.IdentityModel.Protocols.OpenIdConnect": { "type": "Transitive", - "resolved": "6.24.0", - "contentHash": "a/2RRrc8C9qaw8qdD9hv1ES9YKFgxaqr/SnwMSLbwQZJSUQDd4qx1K4EYgWaQWs73R+VXLyKSxN0f/uE9CsBiQ==", + "resolved": "7.1.2", + "contentHash": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", "dependencies": { - "Microsoft.IdentityModel.Protocols": "6.24.0", - "System.IdentityModel.Tokens.Jwt": "6.24.0" + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "7.1.2" } }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "dxYqmmFLsjBQZ6F6a4XDzrZ1CTxBRFVigJvWiNtXiIsT6UlYMxs9ONMaGx9XKzcxmcgEQ2ADuCqKZduz0LR9Hw==", + "resolved": "7.1.2", + "contentHash": "oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.0.0" + "Microsoft.IdentityModel.Logging": "7.1.2" } }, "Microsoft.IO.RecyclableMemoryStream": { @@ -1404,18 +1412,18 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "1ilw/8vgmjLyKU+2SKXKXaOqpYFJCQfGqGz+x0cosl981VzjrY74Sv6qAJv+neZMZ9ZMxF3ArN6kotaQ4uvEBw==", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "Spmg7Wx49Ya3SxBjyeAR+nQpjMTKZwTwpZ7KyeOTIqI/WHNPnBU4HUvl5kuHPQAwGWqMy4FGZja1HvEwvoaDiA==", + "resolved": "17.10.0", + "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.9.0", + "Microsoft.TestPlatform.ObjectModel": "17.10.0", "Newtonsoft.Json": "13.0.1" } }, @@ -2363,11 +2371,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "6.24.0", - "contentHash": "Qibsj9MPWq8S/C0FgvmsLfIlHLE7ay0MJIaAmK94ivN3VyDdglqReed5qMvdQhSL0BzK6v0Z1wB/sD88zVu6Jw==", + "resolved": "7.1.2", + "contentHash": "Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "6.24.0", - "Microsoft.IdentityModel.Tokens": "6.24.0" + "Microsoft.IdentityModel.JsonWebTokens": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, "System.IO": { @@ -3091,42 +3099,42 @@ }, "Umbraco.Cms": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "jT7P6VWn3CEpLYCJcLsXeGXbwhFh2kjfGzgICgI/0nL7MHgEJPnrsHdNQQjkYEQqb3AO6rVUJBdntxnWJHOhWg==", + "resolved": "13.3.1", + "contentHash": "yEygy6cxGneL5P7NTuBBPz3N2DuUXN6+tjwnxTP+WiOHlR7qc69iHN4ZWffL6rAywhuQQgAWygsWm4KRh1asdw==", "dependencies": { - "Umbraco.Cms.Imaging.ImageSharp": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.EFCore.SqlServer": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.EFCore.Sqlite": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.SqlServer": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Persistence.Sqlite": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Targets": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Imaging.ImageSharp": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.EFCore.SqlServer": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.EFCore.Sqlite": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.SqlServer": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Persistence.Sqlite": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Targets": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Api.Common": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "9ZR6Q8MWB27RM81ebhDotnSypZZCQf95xl2GyiLwjsNv/Fbj0MZ9StiwksuTgE77qcKWJxZRT8V9HAwhU+ik8g==", + "resolved": "13.3.1", + "contentHash": "8ghxJ2D1YQ/ebQGj6PaxMXRQyQvit/plvvDzpTSP7xa11xTnu/gucPcxim+pz69bAbUQSeC3bYey1mPbJ1vbvQ==", "dependencies": { "OpenIddict.Abstractions": "4.10.1", "OpenIddict.AspNetCore": "4.10.1", "Swashbuckle.AspNetCore": "6.5.0", - "Umbraco.Cms.Core": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Core": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Api.Delivery": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "yJ+tU4Zy5uvAXaH8n6es//j+aSl0tacFVEAiperZ91E03wsWjCWpn5OWsgH27324AGnjlXVIwb7iDT7XFfv4/w==", + "resolved": "13.3.1", + "contentHash": "HTG+y+MkDJ5pF75x01nAOMRNobP7K4d19Khu7poXMOEHGe5SGTbHkmx+GPI+XbWTMIsmcVjilQM50yGDxekWHw==", "dependencies": { - "Umbraco.Cms.Api.Common": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Api.Common": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "XQXR10zB+ZsVbTr+D81LvZAz/BEWEv8JFrKn93gUCaDgHY6IxhVFEgBprA3Yb3Tl5ucY1KHaF6oBCBVu+TJGFQ==", + "resolved": "13.3.1", + "contentHash": "kYufe55IBGv/K9RV8Ofv10gCaVvSdPNtFRT5Tq7EBCN0jvFZhmVA1vt/xAghkIod5ruPRTbakVRLJ3U1fC7Ymg==", "dependencies": { "Microsoft.Extensions.Caching.Abstractions": "8.0.0", "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", @@ -3143,28 +3151,28 @@ }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "r7LDrko8Zqz8+cbgV3/0vparP0J5owk8tFCHZEi8vpQ1avEMf9TPzhI16gsZn1llP6sMo2M8YNKfEOQlkKyuOw==", + "resolved": "13.3.1", + "contentHash": "2QNxHFMOY6zhypyQkXldnWq+Pq1DlBZ8MufjGFlJ+uw2OLQnoq+nu06kDDzjS2fIek3oPaR3mFafmXWu9AKn+Q==", "dependencies": { "Examine": "3.2.0", "System.Security.Cryptography.Xml": "8.0.0", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Imaging.ImageSharp": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "lVav/63oZZcE+JgwrBExh+H1nZGrPxf+Fk2d6pYgzoCuIlIMMlOJOMvijDyAL2am23gZ98+QdFcHJKHesI85PQ==", + "resolved": "13.3.1", + "contentHash": "AlwjcmBjx8eHXDKkF/gj4ENpZZQ0Iyqtug61pRYcCph2y8iFZTNgsXM3fMbaMoO/M47C0EwFuNzQseA6EhI9Qg==", "dependencies": { "SixLabors.ImageSharp": "3.1.3", "SixLabors.ImageSharp.Web": "3.1.0", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "hVFlrlrgWlkSqTLXHlu909YH7+TSNVxtpVo5w0tVVhv5xsJSMP1vUO4DJiUcvCjro/br1E42XFtCWv3moNiYuA==", + "resolved": "13.3.1", + "contentHash": "5hFXMoiZuZ/499stwiZUxDcEd3xyy4K1VLSHswSCv4UAem7d37gVRNJtsod4m+Vs5iwkzdadnTarDaGiHlZxBQ==", "dependencies": { "Examine.Core": "3.2.0", "HtmlAgilityPack": "1.11.57", @@ -3191,105 +3199,105 @@ "Serilog.Sinks.Async": "1.5.0", "Serilog.Sinks.File": "5.0.0", "Serilog.Sinks.Map": "1.0.2", - "Umbraco.Cms.Core": "[13.3.0, 14.0.0)", + "Umbraco.Cms.Core": "[13.3.1, 14.0.0)", "ncrontab": "3.3.3" } }, "Umbraco.Cms.Persistence.EFCore": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "fULOywlosrY9Sw2bxiEV/ZBKDoV4eB1LBXqKbqymt+1sdhbpPDhwvdvnU7ax41McasET2FEd0azezhGFgGshZA==", + "resolved": "13.3.1", + "contentHash": "nee8j+Y927yWlGYtc5bxa8GrM2wqdOcMa9bbtqix3xv+nbU9ZrIY+RijDxHgwG/KZpLc1jMsnJH11F5sizKuQA==", "dependencies": { "Azure.Identity": "1.10.4", "Microsoft.EntityFrameworkCore.SqlServer": "8.0.1", "Microsoft.EntityFrameworkCore.Sqlite": "8.0.1", "OpenIddict.EntityFrameworkCore": "4.10.1", - "Umbraco.Cms.Core": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Core": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.EFCore.Sqlite": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "jp5gLiCYmn8R1hgXiqiYAvjsY2MHARXTlVVIqiMtSyxPjDhRUn1cy/PPvI2UK8qH7d3ZhBMeLYv727LSwCZVSA==", + "resolved": "13.3.1", + "contentHash": "IqFFXYN7VxTUg8+XaOtfz1E30ht/xeIFnwoh57Av5gfWIlMqiqMVn8TOVijRMefjGlK0ZSxjrj0JJH6pW+vGnw==", "dependencies": { "Microsoft.EntityFrameworkCore.Sqlite": "8.0.1", - "Umbraco.Cms.Persistence.EFCore": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Persistence.EFCore": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.EFCore.SqlServer": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "cfnL8xLpwoVI/VcpfT+6fwRT+0k32yEXdzb6J0QNd0M3YoehOTxvjx0469yp6O+RUD3pVheJz74KMMgrl+oopw==", + "resolved": "13.3.1", + "contentHash": "6E+Z5jdMazCWvuEYHQIH9TqdR+/7sxr8EWDYNbQ//k2Zq7X/H7LR0XQ26PNTdfXcHVkpk7zZoNSv7Hk/jA9zyw==", "dependencies": { "Azure.Identity": "1.10.4", "Microsoft.EntityFrameworkCore.SqlServer": "8.0.1", - "Umbraco.Cms.Persistence.EFCore": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Persistence.EFCore": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.Sqlite": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "VN6FQ+9C2Q13O7zNWuhMRiEWhv4hLuENrN3w3DUorzaSjdfb3OPOPx0G0SYSrFDCvB9XRcHFeBQrMg0d3meP8A==", + "resolved": "13.3.1", + "contentHash": "xjdLaO/s0d/NW1W6n8Anq0GuylDr1odgsgPb3L8HQEnHNPT8i1gazlQ4ciMLRnH67CJhO2iu46H9HPieesZxcg==", "dependencies": { "Microsoft.Data.Sqlite": "8.0.1", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Persistence.SqlServer": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "aYMpEv2VeAQWTLzqwnZKvWkmbTfcCnRfZRdiLMNlwoFus3KHeQtzmqzloFVT6iJ6VfXeigAvZQ7yD+t12PqhaQ==", + "resolved": "13.3.1", + "contentHash": "eSVCtZIdFcQmM5s+YWEqxHKkIazGtXOb5oLD+VSs/lHfpYVAFbT2V4Mgjpw0xhesIbnXQudFkGaM0meb0duVIQ==", "dependencies": { "Azure.Identity": "1.10.4", "NPoco.SqlServer": "5.7.1", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "BD1yfAfp+sAilBiFS3IcougfKJgQFsVNsLbxlq+8oQdvhr7oKNrQIsqU0b4pXRIx4AiI4EPayYIbEQluPb5o2g==", + "resolved": "13.3.1", + "contentHash": "RjyD6EknrlvVC7DMaIGvm2UiVYUkdWDc/VaSTwkHRsThMqN0iLQULbQTnMrpxK6LRuyjoHHypk4qmI1pRM4aig==", "dependencies": { "K4os.Compression.LZ4": "1.3.6", "MessagePack": "2.5.140", "Newtonsoft.Json": "13.0.3", "Umbraco.CSharpTest.Net.Collections": "15.0.0", - "Umbraco.Cms.Infrastructure": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Infrastructure": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.StaticAssets": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "nZORh5JrDMLO1r6V8t/0qGbgSK5qpBS07aYbF9DDLiwChHkQt5OF62S8B55VY6vwUXRSD0/cl/hM0isLSeyikA==", + "resolved": "13.3.1", + "contentHash": "FM9ciQCZX1W9Ri30nSYOssv5ooPc/rsFLgr0vh/xw1uBsvqQec3vKO0MXuVMUXGApsPVWu0DqAjbFrxMlQ7YuQ==", "dependencies": { - "Umbraco.Cms.Web.BackOffice": "[13.3.0, 14.0.0)", - "Umbraco.Cms.Web.Website": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.BackOffice": "[13.3.1, 14.0.0)", + "Umbraco.Cms.Web.Website": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Targets": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "iWc9L7t8N1VmikmjO0swHln0caXtyZ2Aec1hN3hIL50fk8p0b/c4k3Dn/p7OKu18V3nx9b7S+JtEJw03LYg5Qw==", + "resolved": "13.3.1", + "contentHash": "YKPx6fqbea+pxQKFKp7sbC8uiddJzKKv66+L/Ke3CvJMqdOr2IclviLknobO4TPuRNW3lCs+vvkqCTvHEL3Beg==", "dependencies": { - "Umbraco.Cms.Api.Delivery": "[13.3.0, 14.0.0)", - "Umbraco.Cms.StaticAssets": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Api.Delivery": "[13.3.1, 14.0.0)", + "Umbraco.Cms.StaticAssets": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Web.BackOffice": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "YQ5KcO7oPruBAvKjMxqddlg59X7aJ6JmZAFAns0KrcAfm6H27FswvccZErjYPm2dgiwazHjzHuGbBbPA2hA98A==", + "resolved": "13.3.1", + "contentHash": "iJRUHNfFf9pQ8oMbswIUZ6QLywLGakMlU86Px5b4qRJXlzHH5oJN/e624nGw8z8Gd698u965G6wiejBqJ3FoVw==", "dependencies": { "Newtonsoft.Json": "13.0.3", "Serilog.AspNetCore": "8.0.1", - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "Ix+cQIbP5Sfw8sraHwhdXWNTnqHX4ifMjkMooinXBwrRa8T3B8L0KePwg8Thb/TlikQTdyBJh10eXMkXbgxdIw==", + "resolved": "13.3.1", + "contentHash": "/406cV3L4BtC0Jv4v9hqaZmRG3FWGz6Czc6bAdiOK0wDtOQ0qQIu7fiE0k9+ZMpi0mXnwOdpuTyofxZFv2mzCw==", "dependencies": { "Asp.Versioning.Mvc": "7.1.1", "Asp.Versioning.Mvc.ApiExplorer": "7.1.0", @@ -3302,16 +3310,16 @@ "Smidge.Nuglify": "4.3.0", "System.Net.Http": "4.3.4", "System.Text.RegularExpressions": "4.3.1", - "Umbraco.Cms.Examine.Lucene": "[13.3.0, 14.0.0)", - "Umbraco.Cms.PublishedCache.NuCache": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Examine.Lucene": "[13.3.1, 14.0.0)", + "Umbraco.Cms.PublishedCache.NuCache": "[13.3.1, 14.0.0)" } }, "Umbraco.Cms.Web.Website": { "type": "Transitive", - "resolved": "13.3.0", - "contentHash": "FoXc0Gn2/sqLsmw6ffYSMh+OYHCvsHJXTwB37cWzGKFDDD058o0nXBQU+8h9zpAzxchesASbcdNYMBf2BnqaBQ==", + "resolved": "13.3.1", + "contentHash": "5n6T73RwUcW8cfnQsUiam7VogtlZmxghurh7NPitqbPh9DA3ZrapkuEzc+lo2sUm5JUyAp4Y1H8q6ZwhT0/oEA==", "dependencies": { - "Umbraco.Cms.Web.Common": "[13.3.0, 14.0.0)" + "Umbraco.Cms.Web.Common": "[13.3.1, 14.0.0)" } }, "Umbraco.CSharpTest.Net.Collections": { @@ -3321,50 +3329,50 @@ }, "uSync": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "e5qHNnC1/ptDWBI8RbJTGcvbunAW8sq1INrYGckAsKYMDUj5IKGTcDrivCqAKMHOsEv6BchP+tjlW24Z8R+EYw==", + "resolved": "13.2.2", + "contentHash": "dmjgXstYmdzz0SBJR9jvd4WZ1bKZ4wQ2JEzFEUQXkZR4m4DdyILMbZ9SCNbkhHI1qsk4KoNTFkUGtbSeMIxmcA==", "dependencies": { - "uSync.BackOffice": "13.2.0", - "uSync.BackOffice.Assets": "13.2.0", - "uSync.History": "13.2.0" + "uSync.BackOffice": "13.2.2", + "uSync.BackOffice.Assets": "13.2.2", + "uSync.History": "13.2.2" } }, "uSync.BackOffice": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "dDV5VjviL6mjNjPIZNpxfVV0BtNv1BwrctSIffurQ2YrCfQGDsHV61UnN4b8FWcaYK4rzfAYgymxe3MZ1ASswg==", + "resolved": "13.2.2", + "contentHash": "qWezwe/OzlybHMUxFmO/1RP/t1G99315vK/qG52yAhdvkK7l3EEFWL9C90ZUCbwW4onAKq3zCNHwAjXHzNNxAg==", "dependencies": { - "uSync.Community.Contrib": "13.2.0", - "uSync.Core": "13.2.0" + "uSync.Community.Contrib": "13.2.2", + "uSync.Core": "13.2.2" } }, "uSync.BackOffice.Assets": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "1R8U6WswAW5gt9S5DDNkaMxEd7PZESTKxi/AkWn/lBO/xhyj0ydyobHUMcJnJs1ypSjZ1A5DGeAPXn0sJ9EknQ==", + "resolved": "13.2.2", + "contentHash": "JS2sRBN2ocxGvbOjJmCSEnb3+v7KMd/ALfwoxG3UEmBf81kXN6g+hYjVuY52tzDMHWwXYTC5rdO13OIvA8/d7g==", "dependencies": { "Microsoft.AspNetCore.Components.Web": "8.0.0", - "uSync.BackOffice": "13.2.0", - "uSync.BackOffice.Targets": "13.2.0" + "uSync.BackOffice": "13.2.2", + "uSync.BackOffice.Targets": "13.2.2" } }, "uSync.BackOffice.Targets": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "VxxOpeO4EbBdx7SfevpBYIg8d18hpdxTZPKYcN6cS0LI1FBoMLLQiUZ29kH9lyZ/g/d8y+HhMvOJOmXNBZXGUw==" + "resolved": "13.2.2", + "contentHash": "5gVr9GcYjFPiqMfmgo9eZH1tEAe54J8EEPWSt7lbBf6+ZMyxQ2LGfRP97/w/imC+I44P0b4jUp2gSUWLU91Czw==" }, "uSync.Community.Contrib": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "yCmPZu/dcRU7x+4R6CCTtNlkGG0YWegDOCjZ9laAiald5/iYLOlLLBtJJYT44rpTMf63oQ6ZvVhEu6yIA331oQ==", + "resolved": "13.2.2", + "contentHash": "6C989dy5PW221d8XMRWRjzy1VfugAKbpaBqLCvbxUZtKDoyh0rXVg4DByEA/f9hRU1w5ONfl/xt45A/UjnGvCA==", "dependencies": { - "uSync.Core": "13.2.0" + "uSync.Core": "13.2.2" } }, "uSync.Core": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "ouRjrM5aBIGxuqXKUoKK77TDiANjBqtyN1ZBeia2aouM4KccucdlMfG3rQtf4FvZUxheOf2iDBcLFaXl5LKqsw==", + "resolved": "13.2.2", + "contentHash": "I1F/d8u5fymIcbFm43HNR3kT1kxqv2ycZUlRGMceYRXgWd0ZTYqIvHsm6P2cN47VwgcJ8bSHpXAW3Niy/VFtmw==", "dependencies": { "Umbraco.Cms.Web.BackOffice": "13.0.0", "Umbraco.Cms.Web.Website": "13.0.0" @@ -3372,10 +3380,10 @@ }, "uSync.History": { "type": "Transitive", - "resolved": "13.2.0", - "contentHash": "Gwpg6wfMIrIUua5Y8Ksb9KmrslMJscFE8gBcwvRcCcvOolbwoGihqcQLBOsCV17Vffkwva4an5TonWM36K/2Sw==", + "resolved": "13.2.2", + "contentHash": "MdcBZ5ABvmcJ2T06gcIkIn1RlPlagMGjWnGU0wd4NUp2MB7qsjJWBKmnlTp5P3MbsBTaqlPVRHnIAd3qaRlr0A==", "dependencies": { - "uSync.BackOffice": "13.2.0" + "uSync.BackOffice": "13.2.2" } }, "xunit.abstractions": { @@ -3385,43 +3393,43 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.12.0", - "contentHash": "w23LH3aXade2WXKvXi0oA/uV15fpgUMjsPq1x91iQckzgWApgAiijNHmfFQtqNPm41wfrdbRl7nSJRd0yux/dw==" + "resolved": "1.13.0", + "contentHash": "Pai9YnDV71/Ox14nBHB6/f62iyPyLbmUG/YYMiA4dfdFZvr0gIYE9yGxSr0i5Tr3INK75wgL2MCUNEKpeiZ2Fw==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "JqvXS4yX+PtJn5BuqoKkYav7I0g4nXcxRbGTomDwVQjFccOdyfYKpuPOHX/DqrPCcL+MIHrGVdP3bveUXlvdnA==" + "resolved": "2.8.0", + "contentHash": "lwf7Dy5/5HbDkaPx1YrGXCByytCEEcIn+KPI74jh2BD/RU/7RhO8c+S3k0Ph+Mr7+cLf338fl+o6UcgPCLa6PA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "hcODgS+RXdjmXq0zQzmRbERQgY+bAGGx1bdH3370t/8CTGmIEU2qAc1dQAjIRpARsacR0cj6LLJDUF5BNQNKTQ==", + "resolved": "2.8.0", + "contentHash": "McSTFGTETCxLpmJKE9TWi9FtFthrRbpRrjz2V2g8sK2wRt1+JHs15vwi+B+nfftFkV9aFWIXZfzZM95TIGZNIA==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]", - "xunit.extensibility.execution": "[2.7.1]" + "xunit.extensibility.core": "[2.8.0]", + "xunit.extensibility.execution": "[2.8.0]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "yLX4XlBFkvNYCzf+DEzlNk45KsSlu9W93IJHBmtUP96qZ9XyRYDFlwMj6BCcOhDKVNrZxSM8bqu4F/Qud4ehxA==", + "resolved": "2.8.0", + "contentHash": "eBJv9xQeY0p5z+C/L1tFjUFYqtl5pQqIEYCGTMl+MbRzA7sOlgYKwJE//vEePBp+mgBh7NjD0Qhz0liZBYM27w==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "ei3dKF8agj4UKkJ6KkaZ5/Gcif3if6hBsyzegIQJonZDSKZFvb0AyKtyOhDfggBaXVL5iXZExITdRkfjC95yhw==", + "resolved": "2.8.0", + "contentHash": "TyyrZesHB9ODZMS9c73OqiBz4x0vL944JCkSPBWW5w6PF2LlUfdfXRjjOhoIOuY6lTmEgl07rS4/Jot9mCYnpg==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]" + "xunit.extensibility.core": "[2.8.0]" } }, "Yarp.ReverseProxy": { "type": "Transitive", - "resolved": "2.0.1", - "contentHash": "op7vBwONPFeR1PYxeLw+RLqSodODDX8RWd0OinLGMVIq6yi1q9mv1j56ImuyZgiAToksiC0Dc7jbRUZ9I+jvFA==", + "resolved": "2.1.0", + "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==", "dependencies": { "System.IO.Hashing": "7.0.0" } @@ -3429,11 +3437,12 @@ "nikcio.uheadless": { "type": "Project", "dependencies": { - "HotChocolate.AspNetCore": "[13.9.0, )", - "HotChocolate.AspNetCore.Authorization": "[13.9.0, )", + "HotChocolate.AspNetCore": "[13.9.4, )", + "HotChocolate.AspNetCore.Authorization": "[13.9.4, )", + "Microsoft.AspNetCore.Authentication.JwtBearer": "[8.0.5, )", "Microsoft.Extensions.DependencyInjection.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", - "Umbraco.Cms.Web.Common": "[11.0.0, )" + "Umbraco.Cms.Web.Common": "[13.0.0, )" } }, "nikcio.uheadless.integrationtests.testproject": { @@ -3441,8 +3450,8 @@ "dependencies": { "Microsoft.ICU.ICU4C.Runtime": "[72.1.0.3, )", "Nikcio.UHeadless": "[5.0.0, )", - "Umbraco.Cms": "[13.3.0, )", - "usync": "[13.2.0, )" + "Umbraco.Cms": "[13.3.1, )", + "usync": "[13.2.2, )" } } } diff --git a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockGrid/Models/BasicBlockGridItem.cs b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockGrid/Models/BasicBlockGridItem.cs index 95da059c..594e6464 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockGrid/Models/BasicBlockGridItem.cs +++ b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockGrid/Models/BasicBlockGridItem.cs @@ -73,10 +73,10 @@ protected BasicBlockGridItem(Umbraco.Cms.Core.Models.Blocks.BlockGridItem blockG /// [GraphQLDescription("Gets the content properties of the block grid item.")] [Obsolete("Transition to typed properties instead using the Defaults.Properties.BlockGridItem model.")] - public new List ContentProperties { get; set; } = new(); + public new List ContentProperties { get; set; } = []; /// [GraphQLDescription("Gets the setting properties of the block grid item.")] [Obsolete("Transition to typed properties instead using the Defaults.Properties.BlockGridItem model.")] - public new List SettingsProperties { get; set; } = new(); + public new List SettingsProperties { get; set; } = []; } diff --git a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockList/Models/BasicBlockListItem.cs b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockList/Models/BasicBlockListItem.cs index 04d38952..e7ba65a6 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockList/Models/BasicBlockListItem.cs +++ b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/BlockList/Models/BasicBlockListItem.cs @@ -55,10 +55,10 @@ public BasicBlockListItem(Umbraco.Cms.Core.Models.Blocks.BlockListItem blockList /// [GraphQLDescription("Gets the content properties of the block list item.")] [Obsolete("Transition to typed properties instead using the Defaults.Properties.BlockListItem model.")] - public new List ContentProperties { get; set; } = new(); + public new List ContentProperties { get; set; } = []; /// [GraphQLDescription("Gets the setting properties of the block list item.")] [Obsolete("Transition to typed properties instead using the Defaults.Properties.BlockListItem model.")] - public new List SettingsProperties { get; set; } = new(); + public new List SettingsProperties { get; set; } = []; } diff --git a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/MemberPicker/Models/BasicMemberPickerItem.cs b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/MemberPicker/Models/BasicMemberPickerItem.cs index a0571a58..02387e28 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/MemberPicker/Models/BasicMemberPickerItem.cs +++ b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/MemberPicker/Models/BasicMemberPickerItem.cs @@ -50,5 +50,5 @@ public BasicMemberPickerItem(IPublishedContent publishedContent, IResolverContex /// [GraphQLDescription("Gets the properties of a member.")] [Obsolete("Transition to typed properties instead using the Defaults.Properties.MemberPickerItem model.")] - public new List Properties { get; set; } = new(); + public new List Properties { get; set; } = []; } diff --git a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/NestedContent/Models/BasicNestedContentElement.cs b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/NestedContent/Models/BasicNestedContentElement.cs index 8d5dd90f..4cfb66e3 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/NestedContent/Models/BasicNestedContentElement.cs +++ b/src/Nikcio.UHeadless.LegacyModels/Base/Basics/EditorsValues/NestedContent/Models/BasicNestedContentElement.cs @@ -54,5 +54,5 @@ public BasicNestedContentElement(IPublishedElement publishedElement, IResolverCo /// [GraphQLDescription("Gets the properties of the nested content.")] [Obsolete("Transition to using typed properties by using the Defaults.Properties.NestedContentItem.")] - public new List Properties { get; set; } = new(); + public new List Properties { get; set; } = []; } diff --git a/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyFactory.cs b/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyFactory.cs index 7d69c1b9..393c2a1d 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyFactory.cs +++ b/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyFactory.cs @@ -33,7 +33,7 @@ public PropertyFactory(IDependencyReflectorFactory dependencyReflectorFactory, I { var createPropertyCommand = new CreateProperty(property, culture, publishedContent, segment, publishedValueFallback, fallback); - IProperty? createdProperty = dependencyReflectorFactory.GetReflectedType(typeof(TProperty), new object[] { createPropertyCommand }); + IProperty? createdProperty = dependencyReflectorFactory.GetReflectedType(typeof(TProperty), [createPropertyCommand]); return createdProperty == null ? default : (TProperty) createdProperty; } diff --git a/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyValueFactory.cs b/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyValueFactory.cs index 866c34e7..29f9169f 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyValueFactory.cs +++ b/src/Nikcio.UHeadless.LegacyModels/Base/Properties/Factories/PropertyValueFactory.cs @@ -44,6 +44,6 @@ public PropertyValueFactory(IPropertyMap propertyMapper, IDependencyReflectorFac return null; } - return dependencyReflectorFactory.GetReflectedType(type, new object[] { createPropertyValue }); + return dependencyReflectorFactory.GetReflectedType(type, [createPropertyValue]); } } diff --git a/src/Nikcio.UHeadless.LegacyModels/Nikcio.UHeadless.LegacyModels.csproj b/src/Nikcio.UHeadless.LegacyModels/Nikcio.UHeadless.LegacyModels.csproj index 8dd348a0..ea6c99c3 100644 --- a/src/Nikcio.UHeadless.LegacyModels/Nikcio.UHeadless.LegacyModels.csproj +++ b/src/Nikcio.UHeadless.LegacyModels/Nikcio.UHeadless.LegacyModels.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 Nikcio.UHeadless diff --git a/src/Nikcio.UHeadless.LegacyModels/packages.lock.json b/src/Nikcio.UHeadless.LegacyModels/packages.lock.json index 5160c709..287a2052 100644 --- a/src/Nikcio.UHeadless.LegacyModels/packages.lock.json +++ b/src/Nikcio.UHeadless.LegacyModels/packages.lock.json @@ -1,25 +1,57 @@ { "version": 1, "dependencies": { - "net7.0": { + "net8.0": { "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Direct", - "requested": "[17.9.28, )", - "resolved": "17.9.28", - "contentHash": "hNfIadilgBXbAOmV7LCdPSmLsUILA3QZhR4Wu9VbFDaHjtU3dCFRfJMbk45galt1pfffz4yI5qT9oUJl+F8mNQ==" + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Asp.Versioning.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "yujGpbGBCViHvYiBJD0S5XFgOI+f5bGvi8tnfMJV6EC0b8SAqBn1YC+yCnJjQo3D2XP9TmSuKIJ7ofVy58GcuQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Asp.Versioning.Http": { + "type": "Transitive", + "resolved": "7.1.0", + "contentHash": "Q1gPDssnFLeS3Avw/JABPzis4pjrG372RpFnB/9zp61hSuSf+Y+1O9twicNHDsmeWMkb/oNQo3vHgLr16jTdNw==", + "dependencies": { + "Asp.Versioning.Abstractions": "7.0.0" + } + }, + "Asp.Versioning.Mvc": { + "type": "Transitive", + "resolved": "7.1.1", + "contentHash": "hnTDqNwUlawVTDtHu8EhWvEGe6U5K83NJ3Aqf2Tz2mWq5qndzvcGKPGyfv2LTHfSK5h/Qv/ru+ssr/u5GSzjFQ==", + "dependencies": { + "Asp.Versioning.Http": "7.1.0" + } + }, + "Asp.Versioning.Mvc.ApiExplorer": { + "type": "Transitive", + "resolved": "7.1.0", + "contentHash": "SEqEAeOXH4bP5g5IzdRarmNCrUxbk4pu10zxu57hgnHop7mXikwoDshE1cI4ZcxN7soKLGw2qOgLjJTIim5fiw==", + "dependencies": { + "Asp.Versioning.Mvc": "7.1.0" + } }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "13.0.0", - "contentHash": "6Zj/vfmnCXLjBG7WNdtOgZZ5ZDR3Sy1FQSshZUonIYs3OdzozmsFmqPXMd9XJ0QE9aAildgVGq/lDLpLrMI4Yw==", + "resolved": "16.0.1", + "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", "dependencies": { - "Yarp.ReverseProxy": "2.0.1" + "Yarp.ReverseProxy": "2.1.0" } }, - "CSharpTest.Net.Collections-NetStd2": { + "BouncyCastle.Cryptography": { "type": "Transitive", - "resolved": "14.906.1403.1084", - "contentHash": "g3QSH0PMiO+f2C6Za+uUvcdihnVs5IFbZ2cnKjCYA19l8en3fVe/Jl0qQS2te1xJzEOrY4ccen5/MY/QVoamcQ==" + "resolved": "2.2.1", + "contentHash": "A6Zr52zVqJKt18ZBsTnX0qhG0kwIQftVAjLmszmkiR/trSp8H+xj1gUOzk7XHwaKgyREMSV1v9XaKrBUeIOdvQ==" }, "Dazinator.Extensions.FileProviders": { "type": "Transitive", @@ -40,19 +72,19 @@ }, "Examine": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "eIlGLnVgD5oWKHaK3ajQqcvYceSuRWWdXgbqp23Q61zgD61QvKFD00ZBqRL/F6pv1v1E90lOVuRl3Oya3wXIyA==", + "resolved": "3.1.0", + "contentHash": "PKr/jlHuNGSfuRemNdeJa56+nqLYYwgvU7cVrVJyG9wrUekaN1eyEYaWgG9SQLhGryoFKi7WBXuoAnKv2//Keg==", "dependencies": { - "Examine.Core": "3.0.1", - "Examine.Lucene": "3.0.1", + "Examine.Core": "3.1.0", + "Examine.Lucene": "3.1.0", "Microsoft.AspNetCore.DataProtection": "5.0.5", "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0" } }, "Examine.Core": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "7QMWHfcXbkSFBwfFq+oobp3M6tSDYjeU/DuY+dOohyDxEPJ5sOPQae2Qll+YLN5xxtX1/j7okkiVUynP6Upnnw==", + "resolved": "3.1.0", + "contentHash": "AIaDNKPP4fCw1fDHqnn2IzcrXwEozJvWGg/cvyNN4+SgYWlnyk8W0rvVwOa066UVPsrUH/WnpfTKWV+crnAHmA==", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "5.0.0", "Microsoft.Extensions.Options": "5.0.0" @@ -60,10 +92,10 @@ }, "Examine.Lucene": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "+3IOPaJBypQgH8xejB2B4jOMioET/7pdxVqwBNFXN5Z+GG1d8lG4zs4s64CGlbOYGYyqnqkCNfm+FNUK44iQYw==", + "resolved": "3.1.0", + "contentHash": "4vdhdqwhA/thL57nuYqT5vr1T/CN5eNeQ65JcgI1BqknJSnOQe63C3MWCCXfPK/Lno95zMCLx71cbWEwo6Geuw==", "dependencies": { - "Examine.Core": "3.0.1", + "Examine.Core": "3.1.0", "Lucene.Net.QueryParser": "4.8.0-beta00016", "Lucene.Net.Replicator": "4.8.0-beta00016", "System.Threading": "4.3.0", @@ -72,259 +104,254 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "T8ZYTsm0S48hi89d2symCvUEJoBkg5F+rfU+HFtkEOc7WLZsIBDStnfF3c890Vxjmx/P1tFpY5StDNTM+C6fIw==", + "resolved": "13.9.4", + "contentHash": "jkD4OWSR2CmdfyrO55/m/s2onSaAar/XpCMYQGo1y+qjcaEq93cgc8HL/i8hRdV4mVgfpW60DELREYZrBaiZSw==", "dependencies": { - "Microsoft.Extensions.ObjectPool": "7.0.0", - "System.Diagnostics.DiagnosticSource": "7.0.0", + "Microsoft.Extensions.ObjectPool": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", "System.Threading.Tasks.Extensions": "4.5.0" } }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "aGBAW6d9Oj1MfmKJF482yYdJ8G87yJ0rVFxU9l7lA1dg1xjc5XALLQO9jCPz4GCpQLetuAhHdkZ713imJ6WCPw==", + "resolved": "13.9.4", + "contentHash": "4tXT2Y6U3p1h1egdS3K2qu2re0QmxJH+2thYhKfDDXZaErfod6H1NVHZIBOTw4nFdgzpL8FiFUQuvzekEsNYmA==", "dependencies": { - "HotChocolate.Authorization": "13.9.0", - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Types.CursorPagination": "13.9.0", - "HotChocolate.Types.Mutations": "13.9.0", - "HotChocolate.Types.OffsetPagination": "13.9.0", - "HotChocolate.Validation": "13.9.0" + "HotChocolate.Authorization": "13.9.4", + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4", + "HotChocolate.Types.Mutations": "13.9.4", + "HotChocolate.Types.OffsetPagination": "13.9.4", + "HotChocolate.Validation": "13.9.4" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "mb3IPL8V4NRL2FUefZP20fSwIMOnE7uCMLiM4d5Y5cjljYaMUVzUJnvdW9C1tUfbodP49Llk9WnBCR6S9fr8mQ==", + "resolved": "13.9.4", + "contentHash": "82LweGM6vtF4Wc8NmbnNwZE8PeDOWHuY9oIR8zdi/O9XayaAFy2B5bIE5QFszlqTlaiRLW9y8NpCXQkAe0mVHQ==", "dependencies": { - "HotChocolate.Language": "13.9.0", - "System.Collections.Immutable": "7.0.0" + "HotChocolate.Language": "13.9.4", + "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.AspNetCore": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "RnxUdKEYOmsjzNPss473CYOug/9GIt8qlS9j8HxtZrW5TASM/9S7pDb7FthcDj4ag/D7wAwme3YxsqxH+iw5Bg==", + "resolved": "13.9.4", + "contentHash": "kW32o45UlqThLmS8rsukZjKUX2g3zNM8LhQmcS2AnFdCcCg4zWFhlR1UW1BEBv6QLsldaxJVEw5kuvwuLXSIGw==", "dependencies": { - "BananaCakePop.Middleware": "13.0.0", - "HotChocolate": "13.9.0", - "HotChocolate.Subscriptions.InMemory": "13.9.0", - "HotChocolate.Transport.Sockets": "13.9.0", - "HotChocolate.Types.Scalars.Upload": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0" + "BananaCakePop.Middleware": "16.0.1", + "HotChocolate": "13.9.4", + "HotChocolate.Subscriptions.InMemory": "13.9.4", + "HotChocolate.Transport.Sockets": "13.9.4", + "HotChocolate.Types.Scalars.Upload": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4" } }, "HotChocolate.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "z5eLUN9Uai7qLuyq6bwH6UrjYhd38f0tB9WRPjezY+/2Y8Fw2UVk2hz5FAKCr/jWC18njqTNuNateJ95IvwC6Q==", + "resolved": "13.9.4", + "contentHash": "zzxciNLZU1RVRprhiwlClyPSwdxr8G7AvQblZ9rt9EJM7fPgNFbNE9byNHN3tg7m5wEkwhsiE5ClIPH0DZGqFQ==", "dependencies": { - "HotChocolate": "13.9.0" + "HotChocolate": "13.9.4" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6CPA39zObNuMUmkmQ6J3zqmalukhjCiJS/klSEDPpwTtrn9HS/3edsh/7oiKzmUh6PNVKGed0lwkSdDP+DGZDQ==", + "resolved": "13.9.4", + "contentHash": "sU8nUTOHYwEAaZCnneMCzJs/rG+OtBme1cy+DaT3qxq9Oe6kD/kF1q1jRJjSa1juG/anOcmlu9haZZT0hotZ+g==", "dependencies": { - "HotChocolate.Execution": "13.9.0" + "HotChocolate.Execution": "13.9.4" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "zO1aG5qx5lzbZu/iKR56g+zeOgCCCa5pICwxijd1qEap+7J5q0YsME9RByw8wYPH+tNsXCvDcKaeAEcashB4cg==", + "resolved": "13.9.4", + "contentHash": "0CsRwTnG3T6nCpgXK/LI2/yn1vvHPIVDZ/NiRz01JCb4tBzsh6v1yGgT8siRhPaoBHlfryUiTbc/Rv1pp9drvw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0", - "HotChocolate.Validation": "13.9.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "System.Threading.Channels": "7.0.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4", + "HotChocolate.Validation": "13.9.4", + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "flySLPDyTtM4051tI3mh5Ue0fGrKFDuW3w0ebWmW2qjfuF4jgQzd3pK3ZxfkxAfpxQXyPaVn/Q7fae+fYQxeCg==", + "resolved": "13.9.4", + "contentHash": "hEIfNnbcsUtjXQSn37IL6LbN+iKUNcBt+4+hdb5EY2NUEmvZDwawsuNXzX/9UeE138xB/zdTkJu6p10cP6oHGQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "HotChocolate.Abstractions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "pIw7VlEABejQGLRnJGnO7iPdT40AHklf0psJp5zNXrq0IX+Vq7hRRqON73nubZv5Ofhh8fV3kugqYFKvzcptoA==", + "resolved": "13.9.4", + "contentHash": "3eh6WCocFbJ1Dtcg1oHmpNKcytwI/ZANQUv3mpsRtTT13wE7yXbzPXrZlBcWPFYv0NeJQ2v0kk4wAmRdYxyaYg==", "dependencies": { - "GreenDonut": "13.9.0", - "HotChocolate.Types": "13.9.0" + "GreenDonut": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "M8q0XHQm8Gtab+wKgYXfVPxScjdDE+INify5yaj6g1ZDkV3sLIeX+muu1WebrNO3DgmuAi6o3aW770Ucw7k/dw==", + "resolved": "13.9.4", + "contentHash": "ez1eHzpSz7+Fn+aqG62h6kKaOfktmMwUjaT9M5NWS5LqC81n/8HG4lr8UmbGywbEU9optCWo5GfICNpQItAHaw==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0", - "HotChocolate.Language.Utf8": "13.9.0", - "HotChocolate.Language.Visitors": "13.9.0", - "HotChocolate.Language.Web": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4", + "HotChocolate.Language.Utf8": "13.9.4", + "HotChocolate.Language.Visitors": "13.9.4", + "HotChocolate.Language.Web": "13.9.4" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "+vwrQ0qOiKn/yUBHn53030hQmqj45C1g0WI8sip50CPnkgs3bAPnDInUvrR3IiHbRn5spAonO4tFPtMDdJrEMA==", + "resolved": "13.9.4", + "contentHash": "mPfX23AflbB8nhvC3hAYn93r940UHwRmhZ5jXQ3yTHZOYZhlgJypa+4I5KF/CnTFrB36tWmA3LgXnN3pJ/VMvA==", "dependencies": { - "Microsoft.Extensions.ObjectPool": "7.0.0" + "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "IEWNYGvtwejf7+j+Xci25FaYets2UD8wkfzQ5dUCW47c1rnTAyuRdTiO8T8x6LYuZ7+SLg7UTBYgjv4ybwAUgA==", + "resolved": "13.9.4", + "contentHash": "+4GYr3eFPY3b2OZjByHKyOKlpY+bUGnwk0S39RW3z4KRRgv5NkYjPdI+O2iaVbIWBoJXBnb7QlEQWIj64FbbqA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "j6mPBkfVo2fopWYLoczXCoog4PJ+KwbHItSgHfPfI1kDBcNcy9XY4oxth3Uau1uBbfHYIFjnuVc+FrGb1f9KAQ==", + "resolved": "13.9.4", + "contentHash": "yJjnKtNw1gnze50n0vrsod+dS1AK8iGIgEbm9aKvIyLIaSVSQnvx5sXhX21JzKEJV7SegnvVbQdf1zhjOwTlEQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "GI5ufbNVEoKygSC09owVnCvw1Ma2KzOtm1l6uen3wKshAdOKB4gmSVCjzf71pNL2Nt6cL4IHa70ClqjECmu9qg==", + "resolved": "13.9.4", + "contentHash": "aa4ybXm9DdTpjcLvT6FfTPBYTz5xvYsg96J8OaVS0LSKeACHNrBRoF5qP5/cD01UXwSgdr19HqAki1H5D6gRtw==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.0" + "HotChocolate.Language.Utf8": "13.9.4" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "P3ason65NwSzkB2W9myV/pRIm4IMIWXH3RPCtpHVKx22Xw3hRJRJhjLBQZ5LCk5v3+7kKhXNBTbFNpbMyvez3Q==", + "resolved": "13.9.4", + "contentHash": "DRU8lN9sMhqVBAa4p/W47pvclrS+SBSzO9sWYbwDiO6OE/B3SlYSDE+Tqy66YAfcNHqFnx/Cx+rd7Kcc06nllw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "rj5U1Cd2QsjNnSNNdlSopYLtXh0kTZ1NlA1B3v02YFtj4Zu9le6QkGsl3oUljUUq46vSkkrT9ISj+e5wTCcw/Q==", + "resolved": "13.9.4", + "contentHash": "EUOHzVtVbMWQOPjCWGGmYXvIUM4K5rAYbGk6yO+76T+nVefZw/NgVb1lOx9Ii3Eo+cVBwEliPaJte7vm+HSRlA==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Subscriptions": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Subscriptions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "4hPlhS2bgqT/tYCZfPtbGtPAaedULKgTbFKkTsjigrDhJcVxBA36Gr3yGM6S3NEw2JdIgiwugYV1log9zXkEjA==", + "resolved": "13.9.4", + "contentHash": "tzLIUlpoadoAwDyPNRjtvtx0soe+fLMO//7IE/d49QFj5J/FM6pTzTuvAo7JafsmC+UU5uRGykTKXup9xdtLeA==", "dependencies": { - "System.IO.Pipelines": "7.0.0" + "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "VGPZePNC4sBlz/iY4x90zIRxW62MWzWNcl2yjLS3JcW+0W8KuKxh99dFLxL0WY/+Eoe8PUecmoob+FrVEvPzpg==", + "resolved": "13.9.4", + "contentHash": "Q7XywadsAIm1hf1v+YBMOe1fbjQYAtL+NNlPk7hgumUYVz5iSY/9WYwomMZl80id0Q1aP63hzOoEDY90Em6TrQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Types.Shared": "13.9.0", - "HotChocolate.Utilities": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.ObjectPool": "7.0.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Types.Shared": "13.9.4", + "HotChocolate.Utilities": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", - "System.Text.Json": "7.0.0" + "System.Text.Json": "8.0.0" } }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2+w6tLrdjo+d/aIKyoNW1L/OH/p+FACMwGWHk1P4MwAspqaF7zjy71qTeNks+8QbRwG8uMleey/0sbr8sWpC6w==", + "resolved": "13.9.4", + "contentHash": "sm7ZghRSWQQrde5aa7VZhi/QhSbuzB7yS4jUd5/CB9AOX3WFKjJ3uitY7crWV9scLxcDgaaiAwglF7wWFvubhw==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "NX1zLkb7t19Om5RYubmkA6yRCtBbca454rqSGKSVBYjDrsiA6+4ZDvmS9Kjbw8F+cPm3VqShenrIIgfW8bzCXQ==", + "resolved": "13.9.4", + "contentHash": "pndQvOY8CnoefzKQNCNaJ++r1gf4JbvKC3c3lf6jimqEE/UJMlE935JXwZCGxnUSJ6Npb14sVoOWGM6Kl5myEA==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "LIAaSVRS6FJCssP+s4ooLajhQ1/QfES78twX4OgZFJ9/UZMxXlU3K/IWeB2aXcJNkehfIZLgoiROnouB7ATepw==", + "resolved": "13.9.4", + "contentHash": "J4o/p/HRFNQCsApy1LFlwITVHtGaUlLLhismyi5QRL7CTwC5Lk1or5KlPYufyYgbs9X3BkASlmpr9vGmg+6Ypg==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "hisB6PGGgsekz3a8YJwKgvbZHED98eph9+TMPg5A500tyvrZS00fbdpjRcN+rcTKAxhJ5evzHB2Fo1m62Dyo4w==", + "resolved": "13.9.4", + "contentHash": "AAZLF9M6h80uh3BZjhaAbS3kch0+bDmetdki7bdo5HYiYRN2tuTT1+YblhfBzoh7726mROOtYRvk7h4DQBLWHw==", "dependencies": { - "HotChocolate.Types": "13.9.0" + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2lhdbXU/GltPQWO9r8qePZSzDo9ryFs8Wv0aF7aQgEq3dLvwer6OpvnZhIYmGua6bXXebA1PzBAEaaxPpLx3Wg==", + "resolved": "13.9.4", + "contentHash": "GqaSuucguc1OBH6sg52C1RobCvry8Fzm69r2QSzTHzSJVLBXAC0HNthkVl3GpuWW3c221fM+Yh9UiFfKNaeJ3w==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6zqwjROYxtuzAYjh31JnYKgM/MySRWEq4DHO64oSPFRJQ8NDgg7EvUU771yLt/6T7kUh+S6k25hVnmUipFtEnQ==" + "resolved": "13.9.4", + "contentHash": "g0kRiYho/nxA/QRkBY9n9ZjDqPEby3A33coBvFvkkfXXYRLyFr1P6XE3ZRt3ob35AxbvnWmXYxM3aUZR5u1mfg==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "o1ijY8Rk0IUAo8QZYhfQ8s4/3z78JS9tyXGHzA963gkzTSJPehD4960CAmWlyC19FdE1i2KiTnYLhNOwNoL6+A==", + "resolved": "13.9.4", + "contentHash": "a4SeiruZOBatY4QOksJ8Zlux0vN6s1KW1ydjWPUCcdgANDkDae/+zsbPLNNxiDhkpYovDVQW7gRYkgWoZ8vGKg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "7.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "gC7/YfOcOOmT+zV/V45CubYhK3lZI7+SmNYLGXQ1ko4cwjVRh3PzSJMAaKw3naWDcbjXbEyWwdYc0dLuoVBNEA==", + "resolved": "13.9.4", + "contentHash": "G0xU8wTZegjCBeiFdlHAQ8+27e1LVDwucjwmULZq1NdbH8EQJQnvjYOvM4XYaIhdqNi8Kn9AvUT2FM5LcBFhiQ==", "dependencies": { - "HotChocolate.Types": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "HotChocolate.Types": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "HtmlAgilityPack": { "type": "Transitive", - "resolved": "1.11.46", - "contentHash": "dLMn4EVfJBHWmWK4Uh0XGD76FPLHI0qr2Tm0s1m/xmgiHb1JUb9zB8AzO8HtrkBBlMN6JfCUBYddhqC0hZNR+g==" - }, - "IPNetwork2": { - "type": "Transitive", - "resolved": "2.6.508", - "contentHash": "gbD4m/i7VtBUaoGil1XWHO7LdJuT51bWAqdktZtPAPNawKmJrnWLsBui8QMzwBmq2LxX+Vv9/ryUCd/R0sXkWA==" + "resolved": "1.11.54", + "contentHash": "bgB79N4urc4D7hrD4R+Qk6CjPiYOfs6vfXNsmw3nCcfQEQvBQGjfAcl5k/tB1ZP1hA0d7xXs0jK8xAXV36IVUg==" }, "J2N": { "type": "Transitive", @@ -333,8 +360,8 @@ }, "K4os.Compression.LZ4": { "type": "Transitive", - "resolved": "1.2.16", - "contentHash": "XLNQWNayxeMgd1gv0s6kZywM11kww7rTzu3nPGh8fQNblHGbFt79LC1Sk1/QQ8DIJb2Qfl2p+WlLIOWCSuyi8w==" + "resolved": "1.3.6", + "contentHash": "RxGhoJBjZCgGeZgDqOP4Krs1cR9PHInbz6d2N19Dic0Y6ZACzVKbR3uSpqfEZf4RiUbHk9aiog2eS22nQPTc2A==" }, "Lucene.Net": { "type": "Transitive", @@ -418,10 +445,10 @@ }, "MailKit": { "type": "Transitive", - "resolved": "3.4.2", - "contentHash": "BRt9YHSr5LtxUeKrsJfxuJ5t5jb+6a2dRWWZvxt/5Tm3Z+nKJ3HBvw7SaMq2ze9e2x0Izw0SS8Q7H31PxBaXSg==", + "resolved": "4.3.0", + "contentHash": "jVmB3Nr0JpqhyMiXOGWMin+QvRKpucGpSFBCav9dG6jEJPdBV+yp1RHVpKzxZPfT+0adaBuZlMFdbIciZo1EWA==", "dependencies": { - "MimeKit": "3.4.2" + "MimeKit": "4.3.0" } }, "Markdown": { @@ -436,29 +463,38 @@ }, "MessagePack": { "type": "Transitive", - "resolved": "2.4.59", - "contentHash": "bj1NsZu4SckIIHxZcLc3+S64MiDRm+YlQi9MDsA+dt6x/QNiELftDQ9VQ88n3sgRzaniMqgfzO9pHXGoxcsKCQ==", + "resolved": "2.5.140", + "contentHash": "nkIsgy8BkIfv40bSz9XZb4q//scI1PF3AYeB5X66nSlIhBIqbdpLz8Qk3gHvnjV3RZglQLO/ityK3eNfLii2NA==", "dependencies": { - "MessagePack.Annotations": "2.4.59", - "Microsoft.NET.StringTools": "17.4.0" + "MessagePack.Annotations": "2.5.140", + "Microsoft.NET.StringTools": "17.6.3", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "MessagePack.Annotations": { "type": "Transitive", - "resolved": "2.4.59", - "contentHash": "3I1OxkqjiL0QEHnEJCia5TOeQuqVpYmNbprdw9uyIRXniei01ElWTS7Qcte+ionHM0KYiPWYhXQFJIeYb5Hbrg==" + "resolved": "2.5.140", + "contentHash": "JE3vwluOrsJ4t3hnfXzIxJUh6lhx6M/KR8Sark/HOUw1DJ5UKu5JsAnnuaQngg6poFkRx1lzHSLTkxHNJO7+uQ==" + }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "type": "Transitive", + "resolved": "8.0.5", + "contentHash": "VqKkXLxsCVHNmSdUIuBtDSXL3OqX0yfDjcZxCcYD8VFNpTutl53BCFHzMb3wvw3asneHnURzC2R8VvIXn3l5Lw==", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + } }, "Microsoft.AspNetCore.Cryptography.Internal": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "hFF+HOqtiNrGtO5ZxLVAFo1ksDLQWf8IHEmGRmcF9azlUWvDLZp8+W8gDyLBcGcY5m3ugEvKy/ncElxO4d0NtQ==" + "resolved": "8.0.0", + "contentHash": "buuMMCTxFcVkOkEftb2OafYxrveNGre9KJF4Oi1DkR4rxIj6oLam7Wq3g0Fp9hNVpJteKEPiupsxYnPrD/oUGA==" }, "Microsoft.AspNetCore.Cryptography.KeyDerivation": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "rCQddWkUxGmObeftM0YVyFOPcXkXDEWKGCc4F1viRLEL4ojIbdKwbOYBSf5hfWDR+NO0aGq8r3a8COvNYN/bZA==", + "resolved": "8.0.0", + "contentHash": "65w93R5wqUUs35R9wjHHDf75GqAbxJsNByKZo5TbQOWSXcUbLWrDUWBQHv78iXIT0PL1pXNqKQz7OHiHMvo0/A==", "dependencies": { - "Microsoft.AspNetCore.Cryptography.Internal": "7.0.0" + "Microsoft.AspNetCore.Cryptography.Internal": "8.0.0" } }, "Microsoft.AspNetCore.DataProtection": { @@ -527,20 +563,20 @@ }, "Microsoft.AspNetCore.JsonPatch": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "svHQiUvLNdI2nac68WNQHNo/ZWyavFpt3Oip09QRnWeFqG9iyakKiNLavXr6KE8y7KxEXZNld96KQYbKz8SJMQ==", + "resolved": "8.0.0", + "contentHash": "klQdb/9+j0u8MDjoqHEgDCPz8GRhfsbRVvZIM3glFqjs8uY7S1hS9RvKZuz8o4dS9NsEpFp4Jccd8CQuIYHK0g==", "dependencies": { "Microsoft.CSharp": "4.7.0", - "Newtonsoft.Json": "13.0.1" + "Newtonsoft.Json": "13.0.3" } }, "Microsoft.AspNetCore.Mvc.NewtonsoftJson": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IJOsB1cm6FYGXxhlNoWR6zZYFREEBzeFX76NlBGhrZ7+VMK4piLm3fAgUBliasyEUg5MOOqFz5EGv8nmU5rXWQ==", + "resolved": "8.0.0", + "contentHash": "/e5+eBvY759xiZJO+y1lHi4VzXqbDzTJSyCtKpaj3Ko2JAFQjiCOJ0ZHk2i4g4HpoSdXmzEXQsjr6dUX9U0/JA==", "dependencies": { - "Microsoft.AspNetCore.JsonPatch": "7.0.0", - "Newtonsoft.Json": "13.0.1", + "Microsoft.AspNetCore.JsonPatch": "8.0.0", + "Newtonsoft.Json": "13.0.3", "Newtonsoft.Json.Bson": "1.0.2" } }, @@ -555,12 +591,12 @@ }, "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "pAFncd2+yMmA0Z7QcFhf6xh6OxRwF2bi6PbAfXNGHEebf2tnJ4HkevQUGZlH6yTCu61TpsdNXLVsEnjbbDoH6A==", + "resolved": "8.0.0", + "contentHash": "HyLDtyWwpavSEFBOL0qOdymY8f+VwN5QhhE7gj3wBw53j9EA0ZcYkbfTvkhvMeV9PavgCcMIe4sAsBGEE/YnNA==", "dependencies": { "Microsoft.AspNetCore.Mvc.Razor.Extensions": "6.0.0", "Microsoft.CodeAnalysis.Razor": "6.0.0", - "Microsoft.Extensions.DependencyModel": "7.0.0" + "Microsoft.Extensions.DependencyModel": "8.0.0" } }, "Microsoft.AspNetCore.Razor.Language": { @@ -570,29 +606,26 @@ }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", - "resolved": "3.3.2", - "contentHash": "7xt6zTlIEizUgEsYAIgm37EbdkiMmr6fP6J9pDoKEpiGM4pi32BCPGr/IczmSJI9Zzp0a6HOzpr9OvpMP+2veA==" + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "d02ybMhUJl1r/dI6SkJPHrTiTzXBYCZeJdOLMckV+jyoMU/GGkjqFX/sRbv1K0QmlpwwKuLTiYVQvfYC+8ox2g==", + "resolved": "4.8.0", + "contentHash": "/jR+e/9aT+BApoQJABlVCKnnggGQbvGh7BKq2/wI1LamxC+LbzhcLj4Vj7gXCofl1n4E521YfF9w0WcASGg/KA==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.3.2", - "System.Collections.Immutable": "5.0.0", - "System.Memory": "4.5.4", - "System.Reflection.Metadata": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encoding.CodePages": "4.5.1", - "System.Threading.Tasks.Extensions": "4.5.4" + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "7.0.0", + "System.Reflection.Metadata": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "2UVTGtyQGgTCazvnT6t82f+7AV2L+kqJdyb61rT9GQed4yK+tVh5IkaKcsm70VqyZQhBbDqsfZFNHnY65xhrRw==", + "resolved": "4.8.0", + "contentHash": "+3+qfdb/aaGD8PZRCrsdobbzGs1m9u119SkkJt8e/mk3xLJz/udLtS2T6nY27OTXxBBw10HzAbC8Z9w08VyP/g==", "dependencies": { - "Microsoft.CodeAnalysis.Common": "[4.0.0]" + "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Razor": { @@ -612,67 +645,67 @@ }, "Microsoft.Extensions.Caching.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", + "resolved": "8.0.0", + "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "tgU4u7bZsoS9MKVRiotVMAwHtbREHr5/5zSEV+JPhg46+ox47Au84E3D2IacAaB0bk5ePNaNieTlPrfjbbRJkg==", + "resolved": "8.0.0", + "contentHash": "mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==", + "resolved": "8.0.0", + "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==", "dependencies": { - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Physical": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==", + "resolved": "8.0.0", + "contentHash": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==", "dependencies": { - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "System.Text.Json": "7.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "System.Text.Json": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==", + "resolved": "8.0.0", + "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { @@ -682,19 +715,39 @@ }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "oONNYd71J3LzkWc4fUHl3SvMfiQMYUCo/mDHDEu76hYYxdhdrPYv6fvGv9nnKVyhE9P0h20AU8RZB5OOWQcAXg==", + "resolved": "8.0.0", + "contentHash": "NSmDw3K0ozNDgShSIpsZcbFIzBX4w28nDag+TfaQujkXGazBm+lid5onlWoCBy4VsLxqnnKjEBbGSJVWJMf43g==", "dependencies": { - "System.Text.Encodings.Web": "7.0.0", - "System.Text.Json": "7.0.0" + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3PZp/YSkIXrF7QK7PfC1bkyRYwqOHpWFad8Qx+4wkuumAeXo1NHaxpS9LboNA9OvNSAu+QOVlXbMyoY+pHSqcw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Composite": { @@ -708,77 +761,80 @@ }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "mh0rIIjKO7PiU7VPtC92LlIG2lpWVCnGIEqBk8ru2oMWEVQ/gJDizePv1fdmnljwC4e69jtYknXYmLNwm0dZEg==", + "resolved": "8.0.0", + "contentHash": "TuRh62KcoOvaSDCbtHT8K0WYptZysYQHPRRNfOgqF7ZUtUL4O0WMV8RdxbtDFJDsg3jv9bgHwXbrgwTeI9+5uQ==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "43n9Je09z0p/7ViPxfRqs5BUItRLNVh5b6JH40F2Agkh2NBsY/jpNYTtbCcxrHCsA3oRmbR6RJBzUutB4VZvNQ==", + "resolved": "8.0.0", + "contentHash": "AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Http": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "9Pq9f/CvOSz0t9yQa6g1uWpxa2sm13daLFm8EZwy9MaQUjKXWdNUXQwIxwhmba5N83UIqURiPHSNqGK1vfWF2w==", + "resolved": "8.0.0", + "contentHash": "cWz4caHwvx0emoYe7NkHPxII/KkTI8R/LC9qdqJqnKv2poTJ4e2qqPGQqvRoQ5kaSA4FU5IV3qFAuLuOhoqULQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Identity.Core": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "cq11jroq2szFcXLJ0IW5BlI7oqq3ZGCu1mXCnpJ8VIvhvpIzf30AOoWR/w3YRVdAgkYzxbUQpKGZd+oxAKQhLA==", + "resolved": "8.0.0", + "contentHash": "hnXHyIQc+uc2uNMcIbr43+oNBAPEhMpW6lE8ux3MOegRz50WBna4AItlZDY7Y+Id1LLBbf73osUqeTw7CQ371w==", "dependencies": { - "Microsoft.AspNetCore.Cryptography.KeyDerivation": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.AspNetCore.Cryptography.KeyDerivation": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Identity.Stores": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "feaaluQbzJAMMluwSc7Rebm7IEVAD8/5GWt0dMYLE0tcc6gAsHYjBIBrPzmTstORd7k405Qo18FPF/jTfRsM0A==", + "resolved": "8.0.0", + "contentHash": "DmDCpSpngZDBm44wVmxCeYs4HGJr/m32jMItp6pfb7KKtqWYw2vybHRg880j18k/eSFyM4v9uONsnEPgDdi9lg==", "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Identity.Core": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0" + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.Identity.Core": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0" } }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==", + "resolved": "8.0.0", + "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Logging.Abstractions": { @@ -791,53 +847,96 @@ }, "Microsoft.Extensions.ObjectPool": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA==" + "resolved": "8.0.0", + "contentHash": "4pm+XgxSukskwjzDDfSjG4KNUIOdFF2VaqZZDtTzoyQMOVSnlV6ZM8a9aVu5dg9LVZTB//utzSc8fOi0b0Mb2Q==" }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "lP1yBnTTU42cKpMozuafbvNtQ7QcBjr/CcK3bYOGEMH55Fjt+iecXjT6chR7vbgCMqy3PG3aNQSZgo/EuY/9qQ==", + "resolved": "8.0.0", + "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "95UnxZkkFdXxF6vSrtJsMHCzkDeSMuUWGs2hDT54cX+U5eVajrCJ3qLyQRW+CtpTt5OJ8bmTvpQVHu1DLhH+cA==", + "resolved": "8.0.0", + "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.Binder": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.DataAnnotations": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "57cONN+EcyypxCmDlaJOL7tdeYMiRNVZmv2m7hi41zAu03p+r6jbGTx7bykg3o4GYPRQjsi0FGhjLn5XuVHM1Q==", + "resolved": "8.0.0", + "contentHash": "z6p6q/N/hiU19A9tK7pjhXHpiYArO4oIICipxUviBEIOiDIoKRO7k6qItvw7alKcLtfHZOWmspuSKpvIvH0N8w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, - "Microsoft.NET.StringTools": { + "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "17.4.0", - "contentHash": "06T6Hqfs3JDIaBvJaBRFFMIdU7oE0OMab5Xl8LKQjWPxBQr3BgVFKMQPTC+GsSEuYREWmK6g5eOd7Xqd9p1YCA==", + "resolved": "7.1.2", + "contentHash": "33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==" + }, + "Microsoft.IdentityModel.JsonWebTokens": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==", "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.IdentityModel.Tokens": "7.1.2" } }, + "Microsoft.IdentityModel.Logging": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.1.2" + } + }, + "Microsoft.IdentityModel.Protocols": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "7.1.2" + } + }, + "Microsoft.IdentityModel.Tokens": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2" + } + }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.6.3", + "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==" + }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", @@ -867,44 +966,40 @@ "System.Security.Principal.Windows": "5.0.0" } }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==" - }, "MimeKit": { "type": "Transitive", - "resolved": "3.4.2", - "contentHash": "8bshZj8peXR9OaGb1fJJto6YWGG9zGGbDwY5Uylkz08mFU2tHKdkGtwMyFdtO6ZVq1aW41QYj+cN+4vRlE0O5Q==", + "resolved": "4.3.0", + "contentHash": "39KDXuERDy5VmHIn7NnCWvIVp/Ar4qnxZWg9m06DfRqDbW1B6zFv9o3Tdoa4CCu71tE/0SRqRCN5Z+bbffw6uw==", "dependencies": { - "Portable.BouncyCastle": "1.9.0", - "System.Security.Cryptography.Pkcs": "6.0.0" + "BouncyCastle.Cryptography": "2.2.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.Cryptography.Pkcs": "7.0.3", + "System.Text.Encoding.CodePages": "7.0.0" } }, "MiniProfiler.AspNetCore": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "bBirB5d4Q0Bgx05Zg4yzXSmOHZQV4ZJhmxU3DGya4FZxNBwjaVHchqEKY0MJW5XLZo8axMAQm4yywgCvUlTymA==", + "resolved": "4.3.8", + "contentHash": "dohMvXpjKDPv/edl7gwKhq80JBqRLLRSwVJB9bo0UYqsgEox7BZyYS/4vBty+UsZ59pYYYhMUpUKHVWLLj/PBw==", "dependencies": { - "MiniProfiler.Shared": "4.2.22", - "System.Text.Json": "4.6.0" + "MiniProfiler.Shared": "4.3.8" } }, "MiniProfiler.AspNetCore.Mvc": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "nzCEaZnh77U9jw+c/qu4CtwYUpHEf+FH1ZMbYKMzIXr8CNNPlypSR6AJEAwjo3bq9TIJIpBMZIaK3inRLUCg4g==", + "resolved": "4.3.8", + "contentHash": "aJ6Kkw2zMy36cKDWTjQYo/pJ6bhPBRA8z4NO8REe+xDhv8+fk58P526Bi52gnvsDp4jIVk5AQ8nQDgPUS/K+7A==", "dependencies": { - "MiniProfiler.AspNetCore": "4.2.22" + "MiniProfiler.AspNetCore": "4.3.8" } }, "MiniProfiler.Shared": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "OOA99Iu7FjFrdYaADcWL78KK9Kq6M+hfnZac5577aSrx0UYOM2apKlhBPKzoPtGPTRtQNKe4RK00u/FmahcU3g==", + "resolved": "4.3.8", + "contentHash": "SfXNX90fmDm373YAla0z06plTCj6YbByQJOm6G8/9kE6Hf4UALJxySyiMB9O4KYeTc6Ha1EFQDs6jLhio+bBFA==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Newtonsoft.Json": "10.0.3", + "Newtonsoft.Json": "13.0.1", "System.ComponentModel.Primitives": "4.3.0", "System.Data.Common": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.4.1", @@ -918,8 +1013,8 @@ }, "NCrontab": { "type": "Transitive", - "resolved": "3.3.1", - "contentHash": "G3tzcIIgsiyZyVbHNPyn5+adaM9UjeVNgjrRsvXU7wo2sMhpvpQrir29dcjIND53H/fuTdgg9nI3SfFFg7barA==" + "resolved": "3.3.3", + "contentHash": "2yzZXZLI0YpxrNgWnW/4xoo7ErLgWJIwTljRVEJ3hyjc7Kw9eGdjbFZGP1AhBuTUEZQ443PgZifG1yox6Qo1/A==" }, "NETStandard.Library": { "type": "Transitive", @@ -974,8 +1069,8 @@ }, "Newtonsoft.Json": { "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "R2pZ3B0UjeyHShm9vG+Tu0EBb2lC8b0dFzV9gVn50ofHXh9Smjk6kTn7A/FdAsC8B5cKib1OnGYOXxRBz5XQDg==" + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Newtonsoft.Json.Bson": { "type": "Transitive", @@ -987,8 +1082,8 @@ }, "NPoco": { "type": "Transitive", - "resolved": "5.5.0", - "contentHash": "11cUvapVGApwP7iiifIV3cgg7m2gBRY9qE3dMLof/ahtg0ZzuACbCBD8O6547Gg9Q4mqvgB7ZD+O0IiprF0lEQ==", + "resolved": "5.7.1", + "contentHash": "6qjyBqqc0TSK/xHjXA6tSZhABSDQqXGrTOIdUIVazPsmN0OyTaBTEtwV2wTV0NyfkzcRPhLyO6bIW89ZFNvlWg==", "dependencies": { "System.Linq.Async": "5.0.0", "System.Reflection.Emit.Lightweight": "4.7.0" @@ -999,10 +1094,15 @@ "resolved": "1.20.2", "contentHash": "vz/SjCdpxr0Jp09VzMeezid7rwbXimik2QO1dzxzDcN3bXGJloDGDVh0zoD6DA23y6yrRzxv1ZKJ3kKzV3rqyA==" }, - "Portable.BouncyCastle": { + "OpenIddict.Abstractions": { "type": "Transitive", - "resolved": "1.9.0", - "contentHash": "eZZBCABzVOek+id9Xy04HhmgykF0wZg9wpByzrWN7q8qEI0Qen9b7tfd7w8VA3dOeesumMG7C5ZPy0jk7PSRHw==" + "resolved": "4.10.1", + "contentHash": "r2oCgsk8hG82TmT5g7yTzGLrmZGTwn6/zISMXqqpM9rjQUH0/FZ7NgwJy0f1j+HZSyBNj3jjYQIjx6a7qYBYqA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.IdentityModel.Tokens": "7.0.0" + } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -1113,8 +1213,25 @@ }, "Serilog": { "type": "Transitive", - "resolved": "2.12.0", - "contentHash": "xaiJLIdu6rYMKfQMYUZgTy8YK7SMZjB4Yk50C/u//Z4OsvxkUfSPJy4nknfvwAC34yr13q7kcyh4grbwhSxyZg==" + "resolved": "3.1.1", + "contentHash": "P6G4/4Kt9bT635bhuwdXlJ2SCqqn2nhh4gqFqQueCOr9bK/e7W9ll/IoX1Ter948cV2Z/5+5v8pAfJYUISY03A==" + }, + "Serilog.AspNetCore": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FAjtKPZ4IzqFQBqZKPv6evcXK/F0ls7RoXI/62Pnx2igkDZ6nZ/jn/C/FxVATqQbEQvtqP+KViWYIe4NZIHa2w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1", + "Serilog.Extensions.Hosting": "8.0.0", + "Serilog.Extensions.Logging": "8.0.0", + "Serilog.Formatting.Compact": "2.0.0", + "Serilog.Settings.Configuration": "8.0.0", + "Serilog.Sinks.Console": "5.0.0", + "Serilog.Sinks.Debug": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } }, "Serilog.Enrichers.Process": { "type": "Transitive", @@ -1134,58 +1251,58 @@ }, "Serilog.Expressions": { "type": "Transitive", - "resolved": "3.4.1", - "contentHash": "0gcR+7/0g4WYQlbxWWuTNYdUkrwHdnD60it4kY9yX3Djm1DFcrHRO6gynYaxPb8vcPFuGRZwpA2mowCFRm6MYg==", + "resolved": "4.0.0", + "contentHash": "dsC8GtalMDXMzywA60fHeBvqAjQ1EM75zSrdA7j7TxJfmrfss6BOxzgoT5thqjY+icLNbovUsC5KTYRlXzCpXg==", "dependencies": { - "Serilog": "2.10.0" + "Serilog": "3.1.0" } }, "Serilog.Extensions.Hosting": { "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "o0VUyt3npAqOJaZ6CiWLFeLYs3CYJwfcAqaUqprzsmj7qYIvorcn8cZLVR8AQX6vzX7gee2bD0sQeA17iO2/Aw==", + "resolved": "8.0.0", + "contentHash": "db0OcbWeSCvYQkHWu6n0v40N4kKaTAXNjlM3BKvcbwvNzYphQFcBR+36eQ/7hMMwOkJvAyLC2a9/jNdUL5NjtQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.8", - "Microsoft.Extensions.Hosting.Abstractions": "3.1.8", - "Microsoft.Extensions.Logging.Abstractions": "3.1.8", - "Serilog": "2.10.0", - "Serilog.Extensions.Logging": "3.1.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Serilog": "3.1.1", + "Serilog.Extensions.Logging": "8.0.0" } }, "Serilog.Extensions.Logging": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "resolved": "8.0.0", + "contentHash": "YEAMWu1UnWgf1c1KP85l1SgXGfiVo0Rz6x08pCiPOIBt2Qe18tcZLvdBUuV5o1QHvrs8FAry9wTIhgBRtjIlEg==", "dependencies": { - "Microsoft.Extensions.Logging": "2.0.0", - "Serilog": "2.9.0" + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Formatting.Compact": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "pNroKVjo+rDqlxNG5PXkRLpfSCuDOBY0ri6jp9PLe505ljqwhwZz8ospy2vWhQlFu5GkIesh3FcDs4n7sWZODA==", + "resolved": "2.0.0", + "contentHash": "ob6z3ikzFM3D1xalhFuBIK1IOWf+XrQq+H4KeH4VqBcPpNcmUgZlRQ2h3Q7wvthpdZBBoY86qZOI2LCXNaLlNA==", "dependencies": { - "Serilog": "2.8.0" + "Serilog": "3.1.0" } }, "Serilog.Formatting.Compact.Reader": { "type": "Transitive", - "resolved": "2.0.0", - "contentHash": "ALNnPArxSiQDLfHFeR0JrmW8/T6M9Attd/g9w0nm/wxrpCcPCVc3v5CZDYW9jpwMQbrfZ/2A8e1D0vfd6DAcGw==", + "resolved": "3.0.0", + "contentHash": "A4tBQ36969szfQMwnxaikNKxQs7lcGLPPcv45ghr3RrJK9hko71t8TNSdMSAWU25ZK6JSmH/RU14GwSo4v5E4Q==", "dependencies": { - "Newtonsoft.Json": "13.0.1", - "Serilog": "2.3.0" + "Newtonsoft.Json": "13.0.3", + "Serilog": "3.1.0" } }, "Serilog.Settings.Configuration": { "type": "Transitive", - "resolved": "3.4.0", - "contentHash": "ULloXSiapTb3zOWodC0G4WRDQzA5RjMEfZNZzOZpH8kC3t/lrISLblklIpKC44CX0sMDF40MnJwTIQ3pFQFs4g==", + "resolved": "8.0.0", + "contentHash": "nR0iL5HwKj5v6ULo3/zpP8NMcq9E2pxYA6XKTSWCbugVs4YqPyvaqaKOY+OMpPivKp7zMEpax2UKHnDodbRB0Q==", "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "2.0.0", - "Microsoft.Extensions.DependencyModel": "3.0.0", - "Serilog": "2.10.0" + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyModel": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Sinks.Async": { @@ -1196,6 +1313,22 @@ "Serilog": "2.9.0" } }, + "Serilog.Sinks.Console": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "IZ6bn79k+3SRXOBpwSOClUHikSkp2toGPCZ0teUkscv4dpDg9E2R2xVsNkLmwddE4OpNVO3N0xiYsAH556vN8Q==", + "dependencies": { + "Serilog": "3.1.0" + } + }, + "Serilog.Sinks.Debug": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==", + "dependencies": { + "Serilog": "2.10.0" + } + }, "Serilog.Sinks.File": { "type": "Transitive", "resolved": "5.0.0", @@ -1214,16 +1347,16 @@ }, "Smidge": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "8b6Av/P44s1jc8d5MKrXaiv7J3G4wI4Ew5COk/FLCF5iqA0471lZ9J8Ew9mb6Nr9zD3mNwxjWnW2k9BzcUgcog==", + "resolved": "4.3.0", + "contentHash": "AnRsxwg4Av7jxa0MkQMbLqdIrWbVZRVQ0KfnO4Mh19Old7lay179QvBnaOPFxAEWnIl4jHiZW8izesJp6TknVw==", "dependencies": { - "Smidge.Core": "4.2.0" + "Smidge.Core": "4.3.0" } }, "Smidge.Core": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "LQlEtYUNVqK0/jj/kXgIgQrgwteJ7/7dK3GS5vnK8jYpJj201Etidt8IPbp6hmLJ+uOUL530XS0ZDg0xW5YoHg==", + "resolved": "4.3.0", + "contentHash": "B6m6uGpJrOKaJ68eE9clAzZUcURszTNHfoYa4razb3KUJtRXB5fmZvts8+0ffT0/tO09Vu2O/KFfiSZMp6X8Jw==", "dependencies": { "Microsoft.AspNetCore.Http.Features": "5.0.0", "Microsoft.Extensions.Configuration": "5.0.0", @@ -1236,21 +1369,21 @@ }, "Smidge.InMemory": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "EFVXwKLF6/RSI0EP7D+LSDI04Y1V2XYHZT2rOzWVqMhMmPtKosxnGRv235qbyYWM4ci3u08lca3T3SWA61/QMw==", + "resolved": "4.3.0", + "contentHash": "fKyR6ICS0YoQLX0D4dIIYTwQEM1IZb8ChYhqLGpVyJ7GiOAawsXt4ZcVnH0XT+ggan2+JzQlLiXGcCdXnb16Xg==", "dependencies": { "Dazinator.Extensions.FileProviders": "2.0.0", - "Smidge.Core": "4.2.0", + "Smidge.Core": "4.3.0", "System.Text.Encodings.Web": "5.0.1" } }, "Smidge.Nuglify": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "tqBk9P1+cSjN6SnvINyvIvpoIrA337jnBvBvxJi9UquLyDP7dc3mkxkfsqUhQMYFNJ3hMMqg+VGAa5XsxzNWUA==", + "resolved": "4.3.0", + "contentHash": "kx5Ulh+o5zLI0Al0POs0nYPldUArErmrAxxccrrxl77MWWrDM3KS5IRWuKDtC42/sZKSzapmJIOwJ8r/1foMCg==", "dependencies": { "Nuglify": "1.20.2", - "Smidge": "4.2.0" + "Smidge": "4.3.0" } }, "System.AppContext": { @@ -1302,8 +1435,8 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==" + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.ComponentModel": { "type": "Transitive", @@ -1330,12 +1463,11 @@ }, "System.Configuration.ConfigurationManager": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "WvRUdlL1lB0dTRZSs5XcQOd5q9MYNk90GkbmRmiCvRHThWiojkpGqWdmEDJdXyHbxG/BhE5hmVbMfRLXW9FJVA==", + "resolved": "8.0.0", + "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { - "System.Diagnostics.EventLog": "7.0.0", - "System.Security.Cryptography.ProtectedData": "7.0.0", - "System.Security.Permissions": "7.0.0" + "System.Diagnostics.EventLog": "8.0.0", + "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { @@ -1377,13 +1509,13 @@ }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "9W0ewWDuAyDqS2PigdTxk6jDKonfgscY/hP8hm7VpxYhNHZHKvZTdRckberlFk3VnCmr3xBUyMBut12Q+T2aOw==" + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==" }, "System.Diagnostics.EventLog": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" + "resolved": "8.0.0", + "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.StackTrace": { "type": "Transitive", @@ -1416,14 +1548,6 @@ "System.Runtime": "4.3.0" } }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "7.0.0" - } - }, "System.Dynamic.Runtime": { "type": "Transitive", "resolved": "4.3.0", @@ -1447,8 +1571,8 @@ }, "System.Formats.Asn1": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "+nfpV0afLmvJW8+pLlHxRjz3oZJw4fkyU9MMEaMhCsHi/SN9bGF9q79ROubDiwTiCHezmK0uCWkPP7tGFP/4yg==" + "resolved": "8.0.0", + "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==" }, "System.Globalization": { "type": "Transitive", @@ -1484,6 +1608,15 @@ "System.Runtime.InteropServices": "4.3.0" } }, + "System.IdentityModel.Tokens.Jwt": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", @@ -1549,15 +1682,6 @@ "System.Threading.Tasks": "4.3.0" } }, - "System.IO.FileSystem.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", @@ -1573,8 +1697,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -1617,11 +1741,6 @@ "System.Threading": "4.3.0" } }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" - }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", @@ -1743,8 +1862,11 @@ }, "System.Reflection.Metadata": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==" + "resolved": "7.0.0", + "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", + "dependencies": { + "System.Collections.Immutable": "7.0.0" + } }, "System.Reflection.Primitives": { "type": "Transitive", @@ -1788,10 +1910,10 @@ }, "System.Runtime.Caching": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "M0riW7Zgxca3Elp1iZVhzH7PWWT5bPSrdMFGCAGoH1n9YLuXOYE78ryui051Icf3swWWa8feBRoSxOCYwgMy8w==", + "resolved": "8.0.0", + "contentHash": "4TmlmvGp4kzZomm7J2HJn6IIx0UUrQyhBDyb5O1XiunZlQImXW+B8b7W/sTPcXhSf9rp5NR5aDtQllwbB5elOQ==", "dependencies": { - "System.Configuration.ConfigurationManager": "7.0.0" + "System.Configuration.ConfigurationManager": "8.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { @@ -1975,10 +2097,10 @@ }, "System.Security.Cryptography.Pkcs": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "mjUbEXkR6DYRef6dnEYKdfec9otcAkibExL+1f9hmbGlWIUyaCnS3Y3oGZEet38waXmuY1ORE8vgv4sgD5nMYg==", + "resolved": "8.0.0", + "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==", "dependencies": { - "System.Formats.Asn1": "7.0.0" + "System.Formats.Asn1": "8.0.0" } }, "System.Security.Cryptography.Primitives": { @@ -1997,8 +2119,8 @@ }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==" + "resolved": "8.0.0", + "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", @@ -2034,18 +2156,10 @@ }, "System.Security.Cryptography.Xml": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "LHc5PUypYGAMNf/2DzCxOXREKamwCtdUtxb/WpCnHngORVYZbUdSMnm1PcKvEvzKUTKSC0CL6aVAywzbEEeNQg==", - "dependencies": { - "System.Security.Cryptography.Pkcs": "7.0.0" - } - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "Vmp0iRmCEno9BWiskOW5pxJ3d9n+jUqKxvX4GhLwFhnQaySZmBN2FuC0N5gjFHgyFMUjC5sfIJ8KZfoJwkcMmA==", + "resolved": "8.0.0", + "contentHash": "HQSFbakswZ1OXFz2Bt3AJlC6ENDqWeVpgqhf213xqQUMDifzydOHIKVb1RV4prayobvR3ETIScMaQdDF2hwGZA==", "dependencies": { - "System.Windows.Extensions": "7.0.0" + "System.Security.Cryptography.Pkcs": "8.0.0" } }, "System.Security.Principal.Windows": { @@ -2065,12 +2179,8 @@ }, "System.Text.Encoding.CodePages": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", - "dependencies": { - "Microsoft.NETCore.Platforms": "2.1.2", - "System.Runtime.CompilerServices.Unsafe": "4.5.2" - } + "resolved": "7.0.0", + "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", @@ -2085,15 +2195,15 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" + "resolved": "8.0.0", + "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" }, "System.Text.Json": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "DaGSsVqKsn/ia6RG8frjwmJonfos0srquhw09TlT8KRw5I43E+4gs+/bZj4K0vShJ5H9imCuXupb4RmS+dBy3w==", + "resolved": "8.0.0", + "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", "dependencies": { - "System.Text.Encodings.Web": "7.0.0" + "System.Text.Encodings.Web": "8.0.0" } }, "System.Text.RegularExpressions": { @@ -2124,8 +2234,8 @@ }, "System.Threading.Channels": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" + "resolved": "8.0.0", + "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==" }, "System.Threading.Tasks": { "type": "Transitive", @@ -2137,15 +2247,10 @@ "System.Runtime": "4.3.0" } }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "BmSJ4b0e2nlplV/RdWVxvH7WECTHACofv06dx/JwOYc0n56eK1jIWdQKNYYsReSO4w8n1QA5stOzSQcfaVBkJg==" - }, "System.Threading.Tasks.Extensions": { "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" + "resolved": "4.5.0", + "contentHash": "csAJe24tWCOTO/rXoJAuBGuOq7ZdHY60XtC6b/hNMHT9tuX+2J9HK7nciLEtNvnrRLMxBACLXO3R4y5+kCduMA==" }, "System.Threading.Tasks.Parallel": { "type": "Transitive", @@ -2172,14 +2277,6 @@ "System.Runtime": "4.3.0" } }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "bR4qdCmssMMbo9Fatci49An5B1UaVJZHKNq70PRgzoLYIlitb8Tj7ns/Xt5Pz1CkERiTjcVBDU2y1AVrPBYkaw==", - "dependencies": { - "System.Drawing.Common": "7.0.0" - } - }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", @@ -2223,107 +2320,106 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "IkVx8W8Ey4Ca6Jkjgy3XGy8Y/Ui7lX0Q+X4LaUws6oReFfwMokwLX4eK9IvuVyerkxE0Hz94dh/OqOjziv/XPw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Embedded": "7.0.0", - "Microsoft.Extensions.FileProviders.Physical": "7.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "7.0.0", - "Microsoft.Extensions.Identity.Core": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "7.0.0", - "Microsoft.Extensions.Options.DataAnnotations": "7.0.0", - "System.ComponentModel.Annotations": "5.0.0", - "System.Net.Http": "4.3.4", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Runtime.Caching": "7.0.0", - "System.Security.Cryptography.Xml": "7.0.0", - "System.Text.RegularExpressions": "4.3.1" + "resolved": "13.0.0", + "contentHash": "0/ODOagfKr4Rhwfc6s8WjexXI3n9bnFzUR1GFHiSs4C24dZFDJzdSgrRSuFl1ZoqzIkt3VP815WAEQm66D+SVw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Embedded": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Identity.Core": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0", + "Microsoft.Extensions.Options.DataAnnotations": "8.0.0", + "System.Runtime.Caching": "8.0.0" } }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "U5jzb0XtHqTZKveC2TPBtPzrUzxPdxo+504JKE0CsEtOpaJfu3sYC/Tsq5OFfUsTr+i2noJ5JbXqSUonbdp9wg==", + "resolved": "13.0.0", + "contentHash": "JuEVmuPz0sCo9z6Z3FQZSxWJPYHSfXyZRRNRXFQu0j3g1pXKaJaFcMQmAeXPR2KJzuuvWKM+gzMgVDUUG03gVw==", "dependencies": { - "Examine": "3.0.1", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0" + "Examine": "3.1.0", + "System.Security.Cryptography.Xml": "8.0.0", + "Umbraco.Cms.Infrastructure": "[13.0.0, 14.0.0)" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "UvchDhuoXdNB1/fRvIhOd7ilACKhsB04E3mDSEEwgKnhOHBWriz+jAG07CfEyA6869aUit9BsWwQV5oPpGJHZg==", + "resolved": "13.0.0", + "contentHash": "k1e5j8Pad1uRz0KtdkV0z4T2kMLzUFHG/5ITUUZt3qNqINGxis8BwNlscitJQQU3eSDICsxBTdJxhj4QUU3JsQ==", "dependencies": { - "Examine.Core": "3.0.1", - "HtmlAgilityPack": "1.11.46", - "IPNetwork2": "2.6.508", - "MailKit": "3.4.2", + "Examine.Core": "3.1.0", + "HtmlAgilityPack": "1.11.54", + "MailKit": "4.3.0", "Markdown": "2.2.1", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.Json": "7.0.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Microsoft.Extensions.Http": "7.0.0", - "Microsoft.Extensions.Identity.Stores": "7.0.0", - "MiniProfiler.Shared": "4.2.22", - "NPoco": "5.5.0", - "Newtonsoft.Json": "13.0.2", - "Serilog": "2.12.0", + "Microsoft.CodeAnalysis.CSharp": "4.8.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.0", + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Http": "8.0.0", + "Microsoft.Extensions.Identity.Stores": "8.0.0", + "MiniProfiler.Shared": "4.3.8", + "NPoco": "5.7.1", + "Newtonsoft.Json": "13.0.3", + "OpenIddict.Abstractions": "4.10.1", + "Serilog": "3.1.1", "Serilog.Enrichers.Process": "2.0.2", "Serilog.Enrichers.Thread": "3.1.0", - "Serilog.Expressions": "3.4.1", - "Serilog.Extensions.Hosting": "5.0.1", - "Serilog.Formatting.Compact": "1.1.0", - "Serilog.Formatting.Compact.Reader": "2.0.0", - "Serilog.Settings.Configuration": "3.4.0", + "Serilog.Expressions": "4.0.0", + "Serilog.Extensions.Hosting": "8.0.0", + "Serilog.Formatting.Compact": "2.0.0", + "Serilog.Formatting.Compact.Reader": "3.0.0", + "Serilog.Settings.Configuration": "8.0.0", "Serilog.Sinks.Async": "1.5.0", "Serilog.Sinks.File": "5.0.0", "Serilog.Sinks.Map": "1.0.2", - "System.IO.FileSystem.AccessControl": "5.0.0", - "System.Security.Cryptography.Pkcs": "7.0.0", - "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "11.0.0", - "ncrontab": "3.3.1" + "Umbraco.Cms.Core": "[13.0.0, 14.0.0)", + "ncrontab": "3.3.3" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "xa17/gfrI4258Tig6X3Zi1H1XkR37cvnH2a4ZeoMBwyfLLmGSaxsKb5u7gKoMbG3y8KIbqanLvb+TD7cDLFE7g==", + "resolved": "13.0.0", + "contentHash": "k9OQi8Z0k4bLPrUkc++IpJ2Ube/LqjzFmenZkScUQuxoJ3ou7uNfot82IEGxm4FxlRf20x7oUj+kBx47pn97gg==", "dependencies": { - "CSharpTest.Net.Collections-NetStd2": "14.906.1403.1084", - "K4os.Compression.LZ4": "1.2.16", - "MessagePack": "2.4.59", - "Newtonsoft.Json": "13.0.2", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0" + "K4os.Compression.LZ4": "1.3.6", + "MessagePack": "2.5.140", + "Newtonsoft.Json": "13.0.3", + "Umbraco.CSharpTest.Net.Collections": "15.0.0", + "Umbraco.Cms.Infrastructure": "[13.0.0, 14.0.0)" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "EVEu4yNMQ8/cFzmZo39wCopFQVY/If+SLburUIZL7ibuQpEXaNa/E9Lz4INdqaddtnz0jdcgokB9jvt2tBms5w==", + "resolved": "13.0.0", + "contentHash": "pTV4p56KsP6yIwYLTgpYQ3WeGumdJRNZo23rblOupcKl7w6wxQ2aiPweVbv7rWIILYoDVejV7z6O5CRHDqmi8g==", "dependencies": { + "Asp.Versioning.Mvc": "7.1.1", + "Asp.Versioning.Mvc.ApiExplorer": "7.1.0", "Dazinator.Extensions.FileProviders": "2.0.0", - "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "7.0.0", - "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "7.0.0", - "MiniProfiler.AspNetCore.Mvc": "4.2.22", - "Smidge.InMemory": "4.2.0", - "Smidge.Nuglify": "4.2.0", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Examine.Lucene": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "11.0.0" + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "8.0.0", + "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "8.0.0", + "MiniProfiler.AspNetCore.Mvc": "4.3.8", + "Serilog.AspNetCore": "8.0.0", + "Smidge.InMemory": "4.3.0", + "Smidge.Nuglify": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Text.RegularExpressions": "4.3.1", + "Umbraco.Cms.Examine.Lucene": "[13.0.0, 14.0.0)", + "Umbraco.Cms.PublishedCache.NuCache": "[13.0.0, 14.0.0)" } }, + "Umbraco.CSharpTest.Net.Collections": { + "type": "Transitive", + "resolved": "15.0.0", + "contentHash": "YSDIkxq44VMy2N3jBTwJBJ/ZjGyuyb0GRyfQAUIma07dCHIbjXgKXjZaAxVa6ik3XTqgcyATvwYJL0EBtAClwA==" + }, "Yarp.ReverseProxy": { "type": "Transitive", - "resolved": "2.0.1", - "contentHash": "op7vBwONPFeR1PYxeLw+RLqSodODDX8RWd0OinLGMVIq6yi1q9mv1j56ImuyZgiAToksiC0Dc7jbRUZ9I+jvFA==", + "resolved": "2.1.0", + "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==", "dependencies": { "System.IO.Hashing": "7.0.0" } @@ -2331,11 +2427,12 @@ "nikcio.uheadless": { "type": "Project", "dependencies": { - "HotChocolate.AspNetCore": "[13.9.0, )", - "HotChocolate.AspNetCore.Authorization": "[13.9.0, )", + "HotChocolate.AspNetCore": "[13.9.4, )", + "HotChocolate.AspNetCore.Authorization": "[13.9.4, )", + "Microsoft.AspNetCore.Authentication.JwtBearer": "[8.0.5, )", "Microsoft.Extensions.DependencyInjection.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", - "Umbraco.Cms.Web.Common": "[11.0.0, )" + "Umbraco.Cms.Web.Common": "[13.0.0, )" } } } diff --git a/src/Nikcio.UHeadless.UnitTests/DependencyReflectorFactoryTests.cs b/src/Nikcio.UHeadless.UnitTests/DependencyReflectorFactoryTests.cs index 6931f6a1..eacde4c3 100644 --- a/src/Nikcio.UHeadless.UnitTests/DependencyReflectorFactoryTests.cs +++ b/src/Nikcio.UHeadless.UnitTests/DependencyReflectorFactoryTests.cs @@ -22,7 +22,7 @@ public void GetReflectedType_BasicClass() ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); const string expectedRequiredValue = "Required"; - string[] constructorRequiredParamerters = new[] { expectedRequiredValue }; + string[] constructorRequiredParamerters = [expectedRequiredValue]; BasicClass? reflectedType = reflectorFactory.GetReflectedType(typeof(BasicClass), constructorRequiredParamerters); @@ -51,7 +51,7 @@ public void GetReflectedType_ServiceClass() serviceProvider.GetService(typeof(ServiceClass)).Returns(new ServiceClass(expectedRequiredValue, null)); ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); - string[] constructorRequiredParamerters = new[] { expectedRequiredValue }; + string[] constructorRequiredParamerters = [expectedRequiredValue]; ServiceClass? reflectedType = reflectorFactory.GetReflectedType(typeof(ServiceClass), constructorRequiredParamerters); @@ -86,7 +86,7 @@ public void GetReflectedType_NoContructorsClass() IServiceProvider serviceProvider = Substitute.For(); ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); - object[] constructorRequiredParamerters = Array.Empty(); + object[] constructorRequiredParamerters = []; NoConstructorsClass? reflectedType = reflectorFactory.GetReflectedType(typeof(NoConstructorsClass), constructorRequiredParamerters); @@ -106,7 +106,7 @@ public void GetReflectedType_NoRequiredParametersClass() IServiceProvider serviceProvider = Substitute.For(); ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); - object[] constructorRequiredParamerters = Array.Empty(); + object[] constructorRequiredParamerters = []; NoRequiredParametersClass? reflectedType = reflectorFactory.GetReflectedType(typeof(NoRequiredParametersClass), constructorRequiredParamerters); @@ -132,7 +132,7 @@ public void GetReflectedType_NoRequiredParameters_ServiceClass() serviceProvider.GetService(typeof(ServiceClass)).Returns(new ServiceClass(expectedRequiredValue, null)); ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); - object[] constructorRequiredParamerters = Array.Empty(); + object[] constructorRequiredParamerters = []; NoRequiredParameters_ServiceClass? reflectedType = reflectorFactory.GetReflectedType(typeof(NoRequiredParameters_ServiceClass), constructorRequiredParamerters); @@ -187,7 +187,7 @@ public void GetReflectedType_WrongRequiredParameters() IServiceProvider serviceProvider = Substitute.For(); ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); - object[] constructorRequiredParamerters = new object[] { new BasicClass("Required") }; + object[] constructorRequiredParamerters = [new BasicClass("Required")]; IntegerRequiredClass? reflectedType = reflectorFactory.GetReflectedType(typeof(IntegerRequiredClass), constructorRequiredParamerters); @@ -200,7 +200,7 @@ public void GetReflectedType_TooManyRequiredParameters() IServiceProvider serviceProvider = Substitute.For(); ILogger logger = Substitute.For>(); var reflectorFactory = new DependencyReflectorFactory(serviceProvider, logger); - object[] constructorRequiredParamerters = new object[] { 1, "TooMuch" }; + object[] constructorRequiredParamerters = [1, "TooMuch"]; IntegerRequiredClass? reflectedType = reflectorFactory.GetReflectedType(typeof(IntegerRequiredClass), constructorRequiredParamerters); diff --git a/src/Nikcio.UHeadless.UnitTests/Nikcio.UHeadless.UnitTests.csproj b/src/Nikcio.UHeadless.UnitTests/Nikcio.UHeadless.UnitTests.csproj index 87ab918b..8fbb1411 100644 --- a/src/Nikcio.UHeadless.UnitTests/Nikcio.UHeadless.UnitTests.csproj +++ b/src/Nikcio.UHeadless.UnitTests/Nikcio.UHeadless.UnitTests.csproj @@ -1,7 +1,7 @@ - + - net7.0 + net8.0 enable enable @@ -19,9 +19,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Nikcio.UHeadless.UnitTests/packages.lock.json b/src/Nikcio.UHeadless.UnitTests/packages.lock.json index 1728dbe6..948010f2 100644 --- a/src/Nikcio.UHeadless.UnitTests/packages.lock.json +++ b/src/Nikcio.UHeadless.UnitTests/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net7.0": { + "net8.0": { "coverlet.collector": { "type": "Direct", "requested": "[6.0.2, )", @@ -10,19 +10,19 @@ }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.9.0, )", - "resolved": "17.9.0", - "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", "dependencies": { - "Microsoft.CodeCoverage": "17.9.0", - "Microsoft.TestPlatform.TestHost": "17.9.0" + "Microsoft.CodeCoverage": "17.10.0", + "Microsoft.TestPlatform.TestHost": "17.10.0" } }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Direct", - "requested": "[17.9.28, )", - "resolved": "17.9.28", - "contentHash": "hNfIadilgBXbAOmV7LCdPSmLsUILA3QZhR4Wu9VbFDaHjtU3dCFRfJMbk45galt1pfffz4yI5qT9oUJl+F8mNQ==" + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "NSubstitute": { "type": "Direct", @@ -41,29 +41,66 @@ }, "xunit": { "type": "Direct", - "requested": "[2.7.1, )", - "resolved": "2.7.1", - "contentHash": "9o050yCLzPvHxbrAkaHnI1j+YfPvRw+/ncvKbTfzIhO4JvQA0rPgoICJxXHMkscfgXmLFwZ8107ehnMUVzE23A==", + "requested": "[2.8.0, )", + "resolved": "2.8.0", + "contentHash": "US3a3twJziAif1kFPGdk9fALwILHxV0n1roX5j67bN/d3o4DGNLHnV3tr5ZX+uinVrzfkf0avH3zGX8JPBC0qA==", "dependencies": { - "xunit.analyzers": "1.12.0", - "xunit.assert": "2.7.1", - "xunit.core": "[2.7.1]" + "xunit.analyzers": "1.13.0", + "xunit.assert": "2.8.0", + "xunit.core": "[2.8.0]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.5.8, )", - "resolved": "2.5.8", - "contentHash": "ZJTm71neOfZcUnqdyY0A0Qgcg1162DoOq6+VpCCsOaD9rwCK5alcjOEHeu17sEekzq4qNv3kyelx6lUMsAt/eA==" + "requested": "[2.8.0, )", + "resolved": "2.8.0", + "contentHash": "mqQbS2zr8dfgSWxkNOC6UTzO8JoqpTmM5+FFn2XR/2nVmx2JvEY0YbM5pt2FmXVg9YVe+jKUPHd6KrroyCl67w==" + }, + "Asp.Versioning.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "yujGpbGBCViHvYiBJD0S5XFgOI+f5bGvi8tnfMJV6EC0b8SAqBn1YC+yCnJjQo3D2XP9TmSuKIJ7ofVy58GcuQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Asp.Versioning.Http": { + "type": "Transitive", + "resolved": "7.1.0", + "contentHash": "Q1gPDssnFLeS3Avw/JABPzis4pjrG372RpFnB/9zp61hSuSf+Y+1O9twicNHDsmeWMkb/oNQo3vHgLr16jTdNw==", + "dependencies": { + "Asp.Versioning.Abstractions": "7.0.0" + } + }, + "Asp.Versioning.Mvc": { + "type": "Transitive", + "resolved": "7.1.1", + "contentHash": "hnTDqNwUlawVTDtHu8EhWvEGe6U5K83NJ3Aqf2Tz2mWq5qndzvcGKPGyfv2LTHfSK5h/Qv/ru+ssr/u5GSzjFQ==", + "dependencies": { + "Asp.Versioning.Http": "7.1.0" + } + }, + "Asp.Versioning.Mvc.ApiExplorer": { + "type": "Transitive", + "resolved": "7.1.0", + "contentHash": "SEqEAeOXH4bP5g5IzdRarmNCrUxbk4pu10zxu57hgnHop7mXikwoDshE1cI4ZcxN7soKLGw2qOgLjJTIim5fiw==", + "dependencies": { + "Asp.Versioning.Mvc": "7.1.0" + } }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "13.0.0", - "contentHash": "6Zj/vfmnCXLjBG7WNdtOgZZ5ZDR3Sy1FQSshZUonIYs3OdzozmsFmqPXMd9XJ0QE9aAildgVGq/lDLpLrMI4Yw==", + "resolved": "16.0.1", + "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", "dependencies": { - "Yarp.ReverseProxy": "2.0.1" + "Yarp.ReverseProxy": "2.1.0" } }, + "BouncyCastle.Cryptography": { + "type": "Transitive", + "resolved": "2.2.1", + "contentHash": "A6Zr52zVqJKt18ZBsTnX0qhG0kwIQftVAjLmszmkiR/trSp8H+xj1gUOzk7XHwaKgyREMSV1v9XaKrBUeIOdvQ==" + }, "Castle.Core": { "type": "Transitive", "resolved": "5.1.1", @@ -72,11 +109,6 @@ "System.Diagnostics.EventLog": "6.0.0" } }, - "CSharpTest.Net.Collections-NetStd2": { - "type": "Transitive", - "resolved": "14.906.1403.1084", - "contentHash": "g3QSH0PMiO+f2C6Za+uUvcdihnVs5IFbZ2cnKjCYA19l8en3fVe/Jl0qQS2te1xJzEOrY4ccen5/MY/QVoamcQ==" - }, "Dazinator.Extensions.FileProviders": { "type": "Transitive", "resolved": "2.0.0", @@ -96,19 +128,19 @@ }, "Examine": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "eIlGLnVgD5oWKHaK3ajQqcvYceSuRWWdXgbqp23Q61zgD61QvKFD00ZBqRL/F6pv1v1E90lOVuRl3Oya3wXIyA==", + "resolved": "3.1.0", + "contentHash": "PKr/jlHuNGSfuRemNdeJa56+nqLYYwgvU7cVrVJyG9wrUekaN1eyEYaWgG9SQLhGryoFKi7WBXuoAnKv2//Keg==", "dependencies": { - "Examine.Core": "3.0.1", - "Examine.Lucene": "3.0.1", + "Examine.Core": "3.1.0", + "Examine.Lucene": "3.1.0", "Microsoft.AspNetCore.DataProtection": "5.0.5", "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0" } }, "Examine.Core": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "7QMWHfcXbkSFBwfFq+oobp3M6tSDYjeU/DuY+dOohyDxEPJ5sOPQae2Qll+YLN5xxtX1/j7okkiVUynP6Upnnw==", + "resolved": "3.1.0", + "contentHash": "AIaDNKPP4fCw1fDHqnn2IzcrXwEozJvWGg/cvyNN4+SgYWlnyk8W0rvVwOa066UVPsrUH/WnpfTKWV+crnAHmA==", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "5.0.0", "Microsoft.Extensions.Options": "5.0.0" @@ -116,10 +148,10 @@ }, "Examine.Lucene": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "+3IOPaJBypQgH8xejB2B4jOMioET/7pdxVqwBNFXN5Z+GG1d8lG4zs4s64CGlbOYGYyqnqkCNfm+FNUK44iQYw==", + "resolved": "3.1.0", + "contentHash": "4vdhdqwhA/thL57nuYqT5vr1T/CN5eNeQ65JcgI1BqknJSnOQe63C3MWCCXfPK/Lno95zMCLx71cbWEwo6Geuw==", "dependencies": { - "Examine.Core": "3.0.1", + "Examine.Core": "3.1.0", "Lucene.Net.QueryParser": "4.8.0-beta00016", "Lucene.Net.Replicator": "4.8.0-beta00016", "System.Threading": "4.3.0", @@ -128,259 +160,254 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "T8ZYTsm0S48hi89d2symCvUEJoBkg5F+rfU+HFtkEOc7WLZsIBDStnfF3c890Vxjmx/P1tFpY5StDNTM+C6fIw==", + "resolved": "13.9.4", + "contentHash": "jkD4OWSR2CmdfyrO55/m/s2onSaAar/XpCMYQGo1y+qjcaEq93cgc8HL/i8hRdV4mVgfpW60DELREYZrBaiZSw==", "dependencies": { - "Microsoft.Extensions.ObjectPool": "7.0.0", - "System.Diagnostics.DiagnosticSource": "7.0.0", + "Microsoft.Extensions.ObjectPool": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", "System.Threading.Tasks.Extensions": "4.5.0" } }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "aGBAW6d9Oj1MfmKJF482yYdJ8G87yJ0rVFxU9l7lA1dg1xjc5XALLQO9jCPz4GCpQLetuAhHdkZ713imJ6WCPw==", + "resolved": "13.9.4", + "contentHash": "4tXT2Y6U3p1h1egdS3K2qu2re0QmxJH+2thYhKfDDXZaErfod6H1NVHZIBOTw4nFdgzpL8FiFUQuvzekEsNYmA==", "dependencies": { - "HotChocolate.Authorization": "13.9.0", - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Types.CursorPagination": "13.9.0", - "HotChocolate.Types.Mutations": "13.9.0", - "HotChocolate.Types.OffsetPagination": "13.9.0", - "HotChocolate.Validation": "13.9.0" + "HotChocolate.Authorization": "13.9.4", + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4", + "HotChocolate.Types.Mutations": "13.9.4", + "HotChocolate.Types.OffsetPagination": "13.9.4", + "HotChocolate.Validation": "13.9.4" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "mb3IPL8V4NRL2FUefZP20fSwIMOnE7uCMLiM4d5Y5cjljYaMUVzUJnvdW9C1tUfbodP49Llk9WnBCR6S9fr8mQ==", + "resolved": "13.9.4", + "contentHash": "82LweGM6vtF4Wc8NmbnNwZE8PeDOWHuY9oIR8zdi/O9XayaAFy2B5bIE5QFszlqTlaiRLW9y8NpCXQkAe0mVHQ==", "dependencies": { - "HotChocolate.Language": "13.9.0", - "System.Collections.Immutable": "7.0.0" + "HotChocolate.Language": "13.9.4", + "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.AspNetCore": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "RnxUdKEYOmsjzNPss473CYOug/9GIt8qlS9j8HxtZrW5TASM/9S7pDb7FthcDj4ag/D7wAwme3YxsqxH+iw5Bg==", + "resolved": "13.9.4", + "contentHash": "kW32o45UlqThLmS8rsukZjKUX2g3zNM8LhQmcS2AnFdCcCg4zWFhlR1UW1BEBv6QLsldaxJVEw5kuvwuLXSIGw==", "dependencies": { - "BananaCakePop.Middleware": "13.0.0", - "HotChocolate": "13.9.0", - "HotChocolate.Subscriptions.InMemory": "13.9.0", - "HotChocolate.Transport.Sockets": "13.9.0", - "HotChocolate.Types.Scalars.Upload": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0" + "BananaCakePop.Middleware": "16.0.1", + "HotChocolate": "13.9.4", + "HotChocolate.Subscriptions.InMemory": "13.9.4", + "HotChocolate.Transport.Sockets": "13.9.4", + "HotChocolate.Types.Scalars.Upload": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4" } }, "HotChocolate.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "z5eLUN9Uai7qLuyq6bwH6UrjYhd38f0tB9WRPjezY+/2Y8Fw2UVk2hz5FAKCr/jWC18njqTNuNateJ95IvwC6Q==", + "resolved": "13.9.4", + "contentHash": "zzxciNLZU1RVRprhiwlClyPSwdxr8G7AvQblZ9rt9EJM7fPgNFbNE9byNHN3tg7m5wEkwhsiE5ClIPH0DZGqFQ==", "dependencies": { - "HotChocolate": "13.9.0" + "HotChocolate": "13.9.4" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6CPA39zObNuMUmkmQ6J3zqmalukhjCiJS/klSEDPpwTtrn9HS/3edsh/7oiKzmUh6PNVKGed0lwkSdDP+DGZDQ==", + "resolved": "13.9.4", + "contentHash": "sU8nUTOHYwEAaZCnneMCzJs/rG+OtBme1cy+DaT3qxq9Oe6kD/kF1q1jRJjSa1juG/anOcmlu9haZZT0hotZ+g==", "dependencies": { - "HotChocolate.Execution": "13.9.0" + "HotChocolate.Execution": "13.9.4" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "zO1aG5qx5lzbZu/iKR56g+zeOgCCCa5pICwxijd1qEap+7J5q0YsME9RByw8wYPH+tNsXCvDcKaeAEcashB4cg==", + "resolved": "13.9.4", + "contentHash": "0CsRwTnG3T6nCpgXK/LI2/yn1vvHPIVDZ/NiRz01JCb4tBzsh6v1yGgT8siRhPaoBHlfryUiTbc/Rv1pp9drvw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0", - "HotChocolate.Validation": "13.9.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "System.Threading.Channels": "7.0.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4", + "HotChocolate.Validation": "13.9.4", + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "flySLPDyTtM4051tI3mh5Ue0fGrKFDuW3w0ebWmW2qjfuF4jgQzd3pK3ZxfkxAfpxQXyPaVn/Q7fae+fYQxeCg==", + "resolved": "13.9.4", + "contentHash": "hEIfNnbcsUtjXQSn37IL6LbN+iKUNcBt+4+hdb5EY2NUEmvZDwawsuNXzX/9UeE138xB/zdTkJu6p10cP6oHGQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "HotChocolate.Abstractions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "pIw7VlEABejQGLRnJGnO7iPdT40AHklf0psJp5zNXrq0IX+Vq7hRRqON73nubZv5Ofhh8fV3kugqYFKvzcptoA==", + "resolved": "13.9.4", + "contentHash": "3eh6WCocFbJ1Dtcg1oHmpNKcytwI/ZANQUv3mpsRtTT13wE7yXbzPXrZlBcWPFYv0NeJQ2v0kk4wAmRdYxyaYg==", "dependencies": { - "GreenDonut": "13.9.0", - "HotChocolate.Types": "13.9.0" + "GreenDonut": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "M8q0XHQm8Gtab+wKgYXfVPxScjdDE+INify5yaj6g1ZDkV3sLIeX+muu1WebrNO3DgmuAi6o3aW770Ucw7k/dw==", + "resolved": "13.9.4", + "contentHash": "ez1eHzpSz7+Fn+aqG62h6kKaOfktmMwUjaT9M5NWS5LqC81n/8HG4lr8UmbGywbEU9optCWo5GfICNpQItAHaw==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0", - "HotChocolate.Language.Utf8": "13.9.0", - "HotChocolate.Language.Visitors": "13.9.0", - "HotChocolate.Language.Web": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4", + "HotChocolate.Language.Utf8": "13.9.4", + "HotChocolate.Language.Visitors": "13.9.4", + "HotChocolate.Language.Web": "13.9.4" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "+vwrQ0qOiKn/yUBHn53030hQmqj45C1g0WI8sip50CPnkgs3bAPnDInUvrR3IiHbRn5spAonO4tFPtMDdJrEMA==", + "resolved": "13.9.4", + "contentHash": "mPfX23AflbB8nhvC3hAYn93r940UHwRmhZ5jXQ3yTHZOYZhlgJypa+4I5KF/CnTFrB36tWmA3LgXnN3pJ/VMvA==", "dependencies": { - "Microsoft.Extensions.ObjectPool": "7.0.0" + "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "IEWNYGvtwejf7+j+Xci25FaYets2UD8wkfzQ5dUCW47c1rnTAyuRdTiO8T8x6LYuZ7+SLg7UTBYgjv4ybwAUgA==", + "resolved": "13.9.4", + "contentHash": "+4GYr3eFPY3b2OZjByHKyOKlpY+bUGnwk0S39RW3z4KRRgv5NkYjPdI+O2iaVbIWBoJXBnb7QlEQWIj64FbbqA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "j6mPBkfVo2fopWYLoczXCoog4PJ+KwbHItSgHfPfI1kDBcNcy9XY4oxth3Uau1uBbfHYIFjnuVc+FrGb1f9KAQ==", + "resolved": "13.9.4", + "contentHash": "yJjnKtNw1gnze50n0vrsod+dS1AK8iGIgEbm9aKvIyLIaSVSQnvx5sXhX21JzKEJV7SegnvVbQdf1zhjOwTlEQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "GI5ufbNVEoKygSC09owVnCvw1Ma2KzOtm1l6uen3wKshAdOKB4gmSVCjzf71pNL2Nt6cL4IHa70ClqjECmu9qg==", + "resolved": "13.9.4", + "contentHash": "aa4ybXm9DdTpjcLvT6FfTPBYTz5xvYsg96J8OaVS0LSKeACHNrBRoF5qP5/cD01UXwSgdr19HqAki1H5D6gRtw==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.0" + "HotChocolate.Language.Utf8": "13.9.4" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "P3ason65NwSzkB2W9myV/pRIm4IMIWXH3RPCtpHVKx22Xw3hRJRJhjLBQZ5LCk5v3+7kKhXNBTbFNpbMyvez3Q==", + "resolved": "13.9.4", + "contentHash": "DRU8lN9sMhqVBAa4p/W47pvclrS+SBSzO9sWYbwDiO6OE/B3SlYSDE+Tqy66YAfcNHqFnx/Cx+rd7Kcc06nllw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "rj5U1Cd2QsjNnSNNdlSopYLtXh0kTZ1NlA1B3v02YFtj4Zu9le6QkGsl3oUljUUq46vSkkrT9ISj+e5wTCcw/Q==", + "resolved": "13.9.4", + "contentHash": "EUOHzVtVbMWQOPjCWGGmYXvIUM4K5rAYbGk6yO+76T+nVefZw/NgVb1lOx9Ii3Eo+cVBwEliPaJte7vm+HSRlA==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Subscriptions": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Subscriptions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "4hPlhS2bgqT/tYCZfPtbGtPAaedULKgTbFKkTsjigrDhJcVxBA36Gr3yGM6S3NEw2JdIgiwugYV1log9zXkEjA==", + "resolved": "13.9.4", + "contentHash": "tzLIUlpoadoAwDyPNRjtvtx0soe+fLMO//7IE/d49QFj5J/FM6pTzTuvAo7JafsmC+UU5uRGykTKXup9xdtLeA==", "dependencies": { - "System.IO.Pipelines": "7.0.0" + "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "VGPZePNC4sBlz/iY4x90zIRxW62MWzWNcl2yjLS3JcW+0W8KuKxh99dFLxL0WY/+Eoe8PUecmoob+FrVEvPzpg==", + "resolved": "13.9.4", + "contentHash": "Q7XywadsAIm1hf1v+YBMOe1fbjQYAtL+NNlPk7hgumUYVz5iSY/9WYwomMZl80id0Q1aP63hzOoEDY90Em6TrQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Types.Shared": "13.9.0", - "HotChocolate.Utilities": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.ObjectPool": "7.0.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Types.Shared": "13.9.4", + "HotChocolate.Utilities": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", - "System.Text.Json": "7.0.0" + "System.Text.Json": "8.0.0" } }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2+w6tLrdjo+d/aIKyoNW1L/OH/p+FACMwGWHk1P4MwAspqaF7zjy71qTeNks+8QbRwG8uMleey/0sbr8sWpC6w==", + "resolved": "13.9.4", + "contentHash": "sm7ZghRSWQQrde5aa7VZhi/QhSbuzB7yS4jUd5/CB9AOX3WFKjJ3uitY7crWV9scLxcDgaaiAwglF7wWFvubhw==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "NX1zLkb7t19Om5RYubmkA6yRCtBbca454rqSGKSVBYjDrsiA6+4ZDvmS9Kjbw8F+cPm3VqShenrIIgfW8bzCXQ==", + "resolved": "13.9.4", + "contentHash": "pndQvOY8CnoefzKQNCNaJ++r1gf4JbvKC3c3lf6jimqEE/UJMlE935JXwZCGxnUSJ6Npb14sVoOWGM6Kl5myEA==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "LIAaSVRS6FJCssP+s4ooLajhQ1/QfES78twX4OgZFJ9/UZMxXlU3K/IWeB2aXcJNkehfIZLgoiROnouB7ATepw==", + "resolved": "13.9.4", + "contentHash": "J4o/p/HRFNQCsApy1LFlwITVHtGaUlLLhismyi5QRL7CTwC5Lk1or5KlPYufyYgbs9X3BkASlmpr9vGmg+6Ypg==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "hisB6PGGgsekz3a8YJwKgvbZHED98eph9+TMPg5A500tyvrZS00fbdpjRcN+rcTKAxhJ5evzHB2Fo1m62Dyo4w==", + "resolved": "13.9.4", + "contentHash": "AAZLF9M6h80uh3BZjhaAbS3kch0+bDmetdki7bdo5HYiYRN2tuTT1+YblhfBzoh7726mROOtYRvk7h4DQBLWHw==", "dependencies": { - "HotChocolate.Types": "13.9.0" + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2lhdbXU/GltPQWO9r8qePZSzDo9ryFs8Wv0aF7aQgEq3dLvwer6OpvnZhIYmGua6bXXebA1PzBAEaaxPpLx3Wg==", + "resolved": "13.9.4", + "contentHash": "GqaSuucguc1OBH6sg52C1RobCvry8Fzm69r2QSzTHzSJVLBXAC0HNthkVl3GpuWW3c221fM+Yh9UiFfKNaeJ3w==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6zqwjROYxtuzAYjh31JnYKgM/MySRWEq4DHO64oSPFRJQ8NDgg7EvUU771yLt/6T7kUh+S6k25hVnmUipFtEnQ==" + "resolved": "13.9.4", + "contentHash": "g0kRiYho/nxA/QRkBY9n9ZjDqPEby3A33coBvFvkkfXXYRLyFr1P6XE3ZRt3ob35AxbvnWmXYxM3aUZR5u1mfg==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "o1ijY8Rk0IUAo8QZYhfQ8s4/3z78JS9tyXGHzA963gkzTSJPehD4960CAmWlyC19FdE1i2KiTnYLhNOwNoL6+A==", + "resolved": "13.9.4", + "contentHash": "a4SeiruZOBatY4QOksJ8Zlux0vN6s1KW1ydjWPUCcdgANDkDae/+zsbPLNNxiDhkpYovDVQW7gRYkgWoZ8vGKg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "7.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "gC7/YfOcOOmT+zV/V45CubYhK3lZI7+SmNYLGXQ1ko4cwjVRh3PzSJMAaKw3naWDcbjXbEyWwdYc0dLuoVBNEA==", + "resolved": "13.9.4", + "contentHash": "G0xU8wTZegjCBeiFdlHAQ8+27e1LVDwucjwmULZq1NdbH8EQJQnvjYOvM4XYaIhdqNi8Kn9AvUT2FM5LcBFhiQ==", "dependencies": { - "HotChocolate.Types": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "HotChocolate.Types": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "HtmlAgilityPack": { "type": "Transitive", - "resolved": "1.11.46", - "contentHash": "dLMn4EVfJBHWmWK4Uh0XGD76FPLHI0qr2Tm0s1m/xmgiHb1JUb9zB8AzO8HtrkBBlMN6JfCUBYddhqC0hZNR+g==" - }, - "IPNetwork2": { - "type": "Transitive", - "resolved": "2.6.508", - "contentHash": "gbD4m/i7VtBUaoGil1XWHO7LdJuT51bWAqdktZtPAPNawKmJrnWLsBui8QMzwBmq2LxX+Vv9/ryUCd/R0sXkWA==" + "resolved": "1.11.54", + "contentHash": "bgB79N4urc4D7hrD4R+Qk6CjPiYOfs6vfXNsmw3nCcfQEQvBQGjfAcl5k/tB1ZP1hA0d7xXs0jK8xAXV36IVUg==" }, "J2N": { "type": "Transitive", @@ -389,8 +416,8 @@ }, "K4os.Compression.LZ4": { "type": "Transitive", - "resolved": "1.2.16", - "contentHash": "XLNQWNayxeMgd1gv0s6kZywM11kww7rTzu3nPGh8fQNblHGbFt79LC1Sk1/QQ8DIJb2Qfl2p+WlLIOWCSuyi8w==" + "resolved": "1.3.6", + "contentHash": "RxGhoJBjZCgGeZgDqOP4Krs1cR9PHInbz6d2N19Dic0Y6ZACzVKbR3uSpqfEZf4RiUbHk9aiog2eS22nQPTc2A==" }, "Lucene.Net": { "type": "Transitive", @@ -474,10 +501,10 @@ }, "MailKit": { "type": "Transitive", - "resolved": "3.4.2", - "contentHash": "BRt9YHSr5LtxUeKrsJfxuJ5t5jb+6a2dRWWZvxt/5Tm3Z+nKJ3HBvw7SaMq2ze9e2x0Izw0SS8Q7H31PxBaXSg==", + "resolved": "4.3.0", + "contentHash": "jVmB3Nr0JpqhyMiXOGWMin+QvRKpucGpSFBCav9dG6jEJPdBV+yp1RHVpKzxZPfT+0adaBuZlMFdbIciZo1EWA==", "dependencies": { - "MimeKit": "3.4.2" + "MimeKit": "4.3.0" } }, "Markdown": { @@ -492,29 +519,38 @@ }, "MessagePack": { "type": "Transitive", - "resolved": "2.4.59", - "contentHash": "bj1NsZu4SckIIHxZcLc3+S64MiDRm+YlQi9MDsA+dt6x/QNiELftDQ9VQ88n3sgRzaniMqgfzO9pHXGoxcsKCQ==", + "resolved": "2.5.140", + "contentHash": "nkIsgy8BkIfv40bSz9XZb4q//scI1PF3AYeB5X66nSlIhBIqbdpLz8Qk3gHvnjV3RZglQLO/ityK3eNfLii2NA==", "dependencies": { - "MessagePack.Annotations": "2.4.59", - "Microsoft.NET.StringTools": "17.4.0" + "MessagePack.Annotations": "2.5.140", + "Microsoft.NET.StringTools": "17.6.3", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "MessagePack.Annotations": { "type": "Transitive", - "resolved": "2.4.59", - "contentHash": "3I1OxkqjiL0QEHnEJCia5TOeQuqVpYmNbprdw9uyIRXniei01ElWTS7Qcte+ionHM0KYiPWYhXQFJIeYb5Hbrg==" + "resolved": "2.5.140", + "contentHash": "JE3vwluOrsJ4t3hnfXzIxJUh6lhx6M/KR8Sark/HOUw1DJ5UKu5JsAnnuaQngg6poFkRx1lzHSLTkxHNJO7+uQ==" + }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "type": "Transitive", + "resolved": "8.0.5", + "contentHash": "VqKkXLxsCVHNmSdUIuBtDSXL3OqX0yfDjcZxCcYD8VFNpTutl53BCFHzMb3wvw3asneHnURzC2R8VvIXn3l5Lw==", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + } }, "Microsoft.AspNetCore.Cryptography.Internal": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "hFF+HOqtiNrGtO5ZxLVAFo1ksDLQWf8IHEmGRmcF9azlUWvDLZp8+W8gDyLBcGcY5m3ugEvKy/ncElxO4d0NtQ==" + "resolved": "8.0.0", + "contentHash": "buuMMCTxFcVkOkEftb2OafYxrveNGre9KJF4Oi1DkR4rxIj6oLam7Wq3g0Fp9hNVpJteKEPiupsxYnPrD/oUGA==" }, "Microsoft.AspNetCore.Cryptography.KeyDerivation": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "rCQddWkUxGmObeftM0YVyFOPcXkXDEWKGCc4F1viRLEL4ojIbdKwbOYBSf5hfWDR+NO0aGq8r3a8COvNYN/bZA==", + "resolved": "8.0.0", + "contentHash": "65w93R5wqUUs35R9wjHHDf75GqAbxJsNByKZo5TbQOWSXcUbLWrDUWBQHv78iXIT0PL1pXNqKQz7OHiHMvo0/A==", "dependencies": { - "Microsoft.AspNetCore.Cryptography.Internal": "7.0.0" + "Microsoft.AspNetCore.Cryptography.Internal": "8.0.0" } }, "Microsoft.AspNetCore.DataProtection": { @@ -583,20 +619,20 @@ }, "Microsoft.AspNetCore.JsonPatch": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "svHQiUvLNdI2nac68WNQHNo/ZWyavFpt3Oip09QRnWeFqG9iyakKiNLavXr6KE8y7KxEXZNld96KQYbKz8SJMQ==", + "resolved": "8.0.0", + "contentHash": "klQdb/9+j0u8MDjoqHEgDCPz8GRhfsbRVvZIM3glFqjs8uY7S1hS9RvKZuz8o4dS9NsEpFp4Jccd8CQuIYHK0g==", "dependencies": { "Microsoft.CSharp": "4.7.0", - "Newtonsoft.Json": "13.0.1" + "Newtonsoft.Json": "13.0.3" } }, "Microsoft.AspNetCore.Mvc.NewtonsoftJson": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IJOsB1cm6FYGXxhlNoWR6zZYFREEBzeFX76NlBGhrZ7+VMK4piLm3fAgUBliasyEUg5MOOqFz5EGv8nmU5rXWQ==", + "resolved": "8.0.0", + "contentHash": "/e5+eBvY759xiZJO+y1lHi4VzXqbDzTJSyCtKpaj3Ko2JAFQjiCOJ0ZHk2i4g4HpoSdXmzEXQsjr6dUX9U0/JA==", "dependencies": { - "Microsoft.AspNetCore.JsonPatch": "7.0.0", - "Newtonsoft.Json": "13.0.1", + "Microsoft.AspNetCore.JsonPatch": "8.0.0", + "Newtonsoft.Json": "13.0.3", "Newtonsoft.Json.Bson": "1.0.2" } }, @@ -611,12 +647,12 @@ }, "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "pAFncd2+yMmA0Z7QcFhf6xh6OxRwF2bi6PbAfXNGHEebf2tnJ4HkevQUGZlH6yTCu61TpsdNXLVsEnjbbDoH6A==", + "resolved": "8.0.0", + "contentHash": "HyLDtyWwpavSEFBOL0qOdymY8f+VwN5QhhE7gj3wBw53j9EA0ZcYkbfTvkhvMeV9PavgCcMIe4sAsBGEE/YnNA==", "dependencies": { "Microsoft.AspNetCore.Mvc.Razor.Extensions": "6.0.0", "Microsoft.CodeAnalysis.Razor": "6.0.0", - "Microsoft.Extensions.DependencyModel": "7.0.0" + "Microsoft.Extensions.DependencyModel": "8.0.0" } }, "Microsoft.AspNetCore.Razor.Language": { @@ -626,29 +662,26 @@ }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", - "resolved": "3.3.2", - "contentHash": "7xt6zTlIEizUgEsYAIgm37EbdkiMmr6fP6J9pDoKEpiGM4pi32BCPGr/IczmSJI9Zzp0a6HOzpr9OvpMP+2veA==" + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "d02ybMhUJl1r/dI6SkJPHrTiTzXBYCZeJdOLMckV+jyoMU/GGkjqFX/sRbv1K0QmlpwwKuLTiYVQvfYC+8ox2g==", + "resolved": "4.8.0", + "contentHash": "/jR+e/9aT+BApoQJABlVCKnnggGQbvGh7BKq2/wI1LamxC+LbzhcLj4Vj7gXCofl1n4E521YfF9w0WcASGg/KA==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.3.2", - "System.Collections.Immutable": "5.0.0", - "System.Memory": "4.5.4", - "System.Reflection.Metadata": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encoding.CodePages": "4.5.1", - "System.Threading.Tasks.Extensions": "4.5.4" + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "7.0.0", + "System.Reflection.Metadata": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "2UVTGtyQGgTCazvnT6t82f+7AV2L+kqJdyb61rT9GQed4yK+tVh5IkaKcsm70VqyZQhBbDqsfZFNHnY65xhrRw==", + "resolved": "4.8.0", + "contentHash": "+3+qfdb/aaGD8PZRCrsdobbzGs1m9u119SkkJt8e/mk3xLJz/udLtS2T6nY27OTXxBBw10HzAbC8Z9w08VyP/g==", "dependencies": { - "Microsoft.CodeAnalysis.Common": "[4.0.0]" + "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Razor": { @@ -663,8 +696,8 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" }, "Microsoft.CSharp": { "type": "Transitive", @@ -673,67 +706,67 @@ }, "Microsoft.Extensions.Caching.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", + "resolved": "8.0.0", + "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "tgU4u7bZsoS9MKVRiotVMAwHtbREHr5/5zSEV+JPhg46+ox47Au84E3D2IacAaB0bk5ePNaNieTlPrfjbbRJkg==", + "resolved": "8.0.0", + "contentHash": "mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==", + "resolved": "8.0.0", + "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==", "dependencies": { - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Physical": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==", + "resolved": "8.0.0", + "contentHash": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==", "dependencies": { - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "System.Text.Json": "7.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "System.Text.Json": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==", + "resolved": "8.0.0", + "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { @@ -743,19 +776,39 @@ }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "oONNYd71J3LzkWc4fUHl3SvMfiQMYUCo/mDHDEu76hYYxdhdrPYv6fvGv9nnKVyhE9P0h20AU8RZB5OOWQcAXg==", + "resolved": "8.0.0", + "contentHash": "NSmDw3K0ozNDgShSIpsZcbFIzBX4w28nDag+TfaQujkXGazBm+lid5onlWoCBy4VsLxqnnKjEBbGSJVWJMf43g==", + "dependencies": { + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3PZp/YSkIXrF7QK7PfC1bkyRYwqOHpWFad8Qx+4wkuumAeXo1NHaxpS9LboNA9OvNSAu+QOVlXbMyoY+pHSqcw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==", "dependencies": { - "System.Text.Encodings.Web": "7.0.0", - "System.Text.Json": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Composite": { @@ -769,77 +822,80 @@ }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "mh0rIIjKO7PiU7VPtC92LlIG2lpWVCnGIEqBk8ru2oMWEVQ/gJDizePv1fdmnljwC4e69jtYknXYmLNwm0dZEg==", + "resolved": "8.0.0", + "contentHash": "TuRh62KcoOvaSDCbtHT8K0WYptZysYQHPRRNfOgqF7ZUtUL4O0WMV8RdxbtDFJDsg3jv9bgHwXbrgwTeI9+5uQ==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "43n9Je09z0p/7ViPxfRqs5BUItRLNVh5b6JH40F2Agkh2NBsY/jpNYTtbCcxrHCsA3oRmbR6RJBzUutB4VZvNQ==", + "resolved": "8.0.0", + "contentHash": "AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Http": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "9Pq9f/CvOSz0t9yQa6g1uWpxa2sm13daLFm8EZwy9MaQUjKXWdNUXQwIxwhmba5N83UIqURiPHSNqGK1vfWF2w==", + "resolved": "8.0.0", + "contentHash": "cWz4caHwvx0emoYe7NkHPxII/KkTI8R/LC9qdqJqnKv2poTJ4e2qqPGQqvRoQ5kaSA4FU5IV3qFAuLuOhoqULQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Identity.Core": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "cq11jroq2szFcXLJ0IW5BlI7oqq3ZGCu1mXCnpJ8VIvhvpIzf30AOoWR/w3YRVdAgkYzxbUQpKGZd+oxAKQhLA==", + "resolved": "8.0.0", + "contentHash": "hnXHyIQc+uc2uNMcIbr43+oNBAPEhMpW6lE8ux3MOegRz50WBna4AItlZDY7Y+Id1LLBbf73osUqeTw7CQ371w==", "dependencies": { - "Microsoft.AspNetCore.Cryptography.KeyDerivation": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.AspNetCore.Cryptography.KeyDerivation": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Identity.Stores": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "feaaluQbzJAMMluwSc7Rebm7IEVAD8/5GWt0dMYLE0tcc6gAsHYjBIBrPzmTstORd7k405Qo18FPF/jTfRsM0A==", + "resolved": "8.0.0", + "contentHash": "DmDCpSpngZDBm44wVmxCeYs4HGJr/m32jMItp6pfb7KKtqWYw2vybHRg880j18k/eSFyM4v9uONsnEPgDdi9lg==", "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Identity.Core": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0" + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.Identity.Core": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0" } }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==", + "resolved": "8.0.0", + "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Logging.Abstractions": { @@ -852,53 +908,96 @@ }, "Microsoft.Extensions.ObjectPool": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA==" + "resolved": "8.0.0", + "contentHash": "4pm+XgxSukskwjzDDfSjG4KNUIOdFF2VaqZZDtTzoyQMOVSnlV6ZM8a9aVu5dg9LVZTB//utzSc8fOi0b0Mb2Q==" }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "lP1yBnTTU42cKpMozuafbvNtQ7QcBjr/CcK3bYOGEMH55Fjt+iecXjT6chR7vbgCMqy3PG3aNQSZgo/EuY/9qQ==", + "resolved": "8.0.0", + "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "95UnxZkkFdXxF6vSrtJsMHCzkDeSMuUWGs2hDT54cX+U5eVajrCJ3qLyQRW+CtpTt5OJ8bmTvpQVHu1DLhH+cA==", + "resolved": "8.0.0", + "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.Binder": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.DataAnnotations": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "57cONN+EcyypxCmDlaJOL7tdeYMiRNVZmv2m7hi41zAu03p+r6jbGTx7bykg3o4GYPRQjsi0FGhjLn5XuVHM1Q==", + "resolved": "8.0.0", + "contentHash": "z6p6q/N/hiU19A9tK7pjhXHpiYArO4oIICipxUviBEIOiDIoKRO7k6qItvw7alKcLtfHZOWmspuSKpvIvH0N8w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, - "Microsoft.NET.StringTools": { + "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "17.4.0", - "contentHash": "06T6Hqfs3JDIaBvJaBRFFMIdU7oE0OMab5Xl8LKQjWPxBQr3BgVFKMQPTC+GsSEuYREWmK6g5eOd7Xqd9p1YCA==", + "resolved": "7.1.2", + "contentHash": "33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==" + }, + "Microsoft.IdentityModel.JsonWebTokens": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==", "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, + "Microsoft.IdentityModel.Logging": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.1.2" + } + }, + "Microsoft.IdentityModel.Protocols": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "7.1.2" + } + }, + "Microsoft.IdentityModel.Tokens": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2" } }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.6.3", + "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==" + }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", @@ -911,18 +1010,18 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "1ilw/8vgmjLyKU+2SKXKXaOqpYFJCQfGqGz+x0cosl981VzjrY74Sv6qAJv+neZMZ9ZMxF3ArN6kotaQ4uvEBw==", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "Spmg7Wx49Ya3SxBjyeAR+nQpjMTKZwTwpZ7KyeOTIqI/WHNPnBU4HUvl5kuHPQAwGWqMy4FGZja1HvEwvoaDiA==", + "resolved": "17.10.0", + "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.9.0", + "Microsoft.TestPlatform.ObjectModel": "17.10.0", "Newtonsoft.Json": "13.0.1" } }, @@ -945,44 +1044,40 @@ "System.Security.Principal.Windows": "5.0.0" } }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==" - }, "MimeKit": { "type": "Transitive", - "resolved": "3.4.2", - "contentHash": "8bshZj8peXR9OaGb1fJJto6YWGG9zGGbDwY5Uylkz08mFU2tHKdkGtwMyFdtO6ZVq1aW41QYj+cN+4vRlE0O5Q==", + "resolved": "4.3.0", + "contentHash": "39KDXuERDy5VmHIn7NnCWvIVp/Ar4qnxZWg9m06DfRqDbW1B6zFv9o3Tdoa4CCu71tE/0SRqRCN5Z+bbffw6uw==", "dependencies": { - "Portable.BouncyCastle": "1.9.0", - "System.Security.Cryptography.Pkcs": "6.0.0" + "BouncyCastle.Cryptography": "2.2.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.Cryptography.Pkcs": "7.0.3", + "System.Text.Encoding.CodePages": "7.0.0" } }, "MiniProfiler.AspNetCore": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "bBirB5d4Q0Bgx05Zg4yzXSmOHZQV4ZJhmxU3DGya4FZxNBwjaVHchqEKY0MJW5XLZo8axMAQm4yywgCvUlTymA==", + "resolved": "4.3.8", + "contentHash": "dohMvXpjKDPv/edl7gwKhq80JBqRLLRSwVJB9bo0UYqsgEox7BZyYS/4vBty+UsZ59pYYYhMUpUKHVWLLj/PBw==", "dependencies": { - "MiniProfiler.Shared": "4.2.22", - "System.Text.Json": "4.6.0" + "MiniProfiler.Shared": "4.3.8" } }, "MiniProfiler.AspNetCore.Mvc": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "nzCEaZnh77U9jw+c/qu4CtwYUpHEf+FH1ZMbYKMzIXr8CNNPlypSR6AJEAwjo3bq9TIJIpBMZIaK3inRLUCg4g==", + "resolved": "4.3.8", + "contentHash": "aJ6Kkw2zMy36cKDWTjQYo/pJ6bhPBRA8z4NO8REe+xDhv8+fk58P526Bi52gnvsDp4jIVk5AQ8nQDgPUS/K+7A==", "dependencies": { - "MiniProfiler.AspNetCore": "4.2.22" + "MiniProfiler.AspNetCore": "4.3.8" } }, "MiniProfiler.Shared": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "OOA99Iu7FjFrdYaADcWL78KK9Kq6M+hfnZac5577aSrx0UYOM2apKlhBPKzoPtGPTRtQNKe4RK00u/FmahcU3g==", + "resolved": "4.3.8", + "contentHash": "SfXNX90fmDm373YAla0z06plTCj6YbByQJOm6G8/9kE6Hf4UALJxySyiMB9O4KYeTc6Ha1EFQDs6jLhio+bBFA==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Newtonsoft.Json": "10.0.3", + "Newtonsoft.Json": "13.0.1", "System.ComponentModel.Primitives": "4.3.0", "System.Data.Common": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.4.1", @@ -996,8 +1091,8 @@ }, "NCrontab": { "type": "Transitive", - "resolved": "3.3.1", - "contentHash": "G3tzcIIgsiyZyVbHNPyn5+adaM9UjeVNgjrRsvXU7wo2sMhpvpQrir29dcjIND53H/fuTdgg9nI3SfFFg7barA==" + "resolved": "3.3.3", + "contentHash": "2yzZXZLI0YpxrNgWnW/4xoo7ErLgWJIwTljRVEJ3hyjc7Kw9eGdjbFZGP1AhBuTUEZQ443PgZifG1yox6Qo1/A==" }, "NETStandard.Library": { "type": "Transitive", @@ -1052,8 +1147,8 @@ }, "Newtonsoft.Json": { "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "R2pZ3B0UjeyHShm9vG+Tu0EBb2lC8b0dFzV9gVn50ofHXh9Smjk6kTn7A/FdAsC8B5cKib1OnGYOXxRBz5XQDg==" + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Newtonsoft.Json.Bson": { "type": "Transitive", @@ -1065,8 +1160,8 @@ }, "NPoco": { "type": "Transitive", - "resolved": "5.5.0", - "contentHash": "11cUvapVGApwP7iiifIV3cgg7m2gBRY9qE3dMLof/ahtg0ZzuACbCBD8O6547Gg9Q4mqvgB7ZD+O0IiprF0lEQ==", + "resolved": "5.7.1", + "contentHash": "6qjyBqqc0TSK/xHjXA6tSZhABSDQqXGrTOIdUIVazPsmN0OyTaBTEtwV2wTV0NyfkzcRPhLyO6bIW89ZFNvlWg==", "dependencies": { "System.Linq.Async": "5.0.0", "System.Reflection.Emit.Lightweight": "4.7.0" @@ -1077,10 +1172,15 @@ "resolved": "1.20.2", "contentHash": "vz/SjCdpxr0Jp09VzMeezid7rwbXimik2QO1dzxzDcN3bXGJloDGDVh0zoD6DA23y6yrRzxv1ZKJ3kKzV3rqyA==" }, - "Portable.BouncyCastle": { + "OpenIddict.Abstractions": { "type": "Transitive", - "resolved": "1.9.0", - "contentHash": "eZZBCABzVOek+id9Xy04HhmgykF0wZg9wpByzrWN7q8qEI0Qen9b7tfd7w8VA3dOeesumMG7C5ZPy0jk7PSRHw==" + "resolved": "4.10.1", + "contentHash": "r2oCgsk8hG82TmT5g7yTzGLrmZGTwn6/zISMXqqpM9rjQUH0/FZ7NgwJy0f1j+HZSyBNj3jjYQIjx6a7qYBYqA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.IdentityModel.Tokens": "7.0.0" + } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -1191,8 +1291,25 @@ }, "Serilog": { "type": "Transitive", - "resolved": "2.12.0", - "contentHash": "xaiJLIdu6rYMKfQMYUZgTy8YK7SMZjB4Yk50C/u//Z4OsvxkUfSPJy4nknfvwAC34yr13q7kcyh4grbwhSxyZg==" + "resolved": "3.1.1", + "contentHash": "P6G4/4Kt9bT635bhuwdXlJ2SCqqn2nhh4gqFqQueCOr9bK/e7W9ll/IoX1Ter948cV2Z/5+5v8pAfJYUISY03A==" + }, + "Serilog.AspNetCore": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FAjtKPZ4IzqFQBqZKPv6evcXK/F0ls7RoXI/62Pnx2igkDZ6nZ/jn/C/FxVATqQbEQvtqP+KViWYIe4NZIHa2w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1", + "Serilog.Extensions.Hosting": "8.0.0", + "Serilog.Extensions.Logging": "8.0.0", + "Serilog.Formatting.Compact": "2.0.0", + "Serilog.Settings.Configuration": "8.0.0", + "Serilog.Sinks.Console": "5.0.0", + "Serilog.Sinks.Debug": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } }, "Serilog.Enrichers.Process": { "type": "Transitive", @@ -1212,58 +1329,58 @@ }, "Serilog.Expressions": { "type": "Transitive", - "resolved": "3.4.1", - "contentHash": "0gcR+7/0g4WYQlbxWWuTNYdUkrwHdnD60it4kY9yX3Djm1DFcrHRO6gynYaxPb8vcPFuGRZwpA2mowCFRm6MYg==", + "resolved": "4.0.0", + "contentHash": "dsC8GtalMDXMzywA60fHeBvqAjQ1EM75zSrdA7j7TxJfmrfss6BOxzgoT5thqjY+icLNbovUsC5KTYRlXzCpXg==", "dependencies": { - "Serilog": "2.10.0" + "Serilog": "3.1.0" } }, "Serilog.Extensions.Hosting": { "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "o0VUyt3npAqOJaZ6CiWLFeLYs3CYJwfcAqaUqprzsmj7qYIvorcn8cZLVR8AQX6vzX7gee2bD0sQeA17iO2/Aw==", + "resolved": "8.0.0", + "contentHash": "db0OcbWeSCvYQkHWu6n0v40N4kKaTAXNjlM3BKvcbwvNzYphQFcBR+36eQ/7hMMwOkJvAyLC2a9/jNdUL5NjtQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.8", - "Microsoft.Extensions.Hosting.Abstractions": "3.1.8", - "Microsoft.Extensions.Logging.Abstractions": "3.1.8", - "Serilog": "2.10.0", - "Serilog.Extensions.Logging": "3.1.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Serilog": "3.1.1", + "Serilog.Extensions.Logging": "8.0.0" } }, "Serilog.Extensions.Logging": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "resolved": "8.0.0", + "contentHash": "YEAMWu1UnWgf1c1KP85l1SgXGfiVo0Rz6x08pCiPOIBt2Qe18tcZLvdBUuV5o1QHvrs8FAry9wTIhgBRtjIlEg==", "dependencies": { - "Microsoft.Extensions.Logging": "2.0.0", - "Serilog": "2.9.0" + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Formatting.Compact": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "pNroKVjo+rDqlxNG5PXkRLpfSCuDOBY0ri6jp9PLe505ljqwhwZz8ospy2vWhQlFu5GkIesh3FcDs4n7sWZODA==", + "resolved": "2.0.0", + "contentHash": "ob6z3ikzFM3D1xalhFuBIK1IOWf+XrQq+H4KeH4VqBcPpNcmUgZlRQ2h3Q7wvthpdZBBoY86qZOI2LCXNaLlNA==", "dependencies": { - "Serilog": "2.8.0" + "Serilog": "3.1.0" } }, "Serilog.Formatting.Compact.Reader": { "type": "Transitive", - "resolved": "2.0.0", - "contentHash": "ALNnPArxSiQDLfHFeR0JrmW8/T6M9Attd/g9w0nm/wxrpCcPCVc3v5CZDYW9jpwMQbrfZ/2A8e1D0vfd6DAcGw==", + "resolved": "3.0.0", + "contentHash": "A4tBQ36969szfQMwnxaikNKxQs7lcGLPPcv45ghr3RrJK9hko71t8TNSdMSAWU25ZK6JSmH/RU14GwSo4v5E4Q==", "dependencies": { - "Newtonsoft.Json": "13.0.1", - "Serilog": "2.3.0" + "Newtonsoft.Json": "13.0.3", + "Serilog": "3.1.0" } }, "Serilog.Settings.Configuration": { "type": "Transitive", - "resolved": "3.4.0", - "contentHash": "ULloXSiapTb3zOWodC0G4WRDQzA5RjMEfZNZzOZpH8kC3t/lrISLblklIpKC44CX0sMDF40MnJwTIQ3pFQFs4g==", + "resolved": "8.0.0", + "contentHash": "nR0iL5HwKj5v6ULo3/zpP8NMcq9E2pxYA6XKTSWCbugVs4YqPyvaqaKOY+OMpPivKp7zMEpax2UKHnDodbRB0Q==", "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "2.0.0", - "Microsoft.Extensions.DependencyModel": "3.0.0", - "Serilog": "2.10.0" + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyModel": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Sinks.Async": { @@ -1274,6 +1391,22 @@ "Serilog": "2.9.0" } }, + "Serilog.Sinks.Console": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "IZ6bn79k+3SRXOBpwSOClUHikSkp2toGPCZ0teUkscv4dpDg9E2R2xVsNkLmwddE4OpNVO3N0xiYsAH556vN8Q==", + "dependencies": { + "Serilog": "3.1.0" + } + }, + "Serilog.Sinks.Debug": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==", + "dependencies": { + "Serilog": "2.10.0" + } + }, "Serilog.Sinks.File": { "type": "Transitive", "resolved": "5.0.0", @@ -1292,16 +1425,16 @@ }, "Smidge": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "8b6Av/P44s1jc8d5MKrXaiv7J3G4wI4Ew5COk/FLCF5iqA0471lZ9J8Ew9mb6Nr9zD3mNwxjWnW2k9BzcUgcog==", + "resolved": "4.3.0", + "contentHash": "AnRsxwg4Av7jxa0MkQMbLqdIrWbVZRVQ0KfnO4Mh19Old7lay179QvBnaOPFxAEWnIl4jHiZW8izesJp6TknVw==", "dependencies": { - "Smidge.Core": "4.2.0" + "Smidge.Core": "4.3.0" } }, "Smidge.Core": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "LQlEtYUNVqK0/jj/kXgIgQrgwteJ7/7dK3GS5vnK8jYpJj201Etidt8IPbp6hmLJ+uOUL530XS0ZDg0xW5YoHg==", + "resolved": "4.3.0", + "contentHash": "B6m6uGpJrOKaJ68eE9clAzZUcURszTNHfoYa4razb3KUJtRXB5fmZvts8+0ffT0/tO09Vu2O/KFfiSZMp6X8Jw==", "dependencies": { "Microsoft.AspNetCore.Http.Features": "5.0.0", "Microsoft.Extensions.Configuration": "5.0.0", @@ -1314,21 +1447,21 @@ }, "Smidge.InMemory": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "EFVXwKLF6/RSI0EP7D+LSDI04Y1V2XYHZT2rOzWVqMhMmPtKosxnGRv235qbyYWM4ci3u08lca3T3SWA61/QMw==", + "resolved": "4.3.0", + "contentHash": "fKyR6ICS0YoQLX0D4dIIYTwQEM1IZb8ChYhqLGpVyJ7GiOAawsXt4ZcVnH0XT+ggan2+JzQlLiXGcCdXnb16Xg==", "dependencies": { "Dazinator.Extensions.FileProviders": "2.0.0", - "Smidge.Core": "4.2.0", + "Smidge.Core": "4.3.0", "System.Text.Encodings.Web": "5.0.1" } }, "Smidge.Nuglify": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "tqBk9P1+cSjN6SnvINyvIvpoIrA337jnBvBvxJi9UquLyDP7dc3mkxkfsqUhQMYFNJ3hMMqg+VGAa5XsxzNWUA==", + "resolved": "4.3.0", + "contentHash": "kx5Ulh+o5zLI0Al0POs0nYPldUArErmrAxxccrrxl77MWWrDM3KS5IRWuKDtC42/sZKSzapmJIOwJ8r/1foMCg==", "dependencies": { "Nuglify": "1.20.2", - "Smidge": "4.2.0" + "Smidge": "4.3.0" } }, "System.AppContext": { @@ -1380,8 +1513,8 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==" + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.ComponentModel": { "type": "Transitive", @@ -1408,12 +1541,11 @@ }, "System.Configuration.ConfigurationManager": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "WvRUdlL1lB0dTRZSs5XcQOd5q9MYNk90GkbmRmiCvRHThWiojkpGqWdmEDJdXyHbxG/BhE5hmVbMfRLXW9FJVA==", + "resolved": "8.0.0", + "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { - "System.Diagnostics.EventLog": "7.0.0", - "System.Security.Cryptography.ProtectedData": "7.0.0", - "System.Security.Permissions": "7.0.0" + "System.Diagnostics.EventLog": "8.0.0", + "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { @@ -1455,13 +1587,13 @@ }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "9W0ewWDuAyDqS2PigdTxk6jDKonfgscY/hP8hm7VpxYhNHZHKvZTdRckberlFk3VnCmr3xBUyMBut12Q+T2aOw==" + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==" }, "System.Diagnostics.EventLog": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" + "resolved": "8.0.0", + "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.StackTrace": { "type": "Transitive", @@ -1494,14 +1626,6 @@ "System.Runtime": "4.3.0" } }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "7.0.0" - } - }, "System.Dynamic.Runtime": { "type": "Transitive", "resolved": "4.3.0", @@ -1525,8 +1649,8 @@ }, "System.Formats.Asn1": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "+nfpV0afLmvJW8+pLlHxRjz3oZJw4fkyU9MMEaMhCsHi/SN9bGF9q79ROubDiwTiCHezmK0uCWkPP7tGFP/4yg==" + "resolved": "8.0.0", + "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==" }, "System.Globalization": { "type": "Transitive", @@ -1562,6 +1686,15 @@ "System.Runtime.InteropServices": "4.3.0" } }, + "System.IdentityModel.Tokens.Jwt": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", @@ -1627,15 +1760,6 @@ "System.Threading.Tasks": "4.3.0" } }, - "System.IO.FileSystem.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", @@ -1651,8 +1775,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -1695,11 +1819,6 @@ "System.Threading": "4.3.0" } }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" - }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", @@ -1821,8 +1940,11 @@ }, "System.Reflection.Metadata": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==" + "resolved": "7.0.0", + "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", + "dependencies": { + "System.Collections.Immutable": "7.0.0" + } }, "System.Reflection.Primitives": { "type": "Transitive", @@ -1866,10 +1988,10 @@ }, "System.Runtime.Caching": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "M0riW7Zgxca3Elp1iZVhzH7PWWT5bPSrdMFGCAGoH1n9YLuXOYE78ryui051Icf3swWWa8feBRoSxOCYwgMy8w==", + "resolved": "8.0.0", + "contentHash": "4TmlmvGp4kzZomm7J2HJn6IIx0UUrQyhBDyb5O1XiunZlQImXW+B8b7W/sTPcXhSf9rp5NR5aDtQllwbB5elOQ==", "dependencies": { - "System.Configuration.ConfigurationManager": "7.0.0" + "System.Configuration.ConfigurationManager": "8.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { @@ -2053,10 +2175,10 @@ }, "System.Security.Cryptography.Pkcs": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "mjUbEXkR6DYRef6dnEYKdfec9otcAkibExL+1f9hmbGlWIUyaCnS3Y3oGZEet38waXmuY1ORE8vgv4sgD5nMYg==", + "resolved": "8.0.0", + "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==", "dependencies": { - "System.Formats.Asn1": "7.0.0" + "System.Formats.Asn1": "8.0.0" } }, "System.Security.Cryptography.Primitives": { @@ -2075,8 +2197,8 @@ }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==" + "resolved": "8.0.0", + "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", @@ -2112,18 +2234,10 @@ }, "System.Security.Cryptography.Xml": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "LHc5PUypYGAMNf/2DzCxOXREKamwCtdUtxb/WpCnHngORVYZbUdSMnm1PcKvEvzKUTKSC0CL6aVAywzbEEeNQg==", + "resolved": "8.0.0", + "contentHash": "HQSFbakswZ1OXFz2Bt3AJlC6ENDqWeVpgqhf213xqQUMDifzydOHIKVb1RV4prayobvR3ETIScMaQdDF2hwGZA==", "dependencies": { - "System.Security.Cryptography.Pkcs": "7.0.0" - } - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "Vmp0iRmCEno9BWiskOW5pxJ3d9n+jUqKxvX4GhLwFhnQaySZmBN2FuC0N5gjFHgyFMUjC5sfIJ8KZfoJwkcMmA==", - "dependencies": { - "System.Windows.Extensions": "7.0.0" + "System.Security.Cryptography.Pkcs": "8.0.0" } }, "System.Security.Principal.Windows": { @@ -2143,12 +2257,8 @@ }, "System.Text.Encoding.CodePages": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", - "dependencies": { - "Microsoft.NETCore.Platforms": "2.1.2", - "System.Runtime.CompilerServices.Unsafe": "4.5.2" - } + "resolved": "7.0.0", + "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", @@ -2163,15 +2273,15 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" + "resolved": "8.0.0", + "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" }, "System.Text.Json": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "DaGSsVqKsn/ia6RG8frjwmJonfos0srquhw09TlT8KRw5I43E+4gs+/bZj4K0vShJ5H9imCuXupb4RmS+dBy3w==", + "resolved": "8.0.0", + "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", "dependencies": { - "System.Text.Encodings.Web": "7.0.0" + "System.Text.Encodings.Web": "8.0.0" } }, "System.Text.RegularExpressions": { @@ -2202,8 +2312,8 @@ }, "System.Threading.Channels": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" + "resolved": "8.0.0", + "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==" }, "System.Threading.Tasks": { "type": "Transitive", @@ -2215,15 +2325,10 @@ "System.Runtime": "4.3.0" } }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "BmSJ4b0e2nlplV/RdWVxvH7WECTHACofv06dx/JwOYc0n56eK1jIWdQKNYYsReSO4w8n1QA5stOzSQcfaVBkJg==" - }, "System.Threading.Tasks.Extensions": { "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" + "resolved": "4.5.0", + "contentHash": "csAJe24tWCOTO/rXoJAuBGuOq7ZdHY60XtC6b/hNMHT9tuX+2J9HK7nciLEtNvnrRLMxBACLXO3R4y5+kCduMA==" }, "System.Threading.Tasks.Parallel": { "type": "Transitive", @@ -2250,14 +2355,6 @@ "System.Runtime": "4.3.0" } }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "bR4qdCmssMMbo9Fatci49An5B1UaVJZHKNq70PRgzoLYIlitb8Tj7ns/Xt5Pz1CkERiTjcVBDU2y1AVrPBYkaw==", - "dependencies": { - "System.Drawing.Common": "7.0.0" - } - }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", @@ -2301,103 +2398,102 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "IkVx8W8Ey4Ca6Jkjgy3XGy8Y/Ui7lX0Q+X4LaUws6oReFfwMokwLX4eK9IvuVyerkxE0Hz94dh/OqOjziv/XPw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Embedded": "7.0.0", - "Microsoft.Extensions.FileProviders.Physical": "7.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "7.0.0", - "Microsoft.Extensions.Identity.Core": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "7.0.0", - "Microsoft.Extensions.Options.DataAnnotations": "7.0.0", - "System.ComponentModel.Annotations": "5.0.0", - "System.Net.Http": "4.3.4", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Runtime.Caching": "7.0.0", - "System.Security.Cryptography.Xml": "7.0.0", - "System.Text.RegularExpressions": "4.3.1" + "resolved": "13.0.0", + "contentHash": "0/ODOagfKr4Rhwfc6s8WjexXI3n9bnFzUR1GFHiSs4C24dZFDJzdSgrRSuFl1ZoqzIkt3VP815WAEQm66D+SVw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Embedded": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Identity.Core": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0", + "Microsoft.Extensions.Options.DataAnnotations": "8.0.0", + "System.Runtime.Caching": "8.0.0" } }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "U5jzb0XtHqTZKveC2TPBtPzrUzxPdxo+504JKE0CsEtOpaJfu3sYC/Tsq5OFfUsTr+i2noJ5JbXqSUonbdp9wg==", + "resolved": "13.0.0", + "contentHash": "JuEVmuPz0sCo9z6Z3FQZSxWJPYHSfXyZRRNRXFQu0j3g1pXKaJaFcMQmAeXPR2KJzuuvWKM+gzMgVDUUG03gVw==", "dependencies": { - "Examine": "3.0.1", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0" + "Examine": "3.1.0", + "System.Security.Cryptography.Xml": "8.0.0", + "Umbraco.Cms.Infrastructure": "[13.0.0, 14.0.0)" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "UvchDhuoXdNB1/fRvIhOd7ilACKhsB04E3mDSEEwgKnhOHBWriz+jAG07CfEyA6869aUit9BsWwQV5oPpGJHZg==", + "resolved": "13.0.0", + "contentHash": "k1e5j8Pad1uRz0KtdkV0z4T2kMLzUFHG/5ITUUZt3qNqINGxis8BwNlscitJQQU3eSDICsxBTdJxhj4QUU3JsQ==", "dependencies": { - "Examine.Core": "3.0.1", - "HtmlAgilityPack": "1.11.46", - "IPNetwork2": "2.6.508", - "MailKit": "3.4.2", + "Examine.Core": "3.1.0", + "HtmlAgilityPack": "1.11.54", + "MailKit": "4.3.0", "Markdown": "2.2.1", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.Json": "7.0.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Microsoft.Extensions.Http": "7.0.0", - "Microsoft.Extensions.Identity.Stores": "7.0.0", - "MiniProfiler.Shared": "4.2.22", - "NPoco": "5.5.0", - "Newtonsoft.Json": "13.0.2", - "Serilog": "2.12.0", + "Microsoft.CodeAnalysis.CSharp": "4.8.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.0", + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Http": "8.0.0", + "Microsoft.Extensions.Identity.Stores": "8.0.0", + "MiniProfiler.Shared": "4.3.8", + "NPoco": "5.7.1", + "Newtonsoft.Json": "13.0.3", + "OpenIddict.Abstractions": "4.10.1", + "Serilog": "3.1.1", "Serilog.Enrichers.Process": "2.0.2", "Serilog.Enrichers.Thread": "3.1.0", - "Serilog.Expressions": "3.4.1", - "Serilog.Extensions.Hosting": "5.0.1", - "Serilog.Formatting.Compact": "1.1.0", - "Serilog.Formatting.Compact.Reader": "2.0.0", - "Serilog.Settings.Configuration": "3.4.0", + "Serilog.Expressions": "4.0.0", + "Serilog.Extensions.Hosting": "8.0.0", + "Serilog.Formatting.Compact": "2.0.0", + "Serilog.Formatting.Compact.Reader": "3.0.0", + "Serilog.Settings.Configuration": "8.0.0", "Serilog.Sinks.Async": "1.5.0", "Serilog.Sinks.File": "5.0.0", "Serilog.Sinks.Map": "1.0.2", - "System.IO.FileSystem.AccessControl": "5.0.0", - "System.Security.Cryptography.Pkcs": "7.0.0", - "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "11.0.0", - "ncrontab": "3.3.1" + "Umbraco.Cms.Core": "[13.0.0, 14.0.0)", + "ncrontab": "3.3.3" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "xa17/gfrI4258Tig6X3Zi1H1XkR37cvnH2a4ZeoMBwyfLLmGSaxsKb5u7gKoMbG3y8KIbqanLvb+TD7cDLFE7g==", + "resolved": "13.0.0", + "contentHash": "k9OQi8Z0k4bLPrUkc++IpJ2Ube/LqjzFmenZkScUQuxoJ3ou7uNfot82IEGxm4FxlRf20x7oUj+kBx47pn97gg==", "dependencies": { - "CSharpTest.Net.Collections-NetStd2": "14.906.1403.1084", - "K4os.Compression.LZ4": "1.2.16", - "MessagePack": "2.4.59", - "Newtonsoft.Json": "13.0.2", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0" + "K4os.Compression.LZ4": "1.3.6", + "MessagePack": "2.5.140", + "Newtonsoft.Json": "13.0.3", + "Umbraco.CSharpTest.Net.Collections": "15.0.0", + "Umbraco.Cms.Infrastructure": "[13.0.0, 14.0.0)" } }, "Umbraco.Cms.Web.Common": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "EVEu4yNMQ8/cFzmZo39wCopFQVY/If+SLburUIZL7ibuQpEXaNa/E9Lz4INdqaddtnz0jdcgokB9jvt2tBms5w==", + "resolved": "13.0.0", + "contentHash": "pTV4p56KsP6yIwYLTgpYQ3WeGumdJRNZo23rblOupcKl7w6wxQ2aiPweVbv7rWIILYoDVejV7z6O5CRHDqmi8g==", "dependencies": { + "Asp.Versioning.Mvc": "7.1.1", + "Asp.Versioning.Mvc.ApiExplorer": "7.1.0", "Dazinator.Extensions.FileProviders": "2.0.0", - "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "7.0.0", - "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "7.0.0", - "MiniProfiler.AspNetCore.Mvc": "4.2.22", - "Smidge.InMemory": "4.2.0", - "Smidge.Nuglify": "4.2.0", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Examine.Lucene": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "11.0.0" + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "8.0.0", + "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "8.0.0", + "MiniProfiler.AspNetCore.Mvc": "4.3.8", + "Serilog.AspNetCore": "8.0.0", + "Smidge.InMemory": "4.3.0", + "Smidge.Nuglify": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Text.RegularExpressions": "4.3.1", + "Umbraco.Cms.Examine.Lucene": "[13.0.0, 14.0.0)", + "Umbraco.Cms.PublishedCache.NuCache": "[13.0.0, 14.0.0)" } }, + "Umbraco.CSharpTest.Net.Collections": { + "type": "Transitive", + "resolved": "15.0.0", + "contentHash": "YSDIkxq44VMy2N3jBTwJBJ/ZjGyuyb0GRyfQAUIma07dCHIbjXgKXjZaAxVa6ik3XTqgcyATvwYJL0EBtAClwA==" + }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", @@ -2405,43 +2501,43 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.12.0", - "contentHash": "w23LH3aXade2WXKvXi0oA/uV15fpgUMjsPq1x91iQckzgWApgAiijNHmfFQtqNPm41wfrdbRl7nSJRd0yux/dw==" + "resolved": "1.13.0", + "contentHash": "Pai9YnDV71/Ox14nBHB6/f62iyPyLbmUG/YYMiA4dfdFZvr0gIYE9yGxSr0i5Tr3INK75wgL2MCUNEKpeiZ2Fw==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "JqvXS4yX+PtJn5BuqoKkYav7I0g4nXcxRbGTomDwVQjFccOdyfYKpuPOHX/DqrPCcL+MIHrGVdP3bveUXlvdnA==" + "resolved": "2.8.0", + "contentHash": "lwf7Dy5/5HbDkaPx1YrGXCByytCEEcIn+KPI74jh2BD/RU/7RhO8c+S3k0Ph+Mr7+cLf338fl+o6UcgPCLa6PA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "hcODgS+RXdjmXq0zQzmRbERQgY+bAGGx1bdH3370t/8CTGmIEU2qAc1dQAjIRpARsacR0cj6LLJDUF5BNQNKTQ==", + "resolved": "2.8.0", + "contentHash": "McSTFGTETCxLpmJKE9TWi9FtFthrRbpRrjz2V2g8sK2wRt1+JHs15vwi+B+nfftFkV9aFWIXZfzZM95TIGZNIA==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]", - "xunit.extensibility.execution": "[2.7.1]" + "xunit.extensibility.core": "[2.8.0]", + "xunit.extensibility.execution": "[2.8.0]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "yLX4XlBFkvNYCzf+DEzlNk45KsSlu9W93IJHBmtUP96qZ9XyRYDFlwMj6BCcOhDKVNrZxSM8bqu4F/Qud4ehxA==", + "resolved": "2.8.0", + "contentHash": "eBJv9xQeY0p5z+C/L1tFjUFYqtl5pQqIEYCGTMl+MbRzA7sOlgYKwJE//vEePBp+mgBh7NjD0Qhz0liZBYM27w==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "ei3dKF8agj4UKkJ6KkaZ5/Gcif3if6hBsyzegIQJonZDSKZFvb0AyKtyOhDfggBaXVL5iXZExITdRkfjC95yhw==", + "resolved": "2.8.0", + "contentHash": "TyyrZesHB9ODZMS9c73OqiBz4x0vL944JCkSPBWW5w6PF2LlUfdfXRjjOhoIOuY6lTmEgl07rS4/Jot9mCYnpg==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]" + "xunit.extensibility.core": "[2.8.0]" } }, "Yarp.ReverseProxy": { "type": "Transitive", - "resolved": "2.0.1", - "contentHash": "op7vBwONPFeR1PYxeLw+RLqSodODDX8RWd0OinLGMVIq6yi1q9mv1j56ImuyZgiAToksiC0Dc7jbRUZ9I+jvFA==", + "resolved": "2.1.0", + "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==", "dependencies": { "System.IO.Hashing": "7.0.0" } @@ -2449,11 +2545,12 @@ "nikcio.uheadless": { "type": "Project", "dependencies": { - "HotChocolate.AspNetCore": "[13.9.0, )", - "HotChocolate.AspNetCore.Authorization": "[13.9.0, )", + "HotChocolate.AspNetCore": "[13.9.4, )", + "HotChocolate.AspNetCore.Authorization": "[13.9.4, )", + "Microsoft.AspNetCore.Authentication.JwtBearer": "[8.0.5, )", "Microsoft.Extensions.DependencyInjection.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", - "Umbraco.Cms.Web.Common": "[11.0.0, )" + "Umbraco.Cms.Web.Common": "[13.0.0, )" } } } diff --git a/src/Nikcio.UHeadless/ContentItems/ContentItemBase.Utils.cs b/src/Nikcio.UHeadless/ContentItems/ContentItemBase.Utils.cs index 3a79fb27..868fd471 100644 --- a/src/Nikcio.UHeadless/ContentItems/ContentItemBase.Utils.cs +++ b/src/Nikcio.UHeadless/ContentItems/ContentItemBase.Utils.cs @@ -10,7 +10,7 @@ public partial class ContentItemBase ArgumentNullException.ThrowIfNull(command); ArgumentNullException.ThrowIfNull(dependencyReflectorFactory); - TContentItem? createdContent = dependencyReflectorFactory.GetReflectedType(typeof(TContentItem), new object[] { command }); + TContentItem? createdContent = dependencyReflectorFactory.GetReflectedType(typeof(TContentItem), [command]); if (createdContent == null) { diff --git a/src/Nikcio.UHeadless/Defaults/AlwaysAllowAuthorizationHandler.cs b/src/Nikcio.UHeadless/Defaults/Authorization/AlwaysAllowAuthorizationHandler.cs similarity index 52% rename from src/Nikcio.UHeadless/Defaults/AlwaysAllowAuthorizationHandler.cs rename to src/Nikcio.UHeadless/Defaults/Authorization/AlwaysAllowAuthorizationHandler.cs index f7ef96e9..3028d90f 100644 --- a/src/Nikcio.UHeadless/Defaults/AlwaysAllowAuthorizationHandler.cs +++ b/src/Nikcio.UHeadless/Defaults/Authorization/AlwaysAllowAuthorizationHandler.cs @@ -1,12 +1,12 @@ using Microsoft.AspNetCore.Authorization; -namespace Nikcio.UHeadless.Defaults; +namespace Nikcio.UHeadless.Defaults.Authorization; -internal class AlwaysAllowAuthoriaztionRequirement : IAuthorizationRequirement +public sealed class AlwaysAllowAuthoriaztionRequirement : IAuthorizationRequirement { } -internal class AlwaysAllowAuthorizationHandler : AuthorizationHandler +internal sealed class AlwaysAllowAuthorizationHandler : AuthorizationHandler { protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, AlwaysAllowAuthoriaztionRequirement requirement) { diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/ApiKeySchemeHandler.cs b/src/Nikcio.UHeadless/Defaults/Authorization/ApiKeySchemeHandler.cs new file mode 100644 index 00000000..72e0c76a --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/ApiKeySchemeHandler.cs @@ -0,0 +1,84 @@ +using System.Security.Claims; +using System.Text.Encodings.Web; +using Microsoft.AspNetCore.Authentication; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.Primitives; + +namespace Nikcio.UHeadless.Defaults.Authorization; + +internal class ApiKeySchemeHandler : AuthenticationHandler +{ + [Obsolete("ISystemClock is obsolete, use TimeProvider on AuthenticationSchemeOptions instead.")] + public ApiKeySchemeHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) + : base(options, logger, encoder, clock) + { + } + + public ApiKeySchemeHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder) + : base(options, logger, encoder) + { + } + + protected override async Task HandleAuthenticateAsync() + { + if(Context.Request.Headers.TryGetValue(DefaultHeaders.ApiKey, out StringValues apiKey)) + { + bool isApiKeyValid = await Options.IsApiKeyValid.Invoke(apiKey.ToString(), Context.RequestServices).ConfigureAwait(false); + + if (isApiKeyValid) + { + AuthenticationTicket ticket = await Options.CreateAuthenticationTicket.Invoke(apiKey.ToString(), Scheme, Context.RequestServices).ConfigureAwait(false); + return AuthenticateResult.Success(ticket); + } + else + { + return AuthenticateResult.Fail("Invalid API key"); + } + } + + return AuthenticateResult.NoResult(); + } +} + +/// +/// Options for the Api Key authentication scheme +/// +public class ApiKeySchemeOptions : AuthenticationSchemeOptions +{ + /// + /// Function to validate the Api key + /// + public IsApiKeyValidAsync IsApiKeyValid { get; set; } = (apiKey, _) => Task.FromResult(false); + + /// + /// Function to create an authentication ticket + /// + /// + /// Takes the Api Key, the authentication scheme and a service provider as input and returns an authentication ticket. + /// + public CreateAuthenticationTicketAsync CreateAuthenticationTicket { get; set; } = (apiKey, scheme, _) => + { + var claimsPrincipal = new ClaimsPrincipal(); + claimsPrincipal.AddIdentity(new ClaimsIdentity([], scheme.Name)); + return Task.FromResult(new AuthenticationTicket(claimsPrincipal, new AuthenticationProperties(), scheme.Name)); + }; +} + +/// +/// Function to validate the Api key +/// +/// The provided Api key +/// A service provider +/// +public delegate Task IsApiKeyValidAsync(string apiKey, IServiceProvider serviceProvider); + +/// +/// Function to create an authentication ticket +/// +/// The provided Api key +/// The current authentication scheme +/// A service provider +/// +public delegate Task CreateAuthenticationTicketAsync(string apiKey, AuthenticationScheme scheme, IServiceProvider serviceProvider); + diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/AuthorizationTokenProvider.cs b/src/Nikcio.UHeadless/Defaults/Authorization/AuthorizationTokenProvider.cs new file mode 100644 index 00000000..1cb5b4ee --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/AuthorizationTokenProvider.cs @@ -0,0 +1,103 @@ +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using Microsoft.IdentityModel.Tokens; + +namespace Nikcio.UHeadless.Defaults.Auth; + +public interface IAuthorizationTokenProvider +{ + /// + /// Creates a new JWT token + /// + /// + /// The claims to include in the token + /// + /// + JwtSecurityToken CreateToken(params Claim[] claims); + + /// + /// Gets the available claims + /// + /// + List GetAvailableClaims(); +} + +internal class AuthorizationTokenProvider : IAuthorizationTokenProvider +{ + private readonly UHeadlessAuthorizationOptions _options; + + private static readonly List _availableClaims = []; + + private static readonly object _availableClaimsLock = new(); + + public AuthorizationTokenProvider(UHeadlessAuthorizationOptions options) + { + _options = options; + } + + public JwtSecurityToken CreateToken(params Claim[] claims) + { + if (_options == null) + { + throw new InvalidOperationException("Authorization options are not set in the UHeadless options using .AddAuth()."); + } + + var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_options.Secret)); + var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha512); + + var token = new JwtSecurityToken( + issuer: _options.Issuer, + audience: _options.Audience, + claims: claims, + expires: DateTime.Now.AddMinutes(_options.ExpiryMinutes), + signingCredentials: credentials); + + return token; + } + + public List GetAvailableClaims() + { + return _availableClaims; + } + + internal static void AddAvailableClaimValue(string groupName, AvailableClaimValue claimValue) + { + lock (_availableClaimsLock) + { + if (string.IsNullOrWhiteSpace(groupName)) + { + throw new ArgumentException("The group name must be provided", nameof(groupName)); + } + + ArgumentNullException.ThrowIfNull(claimValue); + + ClaimValueGroup? claimValueGroup = _availableClaims.Find(x => x.GroupName == groupName); + + if (claimValueGroup == null) + { + claimValueGroup = new ClaimValueGroup + { + GroupName = groupName, + }; + + claimValueGroup.ClaimValues.Add(claimValue); + + _availableClaims.Add(claimValueGroup); + return; + } + + AvailableClaimValue? existingValue = claimValueGroup.ClaimValues.Find(value => value.Name == claimValue.Name); + + if (existingValue != null) + { + var newValues = claimValue.Values.Except(existingValue.Values).ToList(); + existingValue.Values.AddRange(newValues); + } + else + { + claimValueGroup.ClaimValues.Add(claimValue); + } + } + } +} diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs b/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs new file mode 100644 index 00000000..fad03b8b --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/Bootstrap.cs @@ -0,0 +1,69 @@ +using System.Text; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.Primitives; +using Microsoft.IdentityModel.Tokens; +using Nikcio.UHeadless.Defaults.Auth; + +namespace Nikcio.UHeadless.Defaults.Authorization; + +internal static class Bootstrap +{ + public static UHeadlessOptions AddAuthInternal(this UHeadlessOptions options) + { + if (options.AuthorizationOptions == null) + { + throw new InvalidOperationException("AuthorizationOptions must be set in UHeadlessOptions using .AddAuth()."); + } + + options.UmbracoBuilder.Services.AddScoped(); + + options.UmbracoBuilder.Services.AddAuthentication() + .AddJwtBearer(DefaultAuthenticationSchemes.UHeadless, configure => + { + configure.Events = new JwtBearerEvents + { + OnMessageReceived = context => + { + if (context.Request.Headers.TryGetValue(DefaultHeaders.Token, out StringValues token)) + { + string bearerToken = token.ToString(); + context.Token = bearerToken.StartsWith("Bearer ", StringComparison.Ordinal) ? bearerToken[7..] : bearerToken; + } + else + { + // We only want to authenticate via the header + context.Token = "Invalid"; + } + + return Task.CompletedTask; + } + }; + + configure.TokenValidationParameters = new TokenValidationParameters + { + ValidateIssuer = true, + ValidateAudience = true, + ValidateLifetime = true, + ValidateIssuerSigningKey = true, + ValidIssuer = options.AuthorizationOptions.Issuer, + ValidAudience = options.AuthorizationOptions.Audience, + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(options.AuthorizationOptions.Secret)) + }; + }) + .AddScheme(DefaultAuthenticationSchemes.UHeadlessApiKey, configure => + { + configure.IsApiKeyValid = (apiKey, serviceProvider) => + { + UHeadlessAuthorizationOptions options = serviceProvider.GetRequiredService(); + return Task.FromResult(apiKey == options.ApiKey); + }; + }); + + options.AddMutation(); + + return options; + } +} diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/ClaimValueGroup.cs b/src/Nikcio.UHeadless/Defaults/Authorization/ClaimValueGroup.cs new file mode 100644 index 00000000..f7b8a716 --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/ClaimValueGroup.cs @@ -0,0 +1,15 @@ +namespace Nikcio.UHeadless.Defaults.Auth; + +public sealed class ClaimValueGroup +{ + public required string GroupName { get; set; } + + public List ClaimValues { get; } = []; +} + +public sealed class AvailableClaimValue +{ + public required string Name { get; set; } + + public required List Values { get; set; } +} diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/ClaimValueGroups.cs b/src/Nikcio.UHeadless/Defaults/Authorization/ClaimValueGroups.cs new file mode 100644 index 00000000..07a1b32d --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/ClaimValueGroups.cs @@ -0,0 +1,10 @@ +namespace Nikcio.UHeadless.Defaults.Auth; + +public static class ClaimValueGroups +{ + public const string Content = "Content"; + + public const string Media = "Media"; + + public const string Members = "Members"; +} diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/CreateTokenMutation.cs b/src/Nikcio.UHeadless/Defaults/Authorization/CreateTokenMutation.cs new file mode 100644 index 00000000..9a4ef0ab --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/CreateTokenMutation.cs @@ -0,0 +1,94 @@ +using System.Diagnostics.CodeAnalysis; +using System.IdentityModel.Tokens.Jwt; +using System.Text.Json; +using HotChocolate.Authorization; +using HotChocolate.Resolvers; +using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; + +namespace Nikcio.UHeadless.Defaults.Authorization; + +[ExtendObjectType(typeof(HotChocolateMutationObject))] +internal class CreateTokenMutation : IGraphQLMutation +{ + public const string PolicyName = "CreateTokenMutation"; + + public void ApplyConfiguration(UHeadlessOptions options) + { + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => + { + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadlessApiKey); + + policy.RequireAuthenticatedUser(); + }); + } + + [Authorize(Policy = PolicyName)] + [GraphQLDescription("Creates a JWT token to be used for other queries.")] + [SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Marking as static will remove this query from GraphQL")] + public JwtToken CreateToken( + IResolverContext resolverContext, + [GraphQLDescription("The claims of the token.")] TokenClaim[] claims) + { + ArgumentNullException.ThrowIfNull(resolverContext); + + IAuthorizationTokenProvider authorizationTokenProvider = resolverContext.Service(); + + System.Security.Claims.Claim[] claimsArray = claims.Select(claim => + { + string? valueType = claim.Type switch + { + TokenClaimType.Json => JsonClaimValueTypes.Json, + TokenClaimType.JsonArray => JsonClaimValueTypes.JsonArray, + _ => JsonClaimValueTypes.Json + }; + + return new System.Security.Claims.Claim(claim.Name, JsonSerializer.Serialize(claim.Value), valueType); + }).ToArray(); + + JwtSecurityToken token = authorizationTokenProvider.CreateToken(claimsArray); + + return new JwtToken() + { + Token = new JwtSecurityTokenHandler().WriteToken(token), + Expires = new DateTimeOffset(token.ValidTo).ToUnixTimeSeconds() + }; + } +} + +[GraphQLDescription("A claim for a token.")] +public sealed class TokenClaim +{ + [GraphQLDescription("The name of the claim.")] + public required string Name { get; init; } + + [GraphQLType(typeof(AnyType))] + [GraphQLDescription("The value of the claim.")] + public required object Value { get; init; } + + [GraphQLDescription("The type of claim.")] + public TokenClaimType? Type { get; init; } +} + +[GraphQLDescription("The type of claim.")] +public enum TokenClaimType +{ + Json, + JsonArray +} + +[GraphQLDescription("A JWT token.")] +public sealed class JwtToken +{ + [GraphQLDescription("The JWT token.")] + public required string Token { get; init; } + + [GraphQLDescription("The expiration time of the token in Unix timestamp.")] + public required long Expires { get; init; } + + [GraphQLDescription("The prefix used when using the token.")] + public string Prefix { get; } = "Bearer "; + + [GraphQLDescription("The header used when using the token.")] + public string Header { get; } = DefaultHeaders.Token; +} diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/DefaultAuthenticationSchemes.cs b/src/Nikcio.UHeadless/Defaults/Authorization/DefaultAuthenticationSchemes.cs new file mode 100644 index 00000000..a442ce37 --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/DefaultAuthenticationSchemes.cs @@ -0,0 +1,8 @@ +namespace Nikcio.UHeadless.Defaults.Authorization; + +public static class DefaultAuthenticationSchemes +{ + public const string UHeadless = "UHeadless"; + + public const string UHeadlessApiKey = "UHeadlessApiKey"; +} diff --git a/src/Nikcio.UHeadless/Defaults/DefaultClaims.cs b/src/Nikcio.UHeadless/Defaults/Authorization/DefaultClaims.cs similarity index 65% rename from src/Nikcio.UHeadless/Defaults/DefaultClaims.cs rename to src/Nikcio.UHeadless/Defaults/Authorization/DefaultClaims.cs index 0a5fb310..51296edd 100644 --- a/src/Nikcio.UHeadless/Defaults/DefaultClaims.cs +++ b/src/Nikcio.UHeadless/Defaults/Authorization/DefaultClaims.cs @@ -1,4 +1,4 @@ -namespace Nikcio.UHeadless.Defaults; +namespace Nikcio.UHeadless.Defaults.Authorization; public static class DefaultClaims { diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/DefaultHeaders.cs b/src/Nikcio.UHeadless/Defaults/Authorization/DefaultHeaders.cs new file mode 100644 index 00000000..a0a7bb46 --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/DefaultHeaders.cs @@ -0,0 +1,8 @@ +namespace Nikcio.UHeadless.Defaults.Authorization; + +public static class DefaultHeaders +{ + public const string ApiKey = "X-UHeadless-Api-Key"; + + public const string Token = "X-UHeadless-Token"; +} diff --git a/src/Nikcio.UHeadless/Defaults/Authorization/UtilityClaimGroupsQuery.cs b/src/Nikcio.UHeadless/Defaults/Authorization/UtilityClaimGroupsQuery.cs new file mode 100644 index 00000000..d922f87f --- /dev/null +++ b/src/Nikcio.UHeadless/Defaults/Authorization/UtilityClaimGroupsQuery.cs @@ -0,0 +1,59 @@ +using System.Diagnostics.CodeAnalysis; +using HotChocolate.Resolvers; +using Nikcio.UHeadless.Defaults.Auth; + +namespace Nikcio.UHeadless.Defaults.Authorization; + +/// +/// Implements the query +/// +/// +/// Requires .AddAuth() to be called on . +/// +[ExtendObjectType(typeof(HotChocolateQueryObject))] +public sealed class UtilityClaimGroupsQuery : IGraphQLQuery +{ + public void ApplyConfiguration(UHeadlessOptions options) + { + // No configuration needed + } + + [GraphQLName("utility_GetClaimGroups")] + [GraphQLDescription("Utility query. Gets a which claims are used by the registered queries.")] + [SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Marking as static will remove this query from GraphQL")] + public IEnumerable UtilityGetClaimGroups(IResolverContext resolverContext) + { + ArgumentNullException.ThrowIfNull(resolverContext); + + IAuthorizationTokenProvider authorizationTokenProvider = resolverContext.Service(); + + return authorizationTokenProvider.GetAvailableClaims().Select(claimGroup => new ClaimGroup() + { + GroupName = claimGroup.GroupName, + ClaimValues = claimGroup.ClaimValues.Select(claim => new ClaimValue() + { + Name = claim.Name, + Values = claim.Values + }) + }); + } +} + +[GraphQLDescription("A group of claims.")] +public sealed class ClaimGroup +{ + [GraphQLDescription("The name of the group.")] + public required string GroupName { get; init; } + + [GraphQLDescription("The claim values in the group.")] + public required IEnumerable ClaimValues { get; init; } +} + +public sealed class ClaimValue +{ + [GraphQLDescription("The name of the claim.")] + public required string Name { get; init; } + + [GraphQLDescription("The available values of the claim.")] + public required List Values { get; init; } +} diff --git a/src/Nikcio.UHeadless/Defaults/Bootstrap.cs b/src/Nikcio.UHeadless/Defaults/Bootstrap.cs index 6939b646..33ec8050 100644 --- a/src/Nikcio.UHeadless/Defaults/Bootstrap.cs +++ b/src/Nikcio.UHeadless/Defaults/Bootstrap.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Defaults.Properties; using Nikcio.UHeadless.Properties; using Umbraco.Cms.Core; @@ -11,7 +12,7 @@ internal static class Bootstrap /// /// Adds default property mappings and services to be used for the default queries. /// - public static void AddDefaultsInternal(this UHeadlessOptions options) + public static UHeadlessOptions AddDefaultsInternal(this UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); @@ -34,9 +35,6 @@ public static void AddDefaultsInternal(this UHeadlessOptions options) options.PropertyMap.AddEditorMapping(Constants.PropertyEditors.Aliases.MemberPicker); MemberPicker.ApplyConfiguration(options); - if (options.DisableAuthorization) - { - options.UmbracoBuilder.Services.AddSingleton(); - } + return options; } } diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentAtRootQuery.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentAtRootQuery.cs index b4dd6162..5c6dedca 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentAtRootQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentAtRootQuery.cs @@ -1,8 +1,11 @@ using System.Diagnostics.CodeAnalysis; +using HotChocolate.Authorization; using HotChocolate.Resolvers; -using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.ContentItems; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; using Umbraco.Extensions; @@ -23,21 +26,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalContentRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Content, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByContentTypeQuery.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByContentTypeQuery.cs index 13826f1f..17fba529 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByContentTypeQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByContentTypeQuery.cs @@ -4,6 +4,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Nikcio.UHeadless.ContentItems; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; using Umbraco.Extensions; @@ -24,21 +26,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalContentRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Content, availableClaimValue); } /// @@ -80,7 +88,7 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ILogger logger = resolverContext.Service>(); logger.LogInformation("Content type not found"); - return new PaginationResult(Enumerable.Empty(), page, pageSize); + return new PaginationResult([], page, pageSize); } IEnumerable contentItems = contentCache.GetAtRoot(inContext.IncludePreview.Value, inContext.Culture) diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByGuidQuery.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByGuidQuery.cs index bf16aaef..6d80a331 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByGuidQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByGuidQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.ContentItems; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; @@ -22,21 +24,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalContentRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Content, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByIdQuery.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByIdQuery.cs index c6250f2f..3449ba35 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByIdQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByIdQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.ContentItems; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; @@ -22,21 +24,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalContentRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Content, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByRouteQuery.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByRouteQuery.cs index 739ef033..c884b1f8 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByRouteQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByRouteQuery.cs @@ -3,6 +3,8 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.ContentItems; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; using Umbraco.Cms.Core.Routing; @@ -23,21 +25,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalContentRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Content, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByTagQuery.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByTagQuery.cs index b20a0621..fee0bced 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByTagQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentByTagQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.ContentItems; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; @@ -24,21 +26,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalContentRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalContentRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Content, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentItem.cs b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentItem.cs index 22211f36..639e5f34 100644 --- a/src/Nikcio.UHeadless/Defaults/ContentItems/ContentItem.cs +++ b/src/Nikcio.UHeadless/Defaults/ContentItems/ContentItem.cs @@ -14,15 +14,12 @@ public partial class ContentItem : ContentItemBase protected IDependencyReflectorFactory DependencyReflectorFactory { get; } - protected IPublishedUrlProvider PublishedUrlProvider { get; } - public ContentItem(CreateCommand command) : base(command) { ArgumentNullException.ThrowIfNull(command); VariationContextAccessor = command.ResolverContext.Service(); DependencyReflectorFactory = command.ResolverContext.Service(); - PublishedUrlProvider = command.ResolverContext.Service(); StatusCode = command.StatusCode; Redirect = command.Redirect == null ? null : new RedirectInfo() @@ -47,7 +44,9 @@ public ContentItem(CreateCommand command) : base(command) [GraphQLDescription("Gets the url of a content item.")] public string? Url(IResolverContext resolverContext, UrlMode urlMode) { - return PublishedContent?.Url(PublishedUrlProvider, resolverContext.Culture(), urlMode); + ArgumentNullException.ThrowIfNull(resolverContext); + + return PublishedContent?.Url(resolverContext.Service(), resolverContext.Culture(), urlMode); } /// diff --git a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaAtRootQuery.cs b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaAtRootQuery.cs index 2ea00478..edbe5568 100644 --- a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaAtRootQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaAtRootQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Media; using Nikcio.UHeadless.MediaItems; using Umbraco.Cms.Core.Models.PublishedContent; @@ -23,21 +25,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMediaRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Media, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByContentTypeQuery.cs b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByContentTypeQuery.cs index 3cd1aa2c..e481483a 100644 --- a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByContentTypeQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByContentTypeQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Media; using Nikcio.UHeadless.MediaItems; using Umbraco.Cms.Core.Models.PublishedContent; @@ -24,21 +26,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMediaRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Media, availableClaimValue); } /// @@ -73,7 +81,7 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ILogger logger = resolverContext.Service>(); logger.LogError("Media type not found. {ContentType}", contentType); - return new PaginationResult(Enumerable.Empty(), page, pageSize); + return new PaginationResult([], page, pageSize); } IEnumerable mediaItems = mediaCache.GetByContentType(mediaContentType); diff --git a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByGuidQuery.cs b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByGuidQuery.cs index abbb0b22..78a63827 100644 --- a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByGuidQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByGuidQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Media; using Nikcio.UHeadless.MediaItems; using Umbraco.Cms.Core.Models.PublishedContent; @@ -23,21 +25,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMediaRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Media, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByIdQuery.cs b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByIdQuery.cs index 574985a3..451cc821 100644 --- a/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByIdQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/MediaItems/MediaByIdQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Media; using Nikcio.UHeadless.MediaItems; using Umbraco.Cms.Core.Models.PublishedContent; @@ -23,21 +25,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMediaRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMediaRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Media, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByDisplayNameQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByDisplayNameQuery.cs index 3fdae5ef..3e96bee8 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByDisplayNameQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByDisplayNameQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByEmailQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByEmailQuery.cs index 25b0870f..68459032 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByEmailQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByEmailQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByRoleQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByRoleQuery.cs index 6309aba7..a2a75e3a 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByRoleQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByRoleQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByUsernameQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByUsernameQuery.cs index 613db673..0150c07b 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/FindMembersByUsernameQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/FindMembersByUsernameQuery.cs @@ -2,6 +2,8 @@ using HotChocolate.Authorization; using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/MemberByEmailQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/MemberByEmailQuery.cs index 6750a43c..b8d016e2 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/MemberByEmailQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/MemberByEmailQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/MemberByGuidQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/MemberByGuidQuery.cs index 92c54e60..76b7a2a1 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/MemberByGuidQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/MemberByGuidQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/MemberByIdQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/MemberByIdQuery.cs index b16ab1fd..9d754757 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/MemberByIdQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/MemberByIdQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Members/MemberByUsernameQuery.cs b/src/Nikcio.UHeadless/Defaults/Members/MemberByUsernameQuery.cs index 27a92f64..b9c750bb 100644 --- a/src/Nikcio.UHeadless/Defaults/Members/MemberByUsernameQuery.cs +++ b/src/Nikcio.UHeadless/Defaults/Members/MemberByUsernameQuery.cs @@ -3,6 +3,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Members; using Umbraco.Cms.Core.Models; @@ -26,21 +28,27 @@ public virtual void ApplyConfiguration(UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Properties/ContentPicker.cs b/src/Nikcio.UHeadless/Defaults/Properties/ContentPicker.cs index ddd63180..a8b3bce3 100644 --- a/src/Nikcio.UHeadless/Defaults/Properties/ContentPicker.cs +++ b/src/Nikcio.UHeadless/Defaults/Properties/ContentPicker.cs @@ -2,6 +2,7 @@ using Nikcio.UHeadless.Common.Properties; using Nikcio.UHeadless.Properties; using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Core.Routing; using Umbraco.Extensions; namespace Nikcio.UHeadless.Defaults.Properties; @@ -54,7 +55,7 @@ protected ContentPicker(CreateCommand command) : base(command) if (publishedContentItemsAsObject is IPublishedContent publishedContent) { - PublishedContentItems = new List { publishedContent }; + PublishedContentItems = [publishedContent]; } else if (publishedContentItemsAsObject is IEnumerable publishedContentItems) { @@ -62,7 +63,7 @@ protected ContentPicker(CreateCommand command) : base(command) } else { - PublishedContentItems = new List(); + PublishedContentItems = []; } } @@ -115,9 +116,11 @@ public class ContentPickerItem /// Gets the url of a content item /// [GraphQLDescription("Gets the url of a content item.")] - public string Url(UrlMode urlMode) + public string Url(IResolverContext resolverContext, UrlMode urlMode) { - return PublishedContent.Url(Culture, urlMode); + ArgumentNullException.ThrowIfNull(resolverContext); + + return PublishedContent.Url(resolverContext.Service(), Culture, urlMode); } /// diff --git a/src/Nikcio.UHeadless/Defaults/Properties/MediaPicker.cs b/src/Nikcio.UHeadless/Defaults/Properties/MediaPicker.cs index 32c32f35..8e4998a3 100644 --- a/src/Nikcio.UHeadless/Defaults/Properties/MediaPicker.cs +++ b/src/Nikcio.UHeadless/Defaults/Properties/MediaPicker.cs @@ -50,7 +50,7 @@ protected MediaPicker(CreateCommand command) : base(command) if (publishedContentItemsAsObject is IPublishedContent publishedContent) { - PublishedMediaItems = new List { publishedContent }; + PublishedMediaItems = [publishedContent]; } else if (publishedContentItemsAsObject is IEnumerable publishedContentItems) { @@ -58,7 +58,7 @@ protected MediaPicker(CreateCommand command) : base(command) } else { - PublishedMediaItems = new List(); + PublishedMediaItems = []; } } diff --git a/src/Nikcio.UHeadless/Defaults/Properties/MemberPicker.cs b/src/Nikcio.UHeadless/Defaults/Properties/MemberPicker.cs index 27ddf695..ff6f4643 100644 --- a/src/Nikcio.UHeadless/Defaults/Properties/MemberPicker.cs +++ b/src/Nikcio.UHeadless/Defaults/Properties/MemberPicker.cs @@ -2,6 +2,8 @@ using HotChocolate.Resolvers; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.Common.Properties; +using Nikcio.UHeadless.Defaults.Auth; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.Defaults.Members; using Nikcio.UHeadless.Properties; using Umbraco.Cms.Core.Models.PublishedContent; @@ -46,7 +48,7 @@ public abstract class MemberPicker : PropertyValue /// Gets the member items of a picker /// [Authorize(Policy = PolicyName)] - [GraphQLDescription("Gets the member items of a picker.")] + [GraphQLDescription($"Gets the member items of a picker. Requires the {ClaimValue} or {DefaultClaimValues.GlobalMemberRead} claim to access")] public List Members(IResolverContext resolverContext) { return PublishedMembers.Select(publishedMember => @@ -62,7 +64,7 @@ protected MemberPicker(CreateCommand command) : base(command) if (publishedContentItemsAsObject is IPublishedContent publishedContent) { - PublishedMembers = new List { publishedContent }; + PublishedMembers = [publishedContent]; } else if (publishedContentItemsAsObject is IEnumerable publishedContentItems) { @@ -70,7 +72,7 @@ protected MemberPicker(CreateCommand command) : base(command) } else { - PublishedMembers = new List(); + PublishedMembers = []; } } @@ -84,22 +86,28 @@ protected MemberPicker(CreateCommand command) : base(command) internal static UHeadlessOptions ApplyConfiguration(UHeadlessOptions options) { - options.UmbracoBuilder.Services.AddAuthorization(configure => + options.UmbracoBuilder.Services.AddAuthorizationBuilder().AddPolicy(PolicyName, policy => { - configure.AddPolicy(PolicyName, policy => + if (options.DisableAuthorization) { - if (options.DisableAuthorization) - { - policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); - return; - } + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + return; + } - policy.RequireAuthenticatedUser(); + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless); - policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); - }); + policy.RequireAuthenticatedUser(); + + policy.RequireClaim(DefaultClaims.UHeadlessScope, ClaimValue, DefaultClaimValues.GlobalMemberRead); }); + AvailableClaimValue availableClaimValue = new() + { + Name = DefaultClaims.UHeadlessScope, + Values = [ClaimValue, DefaultClaimValues.GlobalMemberRead] + }; + AuthorizationTokenProvider.AddAvailableClaimValue(ClaimValueGroups.Members, availableClaimValue); + return options; } } diff --git a/src/Nikcio.UHeadless/Defaults/Properties/MultiUrlPicker.cs b/src/Nikcio.UHeadless/Defaults/Properties/MultiUrlPicker.cs index ce75a2ed..82aefad7 100644 --- a/src/Nikcio.UHeadless/Defaults/Properties/MultiUrlPicker.cs +++ b/src/Nikcio.UHeadless/Defaults/Properties/MultiUrlPicker.cs @@ -5,6 +5,7 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.PublishedContent; using Umbraco.Cms.Core.PublishedCache; +using Umbraco.Cms.Core.Routing; using Umbraco.Extensions; namespace Nikcio.UHeadless.Defaults.Properties; @@ -52,7 +53,7 @@ public List Links(IResolverContext resolverContext) { return PublishedContentItemsLinks.Select(link => { - if (!PublishedSnapshotAccessor.TryGetPublishedSnapshot(out IPublishedSnapshot? publishedSnapshot) || publishedSnapshot == null) + if (!PublishedSnapshotAccessor.TryGetPublishedSnapshot(out IPublishedSnapshot? publishedSnapshot)) { resolverContext.Service>().LogError("Could not get published snapshot."); return null; @@ -78,7 +79,7 @@ protected MultiUrlPicker(CreateCommand command) : base(command) if (publishedContentItemsAsObject is Link publishedContent) { - PublishedContentItemsLinks = new List { publishedContent }; + PublishedContentItemsLinks = [publishedContent]; } else if (publishedContentItemsAsObject is IEnumerable publishedContentItems) { @@ -86,7 +87,7 @@ protected MultiUrlPicker(CreateCommand command) : base(command) } else { - PublishedContentItemsLinks = new List(); + PublishedContentItemsLinks = []; } } @@ -145,9 +146,11 @@ public class MultiUrlPickerItem /// Gets the url of a content item /// [GraphQLDescription("Gets the url of a content item. If the link isn't to a content item or media item then the UrlMode doesn't affect the url.")] - public string Url(UrlMode urlMode) + public string Url(IResolverContext resolverContext, UrlMode urlMode) { - return PublishedContent?.Url(Culture, urlMode) ?? Link.Url ?? string.Empty; + ArgumentNullException.ThrowIfNull(resolverContext); + + return PublishedContent?.Url(resolverContext.Service(), Culture, urlMode) ?? Link.Url ?? string.Empty; } /// diff --git a/src/Nikcio.UHeadless/Defaults/Properties/NestedContent.cs b/src/Nikcio.UHeadless/Defaults/Properties/NestedContent.cs index 26101c14..de2df475 100644 --- a/src/Nikcio.UHeadless/Defaults/Properties/NestedContent.cs +++ b/src/Nikcio.UHeadless/Defaults/Properties/NestedContent.cs @@ -54,7 +54,7 @@ protected NestedContent(CreateCommand command) : base(command) if (publishedElementsAsObject is IPublishedElement publishedElement) { - PublishedElements = new List { publishedElement }; + PublishedElements = [publishedElement]; } else if (publishedElementsAsObject is IEnumerable publishedElements) { @@ -62,7 +62,7 @@ protected NestedContent(CreateCommand command) : base(command) } else { - PublishedElements = new List(); + PublishedElements = []; } } diff --git a/src/Nikcio.UHeadless/HotChocolateMutationObject.cs b/src/Nikcio.UHeadless/HotChocolateMutationObject.cs new file mode 100644 index 00000000..61e0bdfd --- /dev/null +++ b/src/Nikcio.UHeadless/HotChocolateMutationObject.cs @@ -0,0 +1,9 @@ +namespace Nikcio.UHeadless; + +/// +/// The base mutation object +/// +[GraphQLName("Mutation")] +public sealed class HotChocolateMutationObject +{ +} diff --git a/src/Nikcio.UHeadless/IGraphQLMutation.cs b/src/Nikcio.UHeadless/IGraphQLMutation.cs new file mode 100644 index 00000000..b05e839e --- /dev/null +++ b/src/Nikcio.UHeadless/IGraphQLMutation.cs @@ -0,0 +1,6 @@ +namespace Nikcio.UHeadless; + +public interface IGraphQLMutation +{ + void ApplyConfiguration(UHeadlessOptions options); +} diff --git a/src/Nikcio.UHeadless/MediaItems/MediaItemBase.Utils.cs b/src/Nikcio.UHeadless/MediaItems/MediaItemBase.Utils.cs index 8fd2c029..4dff5a87 100644 --- a/src/Nikcio.UHeadless/MediaItems/MediaItemBase.Utils.cs +++ b/src/Nikcio.UHeadless/MediaItems/MediaItemBase.Utils.cs @@ -10,7 +10,7 @@ public partial class MediaItemBase ArgumentNullException.ThrowIfNull(command); ArgumentNullException.ThrowIfNull(dependencyReflectorFactory); - TMediaItem? createdMediaItem = dependencyReflectorFactory.GetReflectedType(typeof(TMediaItem), new object[] { command }); + TMediaItem? createdMediaItem = dependencyReflectorFactory.GetReflectedType(typeof(TMediaItem), [command]); if (createdMediaItem == null) { diff --git a/src/Nikcio.UHeadless/MemberItems/MemberBase.Utils.cs b/src/Nikcio.UHeadless/MemberItems/MemberBase.Utils.cs index 67284664..a9c0b2d6 100644 --- a/src/Nikcio.UHeadless/MemberItems/MemberBase.Utils.cs +++ b/src/Nikcio.UHeadless/MemberItems/MemberBase.Utils.cs @@ -10,7 +10,7 @@ public partial class MemberItemBase ArgumentNullException.ThrowIfNull(command); ArgumentNullException.ThrowIfNull(dependencyReflectorFactory); - TMember? createdMember = dependencyReflectorFactory.GetReflectedType(typeof(TMember), new object[] { command }); + TMember? createdMember = dependencyReflectorFactory.GetReflectedType(typeof(TMember), [command]); if (createdMember == null) { diff --git a/src/Nikcio.UHeadless/Nikcio.UHeadless.csproj b/src/Nikcio.UHeadless/Nikcio.UHeadless.csproj index 8e72e66f..cdb5e28e 100644 --- a/src/Nikcio.UHeadless/Nikcio.UHeadless.csproj +++ b/src/Nikcio.UHeadless/Nikcio.UHeadless.csproj @@ -1,6 +1,6 @@ - + - net7.0 + net8.0 . @@ -34,11 +34,12 @@ + - - - + + + diff --git a/src/Nikcio.UHeadless/Properties/PropertyMap.cs b/src/Nikcio.UHeadless/Properties/PropertyMap.cs index a92cc95f..8627d5f2 100644 --- a/src/Nikcio.UHeadless/Properties/PropertyMap.cs +++ b/src/Nikcio.UHeadless/Properties/PropertyMap.cs @@ -111,17 +111,17 @@ internal class PropertyMap : DictionaryMap, IPropertyMap /// /// Editor mappings /// - protected Dictionary editorPropertyMap { get; } = new(); + protected Dictionary editorPropertyMap { get; } = []; /// /// Alias mappings /// - protected Dictionary aliasPropertyMap { get; } = new(); + protected Dictionary aliasPropertyMap { get; } = []; /// /// A list of all the types used in the property mapping /// - protected HashSet types { get; } = new(); + protected HashSet types { get; } = []; public void AddEditorMapping(string editorName) where TType : PropertyValue { @@ -237,21 +237,13 @@ protected static bool AddMapping(string key, Dictionary m ArgumentNullException.ThrowIfNull(key); ArgumentNullException.ThrowIfNull(map); - if (!map.ContainsKey(key)) + string? assemblyQualifiedName = typeof(TType).AssemblyQualifiedName; + + if (assemblyQualifiedName == null) { - lock (map) - { - if (!map.ContainsKey(key)) - { - string? assemblyQualifiedName = typeof(TType).AssemblyQualifiedName; - if (assemblyQualifiedName != null) - { - map.Add(key, assemblyQualifiedName); - return true; - } - } - } + return false; } - return false; + + return map.TryAdd(key, assemblyQualifiedName); } } diff --git a/src/Nikcio.UHeadless/Properties/PropertyValue.Utils.cs b/src/Nikcio.UHeadless/Properties/PropertyValue.Utils.cs index 5857b877..3ee0db89 100644 --- a/src/Nikcio.UHeadless/Properties/PropertyValue.Utils.cs +++ b/src/Nikcio.UHeadless/Properties/PropertyValue.Utils.cs @@ -41,7 +41,7 @@ public partial class PropertyValue private static PropertyValue? CreatePropertyValue(CreateCommand command, Type type, IDependencyReflectorFactory dependencyReflectorFactory) { - PropertyValue? createdPropertyValue = dependencyReflectorFactory.GetReflectedType(type, new object[] { command }); + PropertyValue? createdPropertyValue = dependencyReflectorFactory.GetReflectedType(type, [command]); if (createdPropertyValue == null) { diff --git a/src/Nikcio.UHeadless/QueryContext.cs b/src/Nikcio.UHeadless/QueryContext.cs index bf4621fa..f8469b89 100644 --- a/src/Nikcio.UHeadless/QueryContext.cs +++ b/src/Nikcio.UHeadless/QueryContext.cs @@ -49,7 +49,7 @@ public bool Initialize(IResolverContext resolverContext) resolverContext.Initialize(this); IncludePreview ??= false; - Fallbacks ??= new(); + Fallbacks ??= []; return true; } diff --git a/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs b/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs index 2c8f183e..3936f7c9 100644 --- a/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs +++ b/src/Nikcio.UHeadless/TypeModules/UmbracoTypeModule.cs @@ -127,8 +127,8 @@ public ValueTask> CreateTypesAsync(IDescr private void GenerateTypes(out List types, out List objectTypes) { - types = new List(); - objectTypes = new List(); + types = []; + objectTypes = []; AddEmptyPropertyType(objectTypes); List contentTypes = GetContentTypes(); diff --git a/src/Nikcio.UHeadless/UHeadlessExtensions.cs b/src/Nikcio.UHeadless/UHeadlessExtensions.cs index 548140c4..fcde117f 100644 --- a/src/Nikcio.UHeadless/UHeadlessExtensions.cs +++ b/src/Nikcio.UHeadless/UHeadlessExtensions.cs @@ -1,8 +1,13 @@ +using System.ComponentModel.DataAnnotations; +using HotChocolate.AspNetCore.Extensions; using HotChocolate.Execution.Configuration; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Nikcio.UHeadless.Common.Properties; using Nikcio.UHeadless.ContentItems; using Nikcio.UHeadless.Defaults; +using Nikcio.UHeadless.Defaults.Authorization; using Nikcio.UHeadless.MediaItems; using Nikcio.UHeadless.MemberItems; using Nikcio.UHeadless.Reflection; @@ -32,13 +37,36 @@ public static IUmbracoBuilder AddUHeadless(this IUmbracoBuilder builder, Action< var options = new UHeadlessOptions() { RequestExecutorBuilder = requestExecutorBuilder, - UmbracoBuilder = builder + UmbracoBuilder = builder, }; configure?.Invoke(options); + if (!options.DisableAuthorization && options.AuthorizationOptions == null) + { + throw new InvalidOperationException("Authorization options must be set when authorization is enabled. Set the options in the UHeadless options using .AddAuth()."); + } + + if (options.DisableAuthorization && options.AuthorizationOptions != null) + { + throw new InvalidOperationException("Authorization options are set but authorization is disabled. Remove .AddAuth() to run without authorization."); + } + + if (options.AuthorizationOptions != null) + { + Validator.ValidateObject(options.AuthorizationOptions, new ValidationContext(options.AuthorizationOptions), true); + } + + builder.Services.AddSingleton(options.AuthorizationOptions ?? new() + { + ApiKey = string.Empty, + Secret = string.Empty, + IsAuthorizationDisabled = true, + }); + builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddSingleton(options.PropertyMap); + builder.Services.AddSingleton(); builder.Services.AddScoped(typeof(IContentItemRepository<>), typeof(ContentItemRepository<>)); builder.AddNotificationAsyncHandler(); @@ -52,10 +80,19 @@ public static IUmbracoBuilder AddUHeadless(this IUmbracoBuilder builder, Action< requestExecutorBuilder .InitializeOnStartup() .AddAuthorization() - .AddQueryType() .AddInterfaceType() .AddTypeModule(); + if (options.HasQueries) + { + requestExecutorBuilder.AddQueryType(); + } + + if (options.HasMutations) + { + requestExecutorBuilder.AddMutationType(); + } + foreach (Type type in options.PropertyMap.GetAllTypes()) { requestExecutorBuilder.AddType(type); @@ -64,27 +101,71 @@ public static IUmbracoBuilder AddUHeadless(this IUmbracoBuilder builder, Action< return builder; } + /// + /// Maps the UHeadless GraphQL endpoint + /// + /// + /// The path to which the GraphQL endpoint shall be mapped. + /// The name of the schema that shall be used by this endpoint. + public static GraphQLEndpointConventionBuilder MapUHeadless(this WebApplication app, string path = "/graphql", string? schemaName = null) + { + ArgumentNullException.ThrowIfNull(app); + + UHeadlessAuthorizationOptions authorizationOptions = app.Services.GetRequiredService(); + + if (authorizationOptions.IsAuthorizationDisabled) + { + return app.MapGraphQL(path, schemaName); + } + + return app.MapGraphQL(path, schemaName).RequireAuthorization(policy => + { + policy.AddAuthenticationSchemes(DefaultAuthenticationSchemes.UHeadless, DefaultAuthenticationSchemes.UHeadlessApiKey); + policy.AddRequirements(new AlwaysAllowAuthoriaztionRequirement()); + }); + } + /// /// Adds default property mappings and services to be used for the default queries. /// - public static void AddDefaults(this UHeadlessOptions options) + public static UHeadlessOptions AddDefaults(this UHeadlessOptions options) { ArgumentNullException.ThrowIfNull(options); - options.AddDefaultsInternal(); + return options.AddDefaultsInternal(); + } + + /// + /// Adds the authentication services to the UHeadless package. + /// + /// + /// This is required if is set to false. + /// + public static UHeadlessOptions AddAuth(this UHeadlessOptions options, UHeadlessAuthorizationOptions authorizationOptions) + { + ArgumentNullException.ThrowIfNull(options); + ArgumentNullException.ThrowIfNull(authorizationOptions); + + options.AuthorizationOptions = authorizationOptions; + + if (options.DisableAuthorization) + { + throw new InvalidOperationException("Authorization is disabled. If you want to use the built-in auth services you need to enable authorization."); + } + + return options.AddAuthInternal(); } /// /// Adds a query to the GraphQL schema /// - /// - /// - /// public static UHeadlessOptions AddQuery(this UHeadlessOptions options) where TQuery : class, IGraphQLQuery, new() { ArgumentNullException.ThrowIfNull(options); + options.HasQueries = true; + options.RequestExecutorBuilder.AddTypeExtension(); var query = new TQuery(); @@ -93,6 +174,24 @@ public static UHeadlessOptions AddQuery(this UHeadlessOptions options) return options; } + /// + /// Adds a mutation to the GraphQL schema + /// + public static UHeadlessOptions AddMutation(this UHeadlessOptions options) + where TMutation : class, IGraphQLMutation, new() + { + ArgumentNullException.ThrowIfNull(options); + + options.HasMutations = true; + + options.RequestExecutorBuilder.AddTypeExtension(); + + var query = new TMutation(); + query.ApplyConfiguration(options); + + return options; + } + /// /// Adds a mapping of a type to a editor alias. /// diff --git a/src/Nikcio.UHeadless/UHeadlessOptions.cs b/src/Nikcio.UHeadless/UHeadlessOptions.cs index 8cd64b4c..7147459f 100644 --- a/src/Nikcio.UHeadless/UHeadlessOptions.cs +++ b/src/Nikcio.UHeadless/UHeadlessOptions.cs @@ -1,4 +1,6 @@ +using System.ComponentModel.DataAnnotations; using HotChocolate.Execution.Configuration; +using Nikcio.UHeadless.Defaults.Auth; using Nikcio.UHeadless.Properties; using Umbraco.Cms.Core.DependencyInjection; @@ -39,4 +41,64 @@ public class UHeadlessOptions /// The Umbraco builder /// public required IUmbracoBuilder UmbracoBuilder { get; init; } + + /// + /// The authorization options + /// This must be set if is false. + /// + internal UHeadlessAuthorizationOptions? AuthorizationOptions { get; set; } + + /// + /// Indicates if the options has queries added. + /// + internal bool HasQueries { get; set; } + + /// + /// Indicates if the options has mutations added. + /// + internal bool HasMutations { get; set; } +} + +/// +/// Options for UHeadless authorization +/// +public class UHeadlessAuthorizationOptions +{ + /// + /// The issuer of the JWT tokens + /// + public string Issuer { get; set; } = "Nikcio.UHeadless"; + + /// + /// The audience of the JWT tokens + /// + public string Audience { get; set; } = "Nikcio.UHeadless"; + + /// + /// The secret used for signing the JWT tokens + /// + /// + /// Must be at least 64 characters long. + /// + [MinLength(64)] + public required string Secret { get; set; } + + /// + /// The expiry minutes for the JWT tokens + /// + public int ExpiryMinutes { get; set; } = 30; + + /// + /// The API key used for creating JWT tokens. + /// + /// + /// Must be at least 32 characters long. + /// + [MinLength(32)] + public required string ApiKey { get; set; } + + /// + /// Indicates if authorization is disabled. + /// + internal bool IsAuthorizationDisabled { get; init; } } diff --git a/src/Nikcio.UHeadless/packages.lock.json b/src/Nikcio.UHeadless/packages.lock.json index a7764b81..a44c7271 100644 --- a/src/Nikcio.UHeadless/packages.lock.json +++ b/src/Nikcio.UHeadless/packages.lock.json @@ -1,28 +1,37 @@ { "version": 1, "dependencies": { - "net7.0": { + "net8.0": { "HotChocolate.AspNetCore": { "type": "Direct", - "requested": "[13.9.0, )", - "resolved": "13.9.0", - "contentHash": "RnxUdKEYOmsjzNPss473CYOug/9GIt8qlS9j8HxtZrW5TASM/9S7pDb7FthcDj4ag/D7wAwme3YxsqxH+iw5Bg==", + "requested": "[13.9.4, )", + "resolved": "13.9.4", + "contentHash": "kW32o45UlqThLmS8rsukZjKUX2g3zNM8LhQmcS2AnFdCcCg4zWFhlR1UW1BEBv6QLsldaxJVEw5kuvwuLXSIGw==", "dependencies": { - "BananaCakePop.Middleware": "13.0.0", - "HotChocolate": "13.9.0", - "HotChocolate.Subscriptions.InMemory": "13.9.0", - "HotChocolate.Transport.Sockets": "13.9.0", - "HotChocolate.Types.Scalars.Upload": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0" + "BananaCakePop.Middleware": "16.0.1", + "HotChocolate": "13.9.4", + "HotChocolate.Subscriptions.InMemory": "13.9.4", + "HotChocolate.Transport.Sockets": "13.9.4", + "HotChocolate.Types.Scalars.Upload": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4" } }, "HotChocolate.AspNetCore.Authorization": { "type": "Direct", - "requested": "[13.9.0, )", - "resolved": "13.9.0", - "contentHash": "z5eLUN9Uai7qLuyq6bwH6UrjYhd38f0tB9WRPjezY+/2Y8Fw2UVk2hz5FAKCr/jWC18njqTNuNateJ95IvwC6Q==", + "requested": "[13.9.4, )", + "resolved": "13.9.4", + "contentHash": "zzxciNLZU1RVRprhiwlClyPSwdxr8G7AvQblZ9rt9EJM7fPgNFbNE9byNHN3tg7m5wEkwhsiE5ClIPH0DZGqFQ==", "dependencies": { - "HotChocolate": "13.9.0" + "HotChocolate": "13.9.4" + } + }, + "Microsoft.AspNetCore.Authentication.JwtBearer": { + "type": "Direct", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "VqKkXLxsCVHNmSdUIuBtDSXL3OqX0yfDjcZxCcYD8VFNpTutl53BCFHzMb3wvw3asneHnURzC2R8VvIXn3l5Lw==", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { @@ -42,40 +51,75 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Direct", - "requested": "[17.9.28, )", - "resolved": "17.9.28", - "contentHash": "hNfIadilgBXbAOmV7LCdPSmLsUILA3QZhR4Wu9VbFDaHjtU3dCFRfJMbk45galt1pfffz4yI5qT9oUJl+F8mNQ==" + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Umbraco.Cms.Web.Common": { "type": "Direct", - "requested": "[11.0.0, )", - "resolved": "11.0.0", - "contentHash": "EVEu4yNMQ8/cFzmZo39wCopFQVY/If+SLburUIZL7ibuQpEXaNa/E9Lz4INdqaddtnz0jdcgokB9jvt2tBms5w==", + "requested": "[13.0.0, )", + "resolved": "13.0.0", + "contentHash": "pTV4p56KsP6yIwYLTgpYQ3WeGumdJRNZo23rblOupcKl7w6wxQ2aiPweVbv7rWIILYoDVejV7z6O5CRHDqmi8g==", "dependencies": { + "Asp.Versioning.Mvc": "7.1.1", + "Asp.Versioning.Mvc.ApiExplorer": "7.1.0", "Dazinator.Extensions.FileProviders": "2.0.0", - "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "7.0.0", - "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "7.0.0", - "MiniProfiler.AspNetCore.Mvc": "4.2.22", - "Smidge.InMemory": "4.2.0", - "Smidge.Nuglify": "4.2.0", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Examine.Lucene": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0", - "Umbraco.Cms.PublishedCache.NuCache": "11.0.0" + "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "8.0.0", + "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": "8.0.0", + "MiniProfiler.AspNetCore.Mvc": "4.3.8", + "Serilog.AspNetCore": "8.0.0", + "Smidge.InMemory": "4.3.0", + "Smidge.Nuglify": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Text.RegularExpressions": "4.3.1", + "Umbraco.Cms.Examine.Lucene": "[13.0.0, 14.0.0)", + "Umbraco.Cms.PublishedCache.NuCache": "[13.0.0, 14.0.0)" + } + }, + "Asp.Versioning.Abstractions": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "yujGpbGBCViHvYiBJD0S5XFgOI+f5bGvi8tnfMJV6EC0b8SAqBn1YC+yCnJjQo3D2XP9TmSuKIJ7ofVy58GcuQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "7.0.0" + } + }, + "Asp.Versioning.Http": { + "type": "Transitive", + "resolved": "7.1.0", + "contentHash": "Q1gPDssnFLeS3Avw/JABPzis4pjrG372RpFnB/9zp61hSuSf+Y+1O9twicNHDsmeWMkb/oNQo3vHgLr16jTdNw==", + "dependencies": { + "Asp.Versioning.Abstractions": "7.0.0" + } + }, + "Asp.Versioning.Mvc": { + "type": "Transitive", + "resolved": "7.1.1", + "contentHash": "hnTDqNwUlawVTDtHu8EhWvEGe6U5K83NJ3Aqf2Tz2mWq5qndzvcGKPGyfv2LTHfSK5h/Qv/ru+ssr/u5GSzjFQ==", + "dependencies": { + "Asp.Versioning.Http": "7.1.0" + } + }, + "Asp.Versioning.Mvc.ApiExplorer": { + "type": "Transitive", + "resolved": "7.1.0", + "contentHash": "SEqEAeOXH4bP5g5IzdRarmNCrUxbk4pu10zxu57hgnHop7mXikwoDshE1cI4ZcxN7soKLGw2qOgLjJTIim5fiw==", + "dependencies": { + "Asp.Versioning.Mvc": "7.1.0" } }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "13.0.0", - "contentHash": "6Zj/vfmnCXLjBG7WNdtOgZZ5ZDR3Sy1FQSshZUonIYs3OdzozmsFmqPXMd9XJ0QE9aAildgVGq/lDLpLrMI4Yw==", + "resolved": "16.0.1", + "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", "dependencies": { - "Yarp.ReverseProxy": "2.0.1" + "Yarp.ReverseProxy": "2.1.0" } }, - "CSharpTest.Net.Collections-NetStd2": { + "BouncyCastle.Cryptography": { "type": "Transitive", - "resolved": "14.906.1403.1084", - "contentHash": "g3QSH0PMiO+f2C6Za+uUvcdihnVs5IFbZ2cnKjCYA19l8en3fVe/Jl0qQS2te1xJzEOrY4ccen5/MY/QVoamcQ==" + "resolved": "2.2.1", + "contentHash": "A6Zr52zVqJKt18ZBsTnX0qhG0kwIQftVAjLmszmkiR/trSp8H+xj1gUOzk7XHwaKgyREMSV1v9XaKrBUeIOdvQ==" }, "Dazinator.Extensions.FileProviders": { "type": "Transitive", @@ -96,19 +140,19 @@ }, "Examine": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "eIlGLnVgD5oWKHaK3ajQqcvYceSuRWWdXgbqp23Q61zgD61QvKFD00ZBqRL/F6pv1v1E90lOVuRl3Oya3wXIyA==", + "resolved": "3.1.0", + "contentHash": "PKr/jlHuNGSfuRemNdeJa56+nqLYYwgvU7cVrVJyG9wrUekaN1eyEYaWgG9SQLhGryoFKi7WBXuoAnKv2//Keg==", "dependencies": { - "Examine.Core": "3.0.1", - "Examine.Lucene": "3.0.1", + "Examine.Core": "3.1.0", + "Examine.Lucene": "3.1.0", "Microsoft.AspNetCore.DataProtection": "5.0.5", "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0" } }, "Examine.Core": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "7QMWHfcXbkSFBwfFq+oobp3M6tSDYjeU/DuY+dOohyDxEPJ5sOPQae2Qll+YLN5xxtX1/j7okkiVUynP6Upnnw==", + "resolved": "3.1.0", + "contentHash": "AIaDNKPP4fCw1fDHqnn2IzcrXwEozJvWGg/cvyNN4+SgYWlnyk8W0rvVwOa066UVPsrUH/WnpfTKWV+crnAHmA==", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "5.0.0", "Microsoft.Extensions.Options": "5.0.0" @@ -116,10 +160,10 @@ }, "Examine.Lucene": { "type": "Transitive", - "resolved": "3.0.1", - "contentHash": "+3IOPaJBypQgH8xejB2B4jOMioET/7pdxVqwBNFXN5Z+GG1d8lG4zs4s64CGlbOYGYyqnqkCNfm+FNUK44iQYw==", + "resolved": "3.1.0", + "contentHash": "4vdhdqwhA/thL57nuYqT5vr1T/CN5eNeQ65JcgI1BqknJSnOQe63C3MWCCXfPK/Lno95zMCLx71cbWEwo6Geuw==", "dependencies": { - "Examine.Core": "3.0.1", + "Examine.Core": "3.1.0", "Lucene.Net.QueryParser": "4.8.0-beta00016", "Lucene.Net.Replicator": "4.8.0-beta00016", "System.Threading": "4.3.0", @@ -128,238 +172,233 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "T8ZYTsm0S48hi89d2symCvUEJoBkg5F+rfU+HFtkEOc7WLZsIBDStnfF3c890Vxjmx/P1tFpY5StDNTM+C6fIw==", + "resolved": "13.9.4", + "contentHash": "jkD4OWSR2CmdfyrO55/m/s2onSaAar/XpCMYQGo1y+qjcaEq93cgc8HL/i8hRdV4mVgfpW60DELREYZrBaiZSw==", "dependencies": { - "Microsoft.Extensions.ObjectPool": "7.0.0", - "System.Diagnostics.DiagnosticSource": "7.0.0", + "Microsoft.Extensions.ObjectPool": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", "System.Threading.Tasks.Extensions": "4.5.0" } }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "aGBAW6d9Oj1MfmKJF482yYdJ8G87yJ0rVFxU9l7lA1dg1xjc5XALLQO9jCPz4GCpQLetuAhHdkZ713imJ6WCPw==", + "resolved": "13.9.4", + "contentHash": "4tXT2Y6U3p1h1egdS3K2qu2re0QmxJH+2thYhKfDDXZaErfod6H1NVHZIBOTw4nFdgzpL8FiFUQuvzekEsNYmA==", "dependencies": { - "HotChocolate.Authorization": "13.9.0", - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Types.CursorPagination": "13.9.0", - "HotChocolate.Types.Mutations": "13.9.0", - "HotChocolate.Types.OffsetPagination": "13.9.0", - "HotChocolate.Validation": "13.9.0" + "HotChocolate.Authorization": "13.9.4", + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Types.CursorPagination": "13.9.4", + "HotChocolate.Types.Mutations": "13.9.4", + "HotChocolate.Types.OffsetPagination": "13.9.4", + "HotChocolate.Validation": "13.9.4" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "mb3IPL8V4NRL2FUefZP20fSwIMOnE7uCMLiM4d5Y5cjljYaMUVzUJnvdW9C1tUfbodP49Llk9WnBCR6S9fr8mQ==", + "resolved": "13.9.4", + "contentHash": "82LweGM6vtF4Wc8NmbnNwZE8PeDOWHuY9oIR8zdi/O9XayaAFy2B5bIE5QFszlqTlaiRLW9y8NpCXQkAe0mVHQ==", "dependencies": { - "HotChocolate.Language": "13.9.0", - "System.Collections.Immutable": "7.0.0" + "HotChocolate.Language": "13.9.4", + "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6CPA39zObNuMUmkmQ6J3zqmalukhjCiJS/klSEDPpwTtrn9HS/3edsh/7oiKzmUh6PNVKGed0lwkSdDP+DGZDQ==", + "resolved": "13.9.4", + "contentHash": "sU8nUTOHYwEAaZCnneMCzJs/rG+OtBme1cy+DaT3qxq9Oe6kD/kF1q1jRJjSa1juG/anOcmlu9haZZT0hotZ+g==", "dependencies": { - "HotChocolate.Execution": "13.9.0" + "HotChocolate.Execution": "13.9.4" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "zO1aG5qx5lzbZu/iKR56g+zeOgCCCa5pICwxijd1qEap+7J5q0YsME9RByw8wYPH+tNsXCvDcKaeAEcashB4cg==", + "resolved": "13.9.4", + "contentHash": "0CsRwTnG3T6nCpgXK/LI2/yn1vvHPIVDZ/NiRz01JCb4tBzsh6v1yGgT8siRhPaoBHlfryUiTbc/Rv1pp9drvw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Fetching": "13.9.0", - "HotChocolate.Types": "13.9.0", - "HotChocolate.Utilities.DependencyInjection": "13.9.0", - "HotChocolate.Validation": "13.9.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "System.Threading.Channels": "7.0.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Fetching": "13.9.4", + "HotChocolate.Types": "13.9.4", + "HotChocolate.Utilities.DependencyInjection": "13.9.4", + "HotChocolate.Validation": "13.9.4", + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "flySLPDyTtM4051tI3mh5Ue0fGrKFDuW3w0ebWmW2qjfuF4jgQzd3pK3ZxfkxAfpxQXyPaVn/Q7fae+fYQxeCg==", + "resolved": "13.9.4", + "contentHash": "hEIfNnbcsUtjXQSn37IL6LbN+iKUNcBt+4+hdb5EY2NUEmvZDwawsuNXzX/9UeE138xB/zdTkJu6p10cP6oHGQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "HotChocolate.Abstractions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "pIw7VlEABejQGLRnJGnO7iPdT40AHklf0psJp5zNXrq0IX+Vq7hRRqON73nubZv5Ofhh8fV3kugqYFKvzcptoA==", + "resolved": "13.9.4", + "contentHash": "3eh6WCocFbJ1Dtcg1oHmpNKcytwI/ZANQUv3mpsRtTT13wE7yXbzPXrZlBcWPFYv0NeJQ2v0kk4wAmRdYxyaYg==", "dependencies": { - "GreenDonut": "13.9.0", - "HotChocolate.Types": "13.9.0" + "GreenDonut": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "M8q0XHQm8Gtab+wKgYXfVPxScjdDE+INify5yaj6g1ZDkV3sLIeX+muu1WebrNO3DgmuAi6o3aW770Ucw7k/dw==", + "resolved": "13.9.4", + "contentHash": "ez1eHzpSz7+Fn+aqG62h6kKaOfktmMwUjaT9M5NWS5LqC81n/8HG4lr8UmbGywbEU9optCWo5GfICNpQItAHaw==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0", - "HotChocolate.Language.Utf8": "13.9.0", - "HotChocolate.Language.Visitors": "13.9.0", - "HotChocolate.Language.Web": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4", + "HotChocolate.Language.Utf8": "13.9.4", + "HotChocolate.Language.Visitors": "13.9.4", + "HotChocolate.Language.Web": "13.9.4" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "+vwrQ0qOiKn/yUBHn53030hQmqj45C1g0WI8sip50CPnkgs3bAPnDInUvrR3IiHbRn5spAonO4tFPtMDdJrEMA==", + "resolved": "13.9.4", + "contentHash": "mPfX23AflbB8nhvC3hAYn93r940UHwRmhZ5jXQ3yTHZOYZhlgJypa+4I5KF/CnTFrB36tWmA3LgXnN3pJ/VMvA==", "dependencies": { - "Microsoft.Extensions.ObjectPool": "7.0.0" + "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "IEWNYGvtwejf7+j+Xci25FaYets2UD8wkfzQ5dUCW47c1rnTAyuRdTiO8T8x6LYuZ7+SLg7UTBYgjv4ybwAUgA==", + "resolved": "13.9.4", + "contentHash": "+4GYr3eFPY3b2OZjByHKyOKlpY+bUGnwk0S39RW3z4KRRgv5NkYjPdI+O2iaVbIWBoJXBnb7QlEQWIj64FbbqA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "j6mPBkfVo2fopWYLoczXCoog4PJ+KwbHItSgHfPfI1kDBcNcy9XY4oxth3Uau1uBbfHYIFjnuVc+FrGb1f9KAQ==", + "resolved": "13.9.4", + "contentHash": "yJjnKtNw1gnze50n0vrsod+dS1AK8iGIgEbm9aKvIyLIaSVSQnvx5sXhX21JzKEJV7SegnvVbQdf1zhjOwTlEQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "GI5ufbNVEoKygSC09owVnCvw1Ma2KzOtm1l6uen3wKshAdOKB4gmSVCjzf71pNL2Nt6cL4IHa70ClqjECmu9qg==", + "resolved": "13.9.4", + "contentHash": "aa4ybXm9DdTpjcLvT6FfTPBYTz5xvYsg96J8OaVS0LSKeACHNrBRoF5qP5/cD01UXwSgdr19HqAki1H5D6gRtw==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.0" + "HotChocolate.Language.Utf8": "13.9.4" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "P3ason65NwSzkB2W9myV/pRIm4IMIWXH3RPCtpHVKx22Xw3hRJRJhjLBQZ5LCk5v3+7kKhXNBTbFNpbMyvez3Q==", + "resolved": "13.9.4", + "contentHash": "DRU8lN9sMhqVBAa4p/W47pvclrS+SBSzO9sWYbwDiO6OE/B3SlYSDE+Tqy66YAfcNHqFnx/Cx+rd7Kcc06nllw==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Execution.Abstractions": "13.9.0" + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Execution.Abstractions": "13.9.4" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "rj5U1Cd2QsjNnSNNdlSopYLtXh0kTZ1NlA1B3v02YFtj4Zu9le6QkGsl3oUljUUq46vSkkrT9ISj+e5wTCcw/Q==", + "resolved": "13.9.4", + "contentHash": "EUOHzVtVbMWQOPjCWGGmYXvIUM4K5rAYbGk6yO+76T+nVefZw/NgVb1lOx9Ii3Eo+cVBwEliPaJte7vm+HSRlA==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.0", - "HotChocolate.Subscriptions": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "HotChocolate.Execution.Abstractions": "13.9.4", + "HotChocolate.Subscriptions": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "4hPlhS2bgqT/tYCZfPtbGtPAaedULKgTbFKkTsjigrDhJcVxBA36Gr3yGM6S3NEw2JdIgiwugYV1log9zXkEjA==", + "resolved": "13.9.4", + "contentHash": "tzLIUlpoadoAwDyPNRjtvtx0soe+fLMO//7IE/d49QFj5J/FM6pTzTuvAo7JafsmC+UU5uRGykTKXup9xdtLeA==", "dependencies": { - "System.IO.Pipelines": "7.0.0" + "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "VGPZePNC4sBlz/iY4x90zIRxW62MWzWNcl2yjLS3JcW+0W8KuKxh99dFLxL0WY/+Eoe8PUecmoob+FrVEvPzpg==", + "resolved": "13.9.4", + "contentHash": "Q7XywadsAIm1hf1v+YBMOe1fbjQYAtL+NNlPk7hgumUYVz5iSY/9WYwomMZl80id0Q1aP63hzOoEDY90Em6TrQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.0", - "HotChocolate.Types.Shared": "13.9.0", - "HotChocolate.Utilities": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.ObjectPool": "7.0.0", + "HotChocolate.Abstractions": "13.9.4", + "HotChocolate.Types.Shared": "13.9.4", + "HotChocolate.Utilities": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", - "System.Text.Json": "7.0.0" + "System.Text.Json": "8.0.0" } }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2+w6tLrdjo+d/aIKyoNW1L/OH/p+FACMwGWHk1P4MwAspqaF7zjy71qTeNks+8QbRwG8uMleey/0sbr8sWpC6w==", + "resolved": "13.9.4", + "contentHash": "sm7ZghRSWQQrde5aa7VZhi/QhSbuzB7yS4jUd5/CB9AOX3WFKjJ3uitY7crWV9scLxcDgaaiAwglF7wWFvubhw==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "NX1zLkb7t19Om5RYubmkA6yRCtBbca454rqSGKSVBYjDrsiA6+4ZDvmS9Kjbw8F+cPm3VqShenrIIgfW8bzCXQ==", + "resolved": "13.9.4", + "contentHash": "pndQvOY8CnoefzKQNCNaJ++r1gf4JbvKC3c3lf6jimqEE/UJMlE935JXwZCGxnUSJ6Npb14sVoOWGM6Kl5myEA==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "LIAaSVRS6FJCssP+s4ooLajhQ1/QfES78twX4OgZFJ9/UZMxXlU3K/IWeB2aXcJNkehfIZLgoiROnouB7ATepw==", + "resolved": "13.9.4", + "contentHash": "J4o/p/HRFNQCsApy1LFlwITVHtGaUlLLhismyi5QRL7CTwC5Lk1or5KlPYufyYgbs9X3BkASlmpr9vGmg+6Ypg==", "dependencies": { - "HotChocolate.Execution": "13.9.0", - "HotChocolate.Types": "13.9.0" + "HotChocolate.Execution": "13.9.4", + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "hisB6PGGgsekz3a8YJwKgvbZHED98eph9+TMPg5A500tyvrZS00fbdpjRcN+rcTKAxhJ5evzHB2Fo1m62Dyo4w==", + "resolved": "13.9.4", + "contentHash": "AAZLF9M6h80uh3BZjhaAbS3kch0+bDmetdki7bdo5HYiYRN2tuTT1+YblhfBzoh7726mROOtYRvk7h4DQBLWHw==", "dependencies": { - "HotChocolate.Types": "13.9.0" + "HotChocolate.Types": "13.9.4" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "2lhdbXU/GltPQWO9r8qePZSzDo9ryFs8Wv0aF7aQgEq3dLvwer6OpvnZhIYmGua6bXXebA1PzBAEaaxPpLx3Wg==", + "resolved": "13.9.4", + "contentHash": "GqaSuucguc1OBH6sg52C1RobCvry8Fzm69r2QSzTHzSJVLBXAC0HNthkVl3GpuWW3c221fM+Yh9UiFfKNaeJ3w==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.0" + "HotChocolate.Language.SyntaxTree": "13.9.4" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "6zqwjROYxtuzAYjh31JnYKgM/MySRWEq4DHO64oSPFRJQ8NDgg7EvUU771yLt/6T7kUh+S6k25hVnmUipFtEnQ==" + "resolved": "13.9.4", + "contentHash": "g0kRiYho/nxA/QRkBY9n9ZjDqPEby3A33coBvFvkkfXXYRLyFr1P6XE3ZRt3ob35AxbvnWmXYxM3aUZR5u1mfg==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "o1ijY8Rk0IUAo8QZYhfQ8s4/3z78JS9tyXGHzA963gkzTSJPehD4960CAmWlyC19FdE1i2KiTnYLhNOwNoL6+A==", + "resolved": "13.9.4", + "contentHash": "a4SeiruZOBatY4QOksJ8Zlux0vN6s1KW1ydjWPUCcdgANDkDae/+zsbPLNNxiDhkpYovDVQW7gRYkgWoZ8vGKg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "7.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.0", - "contentHash": "gC7/YfOcOOmT+zV/V45CubYhK3lZI7+SmNYLGXQ1ko4cwjVRh3PzSJMAaKw3naWDcbjXbEyWwdYc0dLuoVBNEA==", + "resolved": "13.9.4", + "contentHash": "G0xU8wTZegjCBeiFdlHAQ8+27e1LVDwucjwmULZq1NdbH8EQJQnvjYOvM4XYaIhdqNi8Kn9AvUT2FM5LcBFhiQ==", "dependencies": { - "HotChocolate.Types": "13.9.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "HotChocolate.Types": "13.9.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "HtmlAgilityPack": { "type": "Transitive", - "resolved": "1.11.46", - "contentHash": "dLMn4EVfJBHWmWK4Uh0XGD76FPLHI0qr2Tm0s1m/xmgiHb1JUb9zB8AzO8HtrkBBlMN6JfCUBYddhqC0hZNR+g==" - }, - "IPNetwork2": { - "type": "Transitive", - "resolved": "2.6.508", - "contentHash": "gbD4m/i7VtBUaoGil1XWHO7LdJuT51bWAqdktZtPAPNawKmJrnWLsBui8QMzwBmq2LxX+Vv9/ryUCd/R0sXkWA==" + "resolved": "1.11.54", + "contentHash": "bgB79N4urc4D7hrD4R+Qk6CjPiYOfs6vfXNsmw3nCcfQEQvBQGjfAcl5k/tB1ZP1hA0d7xXs0jK8xAXV36IVUg==" }, "J2N": { "type": "Transitive", @@ -368,8 +407,8 @@ }, "K4os.Compression.LZ4": { "type": "Transitive", - "resolved": "1.2.16", - "contentHash": "XLNQWNayxeMgd1gv0s6kZywM11kww7rTzu3nPGh8fQNblHGbFt79LC1Sk1/QQ8DIJb2Qfl2p+WlLIOWCSuyi8w==" + "resolved": "1.3.6", + "contentHash": "RxGhoJBjZCgGeZgDqOP4Krs1cR9PHInbz6d2N19Dic0Y6ZACzVKbR3uSpqfEZf4RiUbHk9aiog2eS22nQPTc2A==" }, "Lucene.Net": { "type": "Transitive", @@ -453,10 +492,10 @@ }, "MailKit": { "type": "Transitive", - "resolved": "3.4.2", - "contentHash": "BRt9YHSr5LtxUeKrsJfxuJ5t5jb+6a2dRWWZvxt/5Tm3Z+nKJ3HBvw7SaMq2ze9e2x0Izw0SS8Q7H31PxBaXSg==", + "resolved": "4.3.0", + "contentHash": "jVmB3Nr0JpqhyMiXOGWMin+QvRKpucGpSFBCav9dG6jEJPdBV+yp1RHVpKzxZPfT+0adaBuZlMFdbIciZo1EWA==", "dependencies": { - "MimeKit": "3.4.2" + "MimeKit": "4.3.0" } }, "Markdown": { @@ -471,29 +510,30 @@ }, "MessagePack": { "type": "Transitive", - "resolved": "2.4.59", - "contentHash": "bj1NsZu4SckIIHxZcLc3+S64MiDRm+YlQi9MDsA+dt6x/QNiELftDQ9VQ88n3sgRzaniMqgfzO9pHXGoxcsKCQ==", + "resolved": "2.5.140", + "contentHash": "nkIsgy8BkIfv40bSz9XZb4q//scI1PF3AYeB5X66nSlIhBIqbdpLz8Qk3gHvnjV3RZglQLO/ityK3eNfLii2NA==", "dependencies": { - "MessagePack.Annotations": "2.4.59", - "Microsoft.NET.StringTools": "17.4.0" + "MessagePack.Annotations": "2.5.140", + "Microsoft.NET.StringTools": "17.6.3", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "MessagePack.Annotations": { "type": "Transitive", - "resolved": "2.4.59", - "contentHash": "3I1OxkqjiL0QEHnEJCia5TOeQuqVpYmNbprdw9uyIRXniei01ElWTS7Qcte+ionHM0KYiPWYhXQFJIeYb5Hbrg==" + "resolved": "2.5.140", + "contentHash": "JE3vwluOrsJ4t3hnfXzIxJUh6lhx6M/KR8Sark/HOUw1DJ5UKu5JsAnnuaQngg6poFkRx1lzHSLTkxHNJO7+uQ==" }, "Microsoft.AspNetCore.Cryptography.Internal": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "hFF+HOqtiNrGtO5ZxLVAFo1ksDLQWf8IHEmGRmcF9azlUWvDLZp8+W8gDyLBcGcY5m3ugEvKy/ncElxO4d0NtQ==" + "resolved": "8.0.0", + "contentHash": "buuMMCTxFcVkOkEftb2OafYxrveNGre9KJF4Oi1DkR4rxIj6oLam7Wq3g0Fp9hNVpJteKEPiupsxYnPrD/oUGA==" }, "Microsoft.AspNetCore.Cryptography.KeyDerivation": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "rCQddWkUxGmObeftM0YVyFOPcXkXDEWKGCc4F1viRLEL4ojIbdKwbOYBSf5hfWDR+NO0aGq8r3a8COvNYN/bZA==", + "resolved": "8.0.0", + "contentHash": "65w93R5wqUUs35R9wjHHDf75GqAbxJsNByKZo5TbQOWSXcUbLWrDUWBQHv78iXIT0PL1pXNqKQz7OHiHMvo0/A==", "dependencies": { - "Microsoft.AspNetCore.Cryptography.Internal": "7.0.0" + "Microsoft.AspNetCore.Cryptography.Internal": "8.0.0" } }, "Microsoft.AspNetCore.DataProtection": { @@ -562,20 +602,20 @@ }, "Microsoft.AspNetCore.JsonPatch": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "svHQiUvLNdI2nac68WNQHNo/ZWyavFpt3Oip09QRnWeFqG9iyakKiNLavXr6KE8y7KxEXZNld96KQYbKz8SJMQ==", + "resolved": "8.0.0", + "contentHash": "klQdb/9+j0u8MDjoqHEgDCPz8GRhfsbRVvZIM3glFqjs8uY7S1hS9RvKZuz8o4dS9NsEpFp4Jccd8CQuIYHK0g==", "dependencies": { "Microsoft.CSharp": "4.7.0", - "Newtonsoft.Json": "13.0.1" + "Newtonsoft.Json": "13.0.3" } }, "Microsoft.AspNetCore.Mvc.NewtonsoftJson": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IJOsB1cm6FYGXxhlNoWR6zZYFREEBzeFX76NlBGhrZ7+VMK4piLm3fAgUBliasyEUg5MOOqFz5EGv8nmU5rXWQ==", + "resolved": "8.0.0", + "contentHash": "/e5+eBvY759xiZJO+y1lHi4VzXqbDzTJSyCtKpaj3Ko2JAFQjiCOJ0ZHk2i4g4HpoSdXmzEXQsjr6dUX9U0/JA==", "dependencies": { - "Microsoft.AspNetCore.JsonPatch": "7.0.0", - "Newtonsoft.Json": "13.0.1", + "Microsoft.AspNetCore.JsonPatch": "8.0.0", + "Newtonsoft.Json": "13.0.3", "Newtonsoft.Json.Bson": "1.0.2" } }, @@ -590,12 +630,12 @@ }, "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "pAFncd2+yMmA0Z7QcFhf6xh6OxRwF2bi6PbAfXNGHEebf2tnJ4HkevQUGZlH6yTCu61TpsdNXLVsEnjbbDoH6A==", + "resolved": "8.0.0", + "contentHash": "HyLDtyWwpavSEFBOL0qOdymY8f+VwN5QhhE7gj3wBw53j9EA0ZcYkbfTvkhvMeV9PavgCcMIe4sAsBGEE/YnNA==", "dependencies": { "Microsoft.AspNetCore.Mvc.Razor.Extensions": "6.0.0", "Microsoft.CodeAnalysis.Razor": "6.0.0", - "Microsoft.Extensions.DependencyModel": "7.0.0" + "Microsoft.Extensions.DependencyModel": "8.0.0" } }, "Microsoft.AspNetCore.Razor.Language": { @@ -605,29 +645,26 @@ }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", - "resolved": "3.3.2", - "contentHash": "7xt6zTlIEizUgEsYAIgm37EbdkiMmr6fP6J9pDoKEpiGM4pi32BCPGr/IczmSJI9Zzp0a6HOzpr9OvpMP+2veA==" + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "d02ybMhUJl1r/dI6SkJPHrTiTzXBYCZeJdOLMckV+jyoMU/GGkjqFX/sRbv1K0QmlpwwKuLTiYVQvfYC+8ox2g==", + "resolved": "4.8.0", + "contentHash": "/jR+e/9aT+BApoQJABlVCKnnggGQbvGh7BKq2/wI1LamxC+LbzhcLj4Vj7gXCofl1n4E521YfF9w0WcASGg/KA==", "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.3.2", - "System.Collections.Immutable": "5.0.0", - "System.Memory": "4.5.4", - "System.Reflection.Metadata": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "5.0.0", - "System.Text.Encoding.CodePages": "4.5.1", - "System.Threading.Tasks.Extensions": "4.5.4" + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "7.0.0", + "System.Reflection.Metadata": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "2UVTGtyQGgTCazvnT6t82f+7AV2L+kqJdyb61rT9GQed4yK+tVh5IkaKcsm70VqyZQhBbDqsfZFNHnY65xhrRw==", + "resolved": "4.8.0", + "contentHash": "+3+qfdb/aaGD8PZRCrsdobbzGs1m9u119SkkJt8e/mk3xLJz/udLtS2T6nY27OTXxBBw10HzAbC8Z9w08VyP/g==", "dependencies": { - "Microsoft.CodeAnalysis.Common": "[4.0.0]" + "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Razor": { @@ -647,84 +684,104 @@ }, "Microsoft.Extensions.Caching.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", + "resolved": "8.0.0", + "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "tgU4u7bZsoS9MKVRiotVMAwHtbREHr5/5zSEV+JPhg46+ox47Au84E3D2IacAaB0bk5ePNaNieTlPrfjbbRJkg==", + "resolved": "8.0.0", + "contentHash": "mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==", + "resolved": "8.0.0", + "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==", "dependencies": { - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Physical": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==", + "resolved": "8.0.0", + "contentHash": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==", "dependencies": { - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "System.Text.Json": "7.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "System.Text.Json": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==", + "resolved": "8.0.0", + "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "oONNYd71J3LzkWc4fUHl3SvMfiQMYUCo/mDHDEu76hYYxdhdrPYv6fvGv9nnKVyhE9P0h20AU8RZB5OOWQcAXg==", + "resolved": "8.0.0", + "contentHash": "NSmDw3K0ozNDgShSIpsZcbFIzBX4w28nDag+TfaQujkXGazBm+lid5onlWoCBy4VsLxqnnKjEBbGSJVWJMf43g==", "dependencies": { - "System.Text.Encodings.Web": "7.0.0", - "System.Text.Json": "7.0.0" + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3PZp/YSkIXrF7QK7PfC1bkyRYwqOHpWFad8Qx+4wkuumAeXo1NHaxpS9LboNA9OvNSAu+QOVlXbMyoY+pHSqcw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Composite": { @@ -738,128 +795,174 @@ }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "mh0rIIjKO7PiU7VPtC92LlIG2lpWVCnGIEqBk8ru2oMWEVQ/gJDizePv1fdmnljwC4e69jtYknXYmLNwm0dZEg==", + "resolved": "8.0.0", + "contentHash": "TuRh62KcoOvaSDCbtHT8K0WYptZysYQHPRRNfOgqF7ZUtUL4O0WMV8RdxbtDFJDsg3jv9bgHwXbrgwTeI9+5uQ==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "43n9Je09z0p/7ViPxfRqs5BUItRLNVh5b6JH40F2Agkh2NBsY/jpNYTtbCcxrHCsA3oRmbR6RJBzUutB4VZvNQ==", + "resolved": "8.0.0", + "contentHash": "AG7HWwVRdCHlaA++1oKDxLsXIBxmDpMPb3VoyOoAghEWnkUvEAdYQUwnV4jJbAaa/nMYNiEh5ByoLauZBEiovg==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Http": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "9Pq9f/CvOSz0t9yQa6g1uWpxa2sm13daLFm8EZwy9MaQUjKXWdNUXQwIxwhmba5N83UIqURiPHSNqGK1vfWF2w==", + "resolved": "8.0.0", + "contentHash": "cWz4caHwvx0emoYe7NkHPxII/KkTI8R/LC9qdqJqnKv2poTJ4e2qqPGQqvRoQ5kaSA4FU5IV3qFAuLuOhoqULQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Identity.Core": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "cq11jroq2szFcXLJ0IW5BlI7oqq3ZGCu1mXCnpJ8VIvhvpIzf30AOoWR/w3YRVdAgkYzxbUQpKGZd+oxAKQhLA==", + "resolved": "8.0.0", + "contentHash": "hnXHyIQc+uc2uNMcIbr43+oNBAPEhMpW6lE8ux3MOegRz50WBna4AItlZDY7Y+Id1LLBbf73osUqeTw7CQ371w==", "dependencies": { - "Microsoft.AspNetCore.Cryptography.KeyDerivation": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.AspNetCore.Cryptography.KeyDerivation": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Identity.Stores": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "feaaluQbzJAMMluwSc7Rebm7IEVAD8/5GWt0dMYLE0tcc6gAsHYjBIBrPzmTstORd7k405Qo18FPF/jTfRsM0A==", + "resolved": "8.0.0", + "contentHash": "DmDCpSpngZDBm44wVmxCeYs4HGJr/m32jMItp6pfb7KKtqWYw2vybHRg880j18k/eSFyM4v9uONsnEPgDdi9lg==", "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Identity.Core": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0" + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.Identity.Core": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0" } }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==", + "resolved": "8.0.0", + "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.ObjectPool": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA==" + "resolved": "8.0.0", + "contentHash": "4pm+XgxSukskwjzDDfSjG4KNUIOdFF2VaqZZDtTzoyQMOVSnlV6ZM8a9aVu5dg9LVZTB//utzSc8fOi0b0Mb2Q==" }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "lP1yBnTTU42cKpMozuafbvNtQ7QcBjr/CcK3bYOGEMH55Fjt+iecXjT6chR7vbgCMqy3PG3aNQSZgo/EuY/9qQ==", + "resolved": "8.0.0", + "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "95UnxZkkFdXxF6vSrtJsMHCzkDeSMuUWGs2hDT54cX+U5eVajrCJ3qLyQRW+CtpTt5OJ8bmTvpQVHu1DLhH+cA==", + "resolved": "8.0.0", + "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.Binder": "7.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.DataAnnotations": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "57cONN+EcyypxCmDlaJOL7tdeYMiRNVZmv2m7hi41zAu03p+r6jbGTx7bykg3o4GYPRQjsi0FGhjLn5XuVHM1Q==", + "resolved": "8.0.0", + "contentHash": "z6p6q/N/hiU19A9tK7pjhXHpiYArO4oIICipxUviBEIOiDIoKRO7k6qItvw7alKcLtfHZOWmspuSKpvIvH0N8w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, - "Microsoft.NET.StringTools": { + "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "17.4.0", - "contentHash": "06T6Hqfs3JDIaBvJaBRFFMIdU7oE0OMab5Xl8LKQjWPxBQr3BgVFKMQPTC+GsSEuYREWmK6g5eOd7Xqd9p1YCA==", + "resolved": "7.1.2", + "contentHash": "33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==" + }, + "Microsoft.IdentityModel.JsonWebTokens": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==", "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, + "Microsoft.IdentityModel.Logging": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.1.2" + } + }, + "Microsoft.IdentityModel.Protocols": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "7.1.2" + } + }, + "Microsoft.IdentityModel.Tokens": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2" } }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.6.3", + "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==" + }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", @@ -889,44 +992,40 @@ "System.Security.Principal.Windows": "5.0.0" } }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==" - }, "MimeKit": { "type": "Transitive", - "resolved": "3.4.2", - "contentHash": "8bshZj8peXR9OaGb1fJJto6YWGG9zGGbDwY5Uylkz08mFU2tHKdkGtwMyFdtO6ZVq1aW41QYj+cN+4vRlE0O5Q==", + "resolved": "4.3.0", + "contentHash": "39KDXuERDy5VmHIn7NnCWvIVp/Ar4qnxZWg9m06DfRqDbW1B6zFv9o3Tdoa4CCu71tE/0SRqRCN5Z+bbffw6uw==", "dependencies": { - "Portable.BouncyCastle": "1.9.0", - "System.Security.Cryptography.Pkcs": "6.0.0" + "BouncyCastle.Cryptography": "2.2.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.Cryptography.Pkcs": "7.0.3", + "System.Text.Encoding.CodePages": "7.0.0" } }, "MiniProfiler.AspNetCore": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "bBirB5d4Q0Bgx05Zg4yzXSmOHZQV4ZJhmxU3DGya4FZxNBwjaVHchqEKY0MJW5XLZo8axMAQm4yywgCvUlTymA==", + "resolved": "4.3.8", + "contentHash": "dohMvXpjKDPv/edl7gwKhq80JBqRLLRSwVJB9bo0UYqsgEox7BZyYS/4vBty+UsZ59pYYYhMUpUKHVWLLj/PBw==", "dependencies": { - "MiniProfiler.Shared": "4.2.22", - "System.Text.Json": "4.6.0" + "MiniProfiler.Shared": "4.3.8" } }, "MiniProfiler.AspNetCore.Mvc": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "nzCEaZnh77U9jw+c/qu4CtwYUpHEf+FH1ZMbYKMzIXr8CNNPlypSR6AJEAwjo3bq9TIJIpBMZIaK3inRLUCg4g==", + "resolved": "4.3.8", + "contentHash": "aJ6Kkw2zMy36cKDWTjQYo/pJ6bhPBRA8z4NO8REe+xDhv8+fk58P526Bi52gnvsDp4jIVk5AQ8nQDgPUS/K+7A==", "dependencies": { - "MiniProfiler.AspNetCore": "4.2.22" + "MiniProfiler.AspNetCore": "4.3.8" } }, "MiniProfiler.Shared": { "type": "Transitive", - "resolved": "4.2.22", - "contentHash": "OOA99Iu7FjFrdYaADcWL78KK9Kq6M+hfnZac5577aSrx0UYOM2apKlhBPKzoPtGPTRtQNKe4RK00u/FmahcU3g==", + "resolved": "4.3.8", + "contentHash": "SfXNX90fmDm373YAla0z06plTCj6YbByQJOm6G8/9kE6Hf4UALJxySyiMB9O4KYeTc6Ha1EFQDs6jLhio+bBFA==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0", - "Newtonsoft.Json": "10.0.3", + "Newtonsoft.Json": "13.0.1", "System.ComponentModel.Primitives": "4.3.0", "System.Data.Common": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.4.1", @@ -940,8 +1039,8 @@ }, "NCrontab": { "type": "Transitive", - "resolved": "3.3.1", - "contentHash": "G3tzcIIgsiyZyVbHNPyn5+adaM9UjeVNgjrRsvXU7wo2sMhpvpQrir29dcjIND53H/fuTdgg9nI3SfFFg7barA==" + "resolved": "3.3.3", + "contentHash": "2yzZXZLI0YpxrNgWnW/4xoo7ErLgWJIwTljRVEJ3hyjc7Kw9eGdjbFZGP1AhBuTUEZQ443PgZifG1yox6Qo1/A==" }, "NETStandard.Library": { "type": "Transitive", @@ -996,8 +1095,8 @@ }, "Newtonsoft.Json": { "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "R2pZ3B0UjeyHShm9vG+Tu0EBb2lC8b0dFzV9gVn50ofHXh9Smjk6kTn7A/FdAsC8B5cKib1OnGYOXxRBz5XQDg==" + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Newtonsoft.Json.Bson": { "type": "Transitive", @@ -1009,8 +1108,8 @@ }, "NPoco": { "type": "Transitive", - "resolved": "5.5.0", - "contentHash": "11cUvapVGApwP7iiifIV3cgg7m2gBRY9qE3dMLof/ahtg0ZzuACbCBD8O6547Gg9Q4mqvgB7ZD+O0IiprF0lEQ==", + "resolved": "5.7.1", + "contentHash": "6qjyBqqc0TSK/xHjXA6tSZhABSDQqXGrTOIdUIVazPsmN0OyTaBTEtwV2wTV0NyfkzcRPhLyO6bIW89ZFNvlWg==", "dependencies": { "System.Linq.Async": "5.0.0", "System.Reflection.Emit.Lightweight": "4.7.0" @@ -1021,10 +1120,15 @@ "resolved": "1.20.2", "contentHash": "vz/SjCdpxr0Jp09VzMeezid7rwbXimik2QO1dzxzDcN3bXGJloDGDVh0zoD6DA23y6yrRzxv1ZKJ3kKzV3rqyA==" }, - "Portable.BouncyCastle": { + "OpenIddict.Abstractions": { "type": "Transitive", - "resolved": "1.9.0", - "contentHash": "eZZBCABzVOek+id9Xy04HhmgykF0wZg9wpByzrWN7q8qEI0Qen9b7tfd7w8VA3dOeesumMG7C5ZPy0jk7PSRHw==" + "resolved": "4.10.1", + "contentHash": "r2oCgsk8hG82TmT5g7yTzGLrmZGTwn6/zISMXqqpM9rjQUH0/FZ7NgwJy0f1j+HZSyBNj3jjYQIjx6a7qYBYqA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.IdentityModel.Tokens": "7.0.0" + } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -1135,8 +1239,25 @@ }, "Serilog": { "type": "Transitive", - "resolved": "2.12.0", - "contentHash": "xaiJLIdu6rYMKfQMYUZgTy8YK7SMZjB4Yk50C/u//Z4OsvxkUfSPJy4nknfvwAC34yr13q7kcyh4grbwhSxyZg==" + "resolved": "3.1.1", + "contentHash": "P6G4/4Kt9bT635bhuwdXlJ2SCqqn2nhh4gqFqQueCOr9bK/e7W9ll/IoX1Ter948cV2Z/5+5v8pAfJYUISY03A==" + }, + "Serilog.AspNetCore": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FAjtKPZ4IzqFQBqZKPv6evcXK/F0ls7RoXI/62Pnx2igkDZ6nZ/jn/C/FxVATqQbEQvtqP+KViWYIe4NZIHa2w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1", + "Serilog.Extensions.Hosting": "8.0.0", + "Serilog.Extensions.Logging": "8.0.0", + "Serilog.Formatting.Compact": "2.0.0", + "Serilog.Settings.Configuration": "8.0.0", + "Serilog.Sinks.Console": "5.0.0", + "Serilog.Sinks.Debug": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } }, "Serilog.Enrichers.Process": { "type": "Transitive", @@ -1156,58 +1277,58 @@ }, "Serilog.Expressions": { "type": "Transitive", - "resolved": "3.4.1", - "contentHash": "0gcR+7/0g4WYQlbxWWuTNYdUkrwHdnD60it4kY9yX3Djm1DFcrHRO6gynYaxPb8vcPFuGRZwpA2mowCFRm6MYg==", + "resolved": "4.0.0", + "contentHash": "dsC8GtalMDXMzywA60fHeBvqAjQ1EM75zSrdA7j7TxJfmrfss6BOxzgoT5thqjY+icLNbovUsC5KTYRlXzCpXg==", "dependencies": { - "Serilog": "2.10.0" + "Serilog": "3.1.0" } }, "Serilog.Extensions.Hosting": { "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "o0VUyt3npAqOJaZ6CiWLFeLYs3CYJwfcAqaUqprzsmj7qYIvorcn8cZLVR8AQX6vzX7gee2bD0sQeA17iO2/Aw==", + "resolved": "8.0.0", + "contentHash": "db0OcbWeSCvYQkHWu6n0v40N4kKaTAXNjlM3BKvcbwvNzYphQFcBR+36eQ/7hMMwOkJvAyLC2a9/jNdUL5NjtQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.8", - "Microsoft.Extensions.Hosting.Abstractions": "3.1.8", - "Microsoft.Extensions.Logging.Abstractions": "3.1.8", - "Serilog": "2.10.0", - "Serilog.Extensions.Logging": "3.1.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Serilog": "3.1.1", + "Serilog.Extensions.Logging": "8.0.0" } }, "Serilog.Extensions.Logging": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "resolved": "8.0.0", + "contentHash": "YEAMWu1UnWgf1c1KP85l1SgXGfiVo0Rz6x08pCiPOIBt2Qe18tcZLvdBUuV5o1QHvrs8FAry9wTIhgBRtjIlEg==", "dependencies": { - "Microsoft.Extensions.Logging": "2.0.0", - "Serilog": "2.9.0" + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Formatting.Compact": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "pNroKVjo+rDqlxNG5PXkRLpfSCuDOBY0ri6jp9PLe505ljqwhwZz8ospy2vWhQlFu5GkIesh3FcDs4n7sWZODA==", + "resolved": "2.0.0", + "contentHash": "ob6z3ikzFM3D1xalhFuBIK1IOWf+XrQq+H4KeH4VqBcPpNcmUgZlRQ2h3Q7wvthpdZBBoY86qZOI2LCXNaLlNA==", "dependencies": { - "Serilog": "2.8.0" + "Serilog": "3.1.0" } }, "Serilog.Formatting.Compact.Reader": { "type": "Transitive", - "resolved": "2.0.0", - "contentHash": "ALNnPArxSiQDLfHFeR0JrmW8/T6M9Attd/g9w0nm/wxrpCcPCVc3v5CZDYW9jpwMQbrfZ/2A8e1D0vfd6DAcGw==", + "resolved": "3.0.0", + "contentHash": "A4tBQ36969szfQMwnxaikNKxQs7lcGLPPcv45ghr3RrJK9hko71t8TNSdMSAWU25ZK6JSmH/RU14GwSo4v5E4Q==", "dependencies": { - "Newtonsoft.Json": "13.0.1", - "Serilog": "2.3.0" + "Newtonsoft.Json": "13.0.3", + "Serilog": "3.1.0" } }, "Serilog.Settings.Configuration": { "type": "Transitive", - "resolved": "3.4.0", - "contentHash": "ULloXSiapTb3zOWodC0G4WRDQzA5RjMEfZNZzOZpH8kC3t/lrISLblklIpKC44CX0sMDF40MnJwTIQ3pFQFs4g==", + "resolved": "8.0.0", + "contentHash": "nR0iL5HwKj5v6ULo3/zpP8NMcq9E2pxYA6XKTSWCbugVs4YqPyvaqaKOY+OMpPivKp7zMEpax2UKHnDodbRB0Q==", "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "2.0.0", - "Microsoft.Extensions.DependencyModel": "3.0.0", - "Serilog": "2.10.0" + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyModel": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Sinks.Async": { @@ -1218,6 +1339,22 @@ "Serilog": "2.9.0" } }, + "Serilog.Sinks.Console": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "IZ6bn79k+3SRXOBpwSOClUHikSkp2toGPCZ0teUkscv4dpDg9E2R2xVsNkLmwddE4OpNVO3N0xiYsAH556vN8Q==", + "dependencies": { + "Serilog": "3.1.0" + } + }, + "Serilog.Sinks.Debug": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==", + "dependencies": { + "Serilog": "2.10.0" + } + }, "Serilog.Sinks.File": { "type": "Transitive", "resolved": "5.0.0", @@ -1236,16 +1373,16 @@ }, "Smidge": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "8b6Av/P44s1jc8d5MKrXaiv7J3G4wI4Ew5COk/FLCF5iqA0471lZ9J8Ew9mb6Nr9zD3mNwxjWnW2k9BzcUgcog==", + "resolved": "4.3.0", + "contentHash": "AnRsxwg4Av7jxa0MkQMbLqdIrWbVZRVQ0KfnO4Mh19Old7lay179QvBnaOPFxAEWnIl4jHiZW8izesJp6TknVw==", "dependencies": { - "Smidge.Core": "4.2.0" + "Smidge.Core": "4.3.0" } }, "Smidge.Core": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "LQlEtYUNVqK0/jj/kXgIgQrgwteJ7/7dK3GS5vnK8jYpJj201Etidt8IPbp6hmLJ+uOUL530XS0ZDg0xW5YoHg==", + "resolved": "4.3.0", + "contentHash": "B6m6uGpJrOKaJ68eE9clAzZUcURszTNHfoYa4razb3KUJtRXB5fmZvts8+0ffT0/tO09Vu2O/KFfiSZMp6X8Jw==", "dependencies": { "Microsoft.AspNetCore.Http.Features": "5.0.0", "Microsoft.Extensions.Configuration": "5.0.0", @@ -1258,21 +1395,21 @@ }, "Smidge.InMemory": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "EFVXwKLF6/RSI0EP7D+LSDI04Y1V2XYHZT2rOzWVqMhMmPtKosxnGRv235qbyYWM4ci3u08lca3T3SWA61/QMw==", + "resolved": "4.3.0", + "contentHash": "fKyR6ICS0YoQLX0D4dIIYTwQEM1IZb8ChYhqLGpVyJ7GiOAawsXt4ZcVnH0XT+ggan2+JzQlLiXGcCdXnb16Xg==", "dependencies": { "Dazinator.Extensions.FileProviders": "2.0.0", - "Smidge.Core": "4.2.0", + "Smidge.Core": "4.3.0", "System.Text.Encodings.Web": "5.0.1" } }, "Smidge.Nuglify": { "type": "Transitive", - "resolved": "4.2.0", - "contentHash": "tqBk9P1+cSjN6SnvINyvIvpoIrA337jnBvBvxJi9UquLyDP7dc3mkxkfsqUhQMYFNJ3hMMqg+VGAa5XsxzNWUA==", + "resolved": "4.3.0", + "contentHash": "kx5Ulh+o5zLI0Al0POs0nYPldUArErmrAxxccrrxl77MWWrDM3KS5IRWuKDtC42/sZKSzapmJIOwJ8r/1foMCg==", "dependencies": { "Nuglify": "1.20.2", - "Smidge": "4.2.0" + "Smidge": "4.3.0" } }, "System.AppContext": { @@ -1324,8 +1461,8 @@ }, "System.Collections.Immutable": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==" + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.ComponentModel": { "type": "Transitive", @@ -1352,12 +1489,11 @@ }, "System.Configuration.ConfigurationManager": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "WvRUdlL1lB0dTRZSs5XcQOd5q9MYNk90GkbmRmiCvRHThWiojkpGqWdmEDJdXyHbxG/BhE5hmVbMfRLXW9FJVA==", + "resolved": "8.0.0", + "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { - "System.Diagnostics.EventLog": "7.0.0", - "System.Security.Cryptography.ProtectedData": "7.0.0", - "System.Security.Permissions": "7.0.0" + "System.Diagnostics.EventLog": "8.0.0", + "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { @@ -1399,13 +1535,13 @@ }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "9W0ewWDuAyDqS2PigdTxk6jDKonfgscY/hP8hm7VpxYhNHZHKvZTdRckberlFk3VnCmr3xBUyMBut12Q+T2aOw==" + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==" }, "System.Diagnostics.EventLog": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" + "resolved": "8.0.0", + "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.StackTrace": { "type": "Transitive", @@ -1438,14 +1574,6 @@ "System.Runtime": "4.3.0" } }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "7.0.0" - } - }, "System.Dynamic.Runtime": { "type": "Transitive", "resolved": "4.3.0", @@ -1469,8 +1597,8 @@ }, "System.Formats.Asn1": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "+nfpV0afLmvJW8+pLlHxRjz3oZJw4fkyU9MMEaMhCsHi/SN9bGF9q79ROubDiwTiCHezmK0uCWkPP7tGFP/4yg==" + "resolved": "8.0.0", + "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==" }, "System.Globalization": { "type": "Transitive", @@ -1506,6 +1634,15 @@ "System.Runtime.InteropServices": "4.3.0" } }, + "System.IdentityModel.Tokens.Jwt": { + "type": "Transitive", + "resolved": "7.1.2", + "contentHash": "Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + } + }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", @@ -1571,15 +1708,6 @@ "System.Threading.Tasks": "4.3.0" } }, - "System.IO.FileSystem.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", @@ -1595,8 +1723,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -1639,11 +1767,6 @@ "System.Threading": "4.3.0" } }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" - }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", @@ -1765,8 +1888,11 @@ }, "System.Reflection.Metadata": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==" + "resolved": "7.0.0", + "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", + "dependencies": { + "System.Collections.Immutable": "7.0.0" + } }, "System.Reflection.Primitives": { "type": "Transitive", @@ -1810,10 +1936,10 @@ }, "System.Runtime.Caching": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "M0riW7Zgxca3Elp1iZVhzH7PWWT5bPSrdMFGCAGoH1n9YLuXOYE78ryui051Icf3swWWa8feBRoSxOCYwgMy8w==", + "resolved": "8.0.0", + "contentHash": "4TmlmvGp4kzZomm7J2HJn6IIx0UUrQyhBDyb5O1XiunZlQImXW+B8b7W/sTPcXhSf9rp5NR5aDtQllwbB5elOQ==", "dependencies": { - "System.Configuration.ConfigurationManager": "7.0.0" + "System.Configuration.ConfigurationManager": "8.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { @@ -1997,10 +2123,10 @@ }, "System.Security.Cryptography.Pkcs": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "mjUbEXkR6DYRef6dnEYKdfec9otcAkibExL+1f9hmbGlWIUyaCnS3Y3oGZEet38waXmuY1ORE8vgv4sgD5nMYg==", + "resolved": "8.0.0", + "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==", "dependencies": { - "System.Formats.Asn1": "7.0.0" + "System.Formats.Asn1": "8.0.0" } }, "System.Security.Cryptography.Primitives": { @@ -2019,8 +2145,8 @@ }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==" + "resolved": "8.0.0", + "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", @@ -2056,18 +2182,10 @@ }, "System.Security.Cryptography.Xml": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "LHc5PUypYGAMNf/2DzCxOXREKamwCtdUtxb/WpCnHngORVYZbUdSMnm1PcKvEvzKUTKSC0CL6aVAywzbEEeNQg==", - "dependencies": { - "System.Security.Cryptography.Pkcs": "7.0.0" - } - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "Vmp0iRmCEno9BWiskOW5pxJ3d9n+jUqKxvX4GhLwFhnQaySZmBN2FuC0N5gjFHgyFMUjC5sfIJ8KZfoJwkcMmA==", + "resolved": "8.0.0", + "contentHash": "HQSFbakswZ1OXFz2Bt3AJlC6ENDqWeVpgqhf213xqQUMDifzydOHIKVb1RV4prayobvR3ETIScMaQdDF2hwGZA==", "dependencies": { - "System.Windows.Extensions": "7.0.0" + "System.Security.Cryptography.Pkcs": "8.0.0" } }, "System.Security.Principal.Windows": { @@ -2087,12 +2205,8 @@ }, "System.Text.Encoding.CodePages": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", - "dependencies": { - "Microsoft.NETCore.Platforms": "2.1.2", - "System.Runtime.CompilerServices.Unsafe": "4.5.2" - } + "resolved": "7.0.0", + "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", @@ -2107,15 +2221,15 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" + "resolved": "8.0.0", + "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" }, "System.Text.Json": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "DaGSsVqKsn/ia6RG8frjwmJonfos0srquhw09TlT8KRw5I43E+4gs+/bZj4K0vShJ5H9imCuXupb4RmS+dBy3w==", + "resolved": "8.0.0", + "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", "dependencies": { - "System.Text.Encodings.Web": "7.0.0" + "System.Text.Encodings.Web": "8.0.0" } }, "System.Text.RegularExpressions": { @@ -2146,8 +2260,8 @@ }, "System.Threading.Channels": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" + "resolved": "8.0.0", + "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==" }, "System.Threading.Tasks": { "type": "Transitive", @@ -2159,15 +2273,10 @@ "System.Runtime": "4.3.0" } }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "BmSJ4b0e2nlplV/RdWVxvH7WECTHACofv06dx/JwOYc0n56eK1jIWdQKNYYsReSO4w8n1QA5stOzSQcfaVBkJg==" - }, "System.Threading.Tasks.Extensions": { "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" + "resolved": "4.5.0", + "contentHash": "csAJe24tWCOTO/rXoJAuBGuOq7ZdHY60XtC6b/hNMHT9tuX+2J9HK7nciLEtNvnrRLMxBACLXO3R4y5+kCduMA==" }, "System.Threading.Tasks.Parallel": { "type": "Transitive", @@ -2194,14 +2303,6 @@ "System.Runtime": "4.3.0" } }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "bR4qdCmssMMbo9Fatci49An5B1UaVJZHKNq70PRgzoLYIlitb8Tj7ns/Xt5Pz1CkERiTjcVBDU2y1AVrPBYkaw==", - "dependencies": { - "System.Drawing.Common": "7.0.0" - } - }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", @@ -2245,90 +2346,86 @@ }, "Umbraco.Cms.Core": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "IkVx8W8Ey4Ca6Jkjgy3XGy8Y/Ui7lX0Q+X4LaUws6oReFfwMokwLX4eK9IvuVyerkxE0Hz94dh/OqOjziv/XPw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.FileProviders.Embedded": "7.0.0", - "Microsoft.Extensions.FileProviders.Physical": "7.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "7.0.0", - "Microsoft.Extensions.Identity.Core": "7.0.0", - "Microsoft.Extensions.Logging": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "7.0.0", - "Microsoft.Extensions.Options.DataAnnotations": "7.0.0", - "System.ComponentModel.Annotations": "5.0.0", - "System.Net.Http": "4.3.4", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Runtime.Caching": "7.0.0", - "System.Security.Cryptography.Xml": "7.0.0", - "System.Text.RegularExpressions": "4.3.1" + "resolved": "13.0.0", + "contentHash": "0/ODOagfKr4Rhwfc6s8WjexXI3n9bnFzUR1GFHiSs4C24dZFDJzdSgrRSuFl1ZoqzIkt3VP815WAEQm66D+SVw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Embedded": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Identity.Core": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0", + "Microsoft.Extensions.Options.DataAnnotations": "8.0.0", + "System.Runtime.Caching": "8.0.0" } }, "Umbraco.Cms.Examine.Lucene": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "U5jzb0XtHqTZKveC2TPBtPzrUzxPdxo+504JKE0CsEtOpaJfu3sYC/Tsq5OFfUsTr+i2noJ5JbXqSUonbdp9wg==", + "resolved": "13.0.0", + "contentHash": "JuEVmuPz0sCo9z6Z3FQZSxWJPYHSfXyZRRNRXFQu0j3g1pXKaJaFcMQmAeXPR2KJzuuvWKM+gzMgVDUUG03gVw==", "dependencies": { - "Examine": "3.0.1", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0" + "Examine": "3.1.0", + "System.Security.Cryptography.Xml": "8.0.0", + "Umbraco.Cms.Infrastructure": "[13.0.0, 14.0.0)" } }, "Umbraco.Cms.Infrastructure": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "UvchDhuoXdNB1/fRvIhOd7ilACKhsB04E3mDSEEwgKnhOHBWriz+jAG07CfEyA6869aUit9BsWwQV5oPpGJHZg==", + "resolved": "13.0.0", + "contentHash": "k1e5j8Pad1uRz0KtdkV0z4T2kMLzUFHG/5ITUUZt3qNqINGxis8BwNlscitJQQU3eSDICsxBTdJxhj4QUU3JsQ==", "dependencies": { - "Examine.Core": "3.0.1", - "HtmlAgilityPack": "1.11.46", - "IPNetwork2": "2.6.508", - "MailKit": "3.4.2", + "Examine.Core": "3.1.0", + "HtmlAgilityPack": "1.11.54", + "MailKit": "4.3.0", "Markdown": "2.2.1", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Configuration.Json": "7.0.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Microsoft.Extensions.Http": "7.0.0", - "Microsoft.Extensions.Identity.Stores": "7.0.0", - "MiniProfiler.Shared": "4.2.22", - "NPoco": "5.5.0", - "Newtonsoft.Json": "13.0.2", - "Serilog": "2.12.0", + "Microsoft.CodeAnalysis.CSharp": "4.8.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.0", + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Http": "8.0.0", + "Microsoft.Extensions.Identity.Stores": "8.0.0", + "MiniProfiler.Shared": "4.3.8", + "NPoco": "5.7.1", + "Newtonsoft.Json": "13.0.3", + "OpenIddict.Abstractions": "4.10.1", + "Serilog": "3.1.1", "Serilog.Enrichers.Process": "2.0.2", "Serilog.Enrichers.Thread": "3.1.0", - "Serilog.Expressions": "3.4.1", - "Serilog.Extensions.Hosting": "5.0.1", - "Serilog.Formatting.Compact": "1.1.0", - "Serilog.Formatting.Compact.Reader": "2.0.0", - "Serilog.Settings.Configuration": "3.4.0", + "Serilog.Expressions": "4.0.0", + "Serilog.Extensions.Hosting": "8.0.0", + "Serilog.Formatting.Compact": "2.0.0", + "Serilog.Formatting.Compact.Reader": "3.0.0", + "Serilog.Settings.Configuration": "8.0.0", "Serilog.Sinks.Async": "1.5.0", "Serilog.Sinks.File": "5.0.0", "Serilog.Sinks.Map": "1.0.2", - "System.IO.FileSystem.AccessControl": "5.0.0", - "System.Security.Cryptography.Pkcs": "7.0.0", - "System.Threading.Tasks.Dataflow": "7.0.0", - "Umbraco.Cms.Core": "11.0.0", - "ncrontab": "3.3.1" + "Umbraco.Cms.Core": "[13.0.0, 14.0.0)", + "ncrontab": "3.3.3" } }, "Umbraco.Cms.PublishedCache.NuCache": { "type": "Transitive", - "resolved": "11.0.0", - "contentHash": "xa17/gfrI4258Tig6X3Zi1H1XkR37cvnH2a4ZeoMBwyfLLmGSaxsKb5u7gKoMbG3y8KIbqanLvb+TD7cDLFE7g==", + "resolved": "13.0.0", + "contentHash": "k9OQi8Z0k4bLPrUkc++IpJ2Ube/LqjzFmenZkScUQuxoJ3ou7uNfot82IEGxm4FxlRf20x7oUj+kBx47pn97gg==", "dependencies": { - "CSharpTest.Net.Collections-NetStd2": "14.906.1403.1084", - "K4os.Compression.LZ4": "1.2.16", - "MessagePack": "2.4.59", - "Newtonsoft.Json": "13.0.2", - "Umbraco.Cms.Core": "11.0.0", - "Umbraco.Cms.Infrastructure": "11.0.0" + "K4os.Compression.LZ4": "1.3.6", + "MessagePack": "2.5.140", + "Newtonsoft.Json": "13.0.3", + "Umbraco.CSharpTest.Net.Collections": "15.0.0", + "Umbraco.Cms.Infrastructure": "[13.0.0, 14.0.0)" } }, + "Umbraco.CSharpTest.Net.Collections": { + "type": "Transitive", + "resolved": "15.0.0", + "contentHash": "YSDIkxq44VMy2N3jBTwJBJ/ZjGyuyb0GRyfQAUIma07dCHIbjXgKXjZaAxVa6ik3XTqgcyATvwYJL0EBtAClwA==" + }, "Yarp.ReverseProxy": { "type": "Transitive", - "resolved": "2.0.1", - "contentHash": "op7vBwONPFeR1PYxeLw+RLqSodODDX8RWd0OinLGMVIq6yi1q9mv1j56ImuyZgiAToksiC0Dc7jbRUZ9I+jvFA==", + "resolved": "2.1.0", + "contentHash": "VgRuCBxmh5ND4VuFhvIN3AAeoxFhYkS2hNINk6AVCrOVTlpk7OwdrTXi8NHACfqfhDL+/oYCZrF9RxN+yiYnEg==", "dependencies": { "System.IO.Hashing": "7.0.0" }