Releases: graphql-hive/federation-composition
v0.19.1
v0.19.0
v0.18.5
Patch Changes
-
#151
f9b9908
Thanks @n1ru4l! - Fix issue where the satisfiability check raised an exception for fields that share different object type and interface definitions across subgraphs. -
#152
e4440a1
Thanks @n1ru4l! - Fix issue where scalar type marked with@inaccessible
does not fail the composition if all usages are not marked with@inaccessible
.Composing the following subgraphs resulted in an invalid supergraph instead of failing the composition.
# Subgraph A extend schema @link( url: "https://specs.apollo.dev/federation/v2.9" import: ["@inaccessible"] ) type Query { a: Foo } scalar Foo
# Subgraph B extend schema @link( url: "https://specs.apollo.dev/federation/v2.9" import: ["@inaccessible"] ) type Query { b: String } scalar Foo @inaccessible
Now it correctly raises a composition error with the message
Type "Foo" is @inaccessible but is referenced by "Query.a", which is in the API schema.
.
v0.18.4
Patch Changes
-
#146
55b48e9
Thanks @n1ru4l! - Resolve usage of@requires
FieldSet
with a union field selection to raise anEXTERNAL_UNUSED
error. -
#150
9bd8016
Thanks @n1ru4l! - Fix incorrectly raisedIMPLEMENTED_BY_INACCESSIBLE
error for inaccessible object fields where the object type is inaccessible.For example the following subgraph, will no longer result in the error
Field B.id is @inaccessible but implements the interface field Node.id, which is in the API schema.
.schema @link(url: "https://specs.apollo.dev/federation/v2.9", import: ["@tag"]) { query: Query } type Query { b(id: ID! @federation__inaccessible): B @federation__inaccessible a(id: ID!): A } type B implements Node @federation__inaccessible { id: ID! @federation__inaccessible } type A implements Node { id: ID! } interface Node { id: ID! }
-
#147
8c5bc0c
Thanks @n1ru4l! - Add support for@provides
fragment selection sets on union type fields.type Query { media: [Media] @shareable @provides(fields: "... on Book { title }") } union Media = Book | Movie
v0.18.3
v0.18.2
Patch Changes
-
#141
fdb491f
Thanks @ardatan! - Fixes the issue where the composition gives errors in case of the following:extend schema @link( url: "https://specs.apollo.dev/federation/v2.7" import: ["@key", "@composeDirective"] ) @link(url: "https://myspecs.dev/myDirective/v1.0", import: ["@myDirective"]) @composeDirective(name: "@myDirective") directive @myDirective(myarg: [MyEnum!]!) on OBJECT # A directive with a non-nullable list argument of non-nullable enums enum MyEnum { MY_ENUM_VALUE } type Query { myRootField: MyObject } type MyObject @myDirective(myarg: []) { myField: String }
v0.18.1
Patch Changes
-
#129
9382277
Thanks @kamilkisiela! - Ensure nested key fields are marked as@shareable
-
#132
ae3152c
Thanks @kamilkisiela! - Stop collecting paths when a leaf field was reached -
#132
ae3152c
Thanks @kamilkisiela! - Avoid infinite loop when entity field returns itself
v0.18.0
Minor Changes
- Support progressive overrides (
@override(label: "<value>")
)
Patch Changes
- Performance improvements (lazy compute of errors), especially noticeable in large schemas (2s -> 600ms)
v0.17.0
Minor Changes
- Allow to use
@composeDirective
on a built-in scalar (like@oneOf
)
v0.16.0
Minor Changes
- Allow to use v2.7, but not progressive
@override
labels - Allow to use v2.8, but not
@context
and@fromContext
directives - Support
@cost
and@listSize
directives - Add
extractLinkImplementations
function to extract information about applied specs (@link
)
Patch Changes
- Reuse type and direcive definitions from the composition logic to detect a supergraph spec in an SDL or transform a supergraph to a public schema