@apollo/client
4.3.5 · 19 Oct 2026MIT5.3M / weekRepositoryHomepagenpmAtom feed
3.14.1 is the newest release of 3.x.
In short
7 new10 fixed
Release note
Minor Changes
Data masking
Introduces data masking in Apollo Client.
Data masking enforces that only the fields requested by the query or fragment is available to that component. Data masking is best paired with colocated fragments.
To enable data masking in Apollo Client, set the
dataMaskingoption totrue.new ApolloClient({ dataMasking: true, // ... other options });For detailed information on data masking, including how to incrementally adopt it in an existing applications, see the data masking documentation.
Allow
nullas a validfromvalue inuseFragment.
More Patch Changes
Maintain the existing document if its unchanged by the codemod and move to more naive whitespace formatting
Fix issue when using
Unmaskedwith older versions of TypeScript when used with array fields.Prevent field accessor warnings when using
@unmask(mode: "migrate")on objects that are passed intocache.identify.Provide a codemod that applies
@unmaskto all named fragments for all operations and fragments.Learn how to use the codemod in the incremental adoption documentation.
Fix issue where data went missing when an unmasked fragment in migrate mode selected fields that the parent did not.
Data masking types: handle overlapping nested array types and fragments on interface types.
Fix issue where masked data would sometimes get returned when the field was part of a child fragment from a fragment unmasked by the parent query.
Warn when using data masking with "no-cache" operations.
Fix issue where the warning emitted by
@unmask(mode: "migrate")would trigger unnecessarily when the fragment was used alongside a masked fragment inside an inline fragment.Fix error when combining
@unmaskand@deferdirectives on a fragment spread when data masking is enabled.Fix error thrown when applying unmask migrate mode warnings on interface types with selection sets that contain inline fragment conditions.
Add a helper that will skip the TS unmasking alorithm when no fragments are present on type level
Ensure documents unchanged by the codemod are left untouched.
Ensure
nullis retained in nullable types when unmasking a type with theUnmaskedhelper type.Fix issue that threw errors when masking partial data with
@unmask(mode: "migrate").