@apollo/client
Advanced tools
Changelog
3.12.2
84af347
Thanks @jerelmiller! - Update peer deps to allow for React 19 stable release.Changelog
3.12.0
#12042 1c0ecbf
Thanks @jerelmiller! - 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 dataMasking
option to true
.
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.
#12131 21c3f08
Thanks @jerelmiller! - Allow null
as a valid from
value in useFragment
.
#12126 d10d702
Thanks @jerelmiller! - Maintain the existing document if its unchanged by the codemod and move to more naive whitespace formatting
#12150 9ed1e1e
Thanks @jerelmiller! - Fix issue when using Unmasked
with older versions of TypeScript when used with array fields.
#12116 8ae6e4e
Thanks @jerelmiller! - Prevent field accessor warnings when using @unmask(mode: "migrate")
on objects that are passed into cache.identify
.
#12120 6a98e76
Thanks @jerelmiller! - Provide a codemod that applies @unmask
to all named fragments for all operations and fragments.
Learn how to use the codemod in the incremental adoption documentation.
#12134 cfaf4ef
Thanks @jerelmiller! - Fix issue where data went missing when an unmasked fragment in migrate mode selected fields that the parent did not.
#12154 d933def
Thanks @phryneas! - Data masking types: handle overlapping nested array types and fragments on interface types.
#12139 5a53e15
Thanks @phryneas! - 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.
#12123 8422a30
Thanks @jerelmiller! - Warn when using data masking with "no-cache" operations.
#12139 5a53e15
Thanks @phryneas! - 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.
#12114 1d4ce00
Thanks @jerelmiller! - Fix error when combining @unmask
and @defer
directives on a fragment spread when data masking is enabled.
#12130 1e7d009
Thanks @jerelmiller! - Fix error thrown when applying unmask migrate mode warnings on interface types with selection sets that contain inline fragment conditions.
#12152 78137ec
Thanks @phryneas! - Add a helper that will skip the TS unmasking alorithm when no fragments are present on type level
#12126 d10d702
Thanks @jerelmiller! - Ensure documents unchanged by the codemod are left untouched.
#12133 a6ece37
Thanks @jerelmiller! - Ensure null
is retained in nullable types when unmasking a type with the Unmasked
helper type.
#12139 5a53e15
Thanks @phryneas! - Fix issue that threw errors when masking partial data with @unmask(mode: "migrate")
.
Changelog
3.12.0-rc.2
#12139 5a53e15
Thanks @phryneas! - 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.
#12139 5a53e15
Thanks @phryneas! - 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.
#12139 5a53e15
Thanks @phryneas! - Fix issue that threw errors when masking partial data with @unmask(mode: "migrate")
.
Changelog
3.12.0-rc.1
21c3f08
Thanks @jerelmiller! - Allow null
as a valid from
value in useFragment
.#12126 d10d702
Thanks @jerelmiller! - Maintain the existing document if its unchanged by the codemod and move to more naive whitespace formatting
#12134 cfaf4ef
Thanks @jerelmiller! - Fix issue where data went missing when an unmasked fragment in migrate mode selected fields that the parent did not.
#12130 1e7d009
Thanks @jerelmiller! - Fix error thrown when applying unmask migrate mode warnings on interface types with selection sets that contain inline fragment conditions.
#12126 d10d702
Thanks @jerelmiller! - Ensure documents unchanged by the codemod are left untouched.
#12133 a6ece37
Thanks @jerelmiller! - Ensure null
is retained in nullable types when unmasking a type with the Unmasked
helper type.
Changelog
3.12.0-rc.0
#12116 8ae6e4e
Thanks @jerelmiller! - Prevent field accessor warnings when using @unmask(mode: "migrate")
on objects that are passed into cache.identify
.
#12120 6a98e76
Thanks @jerelmiller! - Provide a codemod that applies @unmask
to all named fragments for all operations and fragments. To use the codemod, run the following command:
npx jscodeshift -t node_modules/@apollo/client/scripts/codemods/data-masking/unmask.ts --extensions tsx --parser tsx path/to/app/
To customize the tag used to search for GraphQL operations, use the --tag
option. By default the codemod looks for gql
and graphql
tags.
To apply the directive in migrate mode in order to receive runtime warnings on potentially masked fields, use the --mode migrate
option.
For more information on the options that can be used with jscodeshift
, check out the jscodeshift
documentation.
#12121 1085a95
Thanks @jerelmiller! - Warn when using data masking with "no-cache" operations.
#12114 1d4ce00
Thanks @jerelmiller! - Fix error when combining @unmask
and @defer
directives on a fragment spread when data masking is enabled.
Changelog
3.11.10
1765668
Thanks @mgmolisani! - Fixed a bug when evaluating the devtools flag with the new syntax devtools.enabled
that could result to true
when explicitly set to false
.