Skip to content

Commit

Permalink
Update dependency @apollo/client to v3.9.5 (#10087)
Browse files Browse the repository at this point in the history
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://github.com/apollographql/apollo-client)) | [`3.8.10`
->
`3.9.5`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.8.10/3.9.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@apollo%2fclient/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@apollo%2fclient/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@apollo%2fclient/3.8.10/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@apollo%2fclient/3.8.10/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>apollographql/apollo-client (@&#8203;apollo/client)</summary>

###
[`v3.9.5`](https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#395)

[Compare
Source](https://github.com/apollographql/apollo-client/compare/v3.9.4...v3.9.5)

##### Patch Changes

-
[#&#8203;11595](https://github.com/apollographql/apollo-client/pull/11595)
[`8c20955`](https://github.com/apollographql/apollo-client/commit/8c20955874562e5b2ab35557325e047b059bc4fc)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Bumps the
dependency `rehackt` to 0.0.5

-
[#&#8203;11592](https://github.com/apollographql/apollo-client/pull/11592)
[`1133469`](https://github.com/apollographql/apollo-client/commit/1133469bd91ff76b9815e815a454a79d8e23a9bc)
Thanks [@&#8203;Stephen2](https://github.com/Stephen2)! - Strengthen
`MockedResponse.newData` type

-
[#&#8203;11579](https://github.com/apollographql/apollo-client/pull/11579)
[`1ba2fd9`](https://github.com/apollographql/apollo-client/commit/1ba2fd919f79dfdc7b9d3f7d1a7aa5918e648349)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Fix
issue where partial data is reported to `useQuery` when using
`notifyOnNetworkStatusChange` after it errors while another overlapping
query succeeds.

-
[#&#8203;11579](https://github.com/apollographql/apollo-client/pull/11579)
[`1ba2fd9`](https://github.com/apollographql/apollo-client/commit/1ba2fd919f79dfdc7b9d3f7d1a7aa5918e648349)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Fix an
issue where a partial cache write for an errored query would result in
automatically refetching that query.

-
[#&#8203;11562](https://github.com/apollographql/apollo-client/pull/11562)
[`65ab695`](https://github.com/apollographql/apollo-client/commit/65ab695470741e8dcaef1ebd7742c3c397526354)
Thanks [@&#8203;mspiess](https://github.com/mspiess)! - Mocks with an
infinite delay no longer require result or error

###
[`v3.9.4`](https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#394)

[Compare
Source](https://github.com/apollographql/apollo-client/compare/v3.9.3...v3.9.4)

##### Patch Changes

-
[#&#8203;11403](https://github.com/apollographql/apollo-client/pull/11403)
[`b0c4f3a`](https://github.com/apollographql/apollo-client/commit/b0c4f3ad8198981a229b46dc430345a76e577e9c)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Fix
issue in `useLazyQuery` that results in a double network call when
calling the execute function with no arguments after having called it
previously with another set of arguments.

-
[#&#8203;11576](https://github.com/apollographql/apollo-client/pull/11576)
[`e855d00`](https://github.com/apollographql/apollo-client/commit/e855d00447e4d9ae478d98f6796d842ef6cc76d1)
Thanks [@&#8203;alessbell](https://github.com/alessbell)! - Revert PR
[#&#8203;11202](https://github.com/apollographql/apollo-client/pull/11202)
to fix caching bug reported in
[#&#8203;11560](https://github.com/apollographql/apollo-client/issues/11560)

###
[`v3.9.3`](https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#393)

[Compare
Source](https://github.com/apollographql/apollo-client/compare/v3.9.2...v3.9.3)

##### Patch Changes

-
[#&#8203;11525](https://github.com/apollographql/apollo-client/pull/11525)
[`dce923a`](https://github.com/apollographql/apollo-client/commit/dce923ae57eb6b6d889e2980635cb90e2c6cbca3)
Thanks [@&#8203;vezaynk](https://github.com/vezaynk)! - Allows passing
in client via options to useFragment

-
[#&#8203;11558](https://github.com/apollographql/apollo-client/pull/11558)
[`8cba16f`](https://github.com/apollographql/apollo-client/commit/8cba16f041609443111ecf5fb58faea1b3e79569)
Thanks [@&#8203;alessbell](https://github.com/alessbell)! - Fix
[`unbound-method`](https://github.com/apollographql/apollo-client/issues/11554)
linter error on ObservableQuery methods exposed on useQuery's
QueryResult object.

###
[`v3.9.2`](https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#392)

[Compare
Source](https://github.com/apollographql/apollo-client/compare/v3.9.1...v3.9.2)

##### Patch Changes

-
[#&#8203;11552](https://github.com/apollographql/apollo-client/pull/11552)
[`6ac2b0c`](https://github.com/apollographql/apollo-client/commit/6ac2b0ce4d999c63478d85b40ad56ccda9624797)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Fix
import in `useLazyRef` causing import issues in the nextjs package.

###
[`v3.9.1`](https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#391)

[Compare
Source](https://github.com/apollographql/apollo-client/compare/v3.9.0...v3.9.1)

##### Patch Changes

-
[#&#8203;11516](https://github.com/apollographql/apollo-client/pull/11516)
[`8390fea`](https://github.com/apollographql/apollo-client/commit/8390fea13175bada8361ba5f0df2e43197085aba)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Fix an
incorrect string substitution in a warning message.

-
[#&#8203;11515](https://github.com/apollographql/apollo-client/pull/11515)
[`c9bf93b`](https://github.com/apollographql/apollo-client/commit/c9bf93bdc2816f7fdba96961e1435f463f440bd1)
Thanks [@&#8203;vladar](https://github.com/vladar)! - Avoid redundant
refetchQueries call for mutation with no-cache policy (fixes
[#&#8203;10238](https://github.com/apollographql/apollo-client/issues/10238))

-
[#&#8203;11545](https://github.com/apollographql/apollo-client/pull/11545)
[`84a6bea`](https://github.com/apollographql/apollo-client/commit/84a6beaeae69acdffea49ba6b8242752cc188172)
Thanks [@&#8203;alessbell](https://github.com/alessbell)! - Remove
error thrown by `inFlightLinkObservables` intended to be removed before
3.9 release.

###
[`v3.9.0`](https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#390)

[Compare
Source](https://github.com/apollographql/apollo-client/compare/v3.8.10...v3.9.0)

##### Minor Changes

##### Memory optimizations

-
[#&#8203;11424](https://github.com/apollographql/apollo-client/pull/11424)
[`62f3b6d`](https://github.com/apollographql/apollo-client/commit/62f3b6d0e89611e27d9f29812ee60e5db5963fd6)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Simplify
RetryLink, fix potential memory leak

Historically, `RetryLink` would keep a `values` array of all previous
values, in case the operation would get an additional subscriber at a
later point in time.

In practice, this could lead to a memory leak
([#&#8203;11393](https://github.com/apollographql/apollo-client/pull/11393))
and did not serve any further purpose, as the resulting observable would
only be subscribed to by Apollo Client itself, and only once - it would
be wrapped in a `Concast` before being exposed to the user, and that
`Concast` would handle subscribers on its own.

-
[#&#8203;11435](https://github.com/apollographql/apollo-client/pull/11435)
[`5cce53e`](https://github.com/apollographql/apollo-client/commit/5cce53e83b976f85d2d2b06e28cc38f01324fea1)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Deprecates
`canonizeResults`.

Using `canonizeResults` can result in memory leaks so we generally do
not recommend using this option anymore. A future version of Apollo
Client will contain a similar feature without the risk of memory leaks.

-
[#&#8203;11254](https://github.com/apollographql/apollo-client/pull/11254)
[`d08970d`](https://github.com/apollographql/apollo-client/commit/d08970d348cf4ad6d80c6baf85b4a4cd4034a3bb)
Thanks [@&#8203;benjamn](https://github.com/benjamn)! - Decouple
`canonicalStringify` from `ObjectCanon` for better time and memory
performance.

-
[#&#8203;11356](https://github.com/apollographql/apollo-client/pull/11356)
[`cc4ac7e`](https://github.com/apollographql/apollo-client/commit/cc4ac7e1917f046bcd177882727864eed40b910e)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Fix a
potential memory leak in `FragmentRegistry.transform` and
`FragmentRegistry.findFragmentSpreads` that would hold on to passed-in
`DocumentNodes` for too long.

-
[#&#8203;11370](https://github.com/apollographql/apollo-client/pull/11370)
[`25e2cb4`](https://github.com/apollographql/apollo-client/commit/25e2cb431c76ec5aa88202eaacbd98fad42edc7f)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - `parse`
function: improve memory management

- use LRU `WeakCache` instead of `Map` to keep a limited number of
parsed results
    -   cache is initiated lazily, only when needed
    -   expose `parse.resetCache()` method

-
[#&#8203;11389](https://github.com/apollographql/apollo-client/pull/11389)
[`139acd1`](https://github.com/apollographql/apollo-client/commit/139acd1153afa1445b69dcb4e139668ab8c5889a)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! -
`documentTransform`: use `optimism` and `WeakCache` instead of directly
storing data on the `Trie`

-
[#&#8203;11358](https://github.com/apollographql/apollo-client/pull/11358)
[`7d939f8`](https://github.com/apollographql/apollo-client/commit/7d939f80fbc2c419c58a6c55b6a35ee7474d0379)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Fixes a
potential memory leak in `Concast` that might have been triggered when
`Concast` was used outside of Apollo Client.

-
[#&#8203;11344](https://github.com/apollographql/apollo-client/pull/11344)
[`bd26676`](https://github.com/apollographql/apollo-client/commit/bd2667619700139af32a45364794d11f845ab6cf)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Add a
`resetCache` method to `DocumentTransform` and hook
`InMemoryCache.addTypenameTransform` up to `InMemoryCache.gc`

-
[#&#8203;11367](https://github.com/apollographql/apollo-client/pull/11367)
[`30d17bf`](https://github.com/apollographql/apollo-client/commit/30d17bfebe44dbfa7b78c8982cfeb49afd37129c)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - `print`: use
`WeakCache` instead of `WeakMap`

-
[#&#8203;11387](https://github.com/apollographql/apollo-client/pull/11387)
[`4dce867`](https://github.com/apollographql/apollo-client/commit/4dce8673b1757d8a3a4edd2996d780e86fad14e3)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! -
`QueryManager.transformCache`: use `WeakCache` instead of `WeakMap`

-
[#&#8203;11369](https://github.com/apollographql/apollo-client/pull/11369)
[`2a47164`](https://github.com/apollographql/apollo-client/commit/2a471646616e3af1b5c039e961f8d5717fad8f32)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Persisted
Query Link: improve memory management

- use LRU `WeakCache` instead of `WeakMap` to keep a limited number of
hash results
    -   hash cache is initiated lazily, only when needed
    -   expose `persistedLink.resetHashCache()` method
- reset hash cache if the upstream server reports it doesn't accept
persisted queries

-
[#&#8203;10804](https://github.com/apollographql/apollo-client/pull/10804)
[`221dd99`](https://github.com/apollographql/apollo-client/commit/221dd99ffd1990f8bd0392543af35e9b08d0fed8)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - use WeakMap
in React Native with Hermes

-
[#&#8203;11355](https://github.com/apollographql/apollo-client/pull/11355)
[`7d8e184`](https://github.com/apollographql/apollo-client/commit/7d8e18493cd13134726c6643cbf0fadb08be2d37)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! -
InMemoryCache.gc now also triggers FragmentRegistry.resetCaches (if
there is a FragmentRegistry)

-
[#&#8203;11409](https://github.com/apollographql/apollo-client/pull/11409)
[`2e7203b`](https://github.com/apollographql/apollo-client/commit/2e7203b3a9618952ddb522627ded7cceabd7f250)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Adds an
experimental `ApolloClient.getMemoryInternals` helper

-
[#&#8203;11343](https://github.com/apollographql/apollo-client/pull/11343)
[`776631d`](https://github.com/apollographql/apollo-client/commit/776631de4500d56252f6f5fdaf29a81c41dfbdc7)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Add `reset`
method to `print`, hook up to `InMemoryCache.gc`

##### Suspense-enabled data fetching on user interaction with
`useLoadableQuery`

-
[#&#8203;11300](https://github.com/apollographql/apollo-client/pull/11300)
[`a815873`](https://github.com/apollographql/apollo-client/commit/a8158733cfa3e65180ec23518d657ea41894bb2b)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! -
Introduces a new `useLoadableQuery` hook. This hook works similarly to
`useBackgroundQuery` in that it returns a `queryRef` that can be used to
suspend a component via the `useReadQuery` hook. It provides a more
ergonomic way to load the query during a user interaction (for example
when wanting to preload some data) that would otherwise be clunky with
`useBackgroundQuery`.

    ```tsx
    function App() {
      const [loadQuery, queryRef, { refetch, fetchMore, reset }] =
        useLoadableQuery(query, options);

      return (
        <>
<button onClick={() => loadQuery(variables)}>Load query</button>
          <Suspense fallback={<SuspenseFallback />}>
            {queryRef && <Child queryRef={queryRef} />}
          </Suspense>
        </>
      );
    }

    function Child({ queryRef }) {
      const { data } = useReadQuery(queryRef);

      // ...
    }
    ```

##### Begin preloading outside of React with `createQueryPreloader`

-
[#&#8203;11412](https://github.com/apollographql/apollo-client/pull/11412)
[`58db5c3`](https://github.com/apollographql/apollo-client/commit/58db5c3295b88162f91019f0898f6baa4b9cced6)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Add
the ability to start preloading a query outside React to begin fetching
as early as possible. Call `createQueryPreloader` to create a
`preloadQuery` function which can be called to start fetching a query.
This returns a `queryRef` which is passed to `useReadQuery` and
suspended until the query is done fetching.

##### Testing utility improvements

-
[#&#8203;11178](https://github.com/apollographql/apollo-client/pull/11178)
[`4d64a6f`](https://github.com/apollographql/apollo-client/commit/4d64a6fa2ad5abe6f7f172c164f5e1fc2cb89829)
Thanks [@&#8203;sebakerckhof](https://github.com/sebakerckhof)! -
Support re-using of mocks in the MockedProvider

-
[#&#8203;6701](https://github.com/apollographql/apollo-client/pull/6701)
[`8d2b4e1`](https://github.com/apollographql/apollo-client/commit/8d2b4e107d7c21563894ced3a65d631183b58fd9)
Thanks [@&#8203;prowe](https://github.com/prowe)! - Ability to
dynamically match mocks

Adds support for a new property `MockedResponse.variableMatcher`: a
predicate function that accepts a `variables` param. If `true`, the
`variables` will be passed into the `ResultFunction` to help dynamically
build a response.

##### New `useQueryRefHandlers` hook

-
[#&#8203;11412](https://github.com/apollographql/apollo-client/pull/11412)
[`58db5c3`](https://github.com/apollographql/apollo-client/commit/58db5c3295b88162f91019f0898f6baa4b9cced6)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Create
a new `useQueryRefHandlers` hook that returns `refetch` and `fetchMore`
functions for a given `queryRef`. This is useful to get access to
handlers for a `queryRef` that was created by `createQueryPreloader` or
when the handlers for a `queryRef` produced by a different component are
inaccessible.

    ```jsx
    const MyComponent({ queryRef }) {
      const { refetch, fetchMore } = useQueryRefHandlers(queryRef);

      // ...
    }
    ```

##### Bail out of `optimisticResponse` updates with the `IGNORE`
sentinel object

-
[#&#8203;11410](https://github.com/apollographql/apollo-client/pull/11410)
[`07fcf6a`](https://github.com/apollographql/apollo-client/commit/07fcf6a3bf5bc78ffe6f3e598897246b4da02cbb)
Thanks [@&#8203;sf-twingate](https://github.com/sf-twingate)! - Allow
returning `IGNORE` sentinel object from `optimisticResponse` functions
to bail-out from the optimistic update.

    Consider this example:

    ```jsx
    const UPDATE_COMMENT = gql`
mutation UpdateComment($commentId: ID!, $commentContent: String!) {
        updateComment(commentId: $commentId, content: $commentContent) {
          id
          __typename
          content
        }
      }
    `;

    function CommentPageWithData() {
      const [mutate] = useMutation(UPDATE_COMMENT);
      return (
        <Comment
          updateComment={({ commentId, commentContent }) =>
            mutate({
              variables: { commentId, commentContent },
              optimisticResponse: (vars, { IGNORE }) => {
                if (commentContent === "foo") {
                  // conditionally bail out of optimistic updates
                  return IGNORE;
                }
                return {
                  updateComment: {
                    id: commentId,
                    __typename: "Comment",
                    content: commentContent,
                  },
                };
              },
            })
          }
        />
      );
    }
    ```

The `IGNORE` sentinel can be destructured from the second parameter in
the callback function signature passed to `optimisticResponse`.

    ```tsx
    const preloadQuery = createQueryPreloader(client);
const queryRef = preloadQuery(QUERY, { variables, ...otherOptions });

    function App() {
      return {
        <Suspense fallback={<div>Loading</div>}>
          <MyQuery />
        </Suspense>
      }
    }

    function MyQuery() {
      const { data } = useReadQuery(queryRef);

      // do something with data
    }
    ```

##### Network adapters for multipart subscriptions usage with Relay and
urql

-
[#&#8203;11301](https://github.com/apollographql/apollo-client/pull/11301)
[`46ab032`](https://github.com/apollographql/apollo-client/commit/46ab032af83a01f184bfcce5edba4b55dbb2962a)
Thanks [@&#8203;alessbell](https://github.com/alessbell)! - Add
multipart subscription network adapters for Relay and urql

    ##### Relay

    ```tsx
import { createFetchMultipartSubscription } from
"@&#8203;apollo/client/utilities/subscriptions/relay";
import { Environment, Network, RecordSource, Store } from
"relay-runtime";

    const fetchMultipartSubs = createFetchMultipartSubscription(
      "http://localhost:4000",
    );

    const network = Network.create(fetchQuery, fetchMultipartSubs);

    export const RelayEnvironment = new Environment({
      network,
      store: new Store(new RecordSource()),
    });
    ```

    ##### Urql

    ```tsx
import { createFetchMultipartSubscription } from
"@&#8203;apollo/client/utilities/subscriptions/urql";
import { Client, fetchExchange, subscriptionExchange } from
"@&#8203;urql/core";

    const url = "http://localhost:4000";

const multipartSubscriptionForwarder =
createFetchMultipartSubscription(url);

    const client = new Client({
      url,
      exchanges: [
        fetchExchange,
        subscriptionExchange({
          forwardSubscription: multipartSubscriptionForwarder,
        }),
      ],
    });
    ```

##### `skipPollAttempt` callback function

-
[#&#8203;11397](https://github.com/apollographql/apollo-client/pull/11397)
[`3f7eecb`](https://github.com/apollographql/apollo-client/commit/3f7eecbfbd4f4444cffcaac7dd9fd225c8c2a401)
Thanks [@&#8203;aditya-kumawat](https://github.com/aditya-kumawat)! -
Adds a new `skipPollAttempt` callback function that's called whenever a
refetch attempt occurs while polling. If the function returns `true`,
the refetch is skipped and not reattempted until the next poll interval.
This will solve the frequent use-case of disabling polling when the
window is inactive.

    ```ts
    useQuery(QUERY, {
      pollInterval: 1000,
      skipPollAttempt: () => document.hidden, // or !document.hasFocus()
    });
    // or define it globally
    new ApolloClient({
      defaultOptions: {
        watchQuery: {
skipPollAttempt: () => document.hidden, // or !document.hasFocus()
        },
      },
    });
    ```

##### `QueryManager.inFlightLinkObservables` now uses a strong `Trie` as
an internal data structure

-
[#&#8203;11345](https://github.com/apollographql/apollo-client/pull/11345)
[`1759066`](https://github.com/apollographql/apollo-client/commit/1759066a8f9a204e49228568aef9446a64890ff3)
Thanks [@&#8203;phryneas](https://github.com/phryneas)!

##### Warning: requires `@apollo/experimental-nextjs-app-support` update

If you are using `@apollo/experimental-nextjs-app-support`, you will
need to update that to at least 0.5.2, as it accesses this internal data
structure.

<details open>
  <summary><h4>More Minor Changes</h4></summary>

-
[#&#8203;11202](https://github.com/apollographql/apollo-client/pull/11202)
[`7c2bc08`](https://github.com/apollographql/apollo-client/commit/7c2bc08b2ab46b9aa181d187a27aec2ad7129599)
Thanks [@&#8203;benjamn](https://github.com/benjamn)! - Prevent
`QueryInfo#markResult` mutation of `result.data` and return cache data
consistently whether complete or incomplete.

-
[#&#8203;11442](https://github.com/apollographql/apollo-client/pull/11442)
[`4b6f2bc`](https://github.com/apollographql/apollo-client/commit/4b6f2bccf3ba94643b38689b32edd2839e47aec1)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Remove
the need to call `retain` from `useLoadableQuery` since `useReadQuery`
will now retain the query. This means that a `queryRef` that is not
consumed by `useReadQuery` within the given `autoDisposeTimeoutMs` will
now be auto diposed for you.

Thanks to
[#&#8203;11412](https://github.com/apollographql/apollo-client/pull/11412),
disposed query refs will be automatically resubscribed to the query when
consumed by `useReadQuery` after it has been disposed.

-
[#&#8203;11438](https://github.com/apollographql/apollo-client/pull/11438)
[`6d46ab9`](https://github.com/apollographql/apollo-client/commit/6d46ab930a5e9bd5cae153d3b75b8966784fcd4e)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! - Remove
the need to call `retain` from `useBackgroundQuery` since `useReadQuery`
will now retain the query. This means that a `queryRef` that is not
consumed by `useReadQuery` within the given `autoDisposeTimeoutMs` will
now be auto diposed for you.

Thanks to
[#&#8203;11412](https://github.com/apollographql/apollo-client/pull/11412),
disposed query refs will be automatically resubscribed to the query when
consumed by `useReadQuery` after it has been disposed.

-
[#&#8203;11175](https://github.com/apollographql/apollo-client/pull/11175)
[`d6d1491`](https://github.com/apollographql/apollo-client/commit/d6d14911c40782cd6d69167b6f6169c890091ccb)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - To work
around issues in React Server Components, especially with bundling for
the Next.js "edge" runtime we now use an external package to wrap
`react` imports
    instead of importing React directly.

-
[#&#8203;11495](https://github.com/apollographql/apollo-client/pull/11495)
[`1190aa5`](https://github.com/apollographql/apollo-client/commit/1190aa59a106217f7192c1f81099adfa5e4365c1)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! -
Increase the default memory limits for `executeSelectionSet` and
`executeSelectionSetArray`.

</details>

<details open>
  <summary><h3>Patch Changes</h3></summary>

-
[#&#8203;11275](https://github.com/apollographql/apollo-client/pull/11275)
[`3862f9b`](https://github.com/apollographql/apollo-client/commit/3862f9ba9086394c4cf4c2ecd99e8e0f6cf44885)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Add a
`defaultContext` option and property on `ApolloClient`, e.g. for keeping
track of changing auth tokens or dependency injection.

This can be used e.g. in authentication scenarios, where a new token
might be generated outside of the link chain and should passed into the
link chain.

    ```js
import { ApolloClient, createHttpLink, InMemoryCache } from
"@&#8203;apollo/client";
    import { setContext } from "@&#8203;apollo/client/link/context";

    const httpLink = createHttpLink({
      uri: "/graphql",
    });

    const authLink = setContext((_, { headers, token }) => {
      return {
        headers: {
          ...headers,
          authorization: token ? `Bearer ${token}` : "",
        },
      };
    });

    const client = new ApolloClient({
      link: authLink.concat(httpLink),
      cache: new InMemoryCache(),
    });

    // somewhere else in your application
    function onNewToken(newToken) {
// token can now be changed for future requests without need for a
global
      // variable, scoped ref or recreating the client
      client.defaultContext.token = newToken;
    }
    ```

-
[#&#8203;11443](https://github.com/apollographql/apollo-client/pull/11443)
[`ff5a332`](https://github.com/apollographql/apollo-client/commit/ff5a332ff8b190c418df25371e36719d70061ebe)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Adds a
deprecation warning to the HOC and render prop APIs.

The HOC and render prop APIs have already been deprecated since 2020,
    but we previously didn't have a `@deprecated` tag in the DocBlocks.

-
[#&#8203;11385](https://github.com/apollographql/apollo-client/pull/11385)
[`d9ca4f0`](https://github.com/apollographql/apollo-client/commit/d9ca4f0821c66ae4f03cf35a7ac93fe604cc6de3)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - ensure
`defaultContext` is also used for mutations and subscriptions

-
[#&#8203;11503](https://github.com/apollographql/apollo-client/pull/11503)
[`67f62e3`](https://github.com/apollographql/apollo-client/commit/67f62e359bc471787d066319326e5582b4a635c8)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! -
Release changes from
[`v3.8.10`](https://github.com/apollographql/apollo-client/releases/tag/v3.8.10)

-
[#&#8203;11078](https://github.com/apollographql/apollo-client/pull/11078)
[`14edebe`](https://github.com/apollographql/apollo-client/commit/14edebebefb7634c32b921d02c1c85c6c8737989)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! -
ObservableQuery: prevent reporting results of previous queries if the
variables changed since

-
[#&#8203;11439](https://github.com/apollographql/apollo-client/pull/11439)
[`33454f0`](https://github.com/apollographql/apollo-client/commit/33454f0a40a05ea2b00633bda20a84d0ec3a4f4d)
Thanks [@&#8203;jerelmiller](https://github.com/jerelmiller)! -
Address bundling issue introduced in
[#&#8203;11412](https://github.com/apollographql/apollo-client/pull/11412)
where the `react/cache` internals ended up duplicated in the bundle.
This was due to the fact that we had a `react/hooks` entrypoint that
imported these files along with the newly introduced
`createQueryPreloader` function, which lived outside of the
`react/hooks` folder.

-
[#&#8203;11371](https://github.com/apollographql/apollo-client/pull/11371)
[`ebd8fe2`](https://github.com/apollographql/apollo-client/commit/ebd8fe2c1b8b50bfeb2da20aeca5671300fb5564)
Thanks [@&#8203;phryneas](https://github.com/phryneas)! - Clarify
types of `EntityStore.makeCacheKey`.

</details>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/redwoodjs/redwood).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
renovate[bot] authored Mar 5, 2024
1 parent 88e8089 commit 8d01d38
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
2 changes: 1 addition & 1 deletion packages/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"test:watch": "yarn test --watch"
},
"dependencies": {
"@apollo/client": "3.8.10",
"@apollo/client": "3.9.5",
"@babel/runtime-corejs3": "7.23.9",
"@redwoodjs/auth": "7.0.0",
"core-js": "3.35.1",
Expand Down
29 changes: 23 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -103,24 +103,26 @@ __metadata:
languageName: node
linkType: hard

"@apollo/client@npm:3.8.10":
version: 3.8.10
resolution: "@apollo/client@npm:3.8.10"
"@apollo/client@npm:3.9.5":
version: 3.9.5
resolution: "@apollo/client@npm:3.9.5"
dependencies:
"@graphql-typed-document-node/core": "npm:^3.1.1"
"@wry/caches": "npm:^1.0.0"
"@wry/equality": "npm:^0.5.6"
"@wry/trie": "npm:^0.5.0"
graphql-tag: "npm:^2.12.6"
hoist-non-react-statics: "npm:^3.3.2"
optimism: "npm:^0.18.0"
prop-types: "npm:^15.7.2"
rehackt: "npm:0.0.5"
response-iterator: "npm:^0.2.6"
symbol-observable: "npm:^4.0.0"
ts-invariant: "npm:^0.10.3"
tslib: "npm:^2.3.0"
zen-observable-ts: "npm:^1.2.5"
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql: ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
Expand All @@ -134,7 +136,7 @@ __metadata:
optional: true
subscriptions-transport-ws:
optional: true
checksum: 10c0/983306f61de042aca2f02e414533fbdac0c9c905648a98b42bb79bccb19012306eebb3c55c6d665523addbc1948625d1aae70bdc2dd511775b7a962a40dfc5b1
checksum: 10c0/ede8ea975ba12cbf11d1b88074808ff7c8677321b5780c952c4b7d7672a4bdda24f27a6a1fed79cc6e6d9787b083f12afed0033c2fee06a2d226faadf3f44aec
languageName: node
linkType: hard

Expand Down Expand Up @@ -8801,7 +8803,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@redwoodjs/web@workspace:packages/web"
dependencies:
"@apollo/client": "npm:3.8.10"
"@apollo/client": "npm:3.9.5"
"@apollo/experimental-nextjs-app-support": "npm:0.0.0-commit-b8a73fe"
"@babel/cli": "npm:7.23.9"
"@babel/core": "npm:^7.22.20"
Expand Down Expand Up @@ -29264,6 +29266,21 @@ __metadata:
languageName: node
linkType: hard

"rehackt@npm:0.0.5":
version: 0.0.5
resolution: "rehackt@npm:0.0.5"
peerDependencies:
"@types/react": "*"
react: "*"
peerDependenciesMeta:
"@types/react":
optional: true
react:
optional: true
checksum: 10c0/6123188b6cae82441e2e670ec1dbd741a11874958479b44a69323429bc038398a0b431ffd845c69fc60cc0c0939252ffd2cb37255c314eda38f6a4072bf81b56
languageName: node
linkType: hard

"relateurl@npm:^0.2.7":
version: 0.2.7
resolution: "relateurl@npm:0.2.7"
Expand Down

0 comments on commit 8d01d38

Please sign in to comment.