Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

♻️ Refactor: added defaultmap + locking mechanism for intercepts queue #1441

Merged
merged 14 commits into from
Nov 29, 2023

Conversation

nilshah98
Copy link
Contributor

@nilshah98 nilshah98 commented Nov 23, 2023

Context-

  • Percy relies on CDP messages to intercept and capture network requests.
  • CDP uses websockets, and since websockets run on TCP, at network layer it is guaranteed that the packets will always be transmitted in order.
  • But at application level, packets can be processed out of order which can cause issues.
  • Hence, adding a locking mechanism so that events are always processed in order at Application layer as well.
  • The ideal flow of messages should be -
    • requestWillBeSent -> requestPaused -> responseReceived -> loadingFinished / loadingFailed

Note: Also merged #1443 in this PR.

// The Interceptor class creates common handlers for dealing with intercepting asset requests
// for a given page using various devtools protocol events and commands.
export class Network {
static TIMEOUT = undefined;

log = logger('core:discovery');

#requestsLifeCycleHandler = new DefaultMap(() => new RequestLifeCycleHandler());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when is something deleted from this map ?
also considering we have this, we dont need any state sets right ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when is something deleted from this map ?

Nothing is ever deleted from #requestsLifeCycleHandler since it is only used to manage lifecycles.
We can ideally delete requestId once all the locks are released from it's object, ie. it has reached end of lifecycle.
But, I don't see the point of it, as this is a very light map.

also considering we have this, we dont need any state sets right ?

Need #pending to communicate from requestWillBeSent to requestPaused states.
Can remove #intercepts completely.
Need #requests as it keeps mapping of all active requests and is what idle depends on.
Need #authentication as this keeps track of all requests that have already been authenticated.
Need #aborted to keep track of aborted requests.

In the current PR, I am planning to only remove #intercepts queue as it was used for communicating from requestPaused to requestWillBeSent but that should never happen now.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as this is a very light map. do not fully agree with this as we could have thousands of requests in a single page load [ in fact we do for many storybook builds ] [ even though not blocking as it would be still few kbs max ]

_requestPaused could await requestWillBeSent, so it doesnt need to read from #pending as far as i understand. Because we are also storing event in pending with request id, you can just resolve with event for request will be sent
#requests agree we need it for now at least
#authentication could be done by checking if auth promise is already resolved [ but i dont mind using set either ]
#aborted is not necessary as you could just set aborted on #request object [ or in lifecycle like lifecyle.aborted ] it was done the way it is because we could process aborted event before requestWillBeSent and it wont exist in requests at all but as loadingFailed would await on requestWillBeSent we can be sure that request already exists in requests

Also other refactors are optional, not necessary in current pr

@nilshah98 nilshah98 marked this pull request as ready for review November 27, 2023 04:46
@nilshah98 nilshah98 requested a review from a team as a code owner November 27, 2023 04:46
#pending = new Map();
#requests = new Map();
#intercepts = new Map();
// #intercepts = new Map();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets remove it entirely before merge

let { requestId, response } = event;
// await on requestWillBeSent
// no explicitly wait on requestWillBePaused as we implictly wait on it, since it manipulates the lifeCycle of request using Fetch module
await this.#requestsLifeCycleHandler.get(requestId).requestWillBeSent;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
await this.#requestsLifeCycleHandler.get(requestId).requestWillBeSent;
await this.#requestsLifeCycleHandler.get(requestId).requestWillBeSent;

[optional] add a method lifecycle(requestId) to shorten this.#requestsLifeCycleHandler.get(requestId)

Copy link
Contributor

@ninadbstack ninadbstack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! with an optional comment

Please update the description with why is this required

@itsjwala itsjwala added the 🧹 maintenance General maintenance label Nov 27, 2023
@itsjwala itsjwala changed the title feat: added defaultmap + locking mechanism for intercepts queue ♻️ Refactor: added defaultmap + locking mechanism for intercepts queue Nov 27, 2023
* feat: added new config discovery.captureServiceWorker

* feat: use captureServiceWorker config to capture original requests

* chore: lint fix

* test: added spec for captureServiceWorker

* chore: rename captureServiceWorker -> captureMockedServiceWorker
@itsjwala itsjwala merged commit fec8516 into master Nov 29, 2023
21 checks passed
@itsjwala itsjwala deleted the refactor-network-js branch November 29, 2023 10:44
gfellerph added a commit to swisspost/design-system that referenced this pull request Jan 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@babel/core](https://babel.dev/docs/en/next/babel-core)
([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-core))
| [`7.23.6` ->
`7.23.7`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.23.6/7.23.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fcore/7.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fcore/7.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fcore/7.23.6/7.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fcore/7.23.6/7.23.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@changesets/parse](https://togithub.com/changesets/changesets/tree/main#readme)
([source](https://togithub.com/changesets/changesets)) | [`0.1.0` ->
`0.4.0`](https://renovatebot.com/diffs/npm/@changesets%2fparse/0.1.0/0.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@changesets%2fparse/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@changesets%2fparse/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@changesets%2fparse/0.1.0/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@changesets%2fparse/0.1.0/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@percy/cli](https://togithub.com/percy/cli)
([source](https://togithub.com/percy/cli/tree/HEAD/packages/cli)) |
[`1.27.4` ->
`1.27.6`](https://renovatebot.com/diffs/npm/@percy%2fcli/1.27.4/1.27.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@percy%2fcli/1.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@percy%2fcli/1.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@percy%2fcli/1.27.4/1.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@percy%2fcli/1.27.4/1.27.6?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/7.6.6/7.6.7?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/addons](https://togithub.com/storybookjs/storybook/tree/next/code/deprecated/addons)
([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/deprecated/addons))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddons/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddons/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddons/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddons/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddons/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/blocks](https://togithub.com/storybookjs/storybook/tree/next/code/ui/blocks)
([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/ui/blocks))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fblocks/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fblocks/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fblocks/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fblocks/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fblocks/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/components](https://togithub.com/storybookjs/storybook/tree/next/code/ui/components)
([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/ui/components))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fcomponents/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fcomponents/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fcomponents/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fcomponents/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fcomponents/7.6.6/7.6.7?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fcore-events/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fcore-events/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fcore-events/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fcore-events/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fcore-events/7.6.6/7.6.7?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fmanager-api/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fmanager-api/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fmanager-api/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fmanager-api/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fmanager-api/7.6.6/7.6.7?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fpreview-api/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fpreview-api/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fpreview-api/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fpreview-api/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fpreview-api/7.6.6/7.6.7?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2ftheming/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2ftheming/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2ftheming/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2ftheming/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2ftheming/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/web-components](https://togithub.com/storybookjs/storybook/tree/next/code/renderers/web-components)
([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fweb-components/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fweb-components/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fweb-components/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fweb-components/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fweb-components/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/web-components-vite](https://togithub.com/storybookjs/storybook/tree/next/code/frameworks/web-components-vite)
([source](https://togithub.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fweb-components-vite/7.6.6/7.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fweb-components-vite/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fweb-components-vite/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fweb-components-vite/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fweb-components-vite/7.6.6/7.6.7?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))
| [`18.19.3` ->
`18.19.4`](https://renovatebot.com/diffs/npm/@types%2fnode/18.19.3/18.19.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.19.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.19.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.19.3/18.19.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.19.3/18.19.4?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))
| [`16.18.68` ->
`16.18.69`](https://renovatebot.com/diffs/npm/@types%2fnode/16.18.68/16.18.69)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/16.18.69?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/16.18.69?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/16.18.68/16.18.69?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/16.18.68/16.18.69?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node-fetch](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node-fetch)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node-fetch))
| [`2.6.9` ->
`2.6.10`](https://renovatebot.com/diffs/npm/@types%2fnode-fetch/2.6.9/2.6.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode-fetch/2.6.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode-fetch/2.6.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode-fetch/2.6.9/2.6.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode-fetch/2.6.9/2.6.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.45` ->
`18.2.46`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.45/18.2.46)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.45/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.45/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.15.0` ->
`6.17.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.15.0/6.17.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.15.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.15.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.15.0` ->
`6.17.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.15.0/6.17.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.15.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.15.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [core-js](https://togithub.com/zloirock/core-js)
([source](https://togithub.com/zloirock/core-js/tree/HEAD/packages/core-js))
| [`3.34.0` ->
`3.35.0`](https://renovatebot.com/diffs/npm/core-js/3.34.0/3.35.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/core-js/3.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/core-js/3.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/core-js/3.34.0/3.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/core-js/3.34.0/3.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [cypress](https://cypress.io)
([source](https://togithub.com/cypress-io/cypress)) | [`13.6.1` ->
`13.6.2`](https://renovatebot.com/diffs/npm/cypress/13.6.1/13.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/cypress/13.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cypress/13.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cypress/13.6.1/13.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cypress/13.6.1/13.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[eslint-plugin-n](https://togithub.com/eslint-community/eslint-plugin-n)
| [`16.5.0` ->
`16.6.1`](https://renovatebot.com/diffs/npm/eslint-plugin-n/16.5.0/16.6.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-n/16.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-n/16.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-n/16.5.0/16.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-n/16.5.0/16.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[rollup-plugin-visualizer](https://togithub.com/btd/rollup-plugin-visualizer)
| [`5.11.0` ->
`5.12.0`](https://renovatebot.com/diffs/npm/rollup-plugin-visualizer/5.11.0/5.12.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup-plugin-visualizer/5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup-plugin-visualizer/5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup-plugin-visualizer/5.11.0/5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup-plugin-visualizer/5.11.0/5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [sass](https://togithub.com/sass/dart-sass) | [`1.69.5` ->
`1.69.7`](https://renovatebot.com/diffs/npm/sass/1.69.5/1.69.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/sass/1.69.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sass/1.69.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sass/1.69.5/1.69.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass/1.69.5/1.69.7?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))
| [`7.6.6` ->
`7.6.7`](https://renovatebot.com/diffs/npm/storybook/7.6.6/7.6.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/7.6.6/7.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.1.0` -> `3.2.0`](https://renovatebot.com/diffs/npm/svgo/3.1.0/3.2.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.1.0/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.1.0/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>babel/babel (@&#8203;babel/core)</summary>

###
[`v7.23.7`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v7237-2023-12-29)

[Compare
Source](https://togithub.com/babel/babel/compare/v7.23.6...v7.23.7)

##### :bug: Bug Fix

-   `babel-traverse`
- [#&#8203;16191](https://togithub.com/babel/babel/pull/16191) fix:
Crash when removing without `Program`
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-helpers`, `babel-plugin-proposal-decorators`
- [#&#8203;16180](https://togithub.com/babel/babel/pull/16180) fix:
Class decorator `ctx.kind` is wrong
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-plugin-proposal-decorators`
- [#&#8203;16170](https://togithub.com/babel/babel/pull/16170) Fix
decorator initProto usage in derived classes
([@&#8203;JLHwung](https://togithub.com/JLHwung))
-   `babel-core`
- [#&#8203;16167](https://togithub.com/babel/babel/pull/16167) Avoid
unpreventable `unhandledRejection` events
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### :house: Internal

-   `babel-helper-create-class-features-plugin`
- [#&#8203;16186](https://togithub.com/babel/babel/pull/16186) chore:
Update deps ([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- `babel-helper-create-class-features-plugin`,
`babel-plugin-proposal-decorators`
- [#&#8203;16177](https://togithub.com/babel/babel/pull/16177) Merge
decorators into class features
([@&#8203;JLHwung](https://togithub.com/JLHwung))

</details>

<details>
<summary>changesets/changesets (@&#8203;changesets/parse)</summary>

###
[`v0.4.0`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/changelog-github%400.4.0)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.16...@changesets/parse@0.4.0)

##### Minor Changes

- [#&#8203;564](https://togithub.com/atlassian/changesets/pull/564)
[`707002d`](https://togithub.com/atlassian/changesets/commit/707002dec9332a2c1322522a23861e747a6bff6f)
Thanks [@&#8203;Andarist](https://togithub.com/Andarist)! - It's now
possible to specify multiple authors of a change by using multiple
`author: @&#8203;someuser` lines.

##### Patch Changes

- Updated dependencies
\[[`de2b4a5`](https://togithub.com/atlassian/changesets/commit/de2b4a5a7b244a37d94625bcb70ecde9dde5b612)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.0

###
[`v0.3.16`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.16)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.15...@changesets/parse@0.3.16)

##### Patch Changes

- Updated dependencies
\[[`521205d`](https://togithub.com/changesets/changesets/commit/521205dc8c70fe71b181bd3c4bb7c9c6d2e721d2)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).2.1

###
[`v0.3.15`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.15)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.14...@changesets/parse@0.3.15)

##### Patch Changes

- Updated dependencies
\[[`8c08469`](https://togithub.com/changesets/changesets/commit/8c0846977597ddaf51aaeb35f1f0f9428bf8ba14)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).2.0

###
[`v0.3.14`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.14)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.13...@changesets/parse@0.3.14)

##### Patch Changes

- Updated dependencies
\[[`dd9b76f`](https://togithub.com/changesets/changesets/commit/dd9b76f162a546ae8b412e0cb10277f971f3585e)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).1.0

###
[`v0.3.13`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.13)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.12...@changesets/parse@0.3.13)

##### Patch Changes

- Updated dependencies
\[[`c87eba6`](https://togithub.com/changesets/changesets/commit/c87eba6f80a34563b7382f87472c29f6dafb546c)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;5](https://togithub.com/5).0.0

###
[`v0.3.12`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.12)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.11...@changesets/parse@0.3.12)

##### Patch Changes

- Updated dependencies
\[[`27a5a82`](https://togithub.com/changesets/changesets/commit/27a5a82188914570d192162f9d045dfd082a3c15)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).1.0

###
[`v0.3.11`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.11)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.10...@changesets/parse@0.3.11)

##### Patch Changes

- [#&#8203;740](https://togithub.com/changesets/changesets/pull/740)
[`957e39c`](https://togithub.com/changesets/changesets/commit/957e39c21549dd91e03faa5cd30e44e4c3d7331f)
Thanks [@&#8203;akphi](https://togithub.com/akphi)! - Fixed an issue
with failing to parse changesets containing a completely empty summary.

###
[`v0.3.10`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.10)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.9...@changesets/parse@0.3.10)

##### Patch Changes

- Updated dependencies
\[[`9a993ba`](https://togithub.com/atlassian/changesets/commit/9a993ba09629c1620d749432520470cec49d3a96)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.2

###
[`v0.3.9`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.9)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.8...@changesets/parse@0.3.9)

##### Patch Changes

- Updated dependencies
\[[`e89e28a`](https://togithub.com/atlassian/changesets/commit/e89e28a05f5fa43307db73812a6bcd269b62ddee)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.1

###
[`v0.3.8`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.8)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.7...@changesets/parse@0.3.8)

##### Patch Changes

- Updated dependencies
\[[`de2b4a5`](https://togithub.com/atlassian/changesets/commit/de2b4a5a7b244a37d94625bcb70ecde9dde5b612)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;4](https://togithub.com/4).0.0

###
[`v0.3.7`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.7)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.6...@changesets/parse@0.3.7)

##### Patch Changes

-
[`5b6005e`](https://togithub.com/atlassian/changesets/commit/5b6005e0349a105b3d138fccdb22d13de8949862)
[#&#8203;462](https://togithub.com/atlassian/changesets/pull/462) Thanks
[@&#8203;Andarist](https://togithub.com/Andarist)! - Fixed an issue with
failing to parse changesets containing Windows newlines.

###
[`v0.3.6`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.6)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.5...@changesets/parse@0.3.6)

##### Patch Changes

- Updated dependencies
\[[`2b49d66`](https://togithub.com/atlassian/changesets/commit/2b49d668ecaa1333bc5c7c5be4648dda1b11528d)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;3](https://togithub.com/3).0.0

###
[`v0.3.5`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.5)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.4...@changesets/parse@0.3.5)

##### Patch Changes

-
[`1706fb7`](https://togithub.com/atlassian/changesets/commit/1706fb751ecc2f5a792c42f467b2063078d58716)
[#&#8203;321](https://togithub.com/atlassian/changesets/pull/321) Thanks
[@&#8203;mitchellhamilton](https://togithub.com/mitchellhamilton)! - Fix
TypeScript declarations

- Updated dependencies
\[[`1706fb7`](https://togithub.com/atlassian/changesets/commit/1706fb751ecc2f5a792c42f467b2063078d58716)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;2](https://togithub.com/2).0.1

###
[`v0.3.4`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.4)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.3...@changesets/parse@0.3.4)

##### Patch Changes

- Updated dependencies
\[[`011d57f`](https://togithub.com/atlassian/changesets/commit/011d57f1edf9e37f75a8bef4f918e72166af096e)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;2](https://togithub.com/2).0.0

###
[`v0.3.3`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.3)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.3.2...@changesets/parse@0.3.3)

##### Patch Changes

-
[`04ddfd7`](https://togithub.com/atlassian/changesets/commit/04ddfd7c3acbfb84ef9c92873fe7f9dea1f5145c)
[#&#8203;305](https://togithub.com/atlassian/changesets/pull/305) Thanks
[@&#8203;Noviny](https://togithub.com/Noviny)! - Add link to changelog
in readme

- Updated dependencies
\[[`04ddfd7`](https://togithub.com/atlassian/changesets/commit/04ddfd7c3acbfb84ef9c92873fe7f9dea1f5145c),
[`e56928b`](https://togithub.com/atlassian/changesets/commit/e56928bbd6f9096def06ac37487bdbf28efec9d1)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;1](https://togithub.com/1).0.1

###
[`v0.3.2`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/parse%400.3.2)

##### Patch Changes

-
[`41e2e3d`](https://togithub.com/atlassian/changesets/commit/41e2e3dd1053ff2f35a1a07e60793c9099f26997)
[#&#8203;292](https://togithub.com/atlassian/changesets/pull/292) Thanks
[@&#8203;acheronfail](https://togithub.com/acheronfail)! - Fix
`repository` field in package.json

- Updated dependencies
\[[`41e2e3d`](https://togithub.com/atlassian/changesets/commit/41e2e3dd1053ff2f35a1a07e60793c9099f26997),
[`cc8c921`](https://togithub.com/atlassian/changesets/commit/cc8c92143d4c4b7cca8b9917dfc830a40b5cda20),
[`cc8c921`](https://togithub.com/atlassian/changesets/commit/cc8c92143d4c4b7cca8b9917dfc830a40b5cda20),
[`2363366`](https://togithub.com/atlassian/changesets/commit/2363366756d1b15bddf6d803911baccfca03cbdf)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;1](https://togithub.com/1).0.0

###
[`v0.3.0`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/write%400.3.0)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.1...@changesets/parse@0.3.0)

##### Minor Changes

- [#&#8203;1185](https://togithub.com/changesets/changesets/pull/1185)
[`a971652`](https://togithub.com/changesets/changesets/commit/a971652ec1403aab3fb89eb2f1640bd5012b895a)
Thanks [@&#8203;Andarist](https://togithub.com/Andarist)! -
`package.json#exports` have been added to limit what (and how) code
might be imported from the package.

##### Patch Changes

- Updated dependencies
\[[`a971652`](https://togithub.com/changesets/changesets/commit/a971652ec1403aab3fb89eb2f1640bd5012b895a)]:
-
[@&#8203;changesets/types](https://togithub.com/changesets/types)[@&#8203;6](https://togithub.com/6).0.0

###
[`v0.2.1`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.0...@changesets/parse@0.2.1)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.2.0...@changesets/parse@0.2.1)

###
[`v0.2.0`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.2...@changesets/parse@0.2.0)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.2...@changesets/parse@0.2.0)

###
[`v0.1.2`](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.0...@changesets/parse@0.1.2)

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/parse@0.1.0...@changesets/parse@0.1.2)

</details>

<details>
<summary>percy/cli (@&#8203;percy/cli)</summary>

### [`v1.27.6`](https://togithub.com/percy/cli/releases/tag/v1.27.6)

[Compare
Source](https://togithub.com/percy/cli/compare/v1.27.5...v1.27.6)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### ✨ Enhancements

- Add support for Scrollable single element screenshot by
[@&#8203;chinmay-browserstack](https://togithub.com/chinmay-browserstack)
in
[https://github.com/percy/cli/pull/1458](https://togithub.com/percy/cli/pull/1458)
- Percy on Automate: Adding FullPage Support by
[@&#8203;Amit3200](https://togithub.com/Amit3200)
[@&#8203;rishigupta1599](https://togithub.com/rishigupta1599) in
[https://github.com/percy/cli/pull/1431](https://togithub.com/percy/cli/pull/1431)
- Percy on Automate: Add FullPage in global config by
[@&#8203;Amit3200](https://togithub.com/Amit3200) in
[https://github.com/percy/cli/pull/1477](https://togithub.com/percy/cli/pull/1477)

##### 🐛 Bug Fixes

- 🐛 Fix connection refused for `ipv6` by
[@&#8203;itsjwala](https://togithub.com/itsjwala) in
[https://github.com/percy/cli/pull/1463](https://togithub.com/percy/cli/pull/1463)

##### 🏗 Maintenance

- 🏗️ test fix: dom package test failing in chrome 120+ by
[@&#8203;itsjwala](https://togithub.com/itsjwala) in
[https://github.com/percy/cli/pull/1476](https://togithub.com/percy/cli/pull/1476)

**Full Changelog**:
https://github.com/percy/cli/compare/v1.27.5...v1.27.6

### [`v1.27.5`](https://togithub.com/percy/cli/releases/tag/v1.27.5)

[Compare
Source](https://togithub.com/percy/cli/compare/v1.27.4...v1.27.5)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

Note: We have received some reports where percy cli randomly stops
working after this release, so we are currently tagging 1.27.4 as latest
version on npm to fix for users using `latest` tag. 1.27.5 will still be
available if used explicitly. We are investigating the issue.

#### What's Changed

##### ✨ Enhancements

- ✨ Implement Warning + Disable Percy for unsupported combinations by
[@&#8203;this-is-shivamsingh](https://togithub.com/this-is-shivamsingh)
in
[https://github.com/percy/cli/pull/1411](https://togithub.com/percy/cli/pull/1411)
- ✨ Added support to set network interface to bind by
[@&#8203;ninadbstack](https://togithub.com/ninadbstack) in
[https://github.com/percy/cli/pull/1447](https://togithub.com/percy/cli/pull/1447)

##### 🐛 Bug Fixes

- Fixing FindRegion + Refactor by
[@&#8203;Amit3200](https://togithub.com/Amit3200) in
[https://github.com/percy/cli/pull/1408](https://togithub.com/percy/cli/pull/1408)
- Resolving race condition in snapshots flush by
[@&#8203;rishigupta1599](https://togithub.com/rishigupta1599) in
[https://github.com/percy/cli/pull/1440](https://togithub.com/percy/cli/pull/1440)

##### 🏗 Maintenance

- ♻️ Refactor: added defaultmap + locking mechanism for intercepts queue
by [@&#8203;nilshah98](https://togithub.com/nilshah98) in
[https://github.com/percy/cli/pull/1441](https://togithub.com/percy/cli/pull/1441)

#### New Contributors

-
[@&#8203;this-is-shivamsingh](https://togithub.com/this-is-shivamsingh)
made their first contribution in
[https://github.com/percy/cli/pull/1411](https://togithub.com/percy/cli/pull/1411)

**Full Changelog**:
https://github.com/percy/cli/compare/v1.27.4...v1.27.5

</details>

<details>
<summary>storybookjs/storybook
(@&#8203;storybook/addon-essentials)</summary>

###
[`v7.6.7`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#767)

[Compare
Source](https://togithub.com/storybookjs/storybook/compare/v7.6.6...v7.6.7)

- Core: Skip no-framework error when ignorePreview=true -
[#&#8203;25286](https://togithub.com/storybookjs/storybook/pull/25286),
thanks [@&#8203;ndelangen](https://togithub.com/ndelangen)!
- Dependencies: Semver dependency fixes -
[#&#8203;25283](https://togithub.com/storybookjs/storybook/pull/25283),
thanks [@&#8203;ndelangen](https://togithub.com/ndelangen)!
- Vite: Fix pre-transform error in Vite 5 -
[#&#8203;25329](https://togithub.com/storybookjs/storybook/pull/25329),
thanks [@&#8203;yannbf](https://togithub.com/yannbf)!
- Vue3: Fix pnp by making compiler-core a dependency -
[#&#8203;25311](https://togithub.com/storybookjs/storybook/pull/25311),
thanks [@&#8203;shilman](https://togithub.com/shilman)!

</details>

<details>
<summary>storybookjs/storybook (@&#8203;storybook/addon-links)</summary>

###
[`v7.6.7`](https://togithub.com/storybookjs/storybook/compare/v7.6.6...22ec27e2c6dbc6b3b7183c3c77693e4853f198a0)

[Compare
Source](https://togithub.com/storybookjs/storybook/compare/v7.6.6...v7.6.7)

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.17.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6170-2024-01-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.16.0...v6.17.0)

##### Bug Fixes

- **eslint-plugin:** \[no-restricted-imports] prevent crash when
`patterns` or `paths` in options are empty
([#&#8203;8108](https://togithub.com/typescript-eslint/typescript-eslint/issues/8108))
([675e987](https://togithub.com/typescript-eslint/typescript-eslint/commit/675e987ca1d13244c03d7e09d4e42c6539689d9a))

##### Features

- **eslint-plugin:** \[no-floating-promises] flag result of .map(async)
([#&#8203;7897](https://togithub.com/typescript-eslint/typescript-eslint/issues/7897))
([5857356](https://togithub.com/typescript-eslint/typescript-eslint/commit/5857356962060b19aa792bee778f9167ee54154b))
- **eslint-plugin:** \[switch-exhaustiveness-check] add an option to
warn against a `default` case on an already exhaustive `switch`
([#&#8203;7539](https://togithub.com/typescript-eslint/typescript-eslint/issues/7539))
([6a219bd](https://togithub.com/typescript-eslint/typescript-eslint/commit/6a219bdfe6fcf86aae28158e0d855f87a8bac719))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v6.16.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6160-2023-12-25)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.15.0...v6.16.0)

##### Bug Fixes

- **eslint-plugin:** \[unbound-method] exempt all non-Promise built-in
statics
([#&#8203;8096](https://togithub.com/typescript-eslint/typescript-eslint/issues/8096))
([3182959](https://togithub.com/typescript-eslint/typescript-eslint/commit/31829591e2c5cf6bdbdd5da23b12c5782f710fa5))

##### Features

- **eslint-plugin:** deprecate formatting (meta.type: layout) rules
([#&#8203;8073](https://togithub.com/typescript-eslint/typescript-eslint/issues/8073))
([04dea84](https://togithub.com/typescript-eslint/typescript-eslint/commit/04dea84e8e934a415ec1381a90de3cde670d0dc3))
- **eslint-plugin:** deprecate no-extra-semi in favor of ESLint
Stylistic equivalent
([#&#8203;8123](https://togithub.com/typescript-eslint/typescript-eslint/issues/8123))
([9368bf3](https://togithub.com/typescript-eslint/typescript-eslint/commit/9368bf390afc58a19123782f8dff2bb5cdd3cccc))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.17.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6170-2024-01-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.16.0...v6.17.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v6.16.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6160-2023-12-25)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.15.0...v6.16.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>zloirock/core-js (core-js)</summary>

###
[`v3.35.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3350---20231229)

[Compare
Source](https://togithub.com/zloirock/core-js/compare/v3.34.0...v3.35.0)

- [`{ Map, Set, WeakMap, WeakSet }.{ from, of
}`](https://togithub.com/tc39/proposal-setmap-offrom) became
non-generic, following
[this](https://togithub.com/tc39/proposal-setmap-offrom/issues/16#issuecomment-1843346541)
and some other notes. Now they can be invoked without `this`, but no
longer return subclass instances
- Fixed handling some cases of non-enumerable symbol keys from `Symbol`
polyfill
- Removed unneeded NodeJS domains-related logic from `queueMicrotask`
polyfill
-   Fixed subclassing of wrapped `ArrayBuffer`
-   Refactoring, many different minor optimizations
-   Compat data improvements:
-
[`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async)
marked as [supported from V8 ~ Chrome
121](https://bugs.chromium.org/p/v8/issues/detail?id=13321#c13)
- It seems that the ancient [`Array.prototype.push`
bug](https://bugs.chromium.org/p/v8/issues/detail?id=12681) is fixed in
V8 ~ Chrome 122 (Hallelujah!)
- [`ArrayBuffer.prototype.transfer` and friends
proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer)
features marked as [supported from FF
122](https://bugzilla.mozilla.org/show_bug.cgi?id=1865103#c8) and Bun
1.0.19
- [`Object.groupBy` and
`Map.groupBy`](https://togithub.com/tc39/proposal-array-grouping) marked
as supported from Bun 1.0.19
- Since [`Iterator` helpers
proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods
are still not disabled in Deno, the web compatibility issue why it was
disabled in Chromium makes no sense for Deno and fixed in the spec, they
marked as supported from Deno 1.37
- Added Opera Android 80 and updated [Opera Android
79](https://forums.opera.com/topic/68490/opera-for-android-79) compat
data mapping
    -   Added Samsung Internet 24 compat data mapping

</details>

<details>
<summary>cypress-io/cypress (cypress)</summary>

###
[`v13.6.2`](https://togithub.com/cypress-io/cypress/releases/tag/v13.6.2)

[Compare
Source](https://togithub.com/cypress-io/cypress/compare/v13.6.1...v13.6.2)

Changelog: https://docs.cypress.io/guides/references/changelog#13-6-2

</details>

<details>
<summary>eslint-community/eslint-plugin-n (eslint-plugin-n)</summary>

###
[`v16.6.1`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.1)

[Compare
Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.6.0...16.6.1)

- fix: eslint 7.0 support
([#&#8203;156](https://togithub.com/eslint-community/eslint-plugin-n/issues/156))
([`2419888`](https://togithub.com/eslint-community/eslint-plugin-n/commit/2419888))

###
[`v16.6.0`](https://togithub.com/eslint-community/eslint-plugin-n/releases/tag/16.6.0)

[Compare
Source](https://togithub.com/eslint-community/eslint-plugin-n/compare/16.5.0...16.6.0)

- feat: supported new globals added in the new node.js versions
([#&#8203;154](https://togithub.com/eslint-community/eslint-plugin-n/issues/154))
([`7628925`](https://togithub.com/eslint-community/eslint-plugin-n/commit/7628925))

</details>

<details>
<summary>btd/rollup-plugin-visualizer
(rollup-plugin-visualizer)</summary>

###
[`v5.12.0`](https://togithub.com/btd/rollup-plugin-visualizer/blob/HEAD/CHANGELOG.md#5120)

[Compare
Source](https://togithub.com/btd/rollup-plugin-visualizer/compare/v5.11.0...v5.12.0)

-   Make unique id in generated data to be hash of data
-   Remove strict from CLI

</details>

<details>
<summary>sass/dart-sass (sass)</summary>

###
[`v1.69.7`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1697)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.69.6...1.69.7)

##### Embedded Sass

- In the JS Embedded Host, properly install the x64 Dart Sass executable
on
    ARM64 Windows.

###
[`v1.69.6`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1696)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.69.5...1.69.6)

- Produce better output for numbers with complex units in
`meta.inspect()` and
    debugging messages.

-   Escape U+007F DELETE when serializing strings.

- When generating CSS error messages to display in-browser, escape all
code
points that aren't in the US-ASCII region. Previously only code points
U+0100
    LATIN CAPITAL LETTER A WITH MACRON were escaped.

-   Provide official releases for musl LibC and for Android.

-   Don't crash when running `meta.apply()` in asynchronous mode.

##### JS API

- Fix a bug where certain exceptions could produce `SourceSpan`s that
didn't
    follow the documented `SourceSpan` API.

</details>

<details>
<summary>svg/svgo (svgo)</summary>

### [`v3.2.0`](https://togithub.com/svg/svgo/releases/tag/v3.2.0)

[Compare Source](https://togithub.com/svg/svgo/compare/v3.1.0...v3.2.0)

#### What's Changed

##### Bug Fixes

- [**Convert Path
Commands**](https://svgo.dev/docs/plugins/convert-path-data/), fix
instances were `q` was incorrectly converted to `t`. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1889](https://togithub.com/svg/svgo/pull/1889)
- [**Convert
Transform**](https://svgo.dev/docs/plugins/convert-transform/), fix for
some transforms that weren't being converted correctly. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1916](https://togithub.com/svg/svgo/pull/1916)

##### SVG Optimization

- [**Convert Path
Commands**](https://svgo.dev/docs/plugins/convert-path-data/), improves
closing paths and how we determine if to use absolute or relative
commands. By [@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1867](https://togithub.com/svg/svgo/pull/1867)
- [**Convert Path
Commands**](https://svgo.dev/docs/plugins/convert-path-data/), round arc
or convert to lines based on the sagitta, can be disabled by setting
`smartArcRounding` to `false`. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1873](https://togithub.com/svg/svgo/pull/1873)
- [**Convert Path
Commands**](https://svgo.dev/docs/plugins/convert-path-data/), convert
cubic Bézier curves to quadratic Bézier curves where possible, can be
disabled by setting `convertToQ` to `false`. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1889](https://togithub.com/svg/svgo/pull/1889)

##### Performance

- [**Merge Paths**](https://svgo.dev/docs/plugins/merge-paths/),
refactor for performance with large files. By
[@&#8203;mozzie](https://togithub.com/mozzie) in
[https://github.com/svg/svgo/pull/1764](https://togithub.com/svg/svgo/pull/1764)
and
[https://github.com/svg/svgo/pull/1904](https://togithub.com/svg/svgo/pull/1904)
- [**Convert Path
Commands**](https://svgo.dev/docs/plugins/convert-path-data/), refactor
`#stringifyPathData` for performance. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1900](https://togithub.com/svg/svgo/pull/1900)
- Use
[`Set`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set)
instead of
[`Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)
for faster lookups. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1899](https://togithub.com/svg/svgo/pull/1899)

#### Metrics

Before and after using vectors from various sources, with the default
preset of each respective version:

| SVG | Original | v3.1.0 | v3.2.0 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.162 KiB
| 4.115 KiB | ⬇️ 0.047 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.623 KiB | ⬇️ 0.326 KiB |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.153 KiB | 540.582 KiB | ⬇️ 9.571 KiB |
| [tldr-pages
Banner](https://togithub.com/tldr-pages/tldr/blob/main/images/banner.svg)
| 2.071 KiB | 1.07 KiB | 1.07 KiB | |
| [Wikipedia
Logo](https://en.wikipedia.org/wiki/File:Wikipedia-logo-v2.svg) |
161.551 KiB | 116 KiB | 111.668 KiB | ⬇️ 4.332 KiB |

Before and after of the browser bundle of each respective version:

| | v3.1.0 | v3.2.0 | Delta |
|---|---|---|---|
| svgo.browser.js | 660.9 kB | 910.9 kB | ⬆️ 250 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" in timezone
Europe/Zurich, Automerge - At any time (no schedule defined).

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

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

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/swisspost/design-system).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Philipp Gfeller <philipp.gfeller@post.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧹 maintenance General maintenance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants