Skip to content

Commit 71acf87

Browse files
committedNov 12, 2024·
Update svgr and use project svgo version
1 parent 584b9b3 commit 71acf87

File tree

4 files changed

+329
-142
lines changed

4 files changed

+329
-142
lines changed
 

‎packages/core/integration-tests/test/svg-react.js

+80-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import assert from 'assert';
2-
import {bundle, outputFS} from '@parcel/test-utils';
2+
import {bundle, outputFS, fsFixture, overlayFS} from '@parcel/test-utils';
33
import path from 'path';
4+
import Logger from '@parcel/logger';
5+
import {md} from '@parcel/diagnostic';
46

57
describe('svg-react', function () {
68
it('should support transforming SVGs to react components', async function () {
@@ -56,4 +58,81 @@ describe('svg-react', function () {
5658
assert(file.includes('(0, _preact.h)("svg"'));
5759
assert(file.includes('width: "1em"'));
5860
});
61+
62+
it('should detect the version of SVGO to use', async function () {
63+
// Test is outside parcel so that svgo is not already installed.
64+
await fsFixture(overlayFS, '/')`
65+
svgr-svgo-version
66+
icon.svg:
67+
<svg></svg>
68+
69+
index.html:
70+
<img src="icon.svg" />
71+
72+
svgo.config.json:
73+
{
74+
"full": true
75+
}
76+
77+
yarn.lock:
78+
`;
79+
80+
let messages = [];
81+
let loggerDisposable = Logger.onLog(message => {
82+
if (message.level !== 'verbose') {
83+
messages.push(message);
84+
}
85+
});
86+
87+
try {
88+
await bundle(path.join('/svgr-svgo-version/index.html'), {
89+
inputFS: overlayFS,
90+
defaultTargetOptions: {
91+
shouldOptimize: true,
92+
},
93+
shouldAutoinstall: false,
94+
defaultConfig: path.join(
95+
__dirname,
96+
'integration/custom-configs/.parcelrc-svg-react',
97+
),
98+
});
99+
} catch (err) {
100+
// autoinstall is disabled
101+
assert.equal(
102+
err.diagnostics[0].message,
103+
md`Could not resolve module "svgo" from "${path.resolve(
104+
overlayFS.cwd(),
105+
'/svgr-svgo-version/index',
106+
)}"`,
107+
);
108+
}
109+
110+
loggerDisposable.dispose();
111+
assert(
112+
messages[0].diagnostics[0].message.startsWith(
113+
'Detected deprecated SVGO v2 options in',
114+
),
115+
);
116+
assert.deepEqual(messages[0].diagnostics[0].codeFrames, [
117+
{
118+
filePath: path.resolve(
119+
overlayFS.cwd(),
120+
'/svgr-svgo-version/svgo.config.json',
121+
),
122+
codeHighlights: [
123+
{
124+
message: undefined,
125+
start: {
126+
line: 2,
127+
column: 3,
128+
},
129+
end: {
130+
line: 2,
131+
column: 14,
132+
},
133+
},
134+
],
135+
},
136+
]);
137+
});
59138
});

‎packages/transformers/svg-react/package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@
2020
"parcel": "^2.12.0"
2121
},
2222
"dependencies": {
23+
"@parcel/diagnostic": "2.12.0",
2324
"@parcel/plugin": "2.12.0",
24-
"@svgr/core": "^6.2.0",
25-
"@svgr/plugin-jsx": "^6.2.0",
26-
"@svgr/plugin-svgo": "^6.2.0"
25+
"@parcel/utils": "2.12.0",
26+
"@svgr/core": "^8.0.0",
27+
"@svgr/plugin-jsx": "^8.0.0"
2728
}
2829
}

‎packages/transformers/svg-react/src/SvgReactTransformer.js

+130-6
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import {Transformer} from '@parcel/plugin';
44

5-
import svgoPlugin from '@svgr/plugin-svgo';
65
import jsxPlugin from '@svgr/plugin-jsx';
76
import {transform} from '@svgr/core';
7+
import {detectSVGOVersion} from '@parcel/utils';
8+
import path from 'path';
9+
import {md, generateJSONCodeHighlights} from '@parcel/diagnostic';
810

911
export default (new Transformer({
10-
async loadConfig({config}) {
12+
async loadConfig({config, logger, options}) {
1113
let svgrResult = await config.getConfig([
1214
'.svgrrc',
1315
'.svgrrc.json',
@@ -19,25 +21,102 @@ export default (new Transformer({
1921
'svgr.config.cjs',
2022
'svgr.config.mjs',
2123
]);
22-
let svgoResult = await config.getConfig([
24+
let svgoResult: any = await config.getConfig([
2325
'svgo.config.js',
2426
'svgo.config.cjs',
2527
'svgo.config.mjs',
2628
'svgo.config.json',
2729
]);
28-
return {svgr: svgrResult?.contents, svgo: svgoResult?.contents};
30+
31+
let svgoConfig = svgrResult?.contents?.svgoConfig ?? svgoResult?.contents;
32+
let svgoConfigPath = svgrResult?.contents?.svgoConfig
33+
? svgrResult.filePath
34+
: svgoResult?.filePath;
35+
36+
// See if svgo is already installed.
37+
let resolved;
38+
try {
39+
resolved = await options.packageManager.resolve(
40+
'svgo',
41+
path.join(options.projectRoot, 'index'),
42+
{shouldAutoInstall: false},
43+
);
44+
} catch (err) {
45+
// ignore.
46+
}
47+
48+
// If so, use the existing installed version.
49+
let svgoVersion = 3;
50+
if (resolved) {
51+
if (resolved.pkg?.version) {
52+
svgoVersion = parseInt(resolved.pkg.version);
53+
}
54+
} else if (svgoConfig) {
55+
// Otherwise try to detect the version based on the config file.
56+
let v = detectSVGOVersion(svgoConfig);
57+
if (svgoConfig != null && v.version === 2) {
58+
logger.warn({
59+
message: md`Detected deprecated SVGO v2 options in ${path.relative(
60+
process.cwd(),
61+
svgoConfigPath,
62+
)}`,
63+
codeFrames: [
64+
{
65+
filePath: svgoConfigPath,
66+
codeHighlights:
67+
path.basename(svgoConfigPath) === '.svgrrc' ||
68+
path.extname(svgoConfigPath) === '.json'
69+
? generateJSONCodeHighlights(
70+
await options.inputFS.readFile(svgoConfigPath, 'utf8'),
71+
[
72+
{
73+
key: `${
74+
svgrResult?.contents?.svgoConfig
75+
? '/svgoConfig'
76+
: ''
77+
}${v.path}`,
78+
},
79+
],
80+
)
81+
: [],
82+
},
83+
],
84+
});
85+
}
86+
87+
svgoVersion = v.version;
88+
}
89+
90+
return {svgr: svgrResult?.contents, svgo: svgoConfig, svgoVersion};
2991
},
3092

31-
async transform({asset, config}) {
93+
async transform({asset, config, options}) {
3294
let code = await asset.getCode();
3395

96+
let plugins = [];
97+
if (config.svgr?.svgo !== false) {
98+
let svgo = await options.packageManager.require(
99+
'svgo',
100+
path.join(options.projectRoot, 'index'),
101+
{
102+
range: `^${config.svgoVersion}`,
103+
saveDev: true,
104+
shouldAutoInstall: options.shouldAutoInstall,
105+
},
106+
);
107+
108+
plugins.push(createSvgoPlugin(svgo));
109+
}
110+
111+
plugins.push(jsxPlugin);
112+
34113
const jsx = await transform(
35114
code,
36115
{svgoConfig: config.svgo, ...config.svgr, runtimeConfig: false},
37116
{
38117
caller: {
39118
name: '@parcel/transformer-svg-react',
40-
defaultPlugins: [svgoPlugin, jsxPlugin],
119+
defaultPlugins: plugins,
41120
},
42121
filePath: asset.filePath,
43122
},
@@ -50,3 +129,48 @@ export default (new Transformer({
50129
return [asset];
51130
},
52131
}): Transformer);
132+
133+
// Below is copied from @svgr/plugin-svgo. MIT license.
134+
// https://github.com/gregberge/svgr/tree/180eb6d503215fc782dfece351ff751194a0dfed/packages/plugin-svgo
135+
136+
function getSvgoConfigFromSvgrConfig(config) {
137+
const params = {overrides: {}};
138+
if (config.icon || config.dimensions === false) {
139+
params.overrides.removeViewBox = false;
140+
}
141+
if (config.native) {
142+
params.overrides.inlineStyles = {
143+
onlyMatchedOnce: false,
144+
};
145+
}
146+
147+
return {
148+
plugins: [
149+
{
150+
name: 'preset-default',
151+
params,
152+
},
153+
'prefixIds',
154+
],
155+
};
156+
}
157+
158+
function getSvgoConfig(config) {
159+
if (config.svgoConfig) return config.svgoConfig;
160+
return getSvgoConfigFromSvgrConfig(config);
161+
}
162+
163+
function createSvgoPlugin(svgo) {
164+
return (code, config, state) => {
165+
const svgoConfig = getSvgoConfig(config);
166+
const result = svgo.optimize(code, {...svgoConfig, path: state.filePath});
167+
168+
// @ts-ignore
169+
if (result.modernError) {
170+
// @ts-ignore
171+
throw result.modernError;
172+
}
173+
174+
return result.data;
175+
};
176+
}

‎yarn.lock

+115-132
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
semver "^5.4.1"
5757
source-map "^0.5.0"
5858

59-
"@babel/core@^7.12.2", "@babel/core@^7.16.0", "@babel/core@^7.19.6", "@babel/core@^7.22.11":
59+
"@babel/core@^7.12.2", "@babel/core@^7.16.0", "@babel/core@^7.21.3", "@babel/core@^7.22.11":
6060
version "7.26.0"
6161
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40"
6262
integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==
@@ -1096,7 +1096,7 @@
10961096
debug "^4.3.1"
10971097
globals "^11.1.0"
10981098

1099-
"@babel/types@^7.12.7", "@babel/types@^7.20.0", "@babel/types@^7.22.11", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6":
1099+
"@babel/types@^7.12.7", "@babel/types@^7.21.3", "@babel/types@^7.22.11", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6":
11001100
version "7.26.0"
11011101
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff"
11021102
integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==
@@ -2493,98 +2493,89 @@
24932493
resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz#282046f03e886e352b2d5f5da5eb755e01457f3f"
24942494
integrity sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==
24952495

2496-
"@svgr/babel-plugin-add-jsx-attribute@^6.5.1":
2497-
version "6.5.1"
2498-
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba"
2499-
integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==
2496+
"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
2497+
version "8.0.0"
2498+
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22"
2499+
integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==
25002500

2501-
"@svgr/babel-plugin-remove-jsx-attribute@*":
2501+
"@svgr/babel-plugin-remove-jsx-attribute@8.0.0":
25022502
version "8.0.0"
25032503
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186"
25042504
integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==
25052505

2506-
"@svgr/babel-plugin-remove-jsx-empty-expression@*":
2506+
"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0":
25072507
version "8.0.0"
25082508
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44"
25092509
integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==
25102510

2511-
"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1":
2512-
version "6.5.1"
2513-
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60"
2514-
integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==
2515-
2516-
"@svgr/babel-plugin-svg-dynamic-title@^6.5.1":
2517-
version "6.5.1"
2518-
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4"
2519-
integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==
2520-
2521-
"@svgr/babel-plugin-svg-em-dimensions@^6.5.1":
2522-
version "6.5.1"
2523-
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217"
2524-
integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==
2525-
2526-
"@svgr/babel-plugin-transform-react-native-svg@^6.5.1":
2527-
version "6.5.1"
2528-
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305"
2529-
integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==
2530-
2531-
"@svgr/babel-plugin-transform-svg-component@^6.5.1":
2532-
version "6.5.1"
2533-
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250"
2534-
integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==
2535-
2536-
"@svgr/babel-preset@^6.5.1":
2537-
version "6.5.1"
2538-
resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828"
2539-
integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==
2540-
dependencies:
2541-
"@svgr/babel-plugin-add-jsx-attribute" "^6.5.1"
2542-
"@svgr/babel-plugin-remove-jsx-attribute" "*"
2543-
"@svgr/babel-plugin-remove-jsx-empty-expression" "*"
2544-
"@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1"
2545-
"@svgr/babel-plugin-svg-dynamic-title" "^6.5.1"
2546-
"@svgr/babel-plugin-svg-em-dimensions" "^6.5.1"
2547-
"@svgr/babel-plugin-transform-react-native-svg" "^6.5.1"
2548-
"@svgr/babel-plugin-transform-svg-component" "^6.5.1"
2549-
2550-
"@svgr/core@^6.2.0":
2551-
version "6.5.1"
2552-
resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a"
2553-
integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==
2554-
dependencies:
2555-
"@babel/core" "^7.19.6"
2556-
"@svgr/babel-preset" "^6.5.1"
2557-
"@svgr/plugin-jsx" "^6.5.1"
2511+
"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0":
2512+
version "8.0.0"
2513+
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27"
2514+
integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==
2515+
2516+
"@svgr/babel-plugin-svg-dynamic-title@8.0.0":
2517+
version "8.0.0"
2518+
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0"
2519+
integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==
2520+
2521+
"@svgr/babel-plugin-svg-em-dimensions@8.0.0":
2522+
version "8.0.0"
2523+
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501"
2524+
integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==
2525+
2526+
"@svgr/babel-plugin-transform-react-native-svg@8.1.0":
2527+
version "8.1.0"
2528+
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754"
2529+
integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==
2530+
2531+
"@svgr/babel-plugin-transform-svg-component@8.0.0":
2532+
version "8.0.0"
2533+
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e"
2534+
integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==
2535+
2536+
"@svgr/babel-preset@8.1.0":
2537+
version "8.1.0"
2538+
resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece"
2539+
integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==
2540+
dependencies:
2541+
"@svgr/babel-plugin-add-jsx-attribute" "8.0.0"
2542+
"@svgr/babel-plugin-remove-jsx-attribute" "8.0.0"
2543+
"@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0"
2544+
"@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0"
2545+
"@svgr/babel-plugin-svg-dynamic-title" "8.0.0"
2546+
"@svgr/babel-plugin-svg-em-dimensions" "8.0.0"
2547+
"@svgr/babel-plugin-transform-react-native-svg" "8.1.0"
2548+
"@svgr/babel-plugin-transform-svg-component" "8.0.0"
2549+
2550+
"@svgr/core@^8.0.0":
2551+
version "8.1.0"
2552+
resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88"
2553+
integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==
2554+
dependencies:
2555+
"@babel/core" "^7.21.3"
2556+
"@svgr/babel-preset" "8.1.0"
25582557
camelcase "^6.2.0"
2559-
cosmiconfig "^7.0.1"
2558+
cosmiconfig "^8.1.3"
2559+
snake-case "^3.0.4"
25602560

2561-
"@svgr/hast-util-to-babel-ast@^6.5.1":
2562-
version "6.5.1"
2563-
resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2"
2564-
integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==
2561+
"@svgr/hast-util-to-babel-ast@8.0.0":
2562+
version "8.0.0"
2563+
resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4"
2564+
integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==
25652565
dependencies:
2566-
"@babel/types" "^7.20.0"
2566+
"@babel/types" "^7.21.3"
25672567
entities "^4.4.0"
25682568

2569-
"@svgr/plugin-jsx@^6.2.0", "@svgr/plugin-jsx@^6.5.1":
2570-
version "6.5.1"
2571-
resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072"
2572-
integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==
2569+
"@svgr/plugin-jsx@^8.0.0":
2570+
version "8.1.0"
2571+
resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928"
2572+
integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==
25732573
dependencies:
2574-
"@babel/core" "^7.19.6"
2575-
"@svgr/babel-preset" "^6.5.1"
2576-
"@svgr/hast-util-to-babel-ast" "^6.5.1"
2574+
"@babel/core" "^7.21.3"
2575+
"@svgr/babel-preset" "8.1.0"
2576+
"@svgr/hast-util-to-babel-ast" "8.0.0"
25772577
svg-parser "^2.0.4"
25782578

2579-
"@svgr/plugin-svgo@^6.2.0":
2580-
version "6.5.1"
2581-
resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84"
2582-
integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==
2583-
dependencies:
2584-
cosmiconfig "^7.0.1"
2585-
deepmerge "^4.2.2"
2586-
svgo "^2.8.0"
2587-
25882579
"@swc/core-darwin-arm64@1.9.2":
25892580
version "1.9.2"
25902581
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.2.tgz#98b60a56229c4341c1263723f985e04f3f82d499"
@@ -4005,15 +3996,7 @@ buffer@^5.5.0:
40053996
base64-js "^1.3.1"
40063997
ieee754 "^1.1.13"
40073998

4008-
buffer@^5.5.0||^6.0.0:
4009-
version "6.0.3"
4010-
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
4011-
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
4012-
dependencies:
4013-
base64-js "^1.3.1"
4014-
ieee754 "^1.2.1"
4015-
4016-
buffer@mischnic/buffer#b8a4fa94:
3999+
buffer@^5.5.0||^6.0.0, buffer@mischnic/buffer#b8a4fa94:
40174000
version "6.0.3"
40184001
resolved "https://codeload.github.com/mischnic/buffer/tar.gz/b8a4fa94c96973a5321a95c75e0b16967f0745f3"
40194002
dependencies:
@@ -4876,7 +4859,7 @@ cosmiconfig@7.0.0:
48764859
path-type "^4.0.0"
48774860
yaml "^1.10.0"
48784861

4879-
cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
4862+
cosmiconfig@^7.0.0:
48804863
version "7.1.0"
48814864
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
48824865
integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
@@ -4887,6 +4870,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
48874870
path-type "^4.0.0"
48884871
yaml "^1.10.0"
48894872

4873+
cosmiconfig@^8.1.3:
4874+
version "8.3.6"
4875+
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
4876+
integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==
4877+
dependencies:
4878+
import-fresh "^3.3.0"
4879+
js-yaml "^4.1.0"
4880+
parse-json "^5.2.0"
4881+
path-type "^4.0.0"
4882+
48904883
cosmiconfig@^9.0.0:
48914884
version "9.0.0"
48924885
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
@@ -5005,17 +4998,6 @@ css-in-js-utils@^3.1.0:
50054998
dependencies:
50064999
hyphenate-style-name "^1.0.3"
50075000

5008-
css-select@^4.1.3:
5009-
version "4.3.0"
5010-
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
5011-
integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
5012-
dependencies:
5013-
boolbase "^1.0.0"
5014-
css-what "^6.0.1"
5015-
domhandler "^4.3.1"
5016-
domutils "^2.8.0"
5017-
nth-check "^2.0.1"
5018-
50195001
css-select@^5.1.0:
50205002
version "5.1.0"
50215003
resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
@@ -5027,7 +5009,7 @@ css-select@^5.1.0:
50275009
domutils "^3.0.1"
50285010
nth-check "^2.0.1"
50295011

5030-
css-tree@^1.1.2, css-tree@^1.1.3:
5012+
css-tree@^1.1.2:
50315013
version "1.1.3"
50325014
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
50335015
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
@@ -5051,7 +5033,7 @@ css-tree@~2.2.0:
50515033
mdn-data "2.0.28"
50525034
source-map-js "^1.0.1"
50535035

5054-
css-what@^6.0.1, css-what@^6.1.0:
5036+
css-what@^6.1.0:
50555037
version "6.1.0"
50565038
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
50575039
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
@@ -5110,13 +5092,6 @@ cssnano@^7.0.6:
51105092
cssnano-preset-default "^7.0.6"
51115093
lilconfig "^3.1.2"
51125094

5113-
csso@^4.2.0:
5114-
version "4.2.0"
5115-
resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
5116-
integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
5117-
dependencies:
5118-
css-tree "^1.1.2"
5119-
51205095
csso@^5.0.5:
51215096
version "5.0.5"
51225097
resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6"
@@ -5265,11 +5240,6 @@ deep-is@^0.1.3:
52655240
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
52665241
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
52675242

5268-
deepmerge@^4.2.2:
5269-
version "4.3.1"
5270-
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
5271-
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
5272-
52735243
default-compare@^1.0.0:
52745244
version "1.0.0"
52755245
resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
@@ -5493,7 +5463,7 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0:
54935463
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
54945464
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
54955465

5496-
domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1:
5466+
domhandler@^4.2.0, domhandler@^4.2.2:
54975467
version "4.3.1"
54985468
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
54995469
integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
@@ -5525,6 +5495,14 @@ domutils@^3.0.1, domutils@^3.1.0:
55255495
domelementtype "^2.3.0"
55265496
domhandler "^5.0.3"
55275497

5498+
dot-case@^3.0.4:
5499+
version "3.0.4"
5500+
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
5501+
integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
5502+
dependencies:
5503+
no-case "^3.0.4"
5504+
tslib "^2.0.3"
5505+
55285506
dot-prop@6.0.1:
55295507
version "6.0.1"
55305508
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
@@ -9422,6 +9400,13 @@ loose-envify@^1.1.0, loose-envify@^1.4.0:
94229400
dependencies:
94239401
js-tokens "^3.0.0 || ^4.0.0"
94249402

9403+
lower-case@^2.0.2:
9404+
version "2.0.2"
9405+
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
9406+
integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
9407+
dependencies:
9408+
tslib "^2.0.3"
9409+
94259410
lowlight@~1.17.0:
94269411
version "1.17.0"
94279412
resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.17.0.tgz#a1143b2fba8239df8cd5893f9fe97aaf8465af4a"
@@ -10184,6 +10169,14 @@ nise@^1.5.2:
1018410169
lolex "^5.0.1"
1018510170
path-to-regexp "^1.7.0"
1018610171

10172+
no-case@^3.0.4:
10173+
version "3.0.4"
10174+
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
10175+
integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
10176+
dependencies:
10177+
lower-case "^2.0.2"
10178+
tslib "^2.0.3"
10179+
1018710180
node-addon-api@^6.1.0:
1018810181
version "6.1.0"
1018910182
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76"
@@ -13117,6 +13110,14 @@ smart-buffer@^4.2.0:
1311713110
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
1311813111
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
1311913112

13113+
snake-case@^3.0.4:
13114+
version "3.0.4"
13115+
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
13116+
integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
13117+
dependencies:
13118+
dot-case "^3.0.4"
13119+
tslib "^2.0.3"
13120+
1312013121
snapdragon-node@^2.0.1:
1312113122
version "2.1.1"
1312213123
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -13321,11 +13322,6 @@ ssri@^10.0.0, ssri@^10.0.1:
1332113322
dependencies:
1332213323
minipass "^7.0.3"
1332313324

13324-
stable@^0.1.8:
13325-
version "0.1.8"
13326-
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
13327-
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
13328-
1332913325
stack-generator@^2.0.5:
1333013326
version "2.0.10"
1333113327
resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d"
@@ -13719,19 +13715,6 @@ svg-parser@^2.0.4:
1371913715
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
1372013716
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
1372113717

13722-
svgo@^2.8.0:
13723-
version "2.8.0"
13724-
resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
13725-
integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
13726-
dependencies:
13727-
"@trysound/sax" "0.2.0"
13728-
commander "^7.2.0"
13729-
css-select "^4.1.3"
13730-
css-tree "^1.1.3"
13731-
csso "^4.2.0"
13732-
picocolors "^1.0.0"
13733-
stable "^0.1.8"
13734-
1373513718
svgo@^3.3.2:
1373613719
version "3.3.2"
1373713720
resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8"
@@ -14162,7 +14145,7 @@ tslib@^1.8.1:
1416214145
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
1416314146
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
1416414147

14165-
tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.8.0:
14148+
tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.8.0:
1416614149
version "2.8.1"
1416714150
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
1416814151
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==

0 commit comments

Comments
 (0)
Please sign in to comment.