|
1 | | -#### 0.0.1-beta - April 19 2016 |
| 1 | +#### 0.0.1-beta - 2016-04-19 |
2 | 2 | * Initial release |
3 | 3 |
|
4 | | -#### 0.0.2-beta - September 1 2016 |
| 4 | +#### 0.0.2-beta - 2016-09-01 |
5 | 5 | * Introduced intermediate representation of GraphQL operation execution. |
6 | 6 | * Introduced ability to convert GraphQL query to LINQ. |
7 | 7 | * Replaced current asynchronous API resolver internals. |
8 | 8 | * Ability to use records as complex input variables. |
9 | 9 | * Minor bugfixes and performance optimizations. |
10 | 10 |
|
11 | | -### 0.0.3-beta - March 22 2018 |
| 11 | +### 0.0.3-beta - 2018-03-22 |
12 | 12 | * Introduced a sample for GraphQL over WebSocket Protocol |
13 | 13 | * Introduced support for Stream and Defer directives |
14 | 14 | * Minor bugfixes. |
15 | 15 |
|
16 | | -### 0.0.4-beta - May 31 2018 |
| 16 | +### 0.0.4-beta - 2018-05-31 |
17 | 17 | * Introduced support for middlewares in the execution pipeline. |
18 | 18 | * Introduced new package, named FSharp.Data.GraphQL.Server.Middleware, with generic, built-in middlewares. |
19 | | -* Introduced QueryWeightMiddleware, a generic execution middleware to measure query complexity and optionally block qurey execution with a threshold. |
| 19 | +* Introduced QueryWeightMiddleware, a generic execution middleware to measure query complexity and optionally block query execution with a threshold. |
20 | 20 | * Introduced ObjectListFilterMiddleware, a generic schema compile middleware to add filter options to list fields of specific objects. |
21 | 21 | * Changed GQLResponse object to be a Record, which supports a Metadata bag object, that can be used to hold custom information per query request. |
22 | 22 | * Changed FieldDef interface to be able to support a Metadata bag object, that can be used to hold custom information per field. |
23 | 23 | * ISchema TypeMap is now a mutable object, to ease schema customization through schema compile middlewares. |
24 | | -* Fixing many minor errors when deferring or streaming results with Union and Enum types (specially when queried using fragments). |
| 24 | +* Fixing many minor errors when deferring or streaming results with Union and Enum types (especially when queried using fragments). |
25 | 25 | * Deferred and streamed error results now are handled. |
26 | 26 | * Added support for nested deferred and streamed results (currently does have a maximum degree of two nested operations). |
27 | 27 |
|
28 | | -### 0.0.4-beta01 - May 31 2018 |
| 28 | +### 0.0.4-beta01 - 2018-05-31 |
29 | 29 | * Fix package dependency versions |
30 | 30 |
|
31 | | -### 0.0.5-beta - August 10 2018 |
| 31 | +### 0.0.5-beta - 2018-08-10 |
32 | 32 | * Upgraded dependencies on Newtonsoft.Json to the latest version. |
33 | 33 | * Changing subscription field definitions to have a generic output type - the output is not required to be a GraphQL type anymore. |
34 | 34 | * Implemented experimental support for @live directive, through a subscription system. |
35 | 35 | * Fixed a bug that caused an exception when ToString function is called on an empty NameValueLookup. |
36 | 36 | * Added support for asynchronous subscription field definitions. |
37 | 37 |
|
38 | | -### 0.0.6-beta - August 10 2018 |
| 38 | +### 0.0.6-beta - 2018-08-10 |
39 | 39 | * Fixes for introspection query |
40 | 40 | * Use string identifier to publish to subscription |
41 | 41 |
|
42 | | -### 0.0.7-beta - September 17 2018 |
| 42 | +### 0.0.7-beta - 2018-09-17 |
43 | 43 | * **Breaking Change:** Async Pub/Sub methods for subscription and live directive handler interfaces |
44 | 44 | * Add Long Scalar definition |
45 | 45 |
|
46 | | -### 0.0.8-beta - October 27 2018 |
47 | | -* Add subscription field to intospection schema |
| 46 | +### 0.0.8-beta - 2018-10-27 |
| 47 | +* Add subscription field to introspection schema |
48 | 48 |
|
49 | | -### 0.0.8-beta01 - October 28 2018 |
50 | | -* Add subscription field to intospection schema |
| 49 | +### 0.0.8-beta01 - 2018-10-28 |
| 50 | +* Add subscription field to introspection schema |
51 | 51 |
|
52 | | -### 0.0.9 - November 2 2018 |
| 52 | +### 0.0.9 - 2018-11-02 |
53 | 53 | * Fixed a bug where output def of a subscription field was not reachable for introspection. |
54 | 54 |
|
55 | | -### 0.0.10-beta - November 13 2018 |
| 55 | +### 0.0.10-beta - 2018-11-13 |
56 | 56 | * Deferred and Streamed results now return their fields in the direct result as well. The value of those fields will be an empty list or null. |
57 | 57 | * Live results now send the immediate result in the direct result, instead of the deferred result. |
58 | 58 |
|
59 | | -### 0.0.11-beta - November 21 2018 |
| 59 | +### 0.0.11-beta - 2018-11-21 |
60 | 60 | * Deferred and Streamed results fixes for GQL interfaces. |
61 | 61 |
|
62 | | -### 0.0.12-beta - November 21 2018 |
| 62 | +### 0.0.12-beta - 2018-11-21 |
63 | 63 | * Deferred and Streamed results fixes for GQL interfaces when at the top-level of query. |
64 | 64 |
|
65 | | -### 0.0.16-beta - January 3 2019 |
| 65 | +### 0.0.16-beta - 2019-01-03 |
66 | 66 | * **Breaking Change** The `ISubscriptionProvider` interface now has additional methods to publish to subscriptions by tag. |
67 | 67 | * **Breaking Change** Renamed interface methods in `ISubscriptionProvider` from XxAsync to AsyncXx to reserve the former for TPL extensions. |
68 | 68 | * Fixes for stream and defer execution. |
69 | 69 |
|
70 | | -### 0.0.17-beta - January 11 2019 |
| 70 | +### 0.0.17-beta - 2019-01-11 |
71 | 71 | * Execute deferred results in parallel. |
72 | 72 |
|
73 | | -### 0.0.18-beta - January 16 2019 |
| 73 | +### 0.0.18-beta - 2019-01-16 |
74 | 74 | * Fix dispose of deferred/stream responses. |
75 | 75 |
|
76 | | -### 1.0.0-beta - April 27 2019 |
77 | | -* **Breaking Change** New type provider api! see samples/client-provider for details. |
| 76 | +### 1.0.0-beta - 2019-04-27 |
| 77 | +* **Breaking Change** New type provider API! see samples/client-provider for details. |
78 | 78 | * Fixes for #216 enum as a variable. |
79 | 79 | * Upgraded paket and dependencies. |
80 | 80 |
|
81 | | -### 1.0.0-beta2 - April 27 2019 |
82 | | -* **Breaking Change** GraphQLProvider now makes Nullable graphql inputs optional method arguments instead of options |
| 81 | +### 1.0.0-beta2 - 2019-04-27 |
| 82 | +* **Breaking Change** GraphQLProvider now makes Nullable GraphQL inputs optional method arguments instead of options |
83 | 83 | * **Breaking Change** GraphQLProvider uses the operation name as the generated operation type's names. if no operation name is specified it uses "Operation" + the query string's hash |
84 | 84 | * Make the type provider cross-targeting |
85 | 85 | * **Breaking Change** Add postcompile phase to middleware interface |
86 | 86 |
|
87 | | -### 1.0.0-beta3 - May 10 2019 |
88 | | -* **Breaking Change** GraphQLProvider record types constructors now receives option arguments as optional arguments |
| 87 | +### 1.0.0-beta3 - 2019-05-10 |
| 88 | +* **Breaking Change** GraphQLProvider record types constructors now receive option arguments as optional arguments |
89 | 89 | * Revision on scalar types parsing - fixed some wrong behaviors such as parsing ints as floats |
90 | 90 |
|
91 | | -### 1.0.0-beta4 - May 13 2019 |
92 | | -* Fixing an bug when converting variable types to variables json in a query |
| 91 | +### 1.0.0-beta4 - 2019-05-13 |
| 92 | +* Fixing a bug when converting variable types to variables json in a query |
93 | 93 |
|
94 | | -### 1.0.0-beta5 - May 13 2019 |
95 | | -* Fixing an bug when parsing json objects with no fields in serialization |
| 94 | +### 1.0.0-beta5 - 2019-05-13 |
| 95 | +* Fixing a bug when parsing json objects with no fields in serialization |
96 | 96 |
|
97 | | -### 1.0.0-beta6 - May 17 2019 |
| 97 | +### 1.0.0-beta6 - 2019-05-17 |
98 | 98 | * Changing constructors of provided types to have overloads instead of optional parameters (needed because of a limitation of the Type Provider SDK) |
99 | 99 | * Adding support for field aliases |
100 | 100 | * Operation result errors and custom data now are provided as their respective types instead of options (`Operation Error []` and `Map<string, obj>`) |
101 | 101 |
|
102 | | -### 1.0.0-beta7 - May 17 2019 |
| 102 | +### 1.0.0-beta7 - 2019-05-17 |
103 | 103 | * Minor bug fixes |
104 | 104 | * Fixing an error on overload constructor definition |
105 | 105 |
|
106 | | -### 1.0.0-beta8 - May 22 2019 |
| 106 | +### 1.0.0-beta8 - 2019-05-22 |
107 | 107 | * Performance improvements |
108 | 108 |
|
109 | | -### 1.0.0-beta9 - May 22 2019 |
| 109 | +### 1.0.0-beta9 - 2019-05-22 |
110 | 110 | * Fixing dependency issue on Server component |
111 | 111 |
|
112 | | -### 1.0.0-beta90 - May 29 2019 |
| 112 | +### 1.0.0-beta90 - 2019-05-29 |
113 | 113 | * Fixing a wrong cast for System.Uri type |
114 | 114 | * Adding support for file uploads through [GraphQL Multipart Request Spec](https://github.com/jaydenseric/graphql-multipart-request-spec) |
115 | 115 | * Changing variable parameters of Run/AsyncRun methods to work as overloaded methods instead of one having optional parameters |
116 | 116 | * Minor bug fixes |
117 | 117 |
|
118 | | -### 1.0.0 - July 4 2019 |
119 | | -* Changing the internal client of the Type provider (`System.Http.HttpClient`) |
| 118 | +### 1.0.0 - 2019-07-04 |
| 119 | +* Changing the internal client of the Type provider (`System.Net.Http.HttpClient`) |
120 | 120 | * Fixing several minor bugs of the file upload system in the client provider |
121 | 121 | * Limiting the upload type of the client provider to be a scalar type (provider fails if it is not) |
122 | 122 | * If an upload type is specified and it is not used in a query, client provider defaults to standard HTTP protocol instead of the multipart request |
123 | 123 | * Implementing a validation system for queries based on the [GraphQL Spec](https://graphql.github.io/graphql-spec/June2018/#sec-Validation) |
124 | 124 | * Making validation mandatory on the server component |
125 | 125 | * Implemented a cache system for query validation on both server and client components |
126 | 126 | * Client component can optionally disable query validation |
127 | | -* Updating parser to support unamed operations alongside short handed queries |
| 127 | +* Updating parser to support unnamed operations alongside shorthand queries |
128 | 128 | * Adding null value support for the AST Input Values (it was previously parsed as an Enum Value) |
129 | 129 | * **Breaking Change** Renaming `FSharp.Data.GraphQL.Server.Middlewares` package to `FSharp.Data.GraphQL.Server.Middleware` |
130 | 130 |
|
131 | | -### 1.0.1 - July 5 2019 |
| 131 | +### 1.0.1 - 2019-07-05 |
132 | 132 | * Adjusting package dependencies (`FParsec`, `System.Net.Http`, and `FSharp.Data.GraphQL.Server` are not locked anymore) |
133 | 133 |
|
134 | | -### 1.0.2 - August 19 2019 |
| 134 | +### 1.0.2 - 2019-08-19 |
135 | 135 | * fixed false positive validation errors related to variable usage. |
136 | 136 |
|
137 | | -### 1.0.3 - March 3 2020 |
| 137 | +### 1.0.3 - 2020-03-03 |
138 | 138 | * Correct printing of queries without names |
139 | 139 | * Correct printing of ListValue and ObjectValue |
140 | 140 | * Traverse list values in argument lists |
141 | | -* Added test cases for object inputs for graphql functions |
| 141 | +* Added test cases for object inputs for GraphQL functions |
142 | 142 |
|
143 | 143 |
|
144 | | -### 1.0.4 - March 22 2020 |
| 144 | +### 1.0.4 - 2020-03-22 |
145 | 145 | * TypeProvider now treats custom scalars as strings |
146 | 146 | * The Guid scalar was mapped to a DateTime |
147 | 147 |
|
148 | 148 |
|
149 | | -### 1.0.5 - March 23 2020 |
| 149 | +### 1.0.5 - 2020-03-23 |
150 | 150 | * Support opening static classes |
151 | 151 | * Add additional case in client to support failed requests that don't return a path. |
152 | 152 |
|
153 | | -### 1.0.6 - December 15 2020 |
| 153 | +### 1.0.6 - 2020-12-15 |
154 | 154 | * TypeProvider accepts IHttpClientFactory as input |
155 | 155 |
|
156 | | -### 1.0.7 - December 30 2020 |
| 156 | +### 1.0.7 - 2020-12-30 |
157 | 157 | * Add static TypeProvider parameter `explicitOptionalParameters`. |
158 | 158 |
|
159 | | -### 1.0.8 - April 18 2021 |
| 159 | +### 1.0.8 - 2021-04-18 |
160 | 160 | * Remove Desktop build |
161 | 161 | * Update documentation and build tools |
162 | 162 | * Upgrade build scripts |
163 | 163 | * Migrate from netcoreapp2.0 to net5.0 for tests and samples |
164 | 164 | * Target netstandard2.0 exclusively for Type Providers |
165 | | -* Make FSharp.Data.GraphQL.Shared a Nuget package |
166 | | -* Fix parser bug. Thanks to @njlr |
| 165 | +* Make FSharp.Data.GraphQL.Shared a NuGet package |
| 166 | +* Fix parser bug. Thanks to @njlr |
| 167 | + |
| 168 | +### 2.0.0 - 2024-03-24 |
| 169 | +* **Breaking Change** Migrated to .NET 6/7 and F# 7 |
| 170 | +* **Breaking Change** Implemented GraphQL error handling using `IGQLError` interface instead of exceptions |
| 171 | +* **Breaking Change** Implemented parsing variables as `JsonElement` |
| 172 | +* **Breaking Change** Added `Type` suffix to all built-in GraphQL type definitions |
| 173 | +* **New Package** `FSharp.Data.GraphQL.Server.AspNetCore` for ASP.NET Core integration |
| 174 | +* Migrated from Paket and FAKE CLI to FAKE build project |
| 175 | +* Added `Path` to `ResolveFieldContext` |
| 176 | +* Added ability to deprecate fields defined with any combination of parameters (more overloads to the `Define` static class) |
| 177 | +* Added support of `Option` variable values for nullable input types |
| 178 | +* Added mapping of input query/AST lists to .NET array type in addition to F# list |
| 179 | +* Added input object validation with detailed error messages |
| 180 | +* Added `Define.WrappedScalar` for value object scalar definitions |
| 181 | +* Added coercion of nested input objects |
| 182 | +* Added support for `ValueOption` in `AutoField` |
| 183 | +* Improved WebSocket handling to eliminate large array allocations |
| 184 | +* Fixed nullable enum input handling |
| 185 | +* Fixed coercing enum type variables as F# discriminated unions |
| 186 | +* Fixed various introspection and default value encoding issues |
| 187 | + |
| 188 | +### 2.1.0 - 2024-04-13 |
| 189 | +* Improved server exception logging by including exception in log message |
| 190 | +* Documentation and README improvements |
| 191 | + |
| 192 | +### 2.2.0 - 2024-05-08 |
| 193 | +* Improved `AddGraphQLOptions` |
| 194 | +* Added Altair and GraphiQL to sample projects |
| 195 | + |
| 196 | +### 2.2.1 - 2024-06-16 |
| 197 | +* Fixed `JsonSerializerOptions` read-only instance error |
| 198 | + |
| 199 | +### 3.0.0 - 2025-11-30 |
| 200 | +* **Breaking Change** Migrated to .NET 8 and F# 9.0 with `FSharp.Core` 9.0.x |
| 201 | +* **Breaking Change** Updated scalar `CoerceOutput` signature to `objnull -> 'Primitive option` |
| 202 | +* **Breaking Change** Moved GraphQL error extensions to standard `extensions` field according to specification |
| 203 | +* **Breaking Change** Renamed `ObjectListFilter` type definition to `ObjectListFilterType` |
| 204 | +* **Breaking Change** Removed `ObjectListFilter.NoFilter` case |
| 205 | +* **Breaking Change** Reworked Relay types to enable async fetching and switched to `ValueOption` |
| 206 | +* **Breaking Change** `Giraffe` web framework integration moved to separate package |
| 207 | +* **New Package** `FSharp.Data.GraphQL.Server.Giraffe` for Giraffe web framework integration |
| 208 | +* **New Package** `FSharp.Data.GraphQL.Server.Oxpecker` for Oxpecker web framework integration |
| 209 | +* Removed unused Suave NuGet package |
| 210 | +* Added `Oxpecker` web framework support |
| 211 | +* Added per-field authorization sample using ASP.NET authorization policies |
| 212 | +* Added file upload support via GraphQL Multipart Request Spec with `FileData` type |
| 213 | +* Added `OfTypes` filter case for `ObjectListFilter` to filter union cases by type |
| 214 | +* Added `ObjectListFilter` value parsing from variables in addition to supported inline value |
| 215 | +* Added `ObjectListFilter` value parsing from inline object with variables |
| 216 | +* Added `ObjectListFilter` additional operators (`In`, `Contains`, `StartsWith`, `EndsWith`) |
| 217 | +* Added `StructNullable` to support `ValueOption` fields in input objects |
| 218 | +* Added case-insensitive input object fields and constructor parameters matching |
| 219 | +* Added ability to recognize if an input field is null or not present at all |
| 220 | +* Added ability to add errors to resolved fields |
| 221 | +* Added `FieldDef<'Val, 'Res>` type to support resolver-changing middlewares |
| 222 | +* Added GraphQL extensions support via `GQLMessageException` |
| 223 | +* Added more overloads to `AddGraphQLOptions` including additional converters |
| 224 | +* Added support for optional properties usage in non-Enumerable LINQ queries |
| 225 | +* Fixed `ID` type deserialization |
| 226 | +* Fixed `ObjectListFilter` `Contains` and `In` operators implementation for collections |
| 227 | +* Fixed generation of discriminator comparing expressions to be translatable to database queries |
| 228 | +* Fixed `IInputExecutionContext` resolution |
| 229 | +* Fixed `graphql-transport-ws` WebSocket implementation |
| 230 | +* Fixed ability to override `GraphQLRequestHandler<'Root>` |
| 231 | +* Fixed input object CLR property type validation against GraphQL scalar definitions |
| 232 | +* Migrated all solutions to SLNX format |
| 233 | +* Various performance optimizations and bug fixes |
0 commit comments