redux-devtools
redux-devtools copied to clipboard
chore(deps): update all non-major dependencies
This PR contains the following updates:
Release Notes
babel/babel (@babel/cli)
v7.25.9
:bug: Bug Fix
babel-parser,babel-template,babel-types- #16905 fix: Keep type annotations in
syntacticPlaceholdersmode (@liuxingbaoyu)
- #16905 fix: Keep type annotations in
babel-helper-compilation-targets,babel-preset-env- Other
- #16884 Analyze
ClassAccessorPropertyto prevent theno-undefrule (@victorenator)
- #16884 Analyze
:house: Internal
:running_woman: Performance
babel-parser,babel-types- #16918 perf: Make
VISITOR_KEYSetc. faster to access (@liuxingbaoyu)
- #16918 perf: Make
reduxjs/redux-toolkit (@reduxjs/toolkit)
v2.3.0
This feature release adds a new RTK Query upsertQueryEntries util to batch-upsert cache entries more efficiently, passes through additional values for use in prepareHeaders, and exports additional TS types around query options and selectors.
Changelog
upsertQueryEntries
RTK Query already had an upsertQueryData thunk that would upsert a single cache entry. However, some users wanted to upsert many cache entries (potentially hundreds or thousands), and found that upsertQueryData had poor performance in those cases. This is because upsertQueryData runs the full async request handling sequence, including dispatching both pending and fulfilled actions, each of which run the main reducer and update store subscribers. That means there's 2N store / UI updates per item, so upserting hundreds of items becomes extremely perf-intensive.
RTK Query now includes an api.util.upsertQueryEntries action that is meant to handle the batched upsert use case more efficiently. It's a single synchronous action that accepts an array of many {endpointName, arg, value} entries to upsert. This results in a single store update, making this vastly better for performance vs many individual upsertQueryData calls.
We see this as having two main use cases. The first is prefilling the cache with data retrieved from storage on app startup (and it's worth noting that upsertQueryEntries can accept entries for many different endpoints as part of the same array).
The second is to act as a "pseudo-normalization" tool. RTK Query is not a "normalized" cache. However, there are times when you may want to prefill other cache entries with the contents of another endpoint, such as taking the results of a getPosts list endpoint response and prefilling the individual getPost(id) endpoint cache entries, so that components that reference an individual item endpoint already have that data available.
Currently, you can implement the "pseudo-normalization" approach by dispatching upsertQueryEntries in an endpoint lifecycle, like this:
const api = createApi({
endpoints: (build) => ({
getPosts: build.query<Post[], void>({
query: () => '/posts',
async onQueryStarted(_, { dispatch, queryFulfilled }) {
const res = await queryFulfilled
const posts = res.data
// Pre-fill the individual post entries with the results
// from the list endpoint query
dispatch(
api.util.upsertQueryEntries(
posts.map((post) => ({
endpointName: 'getPost',
arg: { id: post.id },
value: post,
})),
),
)
},
}),
getPost: build.query<Post, Pick<Post, 'id'>>({
query: (post) => `post/${post.id}`,
}),
}),
})
Down the road we may add a new option to query endpoints that would let you provide the mapping function and have it automatically update the corresponding entries.
For additional comparisons between upsertQueryData and upsertQueryEntries, see the upsertQueryEntries API reference.
prepareHeaders Options
The prepareHeaders callback for fetchBaseQuery now receives two additional values in the api argument:
arg: the URL string orFetchArgsobject that was passed in tofetchBaseQueryfor this endpointextraOptions: any extra options that were provided to the base query
Additional TS Types
We've added a TypedQueryStateSelector type that can be used to pre-type selectors for use with selectFromResult:
const typedSelectFromResult: TypedQueryStateSelector<
PostsApiResponse,
QueryArgument,
BaseQueryFunction,
SelectedResult
> = (state) => ({ posts: state.data?.posts ?? EMPTY_ARRAY })
function PostsList() {
const { posts } = useGetPostsQuery(undefined, {
selectFromResult: typedSelectFromResult,
})
}
We've also exported several additional TS types around base queries and tag definitions.
What's Changed
- Fix serializeQueryArgs type by @Reedgern in https://github.com/reduxjs/redux-toolkit/pull/4658
- Add the
TypedQueryStateSelectorhelper type by @aryaemami59 in https://github.com/reduxjs/redux-toolkit/pull/4656 - Pass query args to prepareHeaders function by @kyletsang in https://github.com/reduxjs/redux-toolkit/pull/4638
- Implement a util function to batch-upsert cache entries by @markerikson in https://github.com/reduxjs/redux-toolkit/pull/4561
- fetchBaseQuery: expose extraOptions to prepareHeaders by @phryneas in https://github.com/reduxjs/redux-toolkit/pull/4291
Full Changelog: https://github.com/reduxjs/redux-toolkit/compare/v2.2.8...v2.3.0
rjsf-team/react-jsonschema-form (@rjsf/core)
v5.22.1: 5.22.1
@rjsf/*
- Bumped peer dependencies to
5.22.xdue to updated type definition and API changes in@rjsf/utils
v5.22.0
@rjsf/core
- Updated
MultiSchemaFieldto call theonChangehandler after setting the new option, fixing #3997 and #4314
@rjsf/utils
- Added
experimental_customMergeAllOfoption toretrieveSchema()andgetDefaultFormState()to allow custom merging ofallOfschemas - Made fields with const property pre-filled and readonly, fixing #2600
- Added
mergeDefaultsIntoFormDataoption toExperimental_DefaultFormStateBehaviortype to control how to handle merging of defaults - Updated
mergeDefaultsWithFormData()to add new optionaldefaultSupercedesUndefinedthat when true uses the defaults rather thanundefinedformData, fixing #4322 - Updated
getDefaultFormState()to pass true tomergeDefaultsWithFormDatafordefaultSupercedesUndefinedwhenmergeDefaultsIntoFormDatahas the valueuseDefaultIfFormDataUndefined, fixing #4322 - Updated
getClosestMatchingOption()to improve the scoring of sub-property objects that are provided over ones that aren't, fixing #3997 and #4314
Dev / docs / playground
- Updated the
form-props.mdto add documentation for the newexperimental_customMergeAllOfprops and theexperimental_defaultFormStateBehavior.mergeDefaultsIntoFormDataoption - Updated the
utility-functions.mdto add documentation for the new optionaldefaultSupercedesUndefinedparameter and the two missing optional fields ongetDefaultFormState() - Updated the
custom-templates.mdto add a section header for wrappingBaseInputTemplate - Updated the playground to add controls for the new
mergeDefaultsIntoFormDataoption- In the process, moved the
Show Error Listcomponent over one column, making it inline radio buttons rather than a select
- In the process, moved the
storybookjs/storybook (@storybook/addon-essentials)
v8.3.6
- CLI: Install Svelte CSF v5 in Svelte5 projects - #29323, thanks @shilman!
- Svelte: Add v5 stories to CLI templates - #29382, thanks @JReinhold!
storybookjs/storybook (@storybook/addon-onboarding)
v8.3.6
8.3.6
- CLI: Install Svelte CSF v5 in Svelte5 projects - #29323, thanks @shilman!
- Svelte: Add v5 stories to CLI templates - #29382, thanks @JReinhold!
typescript-eslint/typescript-eslint (@typescript-eslint/eslint-plugin)
v8.11.0
🚀 Features
- eslint-plugin: [no-unnecessary-type-parameters] add suggestion fixer (#10149)
- eslint-plugin: [no-base-to-string] add support for catching toLocaleString (#10138)
🩹 Fixes
- eslint-plugin: [class-literal-property-style] don't report nodes with
overridekeyword (#10135)
❤️ Thank You
- Kirk Waiblinger @kirkwaiblinger
- Yukihiro Hasegawa @y-hsgw
You can read about our versioning strategy and releases on our website.
v8.10.0
🚀 Features
- support TypeScript 5.6 (#9972)
❤️ Thank You
- Josh Goldberg ✨
You can read about our versioning strategy and releases on our website.
typescript-eslint/typescript-eslint (@typescript-eslint/parser)
v8.11.0
This was a version bump only for parser to align it with other projects, there were no code changes.
You can read about our versioning strategy and releases on our website.
v8.10.0
🚀 Features
- support TypeScript 5.6 (#9972)
❤️ Thank You
- Josh Goldberg ✨
You can read about our versioning strategy and releases on our website.
electron/electron (electron)
v31.7.2: electron v31.7.2
Release Notes for v31.7.2
Fixes
- Fixed an issue where closing a window after printing on Linux triggered a crash. #44283 (Also in 32, 33, 34)
- Fixed calling setAlwaysOnTop on a hidden window which is then shown with showInactive on Linux under X11. #44323 (Also in 32, 33, 34)
Other Changes
- Security: backported fix for
3647780.- Security: backported fix for CVE-2024-9121.
- Security: backported fix for CVE-2024-9122. #44255
- Security: backported fix for CVE-2024-7025.
- Security: backported fix for CVE-2024-7965.
- Security: backported fix for CVE-2024-7966.
- Security: backported fix for CVE-2024-7967.
- Security: backported fix for CVE-2024-8198.
- Security: backported fix for CVE-2024-8193.
- Security: backported fix for CVE-2024-7969.
- Security: backported fix for chromium:361717714.
- Security: backported fix for CVE-2024-7970.
- Security: backported fix for CVE-2024-8362.
- Security: backported fix for chromium:350779647.
- Security: backported fix for CVE-2024-8636.
- Security: backported fix for CVE-2024-9123.
- Security: backported fix for CVE-2024-9120. #44355
- Security: backported fix for chromium:367734947.
- Security: backported fix for chromium:366635354. #44356
v31.7.1: electron v31.7.1
Release Notes for v31.7.1
Fixes
- Fixed an issue where the
exitevent could be emitted twice from theutilityProcess. #44267 - Fixed native addon compilation errors on macOS. #44202 (Also in 32, 33)
Other Changes
- Security: backported fix for CVE-2024-9602.
- Security: backported fix for CVE-2024-9603. #44232
framer/motion (framer-motion)
v11.11.9
Changed
will-changeis now no longer automatically managed withoutuseWillChange.
pnpm/pnpm (pnpm)
v9.12.2: pnpm 9.12.2
Patch Changes
- When checking whether a file in the store has executable permissions, the new approach checks if at least one of the executable bits (owner, group, and others) is set to 1. Previously, a file was incorrectly considered executable only when all the executable bits were set to 1. This fix ensures that files with any executable permission, regardless of the user class, are now correctly identified as executable #8546.
Platinum Sponsors
|
|
|
Gold Sponsors
⚠️ No Changeset found
Latest commit: 6a32cb56bfa6401aa81f67a913e95aeaefe2c954
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ Warning: custom changes will be lost.