All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- update MSRV to
1.86.0 - Allow exporting SDL with spaces #1688
- Update GraphiQLSource to use React v18 #1705
- fix: generate description of directives. #1681
- feat: add @requiresScopes support #1695
- chore: fix clippy and fmt errors #1713
- use preferred mime-type #1714
- Add GraphiQLSource version #1704
- dynamic: fixed
__typenamealways returnednullwhen introspection was disabled. - update MSRV to
1.83.0
- feat: Add
custom-error-conversionfeature #1631 - Update graphql annotation directive property to support paths #1663
- Update error messages for character length validation #1657
- Upgrade to axum v0.8 #1653
- Fix position calculator for unicode symbols #1648
- add support introspection inputValueDeprecation #1621
- update MSRV to
1.83.0 - Add specified complexity for fields in
SimpleObject. - feat: expose SDL export utilities in ExtensionContext #1606
- feat(dynamic-schema): specify type directives in schema #1607
- Make http2 optional for actix #1612
- chore: use std OnceLock instead LazyLock #1613
- Add UUID validator #1588
- Update secrecy and support new types #1627
- fix #1626
- Allow non-native concrete types in generic structs deriving SimpleObject + InputObject #1629
- chore: update opentelemetry to 0.27 #1614
- connection: Allow 'first' and 'last' parameters to exist at the same time #1602
- feat(dynamic-schema): specify type directives in schema #1607
- Make boxed_any and borrowed_any for FieldValue work with trait objects again #1636
- Add new altair option #1642
- Fix Clippy for latest stable #1639
- Add
boxed-traitfeature #1641 - Support directive in complex object #1644
- fix #1598
- add
SchemeBuilder.limit_directivesmethod to set the maximum number of directives on a single field. - remove needless ?Sized #1593
- fix: generate each variant description correctly. #1589
- Make
From<T>for [Error] set source #1561 - feat(graphiql): add support for WS connection params #1597
- add
on_pingcallback toWebSocket
- chore: Make Extensions nullable #1563
- expose
rejectioninasync_graphql_axum#1571 - Updated crate
timeto3.36, as it fixes a compilation error in rust1.80#1572 - Impl
Debugfordynamic::FieldValue& Improve error messages for its methods #1582 - Support scraping
#[doc = ...]attributes when generating descriptions #1581 - add
Websocket::keepalive_timeoutmethod to sets a timeout for receiving an acknowledgement of the keep-alive ping.
- Support raw values from serde_json #1554
- The custom directive
ARGUMENT_DEFINITIONis not being output at the appropriate location in SDL #1559 - Support for JSON extended representations of BSON ObjectId and Uuid #1542
- feat: get directives from SelectionField #1548
- Support Directives on Subscriptions #1500
- fix subscription err typo #1556
- add license files to each project #1523
- Improve alignment of directive behavior with GraphQL spec #1524
- dynamic schema: pass default vals to ResolverContext #1527
- Add altair source #1530
- feat: Add support for using
InterfaceandOneofObjecton the same struct #1534
- Fix compiler and clippy warnings #1501
- Added support for deploying to wasm targets with axum - (without subscriptions) #1517
- Bump opentelemetry (0.21.0 -> 0.22.0) #1513
- Update lru dependency #1504
- Support TypeDirective for ArgumentDefinition, Enum, EnumValue, InputFieldDefinition, InputObject, Interface #1509
- Add
displayattribute for Enum macro #1518
- Sort schema fields & enums if required #1475
- Change the
type_nameofEmptySubscriptionfix #1435 #1475 - add
Request::set_parsed_querymethod #1483 - Upgrade strum to 0.26 #1485
- Fix validation of non-nullable variables with default values #1491
- add
NextExecute::run_with_datamethod to attach context data before execution - feat: add registry method in dynamic::Registry #1492
- Allow non-scalars to be used as directive arguments #1493
- fix: add description to __schema introspection result #1489
- Fix
#[derive(OneofObject)]rejecting enums where the type comes from a macro substitution #1473 - Optimize object proc-macro codegen #1470
- Use
impl Futureinstead ofasync-traitin most traits. #1468 - Upgrade
base64to0.21#1466 - Standardize space between Args, Lists and Binary items #1392
- feat: support bigdecimal 0.4.x #1358
- Add
ShareableAttribute To InputObjectField #1459 - Feature Generic Unions #1424
- Address axum integration compilation error with non-Sync body #1460
- fix: date cursor precision string format #1462
- upgrade to
http1 - Feature extend ResolveInfo with field attribute #1428
- Clean up example docs #1411
- Run batch requests concurrently #1420
- Update opentelemetry to
v0.21.x#1422
- bump opentelemetry
0.20.0#1406 - fix check for serial #1405
- fixes complexity visitor
- bump Rocket from
0.5.0-rc.2to0.5.0-rc.4
- add support uploading files in dynamic schema #1384
- Include
@composeDirectivein Federation's_servicefield and document#[TypeDirective]#1400
- initialize source field in tracing extension parse_query method #1367
- test(variables): empty object passes but empty array fails #1377
- Add support for entities without a reference resolver #1378
- Fixes #1356
- fixed SDL formatting for resolver argument comments regressed #1363
- Implement exporting argument documentation #1352
- Add
ValueAccessor::as_valueandListAccessor::as_values_slicemethods #1353 - dynamic: fixes key not found when using entity resolver #1362
- fix panic in complexity visitor #1359
- update MSRV to
1.70.0
- Parse "repeatable" in directive definitions. #1336
- add support
multipart/mixedrequest. #1348 - async-graphql-actix-web: add
GraphQLhandler. - async-graphql-axum: add
GraphQLservice.
- dynamic: fix the error that some methods of
XXXAccessorreturn reference lifetimes that are smaller than expected. - dynamic: no longer throws an error if the Query object does not contain any fields but the schema contains entities.
- chore: make accessors public and reexport indexmap #1329
- feat: added
OutputTypeimplementation forstd::sync::Weak#1334
- dynamic: remove
TypeRefInner - update MSRV to
1.67.0
- Bump
synfrom1.0to2.0 - Bump
darlingfrom0.14to0.20 - Bump
indexmapfrom1.6.2to2 - Attributes
guard,process_with,complexitysupport expression or string as value #1295 - Schema (type) level directive support with optional support of federation composeDirective #1308
- Add support for generic structs derriving InputObject and SimpleObject #1313
- chore: trim up some unnecessary code #1324
- Adds
Dataloader::get_cached_valuesmethod to the dataloader cache so that callers can access the contents of the cache without knowing the keys. #1326
-
Since
syn 2.0no longer supports keywords as meta path, rename the parameter used to specify interface field types fromtypetoty.
#[derive(Interface)]
#[graphql(field(name = "id", ty = "&i32"))] // rename from type to ty
enum Node {
MyObj(MyObj),
}- Change the parameter
locationof the macroDirectiveto PascalCase
// #[Directive(location = "field")]
#[Directive(location = "Field")]
pub fn lowercase() -> impl CustomDirective {
LowercaseDirective
}- Upgrade opentelemetry to 0.19.0 #1252
- Remove internal
CursorScalartype and exposeEdge::cursormember #1302
- Improve documentation on Dataloader #1282
- Prevent recursive input type checking from hitting stack overflow #1284
- update MSRV to
1.65.0
- Disable default-features in workspace.dependencies #1232
- Copy edit extensions section of The Book #1234
- disable default features for async-graphql in workspace dependencies #1237
- chore: make edge field and connection field shareable #1246
- Added 3 new fns to the ObjectAccessor. #1244
- Dataloader futures lose span context #1256
- Propagate ErrorExtensionValues when calling InputValueError.propagate #1257
- Correct error string for object in ValueAccessor #1260
- docs: Tweak dataloader example and link to full example #1194
- docs: Mention the importance of using dataloader with federation/entities #1194
- chore: enable GraphiQL/Playground via feature flag #1202
- fix: Export directives to federation SDL so they can be composed. #1209
- Fix doc contents details and add AutoCorrect lint to CI. #1210
- fix: provide correct type for _service with dynamic schema #1212
- feat(subscription): support generics in MergedSubscription types #1222
- feat: modify Connection to allow optionally disable nodes field in gql output. #1218
- fixes interface type condition query #1228
- fixes #1226
- update MSRV to
1.64.0
- dynamic schema: add boxed_any function #1179
- Improve GraphiQL v2 #1182
- Fix: __Type.oneOf to __Type.isOneOf #1188
- Implement From for ConstValue #1169
- Fixes #1192
- Fix named_list_nn #1172
- Add
DynamicRequestExt::root_valueto specify the root value for the request - Change
CustomValidator::checkreturns error type fromStringtoInputValueError<T>. - Add support that custom validators can set error extensions. #1174
- Fixes #1157
- Add boolean dynamic ValueAccessor method #1153
- Update MSRV to
1.60.0 - [async-graphql-axum] bump axum from
0.5.1to0.6.0#1106
- Add support to federation(v2) for dynamic schema
- Simplified way to create type reference
dynamic::TypeRef
- Keep object 'implements' order stable in SDL export #1142
- Fix regression on
ComplexObjectdescriptions #1141
- Add support for dynamic schema
- Add
tempfilefeature, enabled by default
- Add support for using
UnionandOneofObjecton the same struct #1116
- Add credentials to GraphiQL 2 #1105
- Add TypeName support for InputObject #1110
- Fix error message #1058
- Add TypeName support for Enum, Union, OneofInputObject, Subscription, MergedObject, MergedSubscription, Scalar, Interface, Directive
- Fixes #1052
- Implement
CustomValidator<T>forF: Fn(&T) -> Result<(), E: Into<String>> - Add
validatorattribute toInputObjectmacro #1072
- Dynamic Document Title for GraphiQL v2 and GraphQL Playground #1099
- Skip tracing for introspection queries. #841
- Add
SchemaBuilder::disable_suggestionsmethod to disable field suggestions. #1101
- Implement a simple approach to using the link directive. #1060
- docs: Update federation docs with examples of each directive. #1080
- Add support for parse request from query string. #1085
- Compare to expected schema #1048
- docs: readme flair #1054
- Remove
bson-uuidfeature #1032 - Add
no_cacheforcache_controlattribute #1051 - Resurrect code generation through tests #1062
- Support for primitive type in CursorType #1049
- Add
SDLExportOptions::include_specified_bymethod to enablespecifiedBydirective #1065
- Update MSRV to
1.59.0 - Support
@specifiedBydirective in SDL export #1041 - Add GraphiQL v2 #1044
- Export SDL: consistently avoid trailing spaces #1043
- Define
overridedirective on fields #1029 - Add
@tagsupport #1038 - Export SDL: avoid trailing space for scalar definitions #1036
- Fixes #1039
- Fixes extension
request.data(X)being lost in the resolver #1018 - Add Apollo federation
@shareabledirective support #1025 - Add Apollo Federation
@inaccessibledirective support #1026
on_connection_inittakesFnOnceinstead ofFn#1022
- Add tracing to dataloader methods when the tracing feature is enabled. #996
- Limit parser recursion depth to
64.
- Limit execution recursion depth to
32by default.
- Fix serializing of JSON default values #969
- Bump
rocket-0.5.0-rc.1torocket-0.5.0-rc.2forasync-graphql-rocket#968 - Implement
DefaultforStringNumber#980 - Implement
GuardforFn - Fix impossible to specify both
nameandinput_name#987
- Bump Actix-web from
4.0.1to4.1.0 - Add a
prefer_single_line_descriptionsoption onSDLExportOptions#955 - Fixes #957
- Fixes #943
- Custom error type in axum request extractor #945
- Add nodes exposure on
ConnectionTypeso nesting through edges isn't always needed. #952 - Make email-validator optional #950
- Expose
Edge::nodeto allow better testing. #933 - Integrate with the
bigdecimalcrate. #926 - Improve the examples in the book. #940
- Fixed #941
- Fixed #848
- Bump
darlingfrom0.13.0to0.14.0#939 - Fixed #9461
- Add
Schema::build_with_ignore_name_conflictsmethod to specifies a list to ignore type conflict detection.
- Implement the
ConnectionNameTypeandEdgeNameTypetraits to specify GraphQL type names forConnectionandEdge, which can be automatically generated usingDefaultConnectionNameandDefaultEdgeName. - Add
#[non_exhaustive]attribute to Request/Response types. - Introduce ability to pre-parse Request's query. #891
- Add
introspection-onlymode. #894 - Add
bson-uuidfeature to implementScalarTypeforbson::Uuid. #875 - Bump
regexcrate from1.4.5to1.5.5. #862 - Bump
chrono-tzcrate from0.5.3to0.6.1. #831 - Move the pest parser code generation step into a test. #901
- Update
logto version0.4.16. #903 - Added impl of
CursorTypefor floats #897 - Implement
OutputTypefortokio::sync::RwLockandtokio::sync::Mutex. #896 - Bump
uuidto1.0.0. #907 - Add some options for exporting SDL. #877
- Cache parsed
ExecuteDocumentin APQ. #919 - Fixed
OneofObjectrestriction on inner types being unique. #923
- Update Axum integration to Axum 0.5.1 #883
- Support macro type in enum variant. #884
- Introduce process_with for input object #817
- Add
MaybeUndefined::update_tomethod. #881
- Panics when the same Rust type has the same name. #880
- Make
HashMapmore generics forInputOutputandOutputType. - Add support
groupattribute to Object/SimpleObject/ComplexObject/Subscription macros. #838 - Fixed recursive generic input objects failing to compile. #859
- Add
ErrorExtensionValues::getmethod. #855
- Export
@oneOfdirective to SDL when Oneof type is defined. #766
- Add support for oneof field on object. #766
- Bump
Actix-webfrom4.0.0-rc.3to4.0.1.
- Add
OneOfObjectmacro to support for oneof input object. - Bump actix-web from
4.0.0-rc.2to4.0.0-rc.3.
- Implement
ScalarTypefortime::Date. #822
- Pass context to resolvers with flatten attribute. #813
- Add support for using both
ComplexObjectandInputObject. - Bump
Actix-webfrom4.0.0-beta.19to4.0.0-rc.2.
- Implement
InputTypeandOutputTypeforBox<[T]>andArc<[T]>. #805
- Fix possible stack overflow in validator, thanks @quapka.
- Add
skip_inputattribute toInputObjectmacro,skip_outputattribute toSimpleObjectmacro.
- Fixed some integrations overwritten HTTP headers. #793
- Fixed variable type not checked when given a default value. #795
- Remove
'staticbound forimpl From<T> for Error.
- Bump hashbrown from
0.11.2to0.12.0. - Implement
InputTypeforBox<str>andArc<str>. #792 - Add scalars for the
timecrate's datetime types. #791 - Add
DataContexttrait. #786
- Add support
flattenattribute forSimpleObject,ComplexObjectandObjectmacros. #533 - Actix integration: cbor response support + error handling improvements #784
- Add
UnionandInterfacesupport for trait objects. #780
- Bump
lruto0.7.1. #773 - Align
indexmapversion to1.6.2. #776 - Bump actix-web from
4.0.0-beta.18to4.0.0-beta.19. - Fix the generic
SimpleObjectcan't define the lifetimes. #774
- Add
InputType/OutputTypesupport forhashbrowncrate. - Bump actix-web from
4.0.0-beta.14to4.0.0-beta.18. #768
- Federation's
_Entityshould not be sent if empty as it's in conflict with GraphQL Union type validation #765. - Fix field guards not working on
ComplexObject. #767
- Bump poem to
1.2.2.
- Bump poem to
1.2.1.
- Bump actix-web from
4.0.0-beta.11to4.0.0-beta.14.
- [async-graphql-axum] bump axum from
0.3to0.4.
- No longer assumes that a subscription stream that failed to resolve has ended. #744
- Rework to implement
InputTypeandOutputTypeforHashMapandBTreeMap.
- Fix possible deadlock in dataloader. #555
- Add some helper methods for
BatchRequest.- BatchRequest::iter
- BatchRequest::iter_mut
- BatchRequest::variables
- BatchRequest::data
- BatchRequest::disable_introspection
- Fix implicit interfaces not being exposed via the __schema introspection. #741
- Fix panic on f32-64::INFINITE/f32-64::NEG_INFINITE/f32-64::NAN output. #735
- Fix the custom validator cannot work on
Option<Vec<T>>.
- Fix the validator cannot work on
Option<Vec<T>>.
#[graphql(validator(list))]no longer applies tomax_itemsandmin_items.- Implement
InputValue/OutputValueforserde_json::Value. - Add support for
SmolStrvia a feature. #730
- Fix error extensions cause stack overflow. #719
- Custom directives. Book
- Remove skipped fields from the document before executing the query.
- Add
isRepeatablefield to__Directive- [GraphQL - October 2021]
- Remove
OutputJsonbecauseJsoncan replace it. - Allowed use validators on wrapper types, for example:
Option<T>,MaybeUnefined<T>.
- [integrations] Make
GraphQLWebSocket::newuse generic stream. - [integrations] Add
GraphQLWebSocket::new_with_pairmethod.
- Add
url,regexandipvalidators.
- Remove the
ctxparameter ofCustomValidator::check. #710
- Change the signature of the
connection::queryfunction to allow the callback to use any type that implementsInto<Error>. - Remove
ResolverErrorand useError::new_with_sourceinstead. - Add
ErrorExtensionValues::unsetmethod. - Use the
SimpleObjectmacro and theInputObjectmacro at the same time. - Types that are not referenced will be hidden in introspection.
- Make the API of integrations is more consistent.
- Remove
async-graphql-tide. - Rework validators. Book
- Rework guards. Book
- Implemented CursorType for i32/i64. #701
- An error is returned when the number fails to parse. #704
- Fix Federation entity union is empty during schema introspection. #700
- Fix the problem that
EmptyMutationmay cause when used inMergedObject. #694 - If a GraphQL name conflict is detected when creating schema, it will cause panic. #499
- Add
chrono::Durationcustom scalar. #689 - Implement
From<Option<Option<T>>>forMaybeUndefined<T>. - Add
MaybeUndefined::as_opt_ref,MaybeUndefined::as_opt_deref,MaybeUndefined::map,MaybeUndefined::map_value,MaybeUndefined::contains,MaybeUndefined::contains_value, andMaybeUndefined::transposemethods. - Made
MaybeUndefined::is_undefined,MaybeUndefined::is_null,MaybeUndefined::is_value,MaybeUndefined::valueandMaybeUndefined::as_opt_refconst. - Add
ResolverErrortype. #671 - [async-graphql-axum] Bump axum from
0.2.5to0.3. - [async-graphql-poem] Export the HTTP headers in the
Context.
- Use Rust
2021edition. - Subscription typename - [GraphQL - October 2021] #681
- Allow directive on variable definition - [GraphQL - October 2021] #678
- Specified By - [GraphQL - October 2021] #677
- Add
specified_by_urlforTz,DateTime<Tz>,Url,UuidandUploadscalars. - Number value literal lookahead restrictions - [GraphQL - October 2021] #685
- [async-graphql-poem] Bump poem to
1.0.13.
- Add derived for object & simple object & complex object. #667 #670
- Respect query object field order. #612
- Bump poem from
0.6.6to1.0.7.
- Implement
Defaultfor ID #659. - Implement
ScalarTypeforbson::Bsonandbson::Document. #661 - Add
CharsMinLengthandCharsMaxLengthvalidators. #656 - Fix the
Subscriptionmacro to work on Rust 2021. #665
- Add
visiblemacro argument for union type. #655
- Add
DataLoader::enable_all_cacheandDataLoader::enable_cachemethods. #642 - Change the execution order of
chainandraceguards. #614 - Change log level from
errortoinfo. #518
- Add support for
graphql-wspings. #635 - Add feature gate
websocketfor async-graphql-tide. #636 - Implement GraphQL enum to
Valueconversion. #617 - Implement
ScalarTypeforHashMap/BTreeMapto useToString/FromStr. #585
- Add support for serde_cbor. #619
- Released
Axumintegration.async-graphql-axum
- Implement
From<MaybeUndefined<T>> for Option<Option<T>>. #599 - Add human readable for serializer. #604
- Change
GraphQLPlaygroundConfig::with_settingto acceptimpl Into<Value>#583 - Remove unnecessary unwrap in multipart handler #594
- Add binary types to
ConstValueandValue. #569 - Implemented
OutputTypefor Bytes. - Changed Lookahead to support multiple fields. #574
- Implement
TryFrom<&[SelectionField<'a>]>forLookahead<'a>. #575 - Attach custom HTTP headers to the response when an error occurs. #572
- Allow field visible to support paths. #578
- Add
listattribute to the input value validator. #579
- Add support for generic
ComplexObject. #562
-
Implement
From<SelectionField>forLookahead. #557 -
Add Decimal scalar (from
rust_decimalcrate) #559
- Allows to get the actual field name and alias in
ResolveInfo. #551
- Fix the bug that
MergedObjectmay cause panic. #539
-
Bump upstream crate
bsonfromv1.2.0tov2.0.0-beta.1. #516 -
Add
serialattribute forObject,SimpleObjectandMergedObjectmacros. #539 -
Remove the
staticconstraint of thereceive_bodyandreceive_batch_bodyfunctions. #544 -
Implement
InputTypeandOutputTypefor[T; N]array.
- Rework error propagation. #531
-
Add support for returning multiple resolver errors. #531
-
Bump upstream crate
multerfromv1.2.2tov2.0.0. -
Aligned NaiveDateTime formatting with DateTime. #535
-
Allow the ability to set GraphQL Playground settings. #508
-
WebSocket is now generic in graphql_subscription_upgrade functions. #530
-
Removed
Copytrait from initializer ingraphql_subscription_with_data. #530
-
If
InputObjectcontains an unnamed field, the correct error message will be given. #498 -
Added
Websocket::with_message_streamfor client message customization. #501 -
Added the
Secrettype using secrecy crate.
- Fix the problem that the
ComplexObjectmacro cannot work due to thesecretattribute.
- Fixed an error in exporting Federation SDL.
- Now when the resolver returns the
Resulttype,Ecan be all types that implementasync_graphql::Into<Error>.
- Fix stack overflow during Registry::create_type for recursive type while running Schema::build. #474
- Add
secretattribute for arguments, they will not appear in the log.
#[Object]
impl Query {
async fn login(&self, username:String, #[graphql(secret)] password: String) -> i32 {
todo!()
}
}- Rework
Extension, now fully supports asynchronous, better to use than before, and can achieve more features, it contains a lot of changes. (if you don't have a custom extension, it will not cause the existing code to fail to compile)
- Add
async_graphql_warp::graphql_protocol,async_graphql_warp::graphql_subscription_upgradeandasync_graphql_warp::graphql_subscription_upgrade_with_datato control WebSocket subscription more finely.
- Add the
BuildHashergeneric parameter todataloader::HashMapCacheto allow custom hashing algorithms. #455
- Add cache support for DataLoader. #455
- Implements
ScalarTypeforserde_json::Value. - Add
SelectionField::aliasandSelectionField::argumentsmethods.
- Prevent Warp WS Close, Ping, and Pong messages from being parsed as GraphQL #459
- Fix Schema::sdl() does not include subscription definitions. #464
- Remove
SchemaBuilder::override_namemethod. #437
- Add
nameandvisibleattributes forNewtypemacro for define a new scalar. #437 NewTypemacro now also implementsFrom<InnerType>andInto<InnerType>.
- Add
Request::disable_introspectionmethod. #456
- Fix chrono-tz integration. #452
- Rework Extension & TracingExtension & OpenTelemetryExtension
- In websocket, if the client sends
startbeforeconnection_init, the connection will be immediately disconnected and return1011error. #451
- Fix docs.
- Add
extension::OpenTelemetry.
- Remove
TracingConfig, now Request span always takes the current span as the parent, so this option is no longer needed. - Remove
multipartfeature.
- Now all features are not activated by default.
- Add
SchemaBuilder::enable_subscription_in_federationmethod. #449
- Fix tracing extension doesn't work with async code. #448
- Add ComplexObject macro.
- Add
DataLoader::loadermethod. #441 - Fix the validation does not work on some inline fragments.
- Support generics in Subscription types. #438
- Remove unnecessary Box from WebSocket messages.
- Export subscription type to Federation SDL. (for GraphGate 😁)
- Add
extendsattribute for derive macros Subscription and MergedSubscription. - Add
SchemaBuilder::override_namemethod. #437
- Execute
_entityrequests in parallel. #431
- Add descriptions for the exported Federation SDL.
- Moved
Variablesfromasync_graphql::context::Variablestoasync_graphql::Variables.
-
Allow the
deprecationattribute to have no reason.#[derive(SimpleObject)] struct MyObject { #[graphql(deprecation)] a: i32, #[graphql(deprecation = true)] b: i32, #[graphql(deprecation = false)] c: i32, #[graphql(deprecation = "reason")] d: i32, }
- Fix the problem that the borrowing lifetime returned by the
Context::datafunction is too small.
- When introspection is disabled, introspection related types are no longer registered.
- Add support for Federation nested keys.
- Fixed the error that the directive locations
FIELD_DEFINITIONandENUM_VALUEcannot be parsed.
- Fixed #409
- Add subscription support for tide with tide-websockets.
- Fixed the bug that can accept subscription requests during the initialization of WebSocket.
- Fixed GraphQL over WebSocket Protocol does not support ConnectionError events. #406