[Snyk] Upgrade @apollo/client from 3.5.8 to 3.11.1 #119
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.5.8 to 3.11.1.
ℹ️ 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 141 versions ahead of your current version.
The recommended version was released on 23 days ago.
Release notes
Package name: @apollo/client
Patch Changes
#11969
061cab6Thanks @ jerelmiller! - Remove check forwindow.__APOLLO_CLIENT__when determining whether to connect to Apollo Client Devtools whenconnectToDevtoolsordevtools.enabledis not specified. This now simply checks to see if the application is in development mode.#11971
ecf77f6Thanks @ jerelmiller! - Prevent thesetTimeoutfor suggesting devtools from running in non-browser environments.Potentially Breaking Fixes
#11789
5793301Thanks @ phryneas! - Changes usages of theGraphQLErrortype toGraphQLFormattedError.This was a type bug - these errors were never
GraphQLErrorinstancesto begin with, and the
GraphQLErrorclass has additional properties that cannever be correctly rehydrated from a GraphQL result.
The correct type to use here is
GraphQLFormattedError.Similarly, please ensure to use the type
FormattedExecutionResultinstead of
ExecutionResult- the non-"Formatted" versions of these typesare for use on the server only, but don't get transported over the network.
#11626
228429aThanks @ phryneas! - CallnextFetchPolicywith "variables-changed" even if there is afetchPolicyspecified.Previously this would only be called when the current
fetchPolicywas equal to thefetchPolicyoption or the option was not specified. If you usenextFetchPolicyas a function, expect to see this function called more often.Due to this bug, this also meant that the
fetchPolicymight be reset to the initialfetchPolicy, even when you specified anextFetchPolicyfunction. If you previously relied on this behavior, you will need to update yournextFetchPolicycallback function to implement this resetting behavior.As an example, if your code looked like the following:
Update your function to the following to reimplement the resetting behavior:
Minor Changes
#11923
d88c7f8Thanks @ jerelmiller! - Add support forsubscribeToMorefunction touseQueryRefHandlers.#11854
3812800Thanks @ jcostello-atlassian! - Support extensions in useSubscription#11923
d88c7f8Thanks @ jerelmiller! - Add support forsubscribeToMorefunction touseLoadableQuery.#11863
98e44f7Thanks @ phryneas! - ReimplementuseSubscriptionto fix rules of React violations.#11869
a69327cThanks @ phryneas! - Rewrite big parts ofuseQueryanduseLazyQueryto be more compliant with the Rules of React and React Compiler#11936
1b23337Thanks @ jerelmiller! - Add the ability to specify a name for the client instance for use with Apollo Client Devtools. This is useful when instantiating multiple clients to identify the client instance more easily. This deprecates theconnectToDevtoolsoption in favor of a newdevtoolsconfiguration.This option is backwards-compatible with
connectToDevtoolsand will be used in the absense of adevtoolsoption.#11923
d88c7f8Thanks @ jerelmiller! - Add support forsubscribeToMorefunction touseBackgroundQuery.#11930
a768575Thanks @ jerelmiller! - Deprecates experimental schema testing utilities introduced in 3.10 in favor of recommending@ apollo/graphql-testing-library.Patch Changes
#11951
0de03afThanks @ phryneas! - add React 19 RC topeerDependencies#11927
2941824Thanks @ phryneas! - Addrestartfunction touseSubscription.#11949
4528918Thanks @ alessbell! - Remove deprecatedwatchFragmentoption,canonizeResults#11937
78332beThanks @ phryneas! -createSchemaFetch: simulate serialized errors instead of anApolloErrorinstance#11902
96422ceThanks @ phryneas! - Addcausefield toApolloError.#11806
8df6013Thanks @ phryneas! - MockLink: add query default variables if not specified in mock request#11926
3dd6432Thanks @ phryneas! -watchFragment: forward additional options todiffOptions#11946
7d833b8Thanks @ jerelmiller! - Fix issue where mutations were not accessible by Apollo Client Devtools in 3.11.0-rc.0.#11944
8f3d7ebThanks @ sneyderdev! - AllowIgnoreModifierto be returned from aoptimisticResponsefunction when inferring from aTypedDocumentNodewhen used with a generic argument.#11954
4a6e86aThanks @ phryneas! - Document (and deprecate) the previously undocumentederrorsproperty on theuseQueryQueryResulttype.#11719
09a6677Thanks @ phryneas! - Allow wrappingcreateQueryPreloader#11921
70406bfThanks @ phryneas! - addignoreResultsoption touseSubscriptionPatch Changes
#11951
0de03afThanks @ phryneas! - add React 19 RC topeerDependencies#11937
78332beThanks @ phryneas! -createSchemaFetch: simulate serialized errors instead of anApolloErrorinstance#11944
8f3d7ebThanks @ sneyderdev! - AllowIgnoreModifierto be returned from aoptimisticResponsefunction when inferring from aTypedDocumentNodewhen used with a generic argument.#11954
4a6e86aThanks @ phryneas! - Document (and deprecate) the previously undocumentederrorsproperty on theuseQueryQueryResulttype.Patch Changes
#11949
4528918Thanks @ alessbell! - Remove deprecatedwatchFragmentoption,canonizeResults#11926
3dd6432Thanks @ phryneas! -watchFragment: forward additional options todiffOptions#11946
7d833b8Thanks @ jerelmiller! - Fix issue where mutations were not accessible by Apollo Client Devtools in 3.11.0-rc.0.Minor Changes
#11923
d88c7f8Thanks @ jerelmiller! - Add support forsubscribeToMorefunction touseQueryRefHandlers.#11854
3812800Thanks @ jcostello-atlassian! - Support extensions in useSubscription#11923
d88c7f8Thanks @ jerelmiller! - Add support forsubscribeToMorefunction touseLoadableQuery.#11863
98e44f7Thanks @ phryneas! - ReimplementuseSubscriptionto fix rules of React violations.#11869
a69327cThanks @ phryneas! - Rewrite big parts ofuseQueryanduseLazyQueryto be more compliant with the Rules of React and React Compiler#11936
1b23337Thanks @ jerelmiller! - Add the ability to specify a name for the client instance for use with Apollo Client Devtools. This is useful when instantiating multiple clients to identify the client instance more easily. This deprecates theconnectToDevtoolsoption in favor of a newdevtoolsconfiguration.This option is backwards-compatible with
connectToDevtoolsand will be used in the absense of adevtoolsoption.#11923
d88c7f8Thanks @ jerelmiller! - Add support forsubscribeToMorefunction touseBackgroundQuery.#11789
5793301Thanks @ phryneas! - Changes usages of theGraphQLErrortype toGraphQLFormattedError.This was a type bug - these errors were never
GraphQLErrorinstancesto begin with, and the
GraphQLErrorclass has additional properties that cannever be correctly rehydrated from a GraphQL result.
The correct type to use here is
GraphQLFormattedError.Similarly, please ensure to use the type
FormattedExecutionResultinstead of
ExecutionResult- the non-"Formatted" versions of these typesare for use on the server only, but don't get transported over the network.
#11930
a768575Thanks @ jerelmiller! - Deprecates experimental schema testing utilities introduced in 3.10 in favor of recommending@ apollo/graphql-testing-library.Patch Changes
#11927
2941824Thanks @ phryneas! - Addrestartfunction touseSubscription.#11902
96422ceThanks @ phryneas! - Addcausefield toApolloError.#11806
8df6013Thanks @ phryneas! - MockLink: add query default variables if not specified in mock request#11626
228429aThanks @ phryneas! - CallnextFetchPolicywith "variables-changed" even if there is afetchPolicyspecified. (fixes #11365)#11719
09a6677Thanks @ phryneas! - Allow wrappingcreateQueryPreloader#11921
70406bfThanks @ phryneas! - addignoreResultsoption touseSubscriptionPatch Changes
1f0460aThanks @ jerelmiller! - Allowundefinedto be returned from acache.modifymodifier function when a generic type argument is used.Patch Changes
#11901
10a8c0aThanks @ phryneas! - updatecanUseLayoutEffectcheck to also allow for layout effects in React Native#11861
1aed0e8Thanks @ henryqdineen! - Defend against non-serializable params ininvariantWrappers#11905
29755daThanks @ phryneas! - Add.d.ctsfiles for cjs bundles#11906
d104759Thanks @ phryneas! - chore: update TypeScript to 5.5Patch Changes
f745558Thanks @ phryneas! -useMutation: useuseIsomorphicLayoutEffectinstead ofuseLayoutEffectPatch Changes
#11888
7fb7939Thanks @ phryneas! - switchuseRenderGuardto an approach not accessing React's internals#11511
6536369Thanks @ phryneas! -useLoadableQuery: ensure thatloadQueryis updated if the ApolloClient instance changes#11860
8740f19Thanks @ alessbell! - Fixes #11849 by reevaluatingwindow.fetcheach timeBatchHttpLinkuses it, if not configured viaoptions.fetch. Takes the same approach as PR #8603 which fixed the same issue inHttpLink.#11852
d502a69Thanks @ phryneas! - Fix a bug where calling theuseMutationresetfunction would point the hook to an outdatedclientreference.#11329
3d164eaThanks @ PaLy! - Fix graphQLErrors in Error Link if networkError.result is an empty string#11852
d502a69Thanks @ phryneas! - Prevent writing to a ref in render inuseMutation.As a result, you might encounter problems in the future if you call the mutation's
executefunction during render. Please note that this was never supported behavior, and we strongly recommend against it.#11848
ad63924Thanks @ phryneas! - Ensure covariant behavior:MockedResponse<X,Y>should be assignable toMockedResponse#11851
45c47beThanks @ phryneas! - Avoid usage of useRef in useInternalState to prevent ref access in render.#11877
634d91aThanks @ phryneas! - Add missing name to tuple member (fix TS5084)#11851
45c47beThanks @ phryneas! - Fix a bug whereuseLazyQuerywould not pick up a client change.Patch Changes
#11838
8475346Thanks @ alex-kinokon! - Don’t prompt for DevTools installation for browser extension page#11839
6481fe1Thanks @ jerelmiller! - Fix a regression in 3.9.5 where a merge function that returned an incomplete result would not allow the client to refetch in order to fulfill the query.#11844
86984f2Thanks @ jerelmiller! - Honor the@ nonreactivedirective when usingcache.watchFragmentor theuseFragmenthook to avoid rerendering when using these directives.#11824
47ad806Thanks @ phryneas! - Create brandedQueryReftype without exposed properties.This change deprecates
QueryReferencein favor of aQueryReftype that doesn't expose any properties.This change also updates
preloadQueryto return a newPreloadedQueryReftype, which exposes thetoPromisefunction as it does today. This means that query refs produced byuseBackgroundQueryanduseLoadableQuerynow returnQueryReftypes that do not have access to atoPromisefunction, which was never meant to be used in combination with these hooks.While we tend to avoid any types of breaking changes in patch releases as this, this change was necessary to support an upcoming version of the React Server Component integration, which needed to omit the
toPromisefunction that would otherwise have broken at runtime.Note that this is a TypeScript-only change. At runtime,
toPromiseis still present on all queryRefs currently created by this package - but we strongly want to discourage you from accessing it in all cases except for thePreloadedQueryRefuse case.Migration is as simple as replacing all references to
QueryReferencewithQueryRef, so it should be possible to do this with a search & replace in most code bases:+import { QueryRef } from '@ apollo/client'
- function Component({ queryRef }: { queryRef: QueryReference<TData> }) {
+ function Component({ queryRef }: { queryRef: QueryRef<TData> }) {
// ...
}
#11845
4c5c820Thanks @ jerelmiller! - Remove@ nonreactivedirectives from queries passed toMockLinkto ensure they are properly matched.#11837
dff15b1Thanks @ jerelmiller! - Fix an issue where a polled query created in React strict mode may not stop polling after the component unmounts while using thecache-and-networkfetch policy.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: