-
Notifications
You must be signed in to change notification settings - Fork 943
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
turf-area: bug fix: off-by-one bug in area calculation #2665
Conversation
Just a quick note that this does not test against #1987 because it was not in response to it, but the issue could be resolved as a side effect of this PR. |
Thank you @Abdumbo99 for submitting this pull request and the background. To help get this accepted, would you be willing to add a unit test demonstrating the issue and that it's fixed? |
Thank you @twelch for the reply, I committed my tests. If there are any style issues in the changes please let me know (I am not fluent in TS). Test
The new code passes this test. |
Also as an extra note this PR does not resolve #1987 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work adding the tests @Abdumbo99, very thorough with the rotation. I have one request to improve how you create the invalid polygon and then I'll be happy to approve and merge. Let me know if you run into any issue.
packages/turf-area/test.ts
Outdated
const invalidPoly = geometry("Polygon", [ | ||
[ | ||
[0.0, 0.0], | ||
[0.0, 0.0], | ||
[0.0, 0.0], | ||
[0.0, 0.0], | ||
[0.0, 0.0], | ||
], | ||
]); | ||
|
||
// compiler does not pass coords less than 4 point long, so have to re-assign | ||
invalidPoly.coordinates = [ | ||
[ | ||
[101.0, 0.0], | ||
[101.0, 0.5], | ||
[101.5, 0.5], | ||
], | ||
]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest creating an invalid Polygon geojson object directly if the helper is not allowing you to.
import { Polygon } from 'geojson'
const invalidPoly: Polygon = {
type: "Polygon",
coordinates: [
[
[101.0, 0.0],
[101.0, 0.5],
[101.5, 0.5],
],
]
};
packages/turf-area/test.ts
Outdated
const rotatingPoly = polygon([ | ||
[ | ||
[28.321755510202507, 16.35627490376781], | ||
[20.424575867090823, 1.7575215418945476], | ||
[48.254218513706036, 20.42650462625916], | ||
[36.310934132380964, 14.226760576846956], | ||
[28.321755510202507, 16.35627490376781], | ||
], | ||
]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not required, but if these test inputs are only used in a single test, consider moving the definitions down into the test they are used, so that the tests are more self-contained. I think it makes the tests easier to read.
Alright, I did as you suggested, please let me know if there are any other issues. |
@Abdumbo99 it looks like your area function fix is causing one of the test outputs in turf-isobands to change and the continuous integration testing is now failing. If you run I checked and turf-isobands uses the area function to sort its resulting isoband polygons by area, so the sort order for the The solution is to update the turf-isobands test fixtures to the new correct output in your PR. Would you be willing to give it a try? Commands are as follows. I verified it worked for me. cd packages/turf-isobands
pnpm test // verify matrix2 test fails
REGEN=true pnpm test // regenerate the 4 test fixtures for turf-isobands package in test/out directory
pnpm test // verify all tests in package now pass
cd ../..
pnpm test // verify all tests in all packages now pass Once finished, you can add the updated fixtures to your Pull Request. Ping me and I will rerun the CI testing, and hopefully we'll be good to go. |
@twelch, Should be good to go now I guess? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for seeing this through @Abdumbo99 .
matrix2 is the only fixture that had a slightly different order on 2 very small polygons. The other fixtures appear to be the same, only the json formatting changed, adding a lot of additional lines |
Thank you for the help @twelch . Happy to know nothing major changed! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | OpenSSF | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---|---| | [@aws-sdk/client-cognito-identity-provider](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-cognito-identity-provider) ([source](https://togithub.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-cognito-identity-provider)) | dependencies | minor | [`3.625.0` -> `3.629.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-cognito-identity-provider/3.625.0/3.629.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws/aws-sdk-js-v3/badge)](https://securityscorecards.dev/viewer/?uri=github.com/aws/aws-sdk-js-v3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-cognito-identity-provider/3.629.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-cognito-identity-provider/3.629.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-cognito-identity-provider/3.625.0/3.629.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-cognito-identity-provider/3.625.0/3.629.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@googlemaps/react-wrapper](https://togithub.com/googlemaps/react-wrapper) | dependencies | patch | [`1.1.35` -> `1.1.42`](https://renovatebot.com/diffs/npm/@googlemaps%2freact-wrapper/1.1.35/1.1.42) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/googlemaps/react-wrapper/badge)](https://securityscorecards.dev/viewer/?uri=github.com/googlemaps/react-wrapper) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@googlemaps%2freact-wrapper/1.1.42?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@googlemaps%2freact-wrapper/1.1.42?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@googlemaps%2freact-wrapper/1.1.35/1.1.42?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@googlemaps%2freact-wrapper/1.1.35/1.1.42?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@iconify-json/simple-icons](https://icon-sets.iconify.design/simple-icons/) | devDependencies | patch | [`1.1.112` -> `1.1.113`](https://renovatebot.com/diffs/npm/@iconify-json%2fsimple-icons/1.1.112/1.1.113) | | [![age](https://developer.mend.io/api/mc/badges/age/npm/@iconify-json%2fsimple-icons/1.1.113?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@iconify-json%2fsimple-icons/1.1.113?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@iconify-json%2fsimple-icons/1.1.112/1.1.113?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@iconify-json%2fsimple-icons/1.1.112/1.1.113?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@sentry/browser](https://togithub.com/getsentry/sentry-javascript/tree/master/packages/browser) ([source](https://togithub.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.24.0` -> `8.25.0`](https://renovatebot.com/diffs/npm/@sentry%2fbrowser/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/getsentry/sentry-javascript/badge)](https://securityscorecards.dev/viewer/?uri=github.com/getsentry/sentry-javascript) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fbrowser/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fbrowser/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fbrowser/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fbrowser/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@sentry/nextjs](https://togithub.com/getsentry/sentry-javascript/tree/master/packages/nextjs) ([source](https://togithub.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.24.0` -> `8.25.0`](https://renovatebot.com/diffs/npm/@sentry%2fnextjs/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/getsentry/sentry-javascript/badge)](https://securityscorecards.dev/viewer/?uri=github.com/getsentry/sentry-javascript) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fnextjs/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fnextjs/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fnextjs/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fnextjs/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@sentry/node](https://togithub.com/getsentry/sentry-javascript/tree/master/packages/node) ([source](https://togithub.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.24.0` -> `8.25.0`](https://renovatebot.com/diffs/npm/@sentry%2fnode/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/getsentry/sentry-javascript/badge)](https://securityscorecards.dev/viewer/?uri=github.com/getsentry/sentry-javascript) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fnode/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fnode/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fnode/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fnode/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@sentry/opentelemetry](https://togithub.com/getsentry/sentry-javascript/tree/master/packages/opentelemetry) ([source](https://togithub.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.24.0` -> `8.25.0`](https://renovatebot.com/diffs/npm/@sentry%2fopentelemetry/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/getsentry/sentry-javascript/badge)](https://securityscorecards.dev/viewer/?uri=github.com/getsentry/sentry-javascript) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fopentelemetry/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fopentelemetry/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fopentelemetry/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fopentelemetry/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@sentry/profiling-node](https://togithub.com/getsentry/sentry-javascript/tree/master/packages/profiling-node) ([source](https://togithub.com/getsentry/sentry-javascript)) | dependencies | minor | [`8.24.0` -> `8.25.0`](https://renovatebot.com/diffs/npm/@sentry%2fprofiling-node/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/getsentry/sentry-javascript/badge)](https://securityscorecards.dev/viewer/?uri=github.com/getsentry/sentry-javascript) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fprofiling-node/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fprofiling-node/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fprofiling-node/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fprofiling-node/8.24.0/8.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-a11y](https://togithub.com/storybookjs/storybook/tree/next/code/addons/a11y) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/a11y)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-a11y/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-a11y/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-a11y/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-a11y/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-a11y/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-actions](https://togithub.com/storybookjs/storybook/tree/next/code/addons/actions) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/actions)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-actions/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-actions/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-actions/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-actions/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-actions/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-essentials](https://togithub.com/storybookjs/storybook/tree/next/code/addons/essentials) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/essentials)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-interactions](https://togithub.com/storybookjs/storybook/tree/next/code/addons/interactions) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/interactions)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-links](https://togithub.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-mdx-gfm](https://togithub.com/storybookjs/storybook/tree/next/code/addons/gfm) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/gfm)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/addon-viewport](https://togithub.com/storybookjs/storybook/tree/next/code/addons/viewport) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/addons/viewport)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-viewport/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-viewport/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-viewport/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-viewport/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-viewport/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/components](https://togithub.com/storybookjs/storybook/tree/next/code/deprecated/components) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/deprecated/components)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2fcomponents/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fcomponents/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fcomponents/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fcomponents/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fcomponents/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/core-events](https://togithub.com/storybookjs/storybook/tree/next/code/lib/core-events) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/core-events)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2fcore-events/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fcore-events/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fcore-events/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fcore-events/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fcore-events/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/manager-api](https://togithub.com/storybookjs/storybook/tree/next/code/lib/manager-api) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2fmanager-api/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fmanager-api/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fmanager-api/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fmanager-api/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fmanager-api/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/nextjs](https://togithub.com/storybookjs/storybook/tree/next/code/frameworks/nextjs) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/frameworks/nextjs)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2fnextjs/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fnextjs/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fnextjs/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fnextjs/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fnextjs/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/preview-api](https://togithub.com/storybookjs/storybook/tree/next/code/lib/preview-api) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/preview-api)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2fpreview-api/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fpreview-api/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fpreview-api/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fpreview-api/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fpreview-api/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/react](https://togithub.com/storybookjs/storybook/tree/next/code/renderers/react) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/renderers/react)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/test](https://togithub.com/storybookjs/storybook/tree/next/code/lib/test) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/test)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2ftest/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2ftest/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2ftest/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2ftest/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2ftest/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/theming](https://togithub.com/storybookjs/storybook/tree/next/code/lib/theming) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/theming)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2ftheming/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2ftheming/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2ftheming/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2ftheming/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2ftheming/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/types](https://togithub.com/storybookjs/storybook/tree/next/code/lib/types) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/types)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/@storybook%2ftypes/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2ftypes/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2ftypes/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2ftypes/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2ftypes/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@swc/core](https://swc.rs) ([source](https://togithub.com/swc-project/swc)) | devDependencies | patch | [`1.7.6` -> `1.7.10`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.7.6/1.7.10) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/swc-project/swc/badge)](https://securityscorecards.dev/viewer/?uri=github.com/swc-project/swc) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.7.6/1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.7.6/1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@turf/helpers](https://togithub.com/Turfjs/turf) | dependencies | minor | [`7.0.0` -> `7.1.0`](https://renovatebot.com/diffs/npm/@turf%2fhelpers/7.0.0/7.1.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Turfjs/turf/badge)](https://securityscorecards.dev/viewer/?uri=github.com/Turfjs/turf) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@turf%2fhelpers/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@turf%2fhelpers/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@turf%2fhelpers/7.0.0/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@turf%2fhelpers/7.0.0/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@turf/helpers](https://togithub.com/Turfjs/turf) | devDependencies | minor | [`7.0.0` -> `7.1.0`](https://renovatebot.com/diffs/npm/@turf%2fhelpers/7.0.0/7.1.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Turfjs/turf/badge)](https://securityscorecards.dev/viewer/?uri=github.com/Turfjs/turf) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@turf%2fhelpers/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@turf%2fhelpers/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@turf%2fhelpers/7.0.0/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@turf%2fhelpers/7.0.0/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | patch | [`20.14.14` -> `20.14.15`](https://renovatebot.com/diffs/npm/@types%2fnode/20.14.14/20.14.15) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DefinitelyTyped/DefinitelyTyped/badge)](https://securityscorecards.dev/viewer/?uri=github.com/DefinitelyTyped/DefinitelyTyped) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.14.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.14.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.14.14/20.14.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.14.14/20.14.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [ahooks](https://togithub.com/alibaba/hooks) | dependencies | patch | [`3.8.0` -> `3.8.1`](https://renovatebot.com/diffs/npm/ahooks/3.8.0/3.8.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/alibaba/hooks/badge)](https://securityscorecards.dev/viewer/?uri=github.com/alibaba/hooks) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ahooks/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ahooks/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ahooks/3.8.0/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ahooks/3.8.0/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [i18next](https://www.i18next.com) ([source](https://togithub.com/i18next/i18next)) | peerDependencies | patch | [`23.12.2` -> `23.12.3`](https://renovatebot.com/diffs/npm/i18next/23.12.2/23.12.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/i18next/i18next/badge)](https://securityscorecards.dev/viewer/?uri=github.com/i18next/i18next) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/23.12.2/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/23.12.2/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [i18next](https://www.i18next.com) ([source](https://togithub.com/i18next/i18next)) | devDependencies | patch | [`23.12.2` -> `23.12.3`](https://renovatebot.com/diffs/npm/i18next/23.12.2/23.12.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/i18next/i18next/badge)](https://securityscorecards.dev/viewer/?uri=github.com/i18next/i18next) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/23.12.2/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/23.12.2/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [i18next](https://www.i18next.com) ([source](https://togithub.com/i18next/i18next)) | dependencies | patch | [`23.12.2` -> `23.12.3`](https://renovatebot.com/diffs/npm/i18next/23.12.2/23.12.3) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/i18next/i18next/badge)](https://securityscorecards.dev/viewer/?uri=github.com/i18next/i18next) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/23.12.2/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/23.12.2/23.12.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [knip](https://knip.dev) ([source](https://togithub.com/webpro-nl/knip/tree/HEAD/packages/knip)) | devDependencies | patch | [`5.27.1` -> `5.27.2`](https://renovatebot.com/diffs/npm/knip/5.27.1/5.27.2) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/webpro-nl/knip/badge)](https://securityscorecards.dev/viewer/?uri=github.com/webpro-nl/knip) | [![age](https://developer.mend.io/api/mc/badges/age/npm/knip/5.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/knip/5.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/knip/5.27.1/5.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/knip/5.27.1/5.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [lint-staged](https://togithub.com/lint-staged/lint-staged) | devDependencies | patch | [`15.2.8` -> `15.2.9`](https://renovatebot.com/diffs/npm/lint-staged/15.2.8/15.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/lint-staged/lint-staged/badge)](https://securityscorecards.dev/viewer/?uri=github.com/lint-staged/lint-staged) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.2.8/15.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.2.8/15.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [remeda](https://remedajs.com/) ([source](https://togithub.com/remeda/remeda)) | dependencies | minor | [`2.10.0` -> `2.11.0`](https://renovatebot.com/diffs/npm/remeda/2.10.0/2.11.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/remeda/remeda/badge)](https://securityscorecards.dev/viewer/?uri=github.com/remeda/remeda) | [![age](https://developer.mend.io/api/mc/badges/age/npm/remeda/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/remeda/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/remeda/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/remeda/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [sherif](https://togithub.com/QuiiBz/sherif) | devDependencies | minor | [`0.10.0` -> `0.11.0`](https://renovatebot.com/diffs/npm/sherif/0.10.0/0.11.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/QuiiBz/sherif/badge)](https://securityscorecards.dev/viewer/?uri=github.com/QuiiBz/sherif) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sherif/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sherif/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sherif/0.10.0/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sherif/0.10.0/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [storybook](https://togithub.com/storybookjs/storybook/tree/next/code/lib/cli) ([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/lib/cli)) | devDependencies | patch | [`8.2.8` -> `8.2.9`](https://renovatebot.com/diffs/npm/storybook/8.2.8/8.2.9) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/storybookjs/storybook/badge)](https://securityscorecards.dev/viewer/?uri=github.com/storybookjs/storybook) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.2.8/8.2.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [tsx](https://tsx.is) ([source](https://togithub.com/privatenumber/tsx)) | devDependencies | minor | [`4.16.5` -> `4.17.0`](https://renovatebot.com/diffs/npm/tsx/4.16.5/4.17.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/privatenumber/tsx/badge)](https://securityscorecards.dev/viewer/?uri=github.com/privatenumber/tsx) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsx/4.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsx/4.16.5/4.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.16.5/4.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [type-fest](https://togithub.com/sindresorhus/type-fest) | devDependencies | minor | [`4.23.0` -> `4.24.0`](https://renovatebot.com/diffs/npm/type-fest/4.23.0/4.24.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sindresorhus/type-fest/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sindresorhus/type-fest) | [![age](https://developer.mend.io/api/mc/badges/age/npm/type-fest/4.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/type-fest/4.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/type-fest/4.23.0/4.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/type-fest/4.23.0/4.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-cognito-identity-provider)</summary> ### [`v3.629.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-cognito-identity-provider/CHANGELOG.md#36290-2024-08-12) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.628.0...v3.629.0) **Note:** Version bump only for package [@​aws-sdk/client-cognito-identity-provider](https://togithub.com/aws-sdk/client-cognito-identity-provider) ### [`v3.628.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-cognito-identity-provider/CHANGELOG.md#36280-2024-08-09) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.627.0...v3.628.0) **Note:** Version bump only for package [@​aws-sdk/client-cognito-identity-provider](https://togithub.com/aws-sdk/client-cognito-identity-provider) ### [`v3.627.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-cognito-identity-provider/CHANGELOG.md#36270-2024-08-08) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.625.0...v3.627.0) ##### Features - **client-cognito-identity-provider:** Added support for threat protection for custom authentication in Amazon Cognito user pools. ([e2e4ccc](https://togithub.com/aws/aws-sdk-js-v3/commit/e2e4cccb7a504ee0578ba36d7152eafa61494613)) </details> <details> <summary>googlemaps/react-wrapper (@​googlemaps/react-wrapper)</summary> ### [`v1.1.42`](https://togithub.com/googlemaps/react-wrapper/blob/HEAD/CHANGELOG.md#1142-2024-07-25) [Compare Source](https://togithub.com/googlemaps/react-wrapper/compare/v1.1.35...v1.1.42) ##### Bug Fixes - trigger release-please ([9abc212](https://togithub.com/googlemaps/react-wrapper/commit/9abc212e4950de8ada11cb6d6f260306828c33ec)) </details> <details> <summary>getsentry/sentry-javascript (@​sentry/browser)</summary> ### [`v8.25.0`](https://togithub.com/getsentry/sentry-javascript/releases/tag/8.25.0) [Compare Source](https://togithub.com/getsentry/sentry-javascript/compare/8.24.0...8.25.0) ##### Important Changes - **Alpha release of Official Solid Start SDK** This release contains the alpha version of `@sentry/solidstart`, our SDK for [Solid Start](https://start.solidjs.com/)! For details on how to use it, please see the [README](./packages/solidstart/README.md). Any feedback/bug reports are greatly appreciated, please [reach out on GitHub](https://togithub.com/getsentry/sentry-javascript/issues/12538). ##### Other Changes - feat(astro): Add `bundleSizeOptimizations` vite options to integration ([#​13250](https://togithub.com/getsentry/sentry-javascript/issues/13250)) - feat(astro): Always add BrowserTracing ([#​13244](https://togithub.com/getsentry/sentry-javascript/issues/13244)) - feat(core): Add `getTraceMetaTags` function ([#​13201](https://togithub.com/getsentry/sentry-javascript/issues/13201)) - feat(nestjs): Automatic instrumentation of nestjs exception filters ([#​13230](https://togithub.com/getsentry/sentry-javascript/issues/13230)) - feat(node): Add `useOperationNameForRootSpan` to`graphqlIntegration` ([#​13248](https://togithub.com/getsentry/sentry-javascript/issues/13248)) - feat(sveltekit): Add `wrapServerRouteWithSentry` wrapper ([#​13247](https://togithub.com/getsentry/sentry-javascript/issues/13247)) - fix(aws-serverless): Extract sentry trace data from handler `context` over `event` ([#​13266](https://togithub.com/getsentry/sentry-javascript/issues/13266)) - fix(browser): Initialize default integration if `defaultIntegrations: undefined` ([#​13261](https://togithub.com/getsentry/sentry-javascript/issues/13261)) - fix(utils): Streamline IP capturing on incoming requests ([#​13272](https://togithub.com/getsentry/sentry-javascript/issues/13272)) </details> <details> <summary>storybookjs/storybook (@​storybook/addon-a11y)</summary> ### [`v8.2.9`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#829) [Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.2.8...v8.2.9) - CLI: Fix `init --skip-install` - [#​28853](https://togithub.com/storybookjs/storybook/pull/28853), thanks [@​ndelangen](https://togithub.com/ndelangen)! - Telemetry: Disable save-from-controls logs for example stories - [#​28870](https://togithub.com/storybookjs/storybook/pull/28870), thanks [@​shilman](https://togithub.com/shilman)! </details> <details> <summary>swc-project/swc (@​swc/core)</summary> ### [`v1.7.10`](https://togithub.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1710---2024-08-09) [Compare Source](https://togithub.com/swc-project/swc/compare/v1.7.9...v1.7.10) ##### Bug Fixes - **(es/typescript)** Strip optional mark and definite mark ([#​9411](https://togithub.com/swc-project/swc/issues/9411)) ([8c161a0](https://togithub.com/swc-project/swc/commit/8c161a003e741320434f31617bc2de98dd2c9a8f)) - **(es/typescript)** Strip exported default overload function declaration ([#​9412](https://togithub.com/swc-project/swc/issues/9412)) ([b395f48](https://togithub.com/swc-project/swc/commit/b395f483d1e0cb43b1f96126c5c17f9a8c9d0d32)) - **(es/typescript)** Strip `this` param in getter/setter ([#​9414](https://togithub.com/swc-project/swc/issues/9414)) ([442fb7b](https://togithub.com/swc-project/swc/commit/442fb7b48715597d62f8d09327f93acc66f2d1b8)) - **(es/typescript)** Update ts-strip type definition ([#​9415](https://togithub.com/swc-project/swc/issues/9415)) ([165c8fa](https://togithub.com/swc-project/swc/commit/165c8facd42d756077fde99defe91ffe656aede8)) ### [`v1.7.9`](https://togithub.com/swc-project/swc/blob/HEAD/CHANGELOG.md#179---2024-08-09) [Compare Source](https://togithub.com/swc-project/swc/compare/v1.7.6...v1.7.9) ##### Bug Fixes - **(es/typescript)** Strip class modifiers ([#​9399](https://togithub.com/swc-project/swc/issues/9399)) ([124e5ff](https://togithub.com/swc-project/swc/commit/124e5ffa7bcf26215a339450f6b40161dabbe5a4)) </details> <details> <summary>Turfjs/turf (@​turf/helpers)</summary> ### [`v7.1.0`](https://togithub.com/Turfjs/turf/releases/tag/v7.1.0) [Compare Source](https://togithub.com/Turfjs/turf/compare/v7.0.0...v7.1.0) ##### What's Changed - `@turf/distance` Simplify unnecessary union type in turfDistance by [@​isti115](https://togithub.com/isti115) in [https://github.com/Turfjs/turf/pull/2618](https://togithub.com/Turfjs/turf/pull/2618) - Upgrade to Lerna 8 by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2612](https://togithub.com/Turfjs/turf/pull/2612) - Deprecate CHANGELOG, improve release action, PR template, Contributing doc by [@​twelch](https://togithub.com/twelch) in [https://github.com/Turfjs/turf/pull/2621](https://togithub.com/Turfjs/turf/pull/2621) - `@turf/helpers` Reduce bundle size of apps that import [@​turf/helpers](https://togithub.com/turf/helpers) by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2623](https://togithub.com/Turfjs/turf/pull/2623) - `@turf/line-overlap` change deep-equals dependency for smaller bundle size by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2631](https://togithub.com/Turfjs/turf/pull/2631) - `@turf/mask` Converted turf-mask to Typescript and added support for geometry parameters by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2644](https://togithub.com/Turfjs/turf/pull/2644) - `@turf/midpoint` Converted turf-midpoint to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2645](https://togithub.com/Turfjs/turf/pull/2645) - `@turf/planepoint` Converted turf-planepoint to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2646](https://togithub.com/Turfjs/turf/pull/2646) - `@turf/square` Converted turf-square to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2648](https://togithub.com/Turfjs/turf/pull/2648) - `@turf/standard-deviational-ellipse` Converted turf-standard-deviational-ellipse to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2649](https://togithub.com/Turfjs/turf/pull/2649) - Pin pnpm version using corepack by [@​RobinVdBroeck](https://togithub.com/RobinVdBroeck) in [https://github.com/Turfjs/turf/pull/2602](https://togithub.com/Turfjs/turf/pull/2602) - `@turf/tesselate` Converted turf-tesselate to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2650](https://togithub.com/Turfjs/turf/pull/2650) - `@turf/transform-rotate` Converted turf-transform-rotate to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2651](https://togithub.com/Turfjs/turf/pull/2651) - `@turf/transform-scale` Converted turf-transform-scale to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2652](https://togithub.com/Turfjs/turf/pull/2652) - `@turf/transform-translate` Converted turf-transform-translate to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2653](https://togithub.com/Turfjs/turf/pull/2653) - `@turf/unkink-polygon` Converted turf-unkink-polygon to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2654](https://togithub.com/Turfjs/turf/pull/2654) - `@turf/voronoi` Converted turf-voronoi to Typescript by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2655](https://togithub.com/Turfjs/turf/pull/2655) - `@turf/boolean-intersects` Fix boolean-intersects docs by [@​izzybps](https://togithub.com/izzybps) in [https://github.com/Turfjs/turf/pull/2593](https://togithub.com/Turfjs/turf/pull/2593) - Updated documentation.js to resolve critical parse-url vulnerability by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2664](https://togithub.com/Turfjs/turf/pull/2664) - `@turf/area`: bug fix: off-by-one bug in area calculation by [@​Abdumbo99](https://togithub.com/Abdumbo99) in [https://github.com/Turfjs/turf/pull/2665](https://togithub.com/Turfjs/turf/pull/2665) - Upgrade dependencies by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2668](https://togithub.com/Turfjs/turf/pull/2668) - `@turf/isobands` `@turf/isolines` Remove unused matrix-to-grid dependency by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2669](https://togithub.com/Turfjs/turf/pull/2669) - `@turf/random` fix randomPolygon generating polygons outside of the given `bbox` by [@​nnmrts](https://togithub.com/nnmrts) in [https://github.com/Turfjs/turf/pull/2659](https://togithub.com/Turfjs/turf/pull/2659) - `@turf/boolean-intersects` `@turf/booean-disjoint` Expose options parameter to ignore self intersections. by [@​01100100](https://togithub.com/01100100) in [https://github.com/Turfjs/turf/pull/2636](https://togithub.com/Turfjs/turf/pull/2636) - `@turf/boolean-valid` fix checkClosingRing to check for polygon being closed by [@​superDoss](https://togithub.com/superDoss) in [https://github.com/Turfjs/turf/pull/2563](https://togithub.com/Turfjs/turf/pull/2563) - `@turf/helpers` Implemented azimuthToBearing by [@​basvdijk](https://togithub.com/basvdijk) in [https://github.com/Turfjs/turf/pull/2674](https://togithub.com/Turfjs/turf/pull/2674) - Added support/6.x branch to CI config by [@​smallsaucepan](https://togithub.com/smallsaucepan) in [https://github.com/Turfjs/turf/pull/2673](https://togithub.com/Turfjs/turf/pull/2673) - `@turf/nearest-point-on-line` include index of MultiLineString geometries in nearest-point-on-line by [@​andrewharvey](https://togithub.com/andrewharvey) in [https://github.com/Turfjs/turf/pull/2574](https://togithub.com/Turfjs/turf/pull/2574) - `@turf/point-to-line-distance` Fix two small typos by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2675](https://togithub.com/Turfjs/turf/pull/2675) - Update PR/develop action to cache pnpm files by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2671](https://togithub.com/Turfjs/turf/pull/2671) - Add explicit geojson types dependency by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2676](https://togithub.com/Turfjs/turf/pull/2676) - Rework prettier setup by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2677](https://togithub.com/Turfjs/turf/pull/2677) - Update [@​types/geojson](https://togithub.com/types/geojson) to 7946.0.10 minimum by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2688](https://togithub.com/Turfjs/turf/pull/2688) - `@turf/mask` Stop turf-mask mutating by default, make it an option by [@​farkmarnum](https://togithub.com/farkmarnum) in [https://github.com/Turfjs/turf/pull/2635](https://togithub.com/Turfjs/turf/pull/2635) - Add test.example.js to .prettierignore by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2689](https://togithub.com/Turfjs/turf/pull/2689) - `@turf/mask` Fix [@​turf/mask](https://togithub.com/turf/mask) benchmarks to exclude test fixtures that are not usable by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2692](https://togithub.com/Turfjs/turf/pull/2692) - `@turf/kinks` Revert [@​turf/kinks](https://togithub.com/turf/kinks) to 6.5.0 version by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2693](https://togithub.com/Turfjs/turf/pull/2693) - `@turf/cluster-dbscan`Update cluster-dbscan docs by [@​mwenko](https://togithub.com/mwenko) in [https://github.com/Turfjs/turf/pull/2624](https://togithub.com/Turfjs/turf/pull/2624) - `@turf/*-grid` `@turf/area` `@turf/helpers` Clarify behavior of some existing turf modules by [@​twelch](https://togithub.com/twelch) in [https://github.com/Turfjs/turf/pull/2683](https://togithub.com/Turfjs/turf/pull/2683) - Upgrade pnpm/action-setup in github actions by [@​mfedderly](https://togithub.com/mfedderly) in [https://github.com/Turfjs/turf/pull/2696](https://togithub.com/Turfjs/turf/pull/2696) ##### New Contributors - [@​isti115](https://togithub.com/isti115) made their first contribution in [https://github.com/Turfjs/turf/pull/2618](https://togithub.com/Turfjs/turf/pull/2618) - [@​izzybps](https://togithub.com/izzybps) made their first contribution in [https://github.com/Turfjs/turf/pull/2593](https://togithub.com/Turfjs/turf/pull/2593) - [@​Abdumbo99](https://togithub.com/Abdumbo99) made their first contribution in [https://github.com/Turfjs/turf/pull/2665](https://togithub.com/Turfjs/turf/pull/2665) - [@​nnmrts](https://togithub.com/nnmrts) made their first contribution in [https://github.com/Turfjs/turf/pull/2659](https://togithub.com/Turfjs/turf/pull/2659) - [@​01100100](https://togithub.com/01100100) made their first contribution in [https://github.com/Turfjs/turf/pull/2636](https://togithub.com/Turfjs/turf/pull/2636) - [@​superDoss](https://togithub.com/superDoss) made their first contribution in [https://github.com/Turfjs/turf/pull/2563](https://togithub.com/Turfjs/turf/pull/2563) - [@​basvdijk](https://togithub.com/basvdijk) made their first contribution in [https://github.com/Turfjs/turf/pull/2674](https://togithub.com/Turfjs/turf/pull/2674) - [@​andrewharvey](https://togithub.com/andrewharvey) made their first contribution in [https://github.com/Turfjs/turf/pull/2574](https://togithub.com/Turfjs/turf/pull/2574) - [@​farkmarnum](https://togithub.com/farkmarnum) made their first contribution in [https://github.com/Turfjs/turf/pull/2635](https://togithub.com/Turfjs/turf/pull/2635) **Full Changelog**: https://github.com/Turfjs/turf/compare/v7.0.0...v7.1.0 </details> <details> <summary>alibaba/hooks (ahooks)</summary> ### [`v3.8.1`](https://togithub.com/alibaba/hooks/releases/tag/v3.8.1) [Compare Source](https://togithub.com/alibaba/hooks/compare/v3.8.0...v3.8.1) ##### What's Changed - 🐛 fix(useResponse): adds default export by [@​CJY0208](https://togithub.com/CJY0208) in [https://github.com/alibaba/hooks/pull/2555](https://togithub.com/alibaba/hooks/pull/2555) - 🐛 fix(useSelections): `setSelected` should support non-array value by [@​liuyib](https://togithub.com/liuyib) in [https://github.com/alibaba/hooks/pull/2559](https://togithub.com/alibaba/hooks/pull/2559) - 🐛 fix(useResetState): </details> --- ### 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 is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/weareinreach/InReach). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMC4xIiwidXBkYXRlZEluVmVyIjoiMzguMjAuMSIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiLCJkZXBlbmRlbmNpZXMiLCJrb2RpYWs6IG1lcmdlLm1ldGhvZCA9ICdzcXVhc2gnIl19--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## [1.0.5](https://github.com/equinor/webviz-subsurface-components/compare/wsc-common@1.0.4...wsc-common@1.0.5) (2024-10-11) ### Bug Fixes * bump @turf/simplify from 7.0.0 to 7.1.0 in /typescript ([#2309](#2309)) ([0b9903a](0b9903a)), closes [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2612](Turfjs/turf#2612) [Turfjs/turf#2621](Turfjs/turf#2621) [Turfjs/turf#2623](Turfjs/turf#2623) [Turfjs/turf#2631](Turfjs/turf#2631) [Turfjs/turf#2644](Turfjs/turf#2644) [Turfjs/turf#2645](Turfjs/turf#2645) [Turfjs/turf#2646](Turfjs/turf#2646) [Turfjs/turf#2648](Turfjs/turf#2648) [Turfjs/turf#2649](Turfjs/turf#2649) [Turfjs/turf#2602](Turfjs/turf#2602) [Turfjs/turf#2650](Turfjs/turf#2650) [Turfjs/turf#2651](Turfjs/turf#2651) [Turfjs/turf#2652](Turfjs/turf#2652) [Turfjs/turf#2653](Turfjs/turf#2653) [Turfjs/turf#2654](Turfjs/turf#2654) [Turfjs/turf#2655](Turfjs/turf#2655) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2664](Turfjs/turf#2664) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2668](Turfjs/turf#2668) [Turfjs/turf#2669](Turfjs/turf#2669) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [Turfjs/turf#2674](Turfjs/turf#2674) [Turfjs/turf#2673](Turfjs/turf#2673) [Turfjs/turf#2574](Turfjs/turf#2574) [Turfjs/turf#2675](Turfjs/turf#2675) [Turfjs/turf#2671](Turfjs/turf#2671) [Turfjs/turf#2676](Turfjs/turf#2676) [Turfjs/turf#2677](Turfjs/turf#2677) [Turfjs/turf#2688](Turfjs/turf#2688) [Turfjs/turf#2635](Turfjs/turf#2635) [Turfjs/turf#2689](Turfjs/turf#2689) [Turfjs/turf#2692](Turfjs/turf#2692) [Turfjs/turf#2693](Turfjs/turf#2693) [Turfjs/turf#2624](Turfjs/turf#2624) [Turfjs/turf#2683](Turfjs/turf#2683) [Turfjs/turf#2696](Turfjs/turf#2696) [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [#2696](https://github.com/equinor/webviz-subsurface-components/issues/2696) [#2683](https://github.com/equinor/webviz-subsurface-components/issues/2683) [#2624](https://github.com/equinor/webviz-subsurface-components/issues/2624) [#2693](https://github.com/equinor/webviz-subsurface-components/issues/2693) [#2692](https://github.com/equinor/webviz-subsurface-components/issues/2692) [#2635](https://github.com/equinor/webviz-subsurface-components/issues/2635) [#2688](https://github.com/equinor/webviz-subsurface-components/issues/2688) [#2677](https://github.com/equinor/webviz-subsurface-components/issues/2677)
## [1.5.9](https://github.com/equinor/webviz-subsurface-components/compare/well-completions-plot@1.5.8...well-completions-plot@1.5.9) (2024-10-11) ### Bug Fixes * bump @turf/simplify from 7.0.0 to 7.1.0 in /typescript ([#2309](#2309)) ([0b9903a](0b9903a)), closes [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2612](Turfjs/turf#2612) [Turfjs/turf#2621](Turfjs/turf#2621) [Turfjs/turf#2623](Turfjs/turf#2623) [Turfjs/turf#2631](Turfjs/turf#2631) [Turfjs/turf#2644](Turfjs/turf#2644) [Turfjs/turf#2645](Turfjs/turf#2645) [Turfjs/turf#2646](Turfjs/turf#2646) [Turfjs/turf#2648](Turfjs/turf#2648) [Turfjs/turf#2649](Turfjs/turf#2649) [Turfjs/turf#2602](Turfjs/turf#2602) [Turfjs/turf#2650](Turfjs/turf#2650) [Turfjs/turf#2651](Turfjs/turf#2651) [Turfjs/turf#2652](Turfjs/turf#2652) [Turfjs/turf#2653](Turfjs/turf#2653) [Turfjs/turf#2654](Turfjs/turf#2654) [Turfjs/turf#2655](Turfjs/turf#2655) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2664](Turfjs/turf#2664) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2668](Turfjs/turf#2668) [Turfjs/turf#2669](Turfjs/turf#2669) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [Turfjs/turf#2674](Turfjs/turf#2674) [Turfjs/turf#2673](Turfjs/turf#2673) [Turfjs/turf#2574](Turfjs/turf#2574) [Turfjs/turf#2675](Turfjs/turf#2675) [Turfjs/turf#2671](Turfjs/turf#2671) [Turfjs/turf#2676](Turfjs/turf#2676) [Turfjs/turf#2677](Turfjs/turf#2677) [Turfjs/turf#2688](Turfjs/turf#2688) [Turfjs/turf#2635](Turfjs/turf#2635) [Turfjs/turf#2689](Turfjs/turf#2689) [Turfjs/turf#2692](Turfjs/turf#2692) [Turfjs/turf#2693](Turfjs/turf#2693) [Turfjs/turf#2624](Turfjs/turf#2624) [Turfjs/turf#2683](Turfjs/turf#2683) [Turfjs/turf#2696](Turfjs/turf#2696) [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [#2696](https://github.com/equinor/webviz-subsurface-components/issues/2696) [#2683](https://github.com/equinor/webviz-subsurface-components/issues/2683) [#2624](https://github.com/equinor/webviz-subsurface-components/issues/2624) [#2693](https://github.com/equinor/webviz-subsurface-components/issues/2693) [#2692](https://github.com/equinor/webviz-subsurface-components/issues/2692) [#2635](https://github.com/equinor/webviz-subsurface-components/issues/2635) [#2688](https://github.com/equinor/webviz-subsurface-components/issues/2688) [#2677](https://github.com/equinor/webviz-subsurface-components/issues/2677)
## [1.0.6](https://github.com/equinor/webviz-subsurface-components/compare/subsurface-viewer@1.0.5...subsurface-viewer@1.0.6) (2024-10-11) ### Bug Fixes * bump @turf/simplify from 7.0.0 to 7.1.0 in /typescript ([#2309](#2309)) ([0b9903a](0b9903a)), closes [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2612](Turfjs/turf#2612) [Turfjs/turf#2621](Turfjs/turf#2621) [Turfjs/turf#2623](Turfjs/turf#2623) [Turfjs/turf#2631](Turfjs/turf#2631) [Turfjs/turf#2644](Turfjs/turf#2644) [Turfjs/turf#2645](Turfjs/turf#2645) [Turfjs/turf#2646](Turfjs/turf#2646) [Turfjs/turf#2648](Turfjs/turf#2648) [Turfjs/turf#2649](Turfjs/turf#2649) [Turfjs/turf#2602](Turfjs/turf#2602) [Turfjs/turf#2650](Turfjs/turf#2650) [Turfjs/turf#2651](Turfjs/turf#2651) [Turfjs/turf#2652](Turfjs/turf#2652) [Turfjs/turf#2653](Turfjs/turf#2653) [Turfjs/turf#2654](Turfjs/turf#2654) [Turfjs/turf#2655](Turfjs/turf#2655) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2664](Turfjs/turf#2664) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2668](Turfjs/turf#2668) [Turfjs/turf#2669](Turfjs/turf#2669) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [Turfjs/turf#2674](Turfjs/turf#2674) [Turfjs/turf#2673](Turfjs/turf#2673) [Turfjs/turf#2574](Turfjs/turf#2574) [Turfjs/turf#2675](Turfjs/turf#2675) [Turfjs/turf#2671](Turfjs/turf#2671) [Turfjs/turf#2676](Turfjs/turf#2676) [Turfjs/turf#2677](Turfjs/turf#2677) [Turfjs/turf#2688](Turfjs/turf#2688) [Turfjs/turf#2635](Turfjs/turf#2635) [Turfjs/turf#2689](Turfjs/turf#2689) [Turfjs/turf#2692](Turfjs/turf#2692) [Turfjs/turf#2693](Turfjs/turf#2693) [Turfjs/turf#2624](Turfjs/turf#2624) [Turfjs/turf#2683](Turfjs/turf#2683) [Turfjs/turf#2696](Turfjs/turf#2696) [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [#2696](https://github.com/equinor/webviz-subsurface-components/issues/2696) [#2683](https://github.com/equinor/webviz-subsurface-components/issues/2683) [#2624](https://github.com/equinor/webviz-subsurface-components/issues/2624) [#2693](https://github.com/equinor/webviz-subsurface-components/issues/2693) [#2692](https://github.com/equinor/webviz-subsurface-components/issues/2692) [#2635](https://github.com/equinor/webviz-subsurface-components/issues/2635) [#2688](https://github.com/equinor/webviz-subsurface-components/issues/2688) [#2677](https://github.com/equinor/webviz-subsurface-components/issues/2677)
## [1.3.14](https://github.com/equinor/webviz-subsurface-components/compare/group-tree-plot@1.3.13...group-tree-plot@1.3.14) (2024-10-11) ### Bug Fixes * bump @turf/simplify from 7.0.0 to 7.1.0 in /typescript ([#2309](#2309)) ([0b9903a](0b9903a)), closes [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2612](Turfjs/turf#2612) [Turfjs/turf#2621](Turfjs/turf#2621) [Turfjs/turf#2623](Turfjs/turf#2623) [Turfjs/turf#2631](Turfjs/turf#2631) [Turfjs/turf#2644](Turfjs/turf#2644) [Turfjs/turf#2645](Turfjs/turf#2645) [Turfjs/turf#2646](Turfjs/turf#2646) [Turfjs/turf#2648](Turfjs/turf#2648) [Turfjs/turf#2649](Turfjs/turf#2649) [Turfjs/turf#2602](Turfjs/turf#2602) [Turfjs/turf#2650](Turfjs/turf#2650) [Turfjs/turf#2651](Turfjs/turf#2651) [Turfjs/turf#2652](Turfjs/turf#2652) [Turfjs/turf#2653](Turfjs/turf#2653) [Turfjs/turf#2654](Turfjs/turf#2654) [Turfjs/turf#2655](Turfjs/turf#2655) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2664](Turfjs/turf#2664) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2668](Turfjs/turf#2668) [Turfjs/turf#2669](Turfjs/turf#2669) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [Turfjs/turf#2674](Turfjs/turf#2674) [Turfjs/turf#2673](Turfjs/turf#2673) [Turfjs/turf#2574](Turfjs/turf#2574) [Turfjs/turf#2675](Turfjs/turf#2675) [Turfjs/turf#2671](Turfjs/turf#2671) [Turfjs/turf#2676](Turfjs/turf#2676) [Turfjs/turf#2677](Turfjs/turf#2677) [Turfjs/turf#2688](Turfjs/turf#2688) [Turfjs/turf#2635](Turfjs/turf#2635) [Turfjs/turf#2689](Turfjs/turf#2689) [Turfjs/turf#2692](Turfjs/turf#2692) [Turfjs/turf#2693](Turfjs/turf#2693) [Turfjs/turf#2624](Turfjs/turf#2624) [Turfjs/turf#2683](Turfjs/turf#2683) [Turfjs/turf#2696](Turfjs/turf#2696) [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [#2696](https://github.com/equinor/webviz-subsurface-components/issues/2696) [#2683](https://github.com/equinor/webviz-subsurface-components/issues/2683) [#2624](https://github.com/equinor/webviz-subsurface-components/issues/2624) [#2693](https://github.com/equinor/webviz-subsurface-components/issues/2693) [#2692](https://github.com/equinor/webviz-subsurface-components/issues/2692) [#2635](https://github.com/equinor/webviz-subsurface-components/issues/2635) [#2688](https://github.com/equinor/webviz-subsurface-components/issues/2688) [#2677](https://github.com/equinor/webviz-subsurface-components/issues/2677)
## [2.1.4](https://github.com/equinor/webviz-subsurface-components/compare/well-log-viewer@2.1.3...well-log-viewer@2.1.4) (2024-10-11) ### Bug Fixes * bump @turf/simplify from 7.0.0 to 7.1.0 in /typescript ([#2309](#2309)) ([0b9903a](0b9903a)), closes [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2612](Turfjs/turf#2612) [Turfjs/turf#2621](Turfjs/turf#2621) [Turfjs/turf#2623](Turfjs/turf#2623) [Turfjs/turf#2631](Turfjs/turf#2631) [Turfjs/turf#2644](Turfjs/turf#2644) [Turfjs/turf#2645](Turfjs/turf#2645) [Turfjs/turf#2646](Turfjs/turf#2646) [Turfjs/turf#2648](Turfjs/turf#2648) [Turfjs/turf#2649](Turfjs/turf#2649) [Turfjs/turf#2602](Turfjs/turf#2602) [Turfjs/turf#2650](Turfjs/turf#2650) [Turfjs/turf#2651](Turfjs/turf#2651) [Turfjs/turf#2652](Turfjs/turf#2652) [Turfjs/turf#2653](Turfjs/turf#2653) [Turfjs/turf#2654](Turfjs/turf#2654) [Turfjs/turf#2655](Turfjs/turf#2655) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2664](Turfjs/turf#2664) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2668](Turfjs/turf#2668) [Turfjs/turf#2669](Turfjs/turf#2669) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [Turfjs/turf#2674](Turfjs/turf#2674) [Turfjs/turf#2673](Turfjs/turf#2673) [Turfjs/turf#2574](Turfjs/turf#2574) [Turfjs/turf#2675](Turfjs/turf#2675) [Turfjs/turf#2671](Turfjs/turf#2671) [Turfjs/turf#2676](Turfjs/turf#2676) [Turfjs/turf#2677](Turfjs/turf#2677) [Turfjs/turf#2688](Turfjs/turf#2688) [Turfjs/turf#2635](Turfjs/turf#2635) [Turfjs/turf#2689](Turfjs/turf#2689) [Turfjs/turf#2692](Turfjs/turf#2692) [Turfjs/turf#2693](Turfjs/turf#2693) [Turfjs/turf#2624](Turfjs/turf#2624) [Turfjs/turf#2683](Turfjs/turf#2683) [Turfjs/turf#2696](Turfjs/turf#2696) [Turfjs/turf#2618](Turfjs/turf#2618) [Turfjs/turf#2593](Turfjs/turf#2593) [Turfjs/turf#2665](Turfjs/turf#2665) [Turfjs/turf#2659](Turfjs/turf#2659) [Turfjs/turf#2636](Turfjs/turf#2636) [Turfjs/turf#2563](Turfjs/turf#2563) [#2696](https://github.com/equinor/webviz-subsurface-components/issues/2696) [#2683](https://github.com/equinor/webviz-subsurface-components/issues/2683) [#2624](https://github.com/equinor/webviz-subsurface-components/issues/2624) [#2693](https://github.com/equinor/webviz-subsurface-components/issues/2693) [#2692](https://github.com/equinor/webviz-subsurface-components/issues/2692) [#2635](https://github.com/equinor/webviz-subsurface-components/issues/2635) [#2688](https://github.com/equinor/webviz-subsurface-components/issues/2688) [#2677](https://github.com/equinor/webviz-subsurface-components/issues/2677)
First of all, I would like to thank the contributors behind Mapbox and all of its subprojects for their amazing work. I want to point out a small mistake that I found while re-writing some of the geo calculations for a library in GO, using Mapbox, amongst other projects, as a reference.
As per The GeoJSON Specification (RFC 7946). A Polygon consists of Linear Rings and a linear ring "... is a closed LineString with four or more positions", the reason for the four positions is that "The first and last positions are equivalent, and they MUST contain identical values; their representation SHOULD also be identical", i.e. to ensure the linear ring is closed the first and last position must be identical, deeming the first, or the last for that matter, position redundant and opens the door for some miscalculations similar to the one that I am attempting to fix in this PR.
The "-1" added in this PR solved two problems one is much simpler than the other but it is the main focus of this PR. The issues are:
The
if (coordsLength <= 2) return 0
in line 102 does not comply with the four positions requirement mentioned above, so a polygon with the invalid coordinates below would pass it, even though it is not a proper polygon (has less than four coordinates).[[[46.78401786031469,24.672371366746333 ], [46.78401786031469, 24.69016675081427 ], [46.78401786031469, 24.672371366746333]]]
The second issue is in the calculations. The code cites the source
* Reference: Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for Polygons on a Sphere", JPL Publication 07-03, Jet propulsion Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409
then uses it properly, almost, at least. From this source we can see the calculation of the area:"Assume we are dealing with a polygon with N vertices", after some work the equation becomes:
In this equation we have the same conditions as Geojson's polygons; N and 0 are identical. Thus the equation stops at N-1, i.e. the point just before the duplicate 0th point.
In the code, however, this is not the case, as it stops at the Nth point instead. This extra iteration on the Nth point results in an inconsistent behavior. For example, if we use this multipolygon:
{"type":"MultiPolygon","coordinates":[[[[28.321755510202507,16.35627490376781],[20.424575867090823,1.7575215418945476],[48.254218513706036,20.42650462625916],[36.310934132380964,14.226760576846956],[28.321755510202507,16.35627490376781]]]]}
We will get the good and rather accurate approximated area of: 1139359621777.495, but if we rotate the coordinates upwards, while maintaining the order and right-hand rule we will get the following calculations: 139359621777.4954, 1139359621777.495, 1139359621777.495, and 1139359621777.495. The coordinates of each rotation are respectively:
[ [ 20.424575867090823, 1.7575215418945476 ], [ 48.254218513706036, 20.42650462625916 ], [ 36.310934132380964, 14.226760576846956 ], [ 28.321755510202507, 16.35627490376781 ], [ 20.424575867090823, 1.7575215418945476 ] ]
[[ 48.254218513706036, 20.42650462625916 ], [ 36.310934132380964, 14.226760576846956 ], [ 28.321755510202507, 16.35627490376781 ], [ 20.424575867090823, 1.7575215418945476 ], [ 48.254218513706036, 20.42650462625916 ]]
[[ 36.310934132380964, 14.226760576846956 ], [28.321755510202507, 16.35627490376781 ], [ 20.424575867090823, 1.7575215418945476 ], [ 48.254218513706036, 20.42650462625916 ], [ 36.310934132380964, 14.226760576846956 ]]
[[ 28.321755510202507, 16.35627490376781 ], [ 20.424575867090823, 1.7575215418945476 ], [ 48.254218513706036, 20.42650462625916 ], [36.310934132380964, 14.226760576846956 ], [ 28.321755510202507, 16.35627490376781 ]]
Now while the difference in the calculations is trivial, the inconsistency is, definitely, problematic and is caused by the the extra iteration on the Nth point.
I hope my points are clear, I am ready to clarify any unclear points if needed.
Since this concerns last, first and second point at some point in the calculations I am suspicious that this possibly Fixes (edit:NOT) #1987
NOTE: similar PR can be found here: mapbox/geojson-area#13