@samitouri / QOS-React / commits / 6f18664b82

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"