eslint-plugin-react-hooks: Add support for ESLint v9 (#28773)
Sebastian Silbermann committed
Apr 23, 2024 at 23:29 UTC
6f18664b82b61d34b30c794a151d7b032f8eabe0
6 files changed
+618
-91
packages/eslint-plugin-react-hooks/__tests__/ESLintRuleExhaustiveDeps-test.js
+143
-51
@@ -3,11 +3,14 @@
3
*
4
* This source code is licensed under the MIT license found in the
5
* LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @jest-environment node
8
*/
9
10
'use strict';
11
10
-const ESLintTester = require('eslint').RuleTester;
12
+const ESLintTesterV7 = require('eslint-v7').RuleTester;
13
+const ESLintTesterV9 = require('eslint-v9').RuleTester;
14
const ReactHooksESLintPlugin = require('eslint-plugin-react-hooks');
15
const ReactHooksESLintRule = ReactHooksESLintPlugin.rules['exhaustive-deps'];
16
@@ -4673,17 +4676,8 @@ const tests = {
4676
return <div ref={myRef} />;
4677
}
4678
`,
4676
- output: `
4677
- function MyComponent() {
4678
- const myRef = useRef();
4679
- useLayoutEffect_SAFE_FOR_SSR(() => {
4680
- const handleMove = () => {};
4681
- myRef.current.addEventListener('mousemove', handleMove);
4682
- return () => myRef.current.removeEventListener('mousemove', handleMove);
4683
- });
4684
- return <div ref={myRef} />;
4685
- }
4686
- `,
4679
+ // No changes
4680
+ output: null,
4681
errors: [
4682
`The ref value 'myRef.current' will likely have changed by the time ` +
4683
`this effect cleanup function runs. If this ref points to a node ` +
@@ -7101,6 +7095,19 @@ const tests = {
7095
message:
7096
"React Hook useEffect has a missing dependency: 'local'. " +
7097
'Either include it or remove the dependency array.',
7098
+ suggestions: [
7099
+ {
7100
+ desc: 'Update the dependencies array to be: [local]',
7101
+ output: normalizeIndent`
7102
+ function MyComponent() {
7103
+ const local = {};
7104
+ useEffect(() => {
7105
+ console.log(local);
7106
+ }, [local]);
7107
+ }
7108
+ `,
7109
+ },
7110
+ ],
7111
},
7112
],
7113
// Keep this until major IDEs and VS Code FB ESLint plugin support Suggestions API.
@@ -8217,30 +8224,45 @@ if (!process.env.CI) {
8224
testsTypescript.invalid = testsTypescript.invalid.filter(predicate);
8225
}
8226
8220
-describe('react-hooks', () => {
8221
- const parserOptions = {
8227
+describe('rules-of-hooks/exhaustive-deps', () => {
8228
+ const parserOptionsV7 = {
8229
ecmaFeatures: {
8230
jsx: true,
8231
},
8232
ecmaVersion: 6,
8233
sourceType: 'module',
8234
};
8235
+ const languageOptionsV9 = {
8236
+ ecmaVersion: 6,
8237
+ sourceType: 'module',
8238
+ parserOptions: {
8239
+ ecmaFeatures: {
8240
+ jsx: true,
8241
+ },
8242
+ },
8243
+ };
8244
8245
const testsBabelEslint = {
8246
valid: [...testsFlow.valid, ...tests.valid],
8247
invalid: [...testsFlow.invalid, ...tests.invalid],
8248
};
8249
8234
- new ESLintTester({
8250
+ new ESLintTesterV7({
8251
parser: require.resolve('babel-eslint'),
8236
- parserOptions,
8237
- }).run('parser: babel-eslint', ReactHooksESLintRule, testsBabelEslint);
8252
+ parserOptions: parserOptionsV7,
8253
+ }).run(
8254
+ 'eslint: v7, parser: babel-eslint',
8255
+ ReactHooksESLintRule,
8256
+ testsBabelEslint
8257
+ );
8258
8239
- new ESLintTester({
8240
- parser: require.resolve('@babel/eslint-parser'),
8241
- parserOptions,
8259
+ new ESLintTesterV9({
8260
+ languageOptions: {
8261
+ ...languageOptionsV9,
8262
+ parser: require('@babel/eslint-parser'),
8263
+ },
8264
}).run(
8243
- 'parser: @babel/eslint-parser',
8265
+ 'eslint: v9, parser: @babel/eslint-parser',
8266
ReactHooksESLintRule,
8267
testsBabelEslint
8268
);
@@ -8250,49 +8272,119 @@ describe('react-hooks', () => {
8272
invalid: [...testsTypescript.invalid, ...tests.invalid],
8273
};
8274
8253
- new ESLintTester({
8275
+ new ESLintTesterV7({
8276
parser: require.resolve('@typescript-eslint/parser-v2'),
8255
- parserOptions,
8277
+ parserOptions: parserOptionsV7,
8278
+ }).run(
8279
+ 'eslint: v7, parser: @typescript-eslint/parser@2.x',
8280
+ ReactHooksESLintRule,
8281
+ testsTypescriptEslintParser
8282
+ );
8283
+
8284
+ new ESLintTesterV9({
8285
+ languageOptions: {
8286
+ ...languageOptionsV9,
8287
+ parser: require('@typescript-eslint/parser-v2'),
8288
+ },
8289
}).run(
8257
- 'parser: @typescript-eslint/parser@2.x',
8290
+ 'eslint: v9, parser: @typescript-eslint/parser@2.x',
8291
ReactHooksESLintRule,
8292
testsTypescriptEslintParser
8293
);
8294
8262
- new ESLintTester({
8295
+ new ESLintTesterV7({
8296
parser: require.resolve('@typescript-eslint/parser-v3'),
8264
- parserOptions,
8297
+ parserOptions: parserOptionsV7,
8298
}).run(
8266
- 'parser: @typescript-eslint/parser@3.x',
8299
+ 'eslint: v7, parser: @typescript-eslint/parser@3.x',
8300
ReactHooksESLintRule,
8301
testsTypescriptEslintParser
8302
);
8303
8271
- new ESLintTester({
8304
+ new ESLintTesterV9({
8305
+ languageOptions: {
8306
+ ...languageOptionsV9,
8307
+ parser: require('@typescript-eslint/parser-v3'),
8308
+ },
8309
+ }).run(
8310
+ 'eslint: v9, parser: @typescript-eslint/parser@3.x',
8311
+ ReactHooksESLintRule,
8312
+ testsTypescriptEslintParser
8313
+ );
8314
+
8315
+ new ESLintTesterV7({
8316
parser: require.resolve('@typescript-eslint/parser-v4'),
8273
- parserOptions,
8274
- }).run('parser: @typescript-eslint/parser@4.x', ReactHooksESLintRule, {
8275
- valid: [
8276
- ...testsTypescriptEslintParserV4.valid,
8277
- ...testsTypescriptEslintParser.valid,
8278
- ],
8279
- invalid: [
8280
- ...testsTypescriptEslintParserV4.invalid,
8281
- ...testsTypescriptEslintParser.invalid,
8282
- ],
8283
- });
8317
+ parserOptions: parserOptionsV7,
8318
+ }).run(
8319
+ 'eslint: v7, parser: @typescript-eslint/parser@4.x',
8320
+ ReactHooksESLintRule,
8321
+ {
8322
+ valid: [
8323
+ ...testsTypescriptEslintParserV4.valid,
8324
+ ...testsTypescriptEslintParser.valid,
8325
+ ],
8326
+ invalid: [
8327
+ ...testsTypescriptEslintParserV4.invalid,
8328
+ ...testsTypescriptEslintParser.invalid,
8329
+ ],
8330
+ }
8331
+ );
8332
8285
- new ESLintTester({
8333
+ new ESLintTesterV9({
8334
+ languageOptions: {
8335
+ ...languageOptionsV9,
8336
+ parser: require('@typescript-eslint/parser-v4'),
8337
+ },
8338
+ }).run(
8339
+ 'eslint: v9, parser: @typescript-eslint/parser@4.x',
8340
+ ReactHooksESLintRule,
8341
+ {
8342
+ valid: [
8343
+ ...testsTypescriptEslintParserV4.valid,
8344
+ ...testsTypescriptEslintParser.valid,
8345
+ ],
8346
+ invalid: [
8347
+ ...testsTypescriptEslintParserV4.invalid,
8348
+ ...testsTypescriptEslintParser.invalid,
8349
+ ],
8350
+ }
8351
+ );
8352
+
8353
+ new ESLintTesterV7({
8354
parser: require.resolve('@typescript-eslint/parser-v5'),
8287
- parserOptions,
8288
- }).run('parser: @typescript-eslint/parser@^5.0.0-0', ReactHooksESLintRule, {
8289
- valid: [
8290
- ...testsTypescriptEslintParserV4.valid,
8291
- ...testsTypescriptEslintParser.valid,
8292
- ],
8293
- invalid: [
8294
- ...testsTypescriptEslintParserV4.invalid,
8295
- ...testsTypescriptEslintParser.invalid,
8296
- ],
8297
- });
8355
+ parserOptions: parserOptionsV7,
8356
+ }).run(
8357
+ 'eslint: v7, parser: @typescript-eslint/parser@^5.0.0-0',
8358
+ ReactHooksESLintRule,
8359
+ {
8360
+ valid: [
8361
+ ...testsTypescriptEslintParserV4.valid,
8362
+ ...testsTypescriptEslintParser.valid,
8363
+ ],
8364
+ invalid: [
8365
+ ...testsTypescriptEslintParserV4.invalid,
8366
+ ...testsTypescriptEslintParser.invalid,
8367
+ ],
8368
+ }
8369
+ );
8370
+
8371
+ new ESLintTesterV9({
8372
+ languageOptions: {
8373
+ ...languageOptionsV9,
8374
+ parser: require('@typescript-eslint/parser-v5'),
8375
+ },
8376
+ }).run(
8377
+ 'eslint: v9, parser: @typescript-eslint/parser@^5.0.0-0',
8378
+ ReactHooksESLintRule,
8379
+ {
8380
+ valid: [
8381
+ ...testsTypescriptEslintParserV4.valid,
8382
+ ...testsTypescriptEslintParser.valid,
8383
+ ],
8384
+ invalid: [
8385
+ ...testsTypescriptEslintParserV4.invalid,
8386
+ ...testsTypescriptEslintParser.invalid,
8387
+ ],
8388
+ }
8389
+ );
8390
});
packages/eslint-plugin-react-hooks/__tests__/ESLintRulesOfHooks-test.js
+22
-11
@@ -3,22 +3,18 @@
3
*
4
* This source code is licensed under the MIT license found in the
5
* LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @jest-environment node
8
*/
9
10
'use strict';
11
10
-const ESLintTester = require('eslint').RuleTester;
12
+const ESLintTesterV7 = require('eslint-v7').RuleTester;
13
+const ESLintTesterV9 = require('eslint-v9').RuleTester;
14
const ReactHooksESLintPlugin = require('eslint-plugin-react-hooks');
15
+const BabelEslintParser = require('@babel/eslint-parser');
16
const ReactHooksESLintRule = ReactHooksESLintPlugin.rules['rules-of-hooks'];
17
14
-ESLintTester.setDefaultConfig({
15
- parser: require.resolve('babel-eslint'),
16
- parserOptions: {
17
- ecmaVersion: 6,
18
- sourceType: 'module',
19
- },
20
-});
21
-
18
/**
19
* A string template tag that removes padding from the left side of multi-line strings
20
* @param {Array} strings array of code strings (only one expected)
@@ -1461,5 +1457,20 @@ if (!process.env.CI) {
1457
tests.invalid = tests.invalid.filter(predicate);
1458
}
1459
1464
-const eslintTester = new ESLintTester();
1465
-eslintTester.run('react-hooks', ReactHooksESLintRule, tests);
1460
+describe('rules-of-hooks/rules-of-hooks', () => {
1461
+ new ESLintTesterV7({
1462
+ parser: require.resolve('babel-eslint'),
1463
+ parserOptions: {
1464
+ ecmaVersion: 6,
1465
+ sourceType: 'module',
1466
+ },
1467
+ }).run('eslint: v7', ReactHooksESLintRule, tests);
1468
+
1469
+ new ESLintTesterV9({
1470
+ languageOptions: {
1471
+ parser: BabelEslintParser,
1472
+ ecmaVersion: 6,
1473
+ sourceType: 'module',
1474
+ },
1475
+ }).run('eslint: v9', ReactHooksESLintRule, tests);
1476
+});
packages/eslint-plugin-react-hooks/package.json
+4
-2
@@ -28,7 +28,7 @@
28
},
29
"homepage": "https://react.dev/",
30
"peerDependencies": {
31
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
31
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
32
},
33
"devDependencies": {
34
"@babel/eslint-parser": "^7.11.4",
@@ -36,6 +36,8 @@
36
"@typescript-eslint/parser-v3": "npm:@typescript-eslint/parser@^3.10.0",
37
"@typescript-eslint/parser-v4": "npm:@typescript-eslint/parser@^4.1.0",
38
"@typescript-eslint/parser-v5": "npm:@typescript-eslint/parser@^5.0.0-0",
39
- "babel-eslint": "^10.0.3"
39
+ "babel-eslint": "^10.0.3",
40
+ "eslint-v7": "npm:eslint@^7.7.0",
41
+ "eslint-v9": "npm:eslint@^9.0.0"
42
}
43
}
packages/eslint-plugin-react-hooks/src/ExhaustiveDeps.js
+33
-10
@@ -67,6 +67,29 @@ export default {
67
context.report(problem);
68
}
69
70
+ /**
71
+ * SourceCode#getText that also works down to ESLint 3.0.0
72
+ */
73
+ const getSource =
74
+ typeof context.getSource === 'function'
75
+ ? node => {
76
+ return context.getSource(node);
77
+ }
78
+ : node => {
79
+ return context.sourceCode.getText(node);
80
+ };
81
+ /**
82
+ * SourceCode#getScope that also works down to ESLint 3.0.0
83
+ */
84
+ const getScope =
85
+ typeof context.getScope === 'function'
86
+ ? () => {
87
+ return context.getScope();
88
+ }
89
+ : node => {
90
+ return context.sourceCode.getScope(node);
91
+ };
92
+
93
const scopeManager = context.getSourceCode().scopeManager;
94
95
// Should be shared between visitors.
@@ -526,11 +549,11 @@ export default {
549
node: writeExpr,
550
message:
551
`Assignments to the '${key}' variable from inside React Hook ` +
529
- `${context.getSource(reactiveHook)} will be lost after each ` +
552
+ `${getSource(reactiveHook)} will be lost after each ` +
553
`render. To preserve the value over time, store it in a useRef ` +
554
`Hook and keep the mutable value in the '.current' property. ` +
555
`Otherwise, you can move this variable directly inside ` +
533
- `${context.getSource(reactiveHook)}.`,
556
+ `${getSource(reactiveHook)}.`,
557
});
558
}
559
@@ -630,7 +653,7 @@ export default {
653
reportProblem({
654
node: declaredDependenciesNode,
655
message:
633
- `React Hook ${context.getSource(reactiveHook)} was passed a ` +
656
+ `React Hook ${getSource(reactiveHook)} was passed a ` +
657
'dependency list that is not an array literal. This means we ' +
658
"can't statically verify whether you've passed the correct " +
659
'dependencies.',
@@ -650,7 +673,7 @@ export default {
673
reportProblem({
674
node: declaredDependencyNode,
675
message:
653
- `React Hook ${context.getSource(reactiveHook)} has a spread ` +
676
+ `React Hook ${getSource(reactiveHook)} has a spread ` +
677
"element in its dependency array. This means we can't " +
678
"statically verify whether you've passed the " +
679
'correct dependencies.',
@@ -662,12 +685,12 @@ export default {
685
node: declaredDependencyNode,
686
message:
687
'Functions returned from `useEffectEvent` must not be included in the dependency array. ' +
665
- `Remove \`${context.getSource(
688
+ `Remove \`${getSource(
689
declaredDependencyNode,
690
)}\` from the list.`,
691
suggest: [
692
{
670
- desc: `Remove the dependency \`${context.getSource(
693
+ desc: `Remove the dependency \`${getSource(
694
declaredDependencyNode,
695
)}\``,
696
fix(fixer) {
@@ -708,7 +731,7 @@ export default {
731
reportProblem({
732
node: declaredDependencyNode,
733
message:
711
- `React Hook ${context.getSource(reactiveHook)} has a ` +
734
+ `React Hook ${getSource(reactiveHook)} has a ` +
735
`complex expression in the dependency array. ` +
736
'Extract it to a separate variable so it can be statically checked.',
737
});
@@ -978,7 +1001,7 @@ export default {
1001
` However, 'props' will change when *any* prop changes, so the ` +
1002
`preferred fix is to destructure the 'props' object outside of ` +
1003
`the ${reactiveHookName} call and refer to those specific props ` +
981
- `inside ${context.getSource(reactiveHook)}.`;
1004
+ `inside ${getSource(reactiveHook)}.`;
1005
}
1006
}
1007
@@ -1128,7 +1151,7 @@ export default {
1151
reportProblem({
1152
node: declaredDependenciesNode,
1153
message:
1131
- `React Hook ${context.getSource(reactiveHook)} has ` +
1154
+ `React Hook ${getSource(reactiveHook)} has ` +
1155
// To avoid a long message, show the next actionable item.
1156
(getWarningMessage(missingDependencies, 'a', 'missing', 'include') ||
1157
getWarningMessage(
@@ -1250,7 +1273,7 @@ export default {
1273
return; // Handled
1274
}
1275
// We'll do our best effort to find it, complain otherwise.
1253
- const variable = context.getScope().set.get(callback.name);
1276
+ const variable = getScope(callback).set.get(callback.name);
1277
if (variable == null || variable.defs == null) {
1278
// If it's not in scope, we don't care.
1279
return; // Handled
packages/eslint-plugin-react-hooks/src/RulesOfHooks.js
+34
-11
@@ -148,6 +148,29 @@ export default {
148
}
149
}
150
151
+ /**
152
+ * SourceCode#getText that also works down to ESLint 3.0.0
153
+ */
154
+ const getSource =
155
+ typeof context.getSource === 'function'
156
+ ? node => {
157
+ return context.getSource(node);
158
+ }
159
+ : node => {
160
+ return context.sourceCode.getText(node);
161
+ };
162
+ /**
163
+ * SourceCode#getScope that also works down to ESLint 3.0.0
164
+ */
165
+ const getScope =
166
+ typeof context.getScope === 'function'
167
+ ? () => {
168
+ return context.getScope();
169
+ }
170
+ : node => {
171
+ return context.sourceCode.getScope(node);
172
+ };
173
+
174
return {
175
// Maintain code segment path stack as we traverse.
176
onCodePathSegmentStart: segment => codePathSegmentStack.push(segment),
@@ -466,7 +489,7 @@ export default {
489
context.report({
490
node: hook,
491
message:
469
- `React Hook "${context.getSource(hook)}" may be executed ` +
492
+ `React Hook "${getSource(hook)}" may be executed ` +
493
'more than once. Possibly because it is called in a loop. ' +
494
'React Hooks must be called in the exact same order in ' +
495
'every component render.',
@@ -485,7 +508,7 @@ export default {
508
context.report({
509
node: hook,
510
message:
488
- `React Hook "${context.getSource(hook)}" cannot be ` +
511
+ `React Hook "${getSource(hook)}" cannot be ` +
512
'called in an async function.',
513
});
514
}
@@ -500,7 +523,7 @@ export default {
523
!isUseIdentifier(hook) // `use(...)` can be called conditionally.
524
) {
525
const message =
503
- `React Hook "${context.getSource(hook)}" is called ` +
526
+ `React Hook "${getSource(hook)}" is called ` +
527
'conditionally. React Hooks must be called in the exact ' +
528
'same order in every component render.' +
529
(possiblyHasEarlyReturn
@@ -517,15 +540,15 @@ export default {
540
) {
541
// Custom message for hooks inside a class
542
const message =
520
- `React Hook "${context.getSource(hook)}" cannot be called ` +
543
+ `React Hook "${getSource(hook)}" cannot be called ` +
544
'in a class component. React Hooks must be called in a ' +
545
'React function component or a custom React Hook function.';
546
context.report({node: hook, message});
547
} else if (codePathFunctionName) {
548
// Custom message if we found an invalid function name.
549
const message =
527
- `React Hook "${context.getSource(hook)}" is called in ` +
528
- `function "${context.getSource(codePathFunctionName)}" ` +
550
+ `React Hook "${getSource(hook)}" is called in ` +
551
+ `function "${getSource(codePathFunctionName)}" ` +
552
'that is neither a React function component nor a custom ' +
553
'React Hook function.' +
554
' React component names must start with an uppercase letter.' +
@@ -534,7 +557,7 @@ export default {
557
} else if (codePathNode.type === 'Program') {
558
// These are dangerous if you have inline requires enabled.
559
const message =
537
- `React Hook "${context.getSource(hook)}" cannot be called ` +
560
+ `React Hook "${getSource(hook)}" cannot be called ` +
561
'at the top level. React Hooks must be called in a ' +
562
'React function component or a custom React Hook function.';
563
context.report({node: hook, message});
@@ -547,7 +570,7 @@ export default {
570
// `use(...)` can be called in callbacks.
571
if (isSomewhereInsideComponentOrHook && !isUseIdentifier(hook)) {
572
const message =
550
- `React Hook "${context.getSource(hook)}" cannot be called ` +
573
+ `React Hook "${getSource(hook)}" cannot be called ` +
574
'inside a callback. React Hooks must be called in a ' +
575
'React function component or a custom React Hook function.';
576
context.report({node: hook, message});
@@ -600,7 +623,7 @@ export default {
623
context.report({
624
node,
625
message:
603
- `\`${context.getSource(
626
+ `\`${getSource(
627
node,
628
)}\` is a function created with React Hook "useEffectEvent", and can only be called from ` +
629
'the same component. They cannot be assigned to variables or passed down.',
@@ -617,14 +640,14 @@ export default {
640
FunctionDeclaration(node) {
641
// function MyComponent() { const onClick = useEffectEvent(...) }
642
if (isInsideComponentOrHook(node)) {
620
- recordAllUseEffectEventFunctions(context.getScope());
643
+ recordAllUseEffectEventFunctions(getScope(node));
644
}
645
},
646
647
ArrowFunctionExpression(node) {
648
// const MyComponent = () => { const onClick = useEffectEvent(...) }
649
if (isInsideComponentOrHook(node)) {
627
- recordAllUseEffectEventFunctions(context.getScope());
650
+ recordAllUseEffectEventFunctions(getScope(node));
651
}
652
},
653
};
yarn.lock
+382
-6
@@ -2,6 +2,11 @@
2
# yarn lockfile v1
3
4
5
+"@aashutoshrathi/word-wrap@^1.2.3":
6
+ version "1.2.6"
7
+ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
8
+ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
9
+
10
"@ampproject/remapping@^2.1.0":
11
version "2.2.0"
12
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
@@ -2130,6 +2135,18 @@
2135
opn "5.3.0"
2136
react "^16.13.1"
2137
2138
+"@eslint-community/eslint-utils@^4.2.0":
2139
+ version "4.4.0"
2140
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
2141
+ integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
2142
+ dependencies:
2143
+ eslint-visitor-keys "^3.3.0"
2144
+
2145
+"@eslint-community/regexpp@^4.6.1":
2146
+ version "4.10.0"
2147
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
2148
+ integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
2149
+
2150
"@eslint/eslintrc@^0.4.3":
2151
version "0.4.3"
2152
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
@@ -2145,6 +2162,26 @@
2162
minimatch "^3.0.4"
2163
strip-json-comments "^3.1.1"
2164
2165
+"@eslint/eslintrc@^3.0.2":
2166
+ version "3.0.2"
2167
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.0.2.tgz#36180f8e85bf34d2fe3ccc2261e8e204a411ab4e"
2168
+ integrity sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==
2169
+ dependencies:
2170
+ ajv "^6.12.4"
2171
+ debug "^4.3.2"
2172
+ espree "^10.0.1"
2173
+ globals "^14.0.0"
2174
+ ignore "^5.2.0"
2175
+ import-fresh "^3.2.1"
2176
+ js-yaml "^4.1.0"
2177
+ minimatch "^3.1.2"
2178
+ strip-json-comments "^3.1.1"
2179
+
2180
+"@eslint/js@9.0.0":
2181
+ version "9.0.0"
2182
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.0.0.tgz#1a9e4b4c96d8c7886e0110ed310a0135144a1691"
2183
+ integrity sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==
2184
+
2185
"@gitbeaker/core@^21.7.0":
2186
version "21.7.0"
2187
resolved "https://registry.yarnpkg.com/@gitbeaker/core/-/core-21.7.0.tgz#fcf7a12915d39f416e3f316d0a447a814179b8e5"
@@ -2175,6 +2212,15 @@
2212
query-string "^6.12.1"
2213
xcase "^2.0.1"
2214
2215
+"@humanwhocodes/config-array@^0.12.3":
2216
+ version "0.12.3"
2217
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.12.3.tgz#a6216d90f81a30bedd1d4b5d799b47241f318072"
2218
+ integrity sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==
2219
+ dependencies:
2220
+ "@humanwhocodes/object-schema" "^2.0.3"
2221
+ debug "^4.3.1"
2222
+ minimatch "^3.0.5"
2223
+
2224
"@humanwhocodes/config-array@^0.5.0":
2225
version "0.5.0"
2226
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
@@ -2184,11 +2230,21 @@
2230
debug "^4.1.1"
2231
minimatch "^3.0.4"
2232
2233
+"@humanwhocodes/module-importer@^1.0.1":
2234
+ version "1.0.1"
2235
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
2236
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
2237
+
2238
"@humanwhocodes/object-schema@^1.2.0":
2239
version "1.2.1"
2240
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
2241
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
2242
2243
+"@humanwhocodes/object-schema@^2.0.3":
2244
+ version "2.0.3"
2245
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
2246
+ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
2247
+
2248
"@isaacs/cliui@^8.0.2":
2249
version "8.0.2"
2250
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -2510,11 +2566,24 @@
2566
"@nodelib/fs.stat" "2.0.3"
2567
run-parallel "^1.1.9"
2568
2569
+"@nodelib/fs.scandir@2.1.5":
2570
+ version "2.1.5"
2571
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
2572
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
2573
+ dependencies:
2574
+ "@nodelib/fs.stat" "2.0.5"
2575
+ run-parallel "^1.1.9"
2576
+
2577
"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
2578
version "2.0.3"
2579
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
2580
integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
2581
2582
+"@nodelib/fs.stat@2.0.5":
2583
+ version "2.0.5"
2584
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
2585
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
2586
+
2587
"@nodelib/fs.walk@^1.2.3":
2588
version "1.2.4"
2589
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
@@ -2523,6 +2592,14 @@
2592
"@nodelib/fs.scandir" "2.1.3"
2593
fastq "^1.6.0"
2594
2595
+"@nodelib/fs.walk@^1.2.8":
2596
+ version "1.2.8"
2597
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
2598
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
2599
+ dependencies:
2600
+ "@nodelib/fs.scandir" "2.1.5"
2601
+ fastq "^1.6.0"
2602
+
2603
"@octokit/auth-token@^2.4.4":
2604
version "2.5.0"
2605
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36"
@@ -3657,7 +3734,7 @@ acorn-jsx@^5.0.0, acorn-jsx@^5.2.0:
3734
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
3735
integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
3736
3660
-acorn-jsx@^5.3.1:
3737
+acorn-jsx@^5.3.1, acorn-jsx@^5.3.2:
3738
version "5.3.2"
3739
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
3740
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
@@ -3689,6 +3766,11 @@ acorn@^8.1.0, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.1:
3766
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
3767
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
3768
3769
+acorn@^8.11.3:
3770
+ version "8.11.3"
3771
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
3772
+ integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
3773
+
3774
adbkit-logcat@^1.1.0:
3775
version "1.1.0"
3776
resolved "https://registry.yarnpkg.com/adbkit-logcat/-/adbkit-logcat-1.1.0.tgz#01d7f9b0cef9093a30bcb3b007efff301508962f"
@@ -4094,6 +4176,11 @@ argparse@^1.0.7:
4176
dependencies:
4177
sprintf-js "~1.0.2"
4178
4179
+argparse@^2.0.1:
4180
+ version "2.0.1"
4181
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
4182
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
4183
+
4184
arr-diff@^1.0.1:
4185
version "1.1.0"
4186
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a"
@@ -6212,6 +6299,13 @@ debug@^4.3.1:
6299
dependencies:
6300
ms "2.1.2"
6301
6302
+debug@^4.3.2:
6303
+ version "4.3.4"
6304
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
6305
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
6306
+ dependencies:
6307
+ ms "2.1.2"
6308
+
6309
decamelize@3.2.0:
6310
version "3.2.0"
6311
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-3.2.0.tgz#84b8e8f4f8c579f938e35e2cc7024907e0090851"
@@ -7063,6 +7157,14 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3:
7157
esrecurse "^4.1.0"
7158
estraverse "^4.1.1"
7159
7160
+eslint-scope@^8.0.1:
7161
+ version "8.0.1"
7162
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc"
7163
+ integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==
7164
+ dependencies:
7165
+ esrecurse "^4.3.0"
7166
+ estraverse "^5.2.0"
7167
+
7168
eslint-utils@^1.3.1:
7169
version "1.4.3"
7170
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
@@ -7077,6 +7179,92 @@ eslint-utils@^2.0.0, eslint-utils@^2.1.0:
7179
dependencies:
7180
eslint-visitor-keys "^1.1.0"
7181
7182
+"eslint-v7@npm:eslint@^7.7.0":
7183
+ version "7.32.0"
7184
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
7185
+ integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
7186
+ dependencies:
7187
+ "@babel/code-frame" "7.12.11"
7188
+ "@eslint/eslintrc" "^0.4.3"
7189
+ "@humanwhocodes/config-array" "^0.5.0"
7190
+ ajv "^6.10.0"
7191
+ chalk "^4.0.0"
7192
+ cross-spawn "^7.0.2"
7193
+ debug "^4.0.1"
7194
+ doctrine "^3.0.0"
7195
+ enquirer "^2.3.5"
7196
+ escape-string-regexp "^4.0.0"
7197
+ eslint-scope "^5.1.1"
7198
+ eslint-utils "^2.1.0"
7199
+ eslint-visitor-keys "^2.0.0"
7200
+ espree "^7.3.1"
7201
+ esquery "^1.4.0"
7202
+ esutils "^2.0.2"
7203
+ fast-deep-equal "^3.1.3"
7204
+ file-entry-cache "^6.0.1"
7205
+ functional-red-black-tree "^1.0.1"
7206
+ glob-parent "^5.1.2"
7207
+ globals "^13.6.0"
7208
+ ignore "^4.0.6"
7209
+ import-fresh "^3.0.0"
7210
+ imurmurhash "^0.1.4"
7211
+ is-glob "^4.0.0"
7212
+ js-yaml "^3.13.1"
7213
+ json-stable-stringify-without-jsonify "^1.0.1"
7214
+ levn "^0.4.1"
7215
+ lodash.merge "^4.6.2"
7216
+ minimatch "^3.0.4"
7217
+ natural-compare "^1.4.0"
7218
+ optionator "^0.9.1"
7219
+ progress "^2.0.0"
7220
+ regexpp "^3.1.0"
7221
+ semver "^7.2.1"
7222
+ strip-ansi "^6.0.0"
7223
+ strip-json-comments "^3.1.0"
7224
+ table "^6.0.9"
7225
+ text-table "^0.2.0"
7226
+ v8-compile-cache "^2.0.3"
7227
+
7228
+"eslint-v9@npm:eslint@^9.0.0":
7229
+ version "9.0.0"
7230
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.0.0.tgz#6270548758e390343f78c8afd030566d86927d40"
7231
+ integrity sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==
7232
+ dependencies:
7233
+ "@eslint-community/eslint-utils" "^4.2.0"
7234
+ "@eslint-community/regexpp" "^4.6.1"
7235
+ "@eslint/eslintrc" "^3.0.2"
7236
+ "@eslint/js" "9.0.0"
7237
+ "@humanwhocodes/config-array" "^0.12.3"
7238
+ "@humanwhocodes/module-importer" "^1.0.1"
7239
+ "@nodelib/fs.walk" "^1.2.8"
7240
+ ajv "^6.12.4"
7241
+ chalk "^4.0.0"
7242
+ cross-spawn "^7.0.2"
7243
+ debug "^4.3.2"
7244
+ escape-string-regexp "^4.0.0"
7245
+ eslint-scope "^8.0.1"
7246
+ eslint-visitor-keys "^4.0.0"
7247
+ espree "^10.0.1"
7248
+ esquery "^1.4.2"
7249
+ esutils "^2.0.2"
7250
+ fast-deep-equal "^3.1.3"
7251
+ file-entry-cache "^8.0.0"
7252
+ find-up "^5.0.0"
7253
+ glob-parent "^6.0.2"
7254
+ graphemer "^1.4.0"
7255
+ ignore "^5.2.0"
7256
+ imurmurhash "^0.1.4"
7257
+ is-glob "^4.0.0"
7258
+ is-path-inside "^3.0.3"
7259
+ json-stable-stringify-without-jsonify "^1.0.1"
7260
+ levn "^0.4.1"
7261
+ lodash.merge "^4.6.2"
7262
+ minimatch "^3.1.2"
7263
+ natural-compare "^1.4.0"
7264
+ optionator "^0.9.3"
7265
+ strip-ansi "^6.0.1"
7266
+ text-table "^0.2.0"
7267
+
7268
eslint-visitor-keys@1.2.0:
7269
version "1.2.0"
7270
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa"
@@ -7102,6 +7290,16 @@ eslint-visitor-keys@^3.0.0:
7290
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz#e32e99c6cdc2eb063f204eda5db67bfe58bb4186"
7291
integrity sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==
7292
7293
+eslint-visitor-keys@^3.3.0:
7294
+ version "3.4.3"
7295
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
7296
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
7297
+
7298
+eslint-visitor-keys@^4.0.0:
7299
+ version "4.0.0"
7300
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
7301
+ integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
7302
+
7303
eslint@5.16.0:
7304
version "5.16.0"
7305
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
@@ -7199,6 +7397,15 @@ espree@6.2.1:
7397
acorn-jsx "^5.2.0"
7398
eslint-visitor-keys "^1.1.0"
7399
7400
+espree@^10.0.1:
7401
+ version "10.0.1"
7402
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f"
7403
+ integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==
7404
+ dependencies:
7405
+ acorn "^8.11.3"
7406
+ acorn-jsx "^5.3.2"
7407
+ eslint-visitor-keys "^4.0.0"
7408
+
7409
espree@^5.0.1:
7410
version "5.0.1"
7411
resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
@@ -7236,6 +7443,13 @@ esquery@^1.4.0:
7443
dependencies:
7444
estraverse "^5.1.0"
7445
7446
+esquery@^1.4.2:
7447
+ version "1.5.0"
7448
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
7449
+ integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
7450
+ dependencies:
7451
+ estraverse "^5.1.0"
7452
+
7453
esrecurse@^4.1.0:
7454
version "4.2.1"
7455
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
@@ -7736,6 +7950,13 @@ file-entry-cache@^6.0.1:
7950
dependencies:
7951
flat-cache "^3.0.4"
7952
7953
+file-entry-cache@^8.0.0:
7954
+ version "8.0.0"
7955
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
7956
+ integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
7957
+ dependencies:
7958
+ flat-cache "^4.0.0"
7959
+
7960
file-loader@^6.0.0:
7961
version "6.0.0"
7962
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f"
@@ -7883,6 +8104,14 @@ find-up@^4.0.0, find-up@^4.1.0:
8104
locate-path "^5.0.0"
8105
path-exists "^4.0.0"
8106
8107
+find-up@^5.0.0:
8108
+ version "5.0.0"
8109
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
8110
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
8111
+ dependencies:
8112
+ locate-path "^6.0.0"
8113
+ path-exists "^4.0.0"
8114
+
8115
find-versions@^3.0.0:
8116
version "3.2.0"
8117
resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e"
@@ -7958,6 +8187,14 @@ flat-cache@^3.0.4:
8187
flatted "^3.1.0"
8188
rimraf "^3.0.2"
8189
8190
+flat-cache@^4.0.0:
8191
+ version "4.0.1"
8192
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
8193
+ integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
8194
+ dependencies:
8195
+ flatted "^3.2.9"
8196
+ keyv "^4.5.4"
8197
+
8198
flatstr@^1.0.12:
8199
version "1.0.12"
8200
resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931"
@@ -7973,6 +8210,11 @@ flatted@^3.1.0:
8210
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
8211
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
8212
8213
+flatted@^3.2.9:
8214
+ version "3.3.1"
8215
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
8216
+ integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
8217
+
8218
flow-bin@^0.232.0:
8219
version "0.232.0"
8220
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.232.0.tgz#80587406cbb3a74577151ad27c6058b2a468c215"
@@ -8132,6 +8374,11 @@ function-bind@^1.1.1:
8374
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
8375
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
8376
8377
+function-bind@^1.1.2:
8378
+ version "1.1.2"
8379
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
8380
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
8381
+
8382
functional-red-black-tree@^1.0.1:
8383
version "1.0.1"
8384
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
@@ -8289,6 +8536,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2:
8536
dependencies:
8537
is-glob "^4.0.1"
8538
8539
+glob-parent@^6.0.2:
8540
+ version "6.0.2"
8541
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
8542
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
8543
+ dependencies:
8544
+ is-glob "^4.0.3"
8545
+
8546
glob-stream@^6.1.0:
8547
version "6.1.0"
8548
resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4"
@@ -8393,6 +8647,11 @@ globals@^13.6.0, globals@^13.9.0:
8647
dependencies:
8648
type-fest "^0.20.2"
8649
8650
+globals@^14.0.0:
8651
+ version "14.0.0"
8652
+ resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
8653
+ integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
8654
+
8655
globalthis@^1.0.1:
8656
version "1.0.1"
8657
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9"
@@ -8583,6 +8842,11 @@ graceful-fs@^4.2.9:
8842
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
8843
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
8844
8845
+graphemer@^1.4.0:
8846
+ version "1.4.0"
8847
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
8848
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
8849
+
8850
growly@^1.3.0:
8851
version "1.3.0"
8852
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
@@ -8711,6 +8975,13 @@ has@^1.0.1, has@^1.0.3:
8975
dependencies:
8976
function-bind "^1.1.1"
8977
8978
+hasown@^2.0.0:
8979
+ version "2.0.2"
8980
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
8981
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
8982
+ dependencies:
8983
+ function-bind "^1.1.2"
8984
+
8985
hermes-eslint@^0.20.1:
8986
version "0.20.1"
8987
resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.20.1.tgz#4a731b47a6d169bbd4514aaa74bd812fd90f3554"
@@ -8987,6 +9258,11 @@ ignore@^5.1.4:
9258
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
9259
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
9260
9261
+ignore@^5.2.0:
9262
+ version "5.3.1"
9263
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
9264
+ integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
9265
+
9266
imagemin-gifsicle@^7.0.0:
9267
version "7.0.0"
9268
resolved "https://registry.yarnpkg.com/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz#1a7ab136a144c4678657ba3b6c412f80805d26b0"
@@ -9303,6 +9579,13 @@ is-ci@^2.0.0:
9579
dependencies:
9580
ci-info "^2.0.0"
9581
9582
+is-core-module@^2.13.0:
9583
+ version "2.13.1"
9584
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
9585
+ integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
9586
+ dependencies:
9587
+ hasown "^2.0.0"
9588
+
9589
is-core-module@^2.9.0:
9590
version "2.11.0"
9591
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
@@ -9415,6 +9698,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
9698
dependencies:
9699
is-extglob "^2.1.1"
9700
9701
+is-glob@^4.0.3:
9702
+ version "4.0.3"
9703
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
9704
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
9705
+ dependencies:
9706
+ is-extglob "^2.1.1"
9707
+
9708
is-installed-globally@^0.1.0:
9709
version "0.1.0"
9710
resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
@@ -9515,6 +9805,11 @@ is-path-inside@^3.0.1:
9805
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
9806
integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
9807
9808
+is-path-inside@^3.0.3:
9809
+ version "3.0.3"
9810
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
9811
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
9812
+
9813
is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
9814
version "1.1.0"
9815
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
@@ -10322,6 +10617,13 @@ js-yaml@^3.13.1:
10617
argparse "^1.0.7"
10618
esprima "^4.0.0"
10619
10620
+js-yaml@^4.1.0:
10621
+ version "4.1.0"
10622
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
10623
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
10624
+ dependencies:
10625
+ argparse "^2.0.1"
10626
+
10627
jsbn@~0.1.0:
10628
version "0.1.1"
10629
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -10567,6 +10869,13 @@ keyv@^4.0.0:
10869
dependencies:
10870
json-buffer "3.0.1"
10871
10872
+keyv@^4.5.4:
10873
+ version "4.5.4"
10874
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
10875
+ integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
10876
+ dependencies:
10877
+ json-buffer "3.0.1"
10878
+
10879
kind-of@^1.1.0:
10880
version "1.1.0"
10881
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44"
@@ -10748,6 +11057,13 @@ locate-path@^5.0.0:
11057
dependencies:
11058
p-locate "^4.1.0"
11059
11060
+locate-path@^6.0.0:
11061
+ version "6.0.0"
11062
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
11063
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
11064
+ dependencies:
11065
+ p-locate "^5.0.0"
11066
+
11067
lodash.defaults@^4.2.0:
11068
version "4.2.0"
11069
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
@@ -11271,6 +11587,13 @@ minimalistic-assert@^1.0.0:
11587
dependencies:
11588
brace-expansion "^1.1.7"
11589
11590
+minimatch@^3.0.5, minimatch@^3.1.2:
11591
+ version "3.1.2"
11592
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
11593
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
11594
+ dependencies:
11595
+ brace-expansion "^1.1.7"
11596
+
11597
minimatch@^5.0.1:
11598
version "5.1.6"
11599
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
@@ -11881,6 +12204,18 @@ optionator@^0.9.1:
12204
type-check "^0.4.0"
12205
word-wrap "^1.2.3"
12206
12207
+optionator@^0.9.3:
12208
+ version "0.9.3"
12209
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
12210
+ integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
12211
+ dependencies:
12212
+ "@aashutoshrathi/word-wrap" "^1.2.3"
12213
+ deep-is "^0.1.3"
12214
+ fast-levenshtein "^2.0.6"
12215
+ levn "^0.4.1"
12216
+ prelude-ls "^1.2.1"
12217
+ type-check "^0.4.0"
12218
+
12219
optipng-bin@^6.0.0:
12220
version "6.0.0"
12221
resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-6.0.0.tgz#376120fa79d5e71eee2f524176efdd3a5eabd316"
@@ -12015,7 +12350,7 @@ p-limit@^2.1.0, p-limit@^2.2.0:
12350
dependencies:
12351
p-try "^2.0.0"
12352
12018
-p-limit@^3.1.0:
12353
+p-limit@^3.0.2, p-limit@^3.1.0:
12354
version "3.1.0"
12355
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
12356
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
@@ -12036,6 +12371,13 @@ p-locate@^4.1.0:
12371
dependencies:
12372
p-limit "^2.2.0"
12373
12374
+p-locate@^5.0.0:
12375
+ version "5.0.0"
12376
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
12377
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
12378
+ dependencies:
12379
+ p-limit "^3.0.2"
12380
+
12381
p-map-series@^1.0.0:
12382
version "1.0.0"
12383
resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca"
@@ -13510,13 +13852,22 @@ resolve.exports@^2.0.0:
13852
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e"
13853
integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==
13854
13513
-resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2:
13855
+resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2:
13856
version "1.14.2"
13857
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2"
13858
integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==
13859
dependencies:
13860
path-parse "^1.0.6"
13861
13862
+resolve@^1.12.0:
13863
+ version "1.22.8"
13864
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
13865
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
13866
+ dependencies:
13867
+ is-core-module "^2.13.0"
13868
+ path-parse "^1.0.7"
13869
+ supports-preserve-symlinks-flag "^1.0.0"
13870
+
13871
resolve@^1.20.0, resolve@^1.22.1:
13872
version "1.22.1"
13873
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
@@ -14555,7 +14906,7 @@ string-natural-compare@^3.0.1:
14906
resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4"
14907
integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==
14908
14558
-"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.2.3:
14909
+"string-width-cjs@npm:string-width@^4.2.0":
14910
version "4.2.3"
14911
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
14912
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -14590,6 +14941,15 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
14941
is-fullwidth-code-point "^3.0.0"
14942
strip-ansi "^6.0.0"
14943
14944
+string-width@^4.2.3:
14945
+ version "4.2.3"
14946
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
14947
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
14948
+ dependencies:
14949
+ emoji-regex "^8.0.0"
14950
+ is-fullwidth-code-point "^3.0.0"
14951
+ strip-ansi "^6.0.1"
14952
+
14953
string-width@^5.0.1, string-width@^5.1.2:
14954
version "5.1.2"
14955
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -14650,7 +15010,7 @@ string_decoder@~1.1.1:
15010
dependencies:
15011
safe-buffer "~5.1.0"
15012
14653
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1:
15013
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
15014
version "6.0.1"
15015
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
15016
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -14685,6 +15045,13 @@ strip-ansi@^6.0.0:
15045
dependencies:
15046
ansi-regex "^5.0.0"
15047
15048
+strip-ansi@^6.0.1:
15049
+ version "6.0.1"
15050
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
15051
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
15052
+ dependencies:
15053
+ ansi-regex "^5.0.1"
15054
+
15055
strip-ansi@^7.0.1:
15056
version "7.1.0"
15057
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -16120,7 +16487,7 @@ workerize-loader@^2.0.2:
16487
dependencies:
16488
loader-utils "^2.0.0"
16489
16123
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
16490
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
16491
version "7.0.0"
16492
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
16493
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -16138,6 +16505,15 @@ wrap-ansi@^6.2.0:
16505
string-width "^4.1.0"
16506
strip-ansi "^6.0.0"
16507
16508
+wrap-ansi@^7.0.0:
16509
+ version "7.0.0"
16510
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
16511
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
16512
+ dependencies:
16513
+ ansi-styles "^4.0.0"
16514
+ string-width "^4.1.0"
16515
+ strip-ansi "^6.0.0"
16516
+
16517
wrap-ansi@^8.1.0:
16518
version "8.1.0"
16519
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"