From 220d330813cba9587ab93fd93e4f2596a14fb3eb Mon Sep 17 00:00:00 2001 From: Stephan van Rooij <1292510+svrooij@users.noreply.github.com> Date: Thu, 13 Jun 2024 16:07:32 +0200 Subject: [PATCH] =?UTF-8?q?Combine=20`Custom`=20and=20`Silient`=20paramete?= =?UTF-8?q?rs=20=F0=9F=95=B5=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR: #81 Fixed #77 ✅ --- .../Commands/DeployWtWin32App.cs | 8 +- .../Commands/NewWtWingetPackage.cs | 14 ++- .../Svrooij.WinTuner.CmdLets.csproj | 2 +- .../packages.lock.json | 62 +++++------ .../Models/WingetInstallerManifest.cs | 3 +- src/WingetIntune.Cli/WingetIntune.Cli.csproj | 2 +- src/WingetIntune.Cli/packages.lock.json | 62 +++++------ src/WingetIntune/Intune/IntuneManager.cs | 8 +- src/WingetIntune/Intune/MetadataManager.cs | 14 ++- .../Manifest/WingetInstallerExtensions.cs | 6 +- src/WingetIntune/Models/PackageInfo.cs | 14 +-- src/WingetIntune/Models/PackageOptions.cs | 2 +- src/WingetIntune/WingetIntune.csproj | 6 +- src/WingetIntune/packages.lock.json | 104 +++++++++--------- .../WingetIntune.Tests.csproj | 2 +- tests/WingetIntune.Tests/packages.lock.json | 60 +++++----- 16 files changed, 199 insertions(+), 170 deletions(-) diff --git a/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs b/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs index 6f84f3c..5c86d46 100644 --- a/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs +++ b/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs @@ -137,13 +137,17 @@ public class DeployWtWin32App : BaseIntuneCmdlet /// public override async Task ProcessRecordAsync(CancellationToken cancellationToken) { + logger?.LogDebug("Validating authentication parameters"); ValidateAuthenticationParameters(); + logger?.LogDebug("Authentication parameters validated"); if (App is null) { if (ParameterSetName == ParameterSetWinGet) { + logger?.LogDebug("Loading package details from RootPackageFolder {RootPackageFolder}, PackageId {PackageId}, Version {Version}", RootPackageFolder, PackageId, Version); PackageFolder = Path.Combine(RootPackageFolder!, PackageId!, Version!); + logger?.LogDebug("Loading package details from folder {packageFolder}", PackageFolder); } if (PackageFolder is not null) @@ -156,7 +160,9 @@ public override async Task ProcessRecordAsync(CancellationToken cancellationToke } else { - throw new ArgumentException("No package or package id specified"); + var ex = new ArgumentException("No App or PackageFolder was provided"); + logger?.LogError(ex, "No App or PackageFolder was provided"); + throw ex; } } diff --git a/src/Svrooij.WinTuner.CmdLets/Commands/NewWtWingetPackage.cs b/src/Svrooij.WinTuner.CmdLets/Commands/NewWtWingetPackage.cs index 17e0a6d..3dfe162 100644 --- a/src/Svrooij.WinTuner.CmdLets/Commands/NewWtWingetPackage.cs +++ b/src/Svrooij.WinTuner.CmdLets/Commands/NewWtWingetPackage.cs @@ -96,6 +96,17 @@ public class NewWtWingetPackage : DependencyCmdlet HelpMessage = "Package WinGet script, instead of the actual installer. Helpful for installers that don't really work with WinTuner.")] public bool? PackageScript { get; set; } + /// + /// Desired locale + /// + [Parameter( + Mandatory = false, + Position = 7, + ValueFromPipeline = true, + ValueFromPipelineByPropertyName = true, + HelpMessage = "The desired locale, if available (eg. 'en-US')")] + public string? Locale { get; set; } + [ServiceDependency] private ILogger logger; @@ -139,7 +150,8 @@ public override async Task ProcessRecordAsync(CancellationToken cancellationToke { Architecture = Architecture, InstallerContext = InstallerContext, - PackageScript = PackageScript ?? false + PackageScript = PackageScript ?? false, + Locale = Locale, }, cancellationToken: cancellationToken); diff --git a/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj b/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj index d06c41d..4ad79d1 100644 --- a/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj +++ b/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj @@ -13,7 +13,7 @@ - + All diff --git a/src/Svrooij.WinTuner.CmdLets/packages.lock.json b/src/Svrooij.WinTuner.CmdLets/packages.lock.json index e656970..97b0792 100644 --- a/src/Svrooij.WinTuner.CmdLets/packages.lock.json +++ b/src/Svrooij.WinTuner.CmdLets/packages.lock.json @@ -4,13 +4,13 @@ "net6.0": { "Azure.Identity": { "type": "Direct", - "requested": "[1.11.3, )", - "resolved": "1.11.3", - "contentHash": "4EsGMAr+oog5UqHs46qwA7S/lJiwpXjPBY3t9tQBmJ8nsgmT/LLnrc32eiTlfOdfKxUz4fxBD2YjSnVZacu97w==", + "requested": "[1.11.4, )", + "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", @@ -267,8 +267,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "lhOpbxaaVfAJ2pocXHxSpYbO5JhVznQLMX7s4CCP0Ay0Xozk8YyIwVScbnCPotEaG2EnQrH+44qymrCLte9juw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -276,19 +276,19 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "YTxDfFSgWxrtcqL8cee+LmyFRgPbQZ3wQP6z0POCr0ZgNDjKUsxYHk/iK1Iegz3t6BUnEdnMWSdQ0ZhcG7NZHQ==", + "resolved": "4.61.3", + "contentHash": "VX8YJYmjNZzWjLuwAwBWzTtfNRTqjj5DKPEci6eNa2tedBWSyOGvcsVMVUL/vy1oRSAjfpwzUIFlXCmhWnCAeA==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.Identity.Client.NativeInterop": "0.16.1" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "aTDwdyurRz89EeTW9PFtF3pke7WTgKyaqGjeuZ0x7aSsWbupb14dXM/POKYO0D7bfpx7utyJ2A2axmb3T2zfSg==", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -299,23 +299,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "xXFP4PUcI/l4n3hpw4TXbvONNTQ9WflyMxUx03qNJXSd7dVtxbFrL+B9+IevMwzvktZjTVfMdDlzQoTzdtN1bA==" + "resolved": "7.6.0", + "contentHash": "q4MZ8d0LlWKWtQfxNl9ZRZVOQ7IPEAR6CF4rFKITfuqEUOhqrbwHbqBanReI37155IKb8V/tPJqpPa3KXm9wQQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "gH3c88+YdT5QI6Rw2nnwjDUxzLgPPPbjMvUwvJrITyNAV3L5aswqxKIlmyQhaqltjGBGrMsCZCKwampWEMDN2w==", + "resolved": "7.6.0", + "contentHash": "lsleZbCuh3wZ3RfKd8WJ7E52nIeQQzJsDrgHN+B3Zhzd32UTQ1V3Vjn1N9PssnSulAoEMF0aAiue7ucX+TPoQA==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "FpMJ2i1e8Z+1rAchYQiawk0ChwYv6CNtCQDtMzwzkZtUWQYmkrkLXzl3qniOT8FFQck7bPKhQJY6nU7P7tojwQ==", + "resolved": "7.6.0", + "contentHash": "7AVJhNY4y/i96XGfaXovX8aAyYWz6HHtPEPHPpbg5JCchwVaoO08VmmpHe0L2gVagW/iHG0w4a4Xg9gxLXQ/8A==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.2" + "Microsoft.IdentityModel.Abstractions": "7.6.0" } }, "Microsoft.IdentityModel.Protocols": { @@ -338,10 +338,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "VFLS4Ajy5jadM/YV9x3FA4pHHwbEWTjkbN/RtShqVH8eI8j6UDg5522ogTx1iMLJKQdL9QbfxXx4d1+w1eCDgQ==", + "resolved": "7.6.0", + "contentHash": "xvEil42RUe4Si/TuLDvglNXpklgCWMSecPduczXPS2BAypjheUehPqKLwIy8vSdzB4K2zza3yLgmODBt+J6ZxQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.2" + "Microsoft.IdentityModel.Logging": "7.6.0" } }, "Microsoft.Kiota.Abstractions": { @@ -860,11 +860,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "taMjs3z9+tTYNhdD5g5XU89gMcqX7PSI6oji7yZXK8E4T1XjsZR5yDLdIqC1PVKYL5FAlrNWBNBaLshuESYHlw==", + "resolved": "7.6.0", + "contentHash": "LIuEbv/kFpuw00yI/mPu+T9NAVdH/u7Y5ChCGzYQQeCg9Pft2C7HFWuO/P+Z7c2RcySNjVk1FmuAheKjYIbOkw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.2", - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.JsonWebTokens": "7.6.0", + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "System.IO": { @@ -1258,11 +1258,11 @@ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Options": "[8.0.2, )", "Microsoft.Graph.Beta": "[5.59.0-preview, )", - "Microsoft.Identity.Client.Broker": "[4.61.1, )", - "Microsoft.Identity.Client.Extensions.Msal": "[4.61.1, )", + "Microsoft.Identity.Client.Broker": "[4.61.3, )", + "Microsoft.Identity.Client.Extensions.Msal": "[4.61.3, )", "Riok.Mapperly": "[3.5.1, )", "SvRooij.ContentPrep": "[0.1.3-alpha0001, )", - "System.IdentityModel.Tokens.Jwt": "[7.5.2, )", + "System.IdentityModel.Tokens.Jwt": "[7.6.0, )", "Winget.CommunityRepository": "[1.0.0, )" } } diff --git a/src/Winget.CommunityRepository/Models/WingetInstallerManifest.cs b/src/Winget.CommunityRepository/Models/WingetInstallerManifest.cs index 15e8c0b..7e98b8a 100644 --- a/src/Winget.CommunityRepository/Models/WingetInstallerManifest.cs +++ b/src/Winget.CommunityRepository/Models/WingetInstallerManifest.cs @@ -64,7 +64,8 @@ public override string ToString() public string? GetPreferred() { - return Custom ?? Silent ?? SilentWithProgress; // ?? Interactive; + var result = string.Join(' ', Custom, (Silent ?? SilentWithProgress)).Trim(); + return string.IsNullOrEmpty(result) ? null : result; // ?? Interactive } } diff --git a/src/WingetIntune.Cli/WingetIntune.Cli.csproj b/src/WingetIntune.Cli/WingetIntune.Cli.csproj index 03e659a..4ce2053 100644 --- a/src/WingetIntune.Cli/WingetIntune.Cli.csproj +++ b/src/WingetIntune.Cli/WingetIntune.Cli.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/WingetIntune.Cli/packages.lock.json b/src/WingetIntune.Cli/packages.lock.json index 877b70a..d3f7233 100644 --- a/src/WingetIntune.Cli/packages.lock.json +++ b/src/WingetIntune.Cli/packages.lock.json @@ -4,13 +4,13 @@ "net8.0": { "Azure.Identity": { "type": "Direct", - "requested": "[1.11.3, )", - "resolved": "1.11.3", - "contentHash": "4EsGMAr+oog5UqHs46qwA7S/lJiwpXjPBY3t9tQBmJ8nsgmT/LLnrc32eiTlfOdfKxUz4fxBD2YjSnVZacu97w==", + "requested": "[1.11.4, )", + "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", @@ -472,8 +472,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "lhOpbxaaVfAJ2pocXHxSpYbO5JhVznQLMX7s4CCP0Ay0Xozk8YyIwVScbnCPotEaG2EnQrH+44qymrCLte9juw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -481,19 +481,19 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "YTxDfFSgWxrtcqL8cee+LmyFRgPbQZ3wQP6z0POCr0ZgNDjKUsxYHk/iK1Iegz3t6BUnEdnMWSdQ0ZhcG7NZHQ==", + "resolved": "4.61.3", + "contentHash": "VX8YJYmjNZzWjLuwAwBWzTtfNRTqjj5DKPEci6eNa2tedBWSyOGvcsVMVUL/vy1oRSAjfpwzUIFlXCmhWnCAeA==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.Identity.Client.NativeInterop": "0.16.1" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "aTDwdyurRz89EeTW9PFtF3pke7WTgKyaqGjeuZ0x7aSsWbupb14dXM/POKYO0D7bfpx7utyJ2A2axmb3T2zfSg==", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -504,23 +504,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "xXFP4PUcI/l4n3hpw4TXbvONNTQ9WflyMxUx03qNJXSd7dVtxbFrL+B9+IevMwzvktZjTVfMdDlzQoTzdtN1bA==" + "resolved": "7.6.0", + "contentHash": "q4MZ8d0LlWKWtQfxNl9ZRZVOQ7IPEAR6CF4rFKITfuqEUOhqrbwHbqBanReI37155IKb8V/tPJqpPa3KXm9wQQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "gH3c88+YdT5QI6Rw2nnwjDUxzLgPPPbjMvUwvJrITyNAV3L5aswqxKIlmyQhaqltjGBGrMsCZCKwampWEMDN2w==", + "resolved": "7.6.0", + "contentHash": "lsleZbCuh3wZ3RfKd8WJ7E52nIeQQzJsDrgHN+B3Zhzd32UTQ1V3Vjn1N9PssnSulAoEMF0aAiue7ucX+TPoQA==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "FpMJ2i1e8Z+1rAchYQiawk0ChwYv6CNtCQDtMzwzkZtUWQYmkrkLXzl3qniOT8FFQck7bPKhQJY6nU7P7tojwQ==", + "resolved": "7.6.0", + "contentHash": "7AVJhNY4y/i96XGfaXovX8aAyYWz6HHtPEPHPpbg5JCchwVaoO08VmmpHe0L2gVagW/iHG0w4a4Xg9gxLXQ/8A==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.2" + "Microsoft.IdentityModel.Abstractions": "7.6.0" } }, "Microsoft.IdentityModel.Protocols": { @@ -543,10 +543,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "VFLS4Ajy5jadM/YV9x3FA4pHHwbEWTjkbN/RtShqVH8eI8j6UDg5522ogTx1iMLJKQdL9QbfxXx4d1+w1eCDgQ==", + "resolved": "7.6.0", + "contentHash": "xvEil42RUe4Si/TuLDvglNXpklgCWMSecPduczXPS2BAypjheUehPqKLwIy8vSdzB4K2zza3yLgmODBt+J6ZxQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.2" + "Microsoft.IdentityModel.Logging": "7.6.0" } }, "Microsoft.Kiota.Abstractions": { @@ -728,11 +728,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "taMjs3z9+tTYNhdD5g5XU89gMcqX7PSI6oji7yZXK8E4T1XjsZR5yDLdIqC1PVKYL5FAlrNWBNBaLshuESYHlw==", + "resolved": "7.6.0", + "contentHash": "LIuEbv/kFpuw00yI/mPu+T9NAVdH/u7Y5ChCGzYQQeCg9Pft2C7HFWuO/P+Z7c2RcySNjVk1FmuAheKjYIbOkw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.2", - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.JsonWebTokens": "7.6.0", + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "System.IO": { @@ -919,11 +919,11 @@ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Options": "[8.0.2, )", "Microsoft.Graph.Beta": "[5.59.0-preview, )", - "Microsoft.Identity.Client.Broker": "[4.61.1, )", - "Microsoft.Identity.Client.Extensions.Msal": "[4.61.1, )", + "Microsoft.Identity.Client.Broker": "[4.61.3, )", + "Microsoft.Identity.Client.Extensions.Msal": "[4.61.3, )", "Riok.Mapperly": "[3.5.1, )", "SvRooij.ContentPrep": "[0.1.3-alpha0001, )", - "System.IdentityModel.Tokens.Jwt": "[7.5.2, )", + "System.IdentityModel.Tokens.Jwt": "[7.6.0, )", "Winget.CommunityRepository": "[1.0.0, )" } } diff --git a/src/WingetIntune/Intune/IntuneManager.cs b/src/WingetIntune/Intune/IntuneManager.cs index 134183e..97b6799 100644 --- a/src/WingetIntune/Intune/IntuneManager.cs +++ b/src/WingetIntune/Intune/IntuneManager.cs @@ -499,10 +499,10 @@ private void LoadMsiDetails(string installerPath, ref PackageInfo packageInfo) private void ComputeInstallerDetails(ref PackageInfo package, PackageOptions packageOptions) { - var installer = package.GetBestFit(packageOptions.Architecture, packageOptions.InstallerContext) - ?? package.GetBestFit(Architecture.Neutral, InstallerContext.Unknown) - ?? package.GetBestFit(Architecture.Neutral, packageOptions.InstallerContext) - ?? package.GetBestFit(packageOptions.Architecture, InstallerContext.Unknown); + var installer = package.GetBestFit(packageOptions.Architecture, packageOptions.InstallerContext, packageOptions.Locale) + ?? package.GetBestFit(Architecture.Neutral, InstallerContext.Unknown, packageOptions.Locale) + ?? package.GetBestFit(Architecture.Neutral, packageOptions.InstallerContext, packageOptions.Locale) + ?? package.GetBestFit(packageOptions.Architecture, InstallerContext.Unknown, packageOptions.Locale); if (installer == null && packageOptions.Architecture == Architecture.X64) { installer = package.GetBestFit(Architecture.X86, packageOptions.InstallerContext) diff --git a/src/WingetIntune/Intune/MetadataManager.cs b/src/WingetIntune/Intune/MetadataManager.cs index 701d051..c4ba390 100644 --- a/src/WingetIntune/Intune/MetadataManager.cs +++ b/src/WingetIntune/Intune/MetadataManager.cs @@ -24,19 +24,29 @@ public MetadataManager(ILogger logger, IFileManager fileManager public async Task LoadPackageInfoFromFolderAsync(string folder, CancellationToken cancellationToken) { + logger.LogDebug("Loading package info from {folder}", folder); #if NET8_0_OR_GREATER ArgumentException.ThrowIfNullOrEmpty(folder); #endif var filename = Path.Combine(folder, "app.json"); if (!fileManager.FileExists(filename)) { - throw new FileNotFoundException($"Could not find app.json in folder {folder}", filename); + var ex = new FileNotFoundException($"Could not find app.json in folder {folder}", filename); + logger.LogWarning(ex, "Could not find app.json in folder {folder}", folder); + throw ex; } logger.LogDebug("Loading package info from {filename}", filename); var data = await fileManager.ReadAllBytesAsync(filename, cancellationToken); - return JsonSerializer.Deserialize(data, MyJsonContext.Default.PackageInfo)!; + var result = JsonSerializer.Deserialize(data, MyJsonContext.Default.PackageInfo); + if (result == null) + { + var ex = new InvalidOperationException($"Could not deserialize app.json"); + logger.LogWarning(ex, "Could not deserialize app.json in folder {folder}", folder); + throw ex; + } + return result; } public Task LoadPackageInfoFromFolderAsync(string rootFolder, string packageId, string version, CancellationToken cancellationToken) => diff --git a/src/WingetIntune/Models/Manifest/WingetInstallerExtensions.cs b/src/WingetIntune/Models/Manifest/WingetInstallerExtensions.cs index 47db880..b0cb11d 100644 --- a/src/WingetIntune/Models/Manifest/WingetInstallerExtensions.cs +++ b/src/WingetIntune/Models/Manifest/WingetInstallerExtensions.cs @@ -2,10 +2,10 @@ internal static class WingetInstallerExtensions { - public static Winget.CommunityRepository.Models.WingetInstaller? SingleOrDefault(this IList? installers, InstallerType installerType, Architecture architecture, InstallerContext installerContext) + public static Winget.CommunityRepository.Models.WingetInstaller? SingleOrDefault(this IList? installers, InstallerType installerType, Architecture architecture, InstallerContext installerContext, string? locale = null) { if (installers is null || !installers.Any()) { return null; } - return installers.singleOrDefault(installerType, architecture, installerContext, "en-US") + return installers.singleOrDefault(installerType, architecture, installerContext, locale ?? "en-US") ?? installers.singleOrDefault(installerType, architecture, installerContext); } @@ -13,7 +13,7 @@ internal static class WingetInstallerExtensions { return installers.FirstOrDefault(i => (i.ParseInstallerType() == installerType || installerType == InstallerType.Unknown) - && (i.InstallerArchitecture() == architecture || architecture == Architecture.Unknown) + && (i.InstallerArchitecture() == architecture || (architecture == Architecture.Unknown && i.InstallerArchitecture() == Architecture.X64)) && (i.ParseInstallerContext() == installerContext || installerContext == InstallerContext.Unknown) && (string.IsNullOrWhiteSpace(locale) || i.InstallerLocale == locale)); } diff --git a/src/WingetIntune/Models/PackageInfo.cs b/src/WingetIntune/Models/PackageInfo.cs index a5a0ff8..05f1a14 100644 --- a/src/WingetIntune/Models/PackageInfo.cs +++ b/src/WingetIntune/Models/PackageInfo.cs @@ -31,15 +31,15 @@ public class PackageInfo public string? DetectionScript { get; set; } - internal WingetInstaller? GetBestFit(Architecture architecture, InstallerContext context) + internal WingetInstaller? GetBestFit(Architecture architecture, InstallerContext context, string? locale = null) { if (Installers is null) { return null; } - return Installers.SingleOrDefault(Models.InstallerType.Msi, architecture, context) - ?? Installers.SingleOrDefault(Models.InstallerType.Msi, architecture, Models.InstallerContext.Unknown) - ?? Installers.SingleOrDefault(Models.InstallerType.Wix, architecture, context) - ?? Installers.SingleOrDefault(Models.InstallerType.Wix, architecture, Models.InstallerContext.Unknown) - ?? Installers.SingleOrDefault(Models.InstallerType.Unknown, architecture, context) - ?? Installers.SingleOrDefault(Models.InstallerType.Unknown, architecture, Models.InstallerContext.Unknown) + return Installers.SingleOrDefault(Models.InstallerType.Msi, architecture, context, locale) + ?? Installers.SingleOrDefault(Models.InstallerType.Msi, architecture, Models.InstallerContext.Unknown, locale) + ?? Installers.SingleOrDefault(Models.InstallerType.Wix, architecture, context, locale) + ?? Installers.SingleOrDefault(Models.InstallerType.Wix, architecture, Models.InstallerContext.Unknown, locale) + ?? Installers.SingleOrDefault(Models.InstallerType.Unknown, architecture, context, locale) + ?? Installers.SingleOrDefault(Models.InstallerType.Unknown, architecture, Models.InstallerContext.Unknown, locale) ; } diff --git a/src/WingetIntune/Models/PackageOptions.cs b/src/WingetIntune/Models/PackageOptions.cs index 78d2125..58e835b 100644 --- a/src/WingetIntune/Models/PackageOptions.cs +++ b/src/WingetIntune/Models/PackageOptions.cs @@ -5,6 +5,6 @@ public class PackageOptions public InstallerContext InstallerContext { get; init; } public Architecture Architecture { get; init; } public bool PackageScript { get; init; } - + public string? Locale { get; init; } public static PackageOptions Create() => new PackageOptions { Architecture = Architecture.X64, InstallerContext = InstallerContext.System, PackageScript = false }; } diff --git a/src/WingetIntune/WingetIntune.csproj b/src/WingetIntune/WingetIntune.csproj index bd13136..67bb272 100644 --- a/src/WingetIntune/WingetIntune.csproj +++ b/src/WingetIntune/WingetIntune.csproj @@ -30,11 +30,11 @@ - - + + - + diff --git a/src/WingetIntune/packages.lock.json b/src/WingetIntune/packages.lock.json index 69a2482..ec7319f 100644 --- a/src/WingetIntune/packages.lock.json +++ b/src/WingetIntune/packages.lock.json @@ -57,21 +57,21 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Direct", - "requested": "[4.61.1, )", - "resolved": "4.61.1", - "contentHash": "YTxDfFSgWxrtcqL8cee+LmyFRgPbQZ3wQP6z0POCr0ZgNDjKUsxYHk/iK1Iegz3t6BUnEdnMWSdQ0ZhcG7NZHQ==", + "requested": "[4.61.3, )", + "resolved": "4.61.3", + "contentHash": "VX8YJYmjNZzWjLuwAwBWzTtfNRTqjj5DKPEci6eNa2tedBWSyOGvcsVMVUL/vy1oRSAjfpwzUIFlXCmhWnCAeA==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.Identity.Client.NativeInterop": "0.16.1" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Direct", - "requested": "[4.61.1, )", - "resolved": "4.61.1", - "contentHash": "aTDwdyurRz89EeTW9PFtF3pke7WTgKyaqGjeuZ0x7aSsWbupb14dXM/POKYO0D7bfpx7utyJ2A2axmb3T2zfSg==", + "requested": "[4.61.3, )", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -94,12 +94,12 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Direct", - "requested": "[7.5.2, )", - "resolved": "7.5.2", - "contentHash": "taMjs3z9+tTYNhdD5g5XU89gMcqX7PSI6oji7yZXK8E4T1XjsZR5yDLdIqC1PVKYL5FAlrNWBNBaLshuESYHlw==", + "requested": "[7.6.0, )", + "resolved": "7.6.0", + "contentHash": "LIuEbv/kFpuw00yI/mPu+T9NAVdH/u7Y5ChCGzYQQeCg9Pft2C7HFWuO/P+Z7c2RcySNjVk1FmuAheKjYIbOkw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.2", - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.JsonWebTokens": "7.6.0", + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Azure.Core": { @@ -174,8 +174,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "lhOpbxaaVfAJ2pocXHxSpYbO5JhVznQLMX7s4CCP0Ay0Xozk8YyIwVScbnCPotEaG2EnQrH+44qymrCLte9juw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -188,23 +188,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "xXFP4PUcI/l4n3hpw4TXbvONNTQ9WflyMxUx03qNJXSd7dVtxbFrL+B9+IevMwzvktZjTVfMdDlzQoTzdtN1bA==" + "resolved": "7.6.0", + "contentHash": "q4MZ8d0LlWKWtQfxNl9ZRZVOQ7IPEAR6CF4rFKITfuqEUOhqrbwHbqBanReI37155IKb8V/tPJqpPa3KXm9wQQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "gH3c88+YdT5QI6Rw2nnwjDUxzLgPPPbjMvUwvJrITyNAV3L5aswqxKIlmyQhaqltjGBGrMsCZCKwampWEMDN2w==", + "resolved": "7.6.0", + "contentHash": "lsleZbCuh3wZ3RfKd8WJ7E52nIeQQzJsDrgHN+B3Zhzd32UTQ1V3Vjn1N9PssnSulAoEMF0aAiue7ucX+TPoQA==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "FpMJ2i1e8Z+1rAchYQiawk0ChwYv6CNtCQDtMzwzkZtUWQYmkrkLXzl3qniOT8FFQck7bPKhQJY6nU7P7tojwQ==", + "resolved": "7.6.0", + "contentHash": "7AVJhNY4y/i96XGfaXovX8aAyYWz6HHtPEPHPpbg5JCchwVaoO08VmmpHe0L2gVagW/iHG0w4a4Xg9gxLXQ/8A==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.2" + "Microsoft.IdentityModel.Abstractions": "7.6.0" } }, "Microsoft.IdentityModel.Protocols": { @@ -227,10 +227,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "VFLS4Ajy5jadM/YV9x3FA4pHHwbEWTjkbN/RtShqVH8eI8j6UDg5522ogTx1iMLJKQdL9QbfxXx4d1+w1eCDgQ==", + "resolved": "7.6.0", + "contentHash": "xvEil42RUe4Si/TuLDvglNXpklgCWMSecPduczXPS2BAypjheUehPqKLwIy8vSdzB4K2zza3yLgmODBt+J6ZxQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.2" + "Microsoft.IdentityModel.Logging": "7.6.0" } }, "Microsoft.Kiota.Abstractions": { @@ -569,21 +569,21 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Direct", - "requested": "[4.61.1, )", - "resolved": "4.61.1", - "contentHash": "YTxDfFSgWxrtcqL8cee+LmyFRgPbQZ3wQP6z0POCr0ZgNDjKUsxYHk/iK1Iegz3t6BUnEdnMWSdQ0ZhcG7NZHQ==", + "requested": "[4.61.3, )", + "resolved": "4.61.3", + "contentHash": "VX8YJYmjNZzWjLuwAwBWzTtfNRTqjj5DKPEci6eNa2tedBWSyOGvcsVMVUL/vy1oRSAjfpwzUIFlXCmhWnCAeA==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.Identity.Client.NativeInterop": "0.16.1" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Direct", - "requested": "[4.61.1, )", - "resolved": "4.61.1", - "contentHash": "aTDwdyurRz89EeTW9PFtF3pke7WTgKyaqGjeuZ0x7aSsWbupb14dXM/POKYO0D7bfpx7utyJ2A2axmb3T2zfSg==", + "requested": "[4.61.3, )", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -606,12 +606,12 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Direct", - "requested": "[7.5.2, )", - "resolved": "7.5.2", - "contentHash": "taMjs3z9+tTYNhdD5g5XU89gMcqX7PSI6oji7yZXK8E4T1XjsZR5yDLdIqC1PVKYL5FAlrNWBNBaLshuESYHlw==", + "requested": "[7.6.0, )", + "resolved": "7.6.0", + "contentHash": "LIuEbv/kFpuw00yI/mPu+T9NAVdH/u7Y5ChCGzYQQeCg9Pft2C7HFWuO/P+Z7c2RcySNjVk1FmuAheKjYIbOkw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.2", - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.JsonWebTokens": "7.6.0", + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Azure.Core": { @@ -732,8 +732,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "lhOpbxaaVfAJ2pocXHxSpYbO5JhVznQLMX7s4CCP0Ay0Xozk8YyIwVScbnCPotEaG2EnQrH+44qymrCLte9juw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -746,23 +746,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "xXFP4PUcI/l4n3hpw4TXbvONNTQ9WflyMxUx03qNJXSd7dVtxbFrL+B9+IevMwzvktZjTVfMdDlzQoTzdtN1bA==" + "resolved": "7.6.0", + "contentHash": "q4MZ8d0LlWKWtQfxNl9ZRZVOQ7IPEAR6CF4rFKITfuqEUOhqrbwHbqBanReI37155IKb8V/tPJqpPa3KXm9wQQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "gH3c88+YdT5QI6Rw2nnwjDUxzLgPPPbjMvUwvJrITyNAV3L5aswqxKIlmyQhaqltjGBGrMsCZCKwampWEMDN2w==", + "resolved": "7.6.0", + "contentHash": "lsleZbCuh3wZ3RfKd8WJ7E52nIeQQzJsDrgHN+B3Zhzd32UTQ1V3Vjn1N9PssnSulAoEMF0aAiue7ucX+TPoQA==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "FpMJ2i1e8Z+1rAchYQiawk0ChwYv6CNtCQDtMzwzkZtUWQYmkrkLXzl3qniOT8FFQck7bPKhQJY6nU7P7tojwQ==", + "resolved": "7.6.0", + "contentHash": "7AVJhNY4y/i96XGfaXovX8aAyYWz6HHtPEPHPpbg5JCchwVaoO08VmmpHe0L2gVagW/iHG0w4a4Xg9gxLXQ/8A==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.2" + "Microsoft.IdentityModel.Abstractions": "7.6.0" } }, "Microsoft.IdentityModel.Protocols": { @@ -785,10 +785,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "VFLS4Ajy5jadM/YV9x3FA4pHHwbEWTjkbN/RtShqVH8eI8j6UDg5522ogTx1iMLJKQdL9QbfxXx4d1+w1eCDgQ==", + "resolved": "7.6.0", + "contentHash": "xvEil42RUe4Si/TuLDvglNXpklgCWMSecPduczXPS2BAypjheUehPqKLwIy8vSdzB4K2zza3yLgmODBt+J6ZxQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.2" + "Microsoft.IdentityModel.Logging": "7.6.0" } }, "Microsoft.Kiota.Abstractions": { diff --git a/tests/WingetIntune.Tests/WingetIntune.Tests.csproj b/tests/WingetIntune.Tests/WingetIntune.Tests.csproj index 3a84b08..82fc433 100644 --- a/tests/WingetIntune.Tests/WingetIntune.Tests.csproj +++ b/tests/WingetIntune.Tests/WingetIntune.Tests.csproj @@ -38,7 +38,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/tests/WingetIntune.Tests/packages.lock.json b/tests/WingetIntune.Tests/packages.lock.json index 1ca2e61..ed50961 100644 --- a/tests/WingetIntune.Tests/packages.lock.json +++ b/tests/WingetIntune.Tests/packages.lock.json @@ -16,11 +16,11 @@ }, "GitHubActionsTestLogger": { "type": "Direct", - "requested": "[2.3.3, )", - "resolved": "2.3.3", - "contentHash": "9mBfuOIUmZ3dnL/hYaENh/eGKC6r3ufwo2rEkWJVDDj2UUGuu59GsMezYkV3bj/wZ8rcgzDIr1fj/wXh1yklQA==", + "requested": "[2.4.1, )", + "resolved": "2.4.1", + "contentHash": "SH1ar/kg36CggzMqLUDRoUqR8SSjK/JiQ2JS8MYg8u0RCLDkkDEbPGIN91omOPx9f2GuDqsxxofSdgsQje3Xuw==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.7.1" + "Microsoft.TestPlatform.ObjectModel": "17.10.0" } }, "Microsoft.NET.Test.Sdk": { @@ -238,8 +238,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "lhOpbxaaVfAJ2pocXHxSpYbO5JhVznQLMX7s4CCP0Ay0Xozk8YyIwVScbnCPotEaG2EnQrH+44qymrCLte9juw==", + "resolved": "4.61.3", + "contentHash": "naJo/Qm35Caaoxp5utcw+R8eU8ZtLz2ALh8S+gkekOYQ1oazfCQMWVT4NJ/FnHzdIJlm8dMz0oMpMGCabx5odA==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -247,19 +247,19 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "YTxDfFSgWxrtcqL8cee+LmyFRgPbQZ3wQP6z0POCr0ZgNDjKUsxYHk/iK1Iegz3t6BUnEdnMWSdQ0ZhcG7NZHQ==", + "resolved": "4.61.3", + "contentHash": "VX8YJYmjNZzWjLuwAwBWzTtfNRTqjj5DKPEci6eNa2tedBWSyOGvcsVMVUL/vy1oRSAjfpwzUIFlXCmhWnCAeA==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "Microsoft.Identity.Client.NativeInterop": "0.16.1" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.61.1", - "contentHash": "aTDwdyurRz89EeTW9PFtF3pke7WTgKyaqGjeuZ0x7aSsWbupb14dXM/POKYO0D7bfpx7utyJ2A2axmb3T2zfSg==", + "resolved": "4.61.3", + "contentHash": "PWnJcznrSGr25MN8ajlc2XIDW4zCFu0U6FkpaNLEWLgd1NgFCp5uDY3mqLDgM8zCN8hqj8yo5wHYfLB2HjcdGw==", "dependencies": { - "Microsoft.Identity.Client": "4.61.1", + "Microsoft.Identity.Client": "4.61.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -270,23 +270,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "xXFP4PUcI/l4n3hpw4TXbvONNTQ9WflyMxUx03qNJXSd7dVtxbFrL+B9+IevMwzvktZjTVfMdDlzQoTzdtN1bA==" + "resolved": "7.6.0", + "contentHash": "q4MZ8d0LlWKWtQfxNl9ZRZVOQ7IPEAR6CF4rFKITfuqEUOhqrbwHbqBanReI37155IKb8V/tPJqpPa3KXm9wQQ==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "gH3c88+YdT5QI6Rw2nnwjDUxzLgPPPbjMvUwvJrITyNAV3L5aswqxKIlmyQhaqltjGBGrMsCZCKwampWEMDN2w==", + "resolved": "7.6.0", + "contentHash": "lsleZbCuh3wZ3RfKd8WJ7E52nIeQQzJsDrgHN+B3Zhzd32UTQ1V3Vjn1N9PssnSulAoEMF0aAiue7ucX+TPoQA==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "FpMJ2i1e8Z+1rAchYQiawk0ChwYv6CNtCQDtMzwzkZtUWQYmkrkLXzl3qniOT8FFQck7bPKhQJY6nU7P7tojwQ==", + "resolved": "7.6.0", + "contentHash": "7AVJhNY4y/i96XGfaXovX8aAyYWz6HHtPEPHPpbg5JCchwVaoO08VmmpHe0L2gVagW/iHG0w4a4Xg9gxLXQ/8A==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.2" + "Microsoft.IdentityModel.Abstractions": "7.6.0" } }, "Microsoft.IdentityModel.Protocols": { @@ -309,10 +309,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "VFLS4Ajy5jadM/YV9x3FA4pHHwbEWTjkbN/RtShqVH8eI8j6UDg5522ogTx1iMLJKQdL9QbfxXx4d1+w1eCDgQ==", + "resolved": "7.6.0", + "contentHash": "xvEil42RUe4Si/TuLDvglNXpklgCWMSecPduczXPS2BAypjheUehPqKLwIy8vSdzB4K2zza3yLgmODBt+J6ZxQ==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.2" + "Microsoft.IdentityModel.Logging": "7.6.0" } }, "Microsoft.Kiota.Abstractions": { @@ -469,11 +469,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "7.5.2", - "contentHash": "taMjs3z9+tTYNhdD5g5XU89gMcqX7PSI6oji7yZXK8E4T1XjsZR5yDLdIqC1PVKYL5FAlrNWBNBaLshuESYHlw==", + "resolved": "7.6.0", + "contentHash": "LIuEbv/kFpuw00yI/mPu+T9NAVdH/u7Y5ChCGzYQQeCg9Pft2C7HFWuO/P+Z7c2RcySNjVk1FmuAheKjYIbOkw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.2", - "Microsoft.IdentityModel.Tokens": "7.5.2" + "Microsoft.IdentityModel.JsonWebTokens": "7.6.0", + "Microsoft.IdentityModel.Tokens": "7.6.0" } }, "System.IO": { @@ -695,11 +695,11 @@ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Options": "[8.0.2, )", "Microsoft.Graph.Beta": "[5.59.0-preview, )", - "Microsoft.Identity.Client.Broker": "[4.61.1, )", - "Microsoft.Identity.Client.Extensions.Msal": "[4.61.1, )", + "Microsoft.Identity.Client.Broker": "[4.61.3, )", + "Microsoft.Identity.Client.Extensions.Msal": "[4.61.3, )", "Riok.Mapperly": "[3.5.1, )", "SvRooij.ContentPrep": "[0.1.3-alpha0001, )", - "System.IdentityModel.Tokens.Jwt": "[7.5.2, )", + "System.IdentityModel.Tokens.Jwt": "[7.6.0, )", "Winget.CommunityRepository": "[1.0.0, )" } }