|
168 | 168 | ### 2.0.0 - March 24 2024 |
169 | 169 | * **Breaking Change** Migrated to .NET 6/7 and F# 7 |
170 | 170 | * **Breaking Change** Implemented GraphQL error handling using `IGQLError` interface instead of exceptions |
171 | | -* **Breaking Change** Parsing variables as `JsonElement` |
| 171 | +* **Breaking Change** Implemented parsing variables as `JsonElement` |
172 | 172 | * **Breaking Change** Added `Type` suffix to all built-in GraphQL type definitions |
173 | 173 | * **New Package** `FSharp.Data.GraphQL.Server.AspNetCore` for ASP.NET Core integration |
174 | | -* Migrated from Paket and FAKE CLI to standard MSBuild tooling |
| 174 | +* Migrated from Paket and FAKE CLI to FAKE build project |
175 | 175 | * Added `Path` to `ResolveFieldContext` |
176 | | -* Added ability to deprecate fields defined with any combination of parameters |
| 176 | +* Added ability to deprecate fields defined with any combination of parameters (more overloads to `Define` static class) |
177 | 177 | * Fixed nullable enum input handling |
178 | | -* Support using F# discriminated unions as enum variables |
179 | | -* Support `Option` variable values for nullable input |
180 | | -* Input lists from query/AST can now be mapped to internal array types |
| 178 | +* Fixed coercing enum type variables as F# # discriminated unions |
| 179 | +* Assed support of `Option` variable values for nullable input types |
| 180 | +* Iplemented mapping of input query/AST lists to .NET array type in addition to F# list |
181 | 181 | * Implemented input object validation with detailed error messages |
182 | 182 | * Added `Define.WrappedScalar` for value object scalar definitions |
183 | 183 | * Implemented coercion of nested input objects |
|
196 | 196 | ### 2.2.1 - June 16 2024 |
197 | 197 | * Fixed `JsonSerializerOptions` read-only instance error |
198 | 198 |
|
199 | | -### 3.0.0 - November 2025 |
| 199 | +### 3.0.0 - November 30 2025 |
200 | 200 | * **Breaking Change** Migrated to .NET 8 and F# 9.0 with FSharp.Core 9.0.x |
201 | 201 | * **Breaking Change** Updated scalar `CoerceOutput` signature to `objnull -> 'Primitive option` |
202 | | -* **Breaking Change** Moved GraphQL error extensions to standard `extensions` field per specification |
| 202 | +* **Breaking Change** Moved GraphQL error extensions to standard `extensions` field according to specification |
203 | 203 | * **Breaking Change** Renamed `ObjectListFilter` type definition to `ObjectListFilterType` |
204 | 204 | * **Breaking Change** Removed `ObjectListFilter.NoFilter` case |
205 | | -* **Breaking Change** Removed Suave support |
206 | 205 | * **Breaking Change** Reworked Relay types to enable async fetching and switched to `ValueOption` |
| 206 | +* Removed unused Suave NuGet package |
207 | 207 | * Added Oxpecker web framework support |
208 | | -* Implemented per-field authorization using ASP.NET authorization policies |
209 | | -* Implemented file upload support via GraphQL Multipart Request Spec with `FileData` type |
210 | | -* Implemented `OfTypes` filter case for `ObjectListFilter` to filter union cases by type |
211 | | -* Implemented `ObjectListFilter` parsing from variables |
212 | | -* Added support for variables within inline object list filters |
213 | | -* Implemented additional list filter operators (`In`, `Contains`, `StartsWith`, `EndsWith`) |
214 | | -* Implemented `StructNullable` to support `ValueOption` fields in input objects |
215 | | -* Implemented case-insensitive input object fields and constructor parameters matching |
| 208 | +* Added per-field authorization sample using ASP.NET authorization policies |
| 209 | +* Added file upload support via GraphQL Multipart Request Spec with `FileData` type |
| 210 | +* Added `OfTypes` filter case for `ObjectListFilter` to filter union cases by type |
| 211 | +* Added `ObjectListFilter` value parsing from variables in addition to supported inline value |
| 212 | +* Added `ObjectListFilter` value parsing from inline object with variables |
| 213 | +* Added `ObjectListFilter` additional operators (`In`, `Contains`, `StartsWith`, `EndsWith`) |
| 214 | +* Added `StructNullable` to support `ValueOption` fields in input objects |
| 215 | +* Added case-insensitive input object fields and constructor parameters matching |
216 | 216 | * Added ability to recognize if an input field is null or not present at all |
217 | 217 | * Added ability to add errors to resolved fields |
218 | | -* Added `FieldDef<'Val, 'Res>` to support resolver-changing middlewares |
| 218 | +* Added `FieldDef<'Val, 'Res>` type to support resolver-changing middlewares |
219 | 219 | * Added GraphQL extensions support via `GQLMessageException` |
220 | 220 | * Added more overloads to `AddGraphQLOptions` including additional converters |
221 | | -* Implemented support for optional properties usage in non-Enumerable LINQ queries |
| 221 | +* Added support for optional properties usage in non-Enumerable LINQ queries |
222 | 222 | * Fixed `ID` type deserialization |
223 | | -* Fixed `Contains` and `In` operators implementation for collections |
| 223 | +* Fixed `ObjectListFilter` `Contains` and `In` operators implementation for collections |
224 | 224 | * Fixed generation of discriminator comparing expressions to be translatable to database queries |
225 | 225 | * Fixed `IInputExecutionContext` resolution |
226 | 226 | * Fixed `graphql-transport-ws` WebSocket implementation |
|
0 commit comments