diff --git a/Directory.Packages.props b/Directory.Packages.props index d52dbc9..cf9f82f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,10 +6,10 @@ true - - - - + + + + diff --git a/examples/DancingGoat/packages.lock.json b/examples/DancingGoat/packages.lock.json index 4d0eca0..516550f 100644 --- a/examples/DancingGoat/packages.lock.json +++ b/examples/DancingGoat/packages.lock.json @@ -4,54 +4,53 @@ "net8.0": { "Kentico.Xperience.Admin": { "type": "Direct", - - "requested": "[29.3.0, )", - "resolved": "29.3.0", - "contentHash": "134Q/IEEehiBdU8ygTWswWhVxcJeQkW2XNnfJATXijqtosMTlKOZWlJa6u0eroVwnHB2I5k2bAhHi2lHPLNO4A==", + "requested": "[29.5.0, )", + "resolved": "29.5.0", + "contentHash": "B1vIV5IO5CdFCQeB1G1tO6We54hwZO1HJFwDs79uniA7sioqx+LOYHNkhprbvRibhDN1eDXMgeIWgG2l0BRoPA==", "dependencies": { "Kentico.Aira.Client": "1.0.25", - "Kentico.Xperience.WebApp": "[29.3.0]", - "Microsoft.AspNetCore.SpaServices.Extensions": "6.0.32", - "Microsoft.Extensions.FileProviders.Embedded": "6.0.32" + "Kentico.Xperience.WebApp": "[29.5.0]", + "Microsoft.AspNetCore.SpaServices.Extensions": "6.0.33", + "Microsoft.Extensions.FileProviders.Embedded": "6.0.33" } }, "Kentico.Xperience.AzureStorage": { "type": "Direct", - "requested": "[29.3.0, )", - "resolved": "29.3.0", - "contentHash": "iYQc/rFf4wGRYyMGYhfIs9n6Fgq0xkAdlI79+VUzqr6ZS4WyzyO3qd+0XzfqGkYwipSN21HUSDUwVli6gPl5MQ==", + "requested": "[29.5.0, )", + "resolved": "29.5.0", + "contentHash": "4UWyIknuZT/CTrLW9F581vXHE+1yhPHd+8w1ohjaBkn3xkg/BKfwHSau86vFTn//ZZmgP2csrPerapd/Uiw99Q==", "dependencies": { - "Azure.Storage.Blobs": "12.21.0", - "Azure.Storage.Queues": "12.19.0", - "Kentico.Xperience.Core": "29.3.0", + "Azure.Storage.Blobs": "12.21.2", + "Azure.Storage.Queues": "12.19.1", + "Kentico.Xperience.Core": "29.5.0", "Newtonsoft.Json": "13.0.3" } }, "Kentico.Xperience.ImageProcessing": { "type": "Direct", - "requested": "[29.3.0, )", - "resolved": "29.3.0", - "contentHash": "9Ih6q6B4ID71p7RBwiYBcxVvaikZYfYaes4yGyQo2TmuxgWSQQ6CD1PqlyBR1mPzkTfkmGo4Pk9p70/vbxsGtg==", + "requested": "[29.5.0, )", + "resolved": "29.5.0", + "contentHash": "6PxMr63TwZwxZ7SE/U1GB54YQRUC9S+ZsE8LTS42+knDhwdbWd04qHRDdraLr1BGEjeR2OIV4Ms2omyehb0UXw==", "dependencies": { - "Kentico.Xperience.Core": "29.3.0", + "Kentico.Xperience.Core": "29.5.0", "SkiaSharp": "2.88.8", "SkiaSharp.NativeAssets.Linux.NoDependencies": "2.88.8" } }, "Kentico.Xperience.WebApp": { "type": "Direct", - "requested": "[29.3.0, )", - "resolved": "29.3.0", - "contentHash": "4iNprd5ZKN2ckIYDBEuOMTjR389Vhy7JlaKiyRn1jpai80DLgv5fy31bDM7tfMoGY47mV6vrzweldAjeoI3PFg==", + "requested": "[29.5.0, )", + "resolved": "29.5.0", + "contentHash": "3wGJZRGyyO4iDJTeeB8KSa+nZaFMPJhCxXhlxPHJ+0ukaJiJL09MhbJO5oDu1xCyZX59jv4te2IVbAmlvIKDDw==", "dependencies": { "CommandLineParser": "2.9.1", - "HotChocolate.AspNetCore": "13.9.7", - "HotChocolate.Data": "13.9.7", - "HtmlSanitizer": "8.0.865", - "Kentico.Xperience.Core": "[29.3.0]", + "HotChocolate.AspNetCore": "13.9.12", + "HotChocolate.Data": "13.9.12", + "HtmlSanitizer": "8.1.870", + "Kentico.Xperience.Core": "[29.5.0]", "Microsoft.Extensions.Caching.Memory": "6.0.1", - "Microsoft.Extensions.FileProviders.Embedded": "6.0.32", - "Microsoft.Extensions.Localization": "6.0.32" + "Microsoft.Extensions.FileProviders.Embedded": "6.0.33", + "Microsoft.Extensions.Localization": "6.0.33" } }, "SonarAnalyzer.CSharp": { @@ -94,12 +93,12 @@ }, "Azure.Identity": { "type": "Transitive", - "resolved": "1.11.3", - "contentHash": "4EsGMAr+oog5UqHs46qwA7S/lJiwpXjPBY3t9tQBmJ8nsgmT/LLnrc32eiTlfOdfKxUz4fxBD2YjSnVZacu97w==", + "resolved": "1.11.4", + "contentHash": "Sf4BoE6Q3jTgFkgBkx7qztYOFELBCo+wQgpYDwal/qJ1unBH73ywPztIJKXBXORRzAeNijsuxhk94h0TIMvfYg==", "dependencies": { "Azure.Core": "1.38.0", - "Microsoft.Identity.Client": "4.60.3", - "Microsoft.Identity.Client.Extensions.Msal": "4.60.3", + "Microsoft.Identity.Client": "4.61.3", + "Microsoft.Identity.Client.Extensions.Msal": "4.61.3", "System.Memory": "4.5.4", "System.Security.Cryptography.ProtectedData": "4.7.0", "System.Text.Json": "4.7.2", @@ -108,17 +107,17 @@ }, "Azure.Storage.Blobs": { "type": "Transitive", - "resolved": "12.21.0", - "contentHash": "W1aSEH11crU3CscfuICUPXScTO9nKwSof3YFsdxmbdi+P+JARYzntkGJuZ685gvmyUse7isBNncNlVEjB5LT0g==", + "resolved": "12.21.2", + "contentHash": "2J+sMgNbj2DJ+ydRSqYYADDd2AajFLfPzLGxASOxcoGx4iVxyF6jscHw2IY+8QyMPWA09wN3lCtYJ5S4zIsJkA==", "dependencies": { - "Azure.Storage.Common": "12.20.0", + "Azure.Storage.Common": "12.20.1", "System.Text.Json": "4.7.2" } }, "Azure.Storage.Common": { "type": "Transitive", - "resolved": "12.20.0", - "contentHash": "C0uTY4E1NSGiNf/dlLMQ/d85a2CDazEg4YYtNJOYnLSb8ZXJ5RBPHYGW7a46kN5Xn5Bc9BKMvs8fME285TfEpw==", + "resolved": "12.20.1", + "contentHash": "KKBFnc4WZ6m9HgsKgwfO1cIxd154b8cAnP3uWhuelvFkzxqBXQQgIsHF0n3DYBG2AoTJCZDXwJpKuVC7CsKJWg==", "dependencies": { "Azure.Core": "1.41.0", "System.IO.Hashing": "6.0.0" @@ -126,18 +125,18 @@ }, "Azure.Storage.Queues": { "type": "Transitive", - "resolved": "12.19.0", - "contentHash": "+EXqf4aTyshZDpi/DBgffEX0CJMbvs9fHTZX4EMPBPc4WHyXCNs2oKelJes1pdHLRwTUVJ3jGdK1kU/IB5lJJw==", + "resolved": "12.19.1", + "contentHash": "s7jBfSrEScS2yk5n61Xx+rNQCV+4SkFag17Wux4l8OufdBUkQPmEskQbOQxlPqBJNX1ycJRWj55Wd9Cz8lOLtQ==", "dependencies": { - "Azure.Storage.Common": "12.20.0", + "Azure.Storage.Common": "12.20.1", "System.Memory.Data": "1.0.2", "System.Text.Json": "4.7.2" } }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "16.0.1", - "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", + "resolved": "16.0.3", + "contentHash": "gwWk5ykS1uum2/++x3UnGhmjs+4itxce1lW5YnKdb8JeG4QxAMzSWVGh3B1ehiKJNAuvNtbfBwp2BAQvOsq02g==", "dependencies": { "Yarp.ReverseProxy": "2.1.0" } @@ -154,8 +153,8 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "Hr+zOsca8uLgG3x0UogBxyUDu6DSHzbAsEFlEF/GlQGqDIzXUHNx80yMaaXZ11h0cyuANqBz2aw2pGneupQWbQ==", + "resolved": "13.9.12", + "contentHash": "w/nOY3tM8nVmjI1Gyhv5/JVk3VyD7itRhz1Ul0A8C4MHavsEyNFaMA7J+lwBFKwSRsW4R52F0BhUVbomIDA5uQ==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0", "System.Diagnostics.DiagnosticSource": "8.0.0", @@ -164,169 +163,169 @@ }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "eMTrfh3A+CxMnb84Pz2zzQz3zuQXlihbM9f4u1JW8gDKlcARGh9qQr1qxheLQa4Co7RG3O7gl8DiNYyJ781DhQ==", + "resolved": "13.9.12", + "contentHash": "eRHrmy5rNq9rcPrIsWvoEw5BNMDntCkzGa044fpfwKayAvSvzhsMRNRtrY351jGlg5779n3fSsabwofPu3haYw==", "dependencies": { - "HotChocolate.Authorization": "13.9.7", - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Fetching": "13.9.7", - "HotChocolate.Types": "13.9.7", - "HotChocolate.Types.CursorPagination": "13.9.7", - "HotChocolate.Types.Mutations": "13.9.7", - "HotChocolate.Types.OffsetPagination": "13.9.7", - "HotChocolate.Validation": "13.9.7" + "HotChocolate.Authorization": "13.9.12", + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Fetching": "13.9.12", + "HotChocolate.Types": "13.9.12", + "HotChocolate.Types.CursorPagination": "13.9.12", + "HotChocolate.Types.Mutations": "13.9.12", + "HotChocolate.Types.OffsetPagination": "13.9.12", + "HotChocolate.Validation": "13.9.12" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "zZGGxtSH7H2Ft7UYlUbwbPycThld0dnMbpwTjjF667HL4nTXe56egdUd4RurojZQwlY/ybvjFGjbzS6gMZ6xNw==", + "resolved": "13.9.12", + "contentHash": "zCDFmDV0lzDJQd7KvLthQ/d9x0TsVIKLXG3t/v0SgcQBYXnMvBeV094d+3cx44xE3T4lU4DpDeRTgD3rLLA+Dw==", "dependencies": { - "HotChocolate.Language": "13.9.7", + "HotChocolate.Language": "13.9.12", "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.AspNetCore": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "UHNGeGmrVVMaQ+b3sJJWLwc84DZLgXWRYGkI4BBcGWqQllbuMM/2dJ/4Z6lGOUo267SLnH+JxPBn+eE7HlSDYQ==", + "resolved": "13.9.12", + "contentHash": "lv4vBVGFfTOofb/T7Fm+i0rJgyS5ZCBkCmryCcNAOw3YYpt8dL67Mms8+oIEPes04N9Wbimev+1pyxmBh5SpZg==", "dependencies": { - "BananaCakePop.Middleware": "16.0.1", - "HotChocolate": "13.9.7", - "HotChocolate.Subscriptions.InMemory": "13.9.7", - "HotChocolate.Transport.Sockets": "13.9.7", - "HotChocolate.Types.Scalars.Upload": "13.9.7", - "HotChocolate.Utilities.DependencyInjection": "13.9.7" + "BananaCakePop.Middleware": "16.0.3", + "HotChocolate": "13.9.12", + "HotChocolate.Subscriptions.InMemory": "13.9.12", + "HotChocolate.Transport.Sockets": "13.9.12", + "HotChocolate.Types.Scalars.Upload": "13.9.12", + "HotChocolate.Utilities.DependencyInjection": "13.9.12" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "CrAFhKQbK2L+nLe7TLjdf0iw6mLYSF/0niuDdOXB9YuIzuJ89Getrm2xWrSJwaJELWu1ksXpuOm1whPXD4/Cxw==", + "resolved": "13.9.12", + "contentHash": "LuTW5qZhD0bpZqQ1sTZJav+u6jc4JO7DltKhGM1nFWsOEPxMAx9OgyehQfuAoiGp0CPKHUI+M/LxDbXu1HFJog==", "dependencies": { - "HotChocolate.Execution": "13.9.7" + "HotChocolate.Execution": "13.9.12" } }, "HotChocolate.Data": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "LDBHbB8Ix2v3kFK6GHORa7ZD5NAV0tuWzBZ2HATdqT91KKFzOkJkCcb59JYlj1sILEJ6KzLueWsCgO+NmBZVMw==", + "resolved": "13.9.12", + "contentHash": "NFsErsZVyMZntDrA6TPHvCgLCaOQ9QhZvmQmnVqcozLQvfCLuS6cSGwdN5zy+DKYa+yTaMG5DK7uKcxVWT//Sg==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types.CursorPagination": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types.CursorPagination": "13.9.12" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "y0C5ODS84VnR18ZmwqIPLvv6U/Fd2EA4inqg4gYs1nrMdKqHnCNP9i14+Ud8tREXZw/O+Jsvfw9+OylwW05Xww==", + "resolved": "13.9.12", + "contentHash": "UsuKiq7ynoqa9LvOjUHJAb4XTtnreFmjT3unhU6wz5cVeJU02eqbIQQyiOPDlv/SEk75XxJ1EjiuXZ/sKzcsag==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", - "HotChocolate.Execution.Abstractions": "13.9.7", - "HotChocolate.Fetching": "13.9.7", - "HotChocolate.Types": "13.9.7", - "HotChocolate.Utilities.DependencyInjection": "13.9.7", - "HotChocolate.Validation": "13.9.7", + "HotChocolate.Abstractions": "13.9.12", + "HotChocolate.Execution.Abstractions": "13.9.12", + "HotChocolate.Fetching": "13.9.12", + "HotChocolate.Types": "13.9.12", + "HotChocolate.Utilities.DependencyInjection": "13.9.12", + "HotChocolate.Validation": "13.9.12", "Microsoft.Extensions.DependencyInjection": "8.0.0", "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "JyVN6xsxWGJdeU1RwJWsHnhYakU8z7Q003r3c/M1FwokqAYspQPDzP4QuBvmz8nPyCxSdR42eNvqVGYKZj/h1Q==", + "resolved": "13.9.12", + "contentHash": "o65we+xKpSpn/z5uqeTT3SW8+JEu4tufMxRCXXe38K504+WNy1yuuf3DpmwKBP0I3zeXMaWOsLLFcqzYKMAMXA==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", + "HotChocolate.Abstractions": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "I+Ek6pdicNtZvXyvr2dCejPWn+q13gDmUzuK5L+iUP5IGfod/02Vj408hBHPIapweCYixreI0h5VDHwJm2fx2A==", + "resolved": "13.9.12", + "contentHash": "dl098a0FSo2z0k3WwHdrlCeAn4fwFGOC2oQnkWjNGmTZAIuUaOrT1zoxLgFGJ/FLSUdB58jgYAiW+tD4zVE1+Q==", "dependencies": { - "GreenDonut": "13.9.7", - "HotChocolate.Types": "13.9.7" + "GreenDonut": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "rWH01lP72YQmLP0tw1RtabanCXbRZ58x/frAQtPttyMViCx6N4aGEFAS8716ANwFM/ek6Kv7fYpxj3A0N1943A==", + "resolved": "13.9.12", + "contentHash": "rohvOiAmZ9Wo8cLjnm5UwtrYrHfLm0YNKAqD7ZqK8QBqv3DTqlZTs3WMaJdkG6BLdZR/l8dK/g1Bl3BGhqSBJA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7", - "HotChocolate.Language.Utf8": "13.9.7", - "HotChocolate.Language.Visitors": "13.9.7", - "HotChocolate.Language.Web": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12", + "HotChocolate.Language.Utf8": "13.9.12", + "HotChocolate.Language.Visitors": "13.9.12", + "HotChocolate.Language.Web": "13.9.12" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "iiTGVnjh+Q07L3GQ1gQrrbQWXh/sj6vJrvlwSLRbdIR2PZ53d9xXTeWjfiqgSfl+qZwWUyyCCCcWrJwYQokpyQ==", + "resolved": "13.9.12", + "contentHash": "rEmQ0OFW+LjTtYZNenFW9IKWTPJny8ACl1XnPULcGF22mgtuxItLwGJRfceRaAKqpAV2g7oLdFfLYmjqeJc3Tw==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "rGSf31r6WjOi4LAaF4HFKYPV+/nT7aqsvOZ5CO/UCJEM0vDeuda++NYdkLVETyUHeWc30niwIKOVSlN9XJNVuQ==", + "resolved": "13.9.12", + "contentHash": "JfsKnk734a0PxEFo9XGHiAiXNKI5qV1X0mAMcqRetljaiLGKKwYM/1ndvz3JS/gvVP/oltBaRKNKk1pWO9desg==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "3MxWSJdbbVh1LJDef7l6oPCBFHomMxPJSot/OBS11xEeeQnChrrVDFwPWnlffmyDX4Dccugbs0eKwJEXaxCpzQ==", + "resolved": "13.9.12", + "contentHash": "I2T8u0gRY0TxmjLm+EYjIreihp7oJQLhRXOs8p3y7BZAmJNxfeuc6EkMn8VDca1EQeiroNmC9UTawtJNV7QNyQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "FJxfPz4ESaRZj8fWgV1lPCrdAysiEGktJgkYHH4w/MioVLULdjckYocnQnCaWx2km0r0fojNGbm2k1TlqYL/7A==", + "resolved": "13.9.12", + "contentHash": "/1HpNKOImaJcy6XLDPQaWqIE1H4Dmu4ST2Sl9lPE9EwDfYe6gBv3dS9mQ7jteyQQ7az05QhotXl2zDHD/Zx7lg==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.7" + "HotChocolate.Language.Utf8": "13.9.12" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "19WDXKE2bN5Pd35ebzS/zqOKSb/thnBRWCFKqLLxVvjrRaZcdj+Amc92fqTJi4XGis/6AoMf6JZovbQjWeHvoA==", + "resolved": "13.9.12", + "contentHash": "2VnYGlN9E7e5kGV76JU4Z/5sOag0wgUh694qwx4aPG1Lc5hPQDOL2BIk9jX7PmftHDmbxpNT3ZBvTSJXvGIoPQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", - "HotChocolate.Execution.Abstractions": "13.9.7" + "HotChocolate.Abstractions": "13.9.12", + "HotChocolate.Execution.Abstractions": "13.9.12" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "vvv8QjqPSURHTjRNyM2AuOvJI9vRBCnB8mYe3lUrGo2coBYakGb+21MX0UjreqR9kaR+611p5OM4+snASSN4Fw==", + "resolved": "13.9.12", + "contentHash": "yQxVqqLUdMcl7yvU4qVhIrsRA1WIb1pkiKsXuD3FQxxucW9M4qqqklx91tY33AwIGnBGva7UCnofNxHg2FRbYg==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.7", - "HotChocolate.Subscriptions": "13.9.7", + "HotChocolate.Execution.Abstractions": "13.9.12", + "HotChocolate.Subscriptions": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "MiyrvorBadNSJYiXdH+O0aEX1MM6BTMGRYBICcMw/Gfv1oJurMa9qXAcqwVa6fwlRZPL+UqU6PlFLjIILhPLLA==", + "resolved": "13.9.12", + "contentHash": "7VWxYdWBKhNA1LxBIba7okMvQDcaGzHlYhkmBtPGKtfg7sKqOrF6TrwlJg0peLnN8luG7TfW8Fmz8cbD7teEdA==", "dependencies": { "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "zauZ28u0cjwDo02YlsF290HKvGfKIuXCljGoGRypl1vsjlX/MOcDTUiDY5/VEnVVz6QZWZyg66C/kO862QuXPQ==", + "resolved": "13.9.12", + "contentHash": "bTPnQZ0zolwj3E37ma2NPS5SxX6jj2OTQj9bszonB+92t0BQLOuX2wlgz0ux7XSmdC+ch7reCxJcrJEnPDs2QQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", - "HotChocolate.Types.Shared": "13.9.7", - "HotChocolate.Utilities": "13.9.7", + "HotChocolate.Abstractions": "13.9.12", + "HotChocolate.Types.Shared": "13.9.12", + "HotChocolate.Utilities": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", @@ -335,74 +334,74 @@ }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "c1qshoAFs1h3L5hd8sSkdXTRdZPdTaolDLftmX5HX46TJvRW3diHWH7vDvfytlsxggMamHauwT4sTShYsvQGqw==", + "resolved": "13.9.12", + "contentHash": "gjYxrEgQlcYTIcLMRUbF4/++C5c87OP7JU+f+YP6+BPID+r9tfEjC0U5KuRgbSg83t5jtgK1RpMLrbdTOUUGJg==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "89CAbrdiZziEajLzBItunpn+Fd09iqVYKHEPlRsWY55L2wNrzcoblW5Pe2p3c22w8ewmzSSEc8TupBYlez+2Ug==", + "resolved": "13.9.12", + "contentHash": "Uvm+FfZISLM5+/vYuq4Rphns1UrfhiCfoLmdUtjMIPq4jVVl4unLxfcy1GrXdHVoBO7bOL1+gHl96e9S422+6w==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "9kxPAU748x9/wmNPzLrHqYOMOkjbTP7DPMfMmOiUGjetI2Lm6RenUVZVODU8n92luk2Ng4Fc5GgJd7a28yqJ9w==", + "resolved": "13.9.12", + "contentHash": "ipcyM/APH4J5oUFSE+TMYlCZ0n3lVvvap4eOHSXiriHlNM9/deLy5CooAlMmBkFbMsiFR8XcD9Ebc7od/xwm+g==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "afuOJKMvL8f64UZmvn2mt66db9rvdWkZUDt5vBsGErAxSJst8yCO56hiaYgjkAYg2Itp9yiqtJIc/UjI22x34A==", + "resolved": "13.9.12", + "contentHash": "3cAHgOwyl0O6qznO7SyjYsUa/RdnSK1JnKxPkQ4lk5Y3pDpl4iLLKuGtReoS+n74h5WLE88U3RPR4x6JcWMDlw==", "dependencies": { - "HotChocolate.Types": "13.9.7" + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "OXuZNxvpFX/clo3jYgogoAg8dp+NIphIhKffs6S6tuyJsl4/sqoo19cwNhEyF0K9cxKJYJj+oYw+hbl5XOHpRQ==", + "resolved": "13.9.12", + "contentHash": "zWDYduCtLFxGqMV3vJ5lMfUv4h9ebU8dLwtG1Irtv5W5zOze0S+U6C0853hzDwL8/o6Torb5knQj56n78WBnAA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "Mh8K5kZZ0zRs5zXVlZDc3WqPU8I70lVSRTdhrM+4eWRZHceZ3OLgebQww2uGmAFcStzHD6b7XmQPuVxw0HRVCg==" + "resolved": "13.9.12", + "contentHash": "Bo7aY9qaZ+8rcpDZFz9V03oVu4IWHmVgxlCDbMLYx1VJWOOyJA7pQb25ILxYVzScadn+lMkLy+4iq55GetLMhw==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "XlTIkwAzVshTj4p+XR7YCrGl/bwM0izwoUmKCvc1mdoIBtORbWQNixrnLQsCldhlnqP1G+CzXO2g0wNv+g8wBA==", + "resolved": "13.9.12", + "contentHash": "iSTJZCLfpg7l+ExXFQbWsPPvkAPL+JLU3UA1E6avgTEzPvMpzo9I1c5mA2ItyoOrmTewKSWmnQBlv25oEFQF6g==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "vB7wUZl6kdo97v+oi0DTXXoif4kJ+6/CAJ8zQ8WakWiyJDxYe76v0NkGgViTrVFUDUlffVa7Yl6jGv49b2TPhQ==", + "resolved": "13.9.12", + "contentHash": "7DyCifF5kBD2hbrsFoQX+nVYMURaHDzAt8gFm3+Ubedqx91cV39iP/Mam1qgx3gh/shaKYSRQFw4Ao8TTpFj2Q==", "dependencies": { - "HotChocolate.Types": "13.9.7", + "HotChocolate.Types": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.Options": "8.0.0" } }, "HtmlSanitizer": { "type": "Transitive", - "resolved": "8.0.865", - "contentHash": "jzgltCjgTMbTLVfeHYU3ocxJrqRDVdkXYYGTOKVBnpQffaRB/4Hr0R6jKxBBH8UudQSgACp8j3lsD46weyeDJg==", + "resolved": "8.1.870", + "contentHash": "bQWYaKg8PrlgnhM9sPALl0UorpjWQkPTQiSTVyvm8imqF9lCLqBmtC0adUDi8xUYcdg6SJC+aHCw1MOjcg+Wnw==", "dependencies": { "AngleSharp": "[0.17.1]", "AngleSharp.Css": "[0.17.0]", @@ -423,19 +422,19 @@ }, "Kentico.Xperience.Core": { "type": "Transitive", - "resolved": "29.3.0", - "contentHash": "nomh8aBU0jOKP75U8G+z8Uf1pES7Jb18kDIih3CDrtr6FuiPWQRO72Zq097tosizhJzq9fW5MSGaL+uZXvX7Gg==", + "resolved": "29.5.0", + "contentHash": "RfcGWuhZSVDfmuUwl26svb9DZ/FWnhlNTr4q120uC7tuj7v/o3PH2iCtWCsDxkosGuN8f6c4FfO7cTnEPgmgWg==", "dependencies": { "AngleSharp": "0.17.1", "MailKit": "4.7.1.1", - "Microsoft.Data.SqlClient": "5.2.1", + "Microsoft.Data.SqlClient": "5.2.2", "Microsoft.Extensions.Caching.Memory": "6.0.1", "Microsoft.Extensions.Configuration": "6.0.1", "Microsoft.Extensions.Configuration.Binder": "6.0.0", "Microsoft.Extensions.DependencyInjection": "6.0.1", "Microsoft.Extensions.FileProviders.Physical": "6.0.0", "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", - "Microsoft.Extensions.Localization": "6.0.32", + "Microsoft.Extensions.Localization": "6.0.33", "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", "Mono.Cecil": "0.11.5", "Newtonsoft.Json": "13.0.3", @@ -453,8 +452,8 @@ }, "Microsoft.AspNetCore.SpaServices.Extensions": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "XQ7QY8Kpo31H/pVNmNuTfa/HSsGfpIA82QHHiq3J1SU3EBEDSEcdOSJRI7ODm4GmGZY/n/fWM9Blpcbf5rhfPg==", + "resolved": "6.0.33", + "contentHash": "YFWk3bkKKVLQ1Q8jnTbjuzIIpIVoua4iw152wBNIH50gBZEi0xubmf0vxfgjXKoRs0xIgOBnjunvaMa8Of1e3w==", "dependencies": { "Microsoft.Extensions.FileProviders.Physical": "6.0.0" } @@ -466,12 +465,12 @@ }, "Microsoft.Data.SqlClient": { "type": "Transitive", - "resolved": "5.2.1", - "contentHash": "ojg2XWmih4ubPPtrhRqqXk0SM6wC2ZSTkNNEAlYBhMo4IsRHjLazFc0abzcZCNfw1JyWcqY7vGutWTv8ZaFD9g==", + "resolved": "5.2.2", + "contentHash": "mtoeRMh7F/OA536c/Cnh8L4H0uLSKB5kSmoi54oN7Fp0hNJDy22IqyMhaMH4PkDCqI7xL//Fvg9ldtuPHG0h5g==", "dependencies": { - "Azure.Identity": "1.11.3", + "Azure.Identity": "1.11.4", "Microsoft.Data.SqlClient.SNI.runtime": "5.2.0", - "Microsoft.Identity.Client": "4.60.3", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.IdentityModel.JsonWebTokens": "6.35.0", "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.35.0", "Microsoft.SqlServer.Server": "1.0.0", @@ -552,8 +551,8 @@ }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "zedFFk86/lHx3xePklSc5Fo4N3kWqEMSLnYbnsGc1loca/f5T0g85XGSgizPvdqZyAGtDlh1jHKk94aF0FiSpg==", + "resolved": "6.0.33", + "contentHash": "A5HxR46JT3B81XtfYY1/vr4RvICcue7/7lkOjrTMhGX0RdDXqQHXL1NpeYB27S1CLlsjuJn2fF1LSeGRnYJbgg==", "dependencies": { "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" } @@ -596,19 +595,19 @@ }, "Microsoft.Extensions.Localization": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "oT9/Odho4th/5aY+HztJMfRhAVR+6rZ9FqYYjRrRFDU2e6C+pBCQLSujQIjdAjuHlsUu4pNmHXoaaiaE/82pow==", + "resolved": "6.0.33", + "contentHash": "o4I6H5vdDoILQvHJXvVdo33ts4zTb4FXcdc+Et1FYG0dao9GLrDQ3HXwgV8yU2M/JeEJJnsQvUwtaANJFDnjQQ==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Localization.Abstractions": "6.0.32", + "Microsoft.Extensions.Localization.Abstractions": "6.0.33", "Microsoft.Extensions.Logging.Abstractions": "6.0.4", "Microsoft.Extensions.Options": "6.0.0" } }, "Microsoft.Extensions.Localization.Abstractions": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "ZG8q0/GHhkfXa4ciGp23ax6bJBjFBMYldw8vDg3JIzBp7vYMg5+hGSmNzFMtZThyAr9ktvEQAJS7TUpEEpDT0A==" + "resolved": "6.0.33", + "contentHash": "Hbq0a3DswFjen1K6hDljNENpy6bDbA/s2qsQ5M9kqa6fB3JVKWggAdqwx2GJG4+SGkZKOWkOZxQ1QVqavWaF5g==" }, "Microsoft.Extensions.Logging": { "type": "Transitive", @@ -660,8 +659,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.60.3", - "contentHash": "jve1RzmSpBhGlqMzPva6VfRbLMLZZc1Q8WRVZf8+iEruQkBgDTJPq8OeTehcY4GGYG1j6UB1xVofVE+n4BLDdw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -669,10 +668,10 @@ }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.60.3", - "contentHash": "X1Cz14/RbmlLshusE5u2zfG+5ul6ttgou19BZe5Mdw1qm6fgOI9/imBB2TIsx2UD7nkgd2+MCSzhbukZf7udeg==", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.60.3", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -935,8 +934,8 @@ "type": "Project", "dependencies": { "AspNetCore.Authentication.ApiKey": "[8.0.0, )", - "Kentico.Xperience.Admin": "[29.3.0, )", - "Kentico.Xperience.WebApp": "[29.3.0, )" + "Kentico.Xperience.Admin": "[29.5.0, )", + "Kentico.Xperience.WebApp": "[29.5.0, )" } }, "AspNetCore.Authentication.ApiKey": { diff --git a/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierApiKeyListingPage.cs b/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierApiKeyListingPage.cs index f1ee11f..e92f0ee 100644 --- a/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierApiKeyListingPage.cs +++ b/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierApiKeyListingPage.cs @@ -23,15 +23,15 @@ internal class ZapierApiKeyListingPage : ListingPage private readonly IInfoProvider apiKeyInfoProvider; private readonly IAuthenticatedUserAccessor userAccessor; private readonly IUserInfoProvider userProvider; - private readonly IPageUrlGenerator pageUrlGenerator; + private readonly IPageLinkGenerator pageLinkGenerator; - public ZapierApiKeyListingPage(IInfoProvider apiKeyInfoProvider, IAuthenticatedUserAccessor userAccessor, IUserInfoProvider userProvider, IPageUrlGenerator pageUrlGenerator) + public ZapierApiKeyListingPage(IInfoProvider apiKeyInfoProvider, IAuthenticatedUserAccessor userAccessor, IUserInfoProvider userProvider, IPageLinkGenerator pageLinkGenerator) { this.apiKeyInfoProvider = apiKeyInfoProvider; this.userAccessor = userAccessor; this.userProvider = userProvider; - this.pageUrlGenerator = pageUrlGenerator; + this.pageLinkGenerator = pageLinkGenerator; } @@ -91,6 +91,9 @@ public async Task Generate(CancellationToken _) apiKeyInfoProvider.Set(apiKeyInfo); transaction.Commit(); - return NavigateTo(pageUrlGenerator.GenerateUrl(apiKeyInfo.ApiKeyID.ToString())); + return NavigateTo(pageLinkGenerator.GetPath(new PageParameterValues + { + { typeof(ZapierApiKeyEditSection), apiKeyInfo.ApiKeyID } + })); } } diff --git a/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierNewApiKeyPage.cs b/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierNewApiKeyPage.cs index 9140041..75d0b88 100644 --- a/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierNewApiKeyPage.cs +++ b/src/Kentico.Xperience.Zapier/Admin/UIPages/ZapierNewApiKeyPage.cs @@ -20,7 +20,7 @@ namespace Kentico.Xperience.Zapier.Admin.UIPages; internal class ZapierNewApiKeyPage : InfoEditPage { private readonly IInfoProvider apiKeyInfoProvider; - private readonly IPageUrlGenerator pageUrlGenerator; + private readonly IPageLinkGenerator pageLinkGenerator; private readonly IZapierTokenManager tokenManager; @@ -34,11 +34,11 @@ internal class ZapierNewApiKeyPage : InfoEditPage protected override bool RefetchAll => true; - public ZapierNewApiKeyPage(IFormComponentMapper formComponentMapper, IFormDataBinder formDataBinder, IInfoProvider apiKeyInfoProvider, IPageUrlGenerator pageUrlGenerator, IZapierTokenManager tokenManager) + public ZapierNewApiKeyPage(IFormComponentMapper formComponentMapper, IFormDataBinder formDataBinder, IInfoProvider apiKeyInfoProvider, IPageLinkGenerator pageLinkGenerator, IZapierTokenManager tokenManager) : base(formComponentMapper, formDataBinder) { this.apiKeyInfoProvider = apiKeyInfoProvider; - this.pageUrlGenerator = pageUrlGenerator; + this.pageLinkGenerator = pageLinkGenerator; this.tokenManager = tokenManager; } @@ -67,7 +67,7 @@ public override async Task ConfigurePage() protected override async Task SubmitInternal(FormSubmissionCommandArguments args, ICollection items, IFormFieldValueProvider formFieldValueProvider) { - string navigationUrl = pageUrlGenerator.GenerateUrl(); + string navigationUrl = pageLinkGenerator.GetPath(); return await Task.FromResult(NavigateTo(navigationUrl, RefetchAll)); } diff --git a/src/Kentico.Xperience.Zapier/Helpers/AdminUrlHelper.cs b/src/Kentico.Xperience.Zapier/Helpers/AdminUrlHelper.cs new file mode 100644 index 0000000..a30bf27 --- /dev/null +++ b/src/Kentico.Xperience.Zapier/Helpers/AdminUrlHelper.cs @@ -0,0 +1,29 @@ +using Kentico.Xperience.Admin.Base; +using Kentico.Xperience.Admin.Base.UIPages; +using Kentico.Xperience.Admin.Headless.UIPages; +using Kentico.Xperience.Admin.Websites.UIPages; + +namespace Kentico.Xperience.Zapier.Helpers; + +internal static class AdminUrlHelper +{ + internal static PageParameterValues GetWebPageParams(int webPageItemId, int websiteChannelId, string lang) => new() + { + { typeof(WebPageLayout), $"{lang}_{webPageItemId}" }, + { typeof(WebPagesApplication), $"webpages-{websiteChannelId}" }, + }; + + internal static PageParameterValues GetHeadlessParams(int headlessItemId, int headlessChannelId, string lang) => new() + { + { typeof(HeadlessEditLayout), headlessItemId }, + { typeof(HeadlessChannelContentLanguage), lang }, + { typeof(HeadlessChannelApplication), $"headless-{headlessChannelId}"}, + }; + + internal static PageParameterValues GetReusableParams(int contentItemId, int contentItemContentFolderId, string lang) => new() + { + { typeof(ContentItemEditSection), contentItemId}, + { typeof(ContentHubFolder), contentItemContentFolderId }, + { typeof(ContentHubContentLanguage), lang }, + }; +} diff --git a/src/Kentico.Xperience.Zapier/Triggers/AdminLinkService.cs b/src/Kentico.Xperience.Zapier/Triggers/AdminLinkService.cs new file mode 100644 index 0000000..50abbe9 --- /dev/null +++ b/src/Kentico.Xperience.Zapier/Triggers/AdminLinkService.cs @@ -0,0 +1,25 @@ +using Kentico.Xperience.Admin.Base; + +namespace Kentico.Xperience.Zapier.Triggers; + + +internal interface IAdminLinkService +{ + string GenerateAdminLink(PageParameterValues parameters, Uri baseUri); +} + + +internal class AdminLinkService : IAdminLinkService +{ + private readonly IPageLinkGenerator pageLinkGenerator; + + public AdminLinkService(IPageLinkGenerator pageLinkGenerator) => this.pageLinkGenerator = pageLinkGenerator; + + public string GenerateAdminLink(PageParameterValues parameters, Uri baseUri) + { + string relativePath = pageLinkGenerator.GetPath(parameters); + var adminUrl = new Uri(baseUri, $"/admin{relativePath}"); + + return adminUrl.ToString(); + } +} diff --git a/src/Kentico.Xperience.Zapier/Triggers/Handlers/Abstractions/ZapierWorkflowHandler.cs b/src/Kentico.Xperience.Zapier/Triggers/Handlers/Abstractions/ZapierWorkflowHandler.cs index 41be099..ab99f65 100644 --- a/src/Kentico.Xperience.Zapier/Triggers/Handlers/Abstractions/ZapierWorkflowHandler.cs +++ b/src/Kentico.Xperience.Zapier/Triggers/Handlers/Abstractions/ZapierWorkflowHandler.cs @@ -9,15 +9,20 @@ namespace Kentico.Xperience.Zapier.Triggers.Handlers.Abstractions; internal abstract class ZapierWorkflowHandler : ZapierTriggerHandler { private readonly IHttpContextAccessor httpContextAccessor; + protected readonly IAdminLinkService AdminLinkService; protected ZapierWorkflowHandler( ZapierTriggerInfo zapierTrigger, IEventLogService? eventLogService, HttpClient client, - IHttpContextAccessor httpContextAccessor) + IHttpContextAccessor httpContextAccessor, + IAdminLinkService adminLinkService) : base(zapierTrigger, eventLogService, client) - => this.httpContextAccessor = httpContextAccessor; + { + this.httpContextAccessor = httpContextAccessor; + AdminLinkService = adminLinkService; + } protected Uri GetHostDomain() => new($"https://{httpContextAccessor.HttpContext?.Request.Host.Value ?? string.Empty}"); diff --git a/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowHeadlessHandler.cs b/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowHeadlessHandler.cs index 738d701..1d87bd9 100644 --- a/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowHeadlessHandler.cs +++ b/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowHeadlessHandler.cs @@ -2,6 +2,8 @@ using CMS.Core; using Kentico.Integration.Zapier; +using Kentico.Xperience.Admin.Headless.UIPages; +using Kentico.Xperience.Zapier.Helpers; using Kentico.Xperience.Zapier.Triggers.Handlers.Abstractions; using Microsoft.AspNetCore.Http; @@ -10,7 +12,9 @@ namespace Kentico.Xperience.Zapier.Triggers.Handlers; internal class WorkflowHeadlessHandler : ZapierWorkflowHandler { - public WorkflowHeadlessHandler(ZapierTriggerInfo zapierTrigger, IEventLogService? eventLogService, HttpClient client, IHttpContextAccessor httpContextAccessor) : base(zapierTrigger, eventLogService, client, httpContextAccessor) + public WorkflowHeadlessHandler(ZapierTriggerInfo zapierTrigger, IEventLogService? eventLogService, + HttpClient client, IHttpContextAccessor httpContextAccessor, IAdminLinkService adminLinkService) : base( + zapierTrigger, eventLogService, client, httpContextAccessor, adminLinkService) { } @@ -44,9 +48,11 @@ private void Handler(object? sender, HeadlessItemWorkflowMoveToStepArguments e) } var data = e.GetZapierWorkflowPostObject(); - var websiteUri = GetHostDomain(); - var adminUrl = new Uri(websiteUri, $"/admin/headless-{e.HeadlessChannelID}/{e.ContentLanguageName}/list/{e.ID}"); - data.TryAdd("AdminLink", adminUrl); + + var pageParams = AdminUrlHelper.GetHeadlessParams(e.ID, e.HeadlessChannelID, e.ContentLanguageName); + string adminLink = AdminLinkService.GenerateAdminLink(pageParams, GetHostDomain()); + + data.TryAdd("AdminLink", adminLink); if (ZapierTrigger != null) { diff --git a/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowPagesHandler.cs b/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowPagesHandler.cs index 1e8a314..0a156ae 100644 --- a/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowPagesHandler.cs +++ b/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowPagesHandler.cs @@ -1,7 +1,8 @@ using CMS.ContentWorkflowEngine; using CMS.Core; - using Kentico.Integration.Zapier; +using Kentico.Xperience.Admin.Websites.UIPages; +using Kentico.Xperience.Zapier.Helpers; using Kentico.Xperience.Zapier.Triggers.Handlers.Abstractions; using Microsoft.AspNetCore.Http; @@ -10,8 +11,15 @@ namespace Kentico.Xperience.Zapier.Triggers.Handlers; internal class WorkflowPagesHandler : ZapierWorkflowHandler { - public WorkflowPagesHandler(ZapierTriggerInfo zapierTrigger, IEventLogService? eventLogService, HttpClient client, IHttpContextAccessor httpContextAccessor) : base(zapierTrigger, eventLogService, client, httpContextAccessor) + public WorkflowPagesHandler( + ZapierTriggerInfo zapierTrigger, + IEventLogService? eventLogService, + HttpClient client, + IHttpContextAccessor httpContextAccessor, + IAdminLinkService adminLinkService) + : base(zapierTrigger, eventLogService, client, httpContextAccessor, adminLinkService) { + } @@ -45,10 +53,11 @@ private void Handler(object? sender, WebPageWorkflowMoveToStepArguments e) var data = e.GetZapierWorkflowPostObject(); - var websiteUri = GetHostDomain(); - var adminUrl = new Uri(websiteUri, $"/admin/webpages-{e.WebsiteChannelID}/{e.ContentLanguageName}_{e.ID}"); - data.TryAdd("AdminLink", adminUrl); + var pageParams = AdminUrlHelper.GetWebPageParams(e.ID, e.WebsiteChannelID, e.ContentLanguageName); + string adminLink = AdminLinkService.GenerateAdminLink(pageParams, GetHostDomain()); + + data.TryAdd("AdminLink", adminLink); if (ZapierTrigger != null) diff --git a/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowReusableHandler.cs b/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowReusableHandler.cs index dbf159e..f8fc18e 100644 --- a/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowReusableHandler.cs +++ b/src/Kentico.Xperience.Zapier/Triggers/Handlers/WorkflowReusableHandler.cs @@ -1,9 +1,12 @@ using CMS.ContentEngine; +using CMS.ContentEngine.Internal; using CMS.ContentWorkflowEngine; using CMS.Core; using CMS.DataEngine; using Kentico.Integration.Zapier; +using Kentico.Xperience.Admin.Base.UIPages; +using Kentico.Xperience.Zapier.Helpers; using Kentico.Xperience.Zapier.Triggers.Handlers.Abstractions; using Microsoft.AspNetCore.Http; @@ -13,13 +16,20 @@ namespace Kentico.Xperience.Zapier.Triggers.Handlers; internal class WorkflowReusableHandler : ZapierWorkflowHandler { private readonly IInfoProvider contentLanguageProvider; + private readonly IInfoProvider contentInfoProvider; + public WorkflowReusableHandler(ZapierTriggerInfo zapierTrigger, IEventLogService? eventLogService, HttpClient client, IHttpContextAccessor httpContextAccessor, - IInfoProvider contentLanguageProvider) - : base(zapierTrigger, eventLogService, client, httpContextAccessor) => + IInfoProvider contentLanguageProvider, + IInfoProvider contentInfoProvider, + IAdminLinkService adminLinkService) + : base(zapierTrigger, eventLogService, client, httpContextAccessor, adminLinkService) + { this.contentLanguageProvider = contentLanguageProvider; + this.contentInfoProvider = contentInfoProvider; + } public override bool RegistrationProcessor(bool register = true) @@ -52,12 +62,15 @@ private void Handler(object? sender, ContentItemWorkflowMoveToStepArguments e) var data = e.GetZapierWorkflowPostObject(); + var contentItemInfo = contentInfoProvider.Get(e.ID); var info = contentLanguageProvider.Get(e.ContentLanguageID); - var websiteUri = GetHostDomain(); - var adminUrl = new Uri(websiteUri, $"/admin/content-hub/{info.ContentLanguageName}/list/{e.ID}"); + var pageParams = AdminUrlHelper.GetReusableParams(e.ID, contentItemInfo.ContentItemContentFolderID, + info.ContentLanguageName); + + string adminLink = AdminLinkService.GenerateAdminLink(pageParams, GetHostDomain()); - data.TryAdd("AdminLink", adminUrl); + data.TryAdd("AdminLink", adminLink); if (ZapierTrigger != null) diff --git a/src/Kentico.Xperience.Zapier/Triggers/Handlers/ZapierTriggerHandlerFactory.cs b/src/Kentico.Xperience.Zapier/Triggers/Handlers/ZapierTriggerHandlerFactory.cs index 849cf56..2f8bd8a 100644 --- a/src/Kentico.Xperience.Zapier/Triggers/Handlers/ZapierTriggerHandlerFactory.cs +++ b/src/Kentico.Xperience.Zapier/Triggers/Handlers/ZapierTriggerHandlerFactory.cs @@ -1,4 +1,5 @@ using CMS.ContentEngine; +using CMS.ContentEngine.Internal; using CMS.Core; using CMS.DataEngine; using CMS.EventLog; @@ -23,10 +24,13 @@ internal class ZapierTriggerHandlerFactory : IZapierTriggerHandlerFactory private readonly HttpClient client; private readonly IWorkflowScopeService workflowScopeService; private readonly IInfoProvider contentLanguageProvider; + private readonly IInfoProvider contentInfoProvider; + private readonly IHttpContextAccessor httpContextAccessor; private readonly IInfoProvider triggerEventLogTypeInfoProvider; private readonly IProgressiveCache progressiveCache; private readonly IEventLogService logService; + private readonly IAdminLinkService adminLinkService; public ZapierTriggerHandlerFactory(HttpClient client, @@ -35,7 +39,9 @@ public ZapierTriggerHandlerFactory(HttpClient client, IHttpContextAccessor httpContextAccessor, IInfoProvider triggerEventLogTypeInfoProvider, IProgressiveCache progressiveCache, - IEventLogService logService) + IEventLogService logService, + IAdminLinkService adminLinkService, + IInfoProvider contentInfoProvider) { this.client = client; this.workflowScopeService = workflowScopeService; @@ -44,6 +50,8 @@ public ZapierTriggerHandlerFactory(HttpClient client, this.triggerEventLogTypeInfoProvider = triggerEventLogTypeInfoProvider; this.progressiveCache = progressiveCache; this.logService = logService; + this.adminLinkService = adminLinkService; + this.contentInfoProvider = contentInfoProvider; } @@ -73,9 +81,9 @@ public ZapierTriggerHandlerFactory(HttpClient client, ZapierWorkflowHandler workflowHandler = classType switch { - ZapierTriggerObjectClassType.Website => new WorkflowPagesHandler(trigger, logService, client, httpContextAccessor), - ZapierTriggerObjectClassType.Reusable => new WorkflowReusableHandler(trigger, logService, client, httpContextAccessor, contentLanguageProvider), - ZapierTriggerObjectClassType.Headless => new WorkflowHeadlessHandler(trigger, logService, client, httpContextAccessor), + ZapierTriggerObjectClassType.Website => new WorkflowPagesHandler(trigger, logService, client, httpContextAccessor, adminLinkService), + ZapierTriggerObjectClassType.Reusable => new WorkflowReusableHandler(trigger, logService, client, httpContextAccessor, contentLanguageProvider, contentInfoProvider, adminLinkService), + ZapierTriggerObjectClassType.Headless => new WorkflowHeadlessHandler(trigger, logService, client, httpContextAccessor, adminLinkService), ZapierTriggerObjectClassType.Form => throw new NotImplementedException(), ZapierTriggerObjectClassType.Other => throw new NotImplementedException(), ZapierTriggerObjectClassType.System => throw new NotImplementedException(), diff --git a/src/Kentico.Xperience.Zapier/ZapierServiceCollectionExtensions.cs b/src/Kentico.Xperience.Zapier/ZapierServiceCollectionExtensions.cs index a0d4c3b..8ca3984 100644 --- a/src/Kentico.Xperience.Zapier/ZapierServiceCollectionExtensions.cs +++ b/src/Kentico.Xperience.Zapier/ZapierServiceCollectionExtensions.cs @@ -30,7 +30,7 @@ public static IServiceCollection AddKenticoZapier(this IServiceCollection servic services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); - + services.AddSingleton(); services.AddSingleton(); services.AddAuthentication() diff --git a/src/Kentico.Xperience.Zapier/packages.lock.json b/src/Kentico.Xperience.Zapier/packages.lock.json index 3777335..479470b 100644 --- a/src/Kentico.Xperience.Zapier/packages.lock.json +++ b/src/Kentico.Xperience.Zapier/packages.lock.json @@ -10,30 +10,30 @@ }, "Kentico.Xperience.Admin": { "type": "Direct", - "requested": "[29.3.0, )", - "resolved": "29.3.0", - "contentHash": "134Q/IEEehiBdU8ygTWswWhVxcJeQkW2XNnfJATXijqtosMTlKOZWlJa6u0eroVwnHB2I5k2bAhHi2lHPLNO4A==", + "requested": "[29.5.0, )", + "resolved": "29.5.0", + "contentHash": "B1vIV5IO5CdFCQeB1G1tO6We54hwZO1HJFwDs79uniA7sioqx+LOYHNkhprbvRibhDN1eDXMgeIWgG2l0BRoPA==", "dependencies": { "Kentico.Aira.Client": "1.0.25", - "Kentico.Xperience.WebApp": "[29.3.0]", - "Microsoft.AspNetCore.SpaServices.Extensions": "6.0.32", - "Microsoft.Extensions.FileProviders.Embedded": "6.0.32" + "Kentico.Xperience.WebApp": "[29.5.0]", + "Microsoft.AspNetCore.SpaServices.Extensions": "6.0.33", + "Microsoft.Extensions.FileProviders.Embedded": "6.0.33" } }, "Kentico.Xperience.WebApp": { "type": "Direct", - "requested": "[29.3.0, )", - "resolved": "29.3.0", - "contentHash": "4iNprd5ZKN2ckIYDBEuOMTjR389Vhy7JlaKiyRn1jpai80DLgv5fy31bDM7tfMoGY47mV6vrzweldAjeoI3PFg==", + "requested": "[29.5.0, )", + "resolved": "29.5.0", + "contentHash": "3wGJZRGyyO4iDJTeeB8KSa+nZaFMPJhCxXhlxPHJ+0ukaJiJL09MhbJO5oDu1xCyZX59jv4te2IVbAmlvIKDDw==", "dependencies": { "CommandLineParser": "2.9.1", - "HotChocolate.AspNetCore": "13.9.7", - "HotChocolate.Data": "13.9.7", - "HtmlSanitizer": "8.0.865", - "Kentico.Xperience.Core": "[29.3.0]", + "HotChocolate.AspNetCore": "13.9.12", + "HotChocolate.Data": "13.9.12", + "HtmlSanitizer": "8.1.870", + "Kentico.Xperience.Core": "[29.5.0]", "Microsoft.Extensions.Caching.Memory": "6.0.1", - "Microsoft.Extensions.FileProviders.Embedded": "6.0.32", - "Microsoft.Extensions.Localization": "6.0.32" + "Microsoft.Extensions.FileProviders.Embedded": "6.0.33", + "Microsoft.Extensions.Localization": "6.0.33" } }, "SonarAnalyzer.CSharp": { @@ -76,12 +76,12 @@ }, "Azure.Identity": { "type": "Transitive", - "resolved": "1.11.3", - "contentHash": "4EsGMAr+oog5UqHs46qwA7S/lJiwpXjPBY3t9tQBmJ8nsgmT/LLnrc32eiTlfOdfKxUz4fxBD2YjSnVZacu97w==", + "resolved": "1.11.4", + "contentHash": "Sf4BoE6Q3jTgFkgBkx7qztYOFELBCo+wQgpYDwal/qJ1unBH73ywPztIJKXBXORRzAeNijsuxhk94h0TIMvfYg==", "dependencies": { "Azure.Core": "1.38.0", - "Microsoft.Identity.Client": "4.60.3", - "Microsoft.Identity.Client.Extensions.Msal": "4.60.3", + "Microsoft.Identity.Client": "4.61.3", + "Microsoft.Identity.Client.Extensions.Msal": "4.61.3", "System.Memory": "4.5.4", "System.Security.Cryptography.ProtectedData": "4.7.0", "System.Text.Json": "4.7.2", @@ -90,8 +90,8 @@ }, "BananaCakePop.Middleware": { "type": "Transitive", - "resolved": "16.0.1", - "contentHash": "i/LDG7Lw2ln1WM7GaMyNDWHExtN15/O/xgcX8lhBK6FZFPBnlq6FJW4GuS3vs0UpLB1TvX2tcOenMlXjcMZq0g==", + "resolved": "16.0.3", + "contentHash": "gwWk5ykS1uum2/++x3UnGhmjs+4itxce1lW5YnKdb8JeG4QxAMzSWVGh3B1ehiKJNAuvNtbfBwp2BAQvOsq02g==", "dependencies": { "Yarp.ReverseProxy": "2.1.0" } @@ -108,8 +108,8 @@ }, "GreenDonut": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "Hr+zOsca8uLgG3x0UogBxyUDu6DSHzbAsEFlEF/GlQGqDIzXUHNx80yMaaXZ11h0cyuANqBz2aw2pGneupQWbQ==", + "resolved": "13.9.12", + "contentHash": "w/nOY3tM8nVmjI1Gyhv5/JVk3VyD7itRhz1Ul0A8C4MHavsEyNFaMA7J+lwBFKwSRsW4R52F0BhUVbomIDA5uQ==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0", "System.Diagnostics.DiagnosticSource": "8.0.0", @@ -118,169 +118,169 @@ }, "HotChocolate": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "eMTrfh3A+CxMnb84Pz2zzQz3zuQXlihbM9f4u1JW8gDKlcARGh9qQr1qxheLQa4Co7RG3O7gl8DiNYyJ781DhQ==", + "resolved": "13.9.12", + "contentHash": "eRHrmy5rNq9rcPrIsWvoEw5BNMDntCkzGa044fpfwKayAvSvzhsMRNRtrY351jGlg5779n3fSsabwofPu3haYw==", "dependencies": { - "HotChocolate.Authorization": "13.9.7", - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Fetching": "13.9.7", - "HotChocolate.Types": "13.9.7", - "HotChocolate.Types.CursorPagination": "13.9.7", - "HotChocolate.Types.Mutations": "13.9.7", - "HotChocolate.Types.OffsetPagination": "13.9.7", - "HotChocolate.Validation": "13.9.7" + "HotChocolate.Authorization": "13.9.12", + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Fetching": "13.9.12", + "HotChocolate.Types": "13.9.12", + "HotChocolate.Types.CursorPagination": "13.9.12", + "HotChocolate.Types.Mutations": "13.9.12", + "HotChocolate.Types.OffsetPagination": "13.9.12", + "HotChocolate.Validation": "13.9.12" } }, "HotChocolate.Abstractions": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "zZGGxtSH7H2Ft7UYlUbwbPycThld0dnMbpwTjjF667HL4nTXe56egdUd4RurojZQwlY/ybvjFGjbzS6gMZ6xNw==", + "resolved": "13.9.12", + "contentHash": "zCDFmDV0lzDJQd7KvLthQ/d9x0TsVIKLXG3t/v0SgcQBYXnMvBeV094d+3cx44xE3T4lU4DpDeRTgD3rLLA+Dw==", "dependencies": { - "HotChocolate.Language": "13.9.7", + "HotChocolate.Language": "13.9.12", "System.Collections.Immutable": "8.0.0" } }, "HotChocolate.AspNetCore": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "UHNGeGmrVVMaQ+b3sJJWLwc84DZLgXWRYGkI4BBcGWqQllbuMM/2dJ/4Z6lGOUo267SLnH+JxPBn+eE7HlSDYQ==", + "resolved": "13.9.12", + "contentHash": "lv4vBVGFfTOofb/T7Fm+i0rJgyS5ZCBkCmryCcNAOw3YYpt8dL67Mms8+oIEPes04N9Wbimev+1pyxmBh5SpZg==", "dependencies": { - "BananaCakePop.Middleware": "16.0.1", - "HotChocolate": "13.9.7", - "HotChocolate.Subscriptions.InMemory": "13.9.7", - "HotChocolate.Transport.Sockets": "13.9.7", - "HotChocolate.Types.Scalars.Upload": "13.9.7", - "HotChocolate.Utilities.DependencyInjection": "13.9.7" + "BananaCakePop.Middleware": "16.0.3", + "HotChocolate": "13.9.12", + "HotChocolate.Subscriptions.InMemory": "13.9.12", + "HotChocolate.Transport.Sockets": "13.9.12", + "HotChocolate.Types.Scalars.Upload": "13.9.12", + "HotChocolate.Utilities.DependencyInjection": "13.9.12" } }, "HotChocolate.Authorization": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "CrAFhKQbK2L+nLe7TLjdf0iw6mLYSF/0niuDdOXB9YuIzuJ89Getrm2xWrSJwaJELWu1ksXpuOm1whPXD4/Cxw==", + "resolved": "13.9.12", + "contentHash": "LuTW5qZhD0bpZqQ1sTZJav+u6jc4JO7DltKhGM1nFWsOEPxMAx9OgyehQfuAoiGp0CPKHUI+M/LxDbXu1HFJog==", "dependencies": { - "HotChocolate.Execution": "13.9.7" + "HotChocolate.Execution": "13.9.12" } }, "HotChocolate.Data": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "LDBHbB8Ix2v3kFK6GHORa7ZD5NAV0tuWzBZ2HATdqT91KKFzOkJkCcb59JYlj1sILEJ6KzLueWsCgO+NmBZVMw==", + "resolved": "13.9.12", + "contentHash": "NFsErsZVyMZntDrA6TPHvCgLCaOQ9QhZvmQmnVqcozLQvfCLuS6cSGwdN5zy+DKYa+yTaMG5DK7uKcxVWT//Sg==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types.CursorPagination": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types.CursorPagination": "13.9.12" } }, "HotChocolate.Execution": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "y0C5ODS84VnR18ZmwqIPLvv6U/Fd2EA4inqg4gYs1nrMdKqHnCNP9i14+Ud8tREXZw/O+Jsvfw9+OylwW05Xww==", + "resolved": "13.9.12", + "contentHash": "UsuKiq7ynoqa9LvOjUHJAb4XTtnreFmjT3unhU6wz5cVeJU02eqbIQQyiOPDlv/SEk75XxJ1EjiuXZ/sKzcsag==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", - "HotChocolate.Execution.Abstractions": "13.9.7", - "HotChocolate.Fetching": "13.9.7", - "HotChocolate.Types": "13.9.7", - "HotChocolate.Utilities.DependencyInjection": "13.9.7", - "HotChocolate.Validation": "13.9.7", + "HotChocolate.Abstractions": "13.9.12", + "HotChocolate.Execution.Abstractions": "13.9.12", + "HotChocolate.Fetching": "13.9.12", + "HotChocolate.Types": "13.9.12", + "HotChocolate.Utilities.DependencyInjection": "13.9.12", + "HotChocolate.Validation": "13.9.12", "Microsoft.Extensions.DependencyInjection": "8.0.0", "System.Threading.Channels": "8.0.0" } }, "HotChocolate.Execution.Abstractions": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "JyVN6xsxWGJdeU1RwJWsHnhYakU8z7Q003r3c/M1FwokqAYspQPDzP4QuBvmz8nPyCxSdR42eNvqVGYKZj/h1Q==", + "resolved": "13.9.12", + "contentHash": "o65we+xKpSpn/z5uqeTT3SW8+JEu4tufMxRCXXe38K504+WNy1yuuf3DpmwKBP0I3zeXMaWOsLLFcqzYKMAMXA==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", + "HotChocolate.Abstractions": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Fetching": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "I+Ek6pdicNtZvXyvr2dCejPWn+q13gDmUzuK5L+iUP5IGfod/02Vj408hBHPIapweCYixreI0h5VDHwJm2fx2A==", + "resolved": "13.9.12", + "contentHash": "dl098a0FSo2z0k3WwHdrlCeAn4fwFGOC2oQnkWjNGmTZAIuUaOrT1zoxLgFGJ/FLSUdB58jgYAiW+tD4zVE1+Q==", "dependencies": { - "GreenDonut": "13.9.7", - "HotChocolate.Types": "13.9.7" + "GreenDonut": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Language": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "rWH01lP72YQmLP0tw1RtabanCXbRZ58x/frAQtPttyMViCx6N4aGEFAS8716ANwFM/ek6Kv7fYpxj3A0N1943A==", + "resolved": "13.9.12", + "contentHash": "rohvOiAmZ9Wo8cLjnm5UwtrYrHfLm0YNKAqD7ZqK8QBqv3DTqlZTs3WMaJdkG6BLdZR/l8dK/g1Bl3BGhqSBJA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7", - "HotChocolate.Language.Utf8": "13.9.7", - "HotChocolate.Language.Visitors": "13.9.7", - "HotChocolate.Language.Web": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12", + "HotChocolate.Language.Utf8": "13.9.12", + "HotChocolate.Language.Visitors": "13.9.12", + "HotChocolate.Language.Web": "13.9.12" } }, "HotChocolate.Language.SyntaxTree": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "iiTGVnjh+Q07L3GQ1gQrrbQWXh/sj6vJrvlwSLRbdIR2PZ53d9xXTeWjfiqgSfl+qZwWUyyCCCcWrJwYQokpyQ==", + "resolved": "13.9.12", + "contentHash": "rEmQ0OFW+LjTtYZNenFW9IKWTPJny8ACl1XnPULcGF22mgtuxItLwGJRfceRaAKqpAV2g7oLdFfLYmjqeJc3Tw==", "dependencies": { "Microsoft.Extensions.ObjectPool": "8.0.0" } }, "HotChocolate.Language.Utf8": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "rGSf31r6WjOi4LAaF4HFKYPV+/nT7aqsvOZ5CO/UCJEM0vDeuda++NYdkLVETyUHeWc30niwIKOVSlN9XJNVuQ==", + "resolved": "13.9.12", + "contentHash": "JfsKnk734a0PxEFo9XGHiAiXNKI5qV1X0mAMcqRetljaiLGKKwYM/1ndvz3JS/gvVP/oltBaRKNKk1pWO9desg==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12" } }, "HotChocolate.Language.Visitors": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "3MxWSJdbbVh1LJDef7l6oPCBFHomMxPJSot/OBS11xEeeQnChrrVDFwPWnlffmyDX4Dccugbs0eKwJEXaxCpzQ==", + "resolved": "13.9.12", + "contentHash": "I2T8u0gRY0TxmjLm+EYjIreihp7oJQLhRXOs8p3y7BZAmJNxfeuc6EkMn8VDca1EQeiroNmC9UTawtJNV7QNyQ==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12" } }, "HotChocolate.Language.Web": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "FJxfPz4ESaRZj8fWgV1lPCrdAysiEGktJgkYHH4w/MioVLULdjckYocnQnCaWx2km0r0fojNGbm2k1TlqYL/7A==", + "resolved": "13.9.12", + "contentHash": "/1HpNKOImaJcy6XLDPQaWqIE1H4Dmu4ST2Sl9lPE9EwDfYe6gBv3dS9mQ7jteyQQ7az05QhotXl2zDHD/Zx7lg==", "dependencies": { - "HotChocolate.Language.Utf8": "13.9.7" + "HotChocolate.Language.Utf8": "13.9.12" } }, "HotChocolate.Subscriptions": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "19WDXKE2bN5Pd35ebzS/zqOKSb/thnBRWCFKqLLxVvjrRaZcdj+Amc92fqTJi4XGis/6AoMf6JZovbQjWeHvoA==", + "resolved": "13.9.12", + "contentHash": "2VnYGlN9E7e5kGV76JU4Z/5sOag0wgUh694qwx4aPG1Lc5hPQDOL2BIk9jX7PmftHDmbxpNT3ZBvTSJXvGIoPQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", - "HotChocolate.Execution.Abstractions": "13.9.7" + "HotChocolate.Abstractions": "13.9.12", + "HotChocolate.Execution.Abstractions": "13.9.12" } }, "HotChocolate.Subscriptions.InMemory": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "vvv8QjqPSURHTjRNyM2AuOvJI9vRBCnB8mYe3lUrGo2coBYakGb+21MX0UjreqR9kaR+611p5OM4+snASSN4Fw==", + "resolved": "13.9.12", + "contentHash": "yQxVqqLUdMcl7yvU4qVhIrsRA1WIb1pkiKsXuD3FQxxucW9M4qqqklx91tY33AwIGnBGva7UCnofNxHg2FRbYg==", "dependencies": { - "HotChocolate.Execution.Abstractions": "13.9.7", - "HotChocolate.Subscriptions": "13.9.7", + "HotChocolate.Execution.Abstractions": "13.9.12", + "HotChocolate.Subscriptions": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "HotChocolate.Transport.Sockets": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "MiyrvorBadNSJYiXdH+O0aEX1MM6BTMGRYBICcMw/Gfv1oJurMa9qXAcqwVa6fwlRZPL+UqU6PlFLjIILhPLLA==", + "resolved": "13.9.12", + "contentHash": "7VWxYdWBKhNA1LxBIba7okMvQDcaGzHlYhkmBtPGKtfg7sKqOrF6TrwlJg0peLnN8luG7TfW8Fmz8cbD7teEdA==", "dependencies": { "System.IO.Pipelines": "8.0.0" } }, "HotChocolate.Types": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "zauZ28u0cjwDo02YlsF290HKvGfKIuXCljGoGRypl1vsjlX/MOcDTUiDY5/VEnVVz6QZWZyg66C/kO862QuXPQ==", + "resolved": "13.9.12", + "contentHash": "bTPnQZ0zolwj3E37ma2NPS5SxX6jj2OTQj9bszonB+92t0BQLOuX2wlgz0ux7XSmdC+ch7reCxJcrJEnPDs2QQ==", "dependencies": { - "HotChocolate.Abstractions": "13.9.7", - "HotChocolate.Types.Shared": "13.9.7", - "HotChocolate.Utilities": "13.9.7", + "HotChocolate.Abstractions": "13.9.12", + "HotChocolate.Types.Shared": "13.9.12", + "HotChocolate.Utilities": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.ObjectPool": "8.0.0", "System.ComponentModel.Annotations": "5.0.0", @@ -289,74 +289,74 @@ }, "HotChocolate.Types.CursorPagination": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "c1qshoAFs1h3L5hd8sSkdXTRdZPdTaolDLftmX5HX46TJvRW3diHWH7vDvfytlsxggMamHauwT4sTShYsvQGqw==", + "resolved": "13.9.12", + "contentHash": "gjYxrEgQlcYTIcLMRUbF4/++C5c87OP7JU+f+YP6+BPID+r9tfEjC0U5KuRgbSg83t5jtgK1RpMLrbdTOUUGJg==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.Mutations": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "89CAbrdiZziEajLzBItunpn+Fd09iqVYKHEPlRsWY55L2wNrzcoblW5Pe2p3c22w8ewmzSSEc8TupBYlez+2Ug==", + "resolved": "13.9.12", + "contentHash": "Uvm+FfZISLM5+/vYuq4Rphns1UrfhiCfoLmdUtjMIPq4jVVl4unLxfcy1GrXdHVoBO7bOL1+gHl96e9S422+6w==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.OffsetPagination": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "9kxPAU748x9/wmNPzLrHqYOMOkjbTP7DPMfMmOiUGjetI2Lm6RenUVZVODU8n92luk2Ng4Fc5GgJd7a28yqJ9w==", + "resolved": "13.9.12", + "contentHash": "ipcyM/APH4J5oUFSE+TMYlCZ0n3lVvvap4eOHSXiriHlNM9/deLy5CooAlMmBkFbMsiFR8XcD9Ebc7od/xwm+g==", "dependencies": { - "HotChocolate.Execution": "13.9.7", - "HotChocolate.Types": "13.9.7" + "HotChocolate.Execution": "13.9.12", + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.Scalars.Upload": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "afuOJKMvL8f64UZmvn2mt66db9rvdWkZUDt5vBsGErAxSJst8yCO56hiaYgjkAYg2Itp9yiqtJIc/UjI22x34A==", + "resolved": "13.9.12", + "contentHash": "3cAHgOwyl0O6qznO7SyjYsUa/RdnSK1JnKxPkQ4lk5Y3pDpl4iLLKuGtReoS+n74h5WLE88U3RPR4x6JcWMDlw==", "dependencies": { - "HotChocolate.Types": "13.9.7" + "HotChocolate.Types": "13.9.12" } }, "HotChocolate.Types.Shared": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "OXuZNxvpFX/clo3jYgogoAg8dp+NIphIhKffs6S6tuyJsl4/sqoo19cwNhEyF0K9cxKJYJj+oYw+hbl5XOHpRQ==", + "resolved": "13.9.12", + "contentHash": "zWDYduCtLFxGqMV3vJ5lMfUv4h9ebU8dLwtG1Irtv5W5zOze0S+U6C0853hzDwL8/o6Torb5knQj56n78WBnAA==", "dependencies": { - "HotChocolate.Language.SyntaxTree": "13.9.7" + "HotChocolate.Language.SyntaxTree": "13.9.12" } }, "HotChocolate.Utilities": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "Mh8K5kZZ0zRs5zXVlZDc3WqPU8I70lVSRTdhrM+4eWRZHceZ3OLgebQww2uGmAFcStzHD6b7XmQPuVxw0HRVCg==" + "resolved": "13.9.12", + "contentHash": "Bo7aY9qaZ+8rcpDZFz9V03oVu4IWHmVgxlCDbMLYx1VJWOOyJA7pQb25ILxYVzScadn+lMkLy+4iq55GetLMhw==" }, "HotChocolate.Utilities.DependencyInjection": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "XlTIkwAzVshTj4p+XR7YCrGl/bwM0izwoUmKCvc1mdoIBtORbWQNixrnLQsCldhlnqP1G+CzXO2g0wNv+g8wBA==", + "resolved": "13.9.12", + "contentHash": "iSTJZCLfpg7l+ExXFQbWsPPvkAPL+JLU3UA1E6avgTEzPvMpzo9I1c5mA2ItyoOrmTewKSWmnQBlv25oEFQF6g==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "8.0.0" } }, "HotChocolate.Validation": { "type": "Transitive", - "resolved": "13.9.7", - "contentHash": "vB7wUZl6kdo97v+oi0DTXXoif4kJ+6/CAJ8zQ8WakWiyJDxYe76v0NkGgViTrVFUDUlffVa7Yl6jGv49b2TPhQ==", + "resolved": "13.9.12", + "contentHash": "7DyCifF5kBD2hbrsFoQX+nVYMURaHDzAt8gFm3+Ubedqx91cV39iP/Mam1qgx3gh/shaKYSRQFw4Ao8TTpFj2Q==", "dependencies": { - "HotChocolate.Types": "13.9.7", + "HotChocolate.Types": "13.9.12", "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", "Microsoft.Extensions.Options": "8.0.0" } }, "HtmlSanitizer": { "type": "Transitive", - "resolved": "8.0.865", - "contentHash": "jzgltCjgTMbTLVfeHYU3ocxJrqRDVdkXYYGTOKVBnpQffaRB/4Hr0R6jKxBBH8UudQSgACp8j3lsD46weyeDJg==", + "resolved": "8.1.870", + "contentHash": "bQWYaKg8PrlgnhM9sPALl0UorpjWQkPTQiSTVyvm8imqF9lCLqBmtC0adUDi8xUYcdg6SJC+aHCw1MOjcg+Wnw==", "dependencies": { "AngleSharp": "[0.17.1]", "AngleSharp.Css": "[0.17.0]", @@ -377,19 +377,19 @@ }, "Kentico.Xperience.Core": { "type": "Transitive", - "resolved": "29.3.0", - "contentHash": "nomh8aBU0jOKP75U8G+z8Uf1pES7Jb18kDIih3CDrtr6FuiPWQRO72Zq097tosizhJzq9fW5MSGaL+uZXvX7Gg==", + "resolved": "29.5.0", + "contentHash": "RfcGWuhZSVDfmuUwl26svb9DZ/FWnhlNTr4q120uC7tuj7v/o3PH2iCtWCsDxkosGuN8f6c4FfO7cTnEPgmgWg==", "dependencies": { "AngleSharp": "0.17.1", "MailKit": "4.7.1.1", - "Microsoft.Data.SqlClient": "5.2.1", + "Microsoft.Data.SqlClient": "5.2.2", "Microsoft.Extensions.Caching.Memory": "6.0.1", "Microsoft.Extensions.Configuration": "6.0.1", "Microsoft.Extensions.Configuration.Binder": "6.0.0", "Microsoft.Extensions.DependencyInjection": "6.0.1", "Microsoft.Extensions.FileProviders.Physical": "6.0.0", "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", - "Microsoft.Extensions.Localization": "6.0.32", + "Microsoft.Extensions.Localization": "6.0.33", "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", "Mono.Cecil": "0.11.5", "Newtonsoft.Json": "13.0.3", @@ -407,8 +407,8 @@ }, "Microsoft.AspNetCore.SpaServices.Extensions": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "XQ7QY8Kpo31H/pVNmNuTfa/HSsGfpIA82QHHiq3J1SU3EBEDSEcdOSJRI7ODm4GmGZY/n/fWM9Blpcbf5rhfPg==", + "resolved": "6.0.33", + "contentHash": "YFWk3bkKKVLQ1Q8jnTbjuzIIpIVoua4iw152wBNIH50gBZEi0xubmf0vxfgjXKoRs0xIgOBnjunvaMa8Of1e3w==", "dependencies": { "Microsoft.Extensions.FileProviders.Physical": "6.0.0" } @@ -420,12 +420,12 @@ }, "Microsoft.Data.SqlClient": { "type": "Transitive", - "resolved": "5.2.1", - "contentHash": "ojg2XWmih4ubPPtrhRqqXk0SM6wC2ZSTkNNEAlYBhMo4IsRHjLazFc0abzcZCNfw1JyWcqY7vGutWTv8ZaFD9g==", + "resolved": "5.2.2", + "contentHash": "mtoeRMh7F/OA536c/Cnh8L4H0uLSKB5kSmoi54oN7Fp0hNJDy22IqyMhaMH4PkDCqI7xL//Fvg9ldtuPHG0h5g==", "dependencies": { - "Azure.Identity": "1.11.3", + "Azure.Identity": "1.11.4", "Microsoft.Data.SqlClient.SNI.runtime": "5.2.0", - "Microsoft.Identity.Client": "4.60.3", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.IdentityModel.JsonWebTokens": "6.35.0", "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.35.0", "Microsoft.SqlServer.Server": "1.0.0", @@ -506,8 +506,8 @@ }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "zedFFk86/lHx3xePklSc5Fo4N3kWqEMSLnYbnsGc1loca/f5T0g85XGSgizPvdqZyAGtDlh1jHKk94aF0FiSpg==", + "resolved": "6.0.33", + "contentHash": "A5HxR46JT3B81XtfYY1/vr4RvICcue7/7lkOjrTMhGX0RdDXqQHXL1NpeYB27S1CLlsjuJn2fF1LSeGRnYJbgg==", "dependencies": { "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" } @@ -550,19 +550,19 @@ }, "Microsoft.Extensions.Localization": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "oT9/Odho4th/5aY+HztJMfRhAVR+6rZ9FqYYjRrRFDU2e6C+pBCQLSujQIjdAjuHlsUu4pNmHXoaaiaE/82pow==", + "resolved": "6.0.33", + "contentHash": "o4I6H5vdDoILQvHJXvVdo33ts4zTb4FXcdc+Et1FYG0dao9GLrDQ3HXwgV8yU2M/JeEJJnsQvUwtaANJFDnjQQ==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Localization.Abstractions": "6.0.32", + "Microsoft.Extensions.Localization.Abstractions": "6.0.33", "Microsoft.Extensions.Logging.Abstractions": "6.0.4", "Microsoft.Extensions.Options": "6.0.0" } }, "Microsoft.Extensions.Localization.Abstractions": { "type": "Transitive", - "resolved": "6.0.32", - "contentHash": "ZG8q0/GHhkfXa4ciGp23ax6bJBjFBMYldw8vDg3JIzBp7vYMg5+hGSmNzFMtZThyAr9ktvEQAJS7TUpEEpDT0A==" + "resolved": "6.0.33", + "contentHash": "Hbq0a3DswFjen1K6hDljNENpy6bDbA/s2qsQ5M9kqa6fB3JVKWggAdqwx2GJG4+SGkZKOWkOZxQ1QVqavWaF5g==" }, "Microsoft.Extensions.Logging": { "type": "Transitive", @@ -614,8 +614,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.60.3", - "contentHash": "jve1RzmSpBhGlqMzPva6VfRbLMLZZc1Q8WRVZf8+iEruQkBgDTJPq8OeTehcY4GGYG1j6UB1xVofVE+n4BLDdw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -623,10 +623,10 @@ }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.60.3", - "contentHash": "X1Cz14/RbmlLshusE5u2zfG+5ul6ttgou19BZe5Mdw1qm6fgOI9/imBB2TIsx2UD7nkgd2+MCSzhbukZf7udeg==", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.60.3", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } },