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

[new plugin] remove-xlink-ns #1535

Merged
merged 1 commit into from
Nov 18, 2023
Merged

[new plugin] remove-xlink-ns #1535

merged 1 commit into from
Nov 18, 2023

Conversation

TrySound
Copy link
Member

Ref #1508

The new plugin removes xmlns:xlink from and replaces xlink:href
with href attribute.

xlink namespace is obsolete in SVG 2. Href attribute is recommended
replacement to xlink:href.

This plugin will be enabled by default in SVGO 3.

See https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/href

cc @devongovett

@TrySound TrySound mentioned this pull request Aug 22, 2021
18 tasks
@TrySound TrySound marked this pull request as draft August 25, 2021 16:55
@SethFalco SethFalco self-assigned this Nov 6, 2023
@SethFalco SethFalco marked this pull request as ready for review November 17, 2023 23:56
@SethFalco
Copy link
Member

SethFalco commented Nov 18, 2023

I took over this PR. It ended up being a bit more complicated, though! ^-^'

I temporarily set removeXlink as a default plugin and can confirm regression tests pass with this plugin enabled. 🎉

Differences:

  • This migrates the whole XLink namespace rather than just the xlink:href attribute. For example, xlink:show and xlink:title too.
  • This checks if the XLink namespace was added with other prefixes.
  • Preserves use of XLink in legacy elements by default, but can be overridden with the includeLegacy parameter.
  • Updates removeXMLNS to stop removing the XLink namespace, as this was breaking SVGs and the multipass option anyway. Instead, the documentation recommends users to enable the removeXlink plugin as well if they want this behavior, which is more complete and isn't susceptible to the same issues.
  • Names it removeXlink to be consistent with other plugins.

I took the equivalent SVG 2 syntax from MDN.

  • xlink:hrefhref
  • xlink:showtarget (new_blank, replace_self)
  • xlink:title<title> in the child node

Chores

I also did some chores in this PR.

  • Fixes typos in the documentation and contribution guide.
  • Refer to namespace prefixes as prefixes, not aliases.
  • Increment version to v3.0.4.

Original Implementation

Reference to the initial implementation of this PR:

This would've yielded unexpected results if:

  • The XLink namespace was declared with a different prefix.
  • If any XLink attribute besides *:href was used.
  • If a different namespace entirely was declared as xmlns:xlink, i.e. xmlns:xlink="http://example.net/bar", this example is taken from one of the regression tests.
  • If the node has both xlink:href and href declared, we should prioritize href, not replace it.

Related

@SethFalco SethFalco merged commit 9fca7be into main Nov 18, 2023
6 checks passed
@SethFalco SethFalco deleted the remove-xlink-ns-plugin branch November 18, 2023 16:29
nono referenced this pull request in cozy/cozy-stack Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.3` -> `3.0.4`](https://renovatebot.com/diffs/npm/svgo/3.0.3/3.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

Includes various bug fixes for existing plugins and a new optimization.
Also splits `removeXMLNS`, which removed XLink, into two separate
plugins, `removeXMLNS` and `removeXlink`.

#### What's Changed

##### Default Behavior

- **Remove XML Namespace**, no longer removes the XLink (`xmlns:xlink`)
namespace. If that is desirable, you should enable the new [Remove
XLink](https://svgo.dev/docs/plugins/remove-xlink/) (`removeXlink`)
plugin, which does more while being safer. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

##### Bug Fixes

- **Convert Path Commands**, ignore instances where transform applied
via style tag. By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1830](https://togithub.com/svg/svgo/pull/1830)
- **Inline Styles**, inline properties with the same specificity in the
order that they appear in the stylesheet. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1831](https://togithub.com/svg/svgo/pull/1831)
- **Inline Styles**, don't remove class or id from node if it's
traversed in another CSS selector. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1832](https://togithub.com/svg/svgo/pull/1832)
and
[https://github.com/svg/svgo/pull/1836](https://togithub.com/svg/svgo/pull/1836)
- Don't trim
[`pre`](https://developer.mozilla.org/docs/Web/HTML/Element/pre)
elements in
[`foreignObject`](https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject).
By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1796](https://togithub.com/svg/svgo/pull/1796)
- Don't crash when encountering
[`@-webkit-keyframes`](https://webkit.org/blog/324/css-animation-2/) in
`<style>` node. By [@&#8203;SethFalco](https://togithub.com/SethFalco)
in
[https://github.com/svg/svgo/pull/1826](https://togithub.com/svg/svgo/pull/1826)

##### SVG Optimization

- **Convert Path Commands**, convert to `z` command if going back to
initial position, or drop `z` if redundant. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1822](https://togithub.com/svg/svgo/pull/1822)
- **Inline Styles**, when inlining a CSS property that's already
declared in a presentation attribute of the node, drop the attribute. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1829](https://togithub.com/svg/svgo/pull/1829)
- **Remove XLink**, new plugin that removes the XLink (`xmlns:xlink`)
namespace and migrates from XLink attributes to the SVG 2 equivalent.
Disabled by default. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

#### Metrics

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

| SVG | Original | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.738 KiB
| 4.735 KiB | ⬇️ 0.003 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.699 KiB | 550.593 KiB | ⬇️ 0.106 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.552 KiB | 118.441 KiB | 117.152 KiB | ⬇️ 1.289 KiB |

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

| | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|
| svgo.browser.js | 651.7 kB | 656.9 kB | ⬆️  5.2 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 6am on Monday" in timezone
Europe/Paris, 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/cozy/cozy-stack).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->
gfellerph referenced this pull request in swisspost/design-system Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@changesets/parse](https://togithub.com/changesets/changesets/tree/main#readme)
([source](https://togithub.com/changesets/changesets)) | [`0.1.0` ->
`0.3.16`](https://renovatebot.com/diffs/npm/@changesets%2fparse/0.1.0/0.3.16)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@changesets%2fparse/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@changesets%2fparse/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@changesets%2fparse/0.1.0/0.3.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@changesets%2fparse/0.1.0/0.3.16?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)) |
[`18.18.9` ->
`18.18.10`](https://renovatebot.com/diffs/npm/@types%2fnode/18.18.9/18.18.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.18.9/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.18.9/18.18.10?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)) |
[`18.17.19` ->
`18.18.10`](https://renovatebot.com/diffs/npm/@types%2fnode/18.17.19/18.18.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.17.19/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.17.19/18.18.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
| [`6.11.0` ->
`6.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.11.0/6.12.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
| [`6.11.0` ->
`6.12.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.11.0/6.12.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.11.0/6.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [core-js](https://togithub.com/zloirock/core-js) | [`3.33.2` ->
`3.33.3`](https://renovatebot.com/diffs/npm/core-js/3.33.2/3.33.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/core-js/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/core-js/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/core-js/3.33.2/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/core-js/3.33.2/3.33.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.53.0` ->
`8.54.0`](https://renovatebot.com/diffs/npm/eslint/8.53.0/8.54.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.53.0/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.53.0/8.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[start-server-and-test](https://togithub.com/bahmutov/start-server-and-test)
| [`2.0.2` ->
`2.0.3`](https://renovatebot.com/diffs/npm/start-server-and-test/2.0.2/2.0.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/start-server-and-test/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/start-server-and-test/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/start-server-and-test/2.0.2/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/start-server-and-test/2.0.2/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.3` -> `3.0.4`](https://renovatebot.com/diffs/npm/svgo/3.0.3/3.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/[email protected]...@changesets/[email protected])

##### 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/compare/@changesets/[email protected]...@changesets/[email protected])

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

###
[`v0.2.1`](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

###
[`v0.2.0`](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

###
[`v0.1.2`](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

[Compare
Source](https://togithub.com/changesets/changesets/compare/@changesets/[email protected]...@changesets/[email protected])

</details>

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

###
[`v6.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6120-2023-11-20)

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

##### Bug Fixes

- **eslint-plugin:** \[class-methods-use-this] detect a problematic case
for private/protected members if `ignoreClassesThatImplementAnInterface`
is set
([#&#8203;7705](https://togithub.com/typescript-eslint/typescript-eslint/issues/7705))
([155aa1f](https://togithub.com/typescript-eslint/typescript-eslint/commit/155aa1f533d1fe23da3c66f9832343faf4866d85))
- **eslint-plugin:** \[no-unnecessary-condition] fix false positive with
computed member access and branded key type
([#&#8203;7706](https://togithub.com/typescript-eslint/typescript-eslint/issues/7706))
([f151b26](https://togithub.com/typescript-eslint/typescript-eslint/commit/f151b26d2178a617e82ad6a0279e3145e303f4f8))
- **eslint-plugin:** \[switch-exhaustiveness-check] enum members with
new line or single quotes are not being fixed correctly
([#&#8203;7806](https://togithub.com/typescript-eslint/typescript-eslint/issues/7806))
([a034d0a](https://togithub.com/typescript-eslint/typescript-eslint/commit/a034d0a3856aa07bd2d52b557fa33c7a88e9e511)),
closes
[#&#8203;7768](https://togithub.com/typescript-eslint/typescript-eslint/issues/7768)

##### Features

- \[member-ordering] add accessor support for member-ordering
([#&#8203;7927](https://togithub.com/typescript-eslint/typescript-eslint/issues/7927))
([3c8312d](https://togithub.com/typescript-eslint/typescript-eslint/commit/3c8312d1e135dc65fa41f629993cd03ed82e3255))
- **eslint-plugin:** \[switch-exhaustiveness-check] add
requireDefaultForNonUnion option
([#&#8203;7880](https://togithub.com/typescript-eslint/typescript-eslint/issues/7880))
([4cfcd45](https://togithub.com/typescript-eslint/typescript-eslint/commit/4cfcd451efb2563130896e42b45252909932c679))

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.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6120-2023-11-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.11.0...v6.12.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.33.3`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3333---20231120)

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

- Fixed an issue getting the global object on Duktape,
[#&#8203;1303](https://togithub.com/zloirock/core-js/issues/1303)
- Avoid sharing internal `[[DedentMap]]` from [`String.dedent`
proposal](https://togithub.com/tc39/proposal-string-dedent) between
`core-js` instances before stabilization of the proposal
-   Some internal untangling
-   Compat data improvements:
- Added [Deno 1.38](https://deno.com/blog/v1.38) compat data mapping
-
[`Array.fromAsync`](https://togithub.com/tc39/proposal-array-from-async)
marked as [supported from Deno
1.38](https://togithub.com/denoland/deno/pull/21048)
- [`Symbol.{ dispose, asyncDispose
}`](https://togithub.com/tc39/proposal-explicit-resource-management)
marked as [supported from Deno
1.38](https://togithub.com/denoland/deno/pull/20845)
    -   Added Opera Android 79 compat data mapping
    -   Added Oculus Quest Browser 30 compat data mapping
    -   Updated Electron 28 and 29 compat data mapping

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.54.0`](https://togithub.com/eslint/eslint/releases/tag/v8.54.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.53.0...v8.54.0)

#### Features

-
[`a7a883b`](https://togithub.com/eslint/eslint/commit/a7a883bd6ba4f140b60cbbb2be5b53d750f6c8db)
feat: for-direction rule add check for condition in reverse order
([#&#8203;17755](https://togithub.com/eslint/eslint/issues/17755))
(Angelo Annunziata)
-
[`1452dc9`](https://togithub.com/eslint/eslint/commit/1452dc9f12c45c05d7c569f737221f0d988ecef1)
feat: Add suggestions to no-console
([#&#8203;17680](https://togithub.com/eslint/eslint/issues/17680)) (Joel
Mathew Koshy)
-
[`21ebf8a`](https://togithub.com/eslint/eslint/commit/21ebf8a811be9f4b009cf70a10be5062d4fdc736)
feat: update `no-array-constructor` rule
([#&#8203;17711](https://togithub.com/eslint/eslint/issues/17711))
(Francesco Trotta)

#### Bug Fixes

-
[`98926e6`](https://togithub.com/eslint/eslint/commit/98926e6e7323e5dd12a9f016cb558144296665af)
fix: Ensure that extra data is not accidentally stored in the cache file
([#&#8203;17760](https://togithub.com/eslint/eslint/issues/17760))
(Milos Djermanovic)
-
[`e8cf9f6`](https://togithub.com/eslint/eslint/commit/e8cf9f6a524332293f8b2c90a2db4a532e47d919)
fix: Make dark scroll bar in dark theme
([#&#8203;17753](https://togithub.com/eslint/eslint/issues/17753))
(Pavel)
-
[`3cbeaad`](https://togithub.com/eslint/eslint/commit/3cbeaad7b943c153937ce34365cec2c406f2b98b)
fix: Use `cwd` constructor option as config `basePath` in Linter
([#&#8203;17705](https://togithub.com/eslint/eslint/issues/17705))
(Milos Djermanovic)

#### Documentation

-
[`becfdd3`](https://togithub.com/eslint/eslint/commit/becfdd39b25d795e56c9a13eb3e77af6b9c86e8a)
docs: Make clear when rules are removed
([#&#8203;17728](https://togithub.com/eslint/eslint/issues/17728))
(Nicholas C. Zakas)
-
[`05d6e99`](https://togithub.com/eslint/eslint/commit/05d6e99153ed6d94eb30f46c57609371918a41f3)
docs: update "Submit a Pull Request" page
([#&#8203;17712](https://togithub.com/eslint/eslint/issues/17712))
(Francesco Trotta)
-
[`eb2279e`](https://togithub.com/eslint/eslint/commit/eb2279e5148cee8fdea7dae614f4f8af7a2d06c3)
docs: display info about deprecated rules
([#&#8203;17749](https://togithub.com/eslint/eslint/issues/17749))
(Percy Ma)
-
[`d245326`](https://togithub.com/eslint/eslint/commit/d24532601e64714ac5d08507e05aa5c14ecd1d5a)
docs: Correct working in migrating plugin docs
([#&#8203;17722](https://togithub.com/eslint/eslint/issues/17722))
(Filip Tammergård)

#### Chores

-
[`d644de9`](https://togithub.com/eslint/eslint/commit/d644de9a4b593b565617303a095bc9aa69e7b768)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).54.0
([#&#8203;17773](https://togithub.com/eslint/eslint/issues/17773))
(Milos Djermanovic)
-
[`1e6e314`](https://togithub.com/eslint/eslint/commit/1e6e31415cc429a3a9fc64b2ec03df0e0ec0c91b)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-
[`6fb8805`](https://togithub.com/eslint/eslint/commit/6fb8805310afe7476d6c404f172177a6d15fcf11)
chore: Fixed grammar in issue_templates/rule_change
([#&#8203;17770](https://togithub.com/eslint/eslint/issues/17770)) (Joel
Mathew Koshy)
-
[`85db724`](https://togithub.com/eslint/eslint/commit/85db7243ddb8706ed60ab64a7ddf604d0d7de493)
chore: upgrade `markdownlint` to 0.31.1
([#&#8203;17754](https://togithub.com/eslint/eslint/issues/17754))
(Nitin Kumar)
-
[`6d470d2`](https://togithub.com/eslint/eslint/commit/6d470d2e74535761bd56dcb1c021b463ef9e8a9c)
chore: update dependency recast to ^0.23.0
([#&#8203;17736](https://togithub.com/eslint/eslint/issues/17736))
(renovate\[bot])
-
[`b7121b5`](https://togithub.com/eslint/eslint/commit/b7121b590d578c9c9b38ee481313317f30e54817)
chore: update dependency markdownlint-cli to ^0.37.0
([#&#8203;17735](https://togithub.com/eslint/eslint/issues/17735))
(renovate\[bot])
-
[`633b9a1`](https://togithub.com/eslint/eslint/commit/633b9a19752b6a22ab4d6c824f27a75ac0e4151b)
chore: update dependency regenerator-runtime to ^0.14.0
([#&#8203;17739](https://togithub.com/eslint/eslint/issues/17739))
(renovate\[bot])
-
[`acac16f`](https://togithub.com/eslint/eslint/commit/acac16fdf8540f7ba86cf637e3c1b253bd35a268)
chore: update dependency vite-plugin-commonjs to ^0.10.0
([#&#8203;17740](https://togithub.com/eslint/eslint/issues/17740))
(renovate\[bot])
-
[`ba8ca7e`](https://togithub.com/eslint/eslint/commit/ba8ca7e3debcba68ee7015b9221cf5acd7870206)
chore: add .github/renovate.json5
([#&#8203;17567](https://togithub.com/eslint/eslint/issues/17567)) (Josh
Goldberg ✨)

</details>

<details>
<summary>bahmutov/start-server-and-test
(start-server-and-test)</summary>

###
[`v2.0.3`](https://togithub.com/bahmutov/start-server-and-test/releases/tag/v2.0.3)

[Compare
Source](https://togithub.com/bahmutov/start-server-and-test/compare/v2.0.2...v2.0.3)

##### Bug Fixes

- **deps:** update dependency wait-on to v7.2.0
([#&#8203;374](https://togithub.com/bahmutov/start-server-and-test/issues/374))
([ad35c2e](https://togithub.com/bahmutov/start-server-and-test/commit/ad35c2e4128615d7bc6e84d09761ae5d1fbc8da2))

</details>

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

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

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

Includes various bug fixes for existing plugins and a new optimization.
Also splits `removeXMLNS`, which removed XLink, into two separate
plugins, `removeXMLNS` and `removeXlink`.

#### What's Changed

##### Default Behavior

- **Remove XML Namespace**, no longer removes the XLink (`xmlns:xlink`)
namespace. If that is desirable, you should enable the new [Remove
XLink](https://svgo.dev/docs/plugins/remove-xlink/) (`removeXlink`)
plugin, which does more while being safer. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

##### Bug Fixes

- **Convert Path Commands**, ignore instances where transform applied
via style tag. By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1830](https://togithub.com/svg/svgo/pull/1830)
- **Inline Styles**, inline properties with the same specificity in the
order that they appear in the stylesheet. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1831](https://togithub.com/svg/svgo/pull/1831)
- **Inline Styles**, don't remove class or id from node if it's
traversed in another CSS selector. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1832](https://togithub.com/svg/svgo/pull/1832)
and
[https://github.com/svg/svgo/pull/1836](https://togithub.com/svg/svgo/pull/1836)
- Don't trim
[`pre`](https://developer.mozilla.org/docs/Web/HTML/Element/pre)
elements in
[`foreignObject`](https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject).
By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1796](https://togithub.com/svg/svgo/pull/1796)
- Don't crash when encountering
[`@-webkit-keyframes`](https://webkit.org/blog/324/css-animation-2/) in
`<style>` node. By [@&#8203;SethFalco](https://togithub.com/SethFalco)
in
[https://github.com/svg/svgo/pull/1826](https://togithub.com/svg/svgo/pull/1826)

##### SVG Optimization

- **Convert Path Commands**, convert to `z` command if going back to
initial position, or drop `z` if redundant. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1822](https://togithub.com/svg/svgo/pull/1822)
- **Inline Styles**, when inlining a CSS property that's already
declared in a presentation attribute of the node, drop the attribute. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1829](https://togithub.com/svg/svgo/pull/1829)
- **Remove XLink**, new plugin that removes the XLink (`xmlns:xlink`)
namespace and migrates from XLink attributes to the SVG 2 equivalent.
Disabled by default. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

#### Metrics

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

| SVG | Original | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.738 KiB
| 4.735 KiB | ⬇️ 0.003 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.699 KiB | 550.593 KiB | ⬇️ 0.106 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.552 KiB | 118.441 KiB | 117.152 KiB | ⬇️ 1.289 KiB |

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

| | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|
| svgo.browser.js | 651.7 kB | 656.9 kB | ⬆️  5.2 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:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Philipp Gfeller <[email protected]>
sungik-choi referenced this pull request in channel-io/bezier-react Nov 22, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.3` -> `3.0.4`](https://renovatebot.com/diffs/npm/svgo/3.0.3/3.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.3/3.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

Includes various bug fixes for existing plugins and a new optimization.
Also splits `removeXMLNS`, which removed XLink, into two separate
plugins, `removeXMLNS` and `removeXlink`.

#### What's Changed

##### Default Behavior

- **Remove XML Namespace**, no longer removes the XLink (`xmlns:xlink`)
namespace. If that is desirable, you should enable the new [Remove
XLink](https://svgo.dev/docs/plugins/remove-xlink/) (`removeXlink`)
plugin, which does more while being safer. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

##### Bug Fixes

- **Convert Path Commands**, ignore instances where transform applied
via style tag. By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1830](https://togithub.com/svg/svgo/pull/1830)
- **Inline Styles**, inline properties with the same specificity in the
order that they appear in the stylesheet. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1831](https://togithub.com/svg/svgo/pull/1831)
- **Inline Styles**, don't remove class or id from node if it's
traversed in another CSS selector. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1832](https://togithub.com/svg/svgo/pull/1832)
and
[https://github.com/svg/svgo/pull/1836](https://togithub.com/svg/svgo/pull/1836)
- Don't trim
[`pre`](https://developer.mozilla.org/docs/Web/HTML/Element/pre)
elements in
[`foreignObject`](https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject).
By [@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1796](https://togithub.com/svg/svgo/pull/1796)
- Don't crash when encountering
[`@-webkit-keyframes`](https://webkit.org/blog/324/css-animation-2/) in
`<style>` node. By [@&#8203;SethFalco](https://togithub.com/SethFalco)
in
[https://github.com/svg/svgo/pull/1826](https://togithub.com/svg/svgo/pull/1826)

##### SVG Optimization

- **Convert Path Commands**, convert to `z` command if going back to
initial position, or drop `z` if redundant. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1822](https://togithub.com/svg/svgo/pull/1822)
- **Inline Styles**, when inlining a CSS property that's already
declared in a presentation attribute of the node, drop the attribute. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1829](https://togithub.com/svg/svgo/pull/1829)
- **Remove XLink**, new plugin that removes the XLink (`xmlns:xlink`)
namespace and migrates from XLink attributes to the SVG 2 equivalent.
Disabled by default. By
[@&#8203;TrySound](https://togithub.com/TrySound) and
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1535](https://togithub.com/svg/svgo/pull/1535)

#### Metrics

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

| SVG | Original | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.738 KiB
| 4.735 KiB | ⬇️ 0.003 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.699 KiB | 550.593 KiB | ⬇️ 0.106 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.552 KiB | 118.441 KiB | 117.152 KiB | ⬇️ 1.289 KiB |

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

| | v3.0.3 | v3.0.4 | Delta |
|---|---|---|---|
| svgo.browser.js | 651.7 kB | 656.9 kB | ⬆️  5.2 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on Monday after 10am before 7pm" in
timezone Asia/Seoul, 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/channel-io/bezier-react).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ed Sungik Choi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants