diff --git a/docs/modules/ROOT/pages/changelog.adoc b/docs/modules/ROOT/pages/changelog.adoc
index a814bef..7415add 100644
--- a/docs/modules/ROOT/pages/changelog.adoc
+++ b/docs/modules/ROOT/pages/changelog.adoc
@@ -20,6 +20,11 @@ the link to the GitHub tag is only added once we are ready to release.
:github-issue: https://github.com/peopleware/net-ppwcode-aspnetcore-host/issues/
+:release: 2.0.0
+== `{release}`
+include::partial$changelog-release-section.adoc[]
+include::partial$changelog-{release}.adoc[]
+
:release: 1.0.0
== `{release}`
include::partial$changelog-release-section.adoc[]
diff --git a/docs/modules/ROOT/partials/changelog-2.0.0.adoc b/docs/modules/ROOT/partials/changelog-2.0.0.adoc
new file mode 100644
index 0000000..18cf01c
--- /dev/null
+++ b/docs/modules/ROOT/partials/changelog-2.0.0.adoc
@@ -0,0 +1,18 @@
+////
+The changelog for a specific release.
+Note that it is best to update the changelog as new code is developed.
+
+All attributes used, must be included in this file to keep it self-contained.
+
+This file is translated into markdown and used for the release notes in the GitHub release!
+////
+
+=== Changes
+* Switch to .NET SDK `10.0.201`
+* Upgrade `Swashbuckle.AspNetCore` from `7.3.2` to `10.1.7`
+** Fixes link:{github-issue}1[#1] in link:{github-pr}2[#2] by link:{github-user}rvdginste[@rvdginste]
+
+
+=== Note: breaking change
+* Rename `INSSSchemaFilter` to `ForceTypeToStringSchemaFilter`
+* Changes to the provided `IOperationFilter` implementations after upgrade to new major version of `Swashbuckle.AspNetCore`
diff --git a/global.json b/global.json
index 3c540fe..c565347 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
"rollForward": "disable",
- "version": "10.0.102"
+ "version": "10.0.201"
}
}
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 615f997..3153056 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -50,8 +50,8 @@
-
-
+
+
diff --git a/src/I.EntityFrameworkCore/packages.lock.json b/src/I.EntityFrameworkCore/packages.lock.json
index 03f89a7..02187ad 100644
--- a/src/I.EntityFrameworkCore/packages.lock.json
+++ b/src/I.EntityFrameworkCore/packages.lock.json
@@ -5,30 +5,31 @@
"Microsoft.EntityFrameworkCore": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.3",
- "contentHash": "CDEImwD4A7BseABJMCpLZnhfFjmPY/bHwhhS70elc6gLI/bYUEOhxWt7PmaNGYGhIEzOnStlCy5QcVb+8dod5Q==",
+ "resolved": "10.0.5",
+ "contentHash": "9tNBmK3EpYVGRQLiqP+bqK2m+TD0Gv//4vCzR7ZOgl4FWzCFyOpYdIVka13M4kcBdPdSJcs3wbHr3rmzOqbIMA==",
"dependencies": {
- "Microsoft.EntityFrameworkCore.Abstractions": "10.0.3",
- "Microsoft.EntityFrameworkCore.Analyzers": "10.0.3"
+ "Microsoft.EntityFrameworkCore.Abstractions": "10.0.5",
+ "Microsoft.EntityFrameworkCore.Analyzers": "10.0.5"
}
},
"Microsoft.EntityFrameworkCore.Relational": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.3",
- "contentHash": "Pmh60OK9neVr/M0FJwm9hlzm2bD4Kd65SID8E6SP5c90tExNgXwORrlEWl0oGU/ig9ifpNN4PSpIrnHNozlT5w==",
+ "resolved": "10.0.5",
+ "contentHash": "uxmFjZEAB/KbsgWFSS4lLqkEHCfXxB2x0UcbiO4e5fCRpFFeTMSx/me6009nYJLu5IKlDwO1POh++P6RilFTDw==",
"dependencies": {
- "Microsoft.EntityFrameworkCore": "10.0.3"
+ "Microsoft.EntityFrameworkCore": "10.0.5"
}
},
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.103",
- "contentHash": "qZk7r40ftpZY+/sO019sgWAWfNqC2CLSspDdAxNYCJU/bCi/8jVwvOMjzb/d5gjCRNzQ4OCYgBfhdpQyVwLTyw==",
+ "resolved": "10.0.201",
+ "contentHash": "qxYAmO4ktzd9L+HMdnqWucxpu7bI9undPyACXOMqPyhaiMtbpbYL/n0ACyWIJlbyEJrXFwxiOaBOSasLtDvsCg==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "10.0.103",
- "Microsoft.SourceLink.Common": "10.0.103"
+ "Microsoft.Build.Tasks.Git": "10.0.201",
+ "Microsoft.SourceLink.Common": "10.0.201",
+ "System.IO.Hashing": "10.0.5"
}
},
"PPWCode.AspNetCore.Server.I": {
@@ -81,33 +82,36 @@
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "QoiCMcPuxC6eqRQmrmF9zBY96ejIznXtve/lJJbonGD9I5Aygf2AUCOWslGiCEtBbfWRSuUnepBjuuVOdAl5ag=="
+ "resolved": "10.0.201",
+ "contentHash": "DMYBnrFZvLnBKn14VavEuuIr31CY6YY2i2L9P8DorS/Qp6ifRR8ZPLdJCFLFfjikNq8DykbYyLd/RP6lSqHcWw==",
+ "dependencies": {
+ "System.IO.Hashing": "10.0.5"
+ }
},
"Microsoft.EntityFrameworkCore.Abstractions": {
"type": "Transitive",
- "resolved": "10.0.3",
- "contentHash": "c7Uoz381xnMHNBRB8eHRhGgzUtXbgddlbODhwZRrTSzZWDharp3RkJsFwhxyESbeXhCqmML7VdvjMQ7uu+HreA=="
+ "resolved": "10.0.5",
+ "contentHash": "32c58Rnm47Qvhimawf67KO9PytgPz3QoWye7Abapt0Yocw/JnzMiSNj/pRoIKyn8Jxypkv86zxKD4Q/zNTc0Ag=="
},
"Microsoft.EntityFrameworkCore.Analyzers": {
"type": "Transitive",
- "resolved": "10.0.3",
- "contentHash": "lVABgJTyTUNE7Bi0bSu4dWHiCHIXEGzTh/kLh0N07IgU/tIKwTeBPp8tgV4x2iKj4h7iPLo8oXzyHmLDGtAE1g=="
+ "resolved": "10.0.5",
+ "contentHash": "ipC4u1VojgEfoIZhtbS2Sx5IluJTP/Jf1hz3yGsxGBgSukYY/CquI6rAjxn5H58CZgVn36qcuPPtNMwZ0AUzMg=="
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
- "resolved": "6.0.5",
- "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ "resolved": "10.0.0",
+ "contentHash": "NCWCGiwRwje8773yzPQhvucYnnfeR+ZoB1VRIrIMp4uaeUNw7jvEPHij3HIbwCDuNCrNcphA00KSAR9yD9qmbg=="
},
"Microsoft.OpenApi": {
"type": "Transitive",
- "resolved": "1.6.22",
- "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ=="
+ "resolved": "2.4.1",
+ "contentHash": "u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "cMtGW5/r0ck72Jg2QwZcNTX59z+iB/B1kW84VMa/eX8L19DhHIuIcQjfK0pgLLBxd60Jl0Bj9GUolcM0MnJnZA=="
+ "resolved": "10.0.201",
+ "contentHash": "QbBYhkjgL6rCnBfDbzsAJLlsad13TlBHqYCFDIw56OO2g6ix+9RsmY8uxiQGdWwFKbZXaXyAA6jDCzFYVGCZDw=="
},
"PPWCode.Util.Time.I": {
"type": "Transitive",
@@ -135,24 +139,29 @@
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "39Z2N3cLHDcDinu2IW5IaQO9wGPKTbc+vKbjIT/6gN3jFYypWY5U3O8i7Y9rmYDgxkm6niICnkcFZ3hEvikIHA==",
+ "resolved": "10.1.7",
+ "contentHash": "EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"dependencies": {
- "Microsoft.OpenApi": "1.6.22"
+ "Microsoft.OpenApi": "2.4.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "x5famjpcgazpT/8eEIlpSYSTZDq6ojMARhuJgj6O67Uk+Yb1DdDM5yikdL7GK1pMk5rYBETUCRWYP6rp+vHnlA==",
+ "resolved": "10.1.7",
+ "contentHash": "PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"dependencies": {
- "Swashbuckle.AspNetCore.Swagger": "7.3.2"
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "SNQuFjYin9KhkoCSVOD5/Y4VEyAjKBDeZkIqqY6x+oI21HMKzzVkeJA9V7tWFXf5df4m/+pTIlbKO7g5W9UroQ=="
+ "resolved": "10.1.7",
+ "contentHash": "iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.5",
+ "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg=="
},
"ppwcode.aspnetcore.host.i": {
"type": "Project",
@@ -162,8 +171,8 @@
"PPWCode.Util.Authorization.I": "[1.*, )",
"PPWCode.Vernacular.Persistence.V": "[1.*, )",
"PPWCode.Vernacular.RequestContext.I": "[1.*, )",
- "Swashbuckle.AspNetCore": "[7.*, )",
- "Swashbuckle.AspNetCore.Annotations": "[7.*, )"
+ "Swashbuckle.AspNetCore": "[10.*, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.*, )"
}
},
"Asp.Versioning.Mvc.ApiExplorer": {
@@ -190,8 +199,8 @@
"PPWCode.Vernacular.Persistence.V": {
"type": "CentralTransitive",
"requested": "[1.*, )",
- "resolved": "1.0.0",
- "contentHash": "YsfYBPHs+7UWS1gI4UbezhUS8xno1OfdYq0TaDCU7QSVQlDOiYTgCdOSN/xFy9hmZNz7u3BpcrEexUBUpWGAgQ==",
+ "resolved": "1.1.0",
+ "contentHash": "iXoTU962vqg7k4Xivj5yZKRBwes95XY2pEAQ1nAATv8i1+Krc9rXQsWvrLNCs5gD6Wf7racSjcr3ozoo3MHuWA==",
"dependencies": {
"PPWCode.Vernacular.Contracts.I": "1.5.0",
"PPWCode.Vernacular.Exceptions.V": "1.1.0",
@@ -211,23 +220,23 @@
},
"Swashbuckle.AspNetCore": {
"type": "CentralTransitive",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "WEkW7Cl8bexT75eURuqrqM/TQx+ftWKOWlCHzmw3Fl3oAmxiBO/lDVOuuqZsaBCHQIBcZxA6BbyiG5dv2mD2tw==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"dependencies": {
- "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
- "Swashbuckle.AspNetCore.Swagger": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerUI": "7.3.2"
+ "Microsoft.Extensions.ApiDescription.Server": "10.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Annotations": {
"type": "CentralTransitive",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "JaGYVVuiHzv3WWanFh/Fzx8ZYOtayNAhso5rwmHdxVYxn3AYJLYdijIBvQaEt4MIcsN0I1zXZfC/YKh47y3ocQ==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "qHNQghKAzrjDEECIlyKEanmWxXDzrh6PyjGWVdql2qZfap0Ionuxam5OrUozibjbgQbVjRmgSXxWC8giIuCbGA==",
"dependencies": {
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2"
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7"
}
}
},
@@ -235,30 +244,31 @@
"Microsoft.EntityFrameworkCore": {
"type": "Direct",
"requested": "[8.*, )",
- "resolved": "8.0.24",
- "contentHash": "Jf82MqfFU3Nte4Cpmtq5HXhQfXHYhJawFawWuy281uiibg/Ch9z9D/gMnORFhjmGSxzSA4CmRaHwDm2lU9H/ZA==",
+ "resolved": "8.0.25",
+ "contentHash": "1seNis+YnJwiQpwzBCQVWTlyfnlfwotQUkCC0MINwS6yt5Gco4XZ/xOz1fB5uwAWjO/TrDzL/sIMk2hXPxeHbg==",
"dependencies": {
- "Microsoft.EntityFrameworkCore.Abstractions": "8.0.24",
- "Microsoft.EntityFrameworkCore.Analyzers": "8.0.24"
+ "Microsoft.EntityFrameworkCore.Abstractions": "8.0.25",
+ "Microsoft.EntityFrameworkCore.Analyzers": "8.0.25"
}
},
"Microsoft.EntityFrameworkCore.Relational": {
"type": "Direct",
"requested": "[8.*, )",
- "resolved": "8.0.24",
- "contentHash": "QMGORS3ltx2RWHBCUcBjadS0eNYGkTGXsOdZf3oSM6pZuNBBl16z6gThA3a+BF8T5HY3jThxVDFKaPHxmpueXA==",
+ "resolved": "8.0.25",
+ "contentHash": "/6S+I5PvmlzDeLMCXZGCXmnUNiJdLyucUrnwkItNhNRZB8ftVYXdyM0omNwm3UDvRSQVMnb3e5s7+YusLvvYeg==",
"dependencies": {
- "Microsoft.EntityFrameworkCore": "8.0.24"
+ "Microsoft.EntityFrameworkCore": "8.0.25"
}
},
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.103",
- "contentHash": "qZk7r40ftpZY+/sO019sgWAWfNqC2CLSspDdAxNYCJU/bCi/8jVwvOMjzb/d5gjCRNzQ4OCYgBfhdpQyVwLTyw==",
+ "resolved": "10.0.201",
+ "contentHash": "qxYAmO4ktzd9L+HMdnqWucxpu7bI9undPyACXOMqPyhaiMtbpbYL/n0ACyWIJlbyEJrXFwxiOaBOSasLtDvsCg==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "10.0.103",
- "Microsoft.SourceLink.Common": "10.0.103"
+ "Microsoft.Build.Tasks.Git": "10.0.201",
+ "Microsoft.SourceLink.Common": "10.0.201",
+ "System.IO.Hashing": "10.0.5"
}
},
"PPWCode.AspNetCore.Server.I": {
@@ -311,33 +321,36 @@
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "QoiCMcPuxC6eqRQmrmF9zBY96ejIznXtve/lJJbonGD9I5Aygf2AUCOWslGiCEtBbfWRSuUnepBjuuVOdAl5ag=="
+ "resolved": "10.0.201",
+ "contentHash": "DMYBnrFZvLnBKn14VavEuuIr31CY6YY2i2L9P8DorS/Qp6ifRR8ZPLdJCFLFfjikNq8DykbYyLd/RP6lSqHcWw==",
+ "dependencies": {
+ "System.IO.Hashing": "10.0.5"
+ }
},
"Microsoft.EntityFrameworkCore.Abstractions": {
"type": "Transitive",
- "resolved": "8.0.24",
- "contentHash": "epzWc4RnG6aQS+MfIK1gg1XbL8ZTYgKtW8L1lDVHG4C3nilLd6tX8moX6Sv8sXQkH/tMhWhT2e4Nm811kYeoxg=="
+ "resolved": "8.0.25",
+ "contentHash": "YGJD4/P34LsQetSH5R0J58nAWSFGn7BE11zThfCkILTW8wy+9/kwqM2P0ciHhuzlPzwApputDfQ5u35+fH6BGQ=="
},
"Microsoft.EntityFrameworkCore.Analyzers": {
"type": "Transitive",
- "resolved": "8.0.24",
- "contentHash": "nuMx9iCGkZgHvPKlnrYBjlxRgy8VDe443H0PbiDUvxQ8+4nC5JYhqQ9u5lg+FssnTh+QyvwVVVHvkCyAnrpajA=="
+ "resolved": "8.0.25",
+ "contentHash": "jHtsaYPDBoNsIA085ZbqrZGidG+rnoZGJ/0JTL6QHR0XV4JLnLoJgPao7zVsqhEVJUnS7JOfVClr0UThAxoiuQ=="
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
- "resolved": "6.0.5",
- "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ "resolved": "8.0.0",
+ "contentHash": "jDM3a95WerM8g6IcMiBXq1qRS9dqmEUpgnCk2DeMWpPkYtp1ia+CkXabOnK93JmhVlUmv8l9WMPsCSUm+WqkIA=="
},
"Microsoft.OpenApi": {
"type": "Transitive",
- "resolved": "1.6.22",
- "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ=="
+ "resolved": "2.4.1",
+ "contentHash": "u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "cMtGW5/r0ck72Jg2QwZcNTX59z+iB/B1kW84VMa/eX8L19DhHIuIcQjfK0pgLLBxd60Jl0Bj9GUolcM0MnJnZA=="
+ "resolved": "10.0.201",
+ "contentHash": "QbBYhkjgL6rCnBfDbzsAJLlsad13TlBHqYCFDIw56OO2g6ix+9RsmY8uxiQGdWwFKbZXaXyAA6jDCzFYVGCZDw=="
},
"PPWCode.Util.Time.I": {
"type": "Transitive",
@@ -365,24 +378,29 @@
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "39Z2N3cLHDcDinu2IW5IaQO9wGPKTbc+vKbjIT/6gN3jFYypWY5U3O8i7Y9rmYDgxkm6niICnkcFZ3hEvikIHA==",
+ "resolved": "10.1.7",
+ "contentHash": "EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"dependencies": {
- "Microsoft.OpenApi": "1.6.22"
+ "Microsoft.OpenApi": "2.4.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "x5famjpcgazpT/8eEIlpSYSTZDq6ojMARhuJgj6O67Uk+Yb1DdDM5yikdL7GK1pMk5rYBETUCRWYP6rp+vHnlA==",
+ "resolved": "10.1.7",
+ "contentHash": "PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"dependencies": {
- "Swashbuckle.AspNetCore.Swagger": "7.3.2"
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "SNQuFjYin9KhkoCSVOD5/Y4VEyAjKBDeZkIqqY6x+oI21HMKzzVkeJA9V7tWFXf5df4m/+pTIlbKO7g5W9UroQ=="
+ "resolved": "10.1.7",
+ "contentHash": "iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.5",
+ "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg=="
},
"ppwcode.aspnetcore.host.i": {
"type": "Project",
@@ -392,8 +410,8 @@
"PPWCode.Util.Authorization.I": "[1.*, )",
"PPWCode.Vernacular.Persistence.V": "[1.*, )",
"PPWCode.Vernacular.RequestContext.I": "[1.*, )",
- "Swashbuckle.AspNetCore": "[7.*, )",
- "Swashbuckle.AspNetCore.Annotations": "[7.*, )"
+ "Swashbuckle.AspNetCore": "[10.*, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.*, )"
}
},
"Asp.Versioning.Mvc.ApiExplorer": {
@@ -420,8 +438,8 @@
"PPWCode.Vernacular.Persistence.V": {
"type": "CentralTransitive",
"requested": "[1.*, )",
- "resolved": "1.0.0",
- "contentHash": "YsfYBPHs+7UWS1gI4UbezhUS8xno1OfdYq0TaDCU7QSVQlDOiYTgCdOSN/xFy9hmZNz7u3BpcrEexUBUpWGAgQ==",
+ "resolved": "1.1.0",
+ "contentHash": "iXoTU962vqg7k4Xivj5yZKRBwes95XY2pEAQ1nAATv8i1+Krc9rXQsWvrLNCs5gD6Wf7racSjcr3ozoo3MHuWA==",
"dependencies": {
"PPWCode.Vernacular.Contracts.I": "1.5.0",
"PPWCode.Vernacular.Exceptions.V": "1.1.0",
@@ -441,23 +459,23 @@
},
"Swashbuckle.AspNetCore": {
"type": "CentralTransitive",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "WEkW7Cl8bexT75eURuqrqM/TQx+ftWKOWlCHzmw3Fl3oAmxiBO/lDVOuuqZsaBCHQIBcZxA6BbyiG5dv2mD2tw==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"dependencies": {
- "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
- "Swashbuckle.AspNetCore.Swagger": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerUI": "7.3.2"
+ "Microsoft.Extensions.ApiDescription.Server": "8.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Annotations": {
"type": "CentralTransitive",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "JaGYVVuiHzv3WWanFh/Fzx8ZYOtayNAhso5rwmHdxVYxn3AYJLYdijIBvQaEt4MIcsN0I1zXZfC/YKh47y3ocQ==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "qHNQghKAzrjDEECIlyKEanmWxXDzrh6PyjGWVdql2qZfap0Ionuxam5OrUozibjbgQbVjRmgSXxWC8giIuCbGA==",
"dependencies": {
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2"
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7"
}
}
},
@@ -465,30 +483,31 @@
"Microsoft.EntityFrameworkCore": {
"type": "Direct",
"requested": "[9.*, )",
- "resolved": "9.0.13",
- "contentHash": "irtGBQFEnjb17HRgxxbj3HgC14js48aYus9YhTpBEihqrdH50M7YqBtWippwpIJWwdMF7TFyQXpSTt4lFekPZw==",
+ "resolved": "9.0.14",
+ "contentHash": "Bxw540n++gVwFbrh3NyxwV4ZwPonhbBmhiq7JdDyBUibLAPGvqvsu73Us3LGfRoLbQrhPEgu6cKSvQq+5ABAJA==",
"dependencies": {
- "Microsoft.EntityFrameworkCore.Abstractions": "9.0.13",
- "Microsoft.EntityFrameworkCore.Analyzers": "9.0.13"
+ "Microsoft.EntityFrameworkCore.Abstractions": "9.0.14",
+ "Microsoft.EntityFrameworkCore.Analyzers": "9.0.14"
}
},
"Microsoft.EntityFrameworkCore.Relational": {
"type": "Direct",
"requested": "[9.*, )",
- "resolved": "9.0.13",
- "contentHash": "eQgG7yfe3ULgRk7YS8oIeljbmtV8AJ+lmzd5ezbA1ceEa1gRo9Y/d8+AvHq9NATp7QWZoe+qhyDFvCX8+ByI/A==",
+ "resolved": "9.0.14",
+ "contentHash": "R73NifQ3oiAEmvQokCrUtDaVMRO9UQXp52cpwosTZkAmpK2XtmJbHIrZRUjvLWkCzTlwjTDP27bH04PlyNeJoA==",
"dependencies": {
- "Microsoft.EntityFrameworkCore": "9.0.13"
+ "Microsoft.EntityFrameworkCore": "9.0.14"
}
},
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.103",
- "contentHash": "qZk7r40ftpZY+/sO019sgWAWfNqC2CLSspDdAxNYCJU/bCi/8jVwvOMjzb/d5gjCRNzQ4OCYgBfhdpQyVwLTyw==",
+ "resolved": "10.0.201",
+ "contentHash": "qxYAmO4ktzd9L+HMdnqWucxpu7bI9undPyACXOMqPyhaiMtbpbYL/n0ACyWIJlbyEJrXFwxiOaBOSasLtDvsCg==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "10.0.103",
- "Microsoft.SourceLink.Common": "10.0.103"
+ "Microsoft.Build.Tasks.Git": "10.0.201",
+ "Microsoft.SourceLink.Common": "10.0.201",
+ "System.IO.Hashing": "10.0.5"
}
},
"PPWCode.AspNetCore.Server.I": {
@@ -541,33 +560,36 @@
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "QoiCMcPuxC6eqRQmrmF9zBY96ejIznXtve/lJJbonGD9I5Aygf2AUCOWslGiCEtBbfWRSuUnepBjuuVOdAl5ag=="
+ "resolved": "10.0.201",
+ "contentHash": "DMYBnrFZvLnBKn14VavEuuIr31CY6YY2i2L9P8DorS/Qp6ifRR8ZPLdJCFLFfjikNq8DykbYyLd/RP6lSqHcWw==",
+ "dependencies": {
+ "System.IO.Hashing": "10.0.5"
+ }
},
"Microsoft.EntityFrameworkCore.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.13",
- "contentHash": "baCHd+W1QEl2HmWodnFhJ50eElH/Z+ku+aKod4GN9AGhkItqBCcVkETMz/b9QtqxOgyM+Pu0Srv7atLTBdXSFg=="
+ "resolved": "9.0.14",
+ "contentHash": "lU0DBe/uZ5hNW1G6tQcikcJhjmDE4eRjRQzaiFi41zxXUMndtZQaGGVNVWXeW6M9K6T212WnBA5cwydzBYmKNA=="
},
"Microsoft.EntityFrameworkCore.Analyzers": {
"type": "Transitive",
- "resolved": "9.0.13",
- "contentHash": "GQE2qm6U45Zgouw7PSojGmkDnNq+IMjO/+BOm8OHqzK0h+uNjL6MQeuansNQZ6gIM2e3w9KZTLXQTHA0FcuknQ=="
+ "resolved": "9.0.14",
+ "contentHash": "u7j9NgArLjf3OzeXX1jx9K59Ytki0CfhMloXxons/cIhq/35QilP6R+NfPlQy/nMax+edeGRRfEg9hWFsjqsXA=="
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
- "resolved": "6.0.5",
- "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ "resolved": "9.0.0",
+ "contentHash": "1Kzzf7pRey40VaUkHN9/uWxrKVkLu2AQjt+GVeeKLLpiEHAJ1xZRsLSh4ZZYEnyS7Kt2OBOPmsXNdU+wbcOl5w=="
},
"Microsoft.OpenApi": {
"type": "Transitive",
- "resolved": "1.6.22",
- "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ=="
+ "resolved": "2.4.1",
+ "contentHash": "u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "cMtGW5/r0ck72Jg2QwZcNTX59z+iB/B1kW84VMa/eX8L19DhHIuIcQjfK0pgLLBxd60Jl0Bj9GUolcM0MnJnZA=="
+ "resolved": "10.0.201",
+ "contentHash": "QbBYhkjgL6rCnBfDbzsAJLlsad13TlBHqYCFDIw56OO2g6ix+9RsmY8uxiQGdWwFKbZXaXyAA6jDCzFYVGCZDw=="
},
"PPWCode.Util.Time.I": {
"type": "Transitive",
@@ -595,24 +617,29 @@
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "39Z2N3cLHDcDinu2IW5IaQO9wGPKTbc+vKbjIT/6gN3jFYypWY5U3O8i7Y9rmYDgxkm6niICnkcFZ3hEvikIHA==",
+ "resolved": "10.1.7",
+ "contentHash": "EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"dependencies": {
- "Microsoft.OpenApi": "1.6.22"
+ "Microsoft.OpenApi": "2.4.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "x5famjpcgazpT/8eEIlpSYSTZDq6ojMARhuJgj6O67Uk+Yb1DdDM5yikdL7GK1pMk5rYBETUCRWYP6rp+vHnlA==",
+ "resolved": "10.1.7",
+ "contentHash": "PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"dependencies": {
- "Swashbuckle.AspNetCore.Swagger": "7.3.2"
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "SNQuFjYin9KhkoCSVOD5/Y4VEyAjKBDeZkIqqY6x+oI21HMKzzVkeJA9V7tWFXf5df4m/+pTIlbKO7g5W9UroQ=="
+ "resolved": "10.1.7",
+ "contentHash": "iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.5",
+ "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg=="
},
"ppwcode.aspnetcore.host.i": {
"type": "Project",
@@ -622,8 +649,8 @@
"PPWCode.Util.Authorization.I": "[1.*, )",
"PPWCode.Vernacular.Persistence.V": "[1.*, )",
"PPWCode.Vernacular.RequestContext.I": "[1.*, )",
- "Swashbuckle.AspNetCore": "[7.*, )",
- "Swashbuckle.AspNetCore.Annotations": "[7.*, )"
+ "Swashbuckle.AspNetCore": "[10.*, )",
+ "Swashbuckle.AspNetCore.Annotations": "[10.*, )"
}
},
"Asp.Versioning.Mvc.ApiExplorer": {
@@ -650,8 +677,8 @@
"PPWCode.Vernacular.Persistence.V": {
"type": "CentralTransitive",
"requested": "[1.*, )",
- "resolved": "1.0.0",
- "contentHash": "YsfYBPHs+7UWS1gI4UbezhUS8xno1OfdYq0TaDCU7QSVQlDOiYTgCdOSN/xFy9hmZNz7u3BpcrEexUBUpWGAgQ==",
+ "resolved": "1.1.0",
+ "contentHash": "iXoTU962vqg7k4Xivj5yZKRBwes95XY2pEAQ1nAATv8i1+Krc9rXQsWvrLNCs5gD6Wf7racSjcr3ozoo3MHuWA==",
"dependencies": {
"PPWCode.Vernacular.Contracts.I": "1.5.0",
"PPWCode.Vernacular.Exceptions.V": "1.1.0",
@@ -671,23 +698,23 @@
},
"Swashbuckle.AspNetCore": {
"type": "CentralTransitive",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "WEkW7Cl8bexT75eURuqrqM/TQx+ftWKOWlCHzmw3Fl3oAmxiBO/lDVOuuqZsaBCHQIBcZxA6BbyiG5dv2mD2tw==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"dependencies": {
- "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
- "Swashbuckle.AspNetCore.Swagger": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerUI": "7.3.2"
+ "Microsoft.Extensions.ApiDescription.Server": "9.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Annotations": {
"type": "CentralTransitive",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "JaGYVVuiHzv3WWanFh/Fzx8ZYOtayNAhso5rwmHdxVYxn3AYJLYdijIBvQaEt4MIcsN0I1zXZfC/YKh47y3ocQ==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "qHNQghKAzrjDEECIlyKEanmWxXDzrh6PyjGWVdql2qZfap0Ionuxam5OrUozibjbgQbVjRmgSXxWC8giIuCbGA==",
"dependencies": {
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2"
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7"
}
}
}
diff --git a/src/I/Swagger/AddDefaultRequiredFields.cs b/src/I/Swagger/AddDefaultRequiredFields.cs
index b9d715e..5e4f4ec 100644
--- a/src/I/Swagger/AddDefaultRequiredFields.cs
+++ b/src/I/Swagger/AddDefaultRequiredFields.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -11,14 +11,16 @@
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
+using System.Text.Json.Nodes;
using Asp.Versioning;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
-using Microsoft.OpenApi.Any;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
using PPWCode.AspNetCore.Host.I.Bootstrap;
+using PPWCode.Vernacular.Contracts.I;
+using PPWCode.Vernacular.Exceptions.V;
using Swashbuckle.AspNetCore.SwaggerGen;
@@ -36,7 +38,7 @@ static AddDefaultRequiredFields()
new(
typeof(ApiVersion),
[
- (pd => $"{pd.ParameterDescriptor.Name}", new OpenApiString($"{Startup.DefaultApiVersion.ToString(Startup.ApiVersionFormat)}"))
+ (pd => $"{pd.ParameterDescriptor.Name}", JsonValue.Create($"{Startup.DefaultApiVersion.ToString(Startup.ApiVersionFormat)}"))
]);
_requiredFieldsWithDefaultValues.Add(defaultRequiredField);
}
@@ -63,28 +65,41 @@ public override void Apply(OpenApiOperation operation, OperationFilterContext co
continue;
}
- foreach ((Func, IOpenApiAny) tuple in defaultRequiredField.ParamLambdas)
+ foreach ((Func, JsonNode) tuple in defaultRequiredField.ParamLambdas)
{
SetParamValue(operation, tuple.Item1.Invoke(parameter), tuple.Item2);
}
}
}
- protected void SetParamValue(OpenApiOperation operation, string name, IOpenApiAny defaultValue)
+ protected void SetParamValue(OpenApiOperation operation, string name, JsonNode defaultValue)
{
- OpenApiParameter? param =
+ Contract.Requires(operation.Parameters is not null);
+ IOpenApiParameter? parameter =
operation
.Parameters
.SingleOrDefault(p => string.Equals(p.Name, name, StringComparison.OrdinalIgnoreCase));
- if (param is { Required: true })
+
+ if (parameter is not null)
{
- param.Example = defaultValue;
+ OpenApiParameter? openApiParameter =
+ parameter switch
+ {
+ OpenApiParameter openApiParameterTemp => openApiParameterTemp,
+ OpenApiParameterReference openApiParameterReference => openApiParameterReference.RecursiveTarget,
+ _ => throw new ProgrammingError("Unsupported configuration")
+ };
+
+ if (openApiParameter is not null && openApiParameter.Required)
+ {
+ openApiParameter.Example = defaultValue;
+ }
}
}
public class DefaultRequiredField
{
- public DefaultRequiredField(Type type, (Func, IOpenApiAny)[] paramLambdas)
+ public DefaultRequiredField(Type type, (Func, JsonNode)[] paramLambdas)
{
Type = type;
ParamLambdas = paramLambdas;
@@ -92,7 +107,7 @@ public DefaultRequiredField(Type type, (Func, I
public Type Type { get; }
- public (Func, IOpenApiAny)[] ParamLambdas { get; }
+ public (Func, JsonNode)[] ParamLambdas { get; }
}
}
}
diff --git a/src/I/Swagger/AddNoContentCodes.cs b/src/I/Swagger/AddNoContentCodes.cs
index d0eda48..9d10d51 100644
--- a/src/I/Swagger/AddNoContentCodes.cs
+++ b/src/I/Swagger/AddNoContentCodes.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -12,7 +12,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Net;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
using Swashbuckle.AspNetCore.SwaggerGen;
diff --git a/src/I/Swagger/AddNotFoundResponseCodes.cs b/src/I/Swagger/AddNotFoundResponseCodes.cs
index d378ebe..6ada7ff 100644
--- a/src/I/Swagger/AddNotFoundResponseCodes.cs
+++ b/src/I/Swagger/AddNotFoundResponseCodes.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -16,7 +16,7 @@
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.AspNetCore.Mvc.ModelBinding;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
using Swashbuckle.AspNetCore.SwaggerGen;
diff --git a/src/I/Swagger/AddRequestSimulationHeader.cs b/src/I/Swagger/AddRequestSimulationHeader.cs
index e4e81f5..bce8021 100644
--- a/src/I/Swagger/AddRequestSimulationHeader.cs
+++ b/src/I/Swagger/AddRequestSimulationHeader.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -11,7 +11,7 @@
using System.Diagnostics.CodeAnalysis;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
using PPWCode.AspNetCore.Host.I.Transactional;
@@ -32,7 +32,7 @@ public override void Apply(OpenApiOperation operation, OperationFilterContext co
{
if (IsPost(context) || IsPut(context) || IsDelete(context))
{
- operation.Parameters ??= new List();
+ operation.Parameters ??= new List();
operation.Parameters.Add(
new OpenApiParameter
{
@@ -42,7 +42,7 @@ public override void Apply(OpenApiOperation operation, OperationFilterContext co
Schema =
new OpenApiSchema
{
- Type = "string"
+ Type = JsonSchemaType.String
},
Required = false,
});
diff --git a/src/I/Swagger/AddSemanticFaultResponseCodes.cs b/src/I/Swagger/AddSemanticFaultResponseCodes.cs
index 5e8bcfe..99f0366 100644
--- a/src/I/Swagger/AddSemanticFaultResponseCodes.cs
+++ b/src/I/Swagger/AddSemanticFaultResponseCodes.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -12,7 +12,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Net;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
using Swashbuckle.AspNetCore.SwaggerGen;
@@ -25,7 +25,7 @@ public class AddSemanticFaultResponseCodes : PpwOperationFilter
///
public override void Apply(OpenApiOperation operation, OperationFilterContext context)
{
- OpenApiResponse response = new OpenApiResponse { Description = "Parameter validation failed or some business rules were not fulfilled." };
+ OpenApiResponse response = new() { Description = "Parameter validation failed or some business rules were not fulfilled." };
ConditionalAddResponse(operation, $"{HttpStatusCode.BadRequest:D}", response);
}
}
diff --git a/src/I/Swagger/AddTransactionalInformation.cs b/src/I/Swagger/AddTransactionalInformation.cs
index f9d5b96..b760956 100644
--- a/src/I/Swagger/AddTransactionalInformation.cs
+++ b/src/I/Swagger/AddTransactionalInformation.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -14,7 +14,7 @@
using System.Text;
using Microsoft.AspNetCore.Mvc.Controllers;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
using PPWCode.AspNetCore.Server.I.Transactional;
diff --git a/src/I/Swagger/ForceTypeToStringSchemaFilter.cs b/src/I/Swagger/ForceTypeToStringSchemaFilter.cs
new file mode 100644
index 0000000..44d2102
--- /dev/null
+++ b/src/I/Swagger/ForceTypeToStringSchemaFilter.cs
@@ -0,0 +1,34 @@
+using Microsoft.OpenApi;
+
+using PPWCode.Vernacular.Contracts.I;
+using PPWCode.Vernacular.Exceptions.V;
+
+using Swashbuckle.AspNetCore.SwaggerGen;
+
+namespace PPWCode.AspNetCore.Host.I.Swagger;
+
+public class ForceTypeToStringSchemaFilter : ISchemaFilter
+ where T : class
+{
+ ///
+ public void Apply(IOpenApiSchema schema, SchemaFilterContext context)
+ {
+ OpenApiSchema? openApiSchema =
+ schema switch
+ {
+ OpenApiSchema openApiSchemaTemp => openApiSchemaTemp,
+ OpenApiSchemaReference openApiSchemaReference => openApiSchemaReference.RecursiveTarget,
+ _ => throw new ProgrammingError("Unsupported configuration")
+ };
+
+ if (openApiSchema is not null && (context.Type == typeof(T)))
+ {
+ // Override schema to be a string
+ openApiSchema.Type = JsonSchemaType.String;
+
+ // Remove properties (e.g., "value")
+ Contract.Assert(openApiSchema.Properties != null);
+ openApiSchema.Properties.Clear();
+ }
+ }
+}
diff --git a/src/I/Swagger/INSSSchemaFilter.cs b/src/I/Swagger/INSSSchemaFilter.cs
deleted file mode 100644
index a3eb20e..0000000
--- a/src/I/Swagger/INSSSchemaFilter.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using Microsoft.OpenApi.Models;
-
-using Swashbuckle.AspNetCore.SwaggerGen;
-
-namespace PPWCode.AspNetCore.Host.I.Swagger;
-
-public class INSSSchemaFilter : ISchemaFilter
- where T : class
-{
- ///
- public void Apply(OpenApiSchema schema, SchemaFilterContext context)
- {
- if (context.Type == typeof(T))
- {
- // Override schema to be a string
- schema.Type = "string";
-
- // Remove properties (e.g., "value")
- schema.Properties.Clear();
- }
- }
-}
diff --git a/src/I/Swagger/PpwOperationFilter.cs b/src/I/Swagger/PpwOperationFilter.cs
index 4e3514c..766002b 100644
--- a/src/I/Swagger/PpwOperationFilter.cs
+++ b/src/I/Swagger/PpwOperationFilter.cs
@@ -1,4 +1,4 @@
-// Copyright 2025 by PeopleWare n.v..
+// Copyright 2026 by PeopleWare n.v..
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -13,8 +13,9 @@
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.AspNetCore.Mvc.Controllers;
-using Microsoft.OpenApi.Models;
+using Microsoft.OpenApi;
+using PPWCode.Vernacular.Contracts.I;
using PPWCode.Vernacular.Persistence.V;
using Swashbuckle.AspNetCore.SwaggerGen;
@@ -69,15 +70,20 @@ protected virtual string GetIdentifications(ApiDescription apiDescription, Func<
.Select(GetIdentification));
protected virtual bool ResponseExists(OpenApiOperation operation, string key)
- => operation.Responses.ContainsKey(key);
+ {
+ Contract.Requires(operation.Responses is not null);
+ return operation.Responses.ContainsKey(key);
+ }
protected virtual void AddResponse(OpenApiOperation operation, string key, OpenApiResponse response)
{
+ Contract.Requires(operation.Responses is not null);
operation.Responses.Add(key, response);
}
protected virtual void RemoveResponse(OpenApiOperation operation, string key)
{
+ Contract.Requires(operation.Responses is not null);
if (ResponseExists(operation, key))
{
operation.Responses.Remove(key);
diff --git a/src/I/packages.lock.json b/src/I/packages.lock.json
index 8ea2c8b..7b31f48 100644
--- a/src/I/packages.lock.json
+++ b/src/I/packages.lock.json
@@ -14,11 +14,12 @@
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.103",
- "contentHash": "qZk7r40ftpZY+/sO019sgWAWfNqC2CLSspDdAxNYCJU/bCi/8jVwvOMjzb/d5gjCRNzQ4OCYgBfhdpQyVwLTyw==",
+ "resolved": "10.0.201",
+ "contentHash": "qxYAmO4ktzd9L+HMdnqWucxpu7bI9undPyACXOMqPyhaiMtbpbYL/n0ACyWIJlbyEJrXFwxiOaBOSasLtDvsCg==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "10.0.103",
- "Microsoft.SourceLink.Common": "10.0.103"
+ "Microsoft.Build.Tasks.Git": "10.0.201",
+ "Microsoft.SourceLink.Common": "10.0.201",
+ "System.IO.Hashing": "10.0.5"
}
},
"PPWCode.AspNetCore.Server.I": {
@@ -42,8 +43,8 @@
"PPWCode.Vernacular.Persistence.V": {
"type": "Direct",
"requested": "[1.*, )",
- "resolved": "1.0.0",
- "contentHash": "YsfYBPHs+7UWS1gI4UbezhUS8xno1OfdYq0TaDCU7QSVQlDOiYTgCdOSN/xFy9hmZNz7u3BpcrEexUBUpWGAgQ==",
+ "resolved": "1.1.0",
+ "contentHash": "iXoTU962vqg7k4Xivj5yZKRBwes95XY2pEAQ1nAATv8i1+Krc9rXQsWvrLNCs5gD6Wf7racSjcr3ozoo3MHuWA==",
"dependencies": {
"PPWCode.Vernacular.Contracts.I": "1.5.0",
"PPWCode.Vernacular.Exceptions.V": "1.1.0",
@@ -72,23 +73,23 @@
},
"Swashbuckle.AspNetCore": {
"type": "Direct",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "WEkW7Cl8bexT75eURuqrqM/TQx+ftWKOWlCHzmw3Fl3oAmxiBO/lDVOuuqZsaBCHQIBcZxA6BbyiG5dv2mD2tw==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"dependencies": {
- "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
- "Swashbuckle.AspNetCore.Swagger": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerUI": "7.3.2"
+ "Microsoft.Extensions.ApiDescription.Server": "10.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Annotations": {
"type": "Direct",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "JaGYVVuiHzv3WWanFh/Fzx8ZYOtayNAhso5rwmHdxVYxn3AYJLYdijIBvQaEt4MIcsN0I1zXZfC/YKh47y3ocQ==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "qHNQghKAzrjDEECIlyKEanmWxXDzrh6PyjGWVdql2qZfap0Ionuxam5OrUozibjbgQbVjRmgSXxWC8giIuCbGA==",
"dependencies": {
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2"
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7"
}
},
"Asp.Versioning.Abstractions": {
@@ -114,23 +115,26 @@
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "QoiCMcPuxC6eqRQmrmF9zBY96ejIznXtve/lJJbonGD9I5Aygf2AUCOWslGiCEtBbfWRSuUnepBjuuVOdAl5ag=="
+ "resolved": "10.0.201",
+ "contentHash": "DMYBnrFZvLnBKn14VavEuuIr31CY6YY2i2L9P8DorS/Qp6ifRR8ZPLdJCFLFfjikNq8DykbYyLd/RP6lSqHcWw==",
+ "dependencies": {
+ "System.IO.Hashing": "10.0.5"
+ }
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
- "resolved": "6.0.5",
- "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ "resolved": "10.0.0",
+ "contentHash": "NCWCGiwRwje8773yzPQhvucYnnfeR+ZoB1VRIrIMp4uaeUNw7jvEPHij3HIbwCDuNCrNcphA00KSAR9yD9qmbg=="
},
"Microsoft.OpenApi": {
"type": "Transitive",
- "resolved": "1.6.22",
- "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ=="
+ "resolved": "2.4.1",
+ "contentHash": "u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "cMtGW5/r0ck72Jg2QwZcNTX59z+iB/B1kW84VMa/eX8L19DhHIuIcQjfK0pgLLBxd60Jl0Bj9GUolcM0MnJnZA=="
+ "resolved": "10.0.201",
+ "contentHash": "QbBYhkjgL6rCnBfDbzsAJLlsad13TlBHqYCFDIw56OO2g6ix+9RsmY8uxiQGdWwFKbZXaXyAA6jDCzFYVGCZDw=="
},
"PPWCode.Util.Time.I": {
"type": "Transitive",
@@ -158,24 +162,29 @@
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "39Z2N3cLHDcDinu2IW5IaQO9wGPKTbc+vKbjIT/6gN3jFYypWY5U3O8i7Y9rmYDgxkm6niICnkcFZ3hEvikIHA==",
+ "resolved": "10.1.7",
+ "contentHash": "EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"dependencies": {
- "Microsoft.OpenApi": "1.6.22"
+ "Microsoft.OpenApi": "2.4.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "x5famjpcgazpT/8eEIlpSYSTZDq6ojMARhuJgj6O67Uk+Yb1DdDM5yikdL7GK1pMk5rYBETUCRWYP6rp+vHnlA==",
+ "resolved": "10.1.7",
+ "contentHash": "PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"dependencies": {
- "Swashbuckle.AspNetCore.Swagger": "7.3.2"
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "SNQuFjYin9KhkoCSVOD5/Y4VEyAjKBDeZkIqqY6x+oI21HMKzzVkeJA9V7tWFXf5df4m/+pTIlbKO7g5W9UroQ=="
+ "resolved": "10.1.7",
+ "contentHash": "iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.5",
+ "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg=="
},
"PPWCode.Vernacular.Contracts.I": {
"type": "CentralTransitive",
@@ -203,11 +212,12 @@
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.103",
- "contentHash": "qZk7r40ftpZY+/sO019sgWAWfNqC2CLSspDdAxNYCJU/bCi/8jVwvOMjzb/d5gjCRNzQ4OCYgBfhdpQyVwLTyw==",
+ "resolved": "10.0.201",
+ "contentHash": "qxYAmO4ktzd9L+HMdnqWucxpu7bI9undPyACXOMqPyhaiMtbpbYL/n0ACyWIJlbyEJrXFwxiOaBOSasLtDvsCg==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "10.0.103",
- "Microsoft.SourceLink.Common": "10.0.103"
+ "Microsoft.Build.Tasks.Git": "10.0.201",
+ "Microsoft.SourceLink.Common": "10.0.201",
+ "System.IO.Hashing": "10.0.5"
}
},
"PPWCode.AspNetCore.Server.I": {
@@ -231,8 +241,8 @@
"PPWCode.Vernacular.Persistence.V": {
"type": "Direct",
"requested": "[1.*, )",
- "resolved": "1.0.0",
- "contentHash": "YsfYBPHs+7UWS1gI4UbezhUS8xno1OfdYq0TaDCU7QSVQlDOiYTgCdOSN/xFy9hmZNz7u3BpcrEexUBUpWGAgQ==",
+ "resolved": "1.1.0",
+ "contentHash": "iXoTU962vqg7k4Xivj5yZKRBwes95XY2pEAQ1nAATv8i1+Krc9rXQsWvrLNCs5gD6Wf7racSjcr3ozoo3MHuWA==",
"dependencies": {
"PPWCode.Vernacular.Contracts.I": "1.5.0",
"PPWCode.Vernacular.Exceptions.V": "1.1.0",
@@ -261,23 +271,23 @@
},
"Swashbuckle.AspNetCore": {
"type": "Direct",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "WEkW7Cl8bexT75eURuqrqM/TQx+ftWKOWlCHzmw3Fl3oAmxiBO/lDVOuuqZsaBCHQIBcZxA6BbyiG5dv2mD2tw==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"dependencies": {
- "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
- "Swashbuckle.AspNetCore.Swagger": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerUI": "7.3.2"
+ "Microsoft.Extensions.ApiDescription.Server": "8.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Annotations": {
"type": "Direct",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "JaGYVVuiHzv3WWanFh/Fzx8ZYOtayNAhso5rwmHdxVYxn3AYJLYdijIBvQaEt4MIcsN0I1zXZfC/YKh47y3ocQ==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "qHNQghKAzrjDEECIlyKEanmWxXDzrh6PyjGWVdql2qZfap0Ionuxam5OrUozibjbgQbVjRmgSXxWC8giIuCbGA==",
"dependencies": {
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2"
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7"
}
},
"Asp.Versioning.Abstractions": {
@@ -303,23 +313,26 @@
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "QoiCMcPuxC6eqRQmrmF9zBY96ejIznXtve/lJJbonGD9I5Aygf2AUCOWslGiCEtBbfWRSuUnepBjuuVOdAl5ag=="
+ "resolved": "10.0.201",
+ "contentHash": "DMYBnrFZvLnBKn14VavEuuIr31CY6YY2i2L9P8DorS/Qp6ifRR8ZPLdJCFLFfjikNq8DykbYyLd/RP6lSqHcWw==",
+ "dependencies": {
+ "System.IO.Hashing": "10.0.5"
+ }
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
- "resolved": "6.0.5",
- "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ "resolved": "8.0.0",
+ "contentHash": "jDM3a95WerM8g6IcMiBXq1qRS9dqmEUpgnCk2DeMWpPkYtp1ia+CkXabOnK93JmhVlUmv8l9WMPsCSUm+WqkIA=="
},
"Microsoft.OpenApi": {
"type": "Transitive",
- "resolved": "1.6.22",
- "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ=="
+ "resolved": "2.4.1",
+ "contentHash": "u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "cMtGW5/r0ck72Jg2QwZcNTX59z+iB/B1kW84VMa/eX8L19DhHIuIcQjfK0pgLLBxd60Jl0Bj9GUolcM0MnJnZA=="
+ "resolved": "10.0.201",
+ "contentHash": "QbBYhkjgL6rCnBfDbzsAJLlsad13TlBHqYCFDIw56OO2g6ix+9RsmY8uxiQGdWwFKbZXaXyAA6jDCzFYVGCZDw=="
},
"PPWCode.Util.Time.I": {
"type": "Transitive",
@@ -347,24 +360,29 @@
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "39Z2N3cLHDcDinu2IW5IaQO9wGPKTbc+vKbjIT/6gN3jFYypWY5U3O8i7Y9rmYDgxkm6niICnkcFZ3hEvikIHA==",
+ "resolved": "10.1.7",
+ "contentHash": "EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"dependencies": {
- "Microsoft.OpenApi": "1.6.22"
+ "Microsoft.OpenApi": "2.4.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "x5famjpcgazpT/8eEIlpSYSTZDq6ojMARhuJgj6O67Uk+Yb1DdDM5yikdL7GK1pMk5rYBETUCRWYP6rp+vHnlA==",
+ "resolved": "10.1.7",
+ "contentHash": "PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"dependencies": {
- "Swashbuckle.AspNetCore.Swagger": "7.3.2"
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "SNQuFjYin9KhkoCSVOD5/Y4VEyAjKBDeZkIqqY6x+oI21HMKzzVkeJA9V7tWFXf5df4m/+pTIlbKO7g5W9UroQ=="
+ "resolved": "10.1.7",
+ "contentHash": "iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.5",
+ "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg=="
},
"PPWCode.Vernacular.Contracts.I": {
"type": "CentralTransitive",
@@ -392,11 +410,12 @@
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
"requested": "[10.*, )",
- "resolved": "10.0.103",
- "contentHash": "qZk7r40ftpZY+/sO019sgWAWfNqC2CLSspDdAxNYCJU/bCi/8jVwvOMjzb/d5gjCRNzQ4OCYgBfhdpQyVwLTyw==",
+ "resolved": "10.0.201",
+ "contentHash": "qxYAmO4ktzd9L+HMdnqWucxpu7bI9undPyACXOMqPyhaiMtbpbYL/n0ACyWIJlbyEJrXFwxiOaBOSasLtDvsCg==",
"dependencies": {
- "Microsoft.Build.Tasks.Git": "10.0.103",
- "Microsoft.SourceLink.Common": "10.0.103"
+ "Microsoft.Build.Tasks.Git": "10.0.201",
+ "Microsoft.SourceLink.Common": "10.0.201",
+ "System.IO.Hashing": "10.0.5"
}
},
"PPWCode.AspNetCore.Server.I": {
@@ -420,8 +439,8 @@
"PPWCode.Vernacular.Persistence.V": {
"type": "Direct",
"requested": "[1.*, )",
- "resolved": "1.0.0",
- "contentHash": "YsfYBPHs+7UWS1gI4UbezhUS8xno1OfdYq0TaDCU7QSVQlDOiYTgCdOSN/xFy9hmZNz7u3BpcrEexUBUpWGAgQ==",
+ "resolved": "1.1.0",
+ "contentHash": "iXoTU962vqg7k4Xivj5yZKRBwes95XY2pEAQ1nAATv8i1+Krc9rXQsWvrLNCs5gD6Wf7racSjcr3ozoo3MHuWA==",
"dependencies": {
"PPWCode.Vernacular.Contracts.I": "1.5.0",
"PPWCode.Vernacular.Exceptions.V": "1.1.0",
@@ -450,23 +469,23 @@
},
"Swashbuckle.AspNetCore": {
"type": "Direct",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "WEkW7Cl8bexT75eURuqrqM/TQx+ftWKOWlCHzmw3Fl3oAmxiBO/lDVOuuqZsaBCHQIBcZxA6BbyiG5dv2mD2tw==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "vgef8DPT411JU5JjHiDbr0WOxsIVuAvegPGtqmm4Na4JRl/264dfBJcGkiPHsAr5P+Vda+qN1rZKRtBl1rF9aA==",
"dependencies": {
- "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
- "Swashbuckle.AspNetCore.Swagger": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2",
- "Swashbuckle.AspNetCore.SwaggerUI": "7.3.2"
+ "Microsoft.Extensions.ApiDescription.Server": "9.0.0",
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7",
+ "Swashbuckle.AspNetCore.SwaggerUI": "10.1.7"
}
},
"Swashbuckle.AspNetCore.Annotations": {
"type": "Direct",
- "requested": "[7.*, )",
- "resolved": "7.3.2",
- "contentHash": "JaGYVVuiHzv3WWanFh/Fzx8ZYOtayNAhso5rwmHdxVYxn3AYJLYdijIBvQaEt4MIcsN0I1zXZfC/YKh47y3ocQ==",
+ "requested": "[10.*, )",
+ "resolved": "10.1.7",
+ "contentHash": "qHNQghKAzrjDEECIlyKEanmWxXDzrh6PyjGWVdql2qZfap0Ionuxam5OrUozibjbgQbVjRmgSXxWC8giIuCbGA==",
"dependencies": {
- "Swashbuckle.AspNetCore.SwaggerGen": "7.3.2"
+ "Swashbuckle.AspNetCore.SwaggerGen": "10.1.7"
}
},
"Asp.Versioning.Abstractions": {
@@ -492,23 +511,26 @@
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "QoiCMcPuxC6eqRQmrmF9zBY96ejIznXtve/lJJbonGD9I5Aygf2AUCOWslGiCEtBbfWRSuUnepBjuuVOdAl5ag=="
+ "resolved": "10.0.201",
+ "contentHash": "DMYBnrFZvLnBKn14VavEuuIr31CY6YY2i2L9P8DorS/Qp6ifRR8ZPLdJCFLFfjikNq8DykbYyLd/RP6lSqHcWw==",
+ "dependencies": {
+ "System.IO.Hashing": "10.0.5"
+ }
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
- "resolved": "6.0.5",
- "contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
+ "resolved": "9.0.0",
+ "contentHash": "1Kzzf7pRey40VaUkHN9/uWxrKVkLu2AQjt+GVeeKLLpiEHAJ1xZRsLSh4ZZYEnyS7Kt2OBOPmsXNdU+wbcOl5w=="
},
"Microsoft.OpenApi": {
"type": "Transitive",
- "resolved": "1.6.22",
- "contentHash": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ=="
+ "resolved": "2.4.1",
+ "contentHash": "u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw=="
},
"Microsoft.SourceLink.Common": {
"type": "Transitive",
- "resolved": "10.0.103",
- "contentHash": "cMtGW5/r0ck72Jg2QwZcNTX59z+iB/B1kW84VMa/eX8L19DhHIuIcQjfK0pgLLBxd60Jl0Bj9GUolcM0MnJnZA=="
+ "resolved": "10.0.201",
+ "contentHash": "QbBYhkjgL6rCnBfDbzsAJLlsad13TlBHqYCFDIw56OO2g6ix+9RsmY8uxiQGdWwFKbZXaXyAA6jDCzFYVGCZDw=="
},
"PPWCode.Util.Time.I": {
"type": "Transitive",
@@ -536,24 +558,29 @@
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "39Z2N3cLHDcDinu2IW5IaQO9wGPKTbc+vKbjIT/6gN3jFYypWY5U3O8i7Y9rmYDgxkm6niICnkcFZ3hEvikIHA==",
+ "resolved": "10.1.7",
+ "contentHash": "EjLibt/d/QuRv170GoihTbcPUpgzSFm2WKHhnGJFZQ03JYzfuitsM79azaAR8NBwRunU7yScSX6HRE5JUlrEMQ==",
"dependencies": {
- "Microsoft.OpenApi": "1.6.22"
+ "Microsoft.OpenApi": "2.4.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "x5famjpcgazpT/8eEIlpSYSTZDq6ojMARhuJgj6O67Uk+Yb1DdDM5yikdL7GK1pMk5rYBETUCRWYP6rp+vHnlA==",
+ "resolved": "10.1.7",
+ "contentHash": "PuubO9BjvNn6U3D9kLpuWKY1JtziWw7SsGBq0age1E50uQjQ8Fzl8s0EwzrLfANqYJNgDnJi9l7N1QxcGVB2Zw==",
"dependencies": {
- "Swashbuckle.AspNetCore.Swagger": "7.3.2"
+ "Swashbuckle.AspNetCore.Swagger": "10.1.7"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "Transitive",
- "resolved": "7.3.2",
- "contentHash": "SNQuFjYin9KhkoCSVOD5/Y4VEyAjKBDeZkIqqY6x+oI21HMKzzVkeJA9V7tWFXf5df4m/+pTIlbKO7g5W9UroQ=="
+ "resolved": "10.1.7",
+ "contentHash": "iJo3ODyUb/M8Vm8AH1r9y9iAba0w95xsCn3zFVl96ISRHbTDWxi+l7oFVCZqUEdjd97B8VMDPnMliWAdomR8uw=="
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "10.0.5",
+ "contentHash": "8IBJWcCT9+e4Bmevm4T7+fQEiAh133KGiz4oiVTgJckd3Q76OFdR1falgn9lpz7+C4HJvogCDJeAa2QmvbeVtg=="
},
"PPWCode.Vernacular.Contracts.I": {
"type": "CentralTransitive",