Skip to content

Releases: apollographql/apollo-client

v3.12.0-rc.4

27 Nov 17:28
d42d9e0
Compare
Choose a tag to compare
v3.12.0-rc.4 Pre-release
Pre-release

Patch Changes

  • #12154 d933def Thanks @phryneas! - Data masking types: handle overlapping nested array types and fragments on interface types.

v3.12.0-rc.3

20 Nov 20:35
f4d82c8
Compare
Choose a tag to compare
v3.12.0-rc.3 Pre-release
Pre-release

Patch Changes

  • #12150 9ed1e1e Thanks @jerelmiller! - Fix issue when using Unmasked with older versions of TypeScript when used with array fields.

  • #12152 78137ec Thanks @phryneas! - Add a helper that will skip the TS unmasking alorithm when no fragments are present on type level

v3.12.0-rc.2

19 Nov 21:02
56bc44f
Compare
Choose a tag to compare
v3.12.0-rc.2 Pre-release
Pre-release

Patch Changes

  • #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").

v3.12.0-rc.1

15 Nov 18:03
a946f14
Compare
Choose a tag to compare
v3.12.0-rc.1 Pre-release
Pre-release

Minor Changes

Patch Changes

  • #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.

v3.12.0-rc.0

13 Nov 18:41
431fa33
Compare
Choose a tag to compare
v3.12.0-rc.0 Pre-release
Pre-release

Patch Changes

  • #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.

v3.11.10

11 Nov 22:50
9d6c306
Compare
Choose a tag to compare

Patch Changes

  • #12093 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.

v3.11.9

07 Nov 17:39
16516e5
Compare
Choose a tag to compare

Patch Changes

  • #12110 a3f95c6 Thanks @jerelmiller! - Fix an issue where errors returned from a fetchMore call from a Suspense hook would cause a Suspense boundary to be shown indefinitely.

v3.12.0-alpha.0

01 Oct 20:16
a0329e9
Compare
Choose a tag to compare
v3.12.0-alpha.0 Pre-release
Pre-release

Minor Changes

  • #12042 1c0ecbf Thanks @jerelmiller! - Introduces data masking into Apollo Client. Data masking allows components to access only the data they asked for through GraphQL fragments. This prevents coupling between components that might otherwise implicitly rely on fields not requested by the component. Data masking also provides the benefit that masked fields only rerender components that ask for the field.

    To enable data masking in Apollo Client, set the dataMasking option to true.

    new ApolloClient({
      dataMasking: true,
      // ... other options
    });

    You can selectively disable data masking using the @unmask directive. Apply this to any named fragment to receive all fields requested by the fragment.

    query {
      user {
        id
        ...UserFields @unmask
      }
    }

    To help with migration, use the @unmask migrate mode which will add warnings when accessing fields that would otherwise be masked.

    query {
      user {
        id
        ...UserFields @unmask(mode: "migrate")
      }
    }

v3.11.8

05 Sep 08:37
1f0333e
Compare
Choose a tag to compare

Patch Changes

  • #12054 35cf186 Thanks @phryneas! - Fixed a bug where incorrect object access in some Safari extensions could cause a crash.

v3.11.7

04 Sep 17:29
aee0f4f
Compare
Choose a tag to compare

Patch Changes

  • #12052 e471cef Thanks @jerelmiller! - Fixes a regression from where passing an invalid identifier to from in useFragment would result in the warning TypeError: Cannot read properties of undefined (reading '__typename').