[Snyk] Upgrade @apollo/client from 3.3.19 to 3.13.5 #1818
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.
Snyk has created this PR to upgrade @apollo/client from 3.3.19 to 3.13.5.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 281 versions ahead of your current version.
The recommended version was released 24 days ago.
Issues fixed by the recommended upgrade:
SNYK-JS-APOLLOCLIENT-1085706
Release notes
Package name: @apollo/client
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.Patch Changes
fee9368
Thanks @ jorenbroekema! - Use import star fromrehackt
to prevent issues with importing named exports from external CJS modules.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.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.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.Apollo Client v3.13.0 introduces a new hook,
useSuspenseFragment
, as a drop-in replacement foruseFragment
in apps that are using React Suspense. This is the “last” React hook we are introducing in 3.x - we think this rounds out the “big concepts” in our React Suspense and GraphQL fragment story. See the docs for information on this and our other Suspense-supporting hooks. There are some TypeScript quality-of-life improvements shipped in this release forobservableQuery.updateQuery
andsubscribeToMore
. Additionally, the return type ofupdateQuery
now includesundefined
to allow an early exit from updates. This was always supported at runtime, but was missed on the TypeScript side. On the runtime side, we’ve fixed query deduplication behavior for multipart responses and corrected the error handling inuseMutation
callbacks.onCompleted
andonError
inuseQuery
anduseLazyQuery
have been deprecated for multiple reasons. See below for full details 👀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.(unsafePreviousData, { previousData, complete }) => {
previousData;
// ^? TData | DeepPartial<TData> | undefined
}
);
#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.(unsafePreviousData, { previousData, complete }) => {
if (!complete) {
// Bail out of the update by returning early
return;
}
}
);
#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
.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.#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.(unsafePreviousData, { previousData, complete }) => {
previousData;
// ^? TData | DeepPartial<TData> | undefined
}
);
#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.(unsafePreviousData, { previousData, complete }) => {
if (!complete) {
// Bail out of the update by returning early
return;
}
}
);
#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
updateQuery
callback. This was previously reported as thevariables
type for the subscription itself, but is now properly typed as the queryvariables
.Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: