Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update all non-major dependencies #598

Merged
merged 1 commit into from
Aug 28, 2023
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 26, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@apollo/client (source) 3.7.10 -> 3.8.1 age adoption passing confidence
@​blocto/aptos-wallet-adapter-plugin 0.2.0 -> 0.2.3 age adoption passing confidence
@jest/globals 29.5.0 -> 29.6.4 age adoption passing confidence
@mui/icons-material (source) 5.11.11 -> 5.14.6 age adoption passing confidence
@mui/material (source) 5.11.16 -> 5.14.6 age adoption passing confidence
@mui/system (source) 5.11.16 -> 5.14.6 age adoption passing confidence
@mui/x-date-pickers (source) 6.0.0 -> 6.12.0 age adoption passing confidence
@sentry/react (source) 7.52.1 -> 7.65.0 age adoption passing confidence
@sentry/tracing (source) 7.52.1 -> 7.65.0 age adoption passing confidence
@solana/web3.js (source) 1.75.0 -> 1.78.4 age adoption passing confidence
@tanstack/react-query (source) 4.29.5 -> 4.33.0 age adoption passing confidence
@types/lodash (source) 4.14.191 -> 4.14.197 age adoption passing confidence
@types/react-syntax-highlighter (source) 15.5.6 -> 15.5.7 age adoption passing confidence
@typescript-eslint/eslint-plugin 6.0.0 -> 6.5.0 age adoption passing confidence
@typescript-eslint/parser 6.0.0 -> 6.5.0 age adoption passing confidence
@vitejs/plugin-react (source) 4.0.0 -> 4.0.4 age adoption passing confidence
@welldone-studio/aptos-wallet-adapter 0.1.2 -> 0.1.4 age adoption passing confidence
aptos 1.18.0 -> 1.19.0 age adoption passing confidence
chart.js (source) 4.2.1 -> 4.4.0 age adoption passing confidence
date-fns 2.29.3 -> 2.30.0 age adoption passing confidence
eslint (source) 8.41.0 -> 8.48.0 age adoption passing confidence
eslint-plugin-react-refresh 0.4.1 -> 0.4.3 age adoption passing confidence
fewcha-plugin-wallet-adapter 0.1.2 -> 0.1.3 age adoption passing confidence
graphql 16.6.0 -> 16.8.0 age adoption passing confidence
lint-staged 14.0.0 -> 14.0.1 age adoption passing confidence
pnpm (source) 8.6.12 -> 8.7.0 age adoption passing confidence
prettier (source) 3.0.0 -> 3.0.2 age adoption passing confidence
react-hook-form (source) 7.43.7 -> 7.45.4 age adoption passing confidence
react-intersection-observer 9.4.3 -> 9.5.2 age adoption passing confidence
react-loading-skeleton 3.2.0 -> 3.3.1 age adoption passing confidence
react-number-format 5.2.2 -> 5.3.0 age adoption passing confidence
react-router-dom 6.10.0 -> 6.15.0 age adoption passing confidence
recharts 2.5.0 -> 2.8.0 age adoption passing confidence
statsig-react 1.23.2 -> 1.30.3 age adoption passing confidence
typescript (source) 5.0.2 -> 5.2.2 age adoption passing confidence
vite (source) 4.3.9 -> 4.4.9 age adoption passing confidence
vitest 0.34.0 -> 0.34.3 age adoption passing confidence

Release Notes

apollographql/apollo-client (@​apollo/client)

v3.8.1

Compare Source

Patch Changes
  • #​11141 c469b1616 Thanks @​jerelmiller! - Remove newly exported response iterator helpers that caused problems on some installs where @types/node was not available.

    IMPORTANT

    The following exports were added in version 3.8.0 that are removed with this patch.

    • isAsyncIterableIterator
    • isBlob
    • isNodeReadableStream
    • isNodeResponse
    • isReadableStream
    • isStreamableBlob

v3.8.0

Compare Source

Minor Changes
Fetching with Suspense 🎉
  • #​10323 64cb88a4b Thanks @​jerelmiller! - Add support for React suspense with a new useSuspenseQuery hook.

    useSuspenseQuery initiates a network request and causes the component calling it to suspend while the request is in flight. It can be thought of as a drop-in replacement for useQuery that allows you to take advantage of React's concurrent features while fetching during render.

    Consider a Dog component that fetches and renders some information about a dog named Mozzarella:

    View code 🐶
    import { Suspense } from "react";
    import { gql, TypedDocumentNode, useSuspenseQuery } from "@​apollo/client";
    
    interface Data {
      dog: {
        id: string;
        name: string;
      };
    }
    
    interface Variables {
      name: string;
    }
    
    const GET_DOG_QUERY: TypedDocumentNode<Data, Variables> = gql`
      query GetDog($name: String) {
        dog(name: $name) {
          id
          name
        }
      }
    `;
    
    function App() {
      return (
        <Suspense fallback={<div>Loading...</div>}>
          <Dog name="Mozzarella" />
        </Suspense>
      );
    }
    
    function Dog({ name }: { name: string }) {
      const { data } = useSuspenseQuery(GET_DOG_QUERY, {
        variables: { name },
      });
    
      return <>Name: {data.dog.name}</>;
    }

    For a detailed explanation of useSuspenseQuery, see our fetching with Suspense reference.

  • #​10755 e3c676deb Thanks @​alessbell! - Feature: adds useBackgroundQuery and useReadQuery hooks

    useBackgroundQuery initiates a request for data in a parent component and returns a QueryReference which is used to read the data in a child component via useReadQuery. If the child component attempts to render before the data can be found in the cache, the child component will suspend until the data is available. On cache updates to watched data, the child component calling useReadQuery will re-render with new data but the parent component will not re-render (as it would, for example, if it were using useQuery to issue the request).

    Consider an App component that fetches a list of breeds in the background while also fetching and rendering some information about an individual dog, Mozzarella:

    View code 🐶
    function App() {
      const [queryRef] = useBackgroundQuery(GET_BREEDS_QUERY);
      return (
        <Suspense fallback={<div>Loading...</div>}>
          <Dog name="Mozzarella" queryRef={queryRef} />
        </Suspense>
      );
    }
    
    function Dog({
      name,
      queryRef,
    }: {
      name: string;
      queryRef: QueryReference<BreedData>;
    }) {
      const { data } = useSuspenseQuery(GET_DOG_QUERY, {
        variables: { name },
      });
      return (
        <>
          Name: {data.dog.name}
          <Suspense fallback={<div>Loading breeds...</div>}>
            <Breeds queryRef={queryRef} />
          </Suspense>
        </>
      );
    }
    
    function Breeds({ queryRef }: { queryRef: QueryReference<BreedData> }) {
      const { data } = useReadQuery(queryRef);
      return data.breeds.map(({ characteristics }) =>
        characteristics.map((characteristic) => (
          <div key={characteristic}>{characteristic}</div>
        ))
      );
    }

    For a detailed explanation of useBackgroundQuery and useReadQuery, see our fetching with Suspense reference.

Document transforms 📑
  • #​10509 79df2c7ba Thanks @​jerelmiller! - Add the ability to specify custom GraphQL document transforms. These transforms are run before reading data from the cache, before local state is resolved, and before the query document is sent through the link chain.

    To register a custom document transform, create a transform using the DocumentTransform class and pass it to the documentTransform option on ApolloClient.

    import { DocumentTransform } from "@&#8203;apollo/client";
    
    const documentTransform = new DocumentTransform((document) => {
      // do something with `document`
      return transformedDocument;
    });
    
    const client = new ApolloClient({ documentTransform: documentTransform });

    For more information on the behavior and API of DocumentTransform, see its reference page in our documentation.

New removeTypenameFromVariables link 🔗
  • #​10853 300957960 Thanks @​jerelmiller! - Introduce the new removeTypenameFromVariables link. This link will automatically remove __typename fields from variables for all operations. This link can be configured to exclude JSON-scalars for scalars that utilize __typename.

    This change undoes some work from #​10724 where __typename was automatically stripped for all operations with no configuration. This was determined to be a breaking change and therefore moved into this link.

    For a detailed explanation of removeTypenameFromVariables, see its API reference.

New skipToken sentinel ⏭️
  • #​11112 b4aefcfe9 Thanks @​jerelmiller! - Adds support for a skipToken sentinel that can be used as options in useSuspenseQuery and useBackgroundQuery to skip execution of a query. This works identically to the skip option but is more type-safe and as such, becomes the recommended way to skip query execution. As such, the skip option has been deprecated in favor of skipToken.

    We are considering the removal of the skip option from useSuspenseQuery and useBackgroundQuery in the next major. We are releasing with it now to make migration from useQuery easier and make skipToken more discoverable.

    useSuspenseQuery

    import { skipToken, useSuspenseQuery } from "@&#8203;apollo/client";
    
    const id: number | undefined;
    
    const { data } = useSuspenseQuery(
      query,
      id ? { variables: { id } } : skipToken
    );

    useBackgroundQuery

    import { skipToken, useBackgroundQuery } from "@&#8203;apollo/client";
    
    function Parent() {
      const [queryRef] = useBackgroundQuery(
        query,
        id ? { variables: { id } } : skipToken
      );
    
      return queryRef ? <Child queryRef={queryRef} /> : null;
    }
    
    function Child({ queryRef }: { queryRef: QueryReference<TData> }) {
      const { data } = useReadQuery(queryRef);
    }

    For a detailed explanation of skipToken, see its API reference.

New error extraction mechanism, smaller bundles 📉
  • #​10887 f8c0b965d Thanks @​phryneas! - Add a new mechanism for Error Extraction to reduce bundle size by including error message texts on an opt-in basis.

    By default, errors will link to an error page with the entire error message.
    This replaces "development" and "production" errors and works without
    additional bundler configuration.

    Bundling the text of error messages and development warnings can be enabled as follows:

    import { loadErrorMessages, loadDevMessages } from "@&#8203;apollo/client/dev";
    if (process.env.NODE_ENV !== "production") {
      loadErrorMessages();
      loadDevMessages();
    }

    For a detailed explanation, see our reference on reducing bundle size.

New @nonreactive directive 🎬
  • #​10722 c7e60f83d Thanks @​benjamn! - Implement a @nonreactive directive for selectively skipping reactive comparisons of query result subtrees.

    The @nonreactive directive can be used to mark query fields or fragment spreads and is used to indicate that changes to the data contained within the subtrees marked @nonreactive should not trigger re-rendering. This allows parent components to fetch data to be rendered by their children without re-rendering themselves when the data corresponding with fields marked as @nonreactive change.

    Consider an App component that fetches and renders a list of ski trails:

    View code 🎿
    const TrailFragment = gql`
      fragment TrailFragment on Trail {
        name
        status
      }
    `;
    
    const ALL_TRAILS = gql`
      query allTrails {
        allTrails {
          id
          ...TrailFragment @&#8203;nonreactive
        }
      }
      ${TrailFragment}
    `;
    
    function App() {
      const { data, loading } = useQuery(ALL_TRAILS);
      return (
        <main>
          <h2>Ski Trails</h2>
          <ul>
            {data?.trails.map((trail) => (
              <Trail key={trail.id} id={trail.id} />
            ))}
          </ul>
        </main>
      );
    }

    The Trail component renders a trail's name and status and allows the user to execute a mutation to toggle the status of the trail between "OPEN" and "CLOSED":

    View code 🎿
    const Trail = ({ id }) => {
      const [updateTrail] = useMutation(UPDATE_TRAIL);
      const { data } = useFragment({
        fragment: TrailFragment,
        from: {
          __typename: "Trail",
          id,
        },
      });
      return (
        <li key={id}>
          {data.name} - {data.status}
          <input
            checked={data.status === "OPEN" ? true : false}
            type="checkbox"
            onChange={(e) => {
              updateTrail({
                variables: {
                  trailId: id,
                  status: e.target.checked ? "OPEN" : "CLOSED",
                },
              });
            }}
          />
        </li>
      );
    };

    Notice that the Trail component isn't receiving the entire trail object via props, only the id which is used along with the fragment document to create a live binding for each trail item in the cache. This allows each Trail component to react to the cache updates for a single trail independently. Updates to a trail's status will not cause the parent App component to rerender since the @nonreactive directive is applied to the TrailFragment spread, a fragment that includes the status field.

    For a detailed explanation, see our @nonreactive reference and @​alessbell's post on the Apollo blog about using @nonreactive with useFragment.

Abort the AbortController signal more granularly 🛑
  • #​11040 125ef5b2a Thanks @​phryneas! - HttpLink/BatchHttpLink: Abort the AbortController signal more granularly.

    Before this change, when HttpLink/BatchHttpLink created an AbortController internally, the signal would always be .aborted after the request was completed. This could cause issues with Sentry Session Replay and Next.js App Router Cache invalidations, which just replayed the fetch with the same options - including the cancelled AbortSignal.

    With this change, the AbortController will only be .abort()ed by outside events, not as a consequence of the request completing.

useFragment drops its experimental label 🎓
  • #​10916 ea75e18de Thanks @​alessbell! - Remove experimental labels.

    useFragment, introduced in 3.7.0 as useFragment_experimental, is no longer an experimental API 🎉 We've removed the _experimental suffix from its named export and have made a number of improvements.

    For a detailed explanation, see our useFragment reference and @​alessbell's post on the Apollo blog about using useFragment with @nonreactive for improved performance when rendering lists.

    useFragment improvements
    • #​10765 35f36c5aa Thanks @​phryneas! - More robust types for the data property on UseFragmentResult. When a partial result is given, the type is now correctly set to Partial<TData>.

    • #​11083 f766e8305 Thanks @​phryneas! - Adjust the rerender timing of useQuery to more closely align with useFragment. This means that cache updates delivered to both hooks should trigger renders at relatively the same time. Previously, the useFragment might rerender much faster leading to some confusion.

    • #​10836 6794893c2 Thanks @​phryneas! - Remove the deprecated returnPartialData option from useFragment hook.

More Minor Changes

  • #​10895 e187866fd Thanks @​Gelio! - Add generic type parameter for the entity modified in cache.modify. Improves TypeScript type inference for that type's fields and values of those fields.

    Example:

    cache.modify<Book>({
      id: cache.identify(someBook),
      fields: {
        title: (title) => {
          // title has type `string`.
          // It used to be `any`.
        },
     => {
          // author has type `Reference | Book["author"]`.
          // It used to be `any`.
        },
      },
    });
  • #​10895 e187866fd Thanks @​Gelio! - Use unique opaque types for the DELETE and INVALIDATE Apollo cache modifiers.

    This increases type safety, since these 2 modifiers no longer have the any type. Moreover, it no longer triggers the @typescript-eslint/no-unsafe-return
    rule
    .

  • #​10340 4f73c5ca1 Thanks @​alessbell! - Avoid calling useQuery onCompleted for cache writes

  • #​10527 0cc7e2e19 Thanks @​phryneas! - Remove the query/mutation/subscription option from hooks that already take that value as their first argument.

  • #​10506 2dc2e1d4f Thanks @​phryneas! - prevent accidental widening of inferred TData and TVariables generics for query hook option arguments

  • #​10521 fbf729414 Thanks @​benjamn! - Simplify __DEV__ polyfill to use imports instead of global scope

  • #​10994 2ebbd3abb Thanks @​phryneas! - Add .js file extensions to imports in src and dist/*/.d.ts

  • #​11045 9c1d4a104 Thanks @​jerelmiller! - When changing variables back to a previously used set of variables, do not automatically cache the result as part of the query reference. Instead, dispose of the query reference so that the InMemoryCache can determine the cached behavior. This means that fetch policies that would guarantee a network request are now honored when switching back to previously used variables.

  • #​11058 89bf33c42 Thanks @​phryneas! - (Batch)HttpLink: Propagate AbortErrors to the user when a user-provided signal is passed to the link. Previously, these links would swallow all AbortErrors, potentially causing queries and mutations to never resolve. As a result of this change, users are now expected to handle AbortErrors when passing in a user-provided signal.

  • #​10346 3bcfc42d3 Thanks @​jerelmiller! - Add the ability to allow @client fields to be sent to the link chain.

  • #​10567 c2ce6496c Thanks @​benjamn! - Allow ApolloCache implementations to specify default value for assumeImmutableResults client option, improving performance for applications currently using InMemoryCache without configuring new ApolloClient({ assumeImmutableResults: true })

  • #​10915 3a62d8228 Thanks @​phryneas! - Changes how development-only code is bundled in the library to more reliably enable consuming bundlers to reduce production bundle sizes while keeping compatibility with non-node environments.

Patch Changes


Configuration

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

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@netlify
Copy link

netlify bot commented Aug 26, 2023

Deploy Preview for aptos-explorer ready!

Name Link
🔨 Latest commit d2f5089
🔍 Latest deploy log https://app.netlify.com/sites/aptos-explorer/deploys/64ece051a86beb00084d9788
😎 Deploy Preview https://deploy-preview-598--aptos-explorer.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 40d091e to d2f5089 Compare August 28, 2023 17:58
@kent-white kent-white merged commit 047409f into main Aug 28, 2023
8 checks passed
@kent-white kent-white deleted the renovate/all-minor-patch branch August 28, 2023 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant