fix(deps): update apollo graphql packages #289
+22
−31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.12.3
->3.14.0
4.20.1
->4.21.5
2.9.3
->2.11.2
v2.2.0
->v2.7.0
Release Notes
apollographql/apollo-client (@apollo/client)
v3.14.0
Compare Source
Minor Changes
#12752
8b779b4
Thanks @jerelmiller! - Add deprecations and warnings to remaining APIs changed in Apollo Client 4.0.#12746
0bcd2f4
Thanks @jerelmiller! - Add warnings and deprecations for options and methods for all React APIs.#12751
567cad8
Thanks @jerelmiller! - Add@deprecated
tags to all properties returned from any query API (e.g.client.query
,observableQuery.refetch
, etc.),client.mutate
, andclient.subscribe
that are no longer available in Apollo Client 4.0.#12746
0bcd2f4
Thanks @jerelmiller! - AddpreloadQuery.toPromise(queryRef)
as a replacement forqueryRef.toPromise()
.queryRef.toPromise()
has been removed in Apollo Client 4.0 in favor ofpreloadQuery.toPromise
and is now considered deprecated.#12736
ea89440
Thanks @jerelmiller! - Add deprecations and deprecation warnings forApolloClient
options and methods.#12763
5de6a3d
Thanks @jerelmiller! - Version bump only to release latest asrc
.#12459
1c5a031
Thanks @jerelmiller! - ResetaddTypenameTransform
andfragments
caches when callingcache.gc()
only whenresetResultCache
istrue
.#12743
92ad409
Thanks @jerelmiller! - Add deprecations and warnings foraddTypename
inInMemoryCache
andMockedProvider
.#12743
92ad409
Thanks @jerelmiller! - Add deprecations and warnings forcanonizeResults
.#12751
567cad8
Thanks @jerelmiller! - Warn when using astandby
fetch policy withclient.query
.Patch Changes
ecf3de1
Thanks @phryneas! - Prevent field policies from overwriting/merging into supertype field policies.v3.13.9
Compare Source
Patch Changes
32c9aa9
Thanks @phryneas! - Fix a possible race condition on queries that were reobserved before they were subscribed to the first time.v3.13.8
Compare Source
Patch Changes
c19d415
Thanks @thearchitector! - Fix in-flight multipart urql subscription cancellationv3.13.7
Compare Source
Patch Changes
#12540
0098932
Thanks @phryneas! - Refactor: Move notification scheduling logic fromQueryInfo
toObservableQuery
#12540
0098932
Thanks @phryneas! - Refactored cache emit logic for ObservableQuery. This should be an invisible change.v3.13.6
Compare Source
Patch Changes
cdc55ff
Thanks @phryneas! - keep ObservableQuery created by useQuery non-active before it is first subscribedv3.13.5
Compare Source
Patch Changes
12c8d06
Thanks @jerelmiller! - Fix an issue where acache-first
query would return the result for previous variables when a cache update is issued after simultaneously changing variables and skipping the query.v3.13.4
Compare Source
Patch Changes
fee9368
Thanks @jorenbroekema! - Use import star fromrehackt
to prevent issues with importing named exports from external CJS modules.v3.13.3
Compare Source
Patch Changes
#12362
f6d387c
Thanks @jerelmiller! - Fixes an issue where callingobservableQuery.getCurrentResult()
when theerrorPolicy
was set toall
would return thenetworkStatus
asNetworkStatus.ready
when there were errors returned in the result. This has been corrected to reportNetworkStatus.error
.This bug also affected the
useQuery
anduseLazyQuery
hooks and may affect you if you check fornetworkStatus
in your component.v3.13.2
Compare Source
Patch Changes
#12409
6aa2f3e
Thanks @phryneas! - To mitigate problems when Apollo Client ends up more than once in the bundle, some unique symbols were converted intoSymbol.for
calls.#12392
644bb26
Thanks @Joja81! - Fixes an issue where the DeepOmit type would turn optional properties into required properties. This should only affect you if you were using the omitDeep or stripTypename utilities exported by Apollo Client.#12404
4332b88
Thanks @jerelmiller! - ShowNaN
rather than converting tonull
in debug messages fromMockLink
for unmatchedvariables
values.v3.13.1
Compare Source
Patch Changes
#12369
bdfc5b2
Thanks @phryneas! -ObervableQuery.refetch
: don't refetch withcache-and-network
, swich tonetwork-only
instead#12375
d3f8f13
Thanks @jerelmiller! - Export theUseSuspenseFragmentOptions
type.v3.13.0
Compare Source
Minor Changes
#12066
c01da5d
Thanks @jerelmiller! - Adds a newuseSuspenseFragment
hook.useSuspenseFragment
suspends untildata
is complete. It is a drop-in replacement foruseFragment
when you prefer to use Suspense to control the loading state of a fragment. See the documentation for more details.#12174
ba5cc33
Thanks @jerelmiller! - Ensure errors thrown in theonCompleted
callback fromuseMutation
don't callonError
.#12340
716d02e
Thanks @phryneas! - Deprecate theonCompleted
andonError
callbacks ofuseQuery
anduseLazyQuery
.For more context, please see the related issue on GitHub.
#12276
670f112
Thanks @Cellule! - Provide a more type-safe option for the previous data value passed toobservableQuery.updateQuery
. Using it could result in crashes at runtime as this callback could be called with partial data even though its type reported the value as a complete result.The
updateQuery
callback function is now called with a new type-safepreviousData
property and a newcomplete
property in the 2nd argument that determines whetherpreviousData
is a complete or partial result.As a result of this change, it is recommended to use the
previousData
property passed to the 2nd argument of the callback rather than using the previous data value from the first argument since that value is not type-safe. The first argument is now deprecated and will be removed in a future version of Apollo Client.#12174
ba5cc33
Thanks @jerelmiller! - Reject the mutation promise if errors are thrown in theonCompleted
callback ofuseMutation
.Patch Changes
#12276
670f112
Thanks @Cellule! - Fix the return type of theupdateQuery
function to allow forundefined
.updateQuery
had the ability to bail out of the update by returning a falsey value, but the return type enforced a query value.#12296
2422df2
Thanks @Cellule! - Deprecate optionignoreResults
inuseMutation
.Once this option is removed, existing code still using it might see increase in re-renders.
If you don't want to synchronize your component state with the mutation, please use
useApolloClient
to get your ApolloClient instance and callclient.mutate
directly.#12338
67c16c9
Thanks @phryneas! - In case of a multipart response (e.g. with@defer
), query deduplication willnow keep going until the final chunk has been received.
#12276
670f112
Thanks @Cellule! - Fix the type of thevariables
property passed as the 2nd argument to thesubscribeToMore
callback. This was previously reported as thevariables
type for the subscription itself, but is now properly typed as the queryvariables
.v3.12.11
Compare Source
Patch Changes
#12351
3da908b
Thanks @jerelmiller! - Fixes an issue where the wrongnetworkStatus
andloading
value was emitted fromobservableQuery
when callingfetchMore
with ano-cache
fetch policy. ThenetworkStatus
now properly reports asready
andloading
asfalse
after the result is returned.#12354
a24ef94
Thanks @phryneas! - Fix missingmain.d.cts
filev3.12.10
Compare Source
Patch Changes
#12341
f2bb0b9
Thanks @phryneas! -useReadQuery
/useQueryRefHandlers
: Fix a "hook order" warning that might be emitted in React 19 dev mode.#12342
219b26b
Thanks @phryneas! - Addgraphql-ws
^6.0.3
as a validpeerDependency
v3.12.9
Compare Source
Patch Changes
#12321
daa4f33
Thanks @jerelmiller! - Fix type ofextensions
inprotocolErrors
forApolloError
and theonError
link. According to the multipart HTTP subscription protocol, fatal tranport errors follow the GraphQL error format which requireextensions
to be a map as its value instead of an array.#12318
b17968b
Thanks @jerelmiller! - AllowRetryLink
to retry an operation when fatal transport-level errors are emitted from multipart subscriptions.v3.12.8
Compare Source
Patch Changes
#12292
3abd944
Thanks @phryneas! - Remove unused dependencyresponse-iterator
#12287
bf313a3
Thanks @phryneas! - Fixes an issue whereclient.watchFragment
/useFragment
with@includes
crashes when a separate cache update writes to the conditionally included fields.v3.12.7
Compare Source
Patch Changes
#12281
d638ec3
Thanks @jerelmiller! - Make fatal tranport-level errors from multipart subscriptions available to the error link with theprotocolErrors
property.#12281
d638ec3
Thanks @jerelmiller! - Fix the array type for theerrors
field on theApolloPayloadResult
type. This type was always in the shape of the GraphQL error format, per the multipart subscriptions protocol and never a plain string or a JavaScript error object.v3.12.6
Compare Source
Patch Changes
#12267
d57429d
Thanks @jerelmiller! - Maintain theTData
type when used withUnmasked
whenTData
is not a masked type generated from GraphQL Codegen.#12270
3601246
Thanks @jerelmiller! - Fix handling of tagged/branded primitive types when used as scalar values withUnmasked
.v3.12.5
Compare Source
Patch Changes
#12252
cb9cd4e
Thanks @jerelmiller! - Changes the default behavior of theMaybeMasked
type to preserve types unless otherwise specified. This change makes it easier to upgrade from older versions of the client where types could have unexpectedly changed in the application due to the default of trying to unwrap types into unmasked types. This change also fixes the compilation performance regression experienced when simply upgrading the client since types are now preserved by default.A new
mode
option has now been introduced to allow for the old behavior. See the next section on migrating if you wish to maintain the old default behavior after upgrading to this version.Migrating from <= v3.12.4
If you've adopted data masking and have opted in to using masked types by setting the
enabled
property totrue
, you can remove this configuration entirely:If you prefer to specify the behavior explicitly, change the property from
enabled: true
, tomode: "preserveTypes"
:If you rely on the default behavior in 3.12.4 or below and would like to continue to use unmasked types by default, set the
mode
tounmask
:v3.12.4
Compare Source
Patch Changes
4334d30
Thanks @charpeni! - Fix an issue withrefetchQueries
where comparingDocumentNode
s internally by references could lead to an unknown query, even though theDocumentNode
was indeed an active query—with a different reference.apollographql/apollo-client-devtools (@apollo/client-devtools-vscode)
v4.21.5
Compare Source
v4.21.4
Compare Source
Patch Changes
ab5738b
Thanks @github-actions! - add error codes for new Apollo Client versionv4.21.3
Compare Source
Patch Changes
5e2645a
Thanks @github-actions! - add error codes for new Apollo Client versionv4.21.2
Compare Source
Patch Changes
0302538
Thanks @braineo! - fix calling client.stop twice causing app crashing by checking if handler exist before sending tab commandv4.21.1
Compare Source
Patch Changes
c0f4446
Thanks @github-actions! - add error codes for new Apollo Client versionv4.21.0
Compare Source
Minor Changes
b935cf8
Thanks @jerelmiller! - Add a memory panel to monitor internal Apollo Client caches.v4.20.2
Compare Source
Patch Changes
88ef65d
Thanks @jerelmiller! - add error codes for new Apollo Client versionapollographql/federation (@apollo/subgraph)
v2.11.2
Compare Source
Patch Changes
Revert change to @composeDirective definition to specify nullable argument value. (#3283)
We cannot fix the definition as that would break customers using older versions of
subgraph-js
. Our validations are already verifying that the values are specified.Updated dependencies [
28c08bef6e691aefc6ed07c0e7057f9cd803b317
]:v2.11.1
Compare Source
Patch Changes
7799ad1717becf15fb0e82f89619f2ec8a24b4d4
,b26794c5724ef23d1f0fd45a40aee3d301557489
]:v2.11.0
Compare Source
Minor Changes
Patch Changes
1462c91879d41884c0a7e60551d8dd0d67c832d3
,9614b26e5a17cbf1f6aaf08f6fcb1c95eb12592d
]:v2.10.2
Compare Source
Patch Changes
v2.10.1
Compare Source
Patch Changes
97d81b79c3da10175bdf92c2209039efe352de79
]:v2.10.0
Compare Source
Patch Changes
When resolving references, skip type resolution if the reference resolves to null. (#3215)
Updated dependencies [
8927e315ab0e865ef3ff12320f265ee95588b899
,8927e315ab0e865ef3ff12320f265ee95588b899
]:apollographql/router (ghcr.io/apollographql/router)
v2.7.0
Compare Source
🚀 Features
Add
ResponseErrors
selector to router response (PR #7882)The
ResponseErrors
selector in telemetry configurations captures router response errors, enabling you to log errors encountered at the router service layer. This selector enhances logging by allowing you to log only router errors instead of the entire router response body, reducing noise in your telemetry data.By @Aguilarjaf in https://github.com/apollographql/router/pull/7882
🐛 Fixes
_entities
Apollo error metrics missing service attribute (PR #8153)The error counting feature introduced in v2.5.0 caused
_entities
errors from subgraph fetches to no longer report a service (subgraph or connector) attribute. This incorrectly categorized these errors as originating from the router instead of their actual service in Apollo Studio.The service attribute is now correctly included for
_entities
errors.By @rregitsky in https://github.com/apollographql/router/pull/8153
WebSocket connection cleanup for subscriptions (PR #8104)
A regression introduced in v2.5.0 caused WebSocket connections to subgraphs to remain open after all client subscriptions ended. This led to unnecessary resource usage and connections not being cleaned up until a new event was received.
The router now correctly closes WebSocket connections to subgraphs when clients disconnect from subscription streams.
By @bnjjj in https://github.com/apollographql/router/pull/8104
OTLP metrics Up/Down counter drift (PR #8174)
When using OTLP metrics export with delta temporality configured, UpDown counters could exhibit drift issues where counter values became inaccurate over time. This occurred because UpDown counters were incorrectly exported as deltas instead of cumulative values.
UpDown counters now export as aggregate values according to the OpenTelemetry specification.
By @BrynCooke in https://github.com/apollographql/router/pull/8174
WebSocket subscription
connection_error
message handling (Issue #6138)The router now correctly processes
connection_error
messages from subgraphs that don't include anid
field. Previously, these messages were ignored because the router incorrectly required anid
field. According to thegraphql-transport-ws
specification,connection_error
messages only require apayload
field.The
id
field is now optional forconnection_error
messages, allowing underlying error messages to propagate to clients when connection failures occur.By @jeffutter in https://github.com/apollographql/router/pull/8189
Add Helm chart support for deployment annotations (PR #8164)
The Helm chart now supports customizing annotations on the deployment itself using the
deploymentAnnotations
value. Previously, you could only customize pod annotations withpodAnnotations
.By @glasser in https://github.com/apollographql/router/pull/8164
Uncommon query planning error with interface object types (PR #8109)
An uncommon query planning error has been resolved: "Cannot add selection of field
X
to selection set of parent typeY
that is potentially an interface object type at runtime". The router now handles__typename
selections from interface object types correctly, as these selections are benign even when unnecessary.By @duckki in https://github.com/apollographql/router/pull/8109
Connection shutdown race condition during hot reload (PR #8169)
A race condition during hot reload that occasionally left connections in an active state instead of terminating has been fixed. This issue could cause out-of-memory errors over time as multiple pipelines remained active.
Connections that are opening during shutdown now immediately terminate.
By @BrynCooke in https://github.com/apollographql/router/pull/8169
Persisted Query usage reporting for safelisted operation body requests (PR #8168)
Persisted Query metrics now include operations requested by safelisted operation body. Previously, the router only recorded metrics for operations requested by ID.
By @bonnici in https://github.com/apollographql/router/pull/8168
📃 Configuration
Separate Apollo telemetry batch processor configurations (PR #8258)
Apollo telemetry configuration now allows separate fine-tuning for metrics and traces batch processors. The configuration has changed from:
To:
The old
telemetry.apollo.batch_processor
configuration will be used if you don't specify these new values. The router displays the configuration being used in an info-level log message at startup.By @bonnici in https://github.com/apollographql/router/pull/8258
Promote Subgraph Insights metrics flag to preview (PR #8200)
The
subgraph_metrics
configuration flag that powers Apollo Studio's Subgraph Insights feature has been promoted fromexperimental
topreview
. The flag name has been updated fromexperimental_subgraph_metrics
topreview_subgraph_metrics
:By @rregitsky in https://github.com/apollographql/router/pull/8200
v2.6.2
Compare Source
🐛 Fixes
Connection shutdown sometimes fails during hot-reload (PR #8169)
A race condition in connection shutdown during a hot reload event occasionally left some connections in an active state instead of entering terminating state. This could cause out-of-memory errors over time as multiple pipelines remained active.
Connections that open during shutdown now immediately terminate.
By @BrynCooke in https://github.com/apollographql/router/pull/8169
v2.6.1
Compare Source
🐛 Fixes
ARM64 Docker images no longer contain AMD64 binary
The ARM64 Docker images shipped for v2.6.0 incorrectly contained AMD64/x86 binaries due to a CI build pipeline bug. This has been remedied in v2.6.1.
_entities
Apollo Error Metrics Missing Service Attribute (PR #8153)The error counting feature introduced in v2.5.0 (PR #7712) caused a bug where
_entities
errors from subgraph fetches no longer included a service (subgraph or connector) attribute. This incorrectly categorized these errors as originating from the router instead of their actual service in the Apollo Studio UI.This fix restores the missing service attribute.
By @rregitsky in https://github.com/apollographql/router/pull/8153
Deduplication and WebSocket stream termination (PR #8104)
Fixed a regression introduced in v2.5.0, where WebSocket connections to subgraphs would remain open after all client subscriptions were closed. This could lead to unnecessary resource usage and connections not being properly cleaned up until a new event was received.
Previously, when clients disconnected from subscription streams, the router would correctly close client connections but would leave the underlying WebSocket connection to the subgraph open indefinitely in some cases.
By @bnjjj in https://github.com/apollographql/router/pull/8104
Make the
id
field optional for WebSocket subscriptionconnection_error
messages (Issue #6138)Fixed a Subscriptions over WebSocket issue where
connection_error
messages from subgraphs would be swallowed by the router because they incorrectly required anid
field. According to thegraphql-transport-ws
specification (one of two transport specifications we provide support for),connection_error
messages only require apayload
field, not anid
field. Theid
field in is now optional which will allow the underlying error message to propagate to clients when underlying connection failures occur.By @jeffutter in https://github.com/apollographql/router/pull/8189
Enable annotations on deployments via Helm Chart (PR #8164)
The Helm chart previously did not allow customization of annotations on the deployment itself (as opposed to the pods within it, which is done with
podAnnotations
); this can now be done with thedeploymentAnnotations
value.By @glasser in https://github.com/apollographql/router/pull/8164
v2.6.0
Compare Source
🚀 Features
[Subgraph Insights] Experimental Apollo Subgraph Fetch Histogram (PR #8013, PR #8045)
This change adds a new, experimental histogram to capture subgraph fetch duration for GraphOS. This will
eventually be used to power subgraph-level insights in Apollo Studio.
This can be toggled on using a new boolean config flag:
The new instrument is only sent to GraphOS and is not available in 3rd-party OTel export targets. It is not currently
customizable. Users requiring a customizable alternative can use the existing
http.client.request.duration
instrument, which measures the same value.
By @rregitsky in https://github.com/apollographql/router/pull/8013 and https://github.com/apollographql/router/pull/8045
Redis cache metrics (PR #7920)
The router now provides Redis cache monitoring with new metrics that help track performance, errors, and resource usage.
Connection and performance metrics:
apollo.router.cache.redis.connections
: Number of active Redis connectionsapollo.router.cache.redis.command_queue_length
: Commands waiting to be sent to Redis, indicates if Redis is keeping up with demandapollo.router.cache.redis.commands_executed
: Total number of Redis commands executedapollo.router.cache.redis.redelivery_count
: Commands retried due to connection issuesapollo.router.cache.redis.errors
: Redis errors by type, to help diagnose authentication, network, and configuration problemsExperimental performance metrics:
experimental.apollo.router.cache.redis.network_latency_avg
: Average network latency to Redisexperimental.apollo.router.cache.redis.latency_avg
: Average Redis command execution timeexperimental.apollo.router.cache.redis.request_size_avg
: Average request payload sizeexperimental.apollo.router.cache.redis.response_size_avg
: Average response payload sizeYou can configure how often metrics are collected using the
metrics_interval
setting:By @BrynCooke in https://github.com/apollographql/router/pull/7920
Granular license enforcement (PR #7917)
The router license functionality now allows granular specification of features enabled to support current and future pricing plans.
By @DMallare in https://github.com/apollographql/router/pull/7917
Additional Connector Custom Instrument Selectors (PR #8045)
This adds new custom instrument selectors for Connectors and enhances some existing selectors. The new selectors are:
supergraph_operation_name
supergraph_operation_kind
query
,mutation
,subscription
)request_context
connector_on_response_error
is_successful
condition. Or, if that condition is not set,returns true when the response has a non-200 status code
These selectors were modified to add additional functionality:
connector_request_mapping_problems
boolean
variant that will returntrue
when a mapping problem exists on the requestconnector_response_mapping_problems
boolean
variant that will returntrue
when a mapping problem exists on the responseBy @rregitsky in https://github.com/apollographql/router/pull/8045
Enable jemalloc on MacOS (PR #8046)
This PR enables the jemalloc allocator on MacOS by default, making it easier to do memory profiling. Previously, this was only done for Linux.
By @Velfi in https://github.com/apollographql/router/pull/8046
🐛 Fixes
Entity caching: fix inconsistency in cache-control header handling (PR #7987)
When the Subgraph Entity Caching feature is in use, it determines the
Cache-Control
HTTP response header sent to supergraph clients based on those received from subgraph servers.In this process, Apollo Router only emits the
max-age
directive and nots-maxage
.This PR fixes a bug where, for a query that involved a single subgraph fetch that was not already cached, the subgraph response’s
Cache-Control
header would be forwarded as-is.Instead, it now goes through the same algorithm as other cases.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "after 8am and before 4pm on tuesday" in timezone America/Los_Angeles.
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.