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

Version Packages #12169

Merged
merged 2 commits into from
Dec 4, 2024
Merged

Version Packages #12169

merged 2 commits into from
Dec 4, 2024

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Dec 4, 2024

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@apollo/[email protected]

Minor Changes

  • #12124 ab0a1b5 Thanks @jerelmiller! - Promote to 3.12.0-rc.0

  • #12131 21c3f08 Thanks @jerelmiller! - Allow null as a valid from value in useFragment.

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

Patch Changes

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

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

@svc-apollo-docs
Copy link

svc-apollo-docs commented Dec 4, 2024

✅ Docs Preview Ready

No new or changed pages found.

Copy link

netlify bot commented Dec 4, 2024

Deploy Preview for apollo-client-docs ready!

Name Link
🔨 Latest commit 58f2fe8
🔍 Latest deploy log https://app.netlify.com/sites/apollo-client-docs/deploys/6750a927c03e090008b03864
😎 Deploy Preview https://deploy-preview-12169--apollo-client-docs.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.

Copy link

pkg-pr-new bot commented Dec 4, 2024

npm i https://pkg.pr.new/@apollo/client@12169

commit: 58f2fe8

Copy link
Contributor Author

github-actions bot commented Dec 4, 2024

size-limit report 📦

Path Size
dist/apollo-client.min.cjs 40.64 KB (-0.01% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" 50.02 KB (-0.01% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/main.cjs" (production) 47.14 KB (-0.01% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" 36.13 KB (-0.01% 🔽)
import { ApolloClient, InMemoryCache, HttpLink } from "dist/index.js" (production) 33.54 KB (0%)
import { ApolloProvider } from "dist/react/index.js" 1.26 KB (-0.08% 🔽)
import { ApolloProvider } from "dist/react/index.js" (production) 1.24 KB (+0.08% 🔺)
import { useQuery } from "dist/react/index.js" 5.21 KB (-0.02% 🔽)
import { useQuery } from "dist/react/index.js" (production) 4.29 KB (-0.03% 🔽)
import { useLazyQuery } from "dist/react/index.js" 5.7 KB (-0.02% 🔽)
import { useLazyQuery } from "dist/react/index.js" (production) 4.77 KB (-0.03% 🔽)
import { useMutation } from "dist/react/index.js" 3.62 KB (-0.03% 🔽)
import { useMutation } from "dist/react/index.js" (production) 2.84 KB (-0.04% 🔽)
import { useSubscription } from "dist/react/index.js" 4.42 KB (-0.03% 🔽)
import { useSubscription } from "dist/react/index.js" (production) 3.48 KB (0%)
import { useSuspenseQuery } from "dist/react/index.js" 5.51 KB (-0.02% 🔽)
import { useSuspenseQuery } from "dist/react/index.js" (production) 4.17 KB (+0.03% 🔺)
import { useBackgroundQuery } from "dist/react/index.js" 5.01 KB (-0.02% 🔽)
import { useBackgroundQuery } from "dist/react/index.js" (production) 3.66 KB (-0.03% 🔽)
import { useLoadableQuery } from "dist/react/index.js" 5.09 KB (-0.02% 🔽)
import { useLoadableQuery } from "dist/react/index.js" (production) 3.73 KB (-0.03% 🔽)
import { useReadQuery } from "dist/react/index.js" 3.41 KB (+0.03% 🔺)
import { useReadQuery } from "dist/react/index.js" (production) 3.35 KB (0%)
import { useFragment } from "dist/react/index.js" 2.36 KB (-0.05% 🔽)
import { useFragment } from "dist/react/index.js" (production) 2.31 KB (-0.05% 🔽)

@jerelmiller jerelmiller force-pushed the changeset-release/main branch from 84373a6 to e72a58e Compare December 4, 2024 19:08
@jerelmiller jerelmiller force-pushed the changeset-release/main branch from e72a58e to 58f2fe8 Compare December 4, 2024 19:10
@github-actions github-actions bot added the auto-cleanup 🤖 label Dec 4, 2024
@jerelmiller jerelmiller merged commit 36b93b9 into main Dec 4, 2024
48 checks passed
@jerelmiller jerelmiller deleted the changeset-release/main branch December 4, 2024 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants