From 75fbee2c2faf1e2b70d9622cf616e8f38aa3ecfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Fri, 20 Sep 2024 20:43:27 +0200 Subject: [PATCH 01/22] chore: Add assertion to infrastructure internal classes test (#1164) ## Description Adding an assertion on FailingTypes array, if there are failures, the class names will be printed in the fail output ## Summary by CodeRabbit - **Documentation** - Clarified comments in the architecture test for improved readability. - **Tests** - Added a new line before assertions in the test method to enhance structure. --- .../InfrastructureArchitectureTests.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/Digdir.Domain.Dialogporten.Architecture.Tests/InfrastructureArchitectureTests.cs b/tests/Digdir.Domain.Dialogporten.Architecture.Tests/InfrastructureArchitectureTests.cs index 4a6b0e824..6b06c5865 100644 --- a/tests/Digdir.Domain.Dialogporten.Architecture.Tests/InfrastructureArchitectureTests.cs +++ b/tests/Digdir.Domain.Dialogporten.Architecture.Tests/InfrastructureArchitectureTests.cs @@ -16,7 +16,7 @@ public void All_Classes_In_Infrastructure_Should_Be_Internal() nameof(InfrastructureAssemblyMarker), nameof(InfrastructureExtensions), - // These classes are currently public, but should be internal, moved to another assembly, or deleted + // These classes are currently public but should be internal, moved to another assembly, or deleted nameof(OutboxScheduler), nameof(IUpstreamServiceError) }; @@ -29,6 +29,8 @@ public void All_Classes_In_Infrastructure_Should_Be_Internal() .And().DoNotHaveName(publicByDesignClasses) .Should().NotBePublic() .GetResult(); + + publicClasses.FailingTypes.Should().BeNullOrEmpty(); publicClasses.IsSuccessful.Should().BeTrue(); } } From f38b0ae2034d2b97872364144afc4bff6d9bfb10 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:47:53 +0200 Subject: [PATCH 02/22] chore(deps): update mcr.microsoft.com/dotnet/aspnet:8.0.8 docker digest to e935e34 (#1171) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mcr.microsoft.com/dotnet/aspnet](https://redirect.github.com/dotnet/aspnetcore) | stage | digest | `84a9319` -> `e935e34` | --- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Sunday,before 7am on Wednesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile | 2 +- src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile | 2 +- .../MigrationBundle.dockerfile | 2 +- src/Digdir.Domain.Dialogporten.Janitor/Dockerfile | 2 +- src/Digdir.Domain.Dialogporten.Service/Dockerfile | 2 +- src/Digdir.Domain.Dialogporten.WebApi/Dockerfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile b/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile index 33b6be8e0..54332c3eb 100644 --- a/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:84a93198d134a82a8f41c88b96adc6bfc2caf1d91ad25d5f25d90279938e1c4d AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile b/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile index b8bc94adb..bbd00ef38 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:84a93198d134a82a8f41c88b96adc6bfc2caf1d91ad25d5f25d90279938e1c4d AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app EXPOSE 8080 diff --git a/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile b/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile index bb6681365..e077b3a71 100644 --- a/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile +++ b/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:84a93198d134a82a8f41c88b96adc6bfc2caf1d91ad25d5f25d90279938e1c4d AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build diff --git a/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile b/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile index a836ba9ac..51148343e 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:84a93198d134a82a8f41c88b96adc6bfc2caf1d91ad25d5f25d90279938e1c4d AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build diff --git a/src/Digdir.Domain.Dialogporten.Service/Dockerfile b/src/Digdir.Domain.Dialogporten.Service/Dockerfile index 92e8de323..472d0ee26 100644 --- a/src/Digdir.Domain.Dialogporten.Service/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.Service/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:84a93198d134a82a8f41c88b96adc6bfc2caf1d91ad25d5f25d90279938e1c4d AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile b/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile index 3384ba599..822ed00cf 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:84a93198d134a82a8f41c88b96adc6bfc2caf1d91ad25d5f25d90279938e1c4d AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app EXPOSE 8080 From 50df22a4e4b29732298b843f628436eeb43bdb28 Mon Sep 17 00:00:00 2001 From: Dialogporten Automation Bot <164321870+dialogporten-bot@users.noreply.github.com> Date: Mon, 23 Sep 2024 12:01:50 +0200 Subject: [PATCH 03/22] chore(main): release 1.18.1 (#1146) --- CHANGELOG.md | 8 ++++++++ version.txt | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0e49d424..db2a7a721 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [1.18.1](https://github.com/digdir/dialogporten/compare/v1.18.0...v1.18.1) (2024-09-23) + + +### Bug Fixes + +* Add missing events to dialog subscription ([#1163](https://github.com/digdir/dialogporten/issues/1163)) ([162ce9a](https://github.com/digdir/dialogporten/commit/162ce9a9a0c4183d10e8edfe0f8c5589110b7a59)) +* Fix BaseUri on localhost trailing slash discrepancy on OAuth metadata ([#1145](https://github.com/digdir/dialogporten/issues/1145)) ([09ce878](https://github.com/digdir/dialogporten/commit/09ce878cb537bf2e495e3801e0c769e25008246a)) + ## [1.18.0](https://github.com/digdir/dialogporten/compare/v1.17.0...v1.18.0) (2024-09-16) diff --git a/version.txt b/version.txt index 84cc52946..ec6d649be 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.18.0 +1.18.1 From 5c170828c3a8c92b605ba06affb66b0123f5fe32 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 12:09:13 +0200 Subject: [PATCH 04/22] chore(deps): update xunit-dotnet monorepo (#1173) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [xunit](https://redirect.github.com/xunit/xunit) | `2.5.3` -> `2.9.0` | [![age](https://developer.mend.io/api/mc/badges/age/nuget/xunit/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/xunit/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/xunit/2.5.3/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/xunit/2.5.3/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [xunit.runner.visualstudio](https://redirect.github.com/xunit/visualstudio.xunit) | `2.5.3` -> `2.8.2` | [![age](https://developer.mend.io/api/mc/badges/age/nuget/xunit.runner.visualstudio/2.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/xunit.runner.visualstudio/2.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/xunit.runner.visualstudio/2.5.3/2.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/xunit.runner.visualstudio/2.5.3/2.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
xunit/xunit (xunit) ### [`v2.9.0`](https://redirect.github.com/xunit/xunit/compare/2.8.1...2.9.0) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.8.1...2.9.0) ### [`v2.8.1`](https://redirect.github.com/xunit/xunit/compare/2.8.0...2.8.1) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.8.0...2.8.1) ### [`v2.8.0`](https://redirect.github.com/xunit/xunit/compare/2.7.1...2.8.0) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.7.1...2.8.0) ### [`v2.7.1`](https://redirect.github.com/xunit/xunit/compare/2.7.0...2.7.1) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.7.0...2.7.1) ### [`v2.7.0`](https://redirect.github.com/xunit/xunit/compare/2.6.6...2.7.0) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.6...2.7.0) ### [`v2.6.6`](https://redirect.github.com/xunit/xunit/compare/2.6.5...2.6.6) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.5...2.6.6) ### [`v2.6.5`](https://redirect.github.com/xunit/xunit/compare/2.6.4...2.6.5) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.4...2.6.5) ### [`v2.6.4`](https://redirect.github.com/xunit/xunit/compare/2.6.3...2.6.4) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.3...2.6.4) ### [`v2.6.3`](https://redirect.github.com/xunit/xunit/compare/2.6.2...2.6.3) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.2...2.6.3) ### [`v2.6.2`](https://redirect.github.com/xunit/xunit/compare/2.6.1...2.6.2) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.1...2.6.2) ### [`v2.6.1`](https://redirect.github.com/xunit/xunit/compare/2.6.0...2.6.1) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.6.0...2.6.1) ### [`v2.6.0`](https://redirect.github.com/xunit/xunit/compare/2.5.3...2.6.0) [Compare Source](https://redirect.github.com/xunit/xunit/compare/2.5.3...2.6.0)
xunit/visualstudio.xunit (xunit.runner.visualstudio) ### [`v2.8.2`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.8.1...2.8.2) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.8.1...2.8.2) ### [`v2.8.1`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.8.0...2.8.1) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.8.0...2.8.1) ### [`v2.8.0`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.8...2.8.0) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.8...2.8.0) ### [`v2.5.8`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.7...2.5.8) ### [`v2.5.7`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.6...2.5.7) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.6...2.5.7) ### [`v2.5.6`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.5...2.5.6) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.5...2.5.6) ### [`v2.5.5`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.4...2.5.5) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.4...2.5.5) ### [`v2.5.4`](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.3...2.5.4) [Compare Source](https://redirect.github.com/xunit/visualstudio.xunit/compare/2.5.3...2.5.4)
--- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Sunday,before 7am on Wednesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Ole Jørgen Skogstad --- ...r.Domain.Dialogporten.Application.Integration.Tests.csproj | 2 +- .../Digdir.Domain.Dialogporten.Application.Unit.Tests.csproj | 2 +- .../Digdir.Domain.Dialogporten.Architecture.Tests.csproj | 4 ++-- ...igdir.Domain.Dialogporten.GraphQl.Integration.Tests.csproj | 4 ++-- .../Digdir.Domain.Dialogporten.GraphQl.Unit.Tests.csproj | 2 +- ...igdir.Domain.Dialogporten.Infrastructure.Unit.Tests.csproj | 2 +- ...Digdir.Domain.Dialogporten.WebApi.Integration.Tests.csproj | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Digdir.Domain.Dialogporten.Application.Integration.Tests.csproj b/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Digdir.Domain.Dialogporten.Application.Integration.Tests.csproj index 2508713eb..70abcedb3 100644 --- a/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Digdir.Domain.Dialogporten.Application.Integration.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Digdir.Domain.Dialogporten.Application.Integration.Tests.csproj @@ -11,7 +11,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/Digdir.Domain.Dialogporten.Application.Unit.Tests/Digdir.Domain.Dialogporten.Application.Unit.Tests.csproj b/tests/Digdir.Domain.Dialogporten.Application.Unit.Tests/Digdir.Domain.Dialogporten.Application.Unit.Tests.csproj index ea9898e93..074fbe5c6 100644 --- a/tests/Digdir.Domain.Dialogporten.Application.Unit.Tests/Digdir.Domain.Dialogporten.Application.Unit.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.Application.Unit.Tests/Digdir.Domain.Dialogporten.Application.Unit.Tests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/tests/Digdir.Domain.Dialogporten.Architecture.Tests/Digdir.Domain.Dialogporten.Architecture.Tests.csproj b/tests/Digdir.Domain.Dialogporten.Architecture.Tests/Digdir.Domain.Dialogporten.Architecture.Tests.csproj index 034683787..2b319b7f6 100644 --- a/tests/Digdir.Domain.Dialogporten.Architecture.Tests/Digdir.Domain.Dialogporten.Architecture.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.Architecture.Tests/Digdir.Domain.Dialogporten.Architecture.Tests.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests.csproj b/tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests.csproj index 6f615fd3f..724f26170 100644 --- a/tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests/Digdir.Domain.Dialogporten.GraphQl.Integration.Tests.csproj @@ -13,8 +13,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests.csproj b/tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests.csproj index 1156ff935..89b564fe0 100644 --- a/tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests/Digdir.Domain.Dialogporten.GraphQl.Unit.Tests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests.csproj b/tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests.csproj index 6d7c4f2b5..6e3326e62 100644 --- a/tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests.csproj @@ -7,7 +7,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests.csproj b/tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests.csproj index 0c1085544..9e00df534 100644 --- a/tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests.csproj +++ b/tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests/Digdir.Domain.Dialogporten.WebApi.Integration.Tests.csproj @@ -8,8 +8,8 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all From 3092260e219506d1a2e41aad1836a307984636c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Mon, 23 Sep 2024 12:51:12 +0200 Subject: [PATCH 05/22] chore(deps): update FusionCache (#1177) ## Summary by CodeRabbit - **New Features** - Updated package versions for improved performance and features. - `ZiggyCreatures.FusionCache` - `ZiggyCreatures.FusionCache.Backplane.StackExchangeRedis` - `ZiggyCreatures.FusionCache.Serialization.NeueccMessagePack` --- .../Digdir.Domain.Dialogporten.Infrastructure.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Digdir.Domain.Dialogporten.Infrastructure/Digdir.Domain.Dialogporten.Infrastructure.csproj b/src/Digdir.Domain.Dialogporten.Infrastructure/Digdir.Domain.Dialogporten.Infrastructure.csproj index 929f0dc6e..0745c5ae6 100644 --- a/src/Digdir.Domain.Dialogporten.Infrastructure/Digdir.Domain.Dialogporten.Infrastructure.csproj +++ b/src/Digdir.Domain.Dialogporten.Infrastructure/Digdir.Domain.Dialogporten.Infrastructure.csproj @@ -17,9 +17,9 @@ - - - + + + From e0c1cf205c66200f024431dc3392c988b99fdb30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Mon, 23 Sep 2024 21:51:28 +0200 Subject: [PATCH 06/22] feat(breaking): Move notification check endpoint to /actions (#1175) * Moved query logic to DB query * Remove ignore query filters, should not send notifications on deleted dialogs * Moved endpoint path to `/actions/should-send-notification` ## Summary by CodeRabbit - **New Features** - Improved querying mechanism for dialog activities, allowing for more precise notification conditions. - Updated endpoint for determining if a notification should be sent, enhancing clarity on its purpose. - Introduced a new API endpoint for checking notification conditions with specific parameters. - **Bug Fixes** - Simplified logic for evaluating notification conditions, improving reliability and performance. --- docs/schema/V1/swagger.verified.json | 156 +++++++++--------- .../NotificationConditionQuery.cs | 21 +-- .../NotificationConditionEndpoint.cs | 2 +- 3 files changed, 85 insertions(+), 94 deletions(-) diff --git a/docs/schema/V1/swagger.verified.json b/docs/schema/V1/swagger.verified.json index 5b48dd490..4f86d1c70 100644 --- a/docs/schema/V1/swagger.verified.json +++ b/docs/schema/V1/swagger.verified.json @@ -5561,6 +5561,84 @@ ] } }, + "/api/v1/serviceowner/dialogs/{dialogId}/actions/should-send-notification": { + "get": { + "description": "Used by Altinn Notification only. Takes a dialogId and returns a boolean value based on conditions used to determine if a notification is to be sent.", + "operationId": "GetDialogActivityNotificationConditionSO", + "parameters": [ + { + "in": "path", + "name": "dialogId", + "required": true, + "schema": { + "format": "guid", + "type": "string" + } + }, + { + "in": "query", + "name": "conditionType", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationConditionType" + } + ] + } + }, + { + "in": "query", + "name": "activityType", + "required": true, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/DialogActivityType_Values" + } + ] + } + }, + { + "in": "query", + "name": "transmissionId", + "schema": { + "format": "guid", + "nullable": true, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + }, + "text/plain": { + "schema": {} + } + }, + "description": "Successfully returned the notification determination." + }, + "401": { + "description": "Missing or invalid authentication token. Requires a Maskinporten-token with the scope \u0022altinn:system/notifications.condition.check\u0022." + }, + "403": { + "description": "Forbidden" + } + }, + "security": [ + { + "JWTBearerAuth": [] + } + ], + "summary": "Returns a boolean value based on conditions used to determine if a notification is to be sent", + "tags": [ + "Serviceowner" + ] + } + }, "/api/v1/serviceowner/dialogs/{dialogId}/activities": { "get": { "description": "Gets the list of activities belonging to a dialog", @@ -5767,84 +5845,6 @@ ] } }, - "/api/v1/serviceowner/dialogs/{dialogId}/notification-condition": { - "get": { - "description": "Used by Altinn Notification only. Takes a dialogId and returns a boolean value based on conditions used to determine if a notification is to be sent.", - "operationId": "GetDialogActivityNotificationConditionSO", - "parameters": [ - { - "in": "path", - "name": "dialogId", - "required": true, - "schema": { - "format": "guid", - "type": "string" - } - }, - { - "in": "query", - "name": "conditionType", - "required": true, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/NotificationConditionType" - } - ] - } - }, - { - "in": "query", - "name": "activityType", - "required": true, - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/DialogActivityType_Values" - } - ] - } - }, - { - "in": "query", - "name": "transmissionId", - "schema": { - "format": "guid", - "nullable": true, - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": {} - }, - "text/plain": { - "schema": {} - } - }, - "description": "Successfully returned the notification determination." - }, - "401": { - "description": "Missing or invalid authentication token. Requires a Maskinporten-token with the scope \u0022altinn:system/notifications.condition.check\u0022." - }, - "403": { - "description": "Forbidden" - } - }, - "security": [ - { - "JWTBearerAuth": [] - } - ], - "summary": "Returns a boolean value based on conditions used to determine if a notification is to be sent", - "tags": [ - "Serviceowner" - ] - } - }, "/api/v1/serviceowner/dialogs/{dialogId}/seenlog": { "get": { "description": "Gets all seen log records for a dialog. For more information see the documentation (link TBD).", diff --git a/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/DialogActivities/Queries/NotificationCondition/NotificationConditionQuery.cs b/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/DialogActivities/Queries/NotificationCondition/NotificationConditionQuery.cs index a46688d39..6b20fc235 100644 --- a/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/DialogActivities/Queries/NotificationCondition/NotificationConditionQuery.cs +++ b/src/Digdir.Domain.Dialogporten.Application/Features/V1/ServiceOwner/DialogActivities/Queries/NotificationCondition/NotificationConditionQuery.cs @@ -38,8 +38,9 @@ public async Task Handle(NotificationConditionQuery { var dialog = await _db.Dialogs .AsNoTracking() - .Include(x => x.Activities) - .IgnoreQueryFilters() + .Include(x => x.Activities + .Where(x => request.TransmissionId == null || x.TransmissionId == request.TransmissionId) + .Where(x => x.TypeId == request.ActivityType)) .FirstOrDefaultAsync(x => x.Id == request.DialogId, cancellationToken: cancellationToken); @@ -48,20 +49,10 @@ public async Task Handle(NotificationConditionQuery return new EntityNotFound(request.DialogId); } - var conditionMet = CheckDialogActivitiesCondition(dialog.Activities, request.ConditionType, request.ActivityType, request.TransmissionId); + var conditionMet = dialog.Activities.Count == 0 + ? request.ConditionType == NotificationConditionType.NotExists + : request.ConditionType == NotificationConditionType.Exists; return new NotificationConditionDto { SendNotification = conditionMet }; } - - private static bool CheckDialogActivitiesCondition( - List activities, - NotificationConditionType conditionType, - DialogActivityType.Values activityType, - Guid? transmissionId) => - activities.Where( - x => x.TypeId == activityType - && (transmissionId is null || x.TransmissionId == transmissionId)).ToList() - .Count == 0 - ? conditionType == NotificationConditionType.NotExists - : conditionType == NotificationConditionType.Exists; } diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/NotificationCondition/NotificationConditionEndpoint.cs b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/NotificationCondition/NotificationConditionEndpoint.cs index f3df96f7f..ec4efa3e4 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/NotificationCondition/NotificationConditionEndpoint.cs +++ b/src/Digdir.Domain.Dialogporten.WebApi/Endpoints/V1/ServiceOwner/DialogActivities/NotificationCondition/NotificationConditionEndpoint.cs @@ -17,7 +17,7 @@ public NotificationConditionEndpoint(ISender sender) public override void Configure() { - Get("dialogs/{dialogId}/notification-condition"); + Get("dialogs/{dialogId}/actions/should-send-notification"); Policies(AuthorizationPolicy.NotificationConditionCheck); Group(); From 37fe982ea9f08e48c75481008d614aaacf19a57d Mon Sep 17 00:00:00 2001 From: Are Almaas Date: Tue, 24 Sep 2024 13:33:06 +0200 Subject: [PATCH 07/22] fix(janitor): ensure Redis is configured correctly (#1182) ## Description ## Related Issue(s) - #{issue number} ## Verification - [ ] **Your** code builds clean without any errors or warnings - [ ] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) ## Summary by CodeRabbit - **New Features** - Updated Redis configuration across all environments to require a connection string instead of a boolean flag. - Added placeholders for local secrets in production and staging configurations. - **Bug Fixes** - Enhanced configuration clarity by removing deprecated properties and introducing connection string requirements for Redis and database connections. --- .../sync-subject-resource-mappings-job/main.bicep | 14 ++++++++++++-- .../appsettings.Development.json | 2 +- .../appsettings.prod.json | 2 +- .../appsettings.staging.json | 2 +- .../appsettings.test.json | 2 +- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.azure/applications/sync-subject-resource-mappings-job/main.bicep b/.azure/applications/sync-subject-resource-mappings-job/main.bicep index 5bff21a7a..a2d6203f5 100644 --- a/.azure/applications/sync-subject-resource-mappings-job/main.bicep +++ b/.azure/applications/sync-subject-resource-mappings-job/main.bicep @@ -51,6 +51,10 @@ var containerAppEnvVars = [ name: 'Infrastructure__DialogDbConnectionString' secretRef: 'dbconnectionstring' } + { + name: 'Infrastructure__Redis__ConnectionString' + secretRef: 'redisconnectionstring' + } { name: 'DOTNET_ENVIRONMENT' value: environment @@ -61,13 +65,19 @@ var containerAppEnvVars = [ } ] +// Base URL for accessing secrets in the Key Vault // https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-functions-deployment#example-1 -var keyVaultUrl = 'https://${environmentKeyVaultName}${az.environment().suffixes.keyvaultDns}/secrets/dialogportenAdoConnectionString' +var keyVaultBaseUrl = 'https://${environmentKeyVaultName}${az.environment().suffixes.keyvaultDns}/secrets' var secrets = [ { name: 'dbconnectionstring' - keyVaultUrl: keyVaultUrl + keyVaultUrl: '${keyVaultBaseUrl}/dialogportenAdoConnectionString' + identity: 'System' + } + { + name: 'redisconnectionstring' + keyVaultUrl: '${keyVaultBaseUrl}/dialogportenRedisConnectionString' identity: 'System' } ] diff --git a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.Development.json b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.Development.json index 455c9320d..6bb8f2cbb 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.Development.json +++ b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.Development.json @@ -1,7 +1,7 @@ { "Infrastructure": { "Redis": { - "Enabled": false + "ConnectionString": "localhost:6379" }, "DialogDbConnectionString": "TODO: Add to local secrets", "Maskinporten": { diff --git a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.prod.json b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.prod.json index 1f42ddbc1..e3ef194e4 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.prod.json +++ b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.prod.json @@ -1,7 +1,7 @@ { "Infrastructure": { "Redis": { - "Enabled": false + "ConnectionString": "TODO: Add to local secrets" }, "DialogDbConnectionString": "TODO: Add to local secrets", "Maskinporten": { diff --git a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.staging.json b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.staging.json index 9881e95ce..73f82548d 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.staging.json +++ b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.staging.json @@ -1,7 +1,7 @@ { "Infrastructure": { "Redis": { - "Enabled": false + "ConnectionString": "TODO: Add to local secrets" }, "DialogDbConnectionString": "TODO: Add to local secrets", "Maskinporten": { diff --git a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.test.json b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.test.json index d8dd17eb6..e1659f553 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/appsettings.test.json +++ b/src/Digdir.Domain.Dialogporten.Janitor/appsettings.test.json @@ -1,7 +1,7 @@ { "Infrastructure": { "Redis": { - "Enabled": false + "ConnectionString": "TODO: Add to local secrets" }, "DialogDbConnectionString": "TODO: Add to local secrets", "Maskinporten": { From 13ca9ab0f0706c3ba9222079de80c44fc1cd7916 Mon Sep 17 00:00:00 2001 From: Dialogporten Automation Bot <164321870+dialogporten-bot@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:13:45 +0200 Subject: [PATCH 08/22] chore(main): release 1.19.0 (#1178) :robot: I have created a release *beep* *boop* --- ## [1.19.0](https://github.com/digdir/dialogporten/compare/v1.18.1...v1.19.0) (2024-09-24) ### Features * **breaking:** Move notification check endpoint to /actions ([#1175](https://github.com/digdir/dialogporten/issues/1175)) ([e0c1cf2](https://github.com/digdir/dialogporten/commit/e0c1cf205c66200f024431dc3392c988b99fdb30)) ### Bug Fixes * **janitor:** ensure Redis is configured correctly ([#1182](https://github.com/digdir/dialogporten/issues/1182)) ([37fe982](https://github.com/digdir/dialogporten/commit/37fe982ea9f08e48c75481008d614aaacf19a57d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ version.txt | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db2a7a721..a7ef69dcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.19.0](https://github.com/digdir/dialogporten/compare/v1.18.1...v1.19.0) (2024-09-24) + + +### Features + +* **breaking:** Move notification check endpoint to /actions ([#1175](https://github.com/digdir/dialogporten/issues/1175)) ([e0c1cf2](https://github.com/digdir/dialogporten/commit/e0c1cf205c66200f024431dc3392c988b99fdb30)) + + +### Bug Fixes + +* **janitor:** ensure Redis is configured correctly ([#1182](https://github.com/digdir/dialogporten/issues/1182)) ([37fe982](https://github.com/digdir/dialogporten/commit/37fe982ea9f08e48c75481008d614aaacf19a57d)) + ## [1.18.1](https://github.com/digdir/dialogporten/compare/v1.18.0...v1.18.1) (2024-09-23) diff --git a/version.txt b/version.txt index ec6d649be..815d5ca06 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.18.1 +1.19.0 From cdceec28141ac6d268f32168c0875b8b61b61524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Tue, 24 Sep 2024 22:26:34 +0200 Subject: [PATCH 09/22] chore(webAPI): Remove unused lauch profiles (#1186) ## Summary by CodeRabbit - **New Features** - Updated application launch settings to improve user control over the startup process. - **Bug Fixes** - Removed the IIS Express profile to streamline application configuration. - **Chores** - Adjusted the browser launch setting to prevent automatic opening upon application start. --- .../Properties/launchSettings.json | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Properties/launchSettings.json b/src/Digdir.Domain.Dialogporten.WebApi/Properties/launchSettings.json index b2c42d8b9..3d2bf5033 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Properties/launchSettings.json +++ b/src/Digdir.Domain.Dialogporten.WebApi/Properties/launchSettings.json @@ -1,18 +1,10 @@ { "$schema": "https://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:38966", - "sslPort": 44343 - } - }, "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, - "launchBrowser": true, + "launchBrowser": false, "launchUrl": "swagger", "applicationUrl": "http://localhost:5123", "environmentVariables": { @@ -28,14 +20,6 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "launchUrl": "swagger", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } } } } From b75db4448f1e31aa539428a3f57df3efb43a7091 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 00:06:27 +0200 Subject: [PATCH 10/22] chore(deps-dev): bump vite from 5.3.4 to 5.4.7 in /docs/schema/V1 (#1176) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.4 to 5.4.7.
Release notes

Sourced from vite's releases.

create-vite@5.4.0

Please refer to CHANGELOG.md for details.

Changelog

Sourced from vite's changelog.

5.4.7 (2024-09-20)

5.4.6 (2024-09-16)

5.4.5 (2024-09-13)

5.4.4 (2024-09-11)

5.4.3 (2024-09-03)

5.4.2 (2024-08-20)

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.3.4&new-version=5.4.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/digdir/dialogporten/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/schema/V1/package-lock.json | 170 ++++++++++++++++--------------- 1 file changed, 87 insertions(+), 83 deletions(-) diff --git a/docs/schema/V1/package-lock.json b/docs/schema/V1/package-lock.json index ab1a6562e..afb3cd271 100644 --- a/docs/schema/V1/package-lock.json +++ b/docs/schema/V1/package-lock.json @@ -474,9 +474,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", - "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -487,9 +487,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", - "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -500,9 +500,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", - "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -513,9 +513,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", - "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -526,9 +526,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", - "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "cpu": [ "arm" ], @@ -539,9 +539,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", - "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -552,9 +552,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", - "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -565,9 +565,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", - "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -578,9 +578,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", - "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -591,9 +591,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", - "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -604,9 +604,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", - "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -617,9 +617,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", - "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -630,9 +630,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", - "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -643,9 +643,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", - "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -656,9 +656,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", - "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -669,9 +669,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", - "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -1341,15 +1341,15 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -1367,17 +1367,17 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/rollup": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz", - "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1390,22 +1390,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.19.0", - "@rollup/rollup-android-arm64": "4.19.0", - "@rollup/rollup-darwin-arm64": "4.19.0", - "@rollup/rollup-darwin-x64": "4.19.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", - "@rollup/rollup-linux-arm-musleabihf": "4.19.0", - "@rollup/rollup-linux-arm64-gnu": "4.19.0", - "@rollup/rollup-linux-arm64-musl": "4.19.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", - "@rollup/rollup-linux-riscv64-gnu": "4.19.0", - "@rollup/rollup-linux-s390x-gnu": "4.19.0", - "@rollup/rollup-linux-x64-gnu": "4.19.0", - "@rollup/rollup-linux-x64-musl": "4.19.0", - "@rollup/rollup-win32-arm64-msvc": "4.19.0", - "@rollup/rollup-win32-ia32-msvc": "4.19.0", - "@rollup/rollup-win32-x64-msvc": "4.19.0", + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "fsevents": "~2.3.2" } }, @@ -1453,9 +1453,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1626,14 +1626,14 @@ "license": "0BSD" }, "node_modules/vite": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", - "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", + "version": "5.4.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.7.tgz", + "integrity": "sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.39", - "rollup": "^4.13.0" + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -1652,6 +1652,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -1669,6 +1670,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, From c6a26d0b16f59f484ad818296412f5074423c684 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 12:13:35 +0200 Subject: [PATCH 11/22] chore(deps): update dependency fluentvalidation.dependencyinjectionextensions to 11.10.0 (#1189) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [FluentValidation.DependencyInjectionExtensions](https://fluentvalidation.net/) ([source](https://redirect.github.com/JeremySkinner/fluentvalidation)) | `11.9.2` -> `11.10.0` | [![age](https://developer.mend.io/api/mc/badges/age/nuget/FluentValidation.DependencyInjectionExtensions/11.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/FluentValidation.DependencyInjectionExtensions/11.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/FluentValidation.DependencyInjectionExtensions/11.9.2/11.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/FluentValidation.DependencyInjectionExtensions/11.9.2/11.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
JeremySkinner/fluentvalidation (FluentValidation.DependencyInjectionExtensions) ### [`v11.10.0`](https://redirect.github.com/FluentValidation/FluentValidation/releases/tag/11.10.0) [Compare Source](https://redirect.github.com/JeremySkinner/fluentvalidation/compare/11.9.2...11.10.0) ##### Release notes [Please read the upgrade guide if you are moving from 10.x to 11.x](https://docs.fluentvalidation.net/en/latest/upgrading-to-11.html) Note that the after 11.1.0 release, the `FluentValidation.AspNetCore` package has been moved to a separate repository and is now versioned and released separately. These release notes now only apply to the core `FluentValidation` package. For `FluentValidation.AspNetCore` release notes, please visit the [FluentValidation.AspNetCore repository](https://redirect.github.com/FluentValidation/FluentValidation.AspNetCore). ##### Changes in 11.10.0 - Add WhereAsync as conterpart to Where on collection rules ([#​2240](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2240)) - Create IEnumValidator to expose the targeted Enum type of EnumValidator ([#​2244](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2244)) - Add Romansh language translations ([#​2239](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2239)) ##### Changes in 11.9.2 - `ScalePrecisionValidator` error message clarification ([#​2211](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2211)) ##### Changes in 11.9.1 - Fix issue with CascadeMode on child validators ([#​2207](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2207)) ##### Changes in 11.9.0 - Fix memory leak in NotEmptyValidator/EmptyValidator ([#​2174](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2174)) - Add more descriptive error messages if a rule throws a `NullReferenceException` ([#​2152](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2152)) - Add support for caching root parameter expressions (eg `RuleFor(x => x)`) ([#​2168](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2168)) - Prevent `AddValidatorsFromAssemblyContaining` from registering validators twice ([#​2182](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2182)) - Add builds for .net 8 ##### Changes in 11.8.1 - Fix unintentional behavioural changes in introduced in the previous release as part of [#​2158](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2158) ##### Changes in 11.8.0 - Added `AbstractValidator.OnRuleAdded` to allow customization of rule instances after creation ([#​2114](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2114)) - Fix Serbian translation of LengthValidator ([#​2147](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2147)) - Fix chinese culture codes ([#​2151](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2151)) - Add Khmer translations ([#​2155](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2155)) - Various performance improvements ([#​2158](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2158)) - Fix ChildRules with class hierarchies ([#​2165](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2165)) ##### Changes in 11.7.1 - Resolved issue with combining multiple ValidationResult instances where RuleSetsExecuted wasn't properly set on the combined result ([#​2125](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2125)) ##### Changes in 11.7.0 - Add additional constructor for combining multiple ValidationResult instances ([#​2125](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2125)) - Add PropertyPath placeholder ([#​2134](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2134)) - Fix Brazilian Portuguese translation ([#​2131](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2131)) ##### Changes in 11.6.0 - Add OnFailurecCreated callback in ValidatorOptions.Global ([#​2120](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2120)) - Fix typo in Russian localization ([#​2102](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2102)) - Add Tajik language ([#​2108](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2108)) - Fixed some typos in Validator Extension docblocks ([#​2118](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2118)) ##### Changes in 11.5.2 - Resolve issue with ruleset propagation for multiple levels of child rules ([#​2097](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2097)) ##### Changes in 11.5.1 - Deprecated the ability to disable the root model null check via overriding `AbstractValidator.EnsureInstanceNotNull` (See [#​2069](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2069) for migration steps) - Deprecated the `Transform` and `TransformAsync` methods (See [#​2072](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2072) for migration steps) ##### Changes in 11.5.0 - MemberNameValidatorSelector now supports wildcard indexes in property paths ([#​2056](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2056)) - Added overload of TestValidateAsync that accepts a context ([#​2052](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2052)) - Minor optimization to regex validator ([#​2035](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2035)) - Added Kazakh translations ([#​2036](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2036)) - Added Catalan translations and updated Spanish translations ([#​2050](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2050)) - Updates to Uzbek Latin and Cyrillic translations ([#​2040](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2040)/[#​2041](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2041)/[#​2045](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2045)) - Updates to Italian translations ([#​2039](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2039)) - Updates to French translations ([#​2065](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2065)) ##### Changes in 11.4.0 - Deprecate `ScalePrecision` validator and introduce `PrecisionScale` validator as its replacement ([#​2030](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2030)) ##### Changes in 11.3.0 - Add a net7 build - Annotate string parameters with `StringSyntaxAttribute.Regex` in net7 builds ([#​1957](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1957)) - Fixes to SourceLink integration ([#​2019](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2019)) - Add Uzbek Latin and Cyrillic languages ([#​2013](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2013)) - Updates to Danish language ([#​2012](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2012)) ##### Changes in 11.2.2 - `MemberNameValidatorSelector` should make use of `PropertyNameResolver` when parsing expressions ([#​2003](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/2003)) ##### Changes in 11.2.1 - Fix test helper `Only()` not taking into account parent-level unmatched failures ([#​1986](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1986)) ##### Changes in 11.2.0 - Resolve issue with unexpected results when with nested `Include` calls with the `MemberNameValidatorSelector` ([#​1989](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1989)) - Add a new Selector Factory for the Composite Selector ([#​1988](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1988)) ##### Changes in 11.1.1 - Fix issue with incorrect rulesets being executed in a child validator when combined with ChildRules ([#​1981](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1981)) - Bulgarian translations of default messages ([#​1973](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1973)) ##### Changes in 11.1.0 - Added a `ToDictionary` method to `ValidationResult` (particularly useful when working with Minimal APIs)- - MVC auto validation: Deprecated Implicit validation of child properties ([#​1960](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1960)) - MVC auto validation: Deprecated Implicit validation of root collection elements ([#​1960](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1960)) - Deprecated `InjectValidator` ([#​1960](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1960)) - Deprecated `IValidatorFactory` and `ServiceProviderValidatorFactory` ([#​1961](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1961)) - Introduce `services.AddFluentValidationAutoValidation()` and `services.AddFluentValidationClientsideAdapters()` as replacements for `services.AddFluentValidation()` ([#​1965](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1965)) - Remove duplication between sync and async validation in the internal model. ##### Changes in 11.0.3 - Fix `AsyncValidatorInvokedSynchronouslyException` being incorrectly thrown when the top-level `When` method with `RuleForEach`, even when invoked asynchronously ([#​1955](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1955)) ##### Changes in 11.0.2 - Child validator contexts now contain a reference to their parent context ([#​1945](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1945)) - Support deserialization of `ValidationResult` using System.Text.Json ([#​1928](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1928)) ##### Changes in 11.0.1 - Fix regression in the Test Helper affecting the `With*` and `Without*` assertion methods ([#​1937](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1937)) ##### Changes in 11.0 - Throw exceptions when async validator is invoked synchronously ([#​1705](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1705)) - Removal deprecated OnFailure/OnAnyFailure callbacks. - Remove deprecated `RunDefaultMvcValidationAfterFluentValidationExecutes` option from ASP.NET integration. - Remove deprecated `Options` property from RuleComponent. - Remove deprecated TestHelper methods. - Remove non-generic `PropertyValidator` backwards compatibility layer. - Add method `Only()` to the test helper asserting that no other validation errors were raised. - Ensure property covariance is properly handled throughout the internal model ([#​1713](https://redirect.github.com/JeremySkinner/fluentvalidation/issues/1713)) ##### Downloads Binaries can be downloaded from nuget: - [FluentValidation](http://nuget.org/packages/fluentvalidation) - Main package - [FluentValidation.AspNetCore](http://nuget.org/packages/fluentvalidation.aspnetcore) - ASP.NET Core integration
--- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Sunday,before 7am on Wednesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../Digdir.Domain.Dialogporten.Application.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Digdir.Domain.Dialogporten.Application/Digdir.Domain.Dialogporten.Application.csproj b/src/Digdir.Domain.Dialogporten.Application/Digdir.Domain.Dialogporten.Application.csproj index 3f0a1cbaf..5ea710514 100644 --- a/src/Digdir.Domain.Dialogporten.Application/Digdir.Domain.Dialogporten.Application.csproj +++ b/src/Digdir.Domain.Dialogporten.Application/Digdir.Domain.Dialogporten.Application.csproj @@ -12,7 +12,7 @@ - + From f8068e060e5c0eefe0471f489b0fa4bac3864c6b Mon Sep 17 00:00:00 2001 From: Are Almaas Date: Wed, 25 Sep 2024 12:13:50 +0200 Subject: [PATCH 12/22] chore(bicep): fix type warning (#1193) ## Description ## Related Issue(s) - #{issue number} ## Verification - [ ] **Your** code builds clean without any errors or warnings - [ ] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) ## Summary by CodeRabbit - **New Features** - Enhanced type safety for virtual machine configurations by restricting `osType` to 'Linux', 'Windows', or null, and `caching` to 'None', 'ReadOnly', 'ReadWrite', or null. These improvements ensure more reliable and predictable virtual machine settings. --- .azure/modules/virtualMachine/main.bicep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure/modules/virtualMachine/main.bicep b/.azure/modules/virtualMachine/main.bicep index 974e95bb9..04cb23433 100644 --- a/.azure/modules/virtualMachine/main.bicep +++ b/.azure/modules/virtualMachine/main.bicep @@ -52,10 +52,10 @@ type StorageProfile = { version: string } osDisk: { - osType: string + osType: 'Linux' | 'Windows' | null name: string createOption: string - caching: string + caching: 'None' | 'ReadOnly' | 'ReadWrite' | null managedDisk: { storageAccountType: string } From 4b8cd92571658d78c86cf2f80fdad573451aacc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 12:15:45 +0200 Subject: [PATCH 13/22] chore(deps): update tj-actions/changed-files action to v45 (#1190) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tj-actions/changed-files](https://redirect.github.com/tj-actions/changed-files) | action | major | `v44` -> `v45` | --- ### Release Notes
tj-actions/changed-files (tj-actions/changed-files) ### [`v45`](https://redirect.github.com/tj-actions/changed-files/releases/tag/v45) [Compare Source](https://redirect.github.com/tj-actions/changed-files/compare/v44...v45) ##### Changes in v45.0.2 ##### What's Changed - chore(deps): lock file maintenance by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2259](https://redirect.github.com/tj-actions/changed-files/pull/2259) - chore(deps): update dependency eslint-plugin-jest to v28.8.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2260](https://redirect.github.com/tj-actions/changed-files/pull/2260) - Upgraded to v45.0.1 by [@​tj-actions-bot](https://redirect.github.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/2258](https://redirect.github.com/tj-actions/changed-files/pull/2258) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.5.3 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2263](https://redirect.github.com/tj-actions/changed-files/pull/2263) - chore(deps): update peter-evans/create-pull-request action to v7 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2261](https://redirect.github.com/tj-actions/changed-files/pull/2261) - fix(deps): update dependency yaml to v2.5.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2264](https://redirect.github.com/tj-actions/changed-files/pull/2264) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.5.4 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2266](https://redirect.github.com/tj-actions/changed-files/pull/2266) - chore(deps): update dependency eslint-plugin-jest to v28.8.3 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2267](https://redirect.github.com/tj-actions/changed-files/pull/2267) - chore(deps): update peter-evans/create-pull-request action to v7.0.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2269](https://redirect.github.com/tj-actions/changed-files/pull/2269) - chore(deps): lock file maintenance by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2270](https://redirect.github.com/tj-actions/changed-files/pull/2270) - chore(deps): lock file maintenance by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2271](https://redirect.github.com/tj-actions/changed-files/pull/2271) - chore(deps): update dependency typescript to v5.6.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2272](https://redirect.github.com/tj-actions/changed-files/pull/2272) - chore(deps): update dependency eslint-plugin-github to v5.0.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2275](https://redirect.github.com/tj-actions/changed-files/pull/2275) - chore(deps): update peter-evans/create-pull-request action to v7.0.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2277](https://redirect.github.com/tj-actions/changed-files/pull/2277) - chore(deps): update dependency [@​types/jest](https://redirect.github.com/types/jest) to v29.5.13 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2278](https://redirect.github.com/tj-actions/changed-files/pull/2278) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.5.5 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2279](https://redirect.github.com/tj-actions/changed-files/pull/2279) - chore(deps): lock file maintenance by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2280](https://redirect.github.com/tj-actions/changed-files/pull/2280) - chore(deps): update peter-evans/create-pull-request action to v7.0.3 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2281](https://redirect.github.com/tj-actions/changed-files/pull/2281) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v45...v45.0.2 *** ##### Changes in v45.0.1 ##### What's Changed - Upgraded to v45 by [@​tj-actions-bot](https://redirect.github.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/2244](https://redirect.github.com/tj-actions/changed-files/pull/2244) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.5.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2246](https://redirect.github.com/tj-actions/changed-files/pull/2246) - chore(deps): update dependency ts-jest to v29.2.5 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2248](https://redirect.github.com/tj-actions/changed-files/pull/2248) - fix(deps): update dependency micromatch to v4.0.8 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2249](https://redirect.github.com/tj-actions/changed-files/pull/2249) - chore(deps): lock file maintenance by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2251](https://redirect.github.com/tj-actions/changed-files/pull/2251) - chore(deps-dev): bump [@​types/node](https://redirect.github.com/types/node) from 22.5.0 to 22.5.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/tj-actions/changed-files/pull/2252](https://redirect.github.com/tj-actions/changed-files/pull/2252) - chore(deps): update dependency eslint-plugin-jest to v28.8.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2255](https://redirect.github.com/tj-actions/changed-files/pull/2255) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.5.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2257](https://redirect.github.com/tj-actions/changed-files/pull/2257) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v45...v45.0.1 *** ##### Changes in v45.0.0 ##### 🔥🔥 BREAKING CHANGE 🔥🔥 - With changes detected using GitHub's API setting `output_renamed_files_as_deleted_and_added` to `true`, would now include the previous file name in the list of deleted files. ##### What's Changed - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.0.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2219](https://redirect.github.com/tj-actions/changed-files/pull/2219) - Upgraded to v44.5.7 by [@​tj-actions-bot](https://redirect.github.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/2218](https://redirect.github.com/tj-actions/changed-files/pull/2218) - chore(deps): update dependency ts-jest to v29.2.4 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2221](https://redirect.github.com/tj-actions/changed-files/pull/2221) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.0.3 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2222](https://redirect.github.com/tj-actions/changed-files/pull/2222) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.1.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2223](https://redirect.github.com/tj-actions/changed-files/pull/2223) - chore(deps): update dependency eslint-plugin-jest to v28.7.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2224](https://redirect.github.com/tj-actions/changed-files/pull/2224) - chore(deps): update dependency eslint-plugin-jest to v28.8.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2227](https://redirect.github.com/tj-actions/changed-files/pull/2227) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.2.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2229](https://redirect.github.com/tj-actions/changed-files/pull/2229) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.3.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2230](https://redirect.github.com/tj-actions/changed-files/pull/2230) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.4.0 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2231](https://redirect.github.com/tj-actions/changed-files/pull/2231) - fix(deps): update dependency [@​octokit/rest](https://redirect.github.com/octokit/rest) to v21.0.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2232](https://redirect.github.com/tj-actions/changed-files/pull/2232) - chore(deps): lock file maintenance by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2226](https://redirect.github.com/tj-actions/changed-files/pull/2226) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.4.1 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2233](https://redirect.github.com/tj-actions/changed-files/pull/2233) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.4.2 by [@​renovate](https://redirect.github.com/renovate) in [https://github.com/tj-actions/changed-files/pull/2237](https://redirect.github.com/tj-actions/changed-files/pull/2237) - fix: remove unsupported input by [@​jackton1](https://redirect.github.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/2238](https://redirect.github.com/tj-actions/changed-files/pull/2238) - chore: conditionally skip certain test for foked prs by [@​jackton1](https://redirect.github.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/2240](https://redirect.github.com/tj-actions/changed-files/pull/2240) - chore: debug env vars by [@​jackton1](https://redirect.github.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/2241](https://redirect.github.com/tj-actions/changed-files/pull/2241) - fix: update test skip logic to use custom env by [@​jackton1](https://redirect.github.com/jackton1) in [https://github.com/tj-actions/changed-files/pull/2242](https://redirect.github.com/tj-actions/changed-files/pull/2242) - Renamed Files decomposed into Deleted: previous_filename and Added:filename by [@​Whadup](https://redirect.github.com/Whadup) in [https://github.com/tj-actions/changed-files/pull/2236](https://redirect.github.com/tj-actions/changed-files/pull/2236) - docs: add Whadup as a contributor for code by [@​allcontributors](https://redirect.github.com/allcontributors) in [https://github.com/tj-actions/changed-files/pull/2239](https://redirect.github.com/tj-actions/changed-files/pull/2239) - Updated README.md by [@​tj-actions-bot](https://redirect.github.com/tj-actions-bot) in [https://github.com/tj-actions/changed-files/pull/2243](https://redirect.github.com/tj-actions/changed-files/pull/2243) ##### New Contributors - [@​Whadup](https://redirect.github.com/Whadup) made their first contribution in [https://github.com/tj-actions/changed-files/pull/2236](https://redirect.github.com/tj-actions/changed-files/pull/2236) **Full Changelog**: https://github.com/tj-actions/changed-files/compare/v44...v45.0.0 ***
--- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Sunday,before 7am on Wednesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/action-check-for-changes.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-check-for-changes.yml b/.github/workflows/action-check-for-changes.yml index c2ed3091f..f2038baff 100644 --- a/.github/workflows/action-check-for-changes.yml +++ b/.github/workflows/action-check-for-changes.yml @@ -39,7 +39,7 @@ jobs: # fetch-depth needs to be 0 in cases where we want to fetch changes since previous tag for example fetch-depth: 0 - - uses: tj-actions/changed-files@v44 + - uses: tj-actions/changed-files@v45 id: filter with: files_yaml: | From 49012ec26cb2046a27cb6dd08e89ad9ab4b3e020 Mon Sep 17 00:00:00 2001 From: Are Almaas Date: Wed, 25 Sep 2024 15:04:09 +0200 Subject: [PATCH 14/22] ci: upgrade az cli version (#1195) ## Description New version of Bicep dropped, upgrading to latest azure cli to include it. ## Related Issue(s) - #{issue number} ## Verification - [ ] **Your** code builds clean without any errors or warnings - [ ] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) ## Summary by CodeRabbit - **New Features** - Updated Azure CLI version to 2.64.0 for improved deployment capabilities. - **Bug Fixes** - Enhanced performance and stability with the latest Azure CLI updates. --- .github/workflows/action-deploy-apps.yml | 2 +- .github/workflows/action-deploy-infra.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/action-deploy-apps.yml b/.github/workflows/action-deploy-apps.yml index f7572d878..35325f8d5 100644 --- a/.github/workflows/action-deploy-apps.yml +++ b/.github/workflows/action-deploy-apps.yml @@ -1,6 +1,6 @@ name: Deploy apps env: - AZ_CLI_VERSION: 2.61.0 + AZ_CLI_VERSION: 2.64.0 on: workflow_call: secrets: diff --git a/.github/workflows/action-deploy-infra.yml b/.github/workflows/action-deploy-infra.yml index 9bd67f867..e554d07ce 100644 --- a/.github/workflows/action-deploy-infra.yml +++ b/.github/workflows/action-deploy-infra.yml @@ -1,7 +1,7 @@ name: Deploy infrastructure env: - AZ_CLI_VERSION: 2.61.0 + AZ_CLI_VERSION: 2.64.0 on: workflow_call: From 29f0496bf91cb34f0a756640f666f8c0492c38bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Sep 2024 17:10:24 +0200 Subject: [PATCH 15/22] chore(deps): update mcr.microsoft.com/dotnet/sdk docker tag to v8.0.402 (#1188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mcr.microsoft.com/dotnet/sdk](https://redirect.github.com/dotnet/sdk) | final | patch | `8.0.401` -> `8.0.402` | --- ### Release Notes
dotnet/sdk (mcr.microsoft.com/dotnet/sdk) ### [`v8.0.402`](https://redirect.github.com/dotnet/sdk/compare/v8.0.401...v8.0.402) [Compare Source](https://redirect.github.com/dotnet/sdk/compare/v8.0.401...v8.0.402)
--- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Sunday,before 7am on Wednesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Ole Jørgen Skogstad --- global.json | 2 +- src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile | 2 +- src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile | 2 +- .../MigrationBundle.dockerfile | 2 +- src/Digdir.Domain.Dialogporten.Janitor/Dockerfile | 2 +- src/Digdir.Domain.Dialogporten.Service/Dockerfile | 2 +- src/Digdir.Domain.Dialogporten.WebApi/Dockerfile | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/global.json b/global.json index c55fa7dfa..ecdcdb9ba 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.401", + "version": "8.0.402", "rollForward": "disable" } } diff --git a/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile b/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile index 54332c3eb..29c6c23bb 100644 --- a/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile @@ -1,7 +1,7 @@ FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile b/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile index bbd00ef38..c744a48cb 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile @@ -2,7 +2,7 @@ WORKDIR /app EXPOSE 8080 -FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile b/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile index e077b3a71..ca1227908 100644 --- a/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile +++ b/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile @@ -1,7 +1,7 @@ FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile b/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile index 51148343e..b46233015 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile @@ -1,7 +1,7 @@ FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.Service/Dockerfile b/src/Digdir.Domain.Dialogporten.Service/Dockerfile index 472d0ee26..a38fb9247 100644 --- a/src/Digdir.Domain.Dialogporten.Service/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.Service/Dockerfile @@ -1,7 +1,7 @@ FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile b/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile index 822ed00cf..04d9c5547 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile @@ -2,7 +2,7 @@ WORKDIR /app EXPOSE 8080 -FROM mcr.microsoft.com/dotnet/sdk:8.0.401@sha256:c9966505b18c198b7b5000b07ec3c7102bc257de580be270ce39ec278d549ef8 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build WORKDIR /src COPY [".editorconfig", "."] From 8e570b4737ea7c7ba5aeacfc10f393ed52ccea2e Mon Sep 17 00:00:00 2001 From: Knut Haug <154342485+knuhau@users.noreply.github.com> Date: Thu, 26 Sep 2024 10:53:42 +0200 Subject: [PATCH 16/22] chore: Fix redundant call to resource registry API (#1181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description This is due to the application caching two separate dictionaries of info from the resource registry, grouped by different keys. ![CleanShot 2024-09-25 at 15 30 41@2x](https://github.com/user-attachments/assets/004eb728-3ed7-46d9-8b22-76f7dd7e6451) Added caching of the raw response from the resource registry and removed the dependent caches to lower complexity. ## Related Issue(s) - #1136 ## Verification - [x] **Your** code builds clean without any errors or warnings - [x] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Improved caching strategy for service resource information retrieval, enhancing performance and efficiency. - Centralized data fetching logic for service resources, allowing for more streamlined and efficient access. - **Bug Fixes** - Streamlined data fetching logic to minimize unnecessary calls to the endpoint by utilizing the updated caching mechanism. --------- Co-authored-by: Ole Jørgen Skogstad --- .../ResourceRegistryClient.cs | 82 +++++++------------ 1 file changed, 28 insertions(+), 54 deletions(-) diff --git a/src/Digdir.Domain.Dialogporten.Infrastructure/Altinn/ResourceRegistry/ResourceRegistryClient.cs b/src/Digdir.Domain.Dialogporten.Infrastructure/Altinn/ResourceRegistry/ResourceRegistryClient.cs index 9bbf49c17..300dccf69 100644 --- a/src/Digdir.Domain.Dialogporten.Infrastructure/Altinn/ResourceRegistry/ResourceRegistryClient.cs +++ b/src/Digdir.Domain.Dialogporten.Infrastructure/Altinn/ResourceRegistry/ResourceRegistryClient.cs @@ -7,11 +7,11 @@ namespace Digdir.Domain.Dialogporten.Infrastructure.Altinn.ResourceRegistry; internal sealed class ResourceRegistryClient : IResourceRegistry { - private const string ServiceResourceInformationByOrgCacheKey = "ServiceResourceInformationByOrgCacheKey"; - private const string ServiceResourceInformationByResourceIdCacheKey = "ServiceResourceInformationByResourceIdCacheKey"; + private const string ServiceResourceInformationCacheKey = "ServiceResourceInformationCacheKey"; private const string ResourceTypeGenericAccess = "GenericAccessResource"; private const string ResourceTypeAltinnApp = "AltinnApp"; private const string ResourceTypeCorrespondence = "CorrespondenceService"; + private const string ResourceRegistryResourceEndpoint = "resourceregistry/api/v1/resource/"; private readonly IFusionCache _cache; private readonly HttpClient _client; @@ -26,27 +26,24 @@ public async Task> GetResourceIn string orgNumber, CancellationToken cancellationToken) { - var dic = await GetOrSetResourceInformationByOrg(cancellationToken); - if (!dic.TryGetValue(orgNumber, out var resources)) - { - resources = []; - } - - return resources.AsReadOnly(); + var resources = await FetchServiceResourceInformation(cancellationToken); + return resources + .Where(x => x.OwnerOrgNumber == orgNumber) + .ToList(); } public async Task GetResourceInformation( string serviceResourceId, CancellationToken cancellationToken) { - var dic = await GetOrSetResourceInformationByResourceId(cancellationToken); - dic.TryGetValue(serviceResourceId, out var resource); - return resource; + var resources = await FetchServiceResourceInformation(cancellationToken); + return resources + .FirstOrDefault(x => x.ResourceId == serviceResourceId); } public async IAsyncEnumerable> GetUpdatedSubjectResources(DateTimeOffset since, int batchSize, [EnumeratorCancellation] CancellationToken cancellationToken) { - const string searchEndpoint = "resourceregistry/api/v1/resource/updated"; + const string searchEndpoint = $"{ResourceRegistryResourceEndpoint}updated"; var nextUrl = searchEndpoint + $"?since={Uri.EscapeDataString(since.ToString("O"))}&limit={batchSize}"; do @@ -66,56 +63,33 @@ public async IAsyncEnumerable> GetUpdatedSubjectRes } while (nextUrl is not null); } - - private async Task> GetOrSetResourceInformationByOrg( - CancellationToken cancellationToken) + private async Task FetchServiceResourceInformation(CancellationToken cancellationToken) { - return await _cache.GetOrSetAsync( - ServiceResourceInformationByOrgCacheKey, - async cToken => - { - var resources = await FetchServiceResourceInformation(cToken); - return resources - .GroupBy(x => x.OwnerOrgNumber) - .ToDictionary(x => x.Key, x => x.ToArray()); - }, - token: cancellationToken); - } + const string searchEndpoint = $"{ResourceRegistryResourceEndpoint}resourcelist"; - private async Task> GetOrSetResourceInformationByResourceId( - CancellationToken cancellationToken) - { return await _cache.GetOrSetAsync( - ServiceResourceInformationByResourceIdCacheKey, + ServiceResourceInformationCacheKey, async cToken => { - var resources = await FetchServiceResourceInformation(cToken); - return resources.ToDictionary(x => x.ResourceId); + var response = await _client + .GetFromJsonEnsuredAsync>(searchEndpoint, + cancellationToken: cToken); + + return response + .Where(x => !string.IsNullOrWhiteSpace(x.HasCompetentAuthority.Organization)) + .Where(x => x.ResourceType is + ResourceTypeGenericAccess or + ResourceTypeAltinnApp or + ResourceTypeCorrespondence) + .Select(x => new ServiceResourceInformation( + $"{Constants.ServiceResourcePrefix}{x.Identifier}", + x.ResourceType, + x.HasCompetentAuthority.Organization!)) + .ToArray(); }, token: cancellationToken); } - private async Task FetchServiceResourceInformation(CancellationToken cancellationToken) - { - const string searchEndpoint = "resourceregistry/api/v1/resource/resourcelist"; - - var response = await _client - .GetFromJsonEnsuredAsync>(searchEndpoint, - cancellationToken: cancellationToken); - - return response - .Where(x => !string.IsNullOrWhiteSpace(x.HasCompetentAuthority.Organization)) - .Where(x => x.ResourceType is - ResourceTypeGenericAccess or - ResourceTypeAltinnApp or - ResourceTypeCorrespondence) - .Select(x => new ServiceResourceInformation( - $"{Constants.ServiceResourcePrefix}{x.Identifier}", - x.ResourceType, - x.HasCompetentAuthority.Organization!)) - .ToArray(); - } - private sealed class ResourceListResponse { public required string Identifier { get; init; } From d5729de122036a8623233d4946c666895c9e3f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Thu, 26 Sep 2024 18:09:23 +0200 Subject: [PATCH 17/22] chore: Add transmission content values test (#1200) ## Description Adding test for required content on transmissions ## Related Issue(s) - #1197 ## Verification - [x] **Your** code builds clean without any errors or warnings - [x] Manual testing done (required) - [x] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) ## Summary by CodeRabbit - **New Features** - Added support for generating fake dialog transmissions with new parameters in dialog generation methods. - **Bug Fixes** - Introduced validation tests to ensure that dialog transmissions cannot be created without required content values. - **Tests** - Added new test cases to validate the creation of dialog transmissions under specific conditions. --- .../DialogGenerator.cs | 16 +++-- .../Program.cs | 8 +-- .../Dialogs/Commands/CreateDialogTests.cs | 71 ++++++++++++++++++- 3 files changed, 82 insertions(+), 13 deletions(-) diff --git a/src/Digdir.Tool.Dialogporten.GenerateFakeData/DialogGenerator.cs b/src/Digdir.Tool.Dialogporten.GenerateFakeData/DialogGenerator.cs index 62f226ee0..a9bb58561 100644 --- a/src/Digdir.Tool.Dialogporten.GenerateFakeData/DialogGenerator.cs +++ b/src/Digdir.Tool.Dialogporten.GenerateFakeData/DialogGenerator.cs @@ -36,7 +36,8 @@ public static CreateDialogCommand GenerateFakeDialog( List? attachments = null, List? guiActions = null, List? apiActions = null, - List? activities = null) + List? activities = null, + List? transmissions = null) { return GenerateFakeDialogs( seed, @@ -60,12 +61,12 @@ public static CreateDialogCommand GenerateFakeDialog( attachments, guiActions, apiActions, - activities + activities, + transmissions )[0]; } - public static List GenerateFakeDialogs( - int? seed = null, + public static List GenerateFakeDialogs(int? seed = null, int count = 1, Guid? id = null, string? serviceResource = null, @@ -86,7 +87,8 @@ public static List GenerateFakeDialogs( List? attachments = null, List? guiActions = null, List? apiActions = null, - List? activities = null) + List? activities = null, + List? transmissions = null) { Randomizer.Seed = seed.HasValue ? new Random(seed.Value) : new Random(); return new Faker() @@ -108,6 +110,7 @@ public static List GenerateFakeDialogs( .RuleFor(o => o.ApiActions, _ => apiActions ?? GenerateFakeDialogApiActions()) .RuleFor(o => o.Activities, _ => activities ?? GenerateFakeDialogActivities()) .RuleFor(o => o.Process, f => process ?? GenerateFakeProcessUri()) + .RuleFor(o => o.Transmissions, f => transmissions ?? GenerateFakeDialogTransmissions()) .Generate(count); } @@ -121,7 +124,8 @@ public static CreateDialogCommand GenerateSimpleFakeDialog(Guid? id = null) attachments: [], guiActions: [], apiActions: [], - searchTags: []); + searchTags: [], + transmissions: []); } public static string GenerateFakeResource(Func? generator = null) diff --git a/src/Digdir.Tool.Dialogporten.GenerateFakeData/Program.cs b/src/Digdir.Tool.Dialogporten.GenerateFakeData/Program.cs index 93896625a..70fc67ee4 100644 --- a/src/Digdir.Tool.Dialogporten.GenerateFakeData/Program.cs +++ b/src/Digdir.Tool.Dialogporten.GenerateFakeData/Program.cs @@ -35,9 +35,7 @@ private static async Task RunAsync(Options options) Randomizer.Seed = new Random(options.Seed); var dialogs = DialogGenerator.GenerateFakeDialogs( seed: new Randomizer().Number(int.MaxValue), - serviceResourceGenerator: () => MaybeGetRandomResource(options), - partyGenerator: () => MaybeGetRandomParty(options), - count: options.Count); + count: options.Count, serviceResourceGenerator: () => MaybeGetRandomResource(options), partyGenerator: () => MaybeGetRandomParty(options)); var serialized = JsonSerializer.Serialize(dialogs, JsonSerializerOptions); Console.WriteLine(serialized); return; @@ -118,9 +116,7 @@ private static void ProduceDialogs(Options options, BlockingCollection<(int, Cre var dialogsToGenerate = Math.Min(DialogsPerBatch, totalDialogs - dialogCounter); var dialogs = DialogGenerator.GenerateFakeDialogs( seed: new Randomizer().Number(int.MaxValue), - serviceResourceGenerator: () => MaybeGetRandomResource(options), - partyGenerator: () => MaybeGetRandomParty(options), - count: dialogsToGenerate).Take(dialogsToGenerate); + count: dialogsToGenerate, serviceResourceGenerator: () => MaybeGetRandomResource(options), partyGenerator: () => MaybeGetRandomParty(options)).Take(dialogsToGenerate); foreach (var dialog in dialogs) { dialogQueue.Add((dialogCounter + 1, dialog), cancellationToken); diff --git a/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Features/V1/ServiceOwner/Dialogs/Commands/CreateDialogTests.cs b/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Features/V1/ServiceOwner/Dialogs/Commands/CreateDialogTests.cs index db17226ed..58accba55 100644 --- a/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Features/V1/ServiceOwner/Dialogs/Commands/CreateDialogTests.cs +++ b/tests/Digdir.Domain.Dialogporten.Application.Integration.Tests/Features/V1/ServiceOwner/Dialogs/Commands/CreateDialogTests.cs @@ -1,5 +1,8 @@ -using Digdir.Domain.Dialogporten.Application.Features.V1.ServiceOwner.Dialogs.Queries.Get; +using Castle.Core.Logging; +using Digdir.Domain.Dialogporten.Application.Features.V1.Common.Localizations; +using Digdir.Domain.Dialogporten.Application.Features.V1.ServiceOwner.Dialogs.Queries.Get; using Digdir.Domain.Dialogporten.Application.Integration.Tests.Common; +using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Transmissions; using Digdir.Tool.Dialogporten.GenerateFakeData; using FluentAssertions; using static Digdir.Domain.Dialogporten.Application.Integration.Tests.UuiDv7Utils; @@ -203,4 +206,70 @@ public async Task Can_Create_Dialog_With_UpdatedAt_And_CreatedAt_Being_Equal() response.TryPickT0(out var success, out _).Should().BeTrue(); success.Should().NotBeNull(); } + + [Fact] + public async Task Cannot_Create_Transmission_Without_Content() + { + // Arrange + var transmission = DialogGenerator.GenerateFakeDialogTransmissions(1)[0]; + transmission.Content = null!; + + var createDialogCommand = DialogGenerator.GenerateSimpleFakeDialog(); + createDialogCommand.Transmissions = [transmission]; + + // Act + var response = await Application.Send(createDialogCommand); + + // Assert + response.TryPickT2(out var validationError, out _).Should().BeTrue(); + validationError.Should().NotBeNull(); + validationError.Errors.Should().HaveCount(1); + validationError.Errors.First().ErrorMessage.Should().Contain("'Content' must not be empty"); + } + + [Fact] + public async Task Cannot_Create_Transmission_Without_Content_Value() + { + // Arrange + var transmission = DialogGenerator.GenerateFakeDialogTransmissions(1)[0]; + transmission.Content.Summary.Value = []; + transmission.Content.Title.Value = []; + + var createDialogCommand = DialogGenerator.GenerateSimpleFakeDialog(); + createDialogCommand.Transmissions = [transmission]; + + // Act + var response = await Application.Send(createDialogCommand); + + // Assert + response.TryPickT2(out var validationError, out _).Should().BeTrue(); + validationError.Should().NotBeNull(); + validationError.Errors + .Count(e => e.PropertyName.Contains(nameof(createDialogCommand.Content))) + .Should() + .Be(2); + } + + [Fact] + public async Task Cannot_Create_Transmission_With_Empty_Content_Localization_Values() + { + // Arrange + var transmission = DialogGenerator.GenerateFakeDialogTransmissions(1)[0]; + transmission.Content.Summary.Value = [new LocalizationDto { LanguageCode = "nb", Value = "" }]; + transmission.Content.Title.Value = [new LocalizationDto { LanguageCode = "nb", Value = "" }]; + + var createDialogCommand = DialogGenerator.GenerateSimpleFakeDialog(); + createDialogCommand.Transmissions = [transmission]; + + // Act + var response = await Application.Send(createDialogCommand); + + // Assert + response.TryPickT2(out var validationError, out _).Should().BeTrue(); + validationError.Should().NotBeNull(); + validationError.Errors + .Count(e => e.PropertyName.Contains(nameof(createDialogCommand.Content))) + .Should() + .Be(2); + } } From 651ca62fdec02dec48b674b80acf52737036cf13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Mon, 30 Sep 2024 11:10:07 +0200 Subject: [PATCH 18/22] feat(GraphQL): Add DialogToken requirement for subscriptions (#1124) ## Description DialogEvents subscription now requires a valid DialogToken ## Related Issue(s) - #1104 ## Verification - [x] **Your** code builds clean without any errors or warnings - [ ] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable) ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Enhanced security for `dialogEvents` subscription with new authorization requirements. - Introduced `DialogTokenMiddleware` for handling JWT in requests. - Added methods to extract dialog ID from subscription operations. - New constant for dialog token issuer version introduced. - **Bug Fixes** - Improved authorization policies with added null checks and validations. - **Documentation** - Updated configuration settings for local development to enable authentication and adjust JWT generation settings. --------- Co-authored-by: Magnus Sandgren <5285192+MagnusSandgren@users.noreply.github.com> Co-authored-by: Knut Haug --- docs/schema/V1/schema.verified.graphql | 7 +- .../Common/ICompactJwsGenerator.cs | 3 +- .../V1/Common/Authorization/Constants.cs | 6 ++ .../Dialogs/Queries/Get/GetDialogQuery.cs | 3 +- .../Get/GetOauthAuthorizationServerQuery.cs | 6 +- .../AuthorizationOptionsSetup.cs | 16 +++- .../Authorization/AuthorizationPolicy.cs | 1 + .../Authorization/DialogTokenMiddleware.cs | 84 +++++++++++++++++++ .../AuthorizationHandlerContextExtensions.cs | 45 ++++++++++ .../EndUser/DialogById/Subscriptions.cs | 3 +- .../Program.cs | 1 + 11 files changed, 164 insertions(+), 11 deletions(-) create mode 100644 src/Digdir.Domain.Dialogporten.Application/Features/V1/Common/Authorization/Constants.cs create mode 100644 src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/DialogTokenMiddleware.cs create mode 100644 src/Digdir.Domain.Dialogporten.GraphQL/Common/Extensions/HotChocolate/AuthorizationHandlerContextExtensions.cs diff --git a/docs/schema/V1/schema.verified.graphql b/docs/schema/V1/schema.verified.graphql index 1eb3d865f..76293900a 100644 --- a/docs/schema/V1/schema.verified.graphql +++ b/docs/schema/V1/schema.verified.graphql @@ -211,8 +211,9 @@ type SeenLog { isCurrentEndUser: Boolean! } -type Subscriptions @authorize(policy: "enduser") { - dialogEvents(dialogId: UUID!): DialogEventPayload! +type Subscriptions { + "Requires a dialog token in the 'DigDir-Dialog-Token' header." + dialogEvents(dialogId: UUID!): DialogEventPayload! @authorize(policy: "enduserSubscription", apply: VALIDATION) } type Transmission { @@ -361,4 +362,4 @@ scalar DateTime @specifiedBy(url: "https:\/\/www.graphql-scalars.com\/date-time" scalar URL @specifiedBy(url: "https:\/\/tools.ietf.org\/html\/rfc3986") -scalar UUID @specifiedBy(url: "https:\/\/tools.ietf.org\/html\/rfc4122") \ No newline at end of file +scalar UUID @specifiedBy(url: "https:\/\/tools.ietf.org\/html\/rfc4122") diff --git a/src/Digdir.Domain.Dialogporten.Application/Common/ICompactJwsGenerator.cs b/src/Digdir.Domain.Dialogporten.Application/Common/ICompactJwsGenerator.cs index a33798425..6b1a69f38 100644 --- a/src/Digdir.Domain.Dialogporten.Application/Common/ICompactJwsGenerator.cs +++ b/src/Digdir.Domain.Dialogporten.Application/Common/ICompactJwsGenerator.cs @@ -22,12 +22,11 @@ public sealed class Ed25519Generator : ICompactJwsGenerator public Ed25519Generator(IOptions applicationSettings) { _applicationSettings = applicationSettings.Value; + InitSigningKey(); } public string GetCompactJws(Dictionary claims) { - InitSigningKey(); - var header = JsonSerializer.SerializeToUtf8Bytes(new { alg = "EdDSA", diff --git a/src/Digdir.Domain.Dialogporten.Application/Features/V1/Common/Authorization/Constants.cs b/src/Digdir.Domain.Dialogporten.Application/Features/V1/Common/Authorization/Constants.cs new file mode 100644 index 000000000..338147c5c --- /dev/null +++ b/src/Digdir.Domain.Dialogporten.Application/Features/V1/Common/Authorization/Constants.cs @@ -0,0 +1,6 @@ +namespace Digdir.Domain.Dialogporten.Application.Features.V1.Common.Authorization; + +public static class Constants +{ + public const string DialogTokenIssuerVersion = "/api/v1"; +} diff --git a/src/Digdir.Domain.Dialogporten.Application/Features/V1/EndUser/Dialogs/Queries/Get/GetDialogQuery.cs b/src/Digdir.Domain.Dialogporten.Application/Features/V1/EndUser/Dialogs/Queries/Get/GetDialogQuery.cs index d8d9b0336..7360f0707 100644 --- a/src/Digdir.Domain.Dialogporten.Application/Features/V1/EndUser/Dialogs/Queries/Get/GetDialogQuery.cs +++ b/src/Digdir.Domain.Dialogporten.Application/Features/V1/EndUser/Dialogs/Queries/Get/GetDialogQuery.cs @@ -9,6 +9,7 @@ using MediatR; using Microsoft.EntityFrameworkCore; using OneOf; +using static Digdir.Domain.Dialogporten.Application.Features.V1.Common.Authorization.Constants; namespace Digdir.Domain.Dialogporten.Application.Features.V1.EndUser.Dialogs.Queries.Get; @@ -134,7 +135,7 @@ public async Task Handle(GetDialogQuery request, CancellationTo dialogDto.DialogToken = _dialogTokenGenerator.GetDialogToken( dialog, authorizationResult, - "/api/v1" + DialogTokenIssuerVersion ); DecorateWithAuthorization(dialogDto, authorizationResult); diff --git a/src/Digdir.Domain.Dialogporten.Application/Features/V1/WellKnown/OauthAuthorizationServer/Queries/Get/GetOauthAuthorizationServerQuery.cs b/src/Digdir.Domain.Dialogporten.Application/Features/V1/WellKnown/OauthAuthorizationServer/Queries/Get/GetOauthAuthorizationServerQuery.cs index e8ee08a6e..cc3e8ba1c 100644 --- a/src/Digdir.Domain.Dialogporten.Application/Features/V1/WellKnown/OauthAuthorizationServer/Queries/Get/GetOauthAuthorizationServerQuery.cs +++ b/src/Digdir.Domain.Dialogporten.Application/Features/V1/WellKnown/OauthAuthorizationServer/Queries/Get/GetOauthAuthorizationServerQuery.cs @@ -1,5 +1,7 @@ -using MediatR; +using Digdir.Domain.Dialogporten.Application.Common.Authorization; +using MediatR; using Microsoft.Extensions.Options; +using Constants = Digdir.Domain.Dialogporten.Application.Features.V1.Common.Authorization.Constants; namespace Digdir.Domain.Dialogporten.Application.Features.V1.WellKnown.OauthAuthorizationServer.Queries.Get; @@ -17,7 +19,7 @@ public GetOauthAuthorizationServerQueryHandler( public async Task Handle(GetOauthAuthorizationServerQuery request, CancellationToken cancellationToken) { - var issuerUrl = _applicationSettings.Dialogporten.BaseUri.AbsoluteUri.TrimEnd('/') + "/api/v1"; + var issuerUrl = _applicationSettings.Dialogporten.BaseUri.AbsoluteUri.TrimEnd('/') + Constants.DialogTokenIssuerVersion; return await Task.FromResult(new GetOauthAuthorizationServerDto { Issuer = issuerUrl, diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationOptionsSetup.cs b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationOptionsSetup.cs index 3af13c46e..8785bd5c4 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationOptionsSetup.cs +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationOptionsSetup.cs @@ -1,5 +1,9 @@ -using Microsoft.AspNetCore.Authorization; +using Digdir.Domain.Dialogporten.Application.Common; +using Digdir.Domain.Dialogporten.Application.Common.Extensions; +using Digdir.Domain.Dialogporten.GraphQL.Common.Extensions.HotChocolate; +using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; +using AuthorizationOptions = Microsoft.AspNetCore.Authorization.AuthorizationOptions; namespace Digdir.Domain.Dialogporten.GraphQL.Common.Authorization; @@ -9,7 +13,7 @@ internal sealed class AuthorizationOptionsSetup : IConfigureOptions options) { - _options = options.Value; + _options = options?.Value ?? throw new ArgumentNullException(nameof(options)); } public void Configure(AuthorizationOptions options) @@ -41,5 +45,13 @@ public void Configure(AuthorizationOptions options) options.AddPolicy(AuthorizationPolicy.Testing, builder => builder .Combine(options.DefaultPolicy) .RequireScope(AuthorizationScope.Testing)); + + options.AddPolicy(AuthorizationPolicy.EndUserSubscription, policy => policy + .Combine(options.GetPolicy(AuthorizationPolicy.EndUser)!) + .RequireAssertion(context => + context.TryGetDialogEventsSubscriptionDialogId(out var dialogIdTopic) + && context.User.TryGetClaimValue(DialogTokenClaimTypes.DialogId, out var dialogIdClaimValue) + && Guid.TryParse(dialogIdClaimValue, out var dialogIdClaim) + && dialogIdTopic == dialogIdClaim)); } } diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationPolicy.cs b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationPolicy.cs index 9a227445a..1b0c35c75 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationPolicy.cs +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/AuthorizationPolicy.cs @@ -5,6 +5,7 @@ namespace Digdir.Domain.Dialogporten.GraphQL.Common.Authorization; internal static class AuthorizationPolicy { public const string EndUser = "enduser"; + public const string EndUserSubscription = "enduserSubscription"; public const string ServiceProvider = "serviceprovider"; public const string ServiceProviderSearch = "serviceproviderSearch"; public const string Testing = "testing"; diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/DialogTokenMiddleware.cs b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/DialogTokenMiddleware.cs new file mode 100644 index 000000000..084857991 --- /dev/null +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Authorization/DialogTokenMiddleware.cs @@ -0,0 +1,84 @@ +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using Digdir.Domain.Dialogporten.Application; +using Digdir.Domain.Dialogporten.Application.Common; +using Microsoft.Extensions.Options; +using Microsoft.IdentityModel.Tokens; +using NSec.Cryptography; +using static Digdir.Domain.Dialogporten.Application.Features.V1.Common.Authorization.Constants; + +namespace Digdir.Domain.Dialogporten.GraphQL.Common.Authorization; + +public sealed class DialogTokenMiddleware +{ + public const string DialogTokenHeader = "DigDir-Dialog-Token"; + private readonly RequestDelegate _next; + private readonly PublicKey _publicKey; + private readonly string _issuer; + + public DialogTokenMiddleware(RequestDelegate next, IOptions applicationSettings) + { + _next = next; + + var keyPair = applicationSettings.Value.Dialogporten.Ed25519KeyPairs.Primary; + _publicKey = PublicKey.Import(SignatureAlgorithm.Ed25519, + Base64Url.Decode(keyPair.PublicComponent), KeyBlobFormat.RawPublicKey); + _issuer = applicationSettings.Value.Dialogporten.BaseUri.AbsoluteUri.TrimEnd('/') + DialogTokenIssuerVersion; + } + + public Task InvokeAsync(HttpContext context) + { + if (!context.Request.Headers.TryGetValue(DialogTokenHeader, out var dialogToken)) + { + return _next(context); + } + + var token = dialogToken.FirstOrDefault(); + var tokenHandler = new JwtSecurityTokenHandler(); + try + { + tokenHandler.ValidateToken(token, new TokenValidationParameters + { + ValidateAudience = false, + ValidIssuer = _issuer, + SignatureValidator = ValidateSignature + }, out var securityToken); + + if (securityToken is not JwtSecurityToken jwt) + { + return _next(context); + } + + var dialogIdClaim = jwt.Claims.FirstOrDefault(x => x.Type == DialogTokenClaimTypes.DialogId); + if (dialogIdClaim is null) + { + return _next(context); + } + + context.User.AddIdentity(new ClaimsIdentity([dialogIdClaim])); + + return _next(context); + } + catch (Exception) + { + return _next(context); + } + } + + private JwtSecurityToken ValidateSignature(string encodedToken, object _) + { + var jwt = new JwtSecurityToken(encodedToken); + + var signature = Base64Url.Decode(jwt.RawSignature); + var signatureIsValid = SignatureAlgorithm.Ed25519 + .Verify(_publicKey, Encoding.UTF8.GetBytes(jwt.EncodedHeader + '.' + jwt.EncodedPayload), signature); + + if (signatureIsValid) + { + return jwt; + } + + throw new SecurityTokenInvalidSignatureException("Invalid token signature."); + } +} diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Common/Extensions/HotChocolate/AuthorizationHandlerContextExtensions.cs b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Extensions/HotChocolate/AuthorizationHandlerContextExtensions.cs new file mode 100644 index 000000000..8e99f03d4 --- /dev/null +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Common/Extensions/HotChocolate/AuthorizationHandlerContextExtensions.cs @@ -0,0 +1,45 @@ +using Digdir.Domain.Dialogporten.GraphQL.EndUser.DialogById; +using HotChocolate.Authorization; +using HotChocolate.Language; +using Microsoft.AspNetCore.Authorization; + +namespace Digdir.Domain.Dialogporten.GraphQL.Common.Extensions.HotChocolate; + +public static class AuthorizationHandlerContextExtensions +{ + private const string DialogIdArgumentName = "dialogId"; + private const string DialogEventsFieldName = nameof(Subscriptions.DialogEvents); + + /// + /// Attempts to extract the dialog ID from a DialogEvents subscription operation. + /// + /// The authorization handler context + /// When this method returns, contains the extracted dialog ID if found; otherwise, Guid.Empty. + /// True if the dialog ID was successfully extracted; otherwise, false. + public static bool TryGetDialogEventsSubscriptionDialogId(this AuthorizationHandlerContext context, out Guid dialogId) + { + dialogId = Guid.Empty; + + if (context.Resource is not AuthorizationContext authContext) return false; + + if (authContext.Document.Definitions.Count == 0) return false; + + var definition = authContext.Document.Definitions[0]; + + if (definition is not OperationDefinitionNode operationDefinition) return false; + + if (operationDefinition.Operation != OperationType.Subscription) return false; + + var dialogEventsSelection = operationDefinition.SelectionSet.Selections.FirstOrDefault(x => + x is FieldNode fieldNode && fieldNode.Name.Value + .Equals(DialogEventsFieldName, StringComparison.OrdinalIgnoreCase)); + + if (dialogEventsSelection is not FieldNode fieldNode) return false; + + var dialogIdArgument = fieldNode.Arguments.FirstOrDefault(x => x.Name.Value.Equals(DialogIdArgumentName, StringComparison.OrdinalIgnoreCase)); + + if (dialogIdArgument?.Value.Value is null) return false; + + return Guid.TryParse(dialogIdArgument.Value.Value.ToString(), out dialogId); + } +} diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/EndUser/DialogById/Subscriptions.cs b/src/Digdir.Domain.Dialogporten.GraphQL/EndUser/DialogById/Subscriptions.cs index 9cd836902..fa15ac5cb 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/EndUser/DialogById/Subscriptions.cs +++ b/src/Digdir.Domain.Dialogporten.GraphQL/EndUser/DialogById/Subscriptions.cs @@ -6,10 +6,11 @@ namespace Digdir.Domain.Dialogporten.GraphQL.EndUser.DialogById; -[Authorize(Policy = AuthorizationPolicy.EndUser)] public sealed class Subscriptions { [Subscribe] + [Authorize(AuthorizationPolicy.EndUserSubscription, ApplyPolicy.Validation)] + [GraphQLDescription($"Requires a dialog token in the '{DialogTokenMiddleware.DialogTokenHeader}' header.")] [Topic($"{Constants.DialogEventsTopic}{{{nameof(dialogId)}}}")] public DialogEventPayload DialogEvents(Guid dialogId, [EventMessage] DialogEventPayload eventMessage) diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Program.cs b/src/Digdir.Domain.Dialogporten.GraphQL/Program.cs index bc73a3cf4..e85ab7ac3 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/Program.cs +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Program.cs @@ -100,6 +100,7 @@ static void BuildAndRun(string[] args) app.UseJwtSchemeSelector() .UseAuthentication() .UseAuthorization() + .UseMiddleware() .UseSerilogRequestLogging() .UseAzureConfiguration(); From d79ca2f7ff46ec9af7a52c2b3348b28df203aaa8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 11:12:59 +0200 Subject: [PATCH 19/22] chore(deps): update dotnet monorepo (#1201) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mcr.microsoft.com/dotnet/aspnet](https://redirect.github.com/dotnet/aspnetcore) | stage | digest | `e935e34` -> `30d8619` | | [mcr.microsoft.com/dotnet/sdk](https://redirect.github.com/dotnet/sdk) | final | digest | `b6333c0` -> `df188b6` | --- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Sunday,before 7am on Wednesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile | 4 ++-- src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile | 4 ++-- .../MigrationBundle.dockerfile | 4 ++-- src/Digdir.Domain.Dialogporten.Janitor/Dockerfile | 4 ++-- src/Digdir.Domain.Dialogporten.Service/Dockerfile | 4 ++-- src/Digdir.Domain.Dialogporten.WebApi/Dockerfile | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile b/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile index 29c6c23bb..3555498e1 100644 --- a/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.ChangeDataCapture/Dockerfile @@ -1,7 +1,7 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:30d8619d9a4f68508d9b17fc2088e857e629d3f9ceaaf57c22d6747f7326d89e AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:df188b6cb642450d83d3d857a992bbbef248212fd456dcb9ae582ddd1bb96dce AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile b/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile index c744a48cb..300fc4122 100644 --- a/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.GraphQL/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:30d8619d9a4f68508d9b17fc2088e857e629d3f9ceaaf57c22d6747f7326d89e AS base WORKDIR /app EXPOSE 8080 -FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:df188b6cb642450d83d3d857a992bbbef248212fd456dcb9ae582ddd1bb96dce AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile b/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile index ca1227908..6bb9c743b 100644 --- a/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile +++ b/src/Digdir.Domain.Dialogporten.Infrastructure/MigrationBundle.dockerfile @@ -1,7 +1,7 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:30d8619d9a4f68508d9b17fc2088e857e629d3f9ceaaf57c22d6747f7326d89e AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:df188b6cb642450d83d3d857a992bbbef248212fd456dcb9ae582ddd1bb96dce AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile b/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile index b46233015..ddd341e5a 100644 --- a/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.Janitor/Dockerfile @@ -1,7 +1,7 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:30d8619d9a4f68508d9b17fc2088e857e629d3f9ceaaf57c22d6747f7326d89e AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:df188b6cb642450d83d3d857a992bbbef248212fd456dcb9ae582ddd1bb96dce AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.Service/Dockerfile b/src/Digdir.Domain.Dialogporten.Service/Dockerfile index a38fb9247..961e27fbb 100644 --- a/src/Digdir.Domain.Dialogporten.Service/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.Service/Dockerfile @@ -1,7 +1,7 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:30d8619d9a4f68508d9b17fc2088e857e629d3f9ceaaf57c22d6747f7326d89e AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:df188b6cb642450d83d3d857a992bbbef248212fd456dcb9ae582ddd1bb96dce AS build WORKDIR /src COPY [".editorconfig", "."] diff --git a/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile b/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile index 04d9c5547..a64fbfb97 100644 --- a/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile +++ b/src/Digdir.Domain.Dialogporten.WebApi/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:e935e3424c1043dad7f904240d767c76e0c32a3c9a8bf661c32eac6f29f5ea73 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0.8@sha256:30d8619d9a4f68508d9b17fc2088e857e629d3f9ceaaf57c22d6747f7326d89e AS base WORKDIR /app EXPOSE 8080 -FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:b6333c015432da2dd392b8a865bba4e76e9d39d105d65e72b485cf92bcf71316 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0.402@sha256:df188b6cb642450d83d3d857a992bbbef248212fd456dcb9ae582ddd1bb96dce AS build WORKDIR /src COPY [".editorconfig", "."] From 7ada6a69e63f4fd61ec220c4a6c4afae5831f66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20J=C3=B8rgen=20Skogstad?= Date: Mon, 30 Sep 2024 12:09:24 +0200 Subject: [PATCH 20/22] chore: Install jq if missing in revision check (#1204) https://github.com/Azure/azure-cli/issues/29830 jq was removed when they switched base image on the az cli ## Summary by CodeRabbit - **Chores** - Improved the `revisionVerifier.sh` script to check for the `jq` tool and attempt installation if missing. - Enhanced script readability by removing unnecessary blank lines. --- .github/tools/revisionVerifier.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/tools/revisionVerifier.sh b/.github/tools/revisionVerifier.sh index 632296d9d..90be69f48 100755 --- a/.github/tools/revisionVerifier.sh +++ b/.github/tools/revisionVerifier.sh @@ -1,3 +1,9 @@ +if ! command -v jq 2>&1 >/dev/null +then + echo "jq could not be found, attempting to install from tdnf ..." + tdnf install -y jq +fi + if [ -z "$1" ]; then echo "Usage: $0 " exit 1 @@ -14,10 +20,10 @@ query_filter="{name:name, runningState:properties.runningState, healthState:prop verify_revision() { local json_output - + # Fetch app revision json_output=$(az containerapp revision show -g "$resource_group" --revision "$revision_name" --query "$query_filter" 2>/dev/null) - + health_state=$(echo $json_output | jq -r '.healthState') running_state=$(echo $json_output | jq -r '.runningState') @@ -26,7 +32,7 @@ verify_revision() { echo "Health state: $health_state" echo "Running state: $running_state" echo " " - + # Check health and running status if [[ $health_state == "Healthy" && ($running_state == "Running" || $running_state == "RunningAtMaxScale") ]]; then return 0 # OK! @@ -47,4 +53,4 @@ while true; do sleep 10 # Sleep for 10 seconds attempt=$((attempt+1)) fi -done \ No newline at end of file +done From 69d848a37f07a82bb86a5ab1fa9f9f56597007f7 Mon Sep 17 00:00:00 2001 From: Dialogporten Automation Bot <164321870+dialogporten-bot@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:19:13 +0200 Subject: [PATCH 21/22] chore(main): release 1.20.0 (#1203) :robot: I have created a release *beep* *boop* --- ## [1.20.0](https://github.com/digdir/dialogporten/compare/v1.19.0...v1.20.0) (2024-09-30) ### Features * **GraphQL:** Add DialogToken requirement for subscriptions ([#1124](https://github.com/digdir/dialogporten/issues/1124)) ([651ca62](https://github.com/digdir/dialogporten/commit/651ca62fdec02dec48b674b80acf52737036cf13)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: Are Almaas --- CHANGELOG.md | 7 +++++++ version.txt | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7ef69dcf..f2b34ce2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.20.0](https://github.com/digdir/dialogporten/compare/v1.19.0...v1.20.0) (2024-09-30) + + +### Features + +* **GraphQL:** Add DialogToken requirement for subscriptions ([#1124](https://github.com/digdir/dialogporten/issues/1124)) ([651ca62](https://github.com/digdir/dialogporten/commit/651ca62fdec02dec48b674b80acf52737036cf13)) + ## [1.19.0](https://github.com/digdir/dialogporten/compare/v1.18.1...v1.19.0) (2024-09-24) diff --git a/version.txt b/version.txt index 815d5ca06..398935591 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.19.0 +1.20.0 From 28a9c8bfef43c81d399681b8d69b493c146bf012 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:21:34 +0200 Subject: [PATCH 22/22] chore(deps): update dependency vitest to v2.1.1 (#1205) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`2.0.4` -> `2.1.1`](https://renovatebot.com/diffs/npm/vitest/2.0.4/2.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.0.4/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.0.4/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
vitest-dev/vitest (vitest) ### [`v2.1.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.1.1) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1) #####    🐞 Bug Fixes - **browser**: - Make example test callbacks async  -  by [@​aqandrew](https://redirect.github.com/aqandrew) in [https://github.com/vitest-dev/vitest/issues/6484](https://redirect.github.com/vitest-dev/vitest/issues/6484) [(16aa7)](https://redirect.github.com/vitest-dev/vitest/commit/16aa76c2) - Optimize vitest-browser-vue correctly  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6490](https://redirect.github.com/vitest-dev/vitest/issues/6490) [(5cbb0)](https://redirect.github.com/vitest-dev/vitest/commit/5cbb0bba) - **workspace**: - Resolve glob pattern once to avoid name collision  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6489](https://redirect.github.com/vitest-dev/vitest/issues/6489) [(36b5a)](https://redirect.github.com/vitest-dev/vitest/commit/36b5aceb) #####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1) ### [`v2.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.1.0) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0) This release makes another big change to the Browser Mode by introducing [locators API](https://vitest.dev/guide/browser/locators.html): ```ts test('renders blog posts', async () => { const screen = page.render() await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument() const [firstPost] = screen.getByRole('listitem').all() await firstPost.getByRole('button', { name: 'Delete' }).click() expect(screen.getByRole('listitem').all()).toHaveLength(3) }) ``` You can use either [vitest-browser-vue](https://redirect.github.com/vitest-dev/vitest-browser-vue), [vitest-browser-svelte ](https://redirect.github.com/vitest-dev/vitest-browser-svelte) or [vitest-browser-react](https://redirect.github.com/vitest-dev/vitest-browser-react) to render components and make assertions using locators. Locators are also available on the `page` object from `@vitest/browser/context`. #####    🚀 Features - **api**: - Make spec into a class instead of a tuple  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6355](https://redirect.github.com/vitest-dev/vitest/issues/6355) [(874a1)](https://redirect.github.com/vitest-dev/vitest/commit/874a121e) - **browser**: - Move page.config to server.config, add more docs  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6252](https://redirect.github.com/vitest-dev/vitest/issues/6252) [(af2b8)](https://redirect.github.com/vitest-dev/vitest/commit/af2b813c) - Make iframe scalable, improve documentation  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6257](https://redirect.github.com/vitest-dev/vitest/issues/6257) [(74ca1)](https://redirect.github.com/vitest-dev/vitest/commit/74ca11a4) - Introduce built-in locators  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6084](https://redirect.github.com/vitest-dev/vitest/issues/6084) [(3347f)](https://redirect.github.com/vitest-dev/vitest/commit/3347f83e) - Support v8 coverage  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6273](https://redirect.github.com/vitest-dev/vitest/issues/6273) [(34199)](https://redirect.github.com/vitest-dev/vitest/commit/34199bdf) - Support `userEvent.upload` in playwright provider  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6442](https://redirect.github.com/vitest-dev/vitest/issues/6442) [(cf148)](https://redirect.github.com/vitest-dev/vitest/commit/cf148645) - Support `--inspect`  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6433](https://redirect.github.com/vitest-dev/vitest/issues/6433) [(0499a)](https://redirect.github.com/vitest-dev/vitest/commit/0499a315) - Support `--inspect-brk`  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6434](https://redirect.github.com/vitest-dev/vitest/issues/6434) [(7ab0f)](https://redirect.github.com/vitest-dev/vitest/commit/7ab0f4a8) - **cli**: - Extend existing list command to output only a list of file names  -  by [@​Ma-hawaj](https://redirect.github.com/Ma-hawaj) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6392](https://redirect.github.com/vitest-dev/vitest/issues/6392) [(008f0)](https://redirect.github.com/vitest-dev/vitest/commit/008f00b2) - **coverage**: - Add `--exclude-after-remap`  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6309](https://redirect.github.com/vitest-dev/vitest/issues/6309) [(5932a)](https://redirect.github.com/vitest-dev/vitest/commit/5932a7f9) - **mocker**: - Introduce [@​vitest/mocker](https://redirect.github.com/vitest/mocker) package, allow `{ spy: true }` instead of a factory  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6289](https://redirect.github.com/vitest-dev/vitest/issues/6289) [(95f02)](https://redirect.github.com/vitest-dev/vitest/commit/95f0203f) - **vitest**: - Add "provide" option  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6253](https://redirect.github.com/vitest-dev/vitest/issues/6253) [(4409d)](https://redirect.github.com/vitest-dev/vitest/commit/4409d779) - Add return type and promisable mockFactory  -  by [@​syi0808](https://redirect.github.com/syi0808) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6139](https://redirect.github.com/vitest-dev/vitest/issues/6139) [(f5e0b)](https://redirect.github.com/vitest-dev/vitest/commit/f5e0b987) - Add `vi.advanceTimersToNextFrame`  -  by [@​bnjm](https://redirect.github.com/bnjm) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6347](https://redirect.github.com/vitest-dev/vitest/issues/6347) [(8ff63)](https://redirect.github.com/vitest-dev/vitest/commit/8ff63560) - Allow env to be stubbed to undefined  -  by [@​JSanchezIO](https://redirect.github.com/JSanchezIO) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6359](https://redirect.github.com/vitest-dev/vitest/issues/6359) [(c3b27)](https://redirect.github.com/vitest-dev/vitest/commit/c3b2757c) #####    🐞 Bug Fixes - Correctly resolve nested mocks with `index` file  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6266](https://redirect.github.com/vitest-dev/vitest/issues/6266) [(081cf)](https://redirect.github.com/vitest-dev/vitest/commit/081cfe03) - Don't panic when coverage.reporter is a string  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6267](https://redirect.github.com/vitest-dev/vitest/issues/6267) [(7b37d)](https://redirect.github.com/vitest-dev/vitest/commit/7b37d27b) - Align RawMatcherFn type definition with Jest  -  by [@​wheresrhys](https://redirect.github.com/wheresrhys) in [https://github.com/vitest-dev/vitest/issues/6351](https://redirect.github.com/vitest-dev/vitest/issues/6351) [(d09f0)](https://redirect.github.com/vitest-dev/vitest/commit/d09f00c7) - Cjs build of vite node server  -  by [@​AkaraChen](https://redirect.github.com/AkaraChen) in [https://github.com/vitest-dev/vitest/issues/6389](https://redirect.github.com/vitest-dev/vitest/issues/6389) [(12e70)](https://redirect.github.com/vitest-dev/vitest/commit/12e702bd) - Allow inlining vite's cached dependencies  -  by [@​chriswheeldon-peakon](https://redirect.github.com/chriswheeldon-peakon) in [https://github.com/vitest-dev/vitest/issues/6284](https://redirect.github.com/vitest-dev/vitest/issues/6284) [(03208)](https://redirect.github.com/vitest-dev/vitest/commit/03208017) - Print unexpected error message if peer dependencies have a different version  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6446](https://redirect.github.com/vitest-dev/vitest/issues/6446) [(b992b)](https://redirect.github.com/vitest-dev/vitest/commit/b992b346) - Ignore importer when resolving Vitest  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6469](https://redirect.github.com/vitest-dev/vitest/issues/6469) [(0b447)](https://redirect.github.com/vitest-dev/vitest/commit/0b447226) - `expect.getState().testPath` always returns correct path  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6472](https://redirect.github.com/vitest-dev/vitest/issues/6472) [(ac698)](https://redirect.github.com/vitest-dev/vitest/commit/ac698b1c) - UserEvent works consistently between providers  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6480](https://redirect.github.com/vitest-dev/vitest/issues/6480) [(0b4da)](https://redirect.github.com/vitest-dev/vitest/commit/0b4da69e) - **browser**: - Print correct stack trace for unhandled errors  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6134](https://redirect.github.com/vitest-dev/vitest/issues/6134) [(1da6c)](https://redirect.github.com/vitest-dev/vitest/commit/1da6cebe) - Use documentElement as the root for selector  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) [(d8077)](https://redirect.github.com/vitest-dev/vitest/commit/d807767f) - Keep querying elements even if locator is created with elementLocator, add pubic @​vitest/browser/utils  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6296](https://redirect.github.com/vitest-dev/vitest/issues/6296) [(30dc5)](https://redirect.github.com/vitest-dev/vitest/commit/30dc5793) - Produce valid config file if preview provider is used  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6305](https://redirect.github.com/vitest-dev/vitest/issues/6305) [(7f0ae)](https://redirect.github.com/vitest-dev/vitest/commit/7f0ae292) - Correctly run in-source tests in the browser  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6440](https://redirect.github.com/vitest-dev/vitest/issues/6440) [(c8531)](https://redirect.github.com/vitest-dev/vitest/commit/c853126e) - Exclude missed packages from optimization, print help message  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6445](https://redirect.github.com/vitest-dev/vitest/issues/6445) [(8d883)](https://redirect.github.com/vitest-dev/vitest/commit/8d883cf0) - Define mocker as a dependency  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6476](https://redirect.github.com/vitest-dev/vitest/issues/6476) [(9560a)](https://redirect.github.com/vitest-dev/vitest/commit/9560ab7f) - **coverage**: - Warn if `vitest` and `@vitest/*` versions don't match  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6317](https://redirect.github.com/vitest-dev/vitest/issues/6317) [(e662c)](https://redirect.github.com/vitest-dev/vitest/commit/e662c7b2) - V8 to support source maps with multiple sources  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6120](https://redirect.github.com/vitest-dev/vitest/issues/6120) [(1f6cb)](https://redirect.github.com/vitest-dev/vitest/commit/1f6cb59f) - V8 to warn instead of crash when conversion fails  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6318](https://redirect.github.com/vitest-dev/vitest/issues/6318) [(91dea)](https://redirect.github.com/vitest-dev/vitest/commit/91dea8c1) - Use project specific `vitenode` for uncovered files  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6044](https://redirect.github.com/vitest-dev/vitest/issues/6044) [(da52d)](https://redirect.github.com/vitest-dev/vitest/commit/da52d23f) - **runner**: - Use `performance.now` instead of `Date.now` for duration  -  by [@​LuciNyan](https://redirect.github.com/LuciNyan) in [https://github.com/vitest-dev/vitest/issues/6382](https://redirect.github.com/vitest-dev/vitest/issues/6382) [(fe489)](https://redirect.github.com/vitest-dev/vitest/commit/fe489432) - Async assertion auto await should timeout  -  by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6391](https://redirect.github.com/vitest-dev/vitest/issues/6391) [(ad6e7)](https://redirect.github.com/vitest-dev/vitest/commit/ad6e72fc) - **snapshot**: - Reject multiple `toMatchInlineSnapshot` updates at the same location  -  by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6332](https://redirect.github.com/vitest-dev/vitest/issues/6332) [(1606f)](https://redirect.github.com/vitest-dev/vitest/commit/1606f34f) - Improve inline snapshot inside loop rejection  -  by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6339](https://redirect.github.com/vitest-dev/vitest/issues/6339) [(e0368)](https://redirect.github.com/vitest-dev/vitest/commit/e03683c5) - **typecheck**: - Run both runtime and typecheck tests if `typecheck.include` overlaps with `include`  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6256](https://redirect.github.com/vitest-dev/vitest/issues/6256) [(153ff)](https://redirect.github.com/vitest-dev/vitest/commit/153ff01b) - **types**: - Allow Callbacks Passed to before\*/after\* to Return Anything  -  by [@​LuciNyan](https://redirect.github.com/LuciNyan) in [https://github.com/vitest-dev/vitest/issues/6393](https://redirect.github.com/vitest-dev/vitest/issues/6393) [(f6217)](https://redirect.github.com/vitest-dev/vitest/commit/f6217a22) - **ui**: - Remove "filters" flickering  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6463](https://redirect.github.com/vitest-dev/vitest/issues/6463) [(0223b)](https://redirect.github.com/vitest-dev/vitest/commit/0223bb79) - Render project name consistently  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6329](https://redirect.github.com/vitest-dev/vitest/issues/6329) [(94a18)](https://redirect.github.com/vitest-dev/vitest/commit/94a186ec) - **vite-node**: - Disable watcher if hmr is disabled  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6251](https://redirect.github.com/vitest-dev/vitest/issues/6251) [(c51c6)](https://redirect.github.com/vitest-dev/vitest/commit/c51c67aa) - Fix watch on vite 6  -  by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6422](https://redirect.github.com/vitest-dev/vitest/issues/6422) [(c3ac4)](https://redirect.github.com/vitest-dev/vitest/commit/c3ac43c1) - **vitest**: - Update json reporter output  -  by [@​Emiyaaaaa](https://redirect.github.com/Emiyaaaaa) in [https://github.com/vitest-dev/vitest/issues/6064](https://redirect.github.com/vitest-dev/vitest/issues/6064) [(c9979)](https://redirect.github.com/vitest-dev/vitest/commit/c997937b) - Add more type guards for --merge-reports  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6307](https://redirect.github.com/vitest-dev/vitest/issues/6307) [(0a5d8)](https://redirect.github.com/vitest-dev/vitest/commit/0a5d8169) - Always resolve vitest to the root version  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6369](https://redirect.github.com/vitest-dev/vitest/issues/6369) [(163d7)](https://redirect.github.com/vitest-dev/vitest/commit/163d7624) - Dispose vmForks listeners to avoid memory leak  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6448](https://redirect.github.com/vitest-dev/vitest/issues/6448) [(2673c)](https://redirect.github.com/vitest-dev/vitest/commit/2673c3bb) - **workspace**: - Correctly resolve workspace globs and file paths  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6316](https://redirect.github.com/vitest-dev/vitest/issues/6316) [(afdcb)](https://redirect.github.com/vitest-dev/vitest/commit/afdcb8f2) #####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0) ### [`v2.0.5`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.0.5) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.4...v2.0.5) #####    🚀 Features - Introduce experimental reported tasks  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6149](https://redirect.github.com/vitest-dev/vitest/issues/6149) [(13d85)](https://redirect.github.com/vitest-dev/vitest/commit/13d85bd1) - This is part of the experimental API and doesn't follow semver. We are hoping to stabilize it for 2.1. If you are working with custom reporters, give this a go! #####    🐞 Bug Fixes - Show a difference between string characters if both values are strings  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6191](https://redirect.github.com/vitest-dev/vitest/issues/6191) [(29176)](https://redirect.github.com/vitest-dev/vitest/commit/291766d7) - `testNamePattern` adds leading space  -  by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6186](https://redirect.github.com/vitest-dev/vitest/issues/6186) [(073a5)](https://redirect.github.com/vitest-dev/vitest/commit/073a50c9) - **browser**: - Don't bundle `afterEach` cleanup hooks in node entrypoint  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6192](https://redirect.github.com/vitest-dev/vitest/issues/6192) [(e6fbc)](https://redirect.github.com/vitest-dev/vitest/commit/e6fbc620) - UserEvent.setup initiates a separate state for userEvent instance  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6088](https://redirect.github.com/vitest-dev/vitest/issues/6088) [(883f3)](https://redirect.github.com/vitest-dev/vitest/commit/883f3482) - Correctly import optimized module in vi.importActual  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6219](https://redirect.github.com/vitest-dev/vitest/issues/6219) [(804ff)](https://redirect.github.com/vitest-dev/vitest/commit/804ff2fd) - Passing options to hover/unhover  -  by [@​MNeverOff](https://redirect.github.com/MNeverOff) in [https://github.com/vitest-dev/vitest/issues/6175](https://redirect.github.com/vitest-dev/vitest/issues/6175) [(d4c00)](https://redirect.github.com/vitest-dev/vitest/commit/d4c005bc) - Improve unique CSS selector generation  -  by [@​zacharyvoase](https://redirect.github.com/zacharyvoase) and **Zack Voase** in [https://github.com/vitest-dev/vitest/issues/6243](https://redirect.github.com/vitest-dev/vitest/issues/6243) [(e7acd)](https://redirect.github.com/vitest-dev/vitest/commit/e7acd0cf) - **vitest**: - Remove nuxt from auto inline deps  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) [(93882)](https://redirect.github.com/vitest-dev/vitest/commit/93882f38) - Improve `defineProject` and `defineWorkspace` types  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6198](https://redirect.github.com/vitest-dev/vitest/issues/6198) [(8cd82)](https://redirect.github.com/vitest-dev/vitest/commit/8cd8272b) - Correctly resolve mocked `node:*` imports in `__mocks__` folder  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6204](https://redirect.github.com/vitest-dev/vitest/issues/6204) [(a48be)](https://redirect.github.com/vitest-dev/vitest/commit/a48be6ff) - **web-worker**: - Expose globals on self  -  by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6170](https://redirect.github.com/vitest-dev/vitest/issues/6170) [(12bb5)](https://redirect.github.com/vitest-dev/vitest/commit/12bb567e) #####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.4...v2.0.5)
--- ### Configuration 📅 **Schedule**: Branch creation - "every 3 months" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/digdir/dialogporten). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/schema/V1/package-lock.json | 368 +++++++++---------------------- docs/schema/V1/package.json | 2 +- 2 files changed, 111 insertions(+), 259 deletions(-) diff --git a/docs/schema/V1/package-lock.json b/docs/schema/V1/package-lock.json index afb3cd271..9173b46af 100644 --- a/docs/schema/V1/package-lock.json +++ b/docs/schema/V1/package-lock.json @@ -11,25 +11,12 @@ "devDependencies": { "glob": "11.0.0", "graphql-tag": "2.12.6", - "vitest": "2.0.4" + "vitest": "2.1.1" }, "engines": { "node": "20" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -415,54 +402,12 @@ "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -688,13 +633,14 @@ "dev": true }, "node_modules/@vitest/expect": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.4.tgz", - "integrity": "sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.1.tgz", + "integrity": "sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==", "dev": true, + "license": "MIT", "dependencies": { - "@vitest/spy": "2.0.4", - "@vitest/utils": "2.0.4", + "@vitest/spy": "2.1.1", + "@vitest/utils": "2.1.1", "chai": "^5.1.1", "tinyrainbow": "^1.2.0" }, @@ -702,11 +648,40 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/mocker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.1.tgz", + "integrity": "sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "^2.1.0-beta.1", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.11" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/spy": "2.1.1", + "msw": "^2.3.5", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, "node_modules/@vitest/pretty-format": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.4.tgz", - "integrity": "sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.1.tgz", + "integrity": "sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==", "dev": true, + "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" }, @@ -715,12 +690,13 @@ } }, "node_modules/@vitest/runner": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.4.tgz", - "integrity": "sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.1.tgz", + "integrity": "sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==", "dev": true, + "license": "MIT", "dependencies": { - "@vitest/utils": "2.0.4", + "@vitest/utils": "2.1.1", "pathe": "^1.1.2" }, "funding": { @@ -728,13 +704,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.4.tgz", - "integrity": "sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.1.tgz", + "integrity": "sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==", "dev": true, + "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.0.4", - "magic-string": "^0.30.10", + "@vitest/pretty-format": "2.1.1", + "magic-string": "^0.30.11", "pathe": "^1.1.2" }, "funding": { @@ -742,10 +719,11 @@ } }, "node_modules/@vitest/spy": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.4.tgz", - "integrity": "sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.1.tgz", + "integrity": "sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^3.0.0" }, @@ -754,13 +732,13 @@ } }, "node_modules/@vitest/utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.4.tgz", - "integrity": "sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.1.tgz", + "integrity": "sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==", "dev": true, + "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.0.4", - "estree-walker": "^3.0.3", + "@vitest/pretty-format": "2.1.1", "loupe": "^3.1.1", "tinyrainbow": "^1.2.0" }, @@ -884,12 +862,13 @@ } }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -968,30 +947,6 @@ "@types/estree": "^1.0.0" } }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/foreground-child": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", @@ -1032,19 +987,6 @@ "node": "*" } }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/glob": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", @@ -1095,16 +1037,6 @@ "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -1114,19 +1046,6 @@ "node": ">=8" } }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1171,32 +1090,13 @@ } }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/minimatch": { @@ -1224,10 +1124,11 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.7", @@ -1247,51 +1148,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", @@ -1571,23 +1427,17 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/tinybench": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", - "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "node_modules/tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", "dev": true, "license": "MIT" }, @@ -1610,10 +1460,11 @@ } }, "node_modules/tinyspy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.0.tgz", - "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -1685,15 +1536,15 @@ } }, "node_modules/vite-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.4.tgz", - "integrity": "sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.1.tgz", + "integrity": "sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.5", + "debug": "^4.3.6", "pathe": "^1.1.2", - "tinyrainbow": "^1.2.0", "vite": "^5.0.0" }, "bin": { @@ -1707,29 +1558,30 @@ } }, "node_modules/vitest": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.4.tgz", - "integrity": "sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.1.tgz", + "integrity": "sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==", "dev": true, + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@vitest/expect": "2.0.4", - "@vitest/pretty-format": "^2.0.4", - "@vitest/runner": "2.0.4", - "@vitest/snapshot": "2.0.4", - "@vitest/spy": "2.0.4", - "@vitest/utils": "2.0.4", + "@vitest/expect": "2.1.1", + "@vitest/mocker": "2.1.1", + "@vitest/pretty-format": "^2.1.1", + "@vitest/runner": "2.1.1", + "@vitest/snapshot": "2.1.1", + "@vitest/spy": "2.1.1", + "@vitest/utils": "2.1.1", "chai": "^5.1.1", - "debug": "^4.3.5", - "execa": "^8.0.1", - "magic-string": "^0.30.10", + "debug": "^4.3.6", + "magic-string": "^0.30.11", "pathe": "^1.1.2", "std-env": "^3.7.0", - "tinybench": "^2.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.0", "tinypool": "^1.0.0", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "2.0.4", + "vite-node": "2.1.1", "why-is-node-running": "^2.3.0" }, "bin": { @@ -1744,8 +1596,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.0.4", - "@vitest/ui": "2.0.4", + "@vitest/browser": "2.1.1", + "@vitest/ui": "2.1.1", "happy-dom": "*", "jsdom": "*" }, diff --git a/docs/schema/V1/package.json b/docs/schema/V1/package.json index a57335917..161336085 100644 --- a/docs/schema/V1/package.json +++ b/docs/schema/V1/package.json @@ -16,7 +16,7 @@ "test": "npm run build && vitest run --test-timeout=10000" }, "devDependencies": { - "vitest": "2.0.4", + "vitest": "2.1.1", "glob": "11.0.0", "graphql-tag": "2.12.6" },