From 410e292e3128805239a08fdc09088d6441b925cd Mon Sep 17 00:00:00 2001 From: Kristijan <470003+eldair@users.noreply.github.com> Date: Sat, 3 Feb 2024 12:18:11 +0100 Subject: [PATCH 01/28] Make chain breaking as similar to original prettier (js) as much as possible (#2320) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Removed chain break with more than 3 expressions * Added maxChainCallExpressionCountPHP option to control max calls in a chain * Added option to readme Updated description in options file * Added advance check for chain breaks * Reduced chain items count to 2 for complexity test Fixed array handling in complexity test * Func. name change * Removed comment * Style fix --------- Co-authored-by: Kristijan Novaković --- src/printer.mjs | 12 +- src/util.mjs | 74 ++++++++++ tests/call/__snapshots__/jsfmt.spec.mjs.snap | 19 +-- .../__snapshots__/jsfmt.spec.mjs.snap | 130 +++++++----------- tests/member_chain/break-multiple.php | 6 + .../parens/__snapshots__/jsfmt.spec.mjs.snap | 15 +- tests/print/__snapshots__/jsfmt.spec.mjs.snap | 5 +- tests/retif/__snapshots__/jsfmt.spec.mjs.snap | 8 +- .../return/__snapshots__/jsfmt.spec.mjs.snap | 28 +--- 9 files changed, 151 insertions(+), 146 deletions(-) diff --git a/src/printer.mjs b/src/printer.mjs index c822dce0e..8c7e8fbf3 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -36,6 +36,7 @@ import { getAncestorNode, isReferenceLikeNode, normalizeMagicMethodName, + isSimpleCallArgument, } from "./util.mjs"; const { @@ -508,9 +509,9 @@ function printMemberChain(path, options, print) { printIndentedGroup(groups.slice(shouldMerge ? 2 : 1)), ]; - const callExpressionCount = printedNodes.filter( - (tuple) => tuple.node.kind === "call" - ).length; + const callExpressions = printedNodes.filter((tuple) => + ["call", "new"].includes(tuple.node.kind) + ); // We don't want to print in one line if there's: // * A comment. @@ -519,7 +520,10 @@ function printMemberChain(path, options, print) { // If the last group is a function it's okay to inline if it fits. if ( hasComment || - callExpressionCount >= 3 || + (callExpressions.length > 2 && + callExpressions.some( + (exp) => !exp.node.arguments.every((arg) => isSimpleCallArgument(arg)) + )) || printedGroups.slice(0, -1).some(willBreak) ) { return group(expanded); diff --git a/src/util.mjs b/src/util.mjs index f54e9af8f..6890e7d9e 100644 --- a/src/util.mjs +++ b/src/util.mjs @@ -612,6 +612,79 @@ function normalizeMagicMethodName(name) { return name; } +/** + * @param {string[]} kindsArray + * @returns {(node: Node | Comment) => Boolean} + */ +function createTypeCheckFunction(kindsArray) { + const kinds = new Set(kindsArray); + return (node) => kinds.has(node?.kind); +} + +const isSingleWordType = createTypeCheckFunction([ + "variable", + "parameter", + "variadic", + "clone", + "cast", + "boolean", + "number", + "string", + "literal", + "nullkeyword", + "namedargument", + "variadicplaceholder", +]); + +const isArrayExpression = createTypeCheckFunction(["array"]); +const isCallOrNewExpression = createTypeCheckFunction(["call", "new"]); +const isArrowFuncExpression = createTypeCheckFunction(["arrowfunc"]); + +function getChainParts(node, prev = []) { + const parts = prev; + if (isCallOrNewExpression(node)) { + parts.push(node); + } + + if (!node.what) { + return parts; + } + + return getChainParts(node.what, parts); +} + +function isSimpleCallArgument(node, depth = 2) { + if (depth <= 0) { + return false; + } + + const isChildSimple = (child) => isSimpleCallArgument(child, depth - 1); + + if (isSingleWordType(node)) { + return true; + } + + if (isArrayExpression(node)) { + return node.items.every((x) => x === null || isChildSimple(x)); + } + + if (isCallOrNewExpression(node)) { + const parts = getChainParts(node); + return ( + parts.filter((node) => node.kind === "call").length <= depth && + parts.every((node) => node.arguments.every(isChildSimple)) + ); + } + + if (isArrowFuncExpression(node)) { + return ( + node.arguments.length <= depth && node.arguments.every(isChildSimple) + ); + } + + return false; +} + export { printNumber, getPrecedence, @@ -641,4 +714,5 @@ export { isDocNode, getAncestorNode, normalizeMagicMethodName, + isSimpleCallArgument, }; diff --git a/tests/call/__snapshots__/jsfmt.spec.mjs.snap b/tests/call/__snapshots__/jsfmt.spec.mjs.snap index a56a8dc36..94fbc34ed 100644 --- a/tests/call/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/call/__snapshots__/jsfmt.spec.mjs.snap @@ -705,18 +705,8 @@ $var = $this->foo()(); $var = ($this->foo->bar)(); $var = $this->foo->bar()(); $var = ($this->foo->bar->baz->foo->bar->baz)(); -$var = $this->foo() - ->bar() - ->baz() - ->foo() - ->bar() - ->baz()(); -$var = ($this->foo() - ->bar() - ->baz() - ->foo() - ->bar() - ->baz)(); +$var = $this->foo()->bar()->baz()->foo()->bar()->baz()(); +$var = ($this->foo()->bar()->baz()->foo()->bar()->baz)(); $var = $this["foo"](); $var = $this["foo"]["bar"](); $var = ($this::$foo)(); @@ -733,10 +723,7 @@ $var = ((["Foo", "bar"])->bar)(); $var = ($var->foo)()(); $var = ($var->foo)()(); $var = (($var->foo)()->bar)(); -$var = ((($var - ->foo)() - ->bar)() - ->baz)(); +$var = ((($var->foo)()->bar)()->baz)(); $obj = call('return new class($value) { diff --git a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap index eeaab35b3..5089bfdca 100644 --- a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap @@ -110,6 +110,12 @@ printWidth: 80 $object->foo()->bar()->baz(); +$object->foo()->bar()->baz()->foo()->bar()->baz(); + +$object->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz(); + +$object->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz(); + foo()->bar()->baz(); foo()->bar->baz(); @@ -117,15 +123,34 @@ foo()->bar->baz(); =====================================output===================================== foo()->bar()->baz(); + +$object->foo()->bar()->baz()->foo()->bar()->baz(); + +$object->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz(); + $object ->foo() ->bar() - ->baz(); - -foo() + ->baz() + ->foo() + ->bar() + ->baz() + ->foo() + ->bar() + ->baz() + ->foo() + ->bar() + ->baz() + ->foo() + ->bar() + ->baz() + ->foo() ->bar() ->baz(); +foo()->bar()->baz(); + foo()->bar->baz(); ================================================================================ @@ -191,10 +216,7 @@ $object[$valid ($a ? $b : $c)->d()->e(); -($a ? $b : $c) - ->d() - ->e() - ->f(); +($a ? $b : $c)->d()->e()->f(); ($valid ? $helper->responseBody($this->currentUser) @@ -436,12 +458,8 @@ $var = Foo::keys($items)->filter(function ($x) { return $x > 2; })->map(function two(); -one() - ->two() - ->three(); -one() - ->two->three() - ->four->five(); +one()->two()->three(); +one()->two->three()->four->five(); Route::prefix("api") ->middleware("api") @@ -476,9 +494,7 @@ $a->a()->b(); $a->a()->b(); $a->a()->b; $a->b->a(); -$a->b() - ->c() - ->d(); +$a->b()->c()->d(); $a->b->c->d; // should inline @@ -545,67 +561,19 @@ $foo->bar( "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" )()()()()(); -$brian->hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -$brian::$hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -$brian["hotel"] - ->orders() - ->ordered() - ->with("smith") - ->get(); -Foo::$hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -(new Foo())->hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -(clone $a)->hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); - -$var = $brian->hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -$var = $brian::$hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -$var = $brian["hotel"] - ->orders() - ->ordered() - ->with("smith") - ->get(); -$var = Foo::$hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -$var = (new Foo())->hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); -$var = (clone $a)->hotel - ->orders() - ->ordered() - ->with("smith") - ->get(); +$brian->hotel->orders()->ordered()->with("smith")->get(); +$brian::$hotel->orders()->ordered()->with("smith")->get(); +$brian["hotel"]->orders()->ordered()->with("smith")->get(); +Foo::$hotel->orders()->ordered()->with("smith")->get(); +(new Foo())->hotel->orders()->ordered()->with("smith")->get(); +(clone $a)->hotel->orders()->ordered()->with("smith")->get(); + +$var = $brian->hotel->orders()->ordered()->with("smith")->get(); +$var = $brian::$hotel->orders()->ordered()->with("smith")->get(); +$var = $brian["hotel"]->orders()->ordered()->with("smith")->get(); +$var = Foo::$hotel->orders()->ordered()->with("smith")->get(); +$var = (new Foo())->hotel->orders()->ordered()->with("smith")->get(); +$var = (clone $a)->hotel->orders()->ordered()->with("smith")->get(); $var = Foo::keys($items) ->filter(function ($x) { @@ -615,9 +583,11 @@ $var = Foo::keys($items) return $x * 2; }); -(new static(func_get_args()))->push($this)->each(function ($item) { - VarDumper::dump($item); -}); +(new static(func_get_args())) + ->push($this) + ->each(function ($item) { + VarDumper::dump($item); + }); (new static(func_get_args())) ->offset(10) ->push($this) diff --git a/tests/member_chain/break-multiple.php b/tests/member_chain/break-multiple.php index 642568abb..8bc7fbb7b 100644 --- a/tests/member_chain/break-multiple.php +++ b/tests/member_chain/break-multiple.php @@ -2,6 +2,12 @@ $object->foo()->bar()->baz(); +$object->foo()->bar()->baz()->foo()->bar()->baz(); + +$object->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz(); + +$object->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz()->foo()->bar()->baz(); + foo()->bar()->baz(); foo()->bar->baz(); diff --git a/tests/parens/__snapshots__/jsfmt.spec.mjs.snap b/tests/parens/__snapshots__/jsfmt.spec.mjs.snap index 72c1922ef..373b1853c 100644 --- a/tests/parens/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/parens/__snapshots__/jsfmt.spec.mjs.snap @@ -1568,10 +1568,7 @@ $var = (clone foo())->bar()->foo(); $var = (clone foo())->bar()->foo(); $var = (clone foo())->bar()->foo()[0]; $var = (clone foo())->bar()->foo()[0][1]; -$var = (clone foo()) - ->bar() - ->foo() - ->baz(); +$var = (clone foo())->bar()->foo()->baz(); $var = (clone $foo())->bar; $var = (clone $bar->y)->x; $var = (clone $foo)[0]; @@ -2562,10 +2559,7 @@ $var = (new foo())->bar()->foo(); $var = (new foo())->bar()->foo(); $var = (new foo())->bar()->foo()[0]; $var = (new foo())->bar()->foo()[0][1]; -$var = (new foo()) - ->bar() - ->foo() - ->baz(); +$var = (new foo())->bar()->foo()->baz(); $var = (new $foo())->bar; $var = (new $bar->y())->x; $var = (new foo())[0]; @@ -2935,10 +2929,7 @@ $var = ((int) $var) + 1 === 2 ? "1" : "2"; ($var ? $var : $var)[1]; ($var ? $var : $var)->d(); ($var ? $var : $var)->d()->e(); -($var ? $var : $var) - ->d() - ->e() - ->f(); +($var ? $var : $var)->d()->e()->f(); ($var ? $var->responseBody($var->currentUser) : $var->responseBody($var->defaultUser) diff --git a/tests/print/__snapshots__/jsfmt.spec.mjs.snap b/tests/print/__snapshots__/jsfmt.spec.mjs.snap index 2aa77bc70..d93a2e400 100644 --- a/tests/print/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/print/__snapshots__/jsfmt.spec.mjs.snap @@ -299,10 +299,7 @@ print $var->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty; -print $var - ->call() - ->call() - ->call(); +print $var->call()->call()->call(); print $var ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongCall() ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongCall() diff --git a/tests/retif/__snapshots__/jsfmt.spec.mjs.snap b/tests/retif/__snapshots__/jsfmt.spec.mjs.snap index b372be8d0..94fc73a9f 100644 --- a/tests/retif/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/retif/__snapshots__/jsfmt.spec.mjs.snap @@ -636,15 +636,11 @@ $callback = $var = $delay instanceof DateTimeInterface ? $delay->getTimestamp() - : Carbon::now() - ->addSeconds($delay) - ->getTimestamp(); + : Carbon::now()->addSeconds($delay)->getTimestamp(); return $delay instanceof DateTimeInterface ? $delay->getTimestamp() - : Carbon::now() - ->addSeconds($delay) - ->getTimestamp(); + : Carbon::now()->addSeconds($delay)->getTimestamp(); $var = true ? 'string diff --git a/tests/return/__snapshots__/jsfmt.spec.mjs.snap b/tests/return/__snapshots__/jsfmt.spec.mjs.snap index ac27d0637..c1c416e4a 100644 --- a/tests/return/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/return/__snapshots__/jsfmt.spec.mjs.snap @@ -319,30 +319,10 @@ return (function () {})(); return call(); return $a->b->c->d->e->f; -return $a - ->b() - ->c() - ->d() - ->e() - ->f(); -return call() - ->b() - ->c() - ->d() - ->e() - ->f(); -return $a - ::b() - ::c() - ::d() - ::e() - ::f(); -return Foo::a() - ::b() - ::c() - ::d() - ::e() - ::f(); +return $a->b()->c()->d()->e()->f(); +return call()->b()->c()->d()->e()->f(); +return $a::b()::c()::d()::e()::f(); +return Foo::a()::b()::c()::d()::e()::f(); return " string From ea27073b441a1959f957457786347c39faa80745 Mon Sep 17 00:00:00 2001 From: Shuhei Hayashibara Date: Sat, 3 Feb 2024 22:33:08 +0900 Subject: [PATCH 02/28] =?UTF-8?q?fix:=20=F0=9F=90=9B=20singleQuote=20optio?= =?UTF-8?q?n=20does=20not=20work=20on=20format=20API=20(#2303)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 🐛 singleQuote option does not work on format API * test: 💍 add test for singleQuote option from api call * refactor: 💡 add comment * style: 💄 apply formatter --- src/options.mjs | 7 +++++++ tests/single-quote-api/jsfmt.spec.mjs | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tests/single-quote-api/jsfmt.spec.mjs diff --git a/src/options.mjs b/src/options.mjs index 1600dbd39..93fca45dc 100644 --- a/src/options.mjs +++ b/src/options.mjs @@ -45,4 +45,11 @@ export default { { value: "1tbs", description: "Use 1tbs brace style." }, ], }, + singleQuote: { + since: "0.0.0", + category: CATEGORY_PHP, + type: "boolean", + default: false, + description: "Use single quotes instead of double quotes.", + }, }; diff --git a/tests/single-quote-api/jsfmt.spec.mjs b/tests/single-quote-api/jsfmt.spec.mjs new file mode 100644 index 000000000..c95b4ab03 --- /dev/null +++ b/tests/single-quote-api/jsfmt.spec.mjs @@ -0,0 +1,21 @@ +import prettier from "prettier/standalone"; +import * as prettierPluginPhp from "../../src/index.mjs"; + +// https://github.com/prettier/plugin-php/issues/2302 +test(`singleQuote option on format api`, async () => { + const input = ``; + const result = await prettier.format(input, { + plugins: [prettierPluginPhp], + singleQuote: true, + parser: "php", + }); + + const expected = ` +`; + + expect(result).toEqual(expected); +}); From 16cc0664b08413d1e83e24d2b3ef3d4d05dd081e Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Sat, 3 Feb 2024 19:42:15 +0100 Subject: [PATCH 03/28] chore: upgrade dependencies (#2321) * chore: upgrade dependencies * chore: replace memoize dependency with own implementation --- package.json | 7 +- src/pragma.mjs | 2 +- src/printer.mjs | 16 +- src/util.mjs | 11 ++ tests_config/run_spec.mjs | 4 +- yarn.lock | 351 ++++++++++++++++++-------------------- 6 files changed, 192 insertions(+), 199 deletions(-) diff --git a/package.json b/package.json index 21cb8eb5d..11cb28176 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ ], "dependencies": { "linguist-languages": "^7.27.0", - "mem": "^9.0.2", "php-parser": "^3.1.5" }, "devDependencies": { @@ -34,13 +33,13 @@ "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.3", - "c8": "^8.0.1", + "c8": "^9.1.0", "cross-env": "^7.0.2", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jest": "27.6.0", - "eslint-plugin-prettier": "5.0.1", + "eslint-plugin-jest": "27.6.3", + "eslint-plugin-prettier": "5.1.3", "eslint-plugin-prettier-doc": "^1.1.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", diff --git a/src/pragma.mjs b/src/pragma.mjs index cb48dc4f5..976baa7d9 100644 --- a/src/pragma.mjs +++ b/src/pragma.mjs @@ -1,4 +1,4 @@ -import memoize from "mem"; +import { memoize } from "./util.mjs"; import parse from "./parser.mjs"; const reHasPragma = /@prettier|@format/; diff --git a/src/printer.mjs b/src/printer.mjs index 8c7e8fbf3..53f812a09 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -1018,8 +1018,8 @@ function printLines(path, options, print, childrenAttribute = "children") { "?>", ] : isProgramLikeNode(node) && isFirstNode && node.kind !== "namespace" - ? "" - : [beforeCloseTagInlineNode, "?>"]; + ? "" + : [beforeCloseTagInlineNode, "?>"]; //FIXME getNode is used to get ancestors, but it seems this means to get next sibling? const nextV = path.getNode(index + 1); @@ -1034,8 +1034,8 @@ function printLines(path, options, print, childrenAttribute = "children") { hardline, ] : isProgramLikeNode(node) && isLastNode - ? "" - : [openTag, " "]; + ? "" + : [openTag, " "]; printed = [beforeInline, printed, afterInline]; } @@ -1091,8 +1091,8 @@ function printLines(path, options, print, childrenAttribute = "children") { : "", ] : node.comments - ? hardline - : ""; + ? hardline + : ""; parts.push(lineSuffix([beforeCloseTag, "?>"])); } @@ -1711,8 +1711,8 @@ function printNode(path, options, print) { hardline, ] : hasDanglingComments(node) - ? [line, printDanglingComments(path, options, true), line] - : "", + ? [line, printDanglingComments(path, options, true), line] + : "", "}", ] : "", diff --git a/src/util.mjs b/src/util.mjs index 6890e7d9e..1bda959a2 100644 --- a/src/util.mjs +++ b/src/util.mjs @@ -685,6 +685,16 @@ function isSimpleCallArgument(node, depth = 2) { return false; } +function memoize(fn) { + const cache = new Map(); + return (key) => { + if (!cache.has(key)) { + cache.set(key, fn(key)); + } + return cache.get(key); + }; +} + export { printNumber, getPrecedence, @@ -715,4 +725,5 @@ export { getAncestorNode, normalizeMagicMethodName, isSimpleCallArgument, + memoize, }; diff --git a/tests_config/run_spec.mjs b/tests_config/run_spec.mjs index 9abc3c110..21437ccc6 100644 --- a/tests_config/run_spec.mjs +++ b/tests_config/run_spec.mjs @@ -205,8 +205,8 @@ function printOptions(options) { return value === Infinity ? "Infinity" : Array.isArray(value) - ? `[${value.map((v) => JSON.stringify(v)).join(", ")}]` - : JSON.stringify(value); + ? `[${value.map((v) => JSON.stringify(v)).join(", ")}]` + : JSON.stringify(value); } } diff --git a/yarn.lock b/yarn.lock index e9464b661..b754bee8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,7 +43,7 @@ dependencies: "@babel/highlight" "^7.22.5" -"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.22.5": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -51,12 +51,15 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.2.tgz#6a12ced93455827037bfb5ed8492820d60fc32cc" - integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" -"@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== @@ -144,7 +147,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": +"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== @@ -155,7 +158,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -167,9 +170,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" - integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -190,10 +193,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -381,10 +384,10 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.22.5", "@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.16.7": version "7.18.6" @@ -401,12 +404,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== - -"@babel/helper-validator-option@^7.23.5": +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== @@ -456,7 +454,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.22.13", "@babel/highlight@^7.22.5": +"@babel/highlight@^7.22.13", "@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/highlight@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== @@ -485,11 +492,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== -"@babel/parser@^7.22.15", "@babel/parser@^7.22.5": +"@babel/parser@^7.22.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" @@ -506,10 +518,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -674,10 +686,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" + integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -724,16 +736,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" @@ -857,10 +868,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" - integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== +"@babel/plugin-transform-modules-systemjs@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" + integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== dependencies: "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-module-transforms" "^7.23.3" @@ -1057,9 +1068,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a" - integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ== + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669" + integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A== dependencies: "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.23.6" @@ -1067,7 +1078,7 @@ "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -1088,13 +1099,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-generator-functions" "^7.23.9" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" @@ -1110,7 +1121,7 @@ "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.9" "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" @@ -1136,9 +1147,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.8" + babel-plugin-polyfill-corejs3 "^0.9.0" + babel-plugin-polyfill-regenerator "^0.5.5" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1157,9 +1168,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.8.4": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" + integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== dependencies: regenerator-runtime "^0.14.0" @@ -1182,13 +1193,13 @@ "@babel/types" "^7.22.5" "@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" + integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" "@babel/template@^7.3.3": version "7.16.7" @@ -1240,12 +1251,12 @@ "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" -"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.9", "@babel/types@^7.4.4": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" + integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" @@ -1726,6 +1737,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@pkgr/utils@^2.3.1": version "2.4.2" resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" @@ -2260,29 +2276,29 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.5.0" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz#a75fa1b0c3fc5bd6837f9ec465c0f48031b8cab1" - integrity sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA== +babel-plugin-polyfill-corejs3@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" + integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.32.2" + "@babel/helper-define-polyfill-provider" "^0.5.0" + core-js-compat "^3.34.0" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-regenerator@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.5.0" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -2354,23 +2370,13 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.21.9, browserslist@^4.22.1: - version "4.22.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== +browserslist@^4.21.9, browserslist@^4.22.2: + version "4.22.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6" + integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" - update-browserslist-db "^1.0.13" - -browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== - dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" + caniuse-lite "^1.0.30001580" + electron-to-chromium "^1.4.648" node-releases "^2.0.14" update-browserslist-db "^1.0.13" @@ -2398,19 +2404,18 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" -c8@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/c8/-/c8-8.0.1.tgz#bafd60be680e66c5530ee69f621e45b1364af9fd" - integrity sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w== +c8@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-9.1.0.tgz#0e57ba3ab9e5960ab1d650b4a86f71e53cb68112" + integrity sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@istanbuljs/schema" "^0.1.3" find-up "^5.0.0" - foreground-child "^2.0.0" + foreground-child "^3.1.1" istanbul-lib-coverage "^3.2.0" istanbul-lib-report "^3.0.1" istanbul-reports "^3.1.6" - rimraf "^3.0.2" test-exclude "^6.0.0" v8-to-istanbul "^9.0.0" yargs "^17.7.2" @@ -2448,15 +2453,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001541: - version "1.0.30001549" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz#7d1a3dce7ea78c06ed72c32c2743ea364b3615aa" - integrity sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA== - -caniuse-lite@^1.0.30001565: - version "1.0.30001570" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" - integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== +caniuse-lite@^1.0.30001580: + version "1.0.30001583" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz#abb2970cc370801dc7e27bf290509dc132cfa390" + integrity sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" @@ -2581,12 +2581,12 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -core-js-compat@^3.31.0, core-js-compat@^3.32.2: - version "3.33.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.0.tgz#24aa230b228406450b2277b7c8bfebae932df966" - integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== +core-js-compat@^3.31.0, core-js-compat@^3.34.0: + version "3.35.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2" + integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw== dependencies: - browserslist "^4.22.1" + browserslist "^4.22.2" create-jest@^29.7.0: version "29.7.0" @@ -2773,15 +2773,10 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -electron-to-chromium@^1.4.535: - version "1.4.554" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz#04e09c2ee31dc0f1546174033809b54cc372740b" - integrity sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ== - -electron-to-chromium@^1.4.601: - version "1.4.614" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz#2fe789d61fa09cb875569f37c309d0c2701f91c0" - integrity sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ== +electron-to-chromium@^1.4.648: + version "1.4.656" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz#b374fb7cab9b782a5bc967c0ce0e19826186b9c9" + integrity sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q== emittery@^0.13.1: version "0.13.1" @@ -2951,10 +2946,10 @@ eslint-plugin-import@2.29.1: semver "^6.3.1" tsconfig-paths "^3.15.0" -eslint-plugin-jest@27.6.0: - version "27.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz#e5c0cf735b3c8cad0ef9db5b565b2fc99f5e55ed" - integrity sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng== +eslint-plugin-jest@27.6.3: + version "27.6.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz#8acb8b1e45597fe1f4d4cf25163d90119efc12be" + integrity sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -2963,13 +2958,13 @@ eslint-plugin-prettier-doc@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-plugin-prettier-doc/-/eslint-plugin-prettier-doc-1.1.0.tgz#ebf679b480e6048e90d5b152e6043714780bb4e6" integrity sha512-ytzztiiqobTeYLqdRnv+dgowcb63gFFy31RekPeVPB6YOshwuGKJVKPdkq/mYtwsJ+eDtLiHksfwH5/M5nU09g== -eslint-plugin-prettier@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" - integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== +eslint-plugin-prettier@5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" + synckit "^0.8.6" eslint-scope@^5.1.1: version "5.1.1" @@ -3259,13 +3254,13 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== +foreground-child@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== dependencies: cross-spawn "^7.0.0" - signal-exit "^3.0.2" + signal-exit "^4.0.1" form-data@^4.0.0: version "4.0.0" @@ -3663,20 +3658,20 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.13.0, is-core-module@^2.8.1: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - dependencies: - has "^1.0.3" - -is-core-module@^2.13.1: +is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-core-module@^2.8.1: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -4709,21 +4704,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -mem@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/mem/-/mem-9.0.2.tgz#bbc2d40be045afe30749681e8f5d554cee0c0354" - integrity sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^4.0.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -4803,11 +4783,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - node-releases@^2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" @@ -4945,11 +4920,6 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -5087,9 +5057,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== + version "3.2.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" + integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== pretty-format@30.0.0-alpha.2: version "30.0.0-alpha.2" @@ -5167,9 +5137,9 @@ regenerate@^1.4.2: integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" @@ -5389,7 +5359,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -5584,6 +5554,14 @@ synckit@^0.8.5: "@pkgr/utils" "^2.3.1" tslib "^2.5.0" +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + terser@^5.17.4: version "5.21.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.21.0.tgz#d2b27e92b5e56650bc83b6defa00a110f0b124b2" @@ -5672,6 +5650,11 @@ tslib@^2.5.0, tslib@^2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== +tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" From 26cf2a8c7eb049923ec88a39d297df46946db713 Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Sat, 3 Feb 2024 21:50:18 +0100 Subject: [PATCH 04/28] 0.22.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 11cb28176..c745516b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-php", - "version": "0.22.1", + "version": "0.22.2", "description": "Prettier PHP Plugin", "repository": "prettier/prettier-php", "author": "Lucas Azzola <@azz>", From 6f9790e8aa0910d68ea77b81de594a95cf8a9229 Mon Sep 17 00:00:00 2001 From: Kristijan <470003+eldair@users.noreply.github.com> Date: Fri, 31 May 2024 15:17:00 +0200 Subject: [PATCH 05/28] Adjustment for overlooked nested lookups in chain breaks (#2322) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix for lookups * Further adjustments --------- Co-authored-by: Kristijan Novaković --- src/printer.mjs | 4 +- src/util.mjs | 38 +++++++++++++------ .../__snapshots__/jsfmt.spec.mjs.snap | 35 ++++++++++++++--- tests/member_chain/offsetlookup.php | 10 +++++ 4 files changed, 68 insertions(+), 19 deletions(-) diff --git a/src/printer.mjs b/src/printer.mjs index 53f812a09..cf7388092 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -509,8 +509,8 @@ function printMemberChain(path, options, print) { printIndentedGroup(groups.slice(shouldMerge ? 2 : 1)), ]; - const callExpressions = printedNodes.filter((tuple) => - ["call", "new"].includes(tuple.node.kind) + const callExpressions = printedNodes.filter( + (tuple) => tuple.node.kind === "call" ); // We don't want to print in one line if there's: diff --git a/src/util.mjs b/src/util.mjs index 1bda959a2..b4bf9e473 100644 --- a/src/util.mjs +++ b/src/util.mjs @@ -622,27 +622,35 @@ function createTypeCheckFunction(kindsArray) { } const isSingleWordType = createTypeCheckFunction([ - "variable", + "variadicplaceholder", + "namedargument", + "nullkeyword", + "identifier", "parameter", + "variable", "variadic", - "clone", - "cast", "boolean", + "literal", "number", "string", - "literal", - "nullkeyword", - "namedargument", - "variadicplaceholder", + "clone", + "cast", ]); const isArrayExpression = createTypeCheckFunction(["array"]); -const isCallOrNewExpression = createTypeCheckFunction(["call", "new"]); +const isCallLikeExpression = createTypeCheckFunction([ + "nullsafepropertylookup", + "propertylookup", + "staticlookup", + "offsetlookup", + "call", + "new", +]); const isArrowFuncExpression = createTypeCheckFunction(["arrowfunc"]); function getChainParts(node, prev = []) { const parts = prev; - if (isCallOrNewExpression(node)) { + if (isCallLikeExpression(node)) { parts.push(node); } @@ -668,11 +676,17 @@ function isSimpleCallArgument(node, depth = 2) { return node.items.every((x) => x === null || isChildSimple(x)); } - if (isCallOrNewExpression(node)) { + if (isCallLikeExpression(node)) { const parts = getChainParts(node); + parts.unshift(); + return ( - parts.filter((node) => node.kind === "call").length <= depth && - parts.every((node) => node.arguments.every(isChildSimple)) + parts.length <= depth && + parts.every((node) => + isLookupNode(node) + ? isChildSimple(node.offset) + : node.arguments.every(isChildSimple) + ) ); } diff --git a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap index 5089bfdca..283177c24 100644 --- a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap @@ -583,11 +583,9 @@ $var = Foo::keys($items) return $x * 2; }); -(new static(func_get_args())) - ->push($this) - ->each(function ($item) { - VarDumper::dump($item); - }); +(new static(func_get_args()))->push($this)->each(function ($item) { + VarDumper::dump($item); +}); (new static(func_get_args())) ->offset(10) ->push($this) @@ -721,6 +719,16 @@ $window->{call()} return $b; }); + +$window->call($foo->bar->baz)->first()->second(); +$window->call($foo->bar->baz->foo())->first()->second(); + +(new Foo())->call($foo->bar->baz)->first()->second(); +(new Foo())->call($foo->bar->baz->foo())->first()->second(); + +Foo::call($foo->bar->baz)->first()->second(); +Foo::call($foo->bar->baz->foo())->first()->second(); + =====================================output===================================== {call()} return $b; }); +$window->call($foo->bar->baz)->first()->second(); +$window + ->call($foo->bar->baz->foo()) + ->first() + ->second(); + +(new Foo())->call($foo->bar->baz)->first()->second(); +(new Foo()) + ->call($foo->bar->baz->foo()) + ->first() + ->second(); + +Foo::call($foo->bar->baz)->first()->second(); +Foo::call($foo->bar->baz->foo()) + ->first() + ->second(); + ================================================================================ `; diff --git a/tests/member_chain/offsetlookup.php b/tests/member_chain/offsetlookup.php index a619ac7cf..5b37bc39e 100644 --- a/tests/member_chain/offsetlookup.php +++ b/tests/member_chain/offsetlookup.php @@ -53,3 +53,13 @@ ->catch(function () { return $b; }); + + +$window->call($foo->bar->baz)->first()->second(); +$window->call($foo->bar->baz->foo())->first()->second(); + +(new Foo())->call($foo->bar->baz)->first()->second(); +(new Foo())->call($foo->bar->baz->foo())->first()->second(); + +Foo::call($foo->bar->baz)->first()->second(); +Foo::call($foo->bar->baz->foo())->first()->second(); From ebc8e4047a31adb128bccc6e55e639116429663c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 May 2024 15:19:04 +0200 Subject: [PATCH 06/28] build(deps-dev): bump prettier from 3.2.4 to 3.2.5 (#2323) Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b754bee8f..d4f47a0d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5057,9 +5057,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.0.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-format@30.0.0-alpha.2: version "30.0.0-alpha.2" From 46b7ba998afac4affa8b39c0c0054618ee049ab6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 May 2024 15:19:33 +0200 Subject: [PATCH 07/28] build(deps-dev): bump eslint from 8.56.0 to 8.57.0 (#2334) Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 46 +++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index c745516b9..5bb40058d 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@rollup/plugin-terser": "^0.4.3", "c8": "^9.1.0", "cross-env": "^7.0.2", - "eslint": "8.56.0", + "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "27.6.3", diff --git a/yarn.lock b/yarn.lock index d4f47a0d7..0ea9d0bcd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1292,18 +1292,18 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== - -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1311,10 +1311,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -2643,7 +2643,7 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2999,16 +2999,16 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@8.56.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== +eslint@8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" From 7e8f79e4063b93e423cd6a0d9268f6efcb0a46a3 Mon Sep 17 00:00:00 2001 From: Ryan Hayle Date: Tue, 11 Jun 2024 01:24:17 -0500 Subject: [PATCH 08/28] Keep braces inline on empty classes and functions (#2336) * Keep braces inline on empty classes and functions * Handle anonymous classes and static functions * Update snapshots --- src/printer.mjs | 21 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../__snapshots__/jsfmt.spec.mjs.snap | 369 +++++------------- tests/case/__snapshots__/jsfmt.spec.mjs.snap | 72 +--- tests/class/__snapshots__/jsfmt.spec.mjs.snap | 265 ++++--------- .../__snapshots__/jsfmt.spec.mjs.snap | 169 +++----- tests/enum/__snapshots__/jsfmt.spec.mjs.snap | 12 +- .../__snapshots__/jsfmt.spec.mjs.snap | 45 +-- .../__snapshots__/jsfmt.spec.mjs.snap | 192 +++------ .../__snapshots__/jsfmt.spec.mjs.snap | 32 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../method/__snapshots__/jsfmt.spec.mjs.snap | 8 +- .../nowdoc/__snapshots__/jsfmt.spec.mjs.snap | 18 +- .../__snapshots__/jsfmt.spec.mjs.snap | 129 ++---- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../__snapshots__/jsfmt.spec.mjs.snap | 8 +- .../__snapshots__/jsfmt.spec.mjs.snap | 6 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../traits/__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../__snapshots__/jsfmt.spec.mjs.snap | 12 +- 20 files changed, 371 insertions(+), 1007 deletions(-) diff --git a/src/printer.mjs b/src/printer.mjs index cf7388092..066b68f71 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -1297,17 +1297,18 @@ function printClass(path, options, print) { } } + const hasEmptyClassBody = + node.body && node.body.length === 0 && !hasDanglingComments(node); + const printedDeclaration = group([ group(declaration), - shouldPrintHardlineForOpenBrace(options) + shouldPrintHardlineForOpenBrace(options) && !hasEmptyClassBody ? isAnonymousClass ? line : hardline : " ", ]); - const hasEmptyClassBody = - node.body && node.body.length === 0 && !hasDanglingComments(node); const printedBody = [ "{", indent([ @@ -1315,7 +1316,7 @@ function printClass(path, options, print) { printStatements(path, options, print, "body"), ]), printDanglingComments(path, options, true), - isAnonymousClass && hasEmptyClassBody ? softline : hardline, + hasEmptyClassBody ? "" : hardline, "}", ]; @@ -1383,14 +1384,14 @@ function printFunction(path, options, print) { return [...declAttrs, printedDeclaration]; } - const isClosure = node.kind === "closure"; const printedBody = [ "{", indent([hasEmptyBody(path) ? "" : hardline, print("body")]), - isClosure && hasEmptyBody(path) ? "" : hardline, + hasEmptyBody(path) ? "" : hardline, "}", ]; + const isClosure = node.kind === "closure"; if (isClosure) { return [...declAttrs, printedDeclaration, " ", printedBody]; } @@ -1399,7 +1400,9 @@ function printFunction(path, options, print) { return [ ...declAttrs, printedDeclaration, - shouldPrintHardlineForOpenBrace(options) ? hardline : " ", + shouldPrintHardlineForOpenBrace(options) && !hasEmptyBody(path) + ? hardline + : " ", printedBody, ]; } @@ -1415,7 +1418,9 @@ function printFunction(path, options, print) { conditionalGroup([ [ printedDeclaration, - shouldPrintHardlineForOpenBrace(options) ? hardline : " ", + shouldPrintHardlineForOpenBrace(options) && !hasEmptyBody(path) + ? hardline + : " ", printedBody, ], [printedDeclaration, " ", printedBody], diff --git a/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap b/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap index 021fbbbd4..16622e7c1 100644 --- a/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap @@ -181,9 +181,7 @@ final class DomainEventMessage } #[Attr1(Attr1::FOO | Attr1::BAR), Attr2(-20 * 5 + 10)] -class A -{ -} +class A {} class ValueModel { diff --git a/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap b/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap index cf6e66b5d..4db4b933b 100644 --- a/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap @@ -43,95 +43,65 @@ $class = new class extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryV =====================================output===================================== something->method( $this->more->stuff($this->even->more->things->complicatedMethod()) ); -class A -{ -} +class A {} $someVar = new ReaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalyLongClassName(); @@ -1166,12 +1132,8 @@ class FooBar { public $property; public $property2; - public function method() - { - } - public function method2() - { - } + public function method() {} + public function method2() {} } class FooBarFoo @@ -1182,76 +1144,52 @@ class FooBarFoo } } -class ClassName extends ParentClass implements InterfaceClass -{ -} +class ClassName extends ParentClass implements InterfaceClass {} class ClassName extends ParentClass implements - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 {} class ClassName extends ParentClass implements - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 {} class ClassName extends VeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 implements - InterfaceClass -{ -} + InterfaceClass {} class ClassName extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 - implements InterfaceClass -{ -} + implements InterfaceClass {} class ClassName extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 - implements VeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 -{ -} + implements VeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 {} class ClassName extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 - implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 -{ -} + implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 {} class ClassName extends ParentClass implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1, VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName2, - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName3 -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName3 {} class ClassName extends VeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1, VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName2, - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName3 -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName3 {} class ClassName extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1, VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName2, - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName3 -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName3 {} class VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongFileName1 extends ParentClass - implements InterfaceClass -{ -} + implements InterfaceClass {} class Custom_Plugin_NotificationPlaceholderSource extends - Notification_Manager_DefaultPlaceholderSource -{ -} + Notification_Manager_DefaultPlaceholderSource {} class field extends \\models\\base { @@ -1280,187 +1218,121 @@ class test } } -class EmptyClass -{ -} +class EmptyClass {} class EmptyClassWithComments { /* Comment */ } -class MyClass implements MyOtherClass -{ -} +class MyClass implements MyOtherClass {} -class MyClass implements MyOtherClass, MyOtherClass1, MyOtherClass2 -{ -} +class MyClass implements MyOtherClass, MyOtherClass1, MyOtherClass2 {} class MyClass implements - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {} class VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass - implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyOtherClass -{ -} + implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyOtherClass {} class VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass - implements MyOtherClass -{ -} + implements MyOtherClass {} class MyClass implements MyOtherClass, MyOtherClass, MyOtherOtherOtherClass, - MyOtherOtherOtherOtherClass -{ -} + MyOtherOtherOtherOtherClass {} class VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass implements MyOtherClass, MyOtherClass, MyOtherOtherOtherClass, - MyOtherOtherOtherOtherClass -{ -} + MyOtherOtherOtherOtherClass {} -class EmptyClass extends MyOtherClass -{ -} +class EmptyClass extends MyOtherClass {} class EmptyClass extends - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {} class VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass - extends EmptyClass -{ -} + extends EmptyClass {} class VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass - extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass -{ -} + extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {} -class MyClass extends MyOtherClass implements MyI -{ -} +class MyClass extends MyOtherClass implements MyI {} -class MyClass extends MyOtherClass implements MyI, MyII, MyIII -{ -} +class MyClass extends MyOtherClass implements MyI, MyII, MyIII {} class MyClass extends MyOtherClass implements - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {} class MyClass extends MyOtherClass implements MyInterface, MyOtherInterface, - MyOtherOtherInterface -{ -} + MyOtherOtherInterface {} class MyClass extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass - implements MyI -{ -} + implements MyI {} class MyClass extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass implements MyI, MyII, - MyIII -{ -} + MyIII {} class MyClass extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass - implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass -{ -} + implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {} class MyClass extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass implements MyI, MyII, - MyIII -{ -} + MyIII {} -final class BaseClass -{ -} +final class BaseClass {} -abstract class BaseClass -{ -} +abstract class BaseClass {} -final readonly class BaseClass -{ -} +final readonly class BaseClass {} -final readonly class BaseClass -{ -} +final readonly class BaseClass {} -final class BaseClass extends MyOtherClass -{ -} +final class BaseClass extends MyOtherClass {} -abstract class BaseClass extends MyOtherClass -{ -} +abstract class BaseClass extends MyOtherClass {} -final readonly class BaseClass extends MyOtherClass -{ -} +final readonly class BaseClass extends MyOtherClass {} -final readonly class BaseClass extends MyOtherClass -{ -} +final readonly class BaseClass extends MyOtherClass {} -final class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass -{ -} +final class BaseClass extends + MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass {} -abstract class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVVeryLongClass -{ -} +abstract class BaseClass extends + MyOtherVeryVeryVeryVeVeryVeryVeryVVeryLongClass {} final class BaseClass extends - MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass1 -{ -} + MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass1 {} abstract class BaseClass extends - MyOtherVeryVeryVeryVeVeryVeryVeryVVeryLongClass1 -{ -} + MyOtherVeryVeryVeryVeVeryVeryVeryVVeryLongClass1 {} final class BaseClass extends MyOtherClass implements MyInterface, MyOtherInterface, - MyOtherOtherInterface -{ -} + MyOtherOtherInterface {} abstract class BaseClass extends MyOtherClass implements MyInterface, MyOtherInterface, - MyOtherOtherInterface -{ -} + MyOtherOtherInterface {} class User { @@ -1483,8 +1355,7 @@ class Promoted public int $a, private float $b, protected string $d - ) { - } + ) {} } readonly class ReadOnlyCls diff --git a/tests/comments/__snapshots__/jsfmt.spec.mjs.snap b/tests/comments/__snapshots__/jsfmt.spec.mjs.snap index b19294f93..a01c42f14 100644 --- a/tests/comments/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/comments/__snapshots__/jsfmt.spec.mjs.snap @@ -943,9 +943,7 @@ class ResponseMethodFailure // Some comment FooBar, // Another comment - BarBaz -{ -} + BarBaz {} // 424 : Method failure class ResponseMethodFailure @@ -955,9 +953,7 @@ class ResponseMethodFailure // Some comment FooBar, // Another comment - BarBaz -{ -} + BarBaz {} // 424 : Method failure class ResponseMethodFailure @@ -967,27 +963,19 @@ class ResponseMethodFailure // Some comment FooBar, // Another comment - BarBaz -{ -} + BarBaz {} // 424 : Method failure class ResponseMethodFailure extends ResponseNotAcceptable implements // Some comment FooBar, // Another comment - BarBaz -{ -} + BarBaz {} -class MyClass -{ -} +class MyClass {} // Comment -class MyClass -{ -} +class MyClass {} class MyClass { @@ -2690,9 +2678,7 @@ foreach ($connections as $sqlite) { * * @return string */ -function test($parameter1, $e) -{ -} +function test($parameter1, $e) {} ================================================================================ `; @@ -2816,9 +2802,7 @@ class Test // body } - function testFunction($arg1, /* inline */ $arg2) - { - } + function testFunction($arg1, /* inline */ $arg2) {} } function testFunction(/* inline */ $arg) @@ -2826,9 +2810,7 @@ function testFunction(/* inline */ $arg) // body } -function testFunction($arg1, /* inline */ $arg2) -{ -} +function testFunction($arg1, /* inline */ $arg2) {} ================================================================================ `; @@ -3433,24 +3415,12 @@ function foo // this is a function =====================================output===================================== */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5455,9 +5403,7 @@ namespace Monolog\\Formatter; * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5495,9 +5441,7 @@ namespace Monolog\\Formatter; * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5531,9 +5475,7 @@ namespace Monolog\\Formatter; * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5567,9 +5509,7 @@ namespace Monolog\\Formatter; // Comment * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5599,9 +5539,7 @@ namespace Monolog\\Formatter; // Comment * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5633,9 +5571,7 @@ namespace Monolog\\Formatter; /* Comment */ * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5671,9 +5607,7 @@ namespace Monolog\\Formatter; /* Comment */ * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5710,9 +5644,7 @@ namespace Monolog\\Formatter; /* Comment */ * * @author Dominik Liebler */ -class FlowdockFormatter -{ -} +class FlowdockFormatter {} ================================================================================ `; @@ -5941,8 +5873,7 @@ $a = new // Comment Foo(); $a = new class// Comment - { -}; + {}; $a = new class { // Comment @@ -6291,36 +6222,28 @@ class MyClass { function foo( /* Comment */ $a, /* Comment */ array /* Comment2 */ $b /* Comment */ = /* Comment */ [] /* Comment */ -) { -} +) {} -function bar(/* Comment */ &$a /* Comment */) -{ -} +function bar(/* Comment */ &$a /* Comment */) {} function baz( /* Comment */ $a, /* Comment */ array /* Comment3 */ &$b /* Comment */ = /* Comment */ [] /* Comment */ -) { -} +) {} class MyClass { public function foo( /* Comment */ $a, /* Comment */ array /* Comment2 */ $b /* Comment */ = /* Comment */ [] /* Comment */ - ) { - } + ) {} - public function bar(/* Comment */ &$a /* Comment */) - { - } + public function bar(/* Comment */ &$a /* Comment */) {} public function baz( /* Comment */ $a, /* Comment */ array /* Comment3 */ &$b /* Comment */ = /* Comment */ [] /* Comment */ - ) { - } + ) {} } ================================================================================ @@ -7104,14 +7027,10 @@ class ImplementingClass } } -trait MyTrait -{ -} +trait MyTrait {} // Comment -trait MyTrait -{ -} +trait MyTrait {} trait MyTrait { diff --git a/tests/enum/__snapshots__/jsfmt.spec.mjs.snap b/tests/enum/__snapshots__/jsfmt.spec.mjs.snap index 03da1a1be..3d304160f 100644 --- a/tests/enum/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/enum/__snapshots__/jsfmt.spec.mjs.snap @@ -122,9 +122,7 @@ enum Suit implements Colorful } } -function paint(Colorful $c) -{ -} +function paint(Colorful $c) {} paint(Suit::Clubs); // Works @@ -140,12 +138,8 @@ enum BackedSuit: string case Spades = 5; } -class Enum -{ -} -class Enum extends Foo -{ -} +class Enum {} +class Enum extends Foo {} ================================================================================ `; diff --git a/tests/functions/__snapshots__/jsfmt.spec.mjs.snap b/tests/functions/__snapshots__/jsfmt.spec.mjs.snap index b9d53cc9f..f7efe0746 100644 --- a/tests/functions/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/functions/__snapshots__/jsfmt.spec.mjs.snap @@ -265,9 +265,7 @@ function &passByReferenceTest() return $a; } -function foo(iterable $iterable = []) -{ -} +function foo(iterable $iterable = []) {} function bar(): iterable { @@ -332,9 +330,7 @@ function the_panel_title( return $title; } -function emptyFunction() -{ -} +function emptyFunction() {} function emptyFunctionWithComment() { /* Comment */ @@ -356,18 +352,10 @@ abstract class AbstractClass class Foo { - public function shortName() - { - } - public function floatShortName(): float - { - } - public function otherShortName() - { - } - public function otherOtherShortName($arg) - { - } + public function shortName() {} + public function floatShortName(): float {} + public function otherShortName() {} + public function otherOtherShortName($arg) {} public function shortNameAndBreak( $title = null, $classes = "panel-title", @@ -375,21 +363,13 @@ class Foo $data_livetext = false, $depth = 0, $index = 0 - ) { - } - public function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() - { - } - public function floatVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName(): float - { - } - public function otherVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() - { - } + ) {} + public function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() {} + public function floatVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName(): float {} + public function otherVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() {} public function otherOtherVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $arg - ) { - } + ) {} public function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongNameAndBreak( $title = null, $classes = "panel-title", @@ -397,8 +377,7 @@ class Foo $data_livetext = false, $depth = 0, $index = 0 - ) { - } + ) {} } ================================================================================ diff --git a/tests/identifier-and-reference/__snapshots__/jsfmt.spec.mjs.snap b/tests/identifier-and-reference/__snapshots__/jsfmt.spec.mjs.snap index 62f0854bd..05a195ce9 100644 --- a/tests/identifier-and-reference/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/identifier-and-reference/__snapshots__/jsfmt.spec.mjs.snap @@ -238,82 +238,38 @@ Foo::$pArEnT; // Functions -function int(int $var): int -{ -} -function intI(int $var): int -{ -} +function int(int $var): int {} +function intI(int $var): int {} -function float(float $var): float -{ -} -function floatI(float $var): float -{ -} +function float(float $var): float {} +function floatI(float $var): float {} -function bool(bool $var): bool -{ -} -function boolI(bool $var): bool -{ -} +function bool(bool $var): bool {} +function boolI(bool $var): bool {} -function string(string $var): string -{ -} -function stringI(string $var): string -{ -} +function string(string $var): string {} +function stringI(string $var): string {} -function iterable(iterable $var): iterable -{ -} -function iterableI(iterable $var): iterable -{ -} +function iterable(iterable $var): iterable {} +function iterableI(iterable $var): iterable {} -function object(object $var): object -{ -} -function objectI(object $var): object -{ -} +function object(object $var): object {} +function objectI(object $var): object {} -function arrayI(array $var): array -{ -} -function arrayI(array $var): array -{ -} +function arrayI(array $var): array {} +function arrayI(array $var): array {} -function callableI(callable $var): callable -{ -} -function callableII(callable $var): callable -{ -} +function callableI(callable $var): callable {} +function callableII(callable $var): callable {} -function void(): void -{ -} -function voidI(): void -{ -} +function void(): void {} +function voidI(): void {} -function null($var = null) -{ -} -function nullII($var = null) -{ -} +function null($var = null) {} +function nullII($var = null) {} -function something(something $var): something -{ -} -function somethingI(sOmEtHiNg $var): sOmEtHiNg -{ -} +function something(something $var): something {} +function somethingI(sOmEtHiNg $var): sOmEtHiNg {} // Closures @@ -386,96 +342,44 @@ class A return $this; } - public function foo(self $arg) - { - } - public function foo2(self $arg) - { - } - public function foo3(parent $arg) - { - } - public function foo4(parent $arg) - { - } + public function foo(self $arg) {} + public function foo2(self $arg) {} + public function foo3(parent $arg) {} + public function foo4(parent $arg) {} // methods - function int(int $var): int - { - } - function intI(int $var): int - { - } + function int(int $var): int {} + function intI(int $var): int {} - function float(float $var): float - { - } - function floatI(float $var): float - { - } + function float(float $var): float {} + function floatI(float $var): float {} - function bool(bool $var): bool - { - } - function boolI(bool $var): bool - { - } + function bool(bool $var): bool {} + function boolI(bool $var): bool {} - function string(string $var): string - { - } - function stringI(string $var): string - { - } + function string(string $var): string {} + function stringI(string $var): string {} - function iterable(iterable $var): iterable - { - } - function iterableI(iterable $var): iterable - { - } + function iterable(iterable $var): iterable {} + function iterableI(iterable $var): iterable {} - function object(object $var): object - { - } - function objectI(object $var): object - { - } + function object(object $var): object {} + function objectI(object $var): object {} - function arrayI(array $var): array - { - } - function arrayI(array $var): array - { - } + function arrayI(array $var): array {} + function arrayI(array $var): array {} - function callableI(callable $var): callable - { - } - function callableII(callable $var): callable - { - } + function callableI(callable $var): callable {} + function callableII(callable $var): callable {} - function void(): void - { - } - function voidI(): void - { - } + function void(): void {} + function voidI(): void {} - function null($var = null) - { - } - function nullII($var = null) - { - } + function null($var = null) {} + function nullII($var = null) {} - function something(something $var): something - { - } - function somethingI(sOmEtHiNg $var): sOmEtHiNg - { - } + function something(something $var): something {} + function somethingI(sOmEtHiNg $var): sOmEtHiNg {} } // Null diff --git a/tests/interface/__snapshots__/jsfmt.spec.mjs.snap b/tests/interface/__snapshots__/jsfmt.spec.mjs.snap index e58c91616..46b0cf1b7 100644 --- a/tests/interface/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/interface/__snapshots__/jsfmt.spec.mjs.snap @@ -49,54 +49,38 @@ interface test2 extends testInterface public function other($hi); } -interface EmptyInterface -{ -} +interface EmptyInterface {} interface EmptyInterfaceWithComments { /* Comment */ } -interface Foo extends MyClass -{ -} +interface Foo extends MyClass {} -interface Foo extends MyClass, MyOtherClass, OtherClass -{ -} +interface Foo extends MyClass, MyOtherClass, OtherClass {} interface Foo extends - VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName -{ -} + VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName {} interface VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName - extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName -{ -} + extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName {} interface VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName - extends Foo -{ -} + extends Foo {} interface Foo extends MyClass, MyOtherClass, MyOtherOtherOtherClass, - MyVeryVeryVeryLongClassName -{ -} + MyVeryVeryVeryLongClassName {} interface VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongClassName extends MyClass, MyOtherClass, MyOtherOtherOtherClass, - MyVeryVeryVeryLongClassName -{ -} + MyVeryVeryVeryLongClassName {} ================================================================================ `; diff --git a/tests/intersection-types/__snapshots__/jsfmt.spec.mjs.snap b/tests/intersection-types/__snapshots__/jsfmt.spec.mjs.snap index a9ed25d98..b256c0de6 100644 --- a/tests/intersection-types/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/intersection-types/__snapshots__/jsfmt.spec.mjs.snap @@ -20,9 +20,7 @@ function generateSlug(HasTitle&HasId $post) return strtolower($post->getTitle()) . $post->getId(); } -function test(foo|bar &$input) -{ -} +function test(foo|bar &$input) {} ================================================================================ `; diff --git a/tests/method/__snapshots__/jsfmt.spec.mjs.snap b/tests/method/__snapshots__/jsfmt.spec.mjs.snap index ea3783724..2e31fde39 100644 --- a/tests/method/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/method/__snapshots__/jsfmt.spec.mjs.snap @@ -73,9 +73,7 @@ class Foo return "private"; } - public function emptyMethod() - { - } + public function emptyMethod() {} public function emptyMethodWithComment() { @@ -87,9 +85,7 @@ class Foo print "Inside \`aMemberFunc()\`"; } - function bMemberFunc() - { - } + function bMemberFunc() {} } ================================================================================ diff --git a/tests/nowdoc/__snapshots__/jsfmt.spec.mjs.snap b/tests/nowdoc/__snapshots__/jsfmt.spec.mjs.snap index e319852be..6585fb8c3 100644 --- a/tests/nowdoc/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/nowdoc/__snapshots__/jsfmt.spec.mjs.snap @@ -1412,8 +1412,7 @@ string string string EOD - ) { - } + ) {} public function test1( $var, $var = <<<'EOD' @@ -1421,8 +1420,7 @@ string string string EOD - ) { - } + ) {} public function test2( $var = <<<'EOD' string @@ -1431,8 +1429,7 @@ string EOD , $var - ) { - } + ) {} } declare(ticks=1) { @@ -3486,8 +3483,7 @@ class Foo string string EOD - ) { - } + ) {} public function test1( $var, $var = <<<'EOD' @@ -3495,8 +3491,7 @@ class Foo string string EOD - ) { - } + ) {} public function test2( $var = <<<'EOD' string @@ -3505,8 +3500,7 @@ class Foo EOD , $var - ) { - } + ) {} } declare(ticks=1) { diff --git a/tests/parameter/__snapshots__/jsfmt.spec.mjs.snap b/tests/parameter/__snapshots__/jsfmt.spec.mjs.snap index b9219ade6..7ae918b88 100644 --- a/tests/parameter/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/parameter/__snapshots__/jsfmt.spec.mjs.snap @@ -246,8 +246,7 @@ function foo( $arg = 'string string string' -) { -} +) {} function foo( $arg = 'string @@ -256,8 +255,7 @@ string', $arg = 'string string string' -) { -} +) {} function foo( $a, @@ -265,8 +263,7 @@ function foo( string string', $c -) { -} +) {} ================================================================================ `; @@ -322,104 +319,44 @@ class Foo extends ArrayIterator { ================================================================================ diff --git a/tests/traits/__snapshots__/jsfmt.spec.mjs.snap b/tests/traits/__snapshots__/jsfmt.spec.mjs.snap index b6929124b..da9e82484 100644 --- a/tests/traits/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/traits/__snapshots__/jsfmt.spec.mjs.snap @@ -106,9 +106,7 @@ class Partial } } -trait emptyTrait -{ -} +trait emptyTrait {} trait EmptyTraitWithComment { diff --git a/tests/uniontypes/__snapshots__/jsfmt.spec.mjs.snap b/tests/uniontypes/__snapshots__/jsfmt.spec.mjs.snap index 065050c78..acb78e458 100644 --- a/tests/uniontypes/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/uniontypes/__snapshots__/jsfmt.spec.mjs.snap @@ -22,21 +22,15 @@ interface UnionInterface { function do(string|int $in):string|bool; } =====================================output===================================== Date: Tue, 6 Aug 2024 16:23:40 -0400 Subject: [PATCH 09/28] docs: add a clear note that we do not strictly follow PSR/PER (#2394) * docs: add a clear note that we do not strictly follow PSR/PER Closes #2288 * docs: improve verbiage of standard adherence note Suggestion comes from the code review, thank you! Co-authored-by: Christian Zosel --------- Co-authored-by: Christian Zosel --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b15bf1450..47a6d34c7 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,10 @@ Prettier is an opinionated code formatter. It enforces a consistent style by par This plugin adds support for the PHP language to Prettier. +> [!NOTE] +> +> This plugin uses PSR / PER as guidance when making formatting decisions, but does not aim to be fully PSR / PER compliant. The idea is to stay reasonably close to how Prettier for JS works. + ### Can this be used in production? We're considering the plugin to be stable when pure PHP files are formatted. Formatting of files that contain mixed PHP and HTML is still considered unstable - please see [open issues with the tag "inline"](https://github.com/prettier/plugin-php/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Ainline) for details. From 6f7d65d75773401705d2bc316ef9e0ea332cc6c5 Mon Sep 17 00:00:00 2001 From: nisbet-hubbard <87453615+nisbet-hubbard@users.noreply.github.com> Date: Sat, 12 Oct 2024 03:47:45 +0800 Subject: [PATCH 10/28] Update README.md (#2405) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 47a6d34c7..34e179ebc 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ yarn: ```bash yarn add --dev prettier @prettier/plugin-php -# or globally +# or globally (pending https://github.com/prettier/prettier/issues/15141) yarn global add prettier @prettier/plugin-php ``` @@ -97,7 +97,7 @@ npm: ```bash npm install --save-dev prettier @prettier/plugin-php -# or globally +# or globally (pending https://github.com/prettier/prettier/issues/15141) npm install --global prettier @prettier/plugin-php ``` @@ -274,7 +274,7 @@ Sublime Text support is available through Package Control and the [JsPrettier](h ### Vim -Regarding plugin support in the official plugin vim-prettier see [this issue](https://github.com/prettier/vim-prettier/issues/119). +The official [prettier plugin for vim](https://github.com/prettier/vim-prettier) has built-in support for plugin-php since 1.0. #### ALE From 5f75fea7979af4dd530ea8cac827fb6314264621 Mon Sep 17 00:00:00 2001 From: Shuhei Hayashibara Date: Tue, 31 Dec 2024 16:16:18 +0900 Subject: [PATCH 11/28] =?UTF-8?q?chore(deps):=20=F0=9F=A4=96=20bump=20php-?= =?UTF-8?q?parser=20from=203.1.5=20to=203.2.1=20(#2411)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 🤖 bump php-parser from 3.1.5 to 3.2.1 * test: 💍 add test for reserved keyword after null-safe operator --- .../__snapshots__/jsfmt.spec.mjs.snap | 28 +++++++++++++++++++ .../reserved-keyword.php | 8 ++++++ yarn.lock | 6 ++-- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 tests/nullsafepropertylookup/reserved-keyword.php diff --git a/tests/nullsafepropertylookup/__snapshots__/jsfmt.spec.mjs.snap b/tests/nullsafepropertylookup/__snapshots__/jsfmt.spec.mjs.snap index 277db0f0a..2d90ad71b 100644 --- a/tests/nullsafepropertylookup/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/nullsafepropertylookup/__snapshots__/jsfmt.spec.mjs.snap @@ -76,3 +76,31 @@ $obj->aaaaaaaaaaaaaaaaaaaaaaaa() ================================================================================ `; + +exports[`reserved-keyword.php 1`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.0" +printWidth: 80 + | printWidth +=====================================input====================================== +metaData?->abstract; + +// keyword: class +echo $record->learner->currentEnrollment?->class->grade->code; + + +=====================================output===================================== +metaData?->abstract; + +// keyword: class +echo $record->learner->currentEnrollment?->class->grade->code; + +================================================================================ +`; diff --git a/tests/nullsafepropertylookup/reserved-keyword.php b/tests/nullsafepropertylookup/reserved-keyword.php new file mode 100644 index 000000000..a12045b73 --- /dev/null +++ b/tests/nullsafepropertylookup/reserved-keyword.php @@ -0,0 +1,8 @@ +metaData?->abstract; + +// keyword: class +echo $record->learner->currentEnrollment?->class->grade->code; + diff --git a/yarn.lock b/yarn.lock index 0ea9d0bcd..d72c9f3a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5008,9 +5008,9 @@ path-type@^4.0.0: integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== php-parser@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.1.5.tgz#84500e5b5c6a0907e32c38b931bb4e7d3f275026" - integrity sha512-jEY2DcbgCm5aclzBdfW86GM6VEIWcSlhTBSHN1qhJguVePlYe28GhwS0yoeLYXpM2K8y6wzLwrbq814n2PHSoQ== + version "3.2.1" + resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.2.1.tgz#960916dc03e4979a59435f9dd9eb03f2e86d8126" + integrity sha512-WT5AMqe39ZdqAxp9Yp7uR6e3clBWlT1dxHHs49GmnDx2d+975NEiLSVy2tRGLdSC9tgdQOLiN1Yz54g1d2cZDQ== picocolors@^1.0.0: version "1.0.0" From 0c87bf75f4b73b3177a8f4c1377dabb1ff62e4f5 Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Sun, 19 Jan 2025 11:40:45 +0100 Subject: [PATCH 12/28] 0.22.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5bb40058d..51a11552d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-php", - "version": "0.22.2", + "version": "0.22.3", "description": "Prettier PHP Plugin", "repository": "prettier/prettier-php", "author": "Lucas Azzola <@azz>", From 718f71da483b29610b9557aba8acc143d3450936 Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Mon, 20 Jan 2025 23:37:00 +0100 Subject: [PATCH 13/28] chore(ci): bump codecov action --- .github/workflows/nodejs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 185170062..256a26764 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -45,7 +45,7 @@ jobs: cache: "yarn" - run: yarn install --frozen-lockfile - run: yarn c8 yarn test:node - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true From c5c56ffc9b4bd803968faad9cb99cc0a0dcbcea0 Mon Sep 17 00:00:00 2001 From: Simon Schwedes <49103248+LordSalmon@users.noreply.github.com> Date: Mon, 20 Jan 2025 23:43:49 +0100 Subject: [PATCH 14/28] fix: parameter comment function attribute removal (#2412) * fix: attributes are getting printed now if any (not the last) parameter have a line comment * chore: add newline * chore: snapshot generation --------- Co-authored-by: Simon Schwedes --- src/printer.mjs | 2 +- .../__snapshots__/jsfmt.spec.mjs.snap | 42 +++++++++++++++++++ tests/attributes/attributes.php | 23 +++++++++- 3 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/printer.mjs b/src/printer.mjs index 066b68f71..cec72d0f7 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -1410,7 +1410,7 @@ function printFunction(path, options, print) { const willBreakDeclaration = declaration.some(willBreak); if (willBreakDeclaration) { - return [printedDeclaration, " ", printedBody]; + return [...declAttrs, printedDeclaration, " ", printedBody]; } return [ diff --git a/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap b/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap index 16622e7c1..7d30d00a9 100644 --- a/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap @@ -90,6 +90,28 @@ class Test } } + +class ParamCommentFunctionAnnotation { + + #[Foo] + function bar( + int $a, // parameter comment + int $b, + ) { + return $a + $b; + } + + #[Foo] + function bar2( + int $a, + int $middle, // parameter comment + int $b, + ) { + return $a + $middle + $b; + } + +} + =====================================output===================================== Date: Mon, 20 Jan 2025 23:45:03 +0100 Subject: [PATCH 15/28] 0.22.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51a11552d..f2c05ea3e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-php", - "version": "0.22.3", + "version": "0.22.4", "description": "Prettier PHP Plugin", "repository": "prettier/prettier-php", "author": "Lucas Azzola <@azz>", From d296027048671030e2cc40fe521432336a6b17ff Mon Sep 17 00:00:00 2001 From: Arthur Green <720jbjxi@duck.com> Date: Wed, 2 Apr 2025 10:19:43 +0400 Subject: [PATCH 16/28] docs: delete Atom code editor from the README.md (#2420) Atom is archived project since December 2022 --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 34e179ebc..e6cc79533 100644 --- a/README.md +++ b/README.md @@ -227,10 +227,6 @@ matrix( ## Editor integration -### Atom - -The official [prettier plugin for atom](https://github.com/prettier/prettier-atom) supports plugins. - ### Visual Studio Code The official [prettier plugin for vscode](https://github.com/prettier/prettier-vscode) supports plugins since Version 1.10.0. To enable it, install the extension and make sure the plugin is installed _locally_ (in your project folder). From 885c1fe5b5d4ac201c36a28e2d3d6a60dbbd67c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Wed, 23 Apr 2025 09:36:14 +0200 Subject: [PATCH 17/28] Add Nova to the Editor List (#2423) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index e6cc79533..4adbe46a6 100644 --- a/README.md +++ b/README.md @@ -272,6 +272,10 @@ Sublime Text support is available through Package Control and the [JsPrettier](h The official [prettier plugin for vim](https://github.com/prettier/vim-prettier) has built-in support for plugin-php since 1.0. +### Nova + +The [Prettier⁺ Extension](https://extensions.panic.com/extensions/stonerl/stonerl.prettier/) has built-in support for plugin-php. + #### ALE The linting plugin ALE has built-in support for prettier and its plugins. Just add prettier to your [list of fixers](https://github.com/w0rp/ale#2ii-fixing). For example: From 198f6b7a2609025f80c04aee6f12324f6ff977ee Mon Sep 17 00:00:00 2001 From: Ocheretovich Date: Sat, 7 Jun 2025 12:54:39 +0300 Subject: [PATCH 18/28] fix(dosc): edited the build badge (#2425) Co-authored-by: fisker Cheung --- README.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 4adbe46a6..e33bb4b03 100644 --- a/README.md +++ b/README.md @@ -8,26 +8,23 @@

Prettier PHP Plugin

- - GitHub Workflow Status + + CI Status npm version - Codecov Coverage Status + Coverage Status - + code style: prettier - - Gitter - - - Follow+Prettier+on+Twitter + + Follow Prettier on X

From da7c4b20e23c0af3bc28204606c81c141d998db6 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Sat, 7 Jun 2025 18:06:47 +0800 Subject: [PATCH 19/28] Run tests on Node.js v22 & v24 (#2429) --- .github/workflows/nodejs.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 256a26764..35ef89556 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -17,8 +17,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: cache: "yarn" - run: yarn install --frozen-lockfile @@ -30,16 +30,16 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - node-version: [16.x, 18.x, 20.x] + node-version: [16.x, 18.x, 20.x, 22.x, 24.x] env: ENABLE_COVERAGE: true AST_COMPARE: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "yarn" @@ -47,7 +47,8 @@ jobs: - run: yarn c8 yarn test:node - uses: codecov/codecov-action@v5 with: - token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true + disable_search: true files: coverage/lcov.info + token: ${{ secrets.CODECOV_TOKEN }} - run: yarn test:standalone From a61a83ffb957fc83e47171a219c12b1add5d359a Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 16 Jun 2025 05:09:59 +0800 Subject: [PATCH 20/28] Update `linguist-languages` to v8 (#2428) --- package.json | 2 +- src/index.mjs | 6 ++---- src/linguist-languages.cjs | 4 ---- yarn.lock | 8 ++++---- 4 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 src/linguist-languages.cjs diff --git a/package.json b/package.json index f2c05ea3e..00d65a721 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "standalone.js" ], "dependencies": { - "linguist-languages": "^7.27.0", + "linguist-languages": "^8.0.0", "php-parser": "^3.1.5" }, "devDependencies": { diff --git a/src/index.mjs b/src/index.mjs index 3450e965c..6a35c034d 100644 --- a/src/index.mjs +++ b/src/index.mjs @@ -1,8 +1,6 @@ import { doc } from "prettier"; -import { - LINGUIST_LANGUAGES_PHP, - LINGUIST_LANGUAGES_HTML_PHP, -} from "./linguist-languages.cjs"; +import LINGUIST_LANGUAGES_PHP from "linguist-languages/data/PHP"; +import LINGUIST_LANGUAGES_HTML_PHP from "linguist-languages/data/HTML_2b_PHP"; import parse from "./parser.mjs"; import print from "./printer.mjs"; import clean from "./clean.mjs"; diff --git a/src/linguist-languages.cjs b/src/linguist-languages.cjs deleted file mode 100644 index 1acbd9386..000000000 --- a/src/linguist-languages.cjs +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -module.exports.LINGUIST_LANGUAGES_PHP = require("linguist-languages/data/PHP"); -module.exports.LINGUIST_LANGUAGES_HTML_PHP = require("linguist-languages/data/HTML+PHP"); diff --git a/yarn.lock b/yarn.lock index d72c9f3a8..ad1fc75cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4633,10 +4633,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linguist-languages@^7.27.0: - version "7.27.0" - resolved "https://registry.yarnpkg.com/linguist-languages/-/linguist-languages-7.27.0.tgz#bf42d6c62bd04655c8f60ed2f77a84eaeae4023a" - integrity sha512-Wzx/22c5Jsv2ag+uKy+ITanGA5hzvBZngrNGDXLTC7ZjGM6FLCYGgomauTkxNJeP9of353OM0pWqngYA180xgw== +linguist-languages@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/linguist-languages/-/linguist-languages-8.0.0.tgz#0ca116ca26bafcf0dd4780c8718aa3b8c0435fa8" + integrity sha512-qfzYmWmM/HOsrO/6YwN2f1DD39p3ObSuq8YgF9JLY9toQO39ZsPBPJoWwTtrqRvhkG+cQUgCOS9h/xRgwfqLxQ== locate-path@^5.0.0: version "5.0.0" From 733a1c20b87be465baa6f8bcdf2c9d8fe6be3e93 Mon Sep 17 00:00:00 2001 From: ntnyq Date: Wed, 25 Jun 2025 22:42:10 +0800 Subject: [PATCH 21/28] feat: add typescript support (#2407) --- index.d.ts | 4 ++++ package.json | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 000000000..462b5f144 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,4 @@ +import type { Plugin } from "prettier"; + +declare const plugin: Plugin; +export default plugin; diff --git a/package.json b/package.json index 00d65a721..e86e00390 100644 --- a/package.json +++ b/package.json @@ -7,17 +7,23 @@ "license": "MIT", "unpkg": "./standalone.js", "browser": "./standalone.js", + "types": "./index.d.ts", "exports": { ".": { + "types": "./index.d.ts", "browser": "./standalone.js", "default": "./src/index.mjs" }, - "./standalone": "./standalone.js", + "./standalone": { + "types": "./index.d.ts", + "default": "./standalone.js" + }, "./package.json": "./package.json" }, "files": [ "src", - "standalone.js" + "standalone.js", + "index.d.ts" ], "dependencies": { "linguist-languages": "^8.0.0", From 54532a3dd6437eef75ac0d24861919a82301bd09 Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Wed, 25 Jun 2025 17:18:50 +0200 Subject: [PATCH 22/28] chore!: upgrade dependencies, drop support for node 16 (#2431) --- .github/workflows/nodejs.yml | 2 +- package.json | 12 +- yarn.lock | 4500 ++++++++++++++++------------------ 3 files changed, 2105 insertions(+), 2409 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 35ef89556..7a644cbad 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -30,7 +30,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - node-version: [16.x, 18.x, 20.x, 22.x, 24.x] + node-version: [18.x, 20.x, 22.x, 24.x] env: ENABLE_COVERAGE: true diff --git a/package.json b/package.json index e86e00390..bfc85b255 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "php-parser": "^3.1.5" }, "devDependencies": { - "@babel/preset-env": "^7.23.6", + "@babel/preset-env": "^7.27.2", "@rollup/plugin-alias": "^5.1.0", "@rollup/plugin-babel": "^6.0.3", "@rollup/plugin-commonjs": "^25.0.7", @@ -39,7 +39,7 @@ "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.3", - "c8": "^9.1.0", + "c8": "^10.1.3", "cross-env": "^7.0.2", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", @@ -47,11 +47,11 @@ "eslint-plugin-jest": "27.6.3", "eslint-plugin-prettier": "5.1.3", "eslint-plugin-prettier-doc": "^1.1.0", - "jest": "29.7.0", - "jest-environment-jsdom": "29.7.0", - "jest-light-runner": "^0.6.0", + "jest": "30.0.3", + "jest-environment-jsdom": "30.0.2", + "jest-light-runner": "^0.7.9", "jest-snapshot-serializer-raw": "^2.0.0", - "prettier": "^3.0.1", + "prettier": "^3.6.1", "rollup": "^3.28.1", "strip-ansi": "^7.1.0" }, diff --git a/yarn.lock b/yarn.lock index ad1fc75cb..2811e9120 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,15 +14,26 @@ dependencies: "@jridgewell/trace-mapping" "^0.3.0" -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@asamuzakjp/css-color@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794" + integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw== + dependencies: + "@csstools/css-calc" "^2.1.3" + "@csstools/css-color-parser" "^3.0.9" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + lru-cache "^10.4.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": +"@babel/code-frame@^7.0.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== @@ -51,39 +62,24 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@^7.11.6": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.0.tgz#c58d04d7c6fbfb58ea7681e2b9145cfb62726756" - integrity sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.0" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.0" - "@babel/parser" "^7.18.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" +"@babel/compat-data@^7.27.2": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.5.tgz#7d0658ec1a8420fc866d1df1b03bea0e79934c82" + integrity sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg== "@babel/core@^7.12.3": version "7.17.2" @@ -106,6 +102,27 @@ json5 "^2.1.2" semver "^6.3.0" +"@babel/core@^7.23.9", "@babel/core@^7.27.4": + version "7.27.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.4.tgz#cc1fc55d0ce140a1828d1dd2a2eba285adbfb3ce" + integrity sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.27.3" + "@babel/helpers" "^7.27.4" + "@babel/parser" "^7.27.4" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.27.4" + "@babel/types" "^7.27.3" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/generator@^7.17.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" @@ -115,23 +132,16 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.0.tgz#46d28e8a18fc737b028efb25ab105d74473af43f" - integrity sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg== - dependencies: - "@babel/types" "^7.18.0" - "@jridgewell/gen-mapping" "^0.3.0" - jsesc "^2.5.1" - -"@babel/generator@^7.7.2": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e" - integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw== +"@babel/generator@^7.27.3", "@babel/generator@^7.27.5": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.5.tgz#3eb01866b345ba261b04911020cbe22dd4be8c8c" + integrity sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw== dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" + "@babel/parser" "^7.27.5" + "@babel/types" "^7.27.3" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" @@ -140,14 +150,14 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== +"@babel/helper-annotate-as-pure@^7.27.1": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.27.3" -"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10": +"@babel/helper-compilation-targets@^7.16.7": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== @@ -158,7 +168,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-compilation-targets@^7.22.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -169,22 +179,31 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.15": - version "7.23.10" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" - integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== +"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-member-expression-to-functions" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": +"@babel/helper-create-class-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" + integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.27.1" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== @@ -193,10 +212,19 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" - integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== +"@babel/helper-create-regexp-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" + integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -209,11 +237,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - "@babel/helper-function-name@^7.16.7": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" @@ -222,22 +245,6 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - "@babel/helper-hoist-variables@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -245,19 +252,13 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== +"@babel/helper-member-expression-to-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" + integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== - dependencies: - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" "@babel/helper-module-imports@^7.16.7": version "7.16.7" @@ -266,13 +267,21 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15": +"@babel/helper-module-imports@^7.18.6": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + "@babel/helper-module-transforms@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" @@ -287,60 +296,49 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.27.3": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" + integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.3" -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.27.1" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== +"@babel/helper-plugin-utils@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/helper-replace-supers@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== +"@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" "@babel/helper-simple-access@^7.16.7": version "7.16.7" @@ -349,26 +347,13 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" "@babel/helper-split-export-declaration@^7.16.7": version "7.18.6" @@ -377,18 +362,16 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-string-parser@^7.22.5", "@babel/helper-string-parser@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + "@babel/helper-validator-identifier@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" @@ -404,19 +387,29 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helper-wrap-function@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" - integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helper-wrap-function@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz#b88285009c31427af318d4fe37651cd62a142409" + integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.15" - "@babel/types" "^7.22.19" + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" "@babel/helpers@^7.17.2": version "7.17.2" @@ -427,14 +420,13 @@ "@babel/traverse" "^7.17.0" "@babel/types" "^7.17.0" -"@babel/helpers@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.0.tgz#aff37c3590de42102b54842446146d0205946370" - integrity sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg== +"@babel/helpers@^7.27.4": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.6.tgz#6456fed15b2cb669d2d1fabe84b66b34991d812c" + integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.6" "@babel/highlight@^7.16.7": version "7.18.6" @@ -454,7 +446,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.22.13", "@babel/highlight@^7.23.4": +"@babel/highlight@^7.22.13": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== @@ -477,21 +469,23 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== -"@babel/parser@^7.16.7", "@babel/parser@^7.17.0": +"@babel/parser@^7.17.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== -"@babel/parser@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.0.tgz#10a8d4e656bc01128d299a787aa006ce1a91e112" - integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg== - "@babel/parser@^7.18.10": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.27.4", "@babel/parser@^7.27.5": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.5.tgz#ed22f871f110aa285a6fd934a0efed621d118826" + integrity sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg== + dependencies: + "@babel/types" "^7.27.3" + "@babel/parser@^7.22.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" @@ -502,29 +496,44 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" - integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" + integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" - integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" - integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" + integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -545,7 +554,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -559,35 +568,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== +"@babel/plugin-syntax-import-assertions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== dependencies: - "@babel/helper-plugin-utils" "^7.8.0" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-import-assertions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" - integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" - integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -601,14 +596,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -622,7 +617,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -657,19 +652,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== +"@babel/plugin-syntax-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -679,478 +674,466 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" - integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" - integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== +"@babel/plugin-transform-async-generator-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" + integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-async-to-generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" - integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== +"@babel/plugin-transform-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" + integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" -"@babel/plugin-transform-block-scoped-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" - integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" - integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== +"@babel/plugin-transform-block-scoping@^7.27.1": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz#98c37485d815533623d992fd149af3e7b3140157" + integrity sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" - integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== +"@babel/plugin-transform-class-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" + integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" - integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== +"@babel/plugin-transform-class-static-block@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" + integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.23.8": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" - integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== +"@babel/plugin-transform-classes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" + integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.27.1" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" - integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== +"@babel/plugin-transform-computed-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.15" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" -"@babel/plugin-transform-destructuring@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" - integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== +"@babel/plugin-transform-destructuring@^7.27.1", "@babel/plugin-transform-destructuring@^7.27.3": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz#3cc8299ed798d9a909f8d66ddeb40849ec32e3b0" + integrity sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-dotall-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" - integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== +"@babel/plugin-transform-dotall-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" + integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-duplicate-keys@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" - integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-dynamic-import@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" - integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" + integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-exponentiation-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" - integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-export-namespace-from@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" - integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== +"@babel/plugin-transform-exponentiation-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" + integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-for-of@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" - integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-function-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" - integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== dependencies: - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-json-strings@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" - integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" - integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== +"@babel/plugin-transform-json-strings@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" + integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-logical-assignment-operators@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" - integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-member-expression-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" - integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== +"@babel/plugin-transform-logical-assignment-operators@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" + integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-amd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" - integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-systemjs@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" - integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== +"@babel/plugin-transform-modules-commonjs@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-umd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" - integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== +"@babel/plugin-transform-modules-systemjs@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" + integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-new-target@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" - integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" - integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-numeric-separator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" - integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== +"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" + integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-rest-spread@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" - integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== +"@babel/plugin-transform-numeric-separator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" + integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-super@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" - integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== +"@babel/plugin-transform-object-rest-spread@^7.27.2": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz#ce130aa73fef828bc3e3e835f9bc6144be3eb1c0" + integrity sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.3" + "@babel/plugin-transform-parameters" "^7.27.1" -"@babel/plugin-transform-optional-catch-binding@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" - integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" -"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" - integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== +"@babel/plugin-transform-optional-catch-binding@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" + integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-parameters@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== +"@babel/plugin-transform-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" + integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-private-methods@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" - integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== +"@babel/plugin-transform-parameters@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" + integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-property-in-object@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" - integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== +"@babel/plugin-transform-private-methods@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" + integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-property-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" - integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== +"@babel/plugin-transform-private-property-in-object@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" + integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" - integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.2" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-reserved-words@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" - integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== +"@babel/plugin-transform-regenerator@^7.27.1": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz#0c01f4e0e4cced15f68ee14b9c76dac9813850c7" + integrity sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-shorthand-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" - integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== +"@babel/plugin-transform-regexp-modifiers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" + integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" - integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-sticky-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" - integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-template-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" - integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== +"@babel/plugin-transform-spread@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-typeof-symbol@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" - integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-escapes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" - integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-property-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" - integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" - integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-sets-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" - integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== +"@babel/plugin-transform-unicode-property-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" + integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-env@^7.23.6": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669" - integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A== +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.23.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-sets-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" + integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/preset-env@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.27.2.tgz#106e6bfad92b591b1f6f76fd4cf13b7725a7bf9a" + integrity sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.23.3" - "@babel/plugin-syntax-import-attributes" "^7.23.3" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-import-assertions" "^7.27.1" + "@babel/plugin-syntax-import-attributes" "^7.27.1" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.9" - "@babel/plugin-transform-async-to-generator" "^7.23.3" - "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.4" - "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.8" - "@babel/plugin-transform-computed-properties" "^7.23.3" - "@babel/plugin-transform-destructuring" "^7.23.3" - "@babel/plugin-transform-dotall-regex" "^7.23.3" - "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.4" - "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.6" - "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.4" - "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" - "@babel/plugin-transform-member-expression-literals" "^7.23.3" - "@babel/plugin-transform-modules-amd" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-modules-systemjs" "^7.23.9" - "@babel/plugin-transform-modules-umd" "^7.23.3" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" - "@babel/plugin-transform-numeric-separator" "^7.23.4" - "@babel/plugin-transform-object-rest-spread" "^7.23.4" - "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.4" - "@babel/plugin-transform-optional-chaining" "^7.23.4" - "@babel/plugin-transform-parameters" "^7.23.3" - "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.4" - "@babel/plugin-transform-property-literals" "^7.23.3" - "@babel/plugin-transform-regenerator" "^7.23.3" - "@babel/plugin-transform-reserved-words" "^7.23.3" - "@babel/plugin-transform-shorthand-properties" "^7.23.3" - "@babel/plugin-transform-spread" "^7.23.3" - "@babel/plugin-transform-sticky-regex" "^7.23.3" - "@babel/plugin-transform-template-literals" "^7.23.3" - "@babel/plugin-transform-typeof-symbol" "^7.23.3" - "@babel/plugin-transform-unicode-escapes" "^7.23.3" - "@babel/plugin-transform-unicode-property-regex" "^7.23.3" - "@babel/plugin-transform-unicode-regex" "^7.23.3" - "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.27.1" + "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.27.1" + "@babel/plugin-transform-class-properties" "^7.27.1" + "@babel/plugin-transform-class-static-block" "^7.27.1" + "@babel/plugin-transform-classes" "^7.27.1" + "@babel/plugin-transform-computed-properties" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" + "@babel/plugin-transform-numeric-separator" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.27.2" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-private-methods" "^7.27.1" + "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.27.1" + "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.8" - babel-plugin-polyfill-corejs3 "^0.9.0" - babel-plugin-polyfill-regenerator "^0.5.5" - core-js-compat "^3.31.0" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.40.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": @@ -1167,13 +1150,6 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.8.4": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" - integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== - dependencies: - regenerator-runtime "^0.14.0" - "@babel/template@^7.16.7": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" @@ -1192,23 +1168,14 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/template@^7.22.15": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" - integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== +"@babel/template@^7.27.1", "@babel/template@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.23.9" - -"@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" "@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0": version "7.17.0" @@ -1226,23 +1193,20 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.0.tgz#0e5ec6db098660b2372dd63d096bf484e32d27ba" - integrity sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw== +"@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.4": + version "7.27.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.4.tgz#b0045ac7023c8472c3d35effd7cc9ebd638da6ea" + integrity sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.0" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.0" - debug "^4.1.0" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.3" + "@babel/parser" "^7.27.4" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.3" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.3.0": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA== @@ -1251,7 +1215,15 @@ "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" -"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.9", "@babel/types@^7.4.4": +"@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.6.tgz#a434ca7add514d4e646c80f7375c0aa2befc5535" + integrity sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.4.4": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== @@ -1265,6 +1237,61 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@bcoe/v8-coverage@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz#bbe12dca5b4ef983a0d0af4b07b9bc90ea0ababa" + integrity sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA== + +"@csstools/color-helpers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" + integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== + +"@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== + +"@csstools/css-color-parser@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz#79fc68864dd43c3b6782d2b3828bc0fa9d085c10" + integrity sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg== + dependencies: + "@csstools/color-helpers" "^5.0.2" + "@csstools/css-calc" "^2.1.4" + +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== + +"@csstools/css-tokenizer@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== + +"@emnapi/core@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.4.3.tgz#9ac52d2d5aea958f67e52c40a065f51de59b77d6" + integrity sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g== + dependencies: + "@emnapi/wasi-threads" "1.0.2" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d" + integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz#977f44f844eac7d6c138a415a123818c655f874c" + integrity sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA== + dependencies: + tslib "^2.4.0" + "@eslint-community/eslint-utils@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518" @@ -1316,6 +1343,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -1332,323 +1371,238 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.0.0-alpha.2.tgz#d0121888af91a9b201088f2939b083d57ec96416" - integrity sha512-UX4wXwMnQuJX4PAxVhkbH9QLANx5egfrDgisNZqvJYGFI9C407ByTTYttVn7hQ4AHaMYYw4w0lZTX0E4GGVqTA== +"@jest/console@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.0.2.tgz#e2bf6c7703d45f9824d77c7332388c3e1685afd7" + integrity sha512-krGElPU0FipAqpVZ/BRZOy0MZh/ARdJ0Nj+PiH1ykFY1+VpBlYNLjdjVA5CFKxnKR6PFqFutO4Z7cdK9BlGiDA== dependencies: - "@jest/types" "30.0.0-alpha.2" + "@jest/types" "30.0.1" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" + chalk "^4.1.2" + jest-message-util "30.0.2" + jest-util "30.0.2" slash "^3.0.0" -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" +"@jest/core@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.0.3.tgz#87967dd3ea6bd6bc98e99aa4b47bfbb0b7f2a77e" + integrity sha512-Mgs1N+NSHD3Fusl7bOq1jyxv1JDAUwjy+0DhVR93Q6xcBP9/bAQ+oZhXb5TTnP5sQzAHgb7ROCKQ2SnovtxYtg== + dependencies: + "@jest/console" "30.0.2" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.0.2" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.0.2" + jest-config "30.0.3" + jest-haste-map "30.0.2" + jest-message-util "30.0.2" + jest-regex-util "30.0.1" + jest-resolve "30.0.2" + jest-resolve-dependencies "30.0.3" + jest-runner "30.0.3" + jest-runtime "30.0.3" + jest-snapshot "30.0.3" + jest-util "30.0.2" + jest-validate "30.0.2" + jest-watcher "30.0.2" + micromatch "^4.0.8" + pretty-format "30.0.2" slash "^3.0.0" -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== -"@jest/environment@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.0.0-alpha.2.tgz#3ac144fac515f09cd163c09ff40a32dfb2f2440d" - integrity sha512-rlSvTu+VmsTi9rhAVX691FdAGbYJKCS7nB9eImkxvIIfF5ebvQbh8Wzot8lRWB3mEzu9W0vLX3RoUzJXqI5W1w== +"@jest/environment-jsdom-abstract@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.0.2.tgz#3538bcc206704a4a37ee18afcb5b88ce55f02dc4" + integrity sha512-8aMoEzGdUuJeQl71BUACkys1ZEX437AF376VBqdYXsGFd4l3F1SdTjFHmNq8vF0Rp+CYhUyxa0kRAzXbBaVzfQ== dependencies: - "@jest/fake-timers" "30.0.0-alpha.2" - "@jest/types" "30.0.0-alpha.2" + "@jest/environment" "30.0.2" + "@jest/fake-timers" "30.0.2" + "@jest/types" "30.0.1" + "@types/jsdom" "^21.1.7" "@types/node" "*" - jest-mock "30.0.0-alpha.2" + jest-mock "30.0.2" + jest-util "30.0.2" -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== +"@jest/environment@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.0.2.tgz#1b0d055070e97f697e9edb25059e9435221cbe65" + integrity sha512-hRLhZRJNxBiOhxIKSq2UkrlhMt3/zVFQOAi5lvS8T9I03+kxsbflwHJEF+eXEYXCrRGRhHwECT7CDk6DyngsRA== dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/fake-timers" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.0.0-alpha.2.tgz#367a82236ed81da1ed97720eb6b5124d3933c87c" - integrity sha512-0x3FURwGPcFtHlLpBoUv1izJElUAK6B8w8346Dkb6Hn/B+nqgDZzU7dkLek6MuTCWd+x+Zuye926xUrzJeTpUg== - dependencies: - jest-get-type "30.0.0-alpha.2" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" + jest-mock "30.0.2" -"@jest/expect@30.0.0-alpha.2", "@jest/expect@^30.0.0-alpha.1": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.0.0-alpha.2.tgz#2617099bd033779d0cd9dc021c96cfac3d9cc461" - integrity sha512-iXESBUhHh9JSg9sK7XiYSUYb09e7tcSY05fMHj1iGmwVJsGU/k0XL1bFVObzbyTDbuPHh4wv7nharEh3UwVlxA== +"@jest/expect-utils@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.0.3.tgz#2a9fb40110c8a13ae464da41f877df90d2e6bc3b" + integrity sha512-SMtBvf2sfX2agcT0dA9pXwcUrKvOSDqBY4e4iRfT+Hya33XzV35YVg+98YQFErVGA/VR1Gto5Y2+A6G9LSQ3Yg== dependencies: - expect "30.0.0-alpha.2" - jest-snapshot "30.0.0-alpha.2" + "@jest/get-type" "30.0.1" -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== +"@jest/expect@30.0.3", "@jest/expect@^30.0.0": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.0.3.tgz#9653e868ca27dd2194f6c20c81b8a690f9669465" + integrity sha512-73BVLqfCeWjYWPEQoYjiRZ4xuQRhQZU0WdgvbyXGRHItKQqg5e6mt2y1kVhzLSuZpmUnccZHbGynoaL7IcLU3A== dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" + expect "30.0.3" + jest-snapshot "30.0.3" -"@jest/fake-timers@30.0.0-alpha.2", "@jest/fake-timers@^30.0.0-alpha.1": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.0.0-alpha.2.tgz#93f4d65ccf39a97855a22763dbfe27773424c683" - integrity sha512-jngoA5we8/41JzNK0Vq/C4s9cnjzcVufhMWrawF6EEY6N8O9hgDLn2um2R/3XDj85rvZWCl1dp3ca2PTPH0JLw== +"@jest/fake-timers@30.0.2", "@jest/fake-timers@^30.0.0": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.0.2.tgz#ec758b28ae6f63a49eda9e8d6af274d152d37c09" + integrity sha512-jfx0Xg7l0gmphTY9UKm5RtH12BlLYj/2Plj6wXjVW5Era4FZKfXeIvwC67WX+4q8UCFxYS20IgnMcFBcEU0DtA== dependencies: - "@jest/types" "30.0.0-alpha.2" - "@sinonjs/fake-timers" "^11.1.0" + "@jest/types" "30.0.1" + "@sinonjs/fake-timers" "^13.0.0" "@types/node" "*" - jest-message-util "30.0.0-alpha.2" - jest-mock "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + jest-message-util "30.0.2" + jest-mock "30.0.2" + jest-util "30.0.2" + +"@jest/get-type@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.0.1.tgz#0d32f1bbfba511948ad247ab01b9007724fc9f52" + integrity sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw== + +"@jest/globals@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.0.3.tgz#9c9ef55e6f5e6b7e946244bdbf2af85044b7bb04" + integrity sha512-fIduqNyYpMeeSr5iEAiMn15KxCzvrmxl7X7VwLDRGj7t5CoHtbF+7K3EvKk32mOUIJ4kIvFRlaixClMH2h/Vaw== + dependencies: + "@jest/environment" "30.0.2" + "@jest/expect" "30.0.3" + "@jest/types" "30.0.1" + jest-mock "30.0.2" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.0.0-alpha.2.tgz#76a3cca5bed149160bf72d967abf6668267be1c0" - integrity sha512-5t2CFIcaDuHGodxTenI7g8MWjLPE00s9IuckpOnFDhHH2Vui0vXNTgU1ExwXffsFZPnj+9GDo1wbjHCNUYK7KQ== - dependencies: - "@jest/environment" "30.0.0-alpha.2" - "@jest/expect" "30.0.0-alpha.2" - "@jest/types" "30.0.0-alpha.2" - jest-mock "30.0.0-alpha.2" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + jest-regex-util "30.0.1" + +"@jest/reporters@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.0.2.tgz#e804435ab77cd05b7e8732b91006cd00bd822399" + integrity sha512-l4QzS/oKf57F8WtPZK+vvF4Io6ukplc6XgNFu4Hd/QxaLEO9f+8dSFzUua62Oe0HKlCUjKHpltKErAgDiMJKsA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" + "@jest/console" "30.0.2" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + "@jridgewell/trace-mapping" "^0.3.25" "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" istanbul-lib-coverage "^3.0.0" istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" + istanbul-lib-source-maps "^5.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" + jest-message-util "30.0.2" + jest-util "30.0.2" + jest-worker "30.0.2" slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" + string-length "^4.0.2" v8-to-istanbul "^9.0.1" -"@jest/schemas@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.0-alpha.2.tgz#c8cb82e15e324777cc3ae1bc927ed9188b221c2d" - integrity sha512-cmXKHZ2oz0OK1aUg8HR3OT4jAUq+mBLtkOOwFdzmMFKk4gFjGcjevSMN/sLs1daMcXl0TMA1Algh9LVW0+bWwQ== - dependencies: - "@sinclair/typebox" "^0.31.0" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== +"@jest/schemas@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.1.tgz#27c00d707d480ece0c19126af97081a1af3bc46e" + integrity sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w== dependencies: - "@sinclair/typebox" "^0.27.8" + "@sinclair/typebox" "^0.34.0" -"@jest/source-map@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.0-alpha.2.tgz#c31d5d629a06690250beb6e9817ec1b520d6e14c" - integrity sha512-ne+xzSDUFYq1ZGCu80J3rMsCbXuFMCAGDdOcggDGZ8Gyyp1Vb5PrVyJ489062zWPJ6DIkMtLN7JMKmBJCmThOg== +"@jest/snapshot-utils@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.0.1.tgz#536108aa6b74858d758ae3b5229518c3d818bd68" + integrity sha512-6Dpv7vdtoRiISEFwYF8/c7LIvqXD7xDXtLPNzC2xqAfBznKip0MQM+rkseKwUPUpv2PJ7KW/YsnwWXrIL2xF+A== dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.0.0-alpha.2.tgz#151d5218abaa192bb31c0fd3bd3ee4919e368440" - integrity sha512-m1pUfckAd6lwB56h92C9hFj8znl88Z1P+Pv4cqj6RMm4L5I0t0dsDKUSj+MYN3jhzW84VLhvwLOLkV4qXG6Tdg== - dependencies: - "@jest/console" "30.0.0-alpha.2" - "@jest/types" "30.0.0-alpha.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" + "@jest/types" "30.0.1" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" -"@jest/transform@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.0.0-alpha.2.tgz#6a32d9040fd8edc77a13381727ee23dbc09550e6" - integrity sha512-emrmGUS461TMgqr+UXzYDfASJwx6Rqbhw1B/2U7rfD+j57Z3nWCu4c80FabGdQUkKZcaJAap6VFxl5qYAPoW5g== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "30.0.0-alpha.2" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.2" - jest-regex-util "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - micromatch "^4.0.4" - pirates "^4.0.4" +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.1.tgz#305ebec50468f13e658b3d5c26f85107a5620aaa" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.0.2.tgz#786849e33da6060381c508986fa7309ff855a367" + integrity sha512-KKMuBKkkZYP/GfHMhI+cH2/P3+taMZS3qnqqiPC1UXZTJskkCS+YU/ILCtw5anw1+YsTulDHFpDo70mmCedW8w== + dependencies: + "@jest/console" "30.0.2" + "@jest/types" "30.0.1" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.0.2.tgz#2693692d285b1c929ed353f7f0b7cbea51c57515" + integrity sha512-fbyU5HPka0rkalZ3MXVvq0hwZY8dx3Y6SCqR64zRmh+xXlDeFl0IdL4l9e7vp4gxEXTYHbwLFA1D+WW5CucaSw== + dependencies: + "@jest/test-result" "30.0.2" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" slash "^3.0.0" - write-file-atomic "^5.0.0" -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== +"@jest/transform@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.0.2.tgz#62ba84fcc2389ab751e7ec923958c9b1163d90c3" + integrity sha512-kJIuhLMTxRF7sc0gPzPtCDib/V9KwW3I2U25b+lYCYMVqHHSrcZopS8J8H+znx9yixuFv+Iozl8raLt/4MoxrA== dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" + "@babel/core" "^7.27.4" + "@jest/types" "30.0.1" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.0" + chalk "^4.1.2" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + jest-regex-util "30.0.1" + jest-util "30.0.2" + micromatch "^4.0.8" + pirates "^4.0.7" slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@30.0.0-alpha.2": - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.0-alpha.2.tgz#32722a6103a9963d531d5b502fb31623830a9417" - integrity sha512-kQ2aDSVtTqrglSgVMe7N11nQtSgy3Q2/Gm1uqDS7eRyD+UG6UFAiWmAQ43YmUkifQE6xtenMTTyuAiznRCMuFw== - dependencies: - "@jest/schemas" "30.0.0-alpha.2" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" + write-file-atomic "^5.0.1" -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== +"@jest/types@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.1.tgz#a46df6a99a416fa685740ac4264b9f9cd7da1598" + integrity sha512-HGwoYRVF0QSKJu1ZQX0o5ZrUrrhj0aOOFA8hXrumD7SIzjouevhawbTjmXdwOmURdGluU9DM/XvGm3NyFoiQjw== dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.1" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" @@ -1659,6 +1613,15 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" @@ -1669,16 +1632,16 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/source-map@^0.3.3": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" @@ -1687,11 +1650,16 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + "@jridgewell/trace-mapping@^0.3.0": version "0.3.4" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" @@ -1708,7 +1676,15 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": version "0.3.19" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== @@ -1716,6 +1692,15 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz#192c1610e1625048089ab4e35bc0649ce478500e" + integrity sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.9.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1737,29 +1722,25 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pkgr/core@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" +"@pkgr/core@^0.2.4": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058" + integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg== "@rollup/plugin-alias@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz#99a94accc4ff9a3483be5baeedd5d7da3b597e93" - integrity sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ== - dependencies: - slash "^4.0.0" + version "5.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz#53601d88cda8b1577aa130b4a6e452283605bf26" + integrity sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ== "@rollup/plugin-babel@^6.0.3": version "6.0.4" @@ -1770,9 +1751,9 @@ "@rollup/pluginutils" "^5.0.1" "@rollup/plugin-commonjs@^25.0.7": - version "25.0.7" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" - integrity sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ== + version "25.0.8" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz#c77e608ab112a666b7f2a6bea625c73224f7dd34" + integrity sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A== dependencies: "@rollup/pluginutils" "^5.0.1" commondir "^1.0.1" @@ -1798,21 +1779,20 @@ "@rollup/pluginutils" "^5.1.0" "@rollup/plugin-node-resolve@^15.2.1": - version "15.2.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" - integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== + version "15.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz#66008953c2524be786aa319d49e32f2128296a78" + integrity sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA== dependencies: "@rollup/pluginutils" "^5.0.1" "@types/resolve" "1.20.2" deepmerge "^4.2.2" - is-builtin-module "^3.2.1" is-module "^1.0.0" resolve "^1.22.1" "@rollup/plugin-replace@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz#33d5653dce6d03cb24ef98bef7f6d25b57faefdf" - integrity sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ== + version "5.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz#150c9ee9db8031d9e4580a61a0edeaaed3d37687" + integrity sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ== dependencies: "@rollup/pluginutils" "^5.0.1" magic-string "^0.30.3" @@ -1827,13 +1807,13 @@ terser "^5.17.4" "@rollup/pluginutils@^5.0.1": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" - integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== + version "5.2.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.2.0.tgz#eac25ca5b0bdda4ba735ddaca5fbf26bd435f602" + integrity sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" - picomatch "^2.3.1" + picomatch "^4.0.2" "@rollup/pluginutils@^5.1.0": version "5.1.0" @@ -1844,56 +1824,39 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinclair/typebox@^0.31.0": - version "0.31.28" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.31.28.tgz#b68831e7bc7d09daac26968ea32f42bedc968ede" - integrity sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ== - -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" +"@sinclair/typebox@^0.34.0": + version "0.34.37" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.37.tgz#f331e4db64ff8195e9e3d8449343c85aaa237d6e" + integrity sha512-2TRuQVgQYfy+EzHRTIvkhv2ADEouJ2xNS/Vq+W5EuuewBdOrvATvljZTxHWZSTYr2sTjTHpGvucaGAt67S2akw== -"@sinonjs/commons@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" - integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== +"@sinonjs/fake-timers@^13.0.0": + version "13.0.5" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz#36b9dbc21ad5546486ea9173d6bea063eb1717d5" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== dependencies: - "@sinonjs/commons" "^2.0.0" + "@sinonjs/commons" "^3.0.1" -"@sinonjs/fake-timers@^11.1.0": - version "11.2.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699" - integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== +"@tybys/wasm-util@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355" + integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw== dependencies: - "@sinonjs/commons" "^3.0.0" + tslib "^2.4.0" -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@types/babel__core@^7.1.14": - version "7.1.18" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" @@ -1913,7 +1876,7 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": +"@types/babel__traverse@*": version "7.14.2" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== @@ -1921,22 +1884,20 @@ "@babel/types" "^7.3.0" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" - integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== +"@types/istanbul-lib-coverage@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + "@types/istanbul-lib-report@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" @@ -1944,17 +1905,17 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== +"@types/istanbul-reports@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" -"@types/jsdom@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791" - integrity sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA== +"@types/jsdom@^21.1.7": + version "21.1.7" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-21.1.7.tgz#9edcb09e0b07ce876e7833922d3274149c898cfa" + integrity sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA== dependencies: "@types/node" "*" "@types/tough-cookie" "*" @@ -1980,10 +1941,10 @@ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/stack-utils@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/tough-cookie@*": version "4.0.2" @@ -1995,10 +1956,10 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== +"@types/yargs@^17.0.33": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" @@ -2053,50 +2014,122 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-android-arm-eabi@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.2.tgz#6cb01dde20bef06397ffd4924f502596cb458851" + integrity sha512-tS+lqTU3N0kkthU+rYp0spAYq15DU8ld9kXkaKg9sbQqJNF+WPMuNHZQGCgdxrUOEO0j22RKMwRVhF1HTl+X8A== + +"@unrs/resolver-binding-android-arm64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.2.tgz#1672b533f01f98119095860683496def93929a2e" + integrity sha512-MffGiZULa/KmkNjHeuuflLVqfhqLv1vZLm8lWIyeADvlElJ/GLSOkoUX+5jf4/EGtfwrNFcEaB8BRas03KT0/Q== + +"@unrs/resolver-binding-darwin-arm64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.2.tgz#dad66a21553b1ba4088c6eb922332846550bd9b2" + integrity sha512-dzJYK5rohS1sYl1DHdJ3mwfwClJj5BClQnQSyAgEfggbUwA9RlROQSSbKBLqrGfsiC/VyrDPtbO8hh56fnkbsQ== + +"@unrs/resolver-binding-darwin-x64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.2.tgz#bfaedca218078862f3d536d44269fed94a6158e2" + integrity sha512-gaIMWK+CWtXcg9gUyznkdV54LzQ90S3X3dn8zlh+QR5Xy7Y+Efqw4Rs4im61K1juy4YNb67vmJsCDAGOnIeffQ== + +"@unrs/resolver-binding-freebsd-x64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.2.tgz#bdab0e754c45831522b16df0b6fe4b0ffde22628" + integrity sha512-S7QpkMbVoVJb0xwHFwujnwCAEDe/596xqY603rpi/ioTn9VDgBHnCCxh+UFrr5yxuMH+dliHfjwCZJXOPJGPnw== + +"@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.2.tgz#2bac9c19599888d4ba4787b437b0273ac7a7a9f2" + integrity sha512-+XPUMCuCCI80I46nCDFbGum0ZODP5NWGiwS3Pj8fOgsG5/ctz+/zzuBlq/WmGa+EjWZdue6CF0aWWNv84sE1uw== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.2.tgz#49d27d5d63e5f26cf7b93a0731334b302b9b7fec" + integrity sha512-sqvUyAd1JUpwbz33Ce2tuTLJKM+ucSsYpPGl2vuFwZnEIg0CmdxiZ01MHQ3j6ExuRqEDUCy8yvkDKvjYFPb8Zg== + +"@unrs/resolver-binding-linux-arm64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.2.tgz#95ba5d1654a04b1049d944871e165d786e8da68f" + integrity sha512-UYA0MA8ajkEDCFRQdng/FVx3F6szBvk3EPnkTTQuuO9lV1kPGuTB+V9TmbDxy5ikaEgyWKxa4CI3ySjklZ9lFA== + +"@unrs/resolver-binding-linux-arm64-musl@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.2.tgz#23f90a48b1d343189b1c20c89b694140e2d5a210" + integrity sha512-P/CO3ODU9YJIHFqAkHbquKtFst0COxdphc8TKGL5yCX75GOiVpGqd1d15ahpqu8xXVsqP4MGFP2C3LRZnnL5MA== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.2.tgz#076f2c2e95dbcd4824cc9929bc504151b402ac11" + integrity sha512-uKStFlOELBxBum2s1hODPtgJhY4NxYJE9pAeyBgNEzHgTqTiVBPjfTlPFJkfxyTjQEuxZbbJlJnMCrRgD7ubzw== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.2.tgz#f7de54d45df430c74bbd12794946a55805bed6dd" + integrity sha512-LkbNnZlhINfY9gK30AHs26IIVEZ9PEl9qOScYdmY2o81imJYI4IMnJiW0vJVtXaDHvBvxeAgEy5CflwJFIl3tQ== + +"@unrs/resolver-binding-linux-riscv64-musl@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.2.tgz#ad1fcdcf5f112d7432fcfe38269a084bdccad266" + integrity sha512-vI+e6FzLyZHSLFNomPi+nT+qUWN4YSj8pFtQZSFTtmgFoxqB6NyjxSjAxEC1m93qn6hUXhIsh8WMp+fGgxCoRg== + +"@unrs/resolver-binding-linux-s390x-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.2.tgz#d914a4f12b9048e1a4de0040f64d73274104e301" + integrity sha512-sSO4AlAYhSM2RAzBsRpahcJB1msc6uYLAtP6pesPbZtptF8OU/CbCPhSRW6cnYOGuVmEmWVW5xVboAqCnWTeHQ== + +"@unrs/resolver-binding-linux-x64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.2.tgz#d8f8cddc42ae267ef45ed4b61ff72b9e22aa3b82" + integrity sha512-jkSkwch0uPFva20Mdu8orbQjv2A3G88NExTN2oPTI1AJ+7mZfYW3cDCTyoH6OnctBKbBVeJCEqh0U02lTkqD5w== + +"@unrs/resolver-binding-linux-x64-musl@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.2.tgz#7bfce67acb51b3f4a7cff8383f46600f7b055a96" + integrity sha512-Uk64NoiTpQbkpl+bXsbeyOPRpUoMdcUqa+hDC1KhMW7aN1lfW8PBlBH4mJ3n3Y47dYE8qi0XTxy1mBACruYBaw== + +"@unrs/resolver-binding-wasm32-wasi@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.2.tgz#b133c9b6941aba54eea007ca2f27ff6ce917ae55" + integrity sha512-EpBGwkcjDicjR/ybC0g8wO5adPNdVuMrNalVgYcWi+gYtC1XYNuxe3rufcO7dA76OHGeVabcO6cSkPJKVcbCXQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.11" + +"@unrs/resolver-binding-win32-arm64-msvc@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.2.tgz#5f95f590f06c1e9ba15b24292c956c21a6294b30" + integrity sha512-EdFbGn7o1SxGmN6aZw9wAkehZJetFPao0VGZ9OMBwKx6TkvDuj6cNeLimF/Psi6ts9lMOe+Dt6z19fZQ9Ye2fw== + +"@unrs/resolver-binding-win32-ia32-msvc@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.2.tgz#aac6595c6de6b26e5314372ab977b0f6a869c903" + integrity sha512-JY9hi1p7AG+5c/dMU8o2kWemM8I6VZxfGwn1GCtf3c5i+IKcMo2NQ8OjZ4Z3/itvY/Si3K10jOBQn7qsD/whUA== + +"@unrs/resolver-binding-win32-x64-msvc@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.2.tgz#f755c5229f1401bbff7307d037c6e38fa169ad1d" + integrity sha512-ryoo+EB19lMxAd80ln9BVf8pdOAxLb97amrQ3SFN9OCRn/5M5wvwDgAe4i8ZjhpbiHoDeP8yavcTEnpKBo7lZg== acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.7.1: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" + integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== ajv@^6.12.4: version "6.12.6" @@ -2108,7 +2141,7 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^4.2.1: +ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -2139,15 +2172,20 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: +ansi-styles@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -2232,117 +2270,102 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" +babel-jest@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.0.2.tgz#f627dc5afc3bd5795fc84735b4f1d74f9d4b8e91" + integrity sha512-A5kqR1/EUTidM2YC2YMEUDP2+19ppgOwK0IAd9Swc3q2KqFb5f9PtRUXVeZcngu0z5mDMyZ9zH2huJZSOMLiTQ== + dependencies: + "@jest/transform" "30.0.2" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.0" + babel-preset-jest "30.0.1" + chalk "^4.1.2" + graceful-fs "^4.2.11" slash "^3.0.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +babel-plugin-istanbul@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz#629a178f63b83dc9ecee46fd20266283b1f11280" + integrity sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== +babel-plugin-jest-hoist@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz#f271b2066d2c1fb26a863adb8e13f85b06247125" + integrity sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ== dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.3" + "@types/babel__core" "^7.20.5" -babel-plugin-polyfill-corejs2@^0.4.8: - version "0.4.8" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" - integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.5.0" + "@babel/helper-define-polyfill-provider" "^0.6.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" - integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.5.0" - core-js-compat "^3.34.0" + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" -babel-plugin-polyfill-regenerator@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" - integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.5.0" + "@babel/helper-define-polyfill-provider" "^0.6.4" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +babel-preset-current-node-syntax@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== +babel-preset-jest@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz#7d28db9531bce264e846c8483d54236244b8ae88" + integrity sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw== dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" + babel-plugin-jest-hoist "30.0.1" + babel-preset-current-node-syntax "^1.1.0" balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2352,9 +2375,9 @@ brace-expansion@^1.1.7: concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" @@ -2365,10 +2388,12 @@ braces@^3.0.1: dependencies: fill-range "^7.0.1" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" browserslist@^4.21.9, browserslist@^4.22.2: version "4.22.3" @@ -2380,6 +2405,16 @@ browserslist@^4.21.9, browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" +browserslist@^4.24.0, browserslist@^4.25.0: + version "4.25.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" + integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== + dependencies: + caniuse-lite "^1.0.30001726" + electron-to-chromium "^1.5.173" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -2392,31 +2427,19 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -c8@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-9.1.0.tgz#0e57ba3ab9e5960ab1d650b4a86f71e53cb68112" - integrity sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg== +c8@^10.1.3: + version "10.1.3" + resolved "https://registry.yarnpkg.com/c8/-/c8-10.1.3.tgz#54afb25ebdcc7f3b00112482c6d90d7541ad2fcd" + integrity sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA== dependencies: - "@bcoe/v8-coverage" "^0.2.3" + "@bcoe/v8-coverage" "^1.0.1" "@istanbuljs/schema" "^0.1.3" find-up "^5.0.0" foreground-child "^3.1.1" istanbul-lib-coverage "^3.2.0" istanbul-lib-report "^3.0.1" istanbul-reports "^3.1.6" - test-exclude "^6.0.0" + test-exclude "^7.0.1" v8-to-istanbul "^9.0.0" yargs "^17.7.2" yargs-parser "^21.1.1" @@ -2438,7 +2461,7 @@ call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" -callsites@^3.0.0: +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== @@ -2448,7 +2471,7 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: +camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -2458,6 +2481,11 @@ caniuse-lite@^1.0.30001580: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz#abb2970cc370801dc7e27bf290509dc132cfa390" integrity sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q== +caniuse-lite@^1.0.30001726: + version "1.0.30001726" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz#a15bd87d5a4bf01f6b6f70ae7c97fdfd28b5ae47" + integrity sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw== + chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2467,7 +2495,7 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2480,29 +2508,15 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -ci-info@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" - integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== +ci-info@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7" + integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg== -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" +cjs-module-lexer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz#586e87d4341cb2661850ece5190232ccdebcff8b" + integrity sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA== cliui@^8.0.1: version "8.0.1" @@ -2518,10 +2532,10 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== +collect-v8-coverage@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== color-convert@^1.9.0: version "1.9.3" @@ -2547,13 +2561,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2581,25 +2588,12 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -core-js-compat@^3.31.0, core-js-compat@^3.34.0: - version "3.35.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2" - integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw== - dependencies: - browserslist "^4.22.2" - -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== +core-js-compat@^3.40.0: + version "3.43.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.43.0.tgz#055587369c458795ef316f65e0aabb808fb15840" + integrity sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA== dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" + browserslist "^4.25.0" cross-env@^7.0.2: version "7.0.3" @@ -2617,31 +2611,30 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== +cssstyle@^4.2.1: + version "4.6.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.6.0.tgz#ea18007024e3167f4f105315f3ec2d982bf48ed9" + integrity sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg== dependencies: - cssom "~0.3.6" + "@asamuzakjp/css-color" "^3.2.0" + rrweb-cssom "^0.8.0" -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== +data-urls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" + integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: version "4.3.4" @@ -2657,44 +2650,33 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -decimal.js@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== +debug@^4.3.4: + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + +decimal.js@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" + integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== -dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== +dedent@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.6.0.tgz#79d52d6389b1ffa67d2bcef59ba51847a9d503b2" + integrity sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: +deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - define-data-property@^1.0.1, define-data-property@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" @@ -2704,11 +2686,6 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" @@ -2725,26 +2702,11 @@ define-properties@^1.2.0: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-newline@^3.0.0: +detect-newline@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-30.0.0-alpha.2.tgz#e7457cc887e495a5f9a4e6478e4ecf428bb5acb5" - integrity sha512-gatKDj6z4lFPU1mFkGr3BIyscQLWkrKxzS9JLph7K8etf0qLyOeW6/fEK0XRs5j5DIUS4WdrxuQ+LCMr3UFOiw== - -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2766,18 +2728,21 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.648: version "1.4.656" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz#b374fb7cab9b782a5bc967c0ce0e19826186b9c9" integrity sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q== +electron-to-chromium@^1.5.173: + version "1.5.174" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.174.tgz#c7d273755d4dc9bc4f1d192f6f2092bee42771f3" + integrity sha512-HE43yYdUUiJVjewV2A9EP8o89Kb4AqMKplMQP2IxEPUws1Etu/ZkdsgUDabUZ/WmbP4ZbvJDOcunvbBUPPIfmw== + emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" @@ -2788,11 +2753,21 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== +entities@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2875,6 +2850,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2890,18 +2870,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-config-prettier@9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" @@ -3052,7 +3020,7 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -3091,7 +3059,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -execa@^5.0.0: +execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -3106,47 +3074,22 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== + +expect@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.3.tgz#8bf31a67514f78c5e4ac8d67774192ab95d5ec25" + integrity sha512-HXg6NvK35/cSYZCUKAtmlgCFyqKM4frEPbzrav5hRqb0GMz0E0lS5hfzYjSaiaE5ysnp/qI2aeZkeyeIAOeXzQ== dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expect@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.0-alpha.2.tgz#a00eab3fa5b858126fc0000be9f70831f2fedf11" - integrity sha512-ivb5b401A2evHrMOnYPRzgPojGTuD9fO3VZ9Xm7r5nOFqPevYzpTQM1U60X8xxVkLOQVOagELGUd3BYcQgGHDA== - dependencies: - "@jest/expect-utils" "30.0.0-alpha.2" - jest-get-type "30.0.0-alpha.2" - jest-matcher-utils "30.0.0-alpha.2" - jest-message-util "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - -expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" + "@jest/expect-utils" "30.0.3" + "@jest/get-type" "30.0.1" + jest-matcher-utils "30.0.3" + jest-message-util "30.0.2" + jest-mock "30.0.2" + jest-util "30.0.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -3169,23 +3112,12 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -3197,10 +3129,10 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== +fb-watchman@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -3218,6 +3150,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3254,6 +3193,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + foreground-child@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -3262,26 +3209,12 @@ foreground-child@^3.1.1: cross-spawn "^7.0.0" signal-exit "^4.0.1" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.2: +fsevents@^2.3.3, fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -3350,7 +3283,7 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -3377,6 +3310,18 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob@^10.3.10, glob@^10.4.1: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -3438,10 +3383,10 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.2.9: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +graceful-fs@^4.2.11: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" @@ -3502,40 +3447,39 @@ has@^1.0.3: resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.0, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== +html-encoding-sniffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" + integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== dependencies: - whatwg-encoding "^2.0.0" + whatwg-encoding "^3.1.1" html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== +http-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" + agent-base "^7.1.0" + debug "^4.3.4" -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== +https-proxy-agent@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: - agent-base "6" + agent-base "^7.1.2" debug "4" human-signals@^2.1.0: @@ -3543,11 +3487,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -3568,10 +3507,10 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== +import-local@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -3641,13 +3580,6 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-builtin-module@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== - dependencies: - builtin-modules "^3.3.0" - is-callable@^1.1.3, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -3658,20 +3590,20 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.13.0, is-core-module@^2.13.1: +is-core-module@^2.13.0, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" -is-core-module@^2.8.1: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - dependencies: - has "^1.0.3" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -3679,16 +3611,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3699,7 +3621,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: +is-generator-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== @@ -3711,13 +3633,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -3777,11 +3692,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -3821,13 +3731,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -3843,17 +3746,6 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - istanbul-lib-instrument@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz#7a8af094cbfff1d5bb280f62ce043695ae8dd5b8" @@ -3865,6 +3757,17 @@ istanbul-lib-instrument@^6.0.0: istanbul-lib-coverage "^3.2.0" semver "^7.5.4" +istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -3883,482 +3786,333 @@ istanbul-lib-report@^3.0.1: make-dir "^4.0.0" supports-color "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== dependencies: + "@jridgewell/trace-mapping" "^0.3.23" debug "^4.1.1" istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" istanbul-reports@^3.1.3: version "3.1.4" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -istanbul-reports@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-circus@^30.0.0-alpha.1: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.0.0-alpha.2.tgz#31f77baa3444475432f04258aa5c99c1c8436ee5" - integrity sha512-XoZGhFytqkVxCDQE83i4lmvnUuzQdqFMe16Dgd3gdcpafXDGlci+8r0afwELQjuCitzbFbgQwj28QR5qJmAaUA== - dependencies: - "@jest/environment" "30.0.0-alpha.2" - "@jest/expect" "30.0.0-alpha.2" - "@jest/test-result" "30.0.0-alpha.2" - "@jest/types" "30.0.0-alpha.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "30.0.0-alpha.2" - jest-matcher-utils "30.0.0-alpha.2" - jest-message-util "30.0.0-alpha.2" - jest-runtime "30.0.0-alpha.2" - jest-snapshot "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - p-limit "^3.1.0" - pretty-format "30.0.0-alpha.2" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.0.0-alpha.2.tgz#cbf567523bd0d03c430a9ce5b4e752417be0b055" - integrity sha512-kUCMNs5DhLmB959SXz4TbPVcFi+Da0Uz7FJjlKF02jgYI8EHrmVhL3l8Yw747gOkXW9iK+wU/cKSVq5TRBFrvQ== - dependencies: - chalk "^4.0.0" - diff-sequences "30.0.0-alpha.2" - jest-get-type "30.0.0-alpha.2" - pretty-format "30.0.0-alpha.2" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== +istanbul-reports@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: - detect-newline "^3.0.0" + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" -jest-each@30.0.0-alpha.2, jest-each@^30.0.0-alpha.1: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.0.0-alpha.2.tgz#bf6a74ebd7ce97a96c1a3b8e3f750caa4e2e7026" - integrity sha512-QE+LSPCn8dBIc8JwOr8mKLFcBUostHyyfQkF6LT1CvFJybgArjRLUC68h37gOZw7aNOCQOni50UFYbW5XpXmkg== +jest-changed-files@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.0.2.tgz#2c275263037f8f291b71cbb0a4f639c519ab7eb8" + integrity sha512-Ius/iRST9FKfJI+I+kpiDh8JuUlAISnRszF9ixZDIqJF17FckH5sOzKC8a0wd0+D+8em5ADRHA5V5MnfeDk2WA== dependencies: - "@jest/types" "30.0.0-alpha.2" - chalk "^4.0.0" - jest-get-type "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - pretty-format "30.0.0-alpha.2" + execa "^5.1.1" + jest-util "30.0.2" + p-limit "^3.1.0" -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== +jest-circus@30.0.3, jest-circus@^30.0.0: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.0.3.tgz#d2de4adb92cfdbce18668e27176c1b9f79afdf5a" + integrity sha512-rD9qq2V28OASJHJWDRVdhoBdRs6k3u3EmBzDYcyuMby8XCO3Ll1uq9kyqM41ZcC4fMiPulMVh3qMw0cBvDbnyg== dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-jsdom@29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" - integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/jsdom" "^20.0.0" + "@jest/environment" "30.0.2" + "@jest/expect" "30.0.3" + "@jest/test-result" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jsdom "^20.0.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" + chalk "^4.1.2" + co "^4.6.0" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.0.2" + jest-matcher-utils "30.0.3" + jest-message-util "30.0.2" + jest-runtime "30.0.3" + jest-snapshot "30.0.3" + jest-util "30.0.2" + p-limit "^3.1.0" + pretty-format "30.0.2" + pure-rand "^7.0.0" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-cli@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.0.3.tgz#2340b69c580c471fd9f4a197f969025a545608dd" + integrity sha512-UWDSj0ayhumEAxpYRlqQLrssEi29kdQ+kddP94AuHhZknrE+mT0cR0J+zMHKFe9XPfX3dKQOc2TfWki3WhFTsA== + dependencies: + "@jest/core" "30.0.3" + "@jest/test-result" "30.0.2" + "@jest/types" "30.0.1" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.0.3" + jest-util "30.0.2" + jest-validate "30.0.2" + yargs "^17.7.2" -jest-get-type@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-30.0.0-alpha.2.tgz#c8e27da1f7db6a16e6dd77e5743b7767079ae165" - integrity sha512-iQDim3tMquq2s9tx2TDXOnms/jjXfu2RPXJIu/x/tx4k6ubs8t6Dh407TcTbNqOTBBdJjQVM4aWTHTzYky4BJA== +jest-config@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.0.3.tgz#978853722b9b0f2d0596025ea423cc6c7b603c07" + integrity sha512-j0L4oRCtJwNyZktXIqwzEiDVQXBbQ4dqXuLD/TZdn++hXIcIfZmjHgrViEy5s/+j4HvITmAXbexVZpQ/jnr0bg== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.0.1" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.0.2" + "@jest/types" "30.0.1" + babel-jest "30.0.2" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.0.3" + jest-docblock "30.0.1" + jest-environment-node "30.0.2" + jest-regex-util "30.0.1" + jest-resolve "30.0.2" + jest-runner "30.0.3" + jest-util "30.0.2" + jest-validate "30.0.2" + micromatch "^4.0.8" + parse-json "^5.2.0" + pretty-format "30.0.2" + slash "^3.0.0" + strip-json-comments "^3.1.1" -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== +jest-diff@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.0.3.tgz#50ac056b90fe9151d6266b18a27adeb064c30235" + integrity sha512-Q1TAV0cUcBTic57SVnk/mug0/ASyAqtSIOkr7RAlxx97llRYsM74+E8N5WdGJUlwCKwgxPAkVjKh653h1+HA9A== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.0.1" + chalk "^4.1.2" + pretty-format "30.0.2" + +jest-docblock@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.0.1.tgz#545ff59f2fa88996bd470dba7d3798a8421180b1" + integrity sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.0.2, jest-each@^30.0.0: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.0.2.tgz#402e189784715f5c76f1bb97c29842e79abe99a1" + integrity sha512-ZFRsTpe5FUWFQ9cWTMguCaiA6kkW5whccPy9JjD1ezxh+mJeqmz8naL8Fl/oSbNJv3rgB0x87WBIkA5CObIUZQ== + dependencies: + "@jest/get-type" "30.0.1" + "@jest/types" "30.0.1" + chalk "^4.1.2" + jest-util "30.0.2" + pretty-format "30.0.2" + +jest-environment-jsdom@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-30.0.2.tgz#8f0eb3544ba5abb8de71a2be42b5a95f04485e91" + integrity sha512-lwMpe7hZ81e2PpHj+4nowAzSkC0p8ftRfzC+qEjav9p5ElCs6LAce3y46iLwMS27oL9+/KQe55gUvUDwrlDeJQ== + dependencies: + "@jest/environment" "30.0.2" + "@jest/environment-jsdom-abstract" "30.0.2" + "@types/jsdom" "^21.1.7" + "@types/node" "*" + jsdom "^26.1.0" -jest-haste-map@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.0.0-alpha.2.tgz#9c0c3182a5af074daa91184c7afa30aeb51cd941" - integrity sha512-q8dz47bNq00PMz4r21XFjk0aayZMfyo3DmmEDp5AMT2VdNoZrmz8U6qxSNovnbTkktqGL4kpPzUbUZrUFMxdcw== +jest-environment-node@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.0.2.tgz#3c24d6becb505f344f52cddb15ea506cf3288543" + integrity sha512-XsGtZ0H+a70RsxAQkKuIh0D3ZlASXdZdhpOSBq9WRPq6lhe0IoQHGW0w9ZUaPiZQ/CpkIdprvlfV1QcXcvIQLQ== dependencies: - "@jest/types" "30.0.0-alpha.2" + "@jest/environment" "30.0.2" + "@jest/fake-timers" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - jest-worker "30.0.0-alpha.2" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" + jest-mock "30.0.2" + jest-util "30.0.2" + jest-validate "30.0.2" -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== +jest-haste-map@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.0.2.tgz#83826e7e352fa139dc95100337aff4de58c99453" + integrity sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ== dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" + "@jest/types" "30.0.1" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.0.2" + jest-worker "30.0.2" + micromatch "^4.0.8" walker "^1.0.8" optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-light-runner@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/jest-light-runner/-/jest-light-runner-0.6.0.tgz#fccd8ed087f7fb5f04768cd85b1eecf9162d56d9" - integrity sha512-Qxo2jfcHQTI4/7K1hdqsPRFjNQM6EbnZ+IstD/YCXaoXM09kBMDGOA1I03hMqL02qyiPm6baPtsWLfxiwP8b3A== - dependencies: - "@jest/expect" "^30.0.0-alpha.1" - "@jest/fake-timers" "^30.0.0-alpha.1" - jest-circus "^30.0.0-alpha.1" - jest-each "^30.0.0-alpha.1" - jest-mock "^30.0.0-alpha.1" - jest-snapshot "^30.0.0-alpha.1" + fsevents "^2.3.3" + +jest-leak-detector@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.0.2.tgz#da4df660615d170136d2b468af3bf1c9bff0137e" + integrity sha512-U66sRrAYdALq+2qtKffBLDWsQ/XoNNs2Lcr83sc9lvE/hEpNafJlq2lXCPUBMNqamMECNxSIekLfe69qg4KMIQ== + dependencies: + "@jest/get-type" "30.0.1" + pretty-format "30.0.2" + +jest-light-runner@^0.7.9: + version "0.7.9" + resolved "https://registry.yarnpkg.com/jest-light-runner/-/jest-light-runner-0.7.9.tgz#ba899ec712e52fd0c239d3846bfc061ccdc028b2" + integrity sha512-KlgZvwca6IlRYtpmy+fdgEAi+LP+TjqH96TrAw+56wF8A3JZpW/IzWaukqB4vPVcG8v4y7EF0AMJgZ8u4H6Yew== + dependencies: + "@jest/expect" "^30.0.0" + "@jest/fake-timers" "^30.0.0" + jest-circus "^30.0.0" + jest-each "^30.0.0" + jest-mock "^30.0.0" + jest-snapshot "^30.0.0" + p-limit "^6.2.0" supports-color "^9.2.1" - tinypool "^0.8.1" - -jest-matcher-utils@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.0.0-alpha.2.tgz#a2dd6e33dc464f696a2801a8c78c2a01020a8f60" - integrity sha512-2Ig2XVBFFqAnJsUngDXFqt1J4w981p1b8BK9eZ6NvpyzQ/o44TGaeUmFY5Tp/laWLV2SKTyPI+D8+9EvjMuj+w== - dependencies: - chalk "^4.0.0" - jest-diff "30.0.0-alpha.2" - jest-get-type "30.0.0-alpha.2" - pretty-format "30.0.0-alpha.2" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.0-alpha.2.tgz#67a623aff92884f066aa3c21f54613606b63fc11" - integrity sha512-gAhiwgSIxcXtp6YFxF92abRhc16IJdWT4I318sJ5qo1cRZQPOOeIIUOVXQYeYRiEeo+okBqaY/KXLh5SiE+61A== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "30.0.0-alpha.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "30.0.0-alpha.2" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" + tinypool "0.8.4" + +jest-matcher-utils@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.0.3.tgz#e07e4776bade71a3a7948a9bf8aeede311c5013a" + integrity sha512-hMpVFGFOhYmIIRGJ0HgM9htC5qUiJ00famcc9sRFchJJiLZbbVKrAztcgE6VnXLRxA3XZ0bvNA7hQWh3oHXo/A== + dependencies: + "@jest/get-type" "30.0.1" + chalk "^4.1.2" + jest-diff "30.0.3" + pretty-format "30.0.2" + +jest-message-util@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.2.tgz#9dfdc37570d172f0ffdc42a0318036ff4008837f" + integrity sha512-vXywcxmr0SsKXF/bAD7t7nMamRvPuJkras00gqYeB1V0WllxZrbZ0paRr3XqpFU2sYYjD0qAaG2fRyn/CGZ0aw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.0.1" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.0.2" slash "^3.0.0" - stack-utils "^2.0.3" + stack-utils "^2.0.6" -jest-mock@30.0.0-alpha.2, jest-mock@^30.0.0-alpha.1: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.0-alpha.2.tgz#5cc3a5cc22ce43fa403030bf02a33a282cbedba2" - integrity sha512-jXyAcNg+m42AZ7RMhBMY+zimdyYmv9/Xo7PICUXmYhcJR5Q5fpX9edA8a3zLZTz9+O3I/xxFOpk3ZuuLUfhJoQ== +jest-mock@30.0.2, jest-mock@^30.0.0: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.2.tgz#5e4245f25f6f9532714906cab10a2b9e39eb2183" + integrity sha512-PnZOHmqup/9cT/y+pXIVbbi8ID6U1XHRmbvR7MvUy4SLqhCbwpkmXhLbsWbGewHrV5x/1bF7YDjs+x24/QSvFA== dependencies: - "@jest/types" "30.0.0-alpha.2" + "@jest/types" "30.0.1" "@types/node" "*" - jest-util "30.0.0-alpha.2" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.0-alpha.2.tgz#435e1c039e6112d57033d78975e713a30f3c2c60" - integrity sha512-jb8WuG87I4K9lxbyijxBd8SwNgkqkAclNiFOTb83/WXTmIG3lVPRvAjR4TWAq+v703+7cdlztJlT90BLoA65VQ== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.0.0-alpha.2.tgz#6a63ad788f4d1afb0115e4a4b523393aa4a4bc03" - integrity sha512-QFhZq6w1QXYW+Q0sR4303Gfv1yjtba1T2xCUPCKTPwA4Ce8mNHTkoQ+UcjHY9nLiH+tppJwtp2CRHx2/gK6hCQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.2" - jest-pnp-resolver "^1.2.2" - jest-util "30.0.0-alpha.2" - jest-validate "30.0.0-alpha.2" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" + jest-util "30.0.2" -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" +jest-pnp-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-resolve-dependencies@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.3.tgz#8278f54a84009028b823f5c1f7033fb968405b2f" + integrity sha512-FlL6u7LiHbF0Oe27k7DHYMq2T2aNpPhxnNo75F7lEtu4A6sSw+TKkNNUGNcVckdFoL0RCWREJsC1HsKDwKRZzQ== + dependencies: + jest-regex-util "30.0.1" + jest-snapshot "30.0.3" + +jest-resolve@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.0.2.tgz#4b7c826a35e9657189568e4dafc0ba5f05868cf2" + integrity sha512-q/XT0XQvRemykZsvRopbG6FQUT6/ra+XV6rPijyjT6D0msOyCvR2A5PlWZLd+fH0U8XWKZfDiAgrUNDNX2BkCw== + dependencies: + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + jest-pnp-resolver "^1.2.3" + jest-util "30.0.2" + jest-validate "30.0.2" slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" + unrs-resolver "^1.7.11" + +jest-runner@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.0.3.tgz#baa1d5e77655c70cea9aa4138cfb437f6bada607" + integrity sha512-CxYBzu9WStOBBXAKkLXGoUtNOWsiS1RRmUQb6SsdUdTcqVncOau7m8AJ4cW3Mz+YL1O9pOGPSYLyvl8HBdFmkQ== + dependencies: + "@jest/console" "30.0.2" + "@jest/environment" "30.0.2" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.0.1" + jest-environment-node "30.0.2" + jest-haste-map "30.0.2" + jest-leak-detector "30.0.2" + jest-message-util "30.0.2" + jest-resolve "30.0.2" + jest-runtime "30.0.3" + jest-util "30.0.2" + jest-watcher "30.0.2" + jest-worker "30.0.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.0.0-alpha.2.tgz#76a350ca8ad5bbd41edea0488b8cbc5156c57af4" - integrity sha512-ijxqvv4xTqMPS/ujOCLYAulImuCA6zgBOjPQ1DCPklJ+LMIF46BR1XVobg1q8+Zh8REjmkxsnXnq8dmo3/whvw== - dependencies: - "@jest/environment" "30.0.0-alpha.2" - "@jest/fake-timers" "30.0.0-alpha.2" - "@jest/globals" "30.0.0-alpha.2" - "@jest/source-map" "30.0.0-alpha.2" - "@jest/test-result" "30.0.0-alpha.2" - "@jest/transform" "30.0.0-alpha.2" - "@jest/types" "30.0.0-alpha.2" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.2" - jest-message-util "30.0.0-alpha.2" - jest-mock "30.0.0-alpha.2" - jest-regex-util "30.0.0-alpha.2" - jest-resolve "30.0.0-alpha.2" - jest-snapshot "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" +jest-runtime@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.0.3.tgz#1eb112924426e8b90c37f0ea7da1b51966e252bf" + integrity sha512-Xjosq0C48G9XEQOtmgrjXJwPaUPaq3sPJwHDRaiC+5wi4ZWxO6Lx6jNkizK/0JmTulVNuxP8iYwt77LGnfg3/w== + dependencies: + "@jest/environment" "30.0.2" + "@jest/fake-timers" "30.0.2" + "@jest/globals" "30.0.3" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + jest-message-util "30.0.2" + jest-mock "30.0.2" + jest-regex-util "30.0.1" + jest-resolve "30.0.2" + jest-snapshot "30.0.3" + jest-util "30.0.2" slash "^3.0.0" strip-bom "^4.0.0" @@ -4367,150 +4121,91 @@ jest-snapshot-serializer-raw@^2.0.0: resolved "https://registry.yarnpkg.com/jest-snapshot-serializer-raw/-/jest-snapshot-serializer-raw-2.0.0.tgz#c2be865a20feb2b4d9fa4bbac8c48ce1c6dbfa10" integrity sha512-E/gWFBAltOPQVAvafH/zYkob3G/TqL/DFG3fHurinwLcFRkz6kASjuihyJJ6zoizlLUNaiOdS3v5ZflTvifpBA== -jest-snapshot@30.0.0-alpha.2, jest-snapshot@^30.0.0-alpha.1: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.0.0-alpha.2.tgz#c9dbef7a75c5badc2cbd7cbd575686844480e1e9" - integrity sha512-5Trnyp7XyTydD/333V1o3rl7jbPGwPeNXa26DyOWknjrwdVnlYhJ179DcV51EimVd0Ly45uiQZH5sna5fbLkgQ== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "30.0.0-alpha.2" - "@jest/transform" "30.0.0-alpha.2" - "@jest/types" "30.0.0-alpha.2" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "30.0.0-alpha.2" - graceful-fs "^4.2.9" - jest-diff "30.0.0-alpha.2" - jest-get-type "30.0.0-alpha.2" - jest-matcher-utils "30.0.0-alpha.2" - jest-message-util "30.0.0-alpha.2" - jest-util "30.0.0-alpha.2" - natural-compare "^1.4.0" - pretty-format "30.0.0-alpha.2" - semver "^7.5.3" - synckit "^0.8.5" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.0-alpha.2.tgz#1f2cf97bd66d02ca367fae21c594a2c051767dbc" - integrity sha512-W2slmlWItPPD7uOnVy8mkjshUrGCiqwtFUIyDE/wkg+mzp8hSpHOAwyxBvqI+UvO3Vpeuk0AL07DYEpUzMy/4g== - dependencies: - "@jest/types" "30.0.0-alpha.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^4.0.0" - graceful-fs "^4.2.9" - picomatch "^3.0.0" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" +jest-snapshot@30.0.3, jest-snapshot@^30.0.0: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.0.3.tgz#f605254223eee0946d205c6e7ede7238e87be920" + integrity sha512-F05JCohd3OA1N9+5aEPXA6I0qOfZDGIx0zTq5Z4yMBg2i1p5ELfBusjYAWwTkC12c7dHcbyth4QAfQbS7cRjow== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.0.3" + "@jest/get-type" "30.0.1" + "@jest/snapshot-utils" "30.0.1" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + babel-preset-current-node-syntax "^1.1.0" + chalk "^4.1.2" + expect "30.0.3" + graceful-fs "^4.2.11" + jest-diff "30.0.3" + jest-matcher-utils "30.0.3" + jest-message-util "30.0.2" + jest-util "30.0.2" + pretty-format "30.0.2" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.2.tgz#1bd8411f81e6f5e2ca8b31bb2534ebcd7cbac065" + integrity sha512-8IyqfKS4MqprBuUpZNlFB5l+WFehc8bfCe1HSZFHzft2mOuND8Cvi9r1musli+u6F3TqanCZ/Ik4H4pXUolZIg== + dependencies: + "@jest/types" "30.0.1" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.0.0-alpha.2.tgz#2950252a35270efdc5e94ccee8e9f25c5fba543f" - integrity sha512-j2iGjh8ZbS6tUR2BGwqJbjalKxpkWtSAJWiVCrs/tWuFSExAOtH8pcno3iFhMoyTUv6xpw0ilZhgn9LDXrJmbA== - dependencies: - "@jest/types" "30.0.0-alpha.2" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "30.0.0-alpha.2" - leven "^3.1.0" - pretty-format "30.0.0-alpha.2" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.0.2.tgz#f62a2f0e014dac94747509ba8c2bcd5d48215b7f" + integrity sha512-noOvul+SFER4RIvNAwGn6nmV2fXqBq67j+hKGHKGFCmK4ks/Iy1FSrqQNBLGKlu4ZZIRL6Kg1U72N1nxuRCrGQ== + dependencies: + "@jest/get-type" "30.0.1" + "@jest/types" "30.0.1" + camelcase "^6.3.0" + chalk "^4.1.2" leven "^3.1.0" - pretty-format "^29.7.0" + pretty-format "30.0.2" -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== +jest-watcher@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.0.2.tgz#ec93ed25183679f549a47f6197267d50ec83ea51" + integrity sha512-vYO5+E7jJuF+XmONr6CrbXdlYrgvZqtkn6pdkgjt/dU64UAdc0v1cAVaAeWtAfUUMScxNmnUjKPUMdCpNVASwg== dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/test-result" "30.0.2" + "@jest/types" "30.0.1" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.0.0-alpha.2.tgz#d8e9dc386b31bb8bc6fdbdcc19dfbb7effccaeca" - integrity sha512-ucN1yueK1Kq6gytid2AwsNemTRpq79h61fXgySGhRtlHFcsM4Su6sPFQrWzUcGg9F8fNI4HjLZckqdTFW2tvtg== - dependencies: - "@types/node" "*" - jest-util "30.0.0-alpha.2" - merge-stream "^2.0.0" - supports-color "^8.0.0" + jest-util "30.0.2" + string-length "^4.0.2" -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== +jest-worker@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.0.2.tgz#e67bd7debbc9d8445907a17067a89359acedc8c5" + integrity sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg== dependencies: "@types/node" "*" - jest-util "^29.7.0" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.0.2" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^8.1.1" -jest@29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== +jest@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.0.3.tgz#fc3b6b370e2820d718ea299d159a7ba4637dbd35" + integrity sha512-Uy8xfeE/WpT2ZLGDXQmaYNzw2v8NUKuYeKGtkS6sDxwsdQihdgYCXaKIYnph1h95DN5H35ubFDm0dfmsQnjn4Q== dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" + "@jest/core" "30.0.3" + "@jest/types" "30.0.1" + import-local "^3.2.0" + jest-cli "30.0.3" js-tokens@^4.0.0: version "4.0.0" @@ -4532,49 +4227,52 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" - integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== - dependencies: - abab "^2.0.6" - acorn "^8.7.1" - acorn-globals "^6.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.3.1" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" +jsdom@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-26.1.0.tgz#ab5f1c1cafc04bd878725490974ea5e8bf0c72b3" + integrity sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg== + dependencies: + cssstyle "^4.2.1" + data-urls "^5.0.0" + decimal.js "^10.5.0" + html-encoding-sniffer "^4.0.0" + http-proxy-agent "^7.0.2" + https-proxy-agent "^7.0.6" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "^7.0.0" + nwsapi "^2.2.16" + parse5 "^7.2.1" + rrweb-cssom "^0.8.0" saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^3.0.0" + tough-cookie "^5.1.1" + w3c-xmlserializer "^5.0.0" webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.8.0" - xml-name-validator "^4.0.0" + whatwg-encoding "^3.1.1" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.1.1" + ws "^8.18.0" + xml-name-validator "^5.0.0" jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -4597,15 +4295,15 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.1: +json5@^2.1.2: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== leven@^3.1.0: version "3.1.0" @@ -4620,14 +4318,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -4662,6 +4352,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lru-cache@^10.2.0, lru-cache@^10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -4677,11 +4372,11 @@ lru-cache@^6.0.0: yallist "^4.0.0" magic-string@^0.30.3: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + version "0.30.17" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" + integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.0" make-dir@^3.0.0: version "3.1.0" @@ -4722,28 +4417,19 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== +micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - mime-db "1.52.0" + braces "^3.0.3" + picomatch "^2.3.1" mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -4758,21 +4444,38 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +napi-postinstall@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.2.4.tgz#419697d0288cb524623e422f919624f22a5e4028" + integrity sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4788,6 +4491,11 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -4800,17 +4508,10 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +nwsapi@^2.2.16: + version "2.2.20" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" + integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== object-inspect@^1.13.1: version "1.13.1" @@ -4879,35 +4580,6 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -4934,6 +4606,13 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" +p-limit@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-6.2.0.tgz#c254d22ba6aeef441a3564c5e6c2f2da59268a0f" + integrity sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA== + dependencies: + yocto-queue "^1.1.1" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4953,6 +4632,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -4977,6 +4661,13 @@ parse5@^7.0.0: dependencies: entities "^4.4.0" +parse5@^7.2.1: + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== + dependencies: + entities "^6.0.0" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4992,16 +4683,19 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -5017,20 +4711,25 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" - integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pirates@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== pkg-dir@^4.2.0: version "4.2.0" @@ -5044,11 +4743,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -5056,56 +4750,34 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.0.1: - version "3.2.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== - -pretty-format@30.0.0-alpha.2: - version "30.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.0-alpha.2.tgz#f69024bc3cc0398fa4d86a9b44c32028006e94ea" - integrity sha512-9preHaHWIBEtQOkuN0vpCgfTo8X3vlWmDdCQHA1hSJ5vKNA1EGFr7iEQZDFLdqYe6DeJChdBqi+A+VFV98QGXQ== - dependencies: - "@jest/schemas" "30.0.0-alpha.2" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" +prettier@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.1.tgz#cc3bce21c09a477b1e987b76ce9663925d86ae44" + integrity sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A== -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== +pretty-format@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.2.tgz#54717b6aa2b4357a2e6d83868e10a2ea8dd647c7" + integrity sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg== dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" + "@jest/schemas" "30.0.1" + ansi-styles "^5.2.0" + react-is "^18.3.1" -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pure-rand@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" - integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== +punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== queue-microtask@^1.2.2: version "1.2.3" @@ -5119,10 +4791,10 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -react-is@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== +react-is@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== regenerate-unicode-properties@^10.1.0: version "10.1.1" @@ -5131,23 +4803,18 @@ regenerate-unicode-properties@^10.1.0: dependencies: regenerate "^1.4.2" +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" @@ -5169,6 +4836,30 @@ regexpu-core@^5.3.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -5181,11 +4872,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -5203,12 +4889,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve.exports@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.1.tgz#cee884cd4e3f355660e501fa3276b27d7ffe5a20" - integrity sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw== - -resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4: +resolve@^1.14.2, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -5217,12 +4898,12 @@ resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.20.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.22.1: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.16.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -5239,18 +4920,16 @@ rimraf@^3.0.2: glob "^7.1.3" rollup@^3.28.1: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + version "3.29.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54" + integrity sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w== optionalDependencies: fsevents "~2.3.2" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" +rrweb-cssom@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" + integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== run-parallel@^1.1.9: version "1.2.0" @@ -5312,6 +4991,11 @@ semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: dependencies: lru-cache "^6.0.0" +semver@^7.7.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" @@ -5359,7 +5043,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -5369,21 +5053,11 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - smob@^1.0.0: version "1.4.1" resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" @@ -5405,12 +5079,7 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -5420,14 +5089,14 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== +stack-utils@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" -string-length@^4.0.1: +string-length@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== @@ -5435,6 +5104,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5444,6 +5122,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.trim@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" @@ -5471,6 +5158,13 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5478,7 +5172,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.1.0: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -5500,11 +5194,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -5524,7 +5213,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -5546,13 +5235,12 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== +synckit@^0.11.8: + version "0.11.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.8.tgz#b2aaae998a4ef47ded60773ad06e7cb821f55457" + integrity sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A== dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" + "@pkgr/core" "^0.2.4" synckit@^0.8.6: version "0.8.8" @@ -5581,20 +5269,36 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +test-exclude@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-7.0.1.tgz#20b3ba4906ac20994e275bbcafd68d510264c2a2" + integrity sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^10.4.1" + minimatch "^9.0.4" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -tinypool@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.1.tgz#b6c4e4972ede3e3e5cda74a3da1679303d386b03" - integrity sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg== +tinypool@0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.4.tgz#e217fe1270d941b39e98c625dcecebb1408c9aa8" + integrity sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== +tldts-core@^6.1.86: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" + integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== + +tldts@^6.1.32: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" + integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== + dependencies: + tldts-core "^6.1.86" tmpl@1.0.5: version "1.0.5" @@ -5613,22 +5317,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== +tough-cookie@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" + integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" + tldts "^6.1.32" -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== +tr46@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca" + integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== dependencies: - punycode "^2.1.1" + punycode "^2.3.1" tsconfig-paths@^3.15.0: version "3.15.0" @@ -5645,10 +5346,10 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.5.0, tslib@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== +tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tslib@^2.6.2: version "2.6.2" @@ -5669,13 +5370,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -5763,15 +5457,32 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== +unrs-resolver@^1.7.11: + version "1.9.2" + resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.9.2.tgz#1a7c73335a5e510643664d7bb4bb6f5c28782e36" + integrity sha512-VUyWiTNQD7itdiMuJy+EuLEErLj3uwX/EpHQF8EOf33Dq3Ju6VW1GXm+swk6+1h7a49uv9fKZ+dft9jU7esdLA== + dependencies: + napi-postinstall "^0.2.4" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.9.2" + "@unrs/resolver-binding-android-arm64" "1.9.2" + "@unrs/resolver-binding-darwin-arm64" "1.9.2" + "@unrs/resolver-binding-darwin-x64" "1.9.2" + "@unrs/resolver-binding-freebsd-x64" "1.9.2" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.9.2" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.9.2" + "@unrs/resolver-binding-linux-arm64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-arm64-musl" "1.9.2" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-riscv64-musl" "1.9.2" + "@unrs/resolver-binding-linux-s390x-gnu" "1.9.2" + "@unrs/resolver-binding-linux-x64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-x64-musl" "1.9.2" + "@unrs/resolver-binding-wasm32-wasi" "1.9.2" + "@unrs/resolver-binding-win32-arm64-msvc" "1.9.2" + "@unrs/resolver-binding-win32-ia32-msvc" "1.9.2" + "@unrs/resolver-binding-win32-x64-msvc" "1.9.2" update-browserslist-db@^1.0.13: version "1.0.13" @@ -5781,6 +5492,14 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5788,14 +5507,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - v8-to-istanbul@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" @@ -5814,19 +5525,12 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" - integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg== +w3c-xmlserializer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" + integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== dependencies: - xml-name-validator "^4.0.0" + xml-name-validator "^5.0.0" walker@^1.0.8: version "1.0.8" @@ -5840,24 +5544,24 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== dependencies: iconv-lite "0.6.3" -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== +whatwg-url@^14.0.0, whatwg-url@^14.1.1: + version "14.2.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663" + integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== dependencies: - tr46 "^3.0.0" + tr46 "^5.1.0" webidl-conversions "^7.0.0" which-boxed-primitive@^1.0.2: @@ -5889,10 +5593,14 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrap-ansi@^7.0.0: version "7.0.0" @@ -5903,20 +5611,21 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -write-file-atomic@^5.0.0: +write-file-atomic@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== @@ -5924,15 +5633,15 @@ write-file-atomic@^5.0.0: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== +ws@^8.18.0: + version "8.18.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" + integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== xmlchars@^2.2.0: version "2.2.0" @@ -5954,29 +5663,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" @@ -5994,3 +5685,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== From 14f802aaf19a780bf6528cbf81eab3286a92f209 Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Wed, 9 Jul 2025 13:05:33 +0200 Subject: [PATCH 23/28] feat: add support for PHP 8.3 typed class constants (#2433) * Support PHP 8.3 typed constants. Depends on https://github.com/Kenneth-Sills/php-parser/pull/1 * chore: bump php-parser * chore: add tests for PHP 8.3 typed class constants --------- Co-authored-by: Mark Reidenbach --- package.json | 2 +- src/options.mjs | 1 + src/printer.mjs | 1 + tests/class/__snapshots__/jsfmt.spec.mjs.snap | 57 ++++++++++++++++++- tests/class/class.php | 25 ++++++++ yarn.lock | 8 +-- 6 files changed, 88 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bfc85b255..1ef1e88ce 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ ], "dependencies": { "linguist-languages": "^8.0.0", - "php-parser": "^3.1.5" + "php-parser": "^3.2.4" }, "devDependencies": { "@babel/preset-env": "^7.27.2", diff --git a/src/options.mjs b/src/options.mjs index 93fca45dc..b431fdf0d 100644 --- a/src/options.mjs +++ b/src/options.mjs @@ -23,6 +23,7 @@ export default { { value: "8.0" }, { value: "8.1" }, { value: "8.2" }, + { value: "8.3" }, ], }, trailingCommaPHP: { diff --git a/src/printer.mjs b/src/printer.mjs index cec72d0f7..69300dec9 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -2308,6 +2308,7 @@ function printNode(path, options, print) { node.final ? "final " : "", node.visibility ? [node.visibility, " "] : "", "const", + node.type ? [node.nullable ? " ?" : " ", print("type")] : "", firstVariable ? [" ", firstVariable] : "", indent(printed.slice(1).map((p) => [",", hardline, p])), ]); diff --git a/tests/class/__snapshots__/jsfmt.spec.mjs.snap b/tests/class/__snapshots__/jsfmt.spec.mjs.snap index a8fda07f4..cf60d29d6 100644 --- a/tests/class/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/class/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`anonymous.php 1`] = ` ====================================options===================================== @@ -918,6 +918,31 @@ readonly class ReadOnlyCls { class FinalCost { final public const FOO = 'foo'; } +// PHP 8.3 typed class constants +enum E { + const string TEST = "Test1"; // E::TEST is a string +} + +trait T { + const string TEST = E::TEST; // T::TEST is a string too +} + +interface I { + const string TEST = E::TEST; // I::TEST is a string as well +} + +class Foo implements I { + use T; + + const string TEST = E::TEST; // Foo::TEST must also be a string +} + +class Bar extends Foo { + const string TEST = "Test2"; // Bar::TEST must also be a string, but the value can change + public const int|null I = null; + public const ?int J = null; +} + =====================================output===================================== Date: Fri, 11 Jul 2025 12:51:38 -0400 Subject: [PATCH 24/28] feat: format new without parenthesis in PHP 8.4 (#2422) * deps: bump php-parser to 3.2.5 * feat: add php 8.4 option * refactor: move isMinVersion to utils, update needsParen fn signature needsParens() is already being called with 2 params, but the fn signature didn't reflect that * test: prep snapshots for php 8.4 new w/o parens * feat: support new w/o parens in php 8.4 --- package.json | 2 +- src/needs-parens.mjs | 16 +- src/options.mjs | 1 + src/parser.mjs | 6 + src/printer.mjs | 5 +- src/util.mjs | 5 + tests/new/__snapshots__/jsfmt.spec.mjs.snap | 437 ++ tests/new/jsfmt.spec.mjs | 1 + .../parens/__snapshots__/jsfmt.spec.mjs.snap | 4414 +++++++++++++++-- tests/parens/jsfmt.spec.mjs | 1 + tests/parens/new.php | 11 + yarn.lock | 8 +- 12 files changed, 4505 insertions(+), 402 deletions(-) diff --git a/package.json b/package.json index 1ef1e88ce..57b35dff4 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ ], "dependencies": { "linguist-languages": "^8.0.0", - "php-parser": "^3.2.4" + "php-parser": "^3.2.5" }, "devDependencies": { "@babel/preset-env": "^7.27.2", diff --git a/src/needs-parens.mjs b/src/needs-parens.mjs index 00fca2c07..3f1be4adf 100644 --- a/src/needs-parens.mjs +++ b/src/needs-parens.mjs @@ -1,6 +1,11 @@ -import { getPrecedence, shouldFlatten, isBitwiseOperator } from "./util.mjs"; - -function needsParens(path) { +import { + getPrecedence, + shouldFlatten, + isBitwiseOperator, + isMinVersion, +} from "./util.mjs"; + +function needsParens(path, options) { const { parent } = path; if (!parent) { @@ -128,13 +133,16 @@ function needsParens(path) { } case "clone": case "new": { + const requiresParens = + node.kind === "clone" || + (node.kind === "new" && !isMinVersion(options.phpVersion, "8.4")); switch (parent.kind) { case "propertylookup": case "nullsafepropertylookup": case "staticlookup": case "offsetlookup": case "call": - return key === "what"; + return key === "what" && requiresParens; default: return false; } diff --git a/src/options.mjs b/src/options.mjs index b431fdf0d..3a67fff3d 100644 --- a/src/options.mjs +++ b/src/options.mjs @@ -24,6 +24,7 @@ export default { { value: "8.1" }, { value: "8.2" }, { value: "8.3" }, + { value: "8.4" }, ], }, trailingCommaPHP: { diff --git a/src/parser.mjs b/src/parser.mjs index 343e4215a..80b61bb45 100644 --- a/src/parser.mjs +++ b/src/parser.mjs @@ -1,4 +1,5 @@ import engine from "php-parser"; +import options from "./options.mjs"; function parse(text, opts) { const inMarkdown = opts && opts.parentParser === "markdown"; @@ -10,10 +11,15 @@ function parse(text, opts) { // Todo https://github.com/glayzzle/php-parser/issues/170 text = text.replace(/\?>\n<\?/g, "?>\n___PSEUDO_INLINE_PLACEHOLDER___ parseFloat(c.value)) + ); + // initialize a new parser instance const parser = new engine({ parser: { extractDoc: true, + version: `${latestSupportedPhpVersion}`, }, ast: { withPositions: true, diff --git a/src/printer.mjs b/src/printer.mjs index 69300dec9..d8e21e832 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -37,6 +37,7 @@ import { isReferenceLikeNode, normalizeMagicMethodName, isSimpleCallArgument, + isMinVersion, } from "./util.mjs"; const { @@ -65,10 +66,6 @@ const { isPreviousLineEmpty, } = prettierUtil; -function isMinVersion(actualVersion, requiredVersion) { - return parseFloat(actualVersion) >= parseFloat(requiredVersion); -} - function shouldPrintComma(options, requiredVersion) { if (!options.trailingCommaPHP) { return false; diff --git a/src/util.mjs b/src/util.mjs index b4bf9e473..03428ca48 100644 --- a/src/util.mjs +++ b/src/util.mjs @@ -709,6 +709,10 @@ function memoize(fn) { }; } +function isMinVersion(actualVersion, requiredVersion) { + return parseFloat(actualVersion) >= parseFloat(requiredVersion); +} + export { printNumber, getPrecedence, @@ -740,4 +744,5 @@ export { normalizeMagicMethodName, isSimpleCallArgument, memoize, + isMinVersion, }; diff --git a/tests/new/__snapshots__/jsfmt.spec.mjs.snap b/tests/new/__snapshots__/jsfmt.spec.mjs.snap index 69f5503c3..d29025a20 100644 --- a/tests/new/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/new/__snapshots__/jsfmt.spec.mjs.snap @@ -433,3 +433,440 @@ $client = new (config("longstringvariable", "longerstringvariable")([ ================================================================================ `; + +exports[`new.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMethod(); +$class = (new Foo(['VeryVeryVeryVeryVeryVeryVeryVeryVeryLongKey' => 'VeryVeryVeryVeryVeryVeryVeryVeryVeryLongValue']))->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMethod(); +$class = (new PendingDispatch(new $this->class(...func_get_args())))->chain($this->chain); +$dumper = in_array(PHP_SAPI, ['cli', 'phpdbg']) ? new CliDumper : new HtmlDumper; +$class = new static('Error encoding model ['.get_class($model).'] with ID ['.$model->getKey().'] to JSON: '.$message); +$response = new \\Illuminate\\Http\\JsonResponse(new JsonResponseTestJsonSerializeObject); +$result = (new Pipeline(new \\Illuminate\\Container\\Container)) + ->send('foo') + ->through([new PipelineTestPipeOne]) + ->then(function ($piped) { + return $piped; + }); + +$var = new Foo( +<<<'EOD' +Example of string +spanning multiple lines +using nowdoc syntax. +EOD + , + $arg +); + +$var = new Foo( + $arg, + <<<'EOD' +Example of string +spanning multiple lines +using nowdoc syntax. +EOD +); + +$var = new Foo( + $arg, + <<<'EOD' +Example of string +spanning multiple lines +using nowdoc syntax. +EOD + , + $arg +); + +$var = new Foo( + <<num = $num; + } + + use SomeTrait; +}; + +$a = new (b('c')['d']); +$client = new (config('longstringvariable','longerstringvariable')(['name'=>$myLongClassname['name']])); + +=====================================output===================================== +veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMethod(); +$class = new Foo([ + "VeryVeryVeryVeryVeryVeryVeryVeryVeryLongKey" => + "VeryVeryVeryVeryVeryVeryVeryVeryVeryLongValue", +])->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMethod(); +$class = new PendingDispatch(new $this->class(...func_get_args()))->chain( + $this->chain, +); +$dumper = in_array(PHP_SAPI, ["cli", "phpdbg"]) + ? new CliDumper() + : new HtmlDumper(); +$class = new static( + "Error encoding model [" . + get_class($model) . + "] with ID [" . + $model->getKey() . + "] to JSON: " . + $message, +); +$response = new \\Illuminate\\Http\\JsonResponse( + new JsonResponseTestJsonSerializeObject(), +); +$result = new Pipeline(new \\Illuminate\\Container\\Container()) + ->send("foo") + ->through([new PipelineTestPipeOne()]) + ->then(function ($piped) { + return $piped; + }); + +$var = new Foo( + <<<'EOD' + Example of string + spanning multiple lines + using nowdoc syntax. + EOD + , + $arg, +); + +$var = new Foo( + $arg, + <<<'EOD' + Example of string + spanning multiple lines + using nowdoc syntax. + EOD + , +); + +$var = new Foo( + $arg, + <<<'EOD' + Example of string + spanning multiple lines + using nowdoc syntax. + EOD + , + $arg, +); + +$var = new Foo( + <<num = $num; + } + + use SomeTrait; +}; + +$a = new (b("c")["d"])(); +$client = new (config("longstringvariable", "longerstringvariable")([ + "name" => $myLongClassname["name"], +]))(); + +================================================================================ +`; diff --git a/tests/new/jsfmt.spec.mjs b/tests/new/jsfmt.spec.mjs index 8829c872f..a2c158328 100644 --- a/tests/new/jsfmt.spec.mjs +++ b/tests/new/jsfmt.spec.mjs @@ -1 +1,2 @@ run_spec(import.meta, ["php"]); +run_spec(import.meta, ["php"], { phpVersion: "8.4" }); diff --git a/tests/parens/__snapshots__/jsfmt.spec.mjs.snap b/tests/parens/__snapshots__/jsfmt.spec.mjs.snap index 373b1853c..ed2b205ba 100644 --- a/tests/parens/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/parens/__snapshots__/jsfmt.spec.mjs.snap @@ -104,6 +104,111 @@ $var = [new stdClass()][0]; ================================================================================ `; +exports[`array.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== + ($var), ('other-key') => ($other_var)]; +$arr = ([('key') => ($var), ('other-key') => ($other_var)]); + +[$var, $other_var] = $arr; +[($var), ($other_var)] = $arr; +[('key') => ($var), ('other-key') => ($other_var)] = $arr; + +$var = array(1, 2, 3)[1]; +$var = (array(1, 2, 3))[1]; +$var = [1, 2, 3][1]; +$var = ([1, 2, 3])[1]; +$var = array(new stdClass())[0]; +$var = (array((new stdClass())))[0]; +$var = [new stdClass()][0]; +$var = ([(new stdClass())])[0]; + +=====================================output===================================== + $var, "other-key" => $other_var]; +$arr = ["key" => $var, "other-key" => $other_var]; + +[$var, $other_var] = $arr; +[$var, $other_var] = $arr; +["key" => $var, "other-key" => $other_var] = $arr; + +$var = [1, 2, 3][1]; +$var = [1, 2, 3][1]; +$var = [1, 2, 3][1]; +$var = [1, 2, 3][1]; +$var = [new stdClass()][0]; +$var = [new stdClass()][0]; +$var = [new stdClass()][0]; +$var = [new stdClass()][0]; + +================================================================================ +`; + exports[`assign.php 1`] = ` ====================================options===================================== parsers: ["php"] @@ -318,118 +423,1150 @@ switch ($i = 1) { ================================================================================ `; -exports[`assignref.php 1`] = ` +exports[`assign.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== 0) {} -if (($foo = &test1()) && test2($foo) > 0) {} +$var = 1; +($var = 1); -call(($a =& $b)); +$var = $var; +($var = $var); -=====================================output===================================== - 'value']); -$a = ($b = $var) || 5; -$a = $b = &$var || 5; +($var = $var ? $var : function() { return 0; }); -if ($foo = &$bar && count($foo) > 0) { +for ($i = 1; $i <= 10; $i++) { + echo $i; } -if ($foo = &test1() && test2($foo) > 0) { + +for (($i = 1); ($i <= 10); ($i++)) { + echo $i; } +for (($i = 1), ($j = 0); ($i <= 10); ($j += $i), print ($i), ($i++)); -call($a = &$b); +if ($a = 1) {} -================================================================================ -`; +while ($var = 1) {} +while ($var = current($array) !== FALSE) {} +while (($var = current($array)) !== FALSE) {} -exports[`bin.php 1`] = ` -====================================options===================================== -parsers: ["php"] -printWidth: 80 - | printWidth -=====================================input====================================== - "value"]; + +$var = $var + ? $var + : function () { + return 0; + }; + +for ($i = 1; $i <= 10; $i++) { + echo $i; +} + +for ($i = 1; $i <= 10; $i++) { + echo $i; +} +for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); + +if ($a = 1) { +} + +while ($var = 1) { +} +while ($var = current($array) !== false) { +} +while (($var = current($array)) !== false) { +} + +$var = $var || ($var = new MyClass()); +$var = $var || ($var = new MyClass()); + +if (true) { + $var = $var; +} +if (true) { + $var = $var; +} +if (true) { + $var = $var; +} elseif (false) { + $var = $var; +} +if (true) { + $var = $var; +} elseif (false) { + $var = $var; +} else { + $var = $var; +} + +if (true) { + $var = $var; + $var = $var; +} + +while ($i <= 10) { + $i = 1; +} +while ($i <= 10) { + $i = 1; +} + +do { + echo $i; +} while ($i = 0); + +for ($i = 1; $i <= 10; $i++) { + $i = 1; +} +for ($i = 1; $i <= 10; $i++) { + $i = 1; +} + +foreach ($arr as &$value) { + $value = $value * 2; +} +foreach ($arr as &$value) { + $value = $value * 2; +} + +switch ($i = 1) { + case 0: + echo "i equals 0"; + break; + case 1: + echo "i equals 1"; + break; + case 2: + echo "i equals 2"; + break; +} + +switch ($i = 1) { + case 0: + echo "i equals 0"; + break; + case 1: + echo "i equals 1"; + break; + case 2: + echo "i equals 2"; + break; +} + +================================================================================ +`; + +exports[`assignref.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== + 0) {} +if (($foo = &test1()) && test2($foo) > 0) {} + +call(($a =& $b)); + +=====================================output===================================== + 0) { +} +if ($foo = &test1() && test2($foo) > 0) { +} + +call($a = &$b); + +================================================================================ +`; + +exports[`assignref.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== + 0) {} +if (($foo = &test1()) && test2($foo) > 0) {} + +call(($a =& $b)); + +=====================================output===================================== + 0) { +} +if ($foo = &test1() && test2($foo) > 0) { +} + +call($a = &$b); + +================================================================================ +`; + +exports[`bin.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +> 20 >> 30; +$var = (10 >> 20) >> 30; +$var = 10 >> (20 >> 30); + +$var = 10 ^ 20 ^ 30; +$var = (10 ^ 20) ^ 30; +$var = 10 ^ (20 ^ 30); + +$var = 10 | 20 | 30; +$var = (10 | 20) | 30; +$var = 10 | (20 | 30); + +$var = false || true; +$var = (false || true); +$var = false or true; +$var = (false or true); +$var = true && false; +$var = (true && false); +$var = true and false; +$var = (true and false); + +$var = $var || $var(); +$var = ($var || $var)(); +$var = $var && $var(); +$var = ($var && $var)(); +$var = call($var || $var); +$var = call(($var || $var)); +$var = call($var && $var); +$var = call(($var && $var)); + +$var = +($var || $var); +$var = -($var || $var); +$var = ~($var || $var); + +$var = ($var || $var)->foo; +$var = ($var || $var)->foo(); +$var = ($var || $var)[1]; + +$var = $var || $var && $var; +$var = ($var || $var) && $var; +$var = $var || ($var && $var); + +$var = $var & ($var || 'test'); +$var = ($var || 'test') & $var; +$var = $var & ($var . 'test'); +$var = ($var . 'test') & $var; +$var = ($var & $var) || 'test'; +$var = $var || ('test' & $var); + +$var = ($var || $var) % 100; +$var = ($var + $var) % 100; +$var = 100 % ($var || $var); +$var = 100 % ($var + $var); +$var = $var || ($var % 100); +$var = $var + ($var % 100); +$var = (100 % $var) || $var; +$var = (100 % $var) + $var; + +$var = ($var + $var) >> 1; +$var = (($var - 1) >> $var) & $var; +$var = $var > $var ? 0 : ($var - $var) >> $var; +$var = (($var - $var) >> $var) + 1; + +if ($var < 1 << ($var + $var)) {} + +$var = $var < $var ? 0 : ((($var - 1) >> $var) << $var); +$var = 1 - (2 * ($var[3] >> 7)); +$var = ((($var[3] << 1) & 0xff) | ($var[2] >> 7)) - 127; +$var = (($var[2] & 0x7f) << 16) | ($var[1] << 8) | $var[0]; + +$var = 2 / 3 * 10 / 2 + 2; + +$var = (($var / $var) * $var - $var / 2) * call($var); +$var = (($var / $var) * $var - $var / 2) * call($var); + +$var = $var % 10 - 5; +$var = $var * $var % 10; +$var = $var % 10 > 5; +$var = $var % 10 == 0; + +$var = $var + $var / $var; +$var = $var / $var + $var; + +$var = $var * $var % $var; +$var = $var / $var % $var; +$var = $var % $var * $var; +$var = $var % $var / $var; + +$var = $var % $var % $var; + +$var = $var << $var >> $var; +$var = $var >> $var << $var; +$var = $var >> $var >> $var; +$var = $var + $var >> $var; +$var = ($var + $var) >> $var; +$var = $var + ($var >> $var); + +$var = $var | $var & $var; +$var = $var & $var | $var; +$var = $var ^ $var ^ $var; +$var = $var & $var & $var; +$var = $var | $var | $var; +$var = $var & $var >> $var; +$var = $var << $var | $var; + +$var = $var ? 'foo' : 'bar' . 'test'; +$var = ($var ? 'foo' : 'bar') . 'test'; +$var = $var ? 'foo' : ('bar' . 'test'); + +call(($var + $var)); + +$var = call(($var + $var)); + +$var = $var + $var ** 2; +$var = ($var + $var) ** 2; +$var = $var + ($var ** 2); +$var = (+$var) ** 2; +$var = +$var ** 2; + +$var = $foo instanceof Foo; +$var = $foo instanceof Foo || $foo instanceof Foo; +$var = ($foo instanceof Foo) || ($foo instanceof Foo); +$var = (($foo) instanceof Foo); + +$var = !$var; +$var = !($var); +$var = (!($var)); +$var = !!$var; +$var = !!($var); +$var = !(!($var)); +$var = (!(!($var))); +$var = !!!$var; +$var = !!!($var); +$var = !!(!($var)); +$var = !(!(!($var))); +$var = (!(!(!($var)))); + +$var = !$var || !$var; +$var = (!($var) || !($var)); +$var = !(!($var) || !($var)); + +$var = $var + $var * $var; +$var = ($var + $var) * $var; + +$var = @foo() || @foo(); +$var = @(foo() || foo()); + +($var += ($var += ($var += $var))); +($var -= ($var -= ($var -= $var))); +($var *= ($var *= ($var *= $var))); +($var **= ($var **= ($var **= $var))); +($var /= ($var /= ($var /= $var))); +($var .= ($var .= ($var .= $var))); +($var %= ($var %= ($var %= $var))); +($var &= ($var &= ($var &= $var))); +($var |= ($var |= ($var |= $var))); +($var ^= ($var ^= ($var ^= $var))); +($var <<= ($var <<= ($var <<= $var))); +($var >>= ($var >>= ($var >>= $var))); + +$var = $var | $var | $var; +$var = $var | ($var | $var); +$var = ($var | $var) | $var; +$var = $var & $var & $var; +$var = $var & ($var & $var); +$var = ($var & $var) & $var; + +$var = $var ^ $var | $var; +$var = ($var ^ $var) | $var; +$var = $var | $var ^ $var; +$var = $var | ($var ^ $var); +$var = ($var | $var) ^ $var; + +$var = $var & $var | $var; +$var = ($var & $var) | $var; +$var = $var | $var & $var; +$var = $var | ($var & $var); +$var = ($var | $var) & $var; + +$var = $var == $var || false; +$var = ($var == $var) || false; +$var = $var == ($var || false); + +$var = false || $var == $var; +$var = false || ($var == $var); +$var = ($var || false) == $var; + +$var = 'string' . true ? '1' : '2'; +$var = 'string' . (true ? '1' : '2'); + +$var = 'string' . (100 + 100); +$var = (100 + 100) . 'string'; +$var = 'string' . ($var || 100); +$var = ($var || 100) . 'string'; +$var = 'string' . ($var * 100); +$var = ($var * 100) . 'string'; +$var = 'string' . !$var; +$var = !$var . 'string'; +$var = 'string' . ($var | 100); +$var = ($var | 100) . 'string'; + +$var = $var . $var % $var; +$var = ($var . $var) % $var; +$var = $var % $var . $var; +$var = $var % ($var . $var); + +$var = '100' - '100' - '100'; +$var = ('100' - '100') - '100'; +$var = '100' - ('100' - '100'); + +if (false || true) {}; +if ((false || true)) {}; +if (false or true) {}; +if ((false or true)) {}; +if (true && false) {}; +if ((true && false)) {}; +if (true and false) {}; +if ((true and false)) {}; + +if (!$foo or $bar == -1) {} +if ((!$foo or $bar == -1)) {} +if ((!$foo or $bar) == -1) {} +if (!$foo or ($bar == -1)) {} + +do {} while ($foo and $bar); +while ($foo or $bar < 10) {} +for ($foo or $bar;;) {} +switch ($foo or $bar) {} + +$a ** $b ** $c; +($a ** $b) ** $c; +$a->b ** $c; +(-$a) ** $b; +$a ** -$b; +-($a**$b); +($a * $b) ** $c; +$a ** ($b * $c); +($a % $b) ** $c; + +$var = $var + $var ?? ''; +$var = $var + ($var ?? ''); +$var = ($var + $var) ?? ''; +$var = $var ?? null + 1; +$var = ($var ?? null) + 1; +$var = $var && ($var ?? true); +$var = ($var ?? true) && $var; +$var = $var && ($var ?? null) === true; +$var = ($var ?? null) === true && $var; + +$findAll = $cachesNames === []; +$findAll = ($cachesNames === []); + +$isNamespaced = strpos($fixture, '\\\\') !== false; +$isNamespaced = (strpos($fixture, '\\\\') !== false); + +$var = $a['apply_time'] > $b['apply_time'] ? -1 : +1; +$var = ($a['apply_time'] > $b['apply_time']) ? -1 : +1; + +$var = $page > 0 || $page == 0 && $this->forcePageParam; +$var = $page > 0 || ($page == 0 && $this->forcePageParam); + +@foo() || @foo(); +(@foo()) || (@foo()); +$var = @foo() || @foo(); +$var = (@foo() || @foo()); + +@$i / 0; +@($i) / 0; + +$var = "a" . (@$b ? 'bar' : "baz"); + +$a = (false && foo()); +$b = (true || foo()); +$c = (false and foo()); +$d = (true or foo()); + +$f = false or true; +$h = true and false; + +$my_file = call('non_existent_file') or die("Failed opening file: error was '$php_errormsg'"); +($my_file = call('non_existent_file')) or die("Failed opening file: error was '$php_errormsg'"); + +$my_file = call('non_existent_file') and die("Failed opening file: error was '$php_errormsg'"); +($my_file = call('non_existent_file')) and die("Failed opening file: error was '$php_errormsg'"); + +$var = $obj->foo ?? "default"; +$var = $foo ? $bar ?? $foo : $baz; +$var = $foo ?? ($bar ?? $baz); +$var = ($foo ?? $baz) || $baz; +$var = $foo ?? $baz || $baz; +$var = ($foo && $baz) ?? $baz; +$var = $foo && ($baz ?? $baz); + +$result = 2 ** $number - 1; +$result = (2 ** $number) - 1; +$result = 2 ** ($number - 1); + +=====================================output===================================== +> 20) >> 30; +$var = (10 >> 20) >> 30; +$var = 10 >> (20 >> 30); + +$var = 10 ^ 20 ^ 30; +$var = 10 ^ 20 ^ 30; +$var = 10 ^ (20 ^ 30); + +$var = 10 | 20 | 30; +$var = 10 | 20 | 30; +$var = 10 | (20 | 30); + +$var = false || true; +$var = false || true; +($var = false) or true; +$var = (false or true); +$var = true && false; +$var = true && false; +($var = true) and false; +$var = (true and false); + +$var = $var || $var(); +$var = ($var || $var)(); +$var = $var && $var(); +$var = ($var && $var)(); +$var = call($var || $var); +$var = call($var || $var); +$var = call($var && $var); +$var = call($var && $var); + +$var = +($var || $var); +$var = -($var || $var); +$var = ~($var || $var); + +$var = ($var || $var)->foo; +$var = ($var || $var)->foo(); +$var = ($var || $var)[1]; + +$var = $var || ($var && $var); +$var = ($var || $var) && $var; +$var = $var || ($var && $var); + +$var = $var & ($var || "test"); +$var = ($var || "test") & $var; +$var = $var & ($var . "test"); +$var = ($var . "test") & $var; +$var = $var & $var || "test"; +$var = $var || "test" & $var; + +$var = ($var || $var) % 100; +$var = ($var + $var) % 100; +$var = 100 % ($var || $var); +$var = 100 % ($var + $var); +$var = $var || $var % 100; +$var = $var + ($var % 100); +$var = 100 % $var || $var; +$var = (100 % $var) + $var; + +$var = $var + $var >> 1; +$var = ($var - 1 >> $var) & $var; +$var = $var > $var ? 0 : $var - $var >> $var; +$var = ($var - $var >> $var) + 1; + +if ($var < 1 << $var + $var) { +} + +$var = $var < $var ? 0 : ($var - 1 >> $var) << $var; +$var = 1 - 2 * ($var[3] >> 7); +$var = ((($var[3] << 1) & 0xff) | ($var[2] >> 7)) - 127; +$var = (($var[2] & 0x7f) << 16) | ($var[1] << 8) | $var[0]; + +$var = ((2 / 3) * 10) / 2 + 2; + +$var = (($var / $var) * $var - $var / 2) * call($var); +$var = (($var / $var) * $var - $var / 2) * call($var); + +$var = ($var % 10) - 5; +$var = ($var * $var) % 10; +$var = $var % 10 > 5; +$var = $var % 10 == 0; + +$var = $var + $var / $var; +$var = $var / $var + $var; + +$var = ($var * $var) % $var; +$var = ($var / $var) % $var; +$var = ($var % $var) * $var; +$var = ($var % $var) / $var; + +$var = ($var % $var) % $var; + +$var = ($var << $var) >> $var; +$var = ($var >> $var) << $var; +$var = ($var >> $var) >> $var; +$var = $var + $var >> $var; +$var = $var + $var >> $var; +$var = $var + ($var >> $var); + +$var = $var | ($var & $var); +$var = ($var & $var) | $var; +$var = $var ^ $var ^ $var; +$var = $var & $var & $var; +$var = $var | $var | $var; +$var = $var & ($var >> $var); +$var = ($var << $var) | $var; + +$var = $var ? "foo" : "bar" . "test"; +$var = ($var ? "foo" : "bar") . "test"; +$var = $var ? "foo" : "bar" . "test"; + +call($var + $var); + +$var = call($var + $var); + +$var = $var + $var ** 2; +$var = ($var + $var) ** 2; +$var = $var + $var ** 2; +$var = (+$var) ** 2; +$var = (+$var) ** 2; + +$var = $foo instanceof Foo; +$var = $foo instanceof Foo || $foo instanceof Foo; +$var = $foo instanceof Foo || $foo instanceof Foo; +$var = $foo instanceof Foo; + +$var = !$var; +$var = !$var; +$var = !$var; +$var = !!$var; +$var = !!$var; +$var = !!$var; +$var = !!$var; +$var = !!!$var; +$var = !!!$var; +$var = !!!$var; +$var = !!!$var; +$var = !!!$var; + +$var = !$var || !$var; +$var = !$var || !$var; +$var = !(!$var || !$var); + +$var = $var + $var * $var; +$var = ($var + $var) * $var; + +$var = @foo() || @foo(); +$var = @(foo() || foo()); + +$var += $var += $var += $var; +$var -= $var -= $var -= $var; +$var *= $var *= $var *= $var; +$var **= $var **= $var **= $var; +$var /= $var /= $var /= $var; +$var .= $var .= $var .= $var; +$var %= $var %= $var %= $var; +$var &= $var &= $var &= $var; +$var |= $var |= $var |= $var; +$var ^= $var ^= $var ^= $var; +$var <<= $var <<= $var <<= $var; +$var >>= $var >>= $var >>= $var; + +$var = $var | $var | $var; +$var = $var | ($var | $var); +$var = $var | $var | $var; +$var = $var & $var & $var; +$var = $var & ($var & $var); +$var = $var & $var & $var; + +$var = ($var ^ $var) | $var; +$var = ($var ^ $var) | $var; +$var = $var | ($var ^ $var); +$var = $var | ($var ^ $var); +$var = ($var | $var) ^ $var; + +$var = ($var & $var) | $var; +$var = ($var & $var) | $var; +$var = $var | ($var & $var); +$var = $var | ($var & $var); +$var = ($var | $var) & $var; + +$var = $var == $var || false; +$var = $var == $var || false; +$var = $var == ($var || false); + +$var = false || $var == $var; +$var = false || $var == $var; +$var = ($var || false) == $var; + +$var = "string" . true ? "1" : "2"; +$var = "string" . (true ? "1" : "2"); + +$var = "string" . (100 + 100); +$var = 100 + 100 . "string"; +$var = "string" . ($var || 100); +$var = ($var || 100) . "string"; +$var = "string" . $var * 100; +$var = $var * 100 . "string"; +$var = "string" . !$var; +$var = !$var . "string"; +$var = "string" . ($var | 100); +$var = ($var | 100) . "string"; + +$var = $var . $var % $var; +$var = ($var . $var) % $var; +$var = $var % $var . $var; +$var = $var % ($var . $var); + +$var = "100" - "100" - "100"; +$var = "100" - "100" - "100"; +$var = "100" - ("100" - "100"); + +if (false || true) { +} +if (false || true) { +} +if (false or true) { +} +if (false or true) { +} +if (true && false) { +} +if (true && false) { +} +if (true and false) { +} +if (true and false) { +} + +if (!$foo or $bar == -1) { +} +if (!$foo or $bar == -1) { +} +if ((!$foo or $bar) == -1) { +} +if (!$foo or $bar == -1) { +} + +do { +} while ($foo and $bar); +while ($foo or $bar < 10) { +} +for ($foo or $bar; ; ) { +} +switch ($foo or $bar) { +} + +$a ** ($b ** $c); +($a ** $b) ** $c; +$a->b ** $c; +(-$a) ** $b; +$a ** -$b; +-($a ** $b); +($a * $b) ** $c; +$a ** ($b * $c); +($a % $b) ** $c; + +$var = $var + $var ?? ""; +$var = $var + ($var ?? ""); +$var = $var + $var ?? ""; +$var = $var ?? null + 1; +$var = ($var ?? null) + 1; +$var = $var && ($var ?? true); +$var = ($var ?? true) && $var; +$var = $var && ($var ?? null) === true; +$var = ($var ?? null) === true && $var; + +$findAll = $cachesNames === []; +$findAll = $cachesNames === []; + +$isNamespaced = strpos($fixture, "\\\\") !== false; +$isNamespaced = strpos($fixture, "\\\\") !== false; + +$var = $a["apply_time"] > $b["apply_time"] ? -1 : +1; +$var = $a["apply_time"] > $b["apply_time"] ? -1 : +1; + +$var = $page > 0 || ($page == 0 && $this->forcePageParam); +$var = $page > 0 || ($page == 0 && $this->forcePageParam); + +@foo() || @foo(); +@foo() || @foo(); +$var = @foo() || @foo(); +$var = @foo() || @foo(); + +@$i / 0; +@$i / 0; + +$var = "a" . (@$b ? "bar" : "baz"); + +$a = false && foo(); +$b = true || foo(); +$c = (false and foo()); +$d = (true or foo()); + +($f = false) or true; +($h = true) and false; + +($my_file = call("non_existent_file")) or + die("Failed opening file: error was '$php_errormsg'"); +($my_file = call("non_existent_file")) or + die("Failed opening file: error was '$php_errormsg'"); + +($my_file = call("non_existent_file")) and + die("Failed opening file: error was '$php_errormsg'"); +($my_file = call("non_existent_file")) and + die("Failed opening file: error was '$php_errormsg'"); + +$var = $obj->foo ?? "default"; +$var = $foo ? $bar ?? $foo : $baz; +$var = $foo ?? ($bar ?? $baz); +$var = ($foo ?? $baz) || $baz; +$var = $foo ?? $baz || $baz; +$var = $foo && $baz ?? $baz; +$var = $foo && ($baz ?? $baz); + +$result = 2 ** $number - 1; +$result = 2 ** $number - 1; +$result = 2 ** ($number - 1); + +================================================================================ +`; + +exports[`bin.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +c()); +} + +=====================================output===================================== +c(); +} + +================================================================================ +`; + +exports[`block.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +c()); +} + +=====================================output===================================== +c(); +} + +================================================================================ +`; + +exports[`break.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +call(); +$var = ($foo)->call(); +$var = ($foo->call()); +$var = $foo->call()->call(); +$var = ($foo)->call()->call(); +$var = (($foo)->call())->call(); +$var = ((($foo)->call())->call()); + +$var = call((call())); +$var = call(...(call())); +$var = (call((call()))); +$var = (call((call()), (call()))); + +$var = $func(); +$var = ($func)(); +$var = ($func()); +$var = (($func)()); + +$var = $this->$name(); +$var = ($this)->$name(); +$var = ($this->$name()); +$var = (($this)->$name()); + +$var = Foo::call(); +$var = (Foo::call()); + +$var = (array("Foo", "bar"))(); +$var = (array(new Foo, "baz"))(); +$var = ((string) 1234)(); +$var = "Foo::bar"(); +$var = ("Foo::bar")(); + +call(($a), (($b)), ((($c)))); +call($a = $b); +call(($a = $b)); +call($a = new Foo()); +call(($a = new Foo())); +call($a = (new Foo())); +call(($a = (new Foo()))); +$foo->call(($a = (new Foo()))); +Foo::call(($a = (new Foo()))); + +=====================================output===================================== c()); -} +call(); +call(); -=====================================output===================================== -c(); -} +$var = $foo->call(); +$var = $foo->call(); +$var = $foo->call(); +$var = $foo->call()->call(); +$var = $foo->call()->call(); +$var = $foo->call()->call(); +$var = $foo->call()->call(); -================================================================================ -`; +$var = call(call()); +$var = call(...call()); +$var = call(call()); +$var = call(call(), call()); -exports[`break.php 1`] = ` -====================================options===================================== -parsers: ["php"] -printWidth: 80 - | printWidth -=====================================input====================================== -$name(); +$var = $this->$name(); +$var = $this->$name(); +$var = $this->$name(); -=====================================output===================================== -call($a = new Foo()); +Foo::call($a = new Foo()); ================================================================================ `; -exports[`call.php 1`] = ` +exports[`call.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -1216,101 +2531,303 @@ $var = ($foo)->call()->call(); $var = (($foo)->call())->call(); $var = ((($foo)->call())->call()); -$var = call((call())); -$var = call(...(call())); -$var = (call((call()))); -$var = (call((call()), (call()))); +$var = call((call())); +$var = call(...(call())); +$var = (call((call()))); +$var = (call((call()), (call()))); + +$var = $func(); +$var = ($func)(); +$var = ($func()); +$var = (($func)()); + +$var = $this->$name(); +$var = ($this)->$name(); +$var = ($this->$name()); +$var = (($this)->$name()); + +$var = Foo::call(); +$var = (Foo::call()); + +$var = (array("Foo", "bar"))(); +$var = (array(new Foo, "baz"))(); +$var = ((string) 1234)(); +$var = "Foo::bar"(); +$var = ("Foo::bar")(); + +call(($a), (($b)), ((($c)))); +call($a = $b); +call(($a = $b)); +call($a = new Foo()); +call(($a = new Foo())); +call($a = (new Foo())); +call(($a = (new Foo()))); +$foo->call(($a = (new Foo()))); +Foo::call(($a = (new Foo()))); + +=====================================output===================================== +call(); +$var = $foo->call(); +$var = $foo->call(); +$var = $foo->call()->call(); +$var = $foo->call()->call(); +$var = $foo->call()->call(); +$var = $foo->call()->call(); + +$var = call(call()); +$var = call(...call()); +$var = call(call()); +$var = call(call(), call()); + +$var = $func(); +$var = $func(); +$var = $func(); +$var = $func(); + +$var = $this->$name(); +$var = $this->$name(); +$var = $this->$name(); +$var = $this->$name(); + +$var = Foo::call(); +$var = Foo::call(); + +$var = (["Foo", "bar"])(); +$var = ([new Foo(), "baz"])(); +$var = ((string) 1234)(); +$var = ("Foo::bar")(); +$var = ("Foo::bar")(); + +call($a, $b, $c); +call($a = $b); +call($a = $b); +call($a = new Foo()); +call($a = new Foo()); +call($a = new Foo()); +call($a = new Foo()); +$foo->call($a = new Foo()); +Foo::call($a = new Foo()); + +================================================================================ +`; + +exports[`cast.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== + 'foo'))); +$var = ((object) (['1' => 'foo'])); +$var = ((object) 'ciao')->scalar; +$var = ((object) array('test'))->{'0'}; +$var = (((object) array('test'))->{'0'}); +$var = (array) new B(); +$var = (array) (new B()); +$var = ((array) (new B())); +$var = ((array) (new B()))['foo']; +$var = ((string) 1234)[1]; +$var = ((string) 123)(); +$var = ((string) (123))(); +$var = "test"[0]; +$var = (array) "test"[0]; +$var = ((array) "test")[0]; +$var = [(int) 'key' => (int) '1']; +$var = [((int) 'key') => ((int) '1')]; +$var = ([((int) 'key') => ((int) '1')]); +$var = (int) $raw['data'] + $value; +$var = ((int) $raw['data']) + $value; +$var = (bool) $var ? 1 : 2; +$var = (bool) ($var ? 1 : 2); +$var = (bool) $var + 1 ? 1 : 2; +$var = ((bool) $var) + 1 ? 1 : 2; +$var = (bool) ($var + 1) ? 1 : 2; +$var = ((bool) $var) ? 1 : 2; +$var = ((bool) $var) ? (bool) 1 : (bool) 2; +$var = ((bool) $var) ? ((bool) 1) : ((bool) 2); +$var = ((bool) $var) ? (bool) 1 + 2 : (bool) 2 + 3; +$var = ((bool) $var) ? ((bool) 1 + 2) : ((bool) 2 + 3); +$var = ((bool) $var) ? (bool) $var ? 1 : 2 : (bool) $var ? 1 : 2; +$var = ((bool) $var) ? ((bool) $var) ? 1 : 2 : ((bool) $var) ? 1 : 2; +$var = ((bool) $var) ? (bool) ($var ? 1 : 2) : (bool) ($var ? 1 : 2); +$var = (bool) ($var ? (bool) ($var ? 1 : 2) : (bool) ($var ? 1 : 2)); +$var = (bool) $var->foo; +$var = (bool) ($var->foo); +$var = ((bool) $var->foo); +$var = ((object) $var)->foo; +$var = ((object) $var)[0]; +$var = (int) 'test' + (int) 'test'; +$var = ((int) 'test') + ((int) 'test'); +$var = ((int) 'test') * ((int) 'test'); +$var = ((int) 'test') | ((int) 'test'); +$var = ((int) 'test') % ((int) 'test'); +$var = @((int) 'test'); +$var = @((int) call()); +$var = (int) (int) 1; +$var = (int) ((int) 1); +$var = call((int) $var, (int) call(), (int) $minutes * 60); +$var = call(((int) $var), ((int) call()), (int) ($minutes * 60)); +$var = $var + (int) $minutes * 60; +$var = $var + (int) ($minutes * 60); + +return (int) $var; +return ((int) $var); -$var = $func(); -$var = ($func)(); -$var = ($func()); -$var = (($func)()); +if ((int) 1 === 1) {} +if (1 === (int) 1) {} +if (((int) 1) === 1) {} +if (1 === ((int) 1)) {} +if ((int) 1 === (int) 1) {} +if (((int) 1) === (int) 1) {} +if ((int) 1 === ((int) 1)) {} +if (((int) (1)) === ((int) 1)) {} -$var = $this->$name(); -$var = ($this)->$name(); -$var = ($this->$name()); -$var = (($this)->$name()); +$var = (bool) call(); +$var = $var || (bool) call(); +$var = (bool) call() || $var; -$var = Foo::call(); -$var = (Foo::call()); +$var = (int) $var === 1; +$var = ((int) $var) === 1; +$var = (int) ($var === 1); -$var = (array("Foo", "bar"))(); -$var = (array(new Foo, "baz"))(); -$var = ((string) 1234)(); -$var = "Foo::bar"(); -$var = ("Foo::bar")(); +$this->apc->put($this->prefix.$key, $value, (int) ($minutes * 60)); -call(($a), (($b)), ((($c)))); -call($a = $b); -call(($a = $b)); -call($a = new Foo()); -call(($a = new Foo())); -call($a = (new Foo())); -call(($a = (new Foo()))); -$foo->call(($a = (new Foo()))); -Foo::call(($a = (new Foo()))); +$timeout = (int) ($server->timeout / 1000) + (($server->timeout % 1000 > 0) ? 1 : 0); =====================================output===================================== call(); -$var = $foo->call(); -$var = $foo->call(); -$var = $foo->call()->call(); -$var = $foo->call()->call(); -$var = $foo->call()->call(); -$var = $foo->call()->call(); +$var = (int) "1"; +$var = ((int) "1"); +$var = ((int) "1"); +$var = ((bool) 2.3e5); +$var = (object) []; +$var = (object) []; +$var = ((object) []); +$var = ((object) ["1" => "foo"]); +$var = ((object) ["1" => "foo"]); +$var = ((object) "ciao")->scalar; +$var = ((object) ["test"])->{'0'}; +$var = ((object) ["test"])->{'0'}; +$var = (array) new B(); +$var = (array) new B(); +$var = ((array) new B()); +$var = ((array) new B())["foo"]; +$var = ((string) 1234)[1]; +$var = ((string) 123)(); +$var = ((string) 123)(); +$var = "test"[0]; +$var = (array) "test"[0]; +$var = ((array) "test")[0]; +$var = [(int) "key" => (int) "1"]; +$var = [((int) "key") => ((int) "1")]; +$var = [((int) "key") => ((int) "1")]; +$var = (int) $raw["data"] + $value; +$var = ((int) $raw["data"]) + $value; +$var = (bool) $var ? 1 : 2; +$var = (bool) ($var ? 1 : 2); +$var = (bool) $var + 1 ? 1 : 2; +$var = ((bool) $var) + 1 ? 1 : 2; +$var = (bool) ($var + 1) ? 1 : 2; +$var = ((bool) $var) ? 1 : 2; +$var = ((bool) $var) ? (bool) 1 : (bool) 2; +$var = ((bool) $var) ? ((bool) 1) : ((bool) 2); +$var = ((bool) $var) ? (bool) 1 + 2 : (bool) 2 + 3; +$var = ((bool) $var) ? (bool) 1 + 2 : (bool) 2 + 3; +$var = (((bool) $var) ? ((bool) $var ? 1 : 2) : (bool) $var) ? 1 : 2; +$var = (((bool) $var) ? (((bool) $var) ? 1 : 2) : ((bool) $var)) ? 1 : 2; +$var = ((bool) $var) ? (bool) ($var ? 1 : 2) : (bool) ($var ? 1 : 2); +$var = (bool) ($var ? (bool) ($var ? 1 : 2) : (bool) ($var ? 1 : 2)); +$var = (bool) $var->foo; +$var = (bool) $var->foo; +$var = ((bool) $var->foo); +$var = ((object) $var)->foo; +$var = ((object) $var)[0]; +$var = (int) "test" + (int) "test"; +$var = ((int) "test") + ((int) "test"); +$var = ((int) "test") * ((int) "test"); +$var = ((int) "test") | ((int) "test"); +$var = ((int) "test") % ((int) "test"); +$var = @((int) "test"); +$var = @((int) call()); +$var = (int) (int) 1; +$var = (int) ((int) 1); +$var = call((int) $var, (int) call(), (int) $minutes * 60); +$var = call(((int) $var), ((int) call()), (int) ($minutes * 60)); +$var = $var + (int) $minutes * 60; +$var = $var + (int) ($minutes * 60); -$var = call(call()); -$var = call(...call()); -$var = call(call()); -$var = call(call(), call()); +return (int) $var; +return (int) $var; -$var = $func(); -$var = $func(); -$var = $func(); -$var = $func(); +if ((int) 1 === 1) { +} +if (1 === (int) 1) { +} +if (((int) 1) === 1) { +} +if (1 === ((int) 1)) { +} +if ((int) 1 === (int) 1) { +} +if (((int) 1) === (int) 1) { +} +if ((int) 1 === ((int) 1)) { +} +if (((int) 1) === ((int) 1)) { +} -$var = $this->$name(); -$var = $this->$name(); -$var = $this->$name(); -$var = $this->$name(); +$var = (bool) call(); +$var = $var || (bool) call(); +$var = (bool) call() || $var; -$var = Foo::call(); -$var = Foo::call(); +$var = (int) $var === 1; +$var = ((int) $var) === 1; +$var = (int) ($var === 1); -$var = (["Foo", "bar"])(); -$var = ([new Foo(), "baz"])(); -$var = ((string) 1234)(); -$var = ("Foo::bar")(); -$var = ("Foo::bar")(); +$this->apc->put($this->prefix . $key, $value, (int) ($minutes * 60)); -call($a, $b, $c); -call($a = $b); -call($a = $b); -call($a = new Foo()); -call($a = new Foo()); -call($a = new Foo()); -call($a = new Foo()); -$foo->call($a = new Foo()); -Foo::call($a = new Foo()); +$timeout = + (int) ($server->timeout / 1000) + ($server->timeout % 1000 > 0 ? 1 : 0); ================================================================================ `; -exports[`cast.php 1`] = ` +exports[`cast.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -1476,42 +2993,121 @@ $var = $var + (int) ($minutes * 60); return (int) $var; return (int) $var; -if ((int) 1 === 1) { -} -if (1 === (int) 1) { -} -if (((int) 1) === 1) { -} -if (1 === ((int) 1)) { -} -if ((int) 1 === (int) 1) { -} -if (((int) 1) === (int) 1) { -} -if ((int) 1 === ((int) 1)) { -} -if (((int) 1) === ((int) 1)) { -} +if ((int) 1 === 1) { +} +if (1 === (int) 1) { +} +if (((int) 1) === 1) { +} +if (1 === ((int) 1)) { +} +if ((int) 1 === (int) 1) { +} +if (((int) 1) === (int) 1) { +} +if ((int) 1 === ((int) 1)) { +} +if (((int) 1) === ((int) 1)) { +} + +$var = (bool) call(); +$var = $var || (bool) call(); +$var = (bool) call() || $var; + +$var = (int) $var === 1; +$var = ((int) $var) === 1; +$var = (int) ($var === 1); + +$this->apc->put($this->prefix . $key, $value, (int) ($minutes * 60)); + +$timeout = + (int) ($server->timeout / 1000) + ($server->timeout % 1000 > 0 ? 1 : 0); + +================================================================================ +`; + +exports[`clone.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +foo; +$var = (clone $a->foo); +$var = (clone $a)->foo(); + +$var = (clone foo())->bar()->foo(); +$var = ((clone foo())->bar())->foo(); +$var = (((clone foo())->bar())->foo()); +$var = (((clone foo())->bar())->foo())[0]; +$var = ((((clone foo())->bar())->foo())[0])[1]; +$var = (((clone foo())->bar())->foo())->baz(); +$var = (clone $foo())->bar; +$var = (clone $bar->y)->x; +$var = (clone $foo)[0]; +$var = (clone $foo)[0]['string']; + +$var = clone $a->b; +$var = clone $a->b(); +$var = (clone $a)->b(); +$var = ((clone $a)->b()); + +$var = (clone ($var)); +$var = (clone($var)); +$var = (clone($var->foo)); +$var = (clone($var->foo))->foo; + +=====================================output===================================== +foo; +$var = clone $a->foo; +$var = (clone $a)->foo(); -$var = (int) $var === 1; -$var = ((int) $var) === 1; -$var = (int) ($var === 1); +$var = (clone foo())->bar()->foo(); +$var = (clone foo())->bar()->foo(); +$var = (clone foo())->bar()->foo(); +$var = (clone foo())->bar()->foo()[0]; +$var = (clone foo())->bar()->foo()[0][1]; +$var = (clone foo())->bar()->foo()->baz(); +$var = (clone $foo())->bar; +$var = (clone $bar->y)->x; +$var = (clone $foo)[0]; +$var = (clone $foo)[0]["string"]; -$this->apc->put($this->prefix . $key, $value, (int) ($minutes * 60)); +$var = clone $a->b; +$var = clone $a->b(); +$var = (clone $a)->b(); +$var = (clone $a)->b(); -$timeout = - (int) ($server->timeout / 1000) + ($server->timeout % 1000 > 0 ? 1 : 0); +$var = clone $var; +$var = clone $var; +$var = clone $var->foo; +$var = (clone $var->foo)->foo; ================================================================================ `; -exports[`clone.php 1`] = ` +exports[`clone.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -1604,79 +3200,396 @@ $var = ((function () {})())(); $func = static function() {}; $func = (static function() {}); -function foo() { - $var = (function () {}); - $var = (function () {})(); +function foo() { + $var = (function () {}); + $var = (function () {})(); +} + +call(function () {}, function () {}, function () {}); +call((function () {}), (function () {}), (function () {})); + +var_dump(...(function() use ($type) {})()); + +=====================================output===================================== + $b)) { + echo "a is bigger than b"; +} elseif (($a == $b)) { + echo "a is equal to b"; +} else { + echo "a is smaller than b"; +} + +while (($i <= 10)) { + echo $i++; +} + +do { + echo $i; +} while (($i > 0)); + +switch (($i)) { + case (0): + echo "i equals 0"; + break; + case ((1)): + echo "i equals 1"; + break; + case ('test' . ( 1 > 2 ? 'foo' : 'bar')): + echo "i equals 2"; + break; +} + +switch (($i + 1)) { + case (0): + echo "i equals 0"; + break; + case (1 + 2): + echo "i equals 1"; + break; + case (1 + ( 1 > 2 ? 1 : 3)): + echo "i equals 2"; + break; +} + +while (++$i) { + switch ($i) { + case 5: + echo "At 5
\\n"; + break (2); /* Exit only the switch. */ + case 10: + echo "At 10; quitting
\\n"; + break ((4)); /* Exit the switch and the while. */ + default: + break; + } } -call(function () {}, function () {}, function () {}); -call((function () {}), (function () {}), (function () {})); +while ($i++ < 5) { + echo "Outer
\\n"; + while (1) { + echo "Middle
\\n"; + while (1) { + echo "Inner
\\n"; + continue (3); + } + echo "This never gets output.
\\n"; + continue ((2)); + } + echo "Neither does this.
\\n"; +} -var_dump(...(function() use ($type) {})()); +if ($var = 1) {} +if (($var = 1)) {} +if ($var = 1) {} else if ($var = 1) {} else {} +if (($var = 1)) {} else if (($var = 1)) {} else {} +do {} while ($var = 1); +do {} while (($var = 1)); +while ($var = 1) {} +while (($var = 1)) {} +for ($i = 1; $i <= 10; $i++) {} +for (($i = 1); ($i <= 10); ($i++)) {} +foreach (($arr = [1, 2, 3]) as $value) {} +foreach (($arr) as $value) {} +foreach (($arr) as $key => $value) {} +foreach (($arr = [1, 2, 3]) as $key => $value) {} +switch ($var = 1) {} +switch (($var = 1)) {} + +while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {} +while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) {} + +if (($foo = $bar) && count($foo) > 0) {} +if( false !== ($file = readdir($dh)) && 0 !== strpos($file,'.')){} +while (($a = foo()) !== 5) {} +while( false !== ($file = readdir($dh))){} +do {} while( false !== ($file = readdir($dh))); =====================================output===================================== $b) { + echo "a is bigger than b"; +} elseif ($a == $b) { + echo "a is equal to b"; +} else { + echo "a is smaller than b"; +} -function foo() -{ - $var = function () {}; - $var = (function () {})(); +while ($i <= 10) { + echo $i++; } -call(function () {}, function () {}, function () {}); -call(function () {}, function () {}, function () {}); +do { + echo $i; +} while ($i > 0); -var_dump(...(function () use ($type) {})()); +switch ($i) { + case 0: + echo "i equals 0"; + break; + case 1: + echo "i equals 1"; + break; + case "test" . (1 > 2 ? "foo" : "bar"): + echo "i equals 2"; + break; +} -================================================================================ -`; +switch ($i + 1) { + case 0: + echo "i equals 0"; + break; + case 1 + 2: + echo "i equals 1"; + break; + case 1 + (1 > 2 ? 1 : 3): + echo "i equals 2"; + break; +} -exports[`continue.php 1`] = ` -====================================options===================================== -parsers: ["php"] -printWidth: 80 - | printWidth -=====================================input====================================== -\\n"; + break 2; /* Exit only the switch. */ + case 10: + echo "At 10; quitting
\\n"; + break 4; /* Exit the switch and the while. */ + default: + break; + } +} -continue; -continue 1; -continue (1); -continue ((1)); -continue (((1))); -continue 2; -continue (2); -continue ((2)); -continue (((2))); +while ($i++ < 5) { + echo "Outer
\\n"; + while (1) { + echo "Middle
\\n"; + while (1) { + echo "Inner
\\n"; + continue 3; + } + echo "This never gets output.
\\n"; + continue 2; + } + echo "Neither does this.
\\n"; +} -=====================================output===================================== - $value) { +} +foreach ($arr = [1, 2, 3] as $key => $value) { +} +switch ($var = 1) { +} +switch ($var = 1) { +} -continue; -continue; -continue; -continue; -continue; -continue 2; -continue 2; -continue 2; -continue 2; +while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) { +} +while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { +} + +if (($foo = $bar) && count($foo) > 0) { +} +if (false !== ($file = readdir($dh)) && 0 !== strpos($file, ".")) { +} +while (($a = foo()) !== 5) { +} +while (false !== ($file = readdir($dh))) { +} +do { +} while (false !== ($file = readdir($dh))); ================================================================================ `; -exports[`control-structures.php 1`] = ` +exports[`control-structures.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -1882,7 +3795,7 @@ switch ($var = 1) { switch ($var = 1) { } -while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) { +while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { } while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { } @@ -1901,7 +3814,52 @@ do { ================================================================================ `; -exports[`declare.php 1`] = ` +exports[`declare.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +c()); + +=====================================output===================================== +c(); + +================================================================================ +`; + +exports[`declare.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +c()); + +=====================================output===================================== +c(); + +================================================================================ +`; + +exports[`echo.php 1`] = ` ====================================options===================================== parsers: ["php"] printWidth: 80 @@ -1909,23 +3867,93 @@ printWidth: 80 =====================================input====================================== c()); +echo "Sum: ", 1 + 2; +echo "Hello ", isset($name) ? $name : "John Doe", "!"; +echo "Hello ", (isset($name) ? $name : "John Doe"), "!"; + +echo 'Sum: ' . (1 + 2); +echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!'; +echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!'; + +echo $some_var ? 'true': 'false'; +echo ($some_var ? 'true': 'false'); + +echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10); +echo ('This '), ('string '), ('was '), ('made '), ('with multiple parameters.'), (chr(10)); +echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\\n"; +echo ('This ') . ('string ') . ('was ') . ('made ') . ('with concatenation.') . ("\\n"); + +echo <<c(); +echo "Sum: ", 1 + 2; +echo "Hello ", isset($name) ? $name : "John Doe", "!"; +echo "Hello ", isset($name) ? $name : "John Doe", "!"; + +echo "Sum: " . (1 + 2); +echo "Hello " . isset($name) ? $name : "John Doe" . "!"; +echo "Hello " . (isset($name) ? $name : "John Doe") . "!"; + +echo $some_var ? "true" : "false"; +echo $some_var ? "true" : "false"; + +echo "This ", "string ", "was ", "made ", "with multiple parameters.", chr(10); +echo "This ", "string ", "was ", "made ", "with multiple parameters.", chr(10); +echo "This " . "string " . "was " . "made " . "with concatenation." . "\\n"; +echo "This " . "string " . "was " . "made " . "with concatenation." . "\\n"; + +echo <<bar; +($var->bar); + +$var->bar(); +($var->bar()); + +$var::bar(); +($var::bar()); + +$var = $var->bar; +$var = ($var->bar); +$var = $var->bar->foo; +$var = ($var->bar)->foo; +$var = ($var->bar->foo); +$var = (($var->bar)->foo); + +$var = $var::foo(); +$var = ($var::foo()); +$var = $var::foo()::bar(); +$var = ($var::foo())::bar(); +$var = ($var::foo()::bar()); +$var = (($var::foo())::bar()); + +$var = $var->bar(); +$var = ($var->bar()); +$var = $var->bar()->foo(); +$var = ($var->bar())->foo(); +$var = ($var->bar()->foo()); +$var = (($var->bar())->foo()); + +$var = ((object) ($var->bar())->foo()); +$var = (object) (($var->bar())->foo()); + +$var = $var[0]; +$var = $var[0][1]; +$var = ($var[0]); +$var = ($var[0][1]); +$var = $var[0]->foo; +$var = ($var[0])->foo; +$var = ($var[0][1])->foo; +$var = ($var[0])[1]->foo; +$var = (($var[0])[1])->foo; +$var = $var[0]::foo; +$var = ($var[0])::foo; +$var = ($var[0][1])::foo; +$var = ($var[0])[1]::foo; +$var = (($var[0])[1])::foo; +$var = $var[0]->foo(); +$var = ($var[0])->foo(); +$var = ($var[0][1])->foo(); +$var = ($var[0])[1]->foo(); +$var = (($var[0])[1])->foo(); +$var = $var[0]::foo(); +$var = ($var[0])::foo(); +$var = ($var[0][1])::foo(); +$var = ($var[0])[1]::foo(); +$var = (($var[0])[1])::foo(); + +$var = $var[0]->foo()->baz; +$var = ((($var[0])->foo())->baz); + +$var = (new Foo())->bar; +$var = (new Foo())::bar; +$var = (new Foo())->bar(); +$var = (new Foo())::bar(); +$var = (new Foo())[1]; + +$var = $var->bar()(); +$var = ($var->bar())(); +$var = ($var->bar()()); +$var = (($var->bar())()); + +$var = $var::bar()(); +$var = ($var::bar())(); +$var = ($var::bar()()); +$var = (($var::bar())()); + +$var = ($var)->bar; +$var = (($var)->bar); +$var = ($var)->bar(); +$var = (($var)->bar()); + +$var = (function () { + return $this->foo; +})->bindTo($var, A::class)(); +$var = (((function () { + return $this->foo; +})))->bindTo($var, A::class)(); + +=====================================output===================================== +bar; +$var->bar; + +$var->bar(); +$var->bar(); + +$var::bar(); +$var::bar(); + +$var = $var->bar; +$var = $var->bar; +$var = $var->bar->foo; +$var = $var->bar->foo; +$var = $var->bar->foo; +$var = $var->bar->foo; + +$var = $var::foo(); +$var = $var::foo(); +$var = $var::foo()::bar(); +$var = $var::foo()::bar(); +$var = $var::foo()::bar(); +$var = $var::foo()::bar(); + +$var = $var->bar(); +$var = $var->bar(); +$var = $var->bar()->foo(); +$var = $var->bar()->foo(); +$var = $var->bar()->foo(); +$var = $var->bar()->foo(); + +$var = ((object) $var->bar()->foo()); +$var = (object) $var->bar()->foo(); + +$var = $var[0]; +$var = $var[0][1]; +$var = $var[0]; +$var = $var[0][1]; +$var = $var[0]->foo; +$var = $var[0]->foo; +$var = $var[0][1]->foo; +$var = $var[0][1]->foo; +$var = $var[0][1]->foo; +$var = $var[0]::foo; +$var = $var[0]::foo; +$var = $var[0][1]::foo; +$var = $var[0][1]::foo; +$var = $var[0][1]::foo; +$var = $var[0]->foo(); +$var = $var[0]->foo(); +$var = $var[0][1]->foo(); +$var = $var[0][1]->foo(); +$var = $var[0][1]->foo(); +$var = $var[0]::foo(); +$var = $var[0]::foo(); +$var = $var[0][1]::foo(); +$var = $var[0][1]::foo(); +$var = $var[0][1]::foo(); + +$var = $var[0]->foo()->baz; +$var = $var[0]->foo()->baz; + +$var = new Foo()->bar; +$var = new Foo()::bar; +$var = new Foo()->bar(); +$var = new Foo()::bar(); +$var = new Foo()[1]; + +$var = $var->bar()(); +$var = $var->bar()(); +$var = $var->bar()(); +$var = $var->bar()(); + +$var = $var::bar()(); +$var = $var::bar()(); +$var = $var::bar()(); +$var = $var::bar()(); + +$var = $var->bar; +$var = $var->bar; +$var = $var->bar(); +$var = $var->bar(); + +$var = (function () { + return $this->foo; +})->bindTo($var, A::class)(); +$var = (function () { + return $this->foo; +})->bindTo($var, A::class)(); + +================================================================================ +`; + exports[`namespace.php 1`] = ` ====================================options===================================== parsers: ["php"] @@ -2460,6 +4918,29 @@ $a->c(); ================================================================================ `; +exports[`namespace.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +c()); + +=====================================output===================================== +c(); + +================================================================================ +`; + exports[`new.php 1`] = ` ====================================options===================================== parsers: ["php"] @@ -2498,6 +4979,9 @@ printWidth: 80 $var = new Foo(); $var = (new Foo()); $var = (new Foo())->c(); +new Foo->prop; +new Foo->method(); +new Foo->$var; $var = (new class { public function log($msg) { @@ -2513,9 +4997,17 @@ $var = ((((new foo())->bar())->foo())[0])[1]; $var = (((new foo())->bar())->foo())->baz(); $var = (new $foo())->bar; $var = (new $bar->y)->x; +new SortOfLongClassName()->withALongMethodName()->andAnother()->toPushItPast80Chars(); +$asdf = +new SortOfLongClassName()->withALongMethodName() + ->andAnother()->toPushItPast80Chars(); + $var = (new foo)[0]; $var = (new foo)[0]['string']; +$var = (new Foo)::foo; +$var = (new Foo)::$foo; + $var = new $a->b; $var = new $a->b(); $var = (new $a)->b(); @@ -2547,6 +5039,9 @@ new Translator( $var = new Foo(); $var = new Foo(); $var = (new Foo())->c(); +(new Foo())->prop; +(new Foo())->method(); +(new Foo())->$var; $var = new class { public function log($msg) { @@ -2562,8 +5057,18 @@ $var = (new foo())->bar()->foo()[0][1]; $var = (new foo())->bar()->foo()->baz(); $var = (new $foo())->bar; $var = (new $bar->y())->x; +(new SortOfLongClassName()) + ->withALongMethodName() + ->andAnother() + ->toPushItPast80Chars(); +$asdf = (new SortOfLongClassName()) + ->withALongMethodName() + ->andAnother() + ->toPushItPast80Chars(); $var = (new foo())[0]; $var = (new foo())[0]["string"]; +$var = (new Foo())::foo; +$var = (new Foo())::$foo; $var = new $a->b(); $var = new $a->b(); $var = (new $a())->b(); @@ -2575,30 +5080,321 @@ $var = (new $a())->b(); $var = (new class {})->foo; -================================================================================ -`; +================================================================================ +`; + +exports[`new.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== + 'bar') +)) +?> + 'bar') +)))) +?> + 'bar'] +)) +?> +c(); +new Foo->prop; +new Foo->method(); +new Foo->$var; +$var = (new class { + public function log($msg) + { + echo $msg; + } +}); +$var = (new foo())->bar(); +$var = (new foo())->bar()->foo(); +$var = ((new foo())->bar())->foo(); +$var = (((new foo())->bar())->foo()); +$var = (((new foo())->bar())->foo())[0]; +$var = ((((new foo())->bar())->foo())[0])[1]; +$var = (((new foo())->bar())->foo())->baz(); +$var = (new $foo())->bar; +$var = (new $bar->y)->x; +new SortOfLongClassName()->withALongMethodName()->andAnother()->toPushItPast80Chars(); +$asdf = +new SortOfLongClassName()->withALongMethodName() + ->andAnother()->toPushItPast80Chars(); + +$var = (new foo)[0]; +$var = (new foo)[0]['string']; + +$var = (new Foo)::foo; +$var = (new Foo)::$foo; + +$var = new $a->b; +$var = new $a->b(); +$var = (new $a)->b(); +$var = ((new $a)->b()); + +(new class {})->foo; +(new class {})->foo(); +(new class {})(); +(new class {})['foo']; + +$var = (new class {})->foo; + +=====================================output===================================== + "bar"], +); ?> + "bar", +]); ?> + "bar", +]); ?> +c(); +new Foo()->prop; +new Foo()->method(); +new Foo()->$var; +$var = new class { + public function log($msg) + { + echo $msg; + } +}; +$var = new foo()->bar(); +$var = new foo()->bar()->foo(); +$var = new foo()->bar()->foo(); +$var = new foo()->bar()->foo(); +$var = new foo()->bar()->foo()[0]; +$var = new foo()->bar()->foo()[0][1]; +$var = new foo()->bar()->foo()->baz(); +$var = new $foo()->bar; +$var = new $bar->y()->x; +new SortOfLongClassName() + ->withALongMethodName() + ->andAnother() + ->toPushItPast80Chars(); +$asdf = new SortOfLongClassName() + ->withALongMethodName() + ->andAnother() + ->toPushItPast80Chars(); +$var = new foo()[0]; +$var = new foo()[0]["string"]; +$var = new Foo()::foo; +$var = new Foo()::$foo; +$var = new $a->b(); +$var = new $a->b(); +$var = new $a()->b(); +$var = new $a()->b(); +new class {}->foo; +new class {}->foo(); +new class {}(); +new class {}["foo"]; +$var = new class {}->foo; + + +================================================================================ +`; + +exports[`parens.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +b++; +($a->b++); +++$a->b; +(++$a)->b; + +($a->b++)->call(); +($a->b++)[1]; +($var++)(); +$var = call($var->_uuidCounter++); + +(--$a->b)->call(); +(--$a->b)[1]; +(--$var)(); +$var = call(--$var->_uuidCounter); + +=====================================output===================================== +b++; +$a->b++; +++$a->b; +(++$a)->b; + +($a->b++)->call(); +($a->b++)[1]; +($var++)(); +$var = call($var->_uuidCounter++); + +(--$a->b)->call(); +(--$a->b)[1]; +(--$var)(); +$var = call(--$var->_uuidCounter); ================================================================================ `; -exports[`pre-post.php 1`] = ` +exports[`pre-post.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -2807,43 +5603,308 @@ END; if (print "foo" && (print "bar")) { } -if ((print "foo") && (print "bar")) { -} +if ((print "foo") && (print "bar")) { +} + +$var = $var ? print "$string_message
" : print "$string_message\\n"; +$var = $var ? print "$string_message
" : print "$string_message\\n"; +$var = $var ? print "$string_message
" : print "$string_message\\n"; + +print 1 . (print 2 + 3); // 511 +print 1 . (print 2) + 3; // 214 + +print ($var || $var) && $var; +print ($var || $var) && $var; + +================================================================================ +`; + +exports[`print.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +" : print "$string_message\\n"; +$var = $var ? (print "$string_message
") : (print "$string_message\\n"); +$var = $var ? (print ("$string_message
")) : (print ("$string_message\\n")); + +print 1 . print(2) + 3; // 511 +print 1 . (print(2)) + 3; // 214 + +print ($var || $var) && $var; +print (($var || $var) && $var); + +=====================================output===================================== +" : print "$string_message\\n"; +$var = $var ? print "$string_message
" : print "$string_message\\n"; +$var = $var ? print "$string_message
" : print "$string_message\\n"; + +print 1 . (print 2 + 3); // 511 +print 1 . (print 2) + 3; // 214 + +print ($var || $var) && $var; +print ($var || $var) && $var; + +================================================================================ +`; + +exports[`program.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +c()); + +=====================================output===================================== +c(); + +================================================================================ +`; + +exports[`program.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +c()); + +=====================================output===================================== +c(); + +================================================================================ +`; + +exports[`retif.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +prop; +($var ? $var : $var)->prop(); +($var ? $var : $var)[1]; +($var ? $var : $var)->d(); +($var ? $var : $var)->d()->e(); +($var ? $var : $var)->d()->e()->f(); +($var + ? $var->responseBody($var->currentUser) + : $var->responseBody($var->defaultUser)) +->map(); +($var + ? $var.responseBody($var->currentUser) + : $var.responseBody($var->defaultUser)) +->map()->filter(); +($var + ? $var.responseBody($var->currentUser) + : $var.responseBody($var)) +->map(); +$var[$var + ? $var->responseBody($var->currentUser) + : $var->responseBody($var)] +->map(); + +$var = $var . $var ? "()" : ""; +$var = ($var . $var) ? "()" : ""; +$var = $var . ($var ? "()" : ""); +$var = +($var ? 1 : 2); +$var = +(+$var ? 1 : 2); +$var = +($var++ ? 1 : 2); +$var = ((true ? 'true' : false) ? (true ? 'true' : false) : (true ? 'true' : false)); +$var = $var ? $var1 ? 1 : 2 : $var2 ? 3 : 4; + +$var = $var ?: $var ?: $var ?: 'string'; +$var = ($var ?: $var) ?: $var ?: 'string'; +$var = (($var ?: $var) ?: $var) ?: 'string'; +$var = ((($var ?: $var) ?: $var) ?: 'string'); +$var = ($var ?: ($var ?: $var)) ?: 'string'; +$var = ($var ?: (($var ?: $var) ?: 'string')); +$var = ($var ?: ($var ?: ($var ?: 'string'))); + +$var = ($foo and $bar) ? true : false; +$var = ($foo or $bar) ? true : false; +$var = ($foo xor $bar) ? true : false; +$var = ($foo = "bar") ? true : false; + +$var = ($foo && $bar) ? true : false; +$var = ($foo || $bar) ? true : false; +$var = (!$foo) ? true : false; +$var = (new $foo) ? true : false; -$var = $var ? print "$string_message
" : print "$string_message\\n"; -$var = $var ? print "$string_message
" : print "$string_message\\n"; -$var = $var ? print "$string_message
" : print "$string_message\\n"; +=====================================output===================================== +prop; +($var ? $var : $var)->prop(); +($var ? $var : $var)[1]; +($var ? $var : $var)->d(); +($var ? $var : $var)->d()->e(); +($var ? $var : $var)->d()->e()->f(); +($var + ? $var->responseBody($var->currentUser) + : $var->responseBody($var->defaultUser) +)->map(); +($var + ? $var . responseBody($var->currentUser) + : $var . responseBody($var->defaultUser) +) + ->map() + ->filter(); +($var + ? $var . responseBody($var->currentUser) + : $var . responseBody($var) +)->map(); +$var[ + $var ? $var->responseBody($var->currentUser) : $var->responseBody($var) +]->map(); -($a->c()); +$var = $var . $var ? "()" : ""; +$var = $var . $var ? "()" : ""; +$var = $var . ($var ? "()" : ""); +$var = +($var ? 1 : 2); +$var = +(+$var ? 1 : 2); +$var = +($var++ ? 1 : 2); +$var = (true + ? "true" + : false) + ? (true + ? "true" + : false) + : (true + ? "true" + : false); +$var = ($var ? ($var1 ? 1 : 2) : $var2) ? 3 : 4; -=====================================output===================================== -c(); +$var = ($foo and $bar) ? true : false; +$var = ($foo or $bar) ? true : false; +$var = ($foo xor $bar) ? true : false; +$var = ($foo = "bar") ? true : false; + +$var = $foo && $bar ? true : false; +$var = $foo || $bar ? true : false; +$var = !$foo ? true : false; +$var = new $foo() ? true : false; ================================================================================ `; -exports[`retif.php 1`] = ` +exports[`retif.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -2986,49 +6047,204 @@ $var = new $foo() ? true : false; ================================================================================ `; -exports[`return.php 1`] = ` -====================================options===================================== -parsers: ["php"] -printWidth: 80 - | printWidth -=====================================input====================================== -customer->paymentService ?? null); + + +=====================================output===================================== +customer->paymentService ?? null; + +================================================================================ +`; + +exports[`return.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +customer->paymentService ?? null); + + +=====================================output===================================== +customer->paymentService ?? null; + +================================================================================ +`; + +exports[`silent.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +stream, $message) || ($newline && (false === @fwrite($this->stream, PHP_EOL)))) { + // should never happen + throw new RuntimeException('Unable to write output.'); +} + +try { + if (($fp = @fopen($filename, "r")) == false) { + throw new Exception; + } else { + do_file_stuff(); + } +} catch (Exception $e) { + handle_exception(); +} + +@list($width, $height) = getimagesize($file); +// Todo https://github.com/glayzzle/php-parser/issues/356 +// @(list($width, $height) = getimagesize($file)); + +@$var += 10; +// Todo https://github.com/glayzzle/php-parser/issues/356 +// @($var += 10); + +echo @(1 / 0); + +@$i / 0; +@($i / 0); + +=====================================output===================================== +stream, $message) || + ($newline && false === @fwrite($this->stream, PHP_EOL)) +) { + // should never happen + throw new RuntimeException("Unable to write output."); +} + +try { + if (($fp = @fopen($filename, "r")) == false) { + throw new Exception(); + } else { + do_file_stuff(); + } +} catch (Exception $e) { + handle_exception(); +} -return; -return 1; -return (1); -return (1 + 2); -return ('veryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString' . 'veryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString'); -return ($var1 + $var2); -return $var ? ($var1 ? 1 : 2) : ($var2 ? 3 : 4); -return ('veryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString' ? 'veryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString' : 'veryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString'); -return static::class . '@' . $method; -return ($this->customer->paymentService ?? null); +@list($width, $height) = getimagesize($file); +// Todo https://github.com/glayzzle/php-parser/issues/356 +// @(list($width, $height) = getimagesize($file)); +@$var += 10; +// Todo https://github.com/glayzzle/php-parser/issues/356 +// @($var += 10); -=====================================output===================================== -customer->paymentService ?? null; +@$i / 0; +@($i / 0); ================================================================================ `; -exports[`silent.php 1`] = ` +exports[`silent.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3123,7 +6339,7 @@ try { handle_exception(); } -@list($width, $height) = getimagesize($file); +@[$width, $height] = getimagesize($file); // Todo https://github.com/glayzzle/php-parser/issues/356 // @(list($width, $height) = getimagesize($file)); @@ -3163,38 +6379,237 @@ if (!$var) { throw (new \\Exception("Bye")); } -die(throw new \\Exception('In Statement')); -$throws = fn() => throw new \\RuntimeException('In arrow function'); -$value = $a ? $a : throw new \\InvalidArgumentException('In ternary'); -=====================================output===================================== - throw new \\RuntimeException('In arrow function'); +$value = $a ? $a : throw new \\InvalidArgumentException('In ternary'); +=====================================output===================================== + throw new \\RuntimeException("In arrow function"); +$value = $a ? $a : throw new \\InvalidArgumentException("In ternary"); + +================================================================================ +`; + +exports[`throw.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== + throw new \\RuntimeException('In arrow function'); +$value = $a ? $a : throw new \\InvalidArgumentException('In ternary'); +=====================================output===================================== + throw new \\RuntimeException("In arrow function"); +$value = $a ? $a : throw new \\InvalidArgumentException("In ternary"); + +================================================================================ +`; + +exports[`unary.php 1`] = ` +====================================options===================================== +parsers: ["php"] +printWidth: 80 + | printWidth +=====================================input====================================== +bar); + +$var = +$var || +$var; +$var = (+$var) || (+$var); +$var = ((+$var) || (+$var)); + +$var = -(+($var)); + +$var = ~(+$var); + +$var = ~$var += 1; +$var = ~($var += 1); + +(+$a->b)->call(); +(+$a->b)[1]; +(+$var)(); +$var = call(+$var->_uuidCounter); + +if (!$token = $this->getToken()) {} +if (!($token = $this->getToken())) {} + +=====================================output===================================== +bar; + +$var = +$var || +$var; +$var = +$var || +$var; +$var = +$var || +$var; + +$var = -+$var; -throw new Exception("Division by zero."); -throw new Exception("Division by zero."); -throw $e; -throw $e; -throw new \\Exception("Bye"); -throw new \\Exception("Bye"); +$var = ~+$var; -if (!$var) { - throw new Exception("Division by zero."); - throw new Exception("Division by zero."); - throw $e; - throw $e; - throw new \\Exception("Bye"); - throw new \\Exception("Bye"); -} +$var = ~($var += 1); +$var = ~($var += 1); -die(throw new \\Exception("In Statement")); -$throws = fn() => throw new \\RuntimeException("In arrow function"); -$value = $a ? $a : throw new \\InvalidArgumentException("In ternary"); +(+$a->b)->call(); +(+$a->b)[1]; +(+$var)(); +$var = call(+$var->_uuidCounter); + +if (!($token = $this->getToken())) { +} +if (!($token = $this->getToken())) { +} ================================================================================ `; -exports[`unary.php 1`] = ` +exports[`unary.php 2`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3458,6 +6873,129 @@ function foo($a = 1, $b = "string", $c = true, $d = __LINE__) ================================================================================ `; +exports[`unnecessary.php 2`] = ` +====================================options===================================== +parsers: ["php"] +phpVersion: "8.4" +printWidth: 80 + | printWidth +=====================================input====================================== +b; + !(yield $var); + yield (yield $var); + } + + $var = yield; + $var = yield $var; + $var += yield $var; + $var = (yield $var); + $var += (yield $var); + $var = yield $key => $var; + $var = (yield $key => $var); + $var = !yield $var; + $var = !(yield $var); + $var = yield (yield $var); + $var = yield 1 ? 1 : 1; + $var = (yield 1) ? 1 : 1; + $var = yield 1 ? yield 1 : yield 1; + $var = (yield 1) ? (yield 1) : (yield 1); + $var = yield $var->b; + $var = (yield $var)->b; + $var = yield $var->b(); + $var = (yield $var)->b(); + $var = yield $var[1]; + $var = (yield $var)[1]; + + call(yield $var); + + return yield from nine_ten(); + + foreach($SubTrav as $SubItem) yield $SubItem; +} + +=====================================output===================================== +b; + !(yield $var); + yield (yield $var); + } + + $var = yield; + $var = (yield $var); + $var += (yield $var); + $var = (yield $var); + $var += (yield $var); + $var = (yield $key => $var); + $var = (yield $key => $var); + $var = !(yield $var); + $var = !(yield $var); + $var = (yield (yield $var)); + $var = (yield 1 ? 1 : 1); + $var = (yield 1) ? 1 : 1; + $var = (yield 1 ? yield 1 : yield 1); + $var = (yield 1) ? yield 1 : yield 1; + $var = (yield $var->b); + $var = (yield $var)->b; + $var = (yield $var->b()); + $var = (yield $var)->b(); + $var = (yield $var[1]); + $var = (yield $var)[1]; + + call(yield $var); + + return yield from nine_ten(); + + foreach ($SubTrav as $SubItem) { + yield $SubItem; + } +} + +================================================================================ +`; diff --git a/tests/parens/jsfmt.spec.mjs b/tests/parens/jsfmt.spec.mjs index 8829c872f..a2c158328 100644 --- a/tests/parens/jsfmt.spec.mjs +++ b/tests/parens/jsfmt.spec.mjs @@ -1 +1,2 @@ run_spec(import.meta, ["php"]); +run_spec(import.meta, ["php"], { phpVersion: "8.4" }); diff --git a/tests/parens/new.php b/tests/parens/new.php index 12f2edef1..290cfe91c 100644 --- a/tests/parens/new.php +++ b/tests/parens/new.php @@ -30,6 +30,9 @@ $var = new Foo(); $var = (new Foo()); $var = (new Foo())->c(); +new Foo->prop; +new Foo->method(); +new Foo->$var; $var = (new class { public function log($msg) { @@ -45,9 +48,17 @@ public function log($msg) $var = (((new foo())->bar())->foo())->baz(); $var = (new $foo())->bar; $var = (new $bar->y)->x; +new SortOfLongClassName()->withALongMethodName()->andAnother()->toPushItPast80Chars(); +$asdf = +new SortOfLongClassName()->withALongMethodName() + ->andAnother()->toPushItPast80Chars(); + $var = (new foo)[0]; $var = (new foo)[0]['string']; +$var = (new Foo)::foo; +$var = (new Foo)::$foo; + $var = new $a->b; $var = new $a->b(); $var = (new $a)->b(); diff --git a/yarn.lock b/yarn.lock index 915ac5429..b36e788a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4701,10 +4701,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -php-parser@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.2.4.tgz#56f97438a46c54ce0e78a8357782402f9530f892" - integrity sha512-X1HIaSHCb9aAReEqb+U/AAB3evE1iKD6tAY/lw9+wT4koCkWhg22m4LNtFGwd3Qv4PYIL2+zl+oXh00ALKya0Q== +php-parser@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.2.5.tgz#24ff4b4f3e1788967f7737e43c273a5a8e7cd0ac" + integrity sha512-M1ZYlALFFnESbSdmRtTQrBFUHSriHgPhgqtTF/LCbZM4h7swR5PHtUceB2Kzby5CfqcsYwBn7OXTJ0+8Sajwkw== picocolors@^1.0.0: version "1.0.0" From 74906e92183e6d5d8ef711df8e962c8933afd22b Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Sun, 13 Jul 2025 20:39:20 +0200 Subject: [PATCH 25/28] 0.23.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 57b35dff4..3a36bdc6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-php", - "version": "0.22.4", + "version": "0.23.0", "description": "Prettier PHP Plugin", "repository": "prettier/prettier-php", "author": "Lucas Azzola <@azz>", From 7b4d64bec58a9231c3a7c75e3b80b969c40ee560 Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Wed, 16 Jul 2025 10:01:22 +0200 Subject: [PATCH 26/28] feat!: bump default formatting version to composer version with fallback to latest supported PHP (#2434) * feat!: bump default formatting version to 8.3 BREAKING CHANGE: If you didn't set the `phpVersion` option explicitly, the formatting will assume PHP 8.3 now (instead of 7.0). * added composer version detection * run all spec.mjs test files, not just jsfmt, remove __tests__ dir as not used * changed return to null and improved test coverage - added wildcard major versions - updated test for null return - added invalid json test case * refactor: renamed getComposerPhpVersion func to match config naming more closely * documentation updaste for PHP default version changes * reformat: ran prettier on README * set default phpVersion to auto and added composer setting * refactored versions after rebasing - automatically use latest version - phpVersion is always a number now - moved isMinVersion to simple number comparison * update versions to number * snapshot changes after bumping default version to 8.4 * reformat: prettier * fix default version * Update README.md to be clearer about default php version Co-authored-by: Christian Zosel * Update README.md fix typo Co-authored-by: Christian Zosel * Update src/options.mjs remove extra else Co-authored-by: Christian Zosel * make not json example much clearer --------- Co-authored-by: Chris Seufert Co-authored-by: Chris Seufert --- README.md | 38 +++- jest.config.mjs | 2 +- src/needs-parens.mjs | 9 +- src/options.mjs | 130 +++++++++-- src/parser.mjs | 10 +- src/printer.mjs | 35 +-- src/util.mjs | 5 - .../assign/__snapshots__/jsfmt.spec.mjs.snap | 14 +- .../__snapshots__/jsfmt.spec.mjs.snap | 20 +- tests/bin/__snapshots__/jsfmt.spec.mjs.snap | 14 +- .../__snapshots__/jsfmt.spec.mjs.snap | 114 +++++----- tests/call/__snapshots__/jsfmt.spec.mjs.snap | 114 +++++----- tests/case/__snapshots__/jsfmt.spec.mjs.snap | 8 +- tests/class/__snapshots__/jsfmt.spec.mjs.snap | 56 ++--- .../__snapshots__/jsfmt.spec.mjs.snap | 18 +- tests/clone/__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../closure/__snapshots__/jsfmt.spec.mjs.snap | 26 +-- .../__snapshots__/jsfmt.spec.mjs.snap | 86 +++---- .../composer-version.spec.mjs | 215 ++++++++++++++++++ tests/echo/__snapshots__/jsfmt.spec.mjs.snap | 72 +++--- .../__snapshots__/jsfmt.spec.mjs.snap | 5 +- tests/encapsed/jsfmt.spec.mjs | 2 +- .../errors/__snapshots__/jsfmt.spec.mjs.snap | 4 +- tests/eval/__snapshots__/jsfmt.spec.mjs.snap | 20 +- tests/exit/__snapshots__/jsfmt.spec.mjs.snap | 20 +- .../__snapshots__/jsfmt.spec.mjs.snap | 18 +- .../inline/__snapshots__/jsfmt.spec.mjs.snap | 22 +- tests/isset/__snapshots__/jsfmt.spec.mjs.snap | 8 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- tests/list/__snapshots__/jsfmt.spec.mjs.snap | 148 ++++++------ .../__snapshots__/jsfmt.spec.mjs.snap | 60 ++--- tests/new/__snapshots__/jsfmt.spec.mjs.snap | 86 +++---- tests/new/jsfmt.spec.mjs | 2 +- .../nowdoc/__snapshots__/jsfmt.spec.mjs.snap | 4 +- tests/nowdoc/jsfmt.spec.mjs | 2 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- .../__snapshots__/jsfmt.spec.mjs.snap | 22 +- .../parens/__snapshots__/jsfmt.spec.mjs.snap | 74 +++--- tests/parens/jsfmt.spec.mjs | 2 +- .../__snapshots__/jsfmt.spec.mjs.snap | 36 +-- tests/print/__snapshots__/jsfmt.spec.mjs.snap | 12 +- .../__snapshots__/jsfmt.spec.mjs.snap | 10 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- tests/retif/__snapshots__/jsfmt.spec.mjs.snap | 14 +- .../return/__snapshots__/jsfmt.spec.mjs.snap | 16 +- .../silent/__snapshots__/jsfmt.spec.mjs.snap | 4 +- tests/single-quote-api/jsfmt.spec.mjs | 2 +- .../__snapshots__/jsfmt.spec.mjs.snap | 2 +- .../string/__snapshots__/jsfmt.spec.mjs.snap | 4 +- tests/sys/__snapshots__/jsfmt.spec.mjs.snap | 10 +- .../__snapshots__/jsfmt.spec.mjs.snap | 14 +- tests/trailing_commas/jsfmt.spec.mjs | 3 +- tests/unset/__snapshots__/jsfmt.spec.mjs.snap | 8 +- tests/use/__snapshots__/jsfmt.spec.mjs.snap | 6 +- .../__snapshots__/jsfmt.spec.mjs.snap | 4 +- 55 files changed, 992 insertions(+), 654 deletions(-) create mode 100644 tests/composer-version/composer-version.spec.mjs diff --git a/README.md b/README.md index e33bb4b03..da9c51d3f 100644 --- a/README.md +++ b/README.md @@ -176,17 +176,33 @@ await prettier.format(YOUR_CODE, { Prettier for PHP supports the following options. We recommend that all users set the `phpVersion` option. -| Name | Default | Description | -| ------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `phpVersion` | `"7.0"` | Allows specifying the PHP version you're using. If you're using PHP 7.1 or later, setting this option will make use of modern language features in the printed output. If you're using PHP lower than 7.0, you'll have to set this option or Prettier will generate incompatible code. | -| `printWidth` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)) | -| `tabWidth` | `4` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)), The default is `4` based on the `PSR-2` coding standard. | -| `useTabs` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tabs)) | -| `singleQuote` | `false` | If set to `"true"`, strings that use double quotes but do not rely on the features they add, will be reformatted. Example: `"foo" -> 'foo'`, `"foo $bar" -> "foo $bar"`. | -| `trailingCommaPHP` | `true` | If set to `true`, trailing commas will be added wherever possible.
If set to `false`, no trailing commas are printed. | -| `braceStyle` | `"per-cs"` | If set to `"per-cs"`, prettier will move open brace for code blocks (classes, functions and methods) onto new line.
If set to `"1tbs"`, prettier will move open brace for code blocks (classes, functions and methods) onto same line. | -| `requirePragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)) | -| `insertPragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#insert-pragma)) | +| Name | Default | Description | +| ------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `phpVersion` | `"auto"` \* | Allows specifying the PHP version you're using. (See Notes Below) | +| `printWidth` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)) | +| `tabWidth` | `4` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)), The default is `4` based on the `PSR-2` coding standard. | +| `useTabs` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tabs)) | +| `singleQuote` | `false` | If set to `"true"`, strings that use double quotes but do not rely on the features they add, will be reformatted. Example: `"foo" -> 'foo'`, `"foo $bar" -> "foo $bar"`. | +| `trailingCommaPHP` | `true` | If set to `true`, trailing commas will be added wherever possible.
If set to `false`, no trailing commas are printed. | +| `braceStyle` | `"per-cs"` | If set to `"per-cs"`, prettier will move open brace for code blocks (classes, functions and methods) onto new line.
If set to `"1tbs"`, prettier will move open brace for code blocks (classes, functions and methods) onto same line. | +| `requirePragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)) | +| `insertPragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#insert-pragma)) | + +### \* `phpVersion` Configuration Notes : + +The default setting `auto`, attempts to auto-detect your supported php versions from a `composer.json` with in the +current directory or any parent directory, the plugin will use a minimum supported php version from +`{"require":{"php":"..."}}` to set the phpVersion. If not found or not able to be parsed, it will default to latest +supported PHP version. + +You set the `phpVersion` to `composer` and this will only use the `composer.json` file to determine the php +version, prettier will crash if the PHP cannot be determined. + +You can also set the `phpVersion` to a specific version, such as `7.4`, `8.0`, `8.1`, `8.2`, or `8.3`. + +**Please Note:** If the phpVersion is not set correctly for your environment, this plugin will produce code that could +be incompatible with your PHP runtime. For example, if you are using PHP 7.4, but the plugin is set to PHP 8.3, it will +produce code that uses features not available in PHP 7.4. ## Ignoring code diff --git a/jest.config.mjs b/jest.config.mjs index 41902fa1a..0170dafb7 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -14,7 +14,7 @@ export default { transform: {}, setupFiles: ["/tests_config/run_spec.mjs"], // Matches `.js` file to prevent files use `.js` extension by mistake, https://github.com/prettier/plugin-php/pull/2247#discussion_r1331847801 - testRegex: "jsfmt\\.spec\\.m?js$|__tests__/.*\\.m?js$", + testRegex: ".*\\.spec\\.m?js$", snapshotSerializers: ["jest-snapshot-serializer-raw"], globals: { STANDALONE: RUN_STANDALONE_TESTS, diff --git a/src/needs-parens.mjs b/src/needs-parens.mjs index 3f1be4adf..c234c8da7 100644 --- a/src/needs-parens.mjs +++ b/src/needs-parens.mjs @@ -1,9 +1,4 @@ -import { - getPrecedence, - shouldFlatten, - isBitwiseOperator, - isMinVersion, -} from "./util.mjs"; +import { getPrecedence, shouldFlatten, isBitwiseOperator } from "./util.mjs"; function needsParens(path, options) { const { parent } = path; @@ -135,7 +130,7 @@ function needsParens(path, options) { case "new": { const requiresParens = node.kind === "clone" || - (node.kind === "new" && !isMinVersion(options.phpVersion, "8.4")); + (node.kind === "new" && options.phpVersion < 8.4); switch (parent.kind) { case "propertylookup": case "nullsafepropertylookup": diff --git a/src/options.mjs b/src/options.mjs index 3a67fff3d..e7444d804 100644 --- a/src/options.mjs +++ b/src/options.mjs @@ -1,30 +1,124 @@ +import fs from "fs"; +import path from "path"; + const CATEGORY_PHP = "PHP"; +// prettier-ignore +const SUPPORTED_PHP_VERSIONS = [ + 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, + 7.0, 7.1, 7.2, 7.3, 7.4, + 8.0, 8.1, 8.2, 8.3, 8.4, +]; + +export const LATEST_SUPPORTED_PHP_VERSION = Math.max(...SUPPORTED_PHP_VERSIONS); + +let getComposerError = ""; + +/** + * Detect the minimum PHP version from the composer.json file + * @return {number|null} The PHP version to use in the composer.json file, null when not found + */ +function getComposerPhpVersion() { + // Try to find composer.json + const currentDir = process.cwd(); + let composerPath = null; + + const directComposerPath = path.join(currentDir, "composer.json"); + if (fs.existsSync(directComposerPath)) { + composerPath = directComposerPath; + } + + if (!composerPath) { + let searchDir = path.dirname(currentDir); + while (searchDir !== path.parse(searchDir).root) { + const potentialComposerPath = path.join(searchDir, "composer.json"); + if (fs.existsSync(potentialComposerPath)) { + composerPath = potentialComposerPath; + break; + } + searchDir = path.dirname(searchDir); + } + } + + if (composerPath) { + try { + const fileContent = fs.readFileSync(composerPath, "utf8"); + const composerJson = JSON.parse(fileContent); + + if (composerJson.require && composerJson.require.php) { + // Check for a wildcard pattern like "7.*" + const wildcardMatch = composerJson.require.php.match( + /^(?:[^0-9]*)?([0-9]+)\.\*/ + ); + if (wildcardMatch) { + return parseFloat(`${wildcardMatch[1]}.0`); + } + + // Extract version from composer semver format + const versionMatch = composerJson.require.php.match( + /^(?:[^0-9]*)?([0-9]+)\.([0-9]+)/ + ); + + if (versionMatch) { + return parseFloat(`${versionMatch[1]}.${versionMatch[2]}`); + } else { + getComposerError = `Could not decode PHP version (${composerJson.require.php}})`; + return null; + } + } + } catch (e) { + getComposerError = `Error reading composer.json: ${e.message}`; + } + } else { + getComposerError = "Could not find composer.json"; + } + + return null; +} + +export { getComposerPhpVersion }; + +/** + * Resolve the PHP version to a number based on the provided options. + * + */ +export function resolvePhpVersion(options) { + if (!options) { + return; + } + if (options.phpVersion === "auto") { + options.phpVersion = + getComposerPhpVersion() ?? LATEST_SUPPORTED_PHP_VERSION; + } else if (options.phpVersion === "composer") { + const v = getComposerPhpVersion(); + if (v === null) { + throw new Error( + `Could not determine PHP version from composer; ${getComposerError}` + ); + } + options.phpVersion = v; + } else { + options.phpVersion = parseFloat(options.phpVersion); + } +} + export default { phpVersion: { since: "0.13.0", category: CATEGORY_PHP, type: "choice", - default: "7.0", + default: "auto", description: "Minimum target PHP version.", choices: [ - { value: "5.0" }, - { value: "5.1" }, - { value: "5.2" }, - { value: "5.3" }, - { value: "5.4" }, - { value: "5.5" }, - { value: "5.6" }, - { value: "7.0" }, - { value: "7.1" }, - { value: "7.2" }, - { value: "7.3" }, - { value: "7.4" }, - { value: "8.0" }, - { value: "8.1" }, - { value: "8.2" }, - { value: "8.3" }, - { value: "8.4" }, + ...SUPPORTED_PHP_VERSIONS.map((v) => ({ value: v.toFixed(1) })), + { + value: "composer", + description: "Use the PHP version defined in composer.json", + }, + { + value: "auto", + description: `Try composer.json, else latest PHP Version (${LATEST_SUPPORTED_PHP_VERSION})`, + }, ], }, trailingCommaPHP: { diff --git a/src/parser.mjs b/src/parser.mjs index 80b61bb45..8df49870d 100644 --- a/src/parser.mjs +++ b/src/parser.mjs @@ -1,5 +1,6 @@ import engine from "php-parser"; -import options from "./options.mjs"; +import { LATEST_SUPPORTED_PHP_VERSION } from "./options.mjs"; +import { resolvePhpVersion } from "./options.mjs"; function parse(text, opts) { const inMarkdown = opts && opts.parentParser === "markdown"; @@ -7,19 +8,16 @@ function parse(text, opts) { if (!text && inMarkdown) { return ""; } + resolvePhpVersion(opts); // Todo https://github.com/glayzzle/php-parser/issues/170 text = text.replace(/\?>\n<\?/g, "?>\n___PSEUDO_INLINE_PLACEHOLDER___ parseFloat(c.value)) - ); - // initialize a new parser instance const parser = new engine({ parser: { extractDoc: true, - version: `${latestSupportedPhpVersion}`, + version: `${LATEST_SUPPORTED_PHP_VERSION}`, }, ast: { withPositions: true, diff --git a/src/printer.mjs b/src/printer.mjs index d8e21e832..c3cf11cd0 100644 --- a/src/printer.mjs +++ b/src/printer.mjs @@ -37,7 +37,6 @@ import { isReferenceLikeNode, normalizeMagicMethodName, isSimpleCallArgument, - isMinVersion, } from "./util.mjs"; const { @@ -66,12 +65,19 @@ const { isPreviousLineEmpty, } = prettierUtil; +/** + * Determine if we should print a trailing comma based on the config & php version + * + * @param options {object} Prettier Options + * @param requiredVersion {number} + * @returns {boolean} + */ function shouldPrintComma(options, requiredVersion) { if (!options.trailingCommaPHP) { return false; } - return isMinVersion(options.phpVersion, requiredVersion); + return options.phpVersion >= requiredVersion; } function shouldPrintHardlineForOpenBrace(options) { @@ -612,9 +618,9 @@ function printArgumentsList(path, options, print, argumentsKey = "arguments") { const lastArg = getLast(args); const maybeTrailingComma = - (shouldPrintComma(options, "7.3") && + (shouldPrintComma(options, 7.3) && ["call", "new", "unset", "isset"].includes(node.kind)) || - (shouldPrintComma(options, "8.0") && + (shouldPrintComma(options, 8.0) && ["function", "closure", "method", "arrowfunc", "attribute"].includes( node.kind )) @@ -1186,7 +1192,7 @@ function printAttrs(path, options, print, { inline = false } = {}) { allAttrs.push( group([ indent(attrGroup), - ifBreak(shouldPrintComma(options, "8.0") ? "," : ""), + ifBreak(shouldPrintComma(options, 8.0) ? "," : ""), softline, "]", inline ? ifBreak(softline, " ") : "", @@ -1658,11 +1664,7 @@ function printNode(path, options, print) { join([",", line], path.map(print, "items")), ]), node.name - ? [ - ifBreak(shouldPrintComma(options, "7.2") ? "," : ""), - softline, - "}", - ] + ? [ifBreak(shouldPrintComma(options, 7.2) ? "," : ""), softline, "}"] : "", ]); case "useitem": @@ -2356,9 +2358,8 @@ function printNode(path, options, print) { case "list": case "array": { const useShortForm = - (node.kind === "array" && isMinVersion(options.phpVersion, "5.4")) || - (node.kind === "list" && - (node.shortForm || isMinVersion(options.phpVersion, "7.1"))); + (node.kind === "array" && options.phpVersion >= 5.4) || + (node.kind === "list" && (node.shortForm || options.phpVersion >= 7.1)); const open = useShortForm ? "[" : [node.kind, "("]; const close = useShortForm ? "]" : ")"; @@ -2408,7 +2409,7 @@ function printNode(path, options, print) { indent([softline, printArrayItems(path, options, print)]), needsForcedTrailingComma ? "," : "", ifBreak( - !needsForcedTrailingComma && shouldPrintComma(options, "5.0") + !needsForcedTrailingComma && shouldPrintComma(options, 5.0) ? [ lastElem && shouldPrintHardlineBeforeTrailingComma(lastElem) ? hardline @@ -2675,7 +2676,7 @@ function printNode(path, options, print) { if (parent.kind === "encapsedpart") { const parentParent = path.grandparent; let closingTagIndentation = 0; - const flexible = isMinVersion(options.phpVersion, "7.3"); + const flexible = options.phpVersion >= 7.3; let linebreak = literalline; if (parentParent.type === "heredoc") { linebreak = flexible ? hardline : literalline; @@ -2744,7 +2745,7 @@ function printNode(path, options, print) { case "string": case "shell": case "heredoc": { - const flexible = isMinVersion(options.phpVersion, "7.3"); + const flexible = options.phpVersion >= 7.3; const linebreak = flexible ? hardline : literalline; return [ getEncapsedQuotes(node), @@ -2769,7 +2770,7 @@ function printNode(path, options, print) { case "magic": return node.value; case "nowdoc": { - const flexible = isMinVersion(options.phpVersion, "7.3"); + const flexible = options.phpVersion >= 7.3; const linebreak = flexible ? hardline : literalline; return [ "<<<'", diff --git a/src/util.mjs b/src/util.mjs index 03428ca48..b4bf9e473 100644 --- a/src/util.mjs +++ b/src/util.mjs @@ -709,10 +709,6 @@ function memoize(fn) { }; } -function isMinVersion(actualVersion, requiredVersion) { - return parseFloat(actualVersion) >= parseFloat(requiredVersion); -} - export { printNumber, getPrecedence, @@ -744,5 +740,4 @@ export { normalizeMagicMethodName, isSimpleCallArgument, memoize, - isMinVersion, }; diff --git a/tests/assign/__snapshots__/jsfmt.spec.mjs.snap b/tests/assign/__snapshots__/jsfmt.spec.mjs.snap index 27dfa6187..78d9bd542 100644 --- a/tests/assign/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/assign/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`assign.php 1`] = ` ====================================options===================================== @@ -233,14 +233,14 @@ $veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongVariable = $veryVeryVeryVeryVer $obj->property = $obj->oneProperty = $obj->twoPeroperty = 0; $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = 0; $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = $veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongValue; -$obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = (new MyClass())->call( - $arg +$obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty = new MyClass()->call( + $arg, ); $obj->loooooooooooong->lookup = $this->getRequest()->getParam( - "instance-resource-id" + "instance-resource-id", ); $obj->loooooooooooong->lookup = (int) $this->getRequest()->getParam( - "instance-resource-id" + "instance-resource-id", ); $component = @@ -251,7 +251,7 @@ $component = Foo::$insertReallyReallyReallyReallyReallyReallyReallyReallyLongName; $component = $a::$insertReallyReallyReallyReallyReallyReallyReallyReallyLongName; -$component = (new Foo()) +$component = new Foo() ->insertReallyReallyReallyReallyReallyReallyReallyReallyLongName; $component = (clone $a) ->insertReallyReallyReallyReallyReallyReallyReallyReallyLongName; @@ -266,7 +266,7 @@ $component = Foo::$insertReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName; $component = $a::$insertReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName; -$component = (new Foo()) +$component = new Foo() ->insertReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName; $component = (clone $a) ->insertReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName; diff --git a/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap b/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap index 7d30d00a9..c2b776223 100644 --- a/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/attributes/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`attributes.php 1`] = ` ====================================options===================================== @@ -158,25 +158,25 @@ class D "aaaaaaaaaaaaa", "vvvvvvvvvvvv", "cccccccccc", - "eeeeeeeeeee" + "eeeeeeeeeee", ), - X + X, ] function Y( #[ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ( 12345678, - 1234578 - ) + 1234578, + ), ] - string $_ + string $_, ): string { return new #[NON, Anon] class {}; } #[ IA("interface"), - \\Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong\\Namespace\\WithStuff\\IB + \\Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong\\Namespace\\WithStuff\\IB, ] interface IC { @@ -209,7 +209,7 @@ class ValueModel { #[ Assert\\NotBlank(allowNull: false, groups: ["foo"]), - Assert\\Length(max: 255, groups: ["foo"]) + Assert\\Length(max: 255, groups: ["foo"]), ] public ?string $value = null; } @@ -233,7 +233,7 @@ class ParamCommentFunctionAnnotation #[Foo] function bar( int $a, // parameter comment - int $b + int $b, ) { return $a + $b; } @@ -242,7 +242,7 @@ class ParamCommentFunctionAnnotation function bar2( int $a, int $middle, // parameter comment - int $b + int $b, ) { return $a + $middle + $b; } diff --git a/tests/bin/__snapshots__/jsfmt.spec.mjs.snap b/tests/bin/__snapshots__/jsfmt.spec.mjs.snap index cd784e8db..787a4f6d2 100644 --- a/tests/bin/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/bin/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`bin.php 1`] = ` ====================================options===================================== @@ -455,7 +455,7 @@ function f() { if ( get_option( - "woocommerce_product_cart_actions_notification_more_cart" + "woocommerce_product_cart_actions_notification_more_cart", ) === "yes" && count($cartItems) > 0 ) { @@ -490,7 +490,7 @@ call( "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVery" ? 1 : 2, - "arg" + "arg", ); $var = @@ -660,13 +660,13 @@ $var = call($var > $someOtherReallyReallyLongVariable ? true : false); $var = call( $someOtherReallyReallyLongVariable > $someOtherReallyReallyLongVariable ? true - : false + : false, ); $var = call( $someOtherReallyReallyReallyReallyReallyReallyLongVariable > $someOtherReallyReallyReallyReallyReallyReallyLongVariable ? true - : false + : false, ); return $var > $var ? true : false; @@ -686,7 +686,7 @@ func( $glimseGlyphsHazardNoopsTieTie === averredBathersBoxroomBuggyNurl && $anodyneCondosMalateOverateRetinol ? $annularCooeedSplicesWalksWayWay - : $kochabCooieGameOnOboleUnweave + : $kochabCooieGameOnOboleUnweave, ); $var = $a ?? $b; @@ -714,7 +714,7 @@ $var = call( $someOtherReallyReallyLongVariable, $someOtherReallyReallyLongVariable, - $someOtherReallyReallyLongVariable + $someOtherReallyReallyLongVariable, )))); $var = $someOtherReallyReallyLongVariable ?? diff --git a/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap b/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap index 4db4b933b..389ba6b8e 100644 --- a/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/brace-style/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`classes.php 1`] = ` ====================================options===================================== @@ -486,7 +486,7 @@ function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVer function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -498,7 +498,7 @@ function type_hinting_test( float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -511,7 +511,7 @@ $anonymousLongVariableName = function ( $name, $more, $params, - $looooooooooooooooooooooooooooooooong + $looooooooooooooooooooooooooooooooong, ) use ($all, $kinds, $of, $stuff) { printf("Hello %s", $name); }; @@ -579,7 +579,7 @@ function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVer function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -591,7 +591,7 @@ function type_hinting_test( float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -604,7 +604,7 @@ $anonymousLongVariableName = function ( $name, $more, $params, - $looooooooooooooooooooooooooooooooong + $looooooooooooooooooooooooooooooooong, ) use ($all, $kinds, $of, $stuff) { printf("Hello %s", $name); }; @@ -672,7 +672,7 @@ function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVer function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -684,7 +684,7 @@ function type_hinting_test( float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -697,7 +697,7 @@ $anonymousLongVariableName = function ( $name, $more, $params, - $looooooooooooooooooooooooooooooooong + $looooooooooooooooooooooooooooooooong, ) use ($all, $kinds, $of, $stuff) { printf("Hello %s", $name); }; @@ -762,7 +762,7 @@ function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVer function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -774,7 +774,7 @@ function type_hinting_test( float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -787,7 +787,7 @@ $anonymousLongVariableName = function ( $name, $more, $params, - $looooooooooooooooooooooooooooooooong + $looooooooooooooooooooooooooooooooong, ) use ($all, $kinds, $of, $stuff) { printf("Hello %s", $name); }; @@ -942,7 +942,7 @@ class Foo function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -954,7 +954,7 @@ class Foo float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -964,7 +964,7 @@ class Foo $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { return "hello"; } @@ -976,7 +976,7 @@ class Foo $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { $string = trim($string); } @@ -988,43 +988,43 @@ class Foo public static function hello_4( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function hello_5( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( - $var = 1 + $var = 1, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function newlines( $var = 1, - $other_var = 2 + $other_var = 2, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, - $other_var = 2 + $other_var = 2, ) {} } @@ -1179,7 +1179,7 @@ class Foo function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -1191,7 +1191,7 @@ class Foo float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -1201,7 +1201,7 @@ class Foo $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { return "hello"; } @@ -1213,7 +1213,7 @@ class Foo $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { $string = trim($string); } @@ -1225,43 +1225,43 @@ class Foo public static function hello_4( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function hello_5( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( - $var = 1 + $var = 1, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function newlines( $var = 1, - $other_var = 2 + $other_var = 2, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, - $other_var = 2 + $other_var = 2, ) {} } @@ -1416,7 +1416,7 @@ class Foo function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -1428,7 +1428,7 @@ class Foo float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -1438,7 +1438,7 @@ class Foo $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { return "hello"; } @@ -1450,7 +1450,7 @@ class Foo $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { $string = trim($string); } @@ -1462,43 +1462,43 @@ class Foo public static function hello_4( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function hello_5( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( - $var = 1 + $var = 1, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function newlines( $var = 1, - $other_var = 2 + $other_var = 2, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, - $other_var = 2 + $other_var = 2, ) {} } @@ -1645,7 +1645,7 @@ class Foo { function reeeeeeeeeeaaaaaaaallllllllyyyyyy_llloooooooonnnnnnggggg( $soooooooooooo_looooooooonnnng, - $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr + $eeeeeeeeevvveeeeeeeennnn_loooooonnngggeeeerrrr, ) { return $soooooooooooo_looooooooonnnng; } @@ -1657,7 +1657,7 @@ class Foo { float $float_test, iterable $iterable_test, int $int_test, - string $string_test = "" + string $string_test = "", ) { return $int_test; } @@ -1667,7 +1667,7 @@ class Foo { $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { return "hello"; } @@ -1679,7 +1679,7 @@ class Foo { $max_length, // @codingStandardsIgnoreLine $ellipses = " … ", // the spaces are non-breaking spaces - &$flag = null + &$flag = null, ) { $string = trim($string); } @@ -1691,43 +1691,43 @@ class Foo { public static function hello_4( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function hello_5( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName() {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( - $var = 1 + $var = 1, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, $other_var = 2, - $other_other_other_var = 3 + $other_other_other_var = 3, ): ?string {} public static function newlines( $var = 1, - $other_var = 2 + $other_var = 2, ) {} public static function veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongName( $var = 1, - $other_var = 2 + $other_var = 2, ) {} } diff --git a/tests/call/__snapshots__/jsfmt.spec.mjs.snap b/tests/call/__snapshots__/jsfmt.spec.mjs.snap index 94fbc34ed..be49c6300 100644 --- a/tests/call/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/call/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`call.php 1`] = ` ====================================options===================================== @@ -386,7 +386,7 @@ $db->Execute( $somewhatLongParameterX, $somewhatLongParameterXYZ, ], - $sql + $sql, ); $app->get("/hello/{name}", function ($name) use ($app) { @@ -395,19 +395,19 @@ $app->get("/hello/{name}", function ($name) use ($app) { $this->something->method( $argument, - $this->more->stuff($this->even->more->things->complicatedMethod()) + $this->more->stuff($this->even->more->things->complicatedMethod()), ); $this->something->method( $this->more->stuff($this->even->more->things->complicatedMethod()), - $argument + $argument, ); $this->something->method( $argument, $otherArgument, ["foo" => "bar", "baz" => "buzz"], - $this->even->more->things->complicatedMethod() + $this->even->more->things->complicatedMethod(), ); $this->files->put($path, $this->expiration($minutes) . serialize($value), true); @@ -432,7 +432,7 @@ $this->filter([ $this->assertEquals( ["First", "Second", "Taylor", "Mohamed", "Jeffrey", "Abigail", "Lydia"], - $results + $results, ); $this->assertEquals(["First"], $results); @@ -451,7 +451,7 @@ $some->other->thing( "foo" => "bar", "buzz" => $this->is->nested([12, 34, 45, 67, 89]), ], - [11323123, 1231, 13231233243, 324234234] + [11323123, 1231, 13231233243, 324234234], ); $foo->bar( @@ -459,12 +459,12 @@ $foo->bar( function ($arg2) use ($var1) { // body }, - $arg3 + $arg3, ); $packages = array_merge( idx($composer, "require", []), - idx($composer, "require-dev", []) + idx($composer, "require-dev", []), ); if ( @@ -474,7 +474,7 @@ if ( function ($acc, $tmp) { return $acc ^ $tmp; }, - 0 + 0, ) ) { return []; @@ -484,21 +484,21 @@ implode( ", ", array_map(function ($f) { return $f; - }, array_merge($arr1, $arr2, $arr3)) + }, array_merge($arr1, $arr2, $arr3)), ); call( function () { return thing(); }, - 1 ? 2 : 3 + 1 ? 2 : 3, ); call( function () { return thing(); }, - something() ? someOtherThing() : somethingElse(true, 0) + something() ? someOtherThing() : somethingElse(true, 0), ); call( @@ -507,7 +507,7 @@ call( }, something($longArgumentName, $anotherLongArgumentName) ? someOtherThing() - : somethingElse(true, 0) + : somethingElse(true, 0), ); call( @@ -518,10 +518,10 @@ call( $longArgumentName, $anotherLongArgumentName, $anotherLongArgumentName, - $anotherLongArgumentName + $anotherLongArgumentName, ) ? someOtherThing() - : somethingElse(true, 0) + : somethingElse(true, 0), ); array_map( @@ -530,7 +530,7 @@ array_map( }, is_array($attributes["alignment"]) ? $attributes["alignment"] - : explode(" ", $attributes["alignment"]) + : explode(" ", $attributes["alignment"]), ); call(' @@ -542,7 +542,7 @@ call( ' string string -string' +string', ); call( @@ -550,7 +550,7 @@ call( string string string', - $a + $a, ); call( @@ -558,7 +558,7 @@ call( ' string string -string' +string', ); call(" @@ -570,7 +570,7 @@ call( " string string -string" +string", ); call( @@ -578,7 +578,7 @@ call( string string string", - $a + $a, ); call( @@ -586,7 +586,7 @@ call( " string string -string" +string", ); $a->call(' @@ -598,7 +598,7 @@ $a->bar->call( ' string string -string' +string', ); $a->call(' @@ -615,14 +615,14 @@ $a->call( string string string', - $c + $c, )->call( $a, ' string string string', - $c + $c, ); call("string $var string"); @@ -636,7 +636,7 @@ call( "string string string -$var" +$var", ); call(\`string $var string\`); @@ -650,54 +650,58 @@ call( \`string string string -$var\` +$var\`, ); call( <<foo)(); diff --git a/tests/case/__snapshots__/jsfmt.spec.mjs.snap b/tests/case/__snapshots__/jsfmt.spec.mjs.snap index f254aafbd..8b25cbdaf 100644 --- a/tests/case/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/case/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`case.php 1`] = ` ====================================options===================================== @@ -332,7 +332,7 @@ final class MyClass extends Bar implements iTemplate break; } - while (list($key, $value) = foo($arr)) { + while ([$key, $value] = foo($arr)) { if (!($key % 2)) { continue; } @@ -363,7 +363,7 @@ final class MyClass extends Bar implements iTemplate $noArgs_longVars = function () use ( $longVar1, $longerVar2, - $muchLongerVar3 + $muchLongerVar3, ) { // Body }; @@ -484,7 +484,7 @@ final class MyClass extends Bar implements iTemplate object $param6, ClassA $param7, self $param8, - Name\\Space\\ClassA $param8 + Name\\Space\\ClassA $param8, ): void { // Nothing } diff --git a/tests/class/__snapshots__/jsfmt.spec.mjs.snap b/tests/class/__snapshots__/jsfmt.spec.mjs.snap index cf60d29d6..6fff7326e 100644 --- a/tests/class/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/class/__snapshots__/jsfmt.spec.mjs.snap @@ -303,7 +303,7 @@ $app->setLogger( { echo $msg; } - } + }, ); $app->setLogger( new class { @@ -311,7 +311,7 @@ $app->setLogger( { echo $msg; } - } + }, ); var_dump( @@ -324,7 +324,7 @@ var_dump( } use SomeTrait; - } + }, ); class Outer @@ -427,7 +427,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) {}; $class = new class ( @@ -438,7 +438,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) implements MyOtherClass {}; $class = new class ( @@ -449,7 +449,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) implements MyOtherClass, MyOtherClass1, MyOtherClass2 {}; $class = new class ( @@ -460,7 +460,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyOtherClass {}; @@ -472,7 +472,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) implements MyOtherClass, MyOtherClass, @@ -487,7 +487,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends MyOtherClass {}; $class = new class ( @@ -498,7 +498,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {}; @@ -510,7 +510,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends MyOtherClass implements MyI {}; $class = new class ( @@ -521,7 +521,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends MyOtherClass implements MyI, MyII, MyIII {}; $class = new class ( @@ -532,7 +532,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends MyOtherClass implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {}; @@ -544,7 +544,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends MyOtherClass implements MyInterface, MyOtherInterface, @@ -558,7 +558,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass implements MyI {}; @@ -571,7 +571,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass implements @@ -587,7 +587,7 @@ $class = new class ( $other_arg, function () { return 1; - } + }, ) extends VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass implements VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMyClass {}; @@ -1004,7 +1004,7 @@ abstract class ReallyReallyReallyLongClassName $test_int = null, $test_string = "hi", readonly int $test_readonly, - public readonly string $test_promoted_readonly + public readonly string $test_promoted_readonly, ) { parent::__construct($test_int ?: 1); $this->other = $test_string; @@ -1016,13 +1016,13 @@ abstract class ReallyReallyReallyLongClassName public static function test_static_constructor( $test, $test_int, - $test_string + $test_string, ) { $model = new self($test, $test_int, $test_string); $model = new self( $really_really_really_really_really_really_really_really_long_array, $test_int, - $test_string + $test_string, ); return $model; } @@ -1048,7 +1048,7 @@ abstract class ReallyReallyReallyLongClassName public function reallyReallyReallyReallyReallyReallyReallyLongMethodName( $input, - $otherInput = 1 + $otherInput = 1, ) { return true; } @@ -1115,7 +1115,7 @@ abstract class ReallyReallyReallyLongClassName public function longLongAnotherFunction( string $foo, string $bar, - int $baz + int $baz, ): string { return "foo"; } @@ -1123,7 +1123,7 @@ abstract class ReallyReallyReallyLongClassName public function longLongAnotherFunctionOther( string $foo, string $bar, - int $baz + int $baz, ) { return "foo"; } @@ -1141,7 +1141,7 @@ abstract class ReallyReallyReallyLongClassName $this->something->method( $argument, - $this->more->stuff($this->even->more->things->complicatedMethod()) + $this->more->stuff($this->even->more->things->complicatedMethod()), ); class A {} @@ -1224,9 +1224,9 @@ class field extends \\models\\base array_merge( $configs, $field_type->process_field_config_from_user( - $input["definition"] - ) - ) + $input["definition"], + ), + ), ); unset($input["definition"]); } @@ -1379,7 +1379,7 @@ class Promoted public function __construct( public int $a, private float $b, - protected string $d + protected string $d, ) {} } diff --git a/tests/classconstant/__snapshots__/jsfmt.spec.mjs.snap b/tests/classconstant/__snapshots__/jsfmt.spec.mjs.snap index fa8ee35e7..9a66f8297 100644 --- a/tests/classconstant/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/classconstant/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`classconstant.php 1`] = ` ====================================options===================================== @@ -125,15 +125,15 @@ class ConstDemo 1200 + 1300; const CONST_9 = <<veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLeadDeveloper; $OneSecAgo = (clone $Now)->veryVeryVeryVeryVeryVeryVeryVeryLongMethod( - new \\DateInterval("PT1S") + new \\DateInterval("PT1S"), ); ================================================================================ diff --git a/tests/closure/__snapshots__/jsfmt.spec.mjs.snap b/tests/closure/__snapshots__/jsfmt.spec.mjs.snap index 2917294b0..f9e4e1129 100644 --- a/tests/closure/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/closure/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`closure.php 1`] = ` ====================================options===================================== @@ -158,7 +158,7 @@ $closureWithArgsAndVars = function ($arg1, $arg2) use ($var1, $var2) { $longArgs_noVars = function ( $longArgument, $longerArgument, - $muchLongerArgument + $muchLongerArgument, ) { // body }; @@ -166,7 +166,7 @@ $longArgs_noVars = function ( $noArgs_longVars = function () use ( $longLongLongLongVar1, $longerLongerVar2, - $muchLongerVar3 + $muchLongerVar3, ) { // body }; @@ -174,11 +174,11 @@ $noArgs_longVars = function () use ( $longArgs_longVars = function ( $longArgument, $longerArgument, - $muchLongerArgument + $muchLongerArgument, ) use ( $longLongLongLongLongLongLongVar1, $longerLongerLongerLongerVar2, - $muchLongerVar3 + $muchLongerVar3, ) { // body }; @@ -186,7 +186,7 @@ $longArgs_longVars = function ( $longArgs_shortVars = function ( $longArgument, $longerArgument, - $muchLongerArgument + $muchLongerArgument, ) use ($var1) { // body }; @@ -194,7 +194,7 @@ $longArgs_shortVars = function ( $shortArgs_longVars = function ($arg) use ( $longVar1, $longerVar2, - $muchLongerVar3 + $muchLongerVar3, ) { // body }; @@ -204,7 +204,7 @@ $foo->bar( function ($arg2) use ($var1) { // body }, - $longLongLongLongLongLongLongLongLongLongArg3 + $longLongLongLongLongLongLongLongLongLongArg3, ); $emptyFunc = function () {}; @@ -216,7 +216,7 @@ $emptyFuncWithComment = function () { $longArgs_noVars = function ( $longArgument, $longerArgument, - $muchLongerArgument + $muchLongerArgument, ) { // body }; @@ -228,7 +228,7 @@ $noArgs_longVars = function () use ($longVar1, $longerVar2, $muchLongerVar3) { $longArgs_longVars = function ( $longArgument, $longerArgument, - $muchLongerArgument + $muchLongerArgument, ) use ($longVar1, $longerVar2, $muchLongerVar3) { // body }; @@ -236,7 +236,7 @@ $longArgs_longVars = function ( $longArgs_shortVars = function ( $longArgument, $longerArgument, - $muchLongerArgument + $muchLongerArgument, ) use ($var1) { // body }; @@ -244,7 +244,7 @@ $longArgs_shortVars = function ( $shortArgs_longVars = function ($arg) use ( $longVar1, $longerVar2, - $muchLongerVar3 + $muchLongerVar3, ) { // body }; @@ -264,7 +264,7 @@ $rTDWU = function (array $array) use ($var1, $var2): int { $rTDWLU = function (array $array) use ( $longLongLongLongLongLongLongVar1, $longerLongerLongerLongerVar2, - $muchLongerVar3 + $muchLongerVar3, ): int { return array_sum($array); }; diff --git a/tests/comments/__snapshots__/jsfmt.spec.mjs.snap b/tests/comments/__snapshots__/jsfmt.spec.mjs.snap index a01c42f14..2d311f8a6 100644 --- a/tests/comments/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/comments/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`array.php 1`] = ` ====================================options===================================== @@ -204,7 +204,7 @@ $array = [ ]; call( - [] // Comment + [], // Comment ); call([ @@ -588,7 +588,7 @@ $var->render( foo( /* Comment */ $a /* Comment */, /* Comment */ [] /* Comment */, - /* Comment */ $a + 2 /* Comment */ + /* Comment */ $a + 2 /* Comment */, ); foo(/* A */); $foo->bar(/* B */); @@ -596,24 +596,24 @@ $foo->bar(/* B */); render( // Comment "string", - $container + $container, ); $var->render( // Comment "string", - $var + $var, ); render( "string", - $container + $container, // Comment ); $var->render( "string", - $var + $var, // Comment ); @@ -621,7 +621,7 @@ $var->render( // Comment "string", // Comment - $var + $var, // Comment ); @@ -2745,22 +2745,22 @@ echo // Comment call( $veryVeryVeryVeryVeryVeryVeryLongArg, $veryVeryVeryVeryVeryVeryVeryLongArg, - $veryVeryVeryVeryVeryVeryVeryLongArg + $veryVeryVeryVeryVeryVeryVeryLongArg, ); echo // Comment <<city, // city $vendor->state, // state - $vendor->zip // state + $vendor->zip, // state ); } } @@ -5883,7 +5883,7 @@ $a = new class ( // Comment $a, $b, - $c + $c, ) {}; $a = new class ( @@ -5892,7 +5892,7 @@ $a = new class ( // Comment $b, // Comment - $c + $c, ) {}; $a = new class { @@ -6221,28 +6221,28 @@ class MyClass { function foo( /* Comment */ $a, - /* Comment */ array /* Comment2 */ $b /* Comment */ = /* Comment */ [] /* Comment */ + /* Comment */ array /* Comment2 */ $b /* Comment */ = /* Comment */ [] /* Comment */, ) {} function bar(/* Comment */ &$a /* Comment */) {} function baz( /* Comment */ $a, - /* Comment */ array /* Comment3 */ &$b /* Comment */ = /* Comment */ [] /* Comment */ + /* Comment */ array /* Comment3 */ &$b /* Comment */ = /* Comment */ [] /* Comment */, ) {} class MyClass { public function foo( /* Comment */ $a, - /* Comment */ array /* Comment2 */ $b /* Comment */ = /* Comment */ [] /* Comment */ + /* Comment */ array /* Comment2 */ $b /* Comment */ = /* Comment */ [] /* Comment */, ) {} public function bar(/* Comment */ &$a /* Comment */) {} public function baz( /* Comment */ $a, - /* Comment */ array /* Comment3 */ &$b /* Comment */ = /* Comment */ [] /* Comment */ + /* Comment */ array /* Comment3 */ &$b /* Comment */ = /* Comment */ [] /* Comment */, ) {} } @@ -6333,7 +6333,7 @@ print // Comment print call( // Comment - $a + $a, ); print // Comment @@ -6471,14 +6471,14 @@ class Foo public $bar = // Comment 1 // Comment 2 <<<'EOT' -bar -EOT; + bar + EOT; public $baz = // Comment 1 // Comment 2 << (new Foo($cssFilename->split("/")->length))->join("../")] + ["publicPath" => new Foo($cssFilename->split("/")->length)->join("../")] : []; $extractTextPluginOptions = $shouldUseRelativeAssetPaths ? // Making sure that the publicPath goes back to to build folder. - ["publicPath" => (new Foo($cssFilename->split("/")->length))->join("../")] + ["publicPath" => new Foo($cssFilename->split("/")->length)->join("../")] : []; $extractTextPluginOptions = $shouldUseRelativeAssetPaths // Making sure that the publicPath goes back to to build folder. - ? ["publicPath" => (new Foo($cssFilename->split("/")->length))->join("../")] + ? ["publicPath" => new Foo($cssFilename->split("/")->length)->join("../")] : []; $var = @@ -6915,14 +6915,14 @@ throw /* Comment */ new Foo() /* Comment */; // Comment throw new ClassName( // Comment 1, // Comment // Comment - 2 // Comment + 2, // Comment ); // Comment /* Comment */ throw new ClassName /* Comment */( /* Comment */ 1 /* Comment */, /* Comment */ - /* Comment */ 2 /* Comment */ + /* Comment */ 2 /* Comment */, /* Comment */ ); /* Comment */ @@ -7230,12 +7230,12 @@ unset(/* Comment */ $foo /* Comment */); unset( // Comment - $var + $var, ); unset( // Comment - $var + $var, ); ================================================================================ @@ -7264,7 +7264,7 @@ use // Comment use some\\namespaces\\{ /* Comment */ /* Comment */ /* Comment */ ClassA /* Comment */, /* Comment */ ClassB /* Comment */, - /* Comment */ ClassC as /* Comment */ /* Comment */ C + /* Comment */ ClassC as /* Comment */ /* Comment */ C, }; use // Comment diff --git a/tests/composer-version/composer-version.spec.mjs b/tests/composer-version/composer-version.spec.mjs new file mode 100644 index 000000000..30e6afd69 --- /dev/null +++ b/tests/composer-version/composer-version.spec.mjs @@ -0,0 +1,215 @@ +import { getComposerPhpVersion, resolvePhpVersion } from "../../src/options.mjs"; +import fs from "fs"; +import path from "path"; +import os from "os"; + +describe("getComposerPhpVer", () => { + // Create a unique temporary directory for our tests + const tempDir = path.join(os.tmpdir(), `composer-version-test-${Date.now()}`); + const tempComposerPath = path.join(tempDir, "composer.json"); + const originalCwd = process.cwd(); + + beforeEach(() => { + // Create temp directory if it doesn't exist + if (!fs.existsSync(tempDir)) { + fs.mkdirSync(tempDir, { recursive: true }); + } + }); + + afterEach(() => { + process.chdir(originalCwd); + + // Clean up temp files and directories + if (fs.existsSync(tempComposerPath)) { + fs.unlinkSync(tempComposerPath); + } + + // Remove any nested directories we created + if (fs.existsSync(tempDir)) { + const deleteFolderRecursive = function(dirPath) { + if (fs.existsSync(dirPath)) { + fs.readdirSync(dirPath).forEach((file) => { + const curPath = path.join(dirPath, file); + if (fs.lstatSync(curPath).isDirectory()) { + deleteFolderRecursive(curPath); + } else { + fs.unlinkSync(curPath); + } + }); + fs.rmdirSync(dirPath); + } + }; + + deleteFolderRecursive(tempDir); + } + }); + + test("returns null when no composer.json is found", () => { + // Create a directory with no composer.json + const emptyDir = path.join(tempDir, "empty-dir"); + fs.mkdirSync(emptyDir, { recursive: true }); + + process.chdir(emptyDir); + + expect(getComposerPhpVersion()).toBe(null); + }); + + test.each([ + {ver:">=7.1.0",expected: 7.1}, + {ver:"^8.0",expected: 8.0}, + {ver:"~7.4",expected: 7.4}, + {ver:">=5.6.0 <8.0.0",expected: 5.6}, + {ver:"7.3.*",expected: 7.3}, + {ver:"7.* || 8.*",expected: 7.0} + ])("extracts correct version from $ver ba changing cwd", ({ver, expected}) => { + const composerContent = JSON.stringify( + { + require: { + php: ver, + }, + }, + null, + 2 + ); + + process.chdir(tempDir); + fs.writeFileSync(tempComposerPath, composerContent); + + + expect(getComposerPhpVersion()).toBe(expected); + }); + + test("phpVersion=composer reads composer.json", () => { + + const composerContent = JSON.stringify( + { + require: { + php: ">=5.4", + }, + }, + null, + 2 + ); + + process.chdir(tempDir); + fs.writeFileSync(tempComposerPath, composerContent); + + + const options = { phpVersion: "composer" }; + resolvePhpVersion(options); + expect(options.phpVersion).toBe(5.4); + }) + + test("returns null when composer.json has no PHP requirement", () => { + const composerContent = JSON.stringify( + { + require: { + // No PHP requirement + "some/package": "^1.0" + }, + }, + null, + 2 + ); + + fs.writeFileSync(tempComposerPath, composerContent); + + process.chdir(tempDir); + + expect(getComposerPhpVersion()).toBe(null); + }); + + + test("returns error when no composer.json and phpVersion set to composer", () => { + + process.chdir(tempDir); + + expect(() =>resolvePhpVersion({phpVersion:"composer"})).toThrow(); + }); + + test("returns null when composer.json has invalid PHP requirement", () => { + const composerContent = JSON.stringify( + { + require: { + php: "invalid-version" + }, + }, + null, + 2 + ); + + fs.writeFileSync(tempComposerPath, composerContent); + + process.chdir(tempDir); + + expect(getComposerPhpVersion()).toBe(null); + }); + + test("finds composer.json in parent directory when in nested child folder", () => { + // Create a nested directory structure + const nestedDir1 = path.join(tempDir, "level1"); + const nestedDir2 = path.join(nestedDir1, "level2"); + const nestedDir3 = path.join(nestedDir2, "level3"); + + fs.mkdirSync(nestedDir1, { recursive: true }); + fs.mkdirSync(nestedDir2, { recursive: true }); + fs.mkdirSync(nestedDir3, { recursive: true }); + + // Create composer.json in the root temp directory + const composerContent = JSON.stringify( + { + require: { + php: "^8.1" + }, + }, + null, + 2 + ); + + fs.writeFileSync(tempComposerPath, composerContent); + + process.chdir(nestedDir3); + + expect(getComposerPhpVersion()).toBe(8.1); + }); + + test("finds composer.json in intermediate parent directory", () => { + // Create a nested directory structure + const nestedDir1 = path.join(tempDir, "folder1"); + const nestedDir2 = path.join(nestedDir1, "folder2"); + const nestedDir3 = path.join(nestedDir2, "folder3"); + + fs.mkdirSync(nestedDir1, { recursive: true }); + fs.mkdirSync(nestedDir2, { recursive: true }); + fs.mkdirSync(nestedDir3, { recursive: true }); + + // Create composer.json in the middle level directory + const intermediateComposerPath = path.join(nestedDir2, "composer.json"); + const composerContent = JSON.stringify( + { + require: { + php: "~7.2" + }, + }, + null, + 2 + ); + + fs.writeFileSync(intermediateComposerPath, composerContent); + + process.chdir(nestedDir3); + + expect(getComposerPhpVersion()).toBe(7.2); + }); + + test("returns null when composer.json is malformed", () => { + // Create a malformed JSON file (invalid syntax) + const malformedContent = `{This is not JSON}`; + + fs.writeFileSync(tempComposerPath, malformedContent); + + process.chdir(tempDir); + + expect(getComposerPhpVersion()).toBe(null); + }); +}); diff --git a/tests/echo/__snapshots__/jsfmt.spec.mjs.snap b/tests/echo/__snapshots__/jsfmt.spec.mjs.snap index 40c6016b9..455ac56e9 100644 --- a/tests/echo/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/echo/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`echo.php 1`] = ` ====================================options===================================== @@ -319,30 +319,30 @@ echo esc_html( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ); echo esc_html( sprintf( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ) . "\\n\\n"; echo esc_html( sprintf( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ) . "\\n\\n", "string"; echo esc_html( @@ -350,10 +350,10 @@ echo esc_html( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ) . "\\n\\n", "string" . "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString"; @@ -362,10 +362,10 @@ echo esc_html( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ), "string", "string"; @@ -374,30 +374,30 @@ echo esc_html( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ), esc_html( sprintf( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ); echo esc_html( sprintf( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ), "string", esc_html( @@ -405,10 +405,10 @@ echo esc_html( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ); echo << "foo", "barfoo" => "foobar", "foobar" => "barfoo", - ] + ], ); ?>
element( @@ -1183,7 +1183,7 @@ printWidth: 80 "bar" => "foo", "barfoo" => "foobar", "foobar" => "barfoo", - ] + ], ); ?>
@@ -1803,7 +1803,7 @@ printWidth: 80 value="id); ?>" chosen, true); ?> data-text="order_button_text + $gateway->order_button_text, ); ?>" @@ -1874,7 +1874,7 @@ func( @@ -1882,7 +1882,7 @@ func( @@ -1890,7 +1890,7 @@ func( @@ -1898,7 +1898,7 @@ func( @@ -1906,7 +1906,7 @@ func( @@ -1914,7 +1914,7 @@ func( @@ -1922,7 +1922,7 @@ func( diff --git a/tests/isset/__snapshots__/jsfmt.spec.mjs.snap b/tests/isset/__snapshots__/jsfmt.spec.mjs.snap index f94ba9377..88f261c05 100644 --- a/tests/isset/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/isset/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`isset.php 1`] = ` ====================================options===================================== @@ -60,14 +60,14 @@ class T a->b); isset( $veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongVariable ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty - ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty + ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty, ); if (isset($var)) { diff --git a/tests/kitchen_sink/__snapshots__/jsfmt.spec.mjs.snap b/tests/kitchen_sink/__snapshots__/jsfmt.spec.mjs.snap index ea8553b76..b468e90a5 100644 --- a/tests/kitchen_sink/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/kitchen_sink/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`kitchen_sink.php 1`] = ` ====================================options===================================== @@ -77,7 +77,7 @@ if ($test == 1) { function really_long_function( $test2 = 1, $long_parameter_name, - $even_longer_longer_longer_longer_longer_parameter_name + $even_longer_longer_longer_longer_longer_parameter_name, ) { return $test2; } diff --git a/tests/list/__snapshots__/jsfmt.spec.mjs.snap b/tests/list/__snapshots__/jsfmt.spec.mjs.snap index 027a6c996..c21e367f4 100644 --- a/tests/list/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/list/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`list.php 1`] = ` ====================================options===================================== @@ -159,110 +159,110 @@ list( $info = ["coffee", "brown", "caffeine"]; // Listing all the variables -list($drink, $color, $power) = $info; +[$drink, $color, $power] = $info; echo "$drink is $color and $power makes it special.\\n"; // Listing some of them -list($drink, , $power) = $info; +[$drink, , $power] = $info; echo "$drink has $power.\\n"; // Or let's skip to only the third one -list(, , $power) = $info; +[, , $power] = $info; echo "I need $power!\\n"; // list() doesn't work with strings -list($bar) = "abcde"; +[$bar] = "abcde"; var_dump($bar); // NULL -while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) { +while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { } -list($a, list($b, $c)) = [1, [2, 3]]; +[$a, [$b, $c]] = [1, [2, 3]]; $info = ["coffee", "brown", "caffeine"]; -list($a[0], $a[1], $a[2]) = $info; +[$a[0], $a[1], $a[2]] = $info; -list("id" => $id1, "name" => $name1) = $data[0]; -list( +["id" => $id1, "name" => $name1] = $data[0]; +[ "veryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryLongValue, "veryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryLongValue, -) = $data[0]; -list( +] = $data[0]; +[ "veryVeryVeryVeryVeryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryVeryVeryVeryVeryLongValue, "veryVeryVeryVeryVeryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryVeryVeryVeryVeryLongValue, -) = $data[0]; +] = $data[0]; -foreach ($data as list("id" => $id, "name" => $name)) { +foreach ($data as ["id" => $id, "name" => $name]) { // logic here with $id and $name } foreach ( $data - as list( + as [ "veryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryLongValue, "veryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryLongValue, - ) + ] ) { // logic here with $id and $name } foreach ( $data - as list( + as [ "veryVeryVeryVeryVeryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryVeryVeryVeryVeryLongValue, "veryVeryVeryVeryVeryVeryVeryVeryVeryLongKey" => $veryVeryVeryVeryVeryVeryVeryVeryVeryLongValue, - ) + ] ) { // logic here with $id and $name } -list(, $b) = ["a", "b"]; -list(, , $c) = ["a", "b", "c"]; +[, $b] = ["a", "b"]; +[, , $c] = ["a", "b", "c"]; -while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) { +while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { echo " \\n" . " $name\\n" . " $salary\\n" . " \\n"; } -list($a, list($b, $c)) = [1, [2, 3]]; +[$a, [$b, $c]] = [1, [2, 3]]; -list($a[0], $a[1], $a[2]) = $info; +[$a[0], $a[1], $a[2]] = $info; foreach ($data as ["id" => $id, "name" => $name]) { echo "id: $id, name: $name\\n"; } -list(0 => $first, 1 => $second, 2 => $three, 3 => $fourth) = $arr; -list( +[0 => $first, 1 => $second, 2 => $three, 3 => $fourth] = $arr; +[ 0 => $first, 1 => $second, 2 => $three, 3 => $fourth, -) = $arr; +] = $arr; -list($first, $second, $three, $fourth) = $arr; -list(, $first, $second, $three, $fourth) = $arr; -list(, , $first, $second, $three, $fourth, ,) = $arr; -list(, , $first, , $second, , $three, , $fourth, ,) = $arr; -list(, , , $first, $second, $three, $fourth, , ,) = $arr; -list(, , , $first, , , $second, , , $three, , , $fourth, , ,) = $arr; +[$first, $second, $three, $fourth] = $arr; +[, $first, $second, $three, $fourth] = $arr; +[, , $first, $second, $three, $fourth, ,] = $arr; +[, , $first, , $second, , $three, , $fourth, ,] = $arr; +[, , , $first, $second, $three, $fourth, , ,] = $arr; +[, , , $first, , , $second, , , $three, , , $fourth, , ,] = $arr; -list( +[ 0 => $firstVeryVeryVeryVeryLong, 1 => $secondVeryVeryVeryVeryLong, 2 => $threeVeryVeryVeryVeryLong, 3 => $fourthVeryVeryVeryVeryLong, -) = $arr; -list( +] = $arr; +[ , 0 => $firstVeryVeryVeryVeryLong, 1 => $secondVeryVeryVeryVeryLong, 2 => $threeVeryVeryVeryVeryLong, 3 => $fourthVeryVeryVeryVeryLong, -) = $arr; -list( +] = $arr; +[ , , 0 => $firstVeryVeryVeryVeryLong, @@ -270,8 +270,8 @@ list( 2 => $threeVeryVeryVeryVeryLong, 3 => $fourthVeryVeryVeryVeryLong, , -) = $arr; -list( +] = $arr; +[ , , 0 => $firstVeryVeryVeryVeryLong, @@ -282,8 +282,8 @@ list( , 3 => $fourthVeryVeryVeryVeryLong, , -) = $arr; -list( +] = $arr; +[ , , , @@ -293,8 +293,8 @@ list( 3 => $fourthVeryVeryVeryVeryLong, , , -) = $arr; -list( +] = $arr; +[ , , , @@ -310,9 +310,9 @@ list( 3 => $fourthVeryVeryVeryVeryLong, , , -) = $arr; +] = $arr; -list( +[ 0 => $firstVeryVeryVeryVeryLong, 1 => $secondVeryVeryVeryVeryLong, @@ -320,12 +320,12 @@ list( 2 => $threeVeryVeryVeryVeryLong, 3 => $fourthVeryVeryVeryVeryLong, -) = $arr; +] = $arr; -list("id" => $id1, "name" => $name1) = $data[0]; +["id" => $id1, "name" => $name1] = $data[0]; ["id" => $id1, "name" => $name1] = $data[0]; -foreach ($data as list("id" => $id, "name" => $name)) { +foreach ($data as ["id" => $id, "name" => $name]) { // logic here with $id and $name } @@ -339,60 +339,60 @@ function swap(&$a, &$b): void } $array = [1, 2]; -list($a, &$b) = $array; [$a, &$b] = $array; -list(&$a, $b, , list(&$c, $d)) = $array; +[$a, &$b] = $array; +[&$a, $b, , [&$c, $d]] = $array; [&$a, $b, , [&$c, $d]] = $array; -foreach ($array as list(&$a, $b)) { +foreach ($array as [&$a, $b]) { } foreach ($array as [&$a, $b]) { } -list(0 => $var) = $arr; -list(0 => $var) = $arr; -list(, 0 => $var) = $arr; -list(0 => $var) = $arr; -list( +[0 => $var] = $arr; +[0 => $var] = $arr; +[, 0 => $var] = $arr; +[0 => $var] = $arr; +[ 0 => $var, -) = $arr; -list( +] = $arr; +[ , 0 => $var, -) = $arr; -list( +] = $arr; +[ , 0 => $var, -) = $arr; -list( +] = $arr; +[ , 0 => $var, , -) = $arr; -list( +] = $arr; +[ 0 => $var, 1 => $other_var, -) = $arr; -list( +] = $arr; +[ , 0 => $var, 1 => $other_var, -) = $arr; -list( +] = $arr; +[ , 0 => $var, 1 => $other_var, -) = $arr; -list( +] = $arr; +[ , 0 => $var, 1 => $other_var, , -) = $arr; -list(0 => $var) = $arr; -list( +] = $arr; +[0 => $var] = $arr; +[ 0 => $var, -) = $arr; +] = $arr; ================================================================================ `; diff --git a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap index 283177c24..4d8631650 100644 --- a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`break-last-call.php 1`] = ` ====================================options===================================== @@ -34,7 +34,7 @@ function call($store) actionWith([ "response" => $response, "type" => $successType, - ]) + ]), ); }, function ($error) { @@ -42,9 +42,9 @@ function call($store) actionWith([ "type" => $failureType, "error" => $error->message || "Something bad happened", - ]) + ]), ); - } + }, ); } @@ -87,10 +87,10 @@ $superSupersuperSupersuperSupersuperSupersuperSuperLong->{$exampleOfOrderOfGette $superSupersuperSupersuperSupersuperSupersuperSuperLong::$exampleOfOrderOfGetterAndSetterReordered; $superSupersuperSupersuperSupersuperSupersuperSuperLong ::$exampleOfOrderOfGetterAndSetterReordered[0]; -$superSupersuperSupersuperSupersuperSupersuperSuperLong = (new SuperSuperSuperSuperSuperSuperLongClassName()) +$superSupersuperSupersuperSupersuperSupersuperSuperLong = new SuperSuperSuperSuperSuperSuperLongClassName() ->some_very_long_member_expression; new $superSupersuperSupersuperSupersuperSupersuperSuperLong->superSupersuperSupersuperSupersuperSupersuperSuperLong->superSupersuperSupersuperSupersuperSupersuperSuperLong(); -(new $superSupersuperSupersuperSupersuperSupersuperSuperLong->superSupersuperSupersuperSupersuperSupersuperSuperLong->superSupersuperSupersuperSupersuperSupersuperSuperLong()) +new $superSupersuperSupersuperSupersuperSupersuperSuperLong->superSupersuperSupersuperSupersuperSupersuperSuperLong->superSupersuperSupersuperSupersuperSupersuperSuperLong() ->superSupersuperSupersuperSupersuperSupersuperSuperLong; $test = $superSupersuperSupersuperSupersuperSupersuperSuperLong->exampleOfOrderOfGetterAndSetterReordered; @@ -241,7 +241,7 @@ $object[ : $helper->responseBody($defaultUser) ]->map(); -(new TestClassWithReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName()) +new TestClassWithReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName() ->map() ->filter(); @@ -470,7 +470,7 @@ return tap( $this->forceFill([ "approver_id" => $user instanceof User ? $user->id : $user, "approved_at" => $this->freshTimestamp(), - ]) + ]), )->save(); return collect(parent::jsonSerialize()) @@ -518,7 +518,7 @@ $a = $t ->once(); $this->loooooooooooong->lookup = (int) $this->getRequest()->getParam( - "some-param" + "some-param", ); $this->loooooooooooong->lookup = (int) $variable @@ -541,38 +541,38 @@ $aVariable = $theThing bar()(); bar( - "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" + "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong", )(); bar()( - "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" + "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong", ); bar( - "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" + "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong", )()()()()(); $foo->bar()(); $foo->bar( - "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" + "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong", )(); $foo->bar()( - "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" + "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong", ); $foo->bar( - "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong" + "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLong", )()()()()(); $brian->hotel->orders()->ordered()->with("smith")->get(); $brian::$hotel->orders()->ordered()->with("smith")->get(); $brian["hotel"]->orders()->ordered()->with("smith")->get(); Foo::$hotel->orders()->ordered()->with("smith")->get(); -(new Foo())->hotel->orders()->ordered()->with("smith")->get(); +new Foo()->hotel->orders()->ordered()->with("smith")->get(); (clone $a)->hotel->orders()->ordered()->with("smith")->get(); $var = $brian->hotel->orders()->ordered()->with("smith")->get(); $var = $brian::$hotel->orders()->ordered()->with("smith")->get(); $var = $brian["hotel"]->orders()->ordered()->with("smith")->get(); $var = Foo::$hotel->orders()->ordered()->with("smith")->get(); -$var = (new Foo())->hotel->orders()->ordered()->with("smith")->get(); +$var = new Foo()->hotel->orders()->ordered()->with("smith")->get(); $var = (clone $a)->hotel->orders()->ordered()->with("smith")->get(); $var = Foo::keys($items) @@ -583,10 +583,10 @@ $var = Foo::keys($items) return $x * 2; }); -(new static(func_get_args()))->push($this)->each(function ($item) { +new static(func_get_args())->push($this)->each(function ($item) { VarDumper::dump($item); }); -(new static(func_get_args())) +new static(func_get_args()) ->offset(10) ->push($this) ->each(function ($item) { @@ -641,7 +641,7 @@ $wrapper ->find("SomewhatLongNodeName") ->prop( "longPropFunctionName", - "second argument that pushes this group past 80 characters" + "second argument that pushes this group past 80 characters", ) ->then(function () { doSomething(); @@ -812,8 +812,8 @@ $window ->first() ->second(); -(new Foo())->call($foo->bar->baz)->first()->second(); -(new Foo()) +new Foo()->call($foo->bar->baz)->first()->second(); +new Foo() ->call($foo->bar->baz->foo()) ->first() ->second(); @@ -971,7 +971,7 @@ DB::table("identity")->insert([ ]); DB::table( - "identity" + "identity", )->insertReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName([ "ref" => $ref, "handle" => $handle, @@ -991,7 +991,7 @@ Logger::use_logger("albus")->info( [ "uuid" => $uuid, "requested_date" => $date, - ] + ], ); DBwithlongname::table("identity") @@ -1031,7 +1031,7 @@ $page = TableRegistry::insertReallyReallyReallyReallyReallyReallyReallyReallyRea $page = TableRegistry::insertReallyReallyReallyLongName("Pages")[0]; $page = TableRegistry::insertReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName( - "Pages" + "Pages", )[0]; $component = find(".org-lclp-edit-copy-url-banner__link")[0] @@ -1053,7 +1053,7 @@ static::viewFactory() $view ?: static::$defaultSimpleView, array_merge($data, [ "paginator" => $this, - ]) + ]), ) ->render(); static::viewFactory() @@ -1061,7 +1061,7 @@ static::viewFactory() $view ?: static::$defaultSimpleView, array_merge($data, [ "paginator" => $this, - ]) + ]), ) ->render(); self::viewFactory() @@ -1069,7 +1069,7 @@ self::viewFactory() $view ?: static::$defaultSimpleView, array_merge($data, [ "paginator" => $this, - ]) + ]), ) ->render(); parent::viewFactory() @@ -1077,7 +1077,7 @@ parent::viewFactory() $view ?: static::$defaultSimpleView, array_merge($data, [ "paginator" => $this, - ]) + ]), ) ->render(); @@ -1086,7 +1086,7 @@ Foo::viewFactory() $view ?: static::$defaultSimpleView, array_merge($data, [ "paginator" => $this, - ]) + ]), ) ->render(); diff --git a/tests/new/__snapshots__/jsfmt.spec.mjs.snap b/tests/new/__snapshots__/jsfmt.spec.mjs.snap index d29025a20..177c147da 100644 --- a/tests/new/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/new/__snapshots__/jsfmt.spec.mjs.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`new.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -225,7 +226,7 @@ $class = (new Foo([ "VeryVeryVeryVeryVeryVeryVeryVeryVeryLongValue", ]))->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongMethod(); $class = (new PendingDispatch(new $this->class(...func_get_args())))->chain( - $this->chain + $this->chain, ); $dumper = in_array(PHP_SAPI, ["cli", "phpdbg"]) ? new CliDumper() @@ -236,10 +237,10 @@ $class = new static( "] with ID [" . $model->getKey() . "] to JSON: " . - $message + $message, ); $response = new \\Illuminate\\Http\\JsonResponse( - new JsonResponseTestJsonSerializeObject() + new JsonResponseTestJsonSerializeObject(), ); $result = (new Pipeline(new \\Illuminate\\Container\\Container())) ->send("foo") @@ -250,62 +251,64 @@ $result = (new Pipeline(new \\Illuminate\\Container\\Container())) $var = new Foo( <<<'EOD' -Example of string -spanning multiple lines -using nowdoc syntax. -EOD + Example of string + spanning multiple lines + using nowdoc syntax. + EOD , - $arg + $arg, ); $var = new Foo( $arg, <<<'EOD' -Example of string -spanning multiple lines -using nowdoc syntax. -EOD + Example of string + spanning multiple lines + using nowdoc syntax. + EOD + , ); $var = new Foo( $arg, <<<'EOD' -Example of string -spanning multiple lines -using nowdoc syntax. -EOD + Example of string + spanning multiple lines + using nowdoc syntax. + EOD , - $arg + $arg, ); $var = new Foo( << "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString", "key3" => "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString", - ] + ], ) { return $arg; } @@ -211,7 +211,7 @@ function bar2( $arg = "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString" . "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString" . - "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString" + "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString", ) { return $arg; } @@ -219,7 +219,7 @@ function bar2( function bar3( $arg = "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString" ? "1" - : "2" + : "2", ) { return $arg; } @@ -227,7 +227,7 @@ function bar3( function bar4( string $arg = "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString" ? "1" - : "2" + : "2", ) { return $arg; } @@ -237,7 +237,7 @@ function bar5( "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString" === "veryVeryVeryVeryVeryVeryVeryVeryVeryLongString" ? "1" - : "2" + : "2", ) { return $arg; } @@ -245,7 +245,7 @@ function bar5( function foo( $arg = 'string string -string' +string', ) {} function foo( @@ -254,7 +254,7 @@ string string', $arg = 'string string -string' +string', ) {} function foo( @@ -262,7 +262,7 @@ function foo( $b = 'string string string', - $c + $c, ) {} ================================================================================ diff --git a/tests/parens/__snapshots__/jsfmt.spec.mjs.snap b/tests/parens/__snapshots__/jsfmt.spec.mjs.snap index ed2b205ba..ccb74dd00 100644 --- a/tests/parens/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/parens/__snapshots__/jsfmt.spec.mjs.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`array.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -107,7 +108,6 @@ $var = [new stdClass()][0]; exports[`array.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -212,6 +212,7 @@ $var = [new stdClass()][0]; exports[`assign.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -426,7 +427,6 @@ switch ($i = 1) { exports[`assign.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -641,6 +641,7 @@ switch ($i = 1) { exports[`assignref.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -689,7 +690,6 @@ call($a = &$b); exports[`assignref.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -738,6 +738,7 @@ call($a = &$b); exports[`bin.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -1505,7 +1506,6 @@ $result = 2 ** ($number - 1); exports[`bin.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -2273,6 +2273,7 @@ $result = 2 ** ($number - 1); exports[`block.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -2296,7 +2297,6 @@ function foo() exports[`block.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -2320,6 +2320,7 @@ function foo() exports[`break.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -2354,7 +2355,6 @@ break 2; exports[`break.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -2389,6 +2389,7 @@ break 2; exports[`call.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -2507,7 +2508,6 @@ Foo::call($a = new Foo()); exports[`call.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -2626,6 +2626,7 @@ Foo::call($a = new Foo()); exports[`cast.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -2827,7 +2828,6 @@ $timeout = exports[`cast.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3029,6 +3029,7 @@ $timeout = exports[`clone.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -3107,7 +3108,6 @@ $var = (clone $var->foo)->foo; exports[`clone.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3186,6 +3186,7 @@ $var = (clone $var->foo)->foo; exports[`closure.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -3239,7 +3240,6 @@ var_dump(...(function () use ($type) {})()); exports[`closure.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3293,6 +3293,7 @@ var_dump(...(function () use ($type) {})()); exports[`continue.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -3327,7 +3328,6 @@ continue 2; exports[`continue.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3362,6 +3362,7 @@ continue 2; exports[`control-structures.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -3567,7 +3568,7 @@ switch ($var = 1) { switch ($var = 1) { } -while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) { +while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { } while ([$id, $name, $salary] = $result->fetch(PDO::FETCH_NUM)) { } @@ -3589,7 +3590,6 @@ do { exports[`control-structures.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3817,6 +3817,7 @@ do { exports[`declare.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -3839,7 +3840,6 @@ $a->c(); exports[`declare.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -3862,6 +3862,7 @@ $a->c(); exports[`echo.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -3953,7 +3954,6 @@ echo (function () { exports[`echo.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4045,6 +4045,7 @@ echo (function () { exports[`empty.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4076,7 +4077,6 @@ if (empty($var)) { exports[`empty.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4108,6 +4108,7 @@ if (empty($var)) { exports[`eval.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4151,7 +4152,6 @@ if (eval("return 1;") === 1) { exports[`eval.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4195,6 +4195,7 @@ if (eval("return 1;") === 1) { exports[`exit.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4235,7 +4236,6 @@ call(exit(1)); exports[`exit.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4276,6 +4276,7 @@ call(exit(1)); exports[`include.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4359,7 +4360,6 @@ include $_GET["id"] . ".php"; exports[`include.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4443,6 +4443,7 @@ include $_GET["id"] . ".php"; exports[`isset.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4478,7 +4479,6 @@ if (isset($var)) { exports[`isset.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4514,6 +4514,7 @@ if (isset($var)) { exports[`lookups.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4706,7 +4707,6 @@ $var = (function () { exports[`lookups.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4899,6 +4899,7 @@ $var = (function () { exports[`namespace.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -4921,7 +4922,6 @@ $a->c(); exports[`namespace.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -4944,6 +4944,7 @@ $a->c(); exports[`new.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -5027,7 +5028,7 @@ new Translator( new MessageFormatter(), "en", [], - ["foo" => "bar"] + ["foo" => "bar"], ); ?> "bar", @@ -5086,7 +5087,6 @@ $var = (new class {})->foo; exports[`new.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -5229,6 +5229,7 @@ $var = new class {}->foo; exports[`parens.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -5247,7 +5248,6 @@ include $test ? "foo" : "bar"; exports[`parens.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -5266,6 +5266,7 @@ include $test ? "foo" : "bar"; exports[`pre-post.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -5394,7 +5395,6 @@ $var = call(--$var->_uuidCounter); exports[`pre-post.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -5523,6 +5523,7 @@ $var = call(--$var->_uuidCounter); exports[`print.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -5622,7 +5623,6 @@ print ($var || $var) && $var; exports[`print.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -5722,6 +5722,7 @@ print ($var || $var) && $var; exports[`program.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -5740,7 +5741,6 @@ $a->c(); exports[`program.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -5759,6 +5759,7 @@ $a->c(); exports[`retif.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -5904,7 +5905,6 @@ $var = new $foo() ? true : false; exports[`retif.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -6050,6 +6050,7 @@ $var = new $foo() ? true : false; exports[`return.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -6090,7 +6091,6 @@ return $this->customer->paymentService ?? null; exports[`return.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -6131,6 +6131,7 @@ return $this->customer->paymentService ?? null; exports[`silent.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -6225,7 +6226,7 @@ try { handle_exception(); } -@list($width, $height) = getimagesize($file); +@[$width, $height] = getimagesize($file); // Todo https://github.com/glayzzle/php-parser/issues/356 // @(list($width, $height) = getimagesize($file)); @@ -6244,7 +6245,6 @@ echo @(1 / 0); exports[`silent.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -6358,6 +6358,7 @@ echo @(1 / 0); exports[`throw.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -6411,7 +6412,6 @@ $value = $a ? $a : throw new \\InvalidArgumentException("In ternary"); exports[`throw.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -6465,6 +6465,7 @@ $value = $a ? $a : throw new \\InvalidArgumentException("In ternary"); exports[`unary.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -6609,7 +6610,6 @@ if (!($token = $this->getToken())) { exports[`unary.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -6754,6 +6754,7 @@ if (!($token = $this->getToken())) { exports[`unnecessary.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -6876,7 +6877,6 @@ function foo($a = 1, $b = "string", $c = true, $d = __LINE__) exports[`unnecessary.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== @@ -6999,6 +6999,7 @@ function foo($a = 1, $b = "string", $c = true, $d = __LINE__) exports[`yield.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "8.3" printWidth: 80 | printWidth =====================================input====================================== @@ -7096,7 +7097,6 @@ function gen_one_to_three() exports[`yield.php 2`] = ` ====================================options===================================== parsers: ["php"] -phpVersion: "8.4" printWidth: 80 | printWidth =====================================input====================================== diff --git a/tests/parens/jsfmt.spec.mjs b/tests/parens/jsfmt.spec.mjs index a2c158328..354bc7ea5 100644 --- a/tests/parens/jsfmt.spec.mjs +++ b/tests/parens/jsfmt.spec.mjs @@ -1,2 +1,2 @@ +run_spec(import.meta, ["php"], {phpVersion:"8.3"}); run_spec(import.meta, ["php"]); -run_spec(import.meta, ["php"], { phpVersion: "8.4" }); diff --git a/tests/preserve_line/__snapshots__/jsfmt.spec.mjs.snap b/tests/preserve_line/__snapshots__/jsfmt.spec.mjs.snap index 45c50c6ef..5a67bb15a 100644 --- a/tests/preserve_line/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/preserve_line/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`argument-list.php 1`] = ` ====================================options===================================== @@ -209,14 +209,14 @@ longArgNamesWithComments( $longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong2, /* Hello World */ - $longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong3 + $longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglong3, ); shortArgNames( $short, $short2, - $short3 + $short3, ); comments( @@ -235,7 +235,7 @@ comments( /* Long Long Long Long Long Comment */ // Long Long Long Long Long Comment - $short3 + $short3, // More comments ); @@ -244,7 +244,7 @@ differentArgTypes( return true; }, - isTrue ? doSomething() : 12 + isTrue ? doSomething() : 12, ); moreArgTypes( @@ -261,31 +261,31 @@ moreArgTypes( // Hello world again ["name" => "Hello World", "age" => 34], - $oneThing + $anotherThing + $oneThing + $anotherThing, // Comment - ) + ), ); evenMoreArgTypes( doSomething( ["name" => "Hello World", "age" => 34], - true + true, ), 14, 1 + 2 - 90 / 80, - !98 * 60 - 90 + !98 * 60 - 90, ); $foo->apply( null, // Array here - [1, 2] + [1, 2], ); $bar->on( @@ -293,7 +293,7 @@ $bar->on( function () { doStuff(); - } + }, ); foo( @@ -302,7 +302,7 @@ foo( /* function here */ function () { return true; - } + }, ); $doSomething->apply( @@ -310,13 +310,13 @@ $doSomething->apply( // Comment - ["Hello world 1", "Hello world 2", "Hello world 3"] + ["Hello world 1", "Hello world 2", "Hello world 3"], ); doAnotherThing( "node", - [$solution_type, $time_frame] + [$solution_type, $time_frame], ); $stuff->doThing( @@ -327,7 +327,7 @@ $stuff->doThing( "accept" => function ($node) { doSomething($node); }, - ] + ], ); doThing( @@ -339,7 +339,7 @@ doThing( "decline" => function ($creditCard) { takeMoney($creditCard); }, - ] + ], ); func( @@ -347,7 +347,7 @@ func( thing(); }, - ["yes" => true, "no" => 5] + ["yes" => true, "no" => 5], ); doSomething( @@ -358,7 +358,7 @@ doSomething( /* Comment */ // This is important - [$helloWorld, $someImportantStuff] + [$helloWorld, $someImportantStuff], ); ================================================================================ diff --git a/tests/print/__snapshots__/jsfmt.spec.mjs.snap b/tests/print/__snapshots__/jsfmt.spec.mjs.snap index d93a2e400..922788033 100644 --- a/tests/print/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/print/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`print.php 1`] = ` ====================================options===================================== @@ -229,10 +229,10 @@ print esc_html( __( "Hi there. Your recent order on %s has been completed. " . "Your order details are shown below for your reference:", - "woocommerce" + "woocommerce", ), - get_option("blogname") - ) + get_option("blogname"), + ), ); print << "very_very_very_long_other_value", ]; public $var8 = <<<'EOD' -hello world -EOD; + hello world + EOD; public $var9 = 11111111111111111111111111111111111111111111111111111111111111111111; public $var10 = "veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString"; public $var11 = true; diff --git a/tests/propertylookup/__snapshots__/jsfmt.spec.mjs.snap b/tests/propertylookup/__snapshots__/jsfmt.spec.mjs.snap index e0378115a..bbd1aa97f 100644 --- a/tests/propertylookup/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/propertylookup/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`offsets.php 1`] = ` ====================================options===================================== @@ -115,7 +115,7 @@ $this->loooooooooooong->loooooooooooong->loooooooooooong->lookup = $this->loooooooooooong->loooooooooooong->loooooooooooong->lookup = $other->looooooooooong->stuff; $this->loooooooooooong->lookup = (int) $this->getRequest()->getParam( - "instance-resource-id" + "instance-resource-id", ); $obj->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty; diff --git a/tests/retif/__snapshots__/jsfmt.spec.mjs.snap b/tests/retif/__snapshots__/jsfmt.spec.mjs.snap index 94fc73a9f..49603a8d0 100644 --- a/tests/retif/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/retif/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`retif.php 1`] = ` ====================================options===================================== @@ -259,7 +259,7 @@ $test = bar( $someOtherReallyReallyLongVariable, $someOtherReallyReallyLongVariable, - $someOtherReallyReallyLongVariable + $someOtherReallyReallyLongVariable, ); $test = $testReallyReallyReallyReallyReallyReallyLong >= 1 ?: @@ -445,7 +445,7 @@ call( function () { return 1; }, - $var ? 1 : 2 + $var ? 1 : 2, ); call( @@ -454,7 +454,7 @@ call( }, $someOtherReallyReallyLongVariable ? $someOtherReallyReallyLongVariable - : $someOtherReallyReallyLongVariable + : $someOtherReallyReallyLongVariable, ); call( @@ -464,7 +464,7 @@ call( $someOtherReallyReallyLongVariable ?: $someOtherReallyReallyLongVariable ?: $someOtherReallyReallyLongVariable ?: - "test" + "test", ); $var = [ @@ -553,13 +553,13 @@ call($var ?: $var ?: $var ?: "string"); call( $someOtherReallyReallyLongVariable ? $someOtherReallyReallyLongVariable - : $someOtherReallyReallyLongVariable + : $someOtherReallyReallyLongVariable, ); call( $someOtherReallyReallyLongVariable ?: $someOtherReallyReallyLongVariable ?: $someOtherReallyReallyLongVariable ?: - "string" + "string", ); exit($var ? "string" : "other-string"); diff --git a/tests/return/__snapshots__/jsfmt.spec.mjs.snap b/tests/return/__snapshots__/jsfmt.spec.mjs.snap index c1c416e4a..45146d195 100644 --- a/tests/return/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/return/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`return.php 1`] = ` ====================================options===================================== @@ -425,7 +425,7 @@ return new Foo( 1024, $veryVeryVeryVeryVeryVeryLongLine, true, - false + false, ); return new Foo( $arg, @@ -433,7 +433,7 @@ return new Foo( 1024, $veryVeryVeryVeryVeryVeryLongLine, true, - false + false, ) . "string"; return "string" . new Foo( @@ -442,7 +442,7 @@ return "string" . 1024, $veryVeryVeryVeryVeryVeryLongLine, true, - false + false, ); return []; @@ -469,12 +469,12 @@ return $packages || [ ]; return $this->events->until( - new Events\\NotificationSending($notifiable, $notification, $channel) + new Events\\NotificationSending($notifiable, $notification, $channel), ) !== false; return false !== $this->events->until( - new Events\\NotificationSending($notifiable, $notification, $channel) + new Events\\NotificationSending($notifiable, $notification, $channel), ); return $this->getOptions()["endpoint"] ?? @@ -488,7 +488,7 @@ return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) { return $this->channels[$name] = $this->tap( $name, - new Logger($logger, $this->app["events"]) + new Logger($logger, $this->app["events"]), ); }); @@ -530,7 +530,7 @@ return $this->guards[$name] ?? ($this->guards[$name] = $this->resolve($veryVeryVeryLongVariable)); return $this->guards[$veryVeryVeryLongVariable] ?? ($this->guards[$veryVeryVeryLongVariable] = $this->resolve( - $veryVeryVeryLongVariable + $veryVeryVeryLongVariable, )); return call_user_func($this->passwordValidator, $credentials) && diff --git a/tests/silent/__snapshots__/jsfmt.spec.mjs.snap b/tests/silent/__snapshots__/jsfmt.spec.mjs.snap index 77637a202..523f38a29 100644 --- a/tests/silent/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/silent/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`silent.php 1`] = ` ====================================options===================================== @@ -41,7 +41,7 @@ $variable = @foo() $variable = @foo( "VeryVeryVeryVeryVeryVeryLongArgument", "VeryVeryVeryVeryVeryVeryLongArgument", - "VeryVeryVeryVeryVeryVeryLongArgument" + "VeryVeryVeryVeryVeryVeryLongArgument", ); @trigger_error($error, E_USER_DEPRECATED); $value = @$cache[$key]; diff --git a/tests/single-quote-api/jsfmt.spec.mjs b/tests/single-quote-api/jsfmt.spec.mjs index c95b4ab03..bb9db6fb7 100644 --- a/tests/single-quote-api/jsfmt.spec.mjs +++ b/tests/single-quote-api/jsfmt.spec.mjs @@ -13,7 +13,7 @@ test(`singleQuote option on format api`, async () => { const expected = ` `; diff --git a/tests/staticlookup/__snapshots__/jsfmt.spec.mjs.snap b/tests/staticlookup/__snapshots__/jsfmt.spec.mjs.snap index 101adee06..121cb5059 100644 --- a/tests/staticlookup/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/staticlookup/__snapshots__/jsfmt.spec.mjs.snap @@ -344,7 +344,7 @@ $var = $var[0]::foo; $var = $var[0][1]::foo; $var = $var[0][1]::foo; $var = $var[0][1]::foo; -$var = (new Foo())::bar; +$var = new Foo()::bar; $var = Foo::$bar["baz"](); $var = Foo::$bar["baz"](); $var = Foo::{$bar["baz"]}(); diff --git a/tests/string/__snapshots__/jsfmt.spec.mjs.snap b/tests/string/__snapshots__/jsfmt.spec.mjs.snap index edef47687..a166868aa 100644 --- a/tests/string/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/string/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`multiline.php 1`] = ` ====================================options===================================== @@ -308,7 +308,7 @@ $string = "This is the value of the var named by the return value of getName(): $string = "This is the value of the var named by the return value of getName(): {\${getName( $arg1, $arg2, - $arg3 + $arg3, )}}"; $string = "This is the value of the var named by the return value of \\$object->getName(): {\${$object->getName()}}"; $string = "I'd like an {\${beers::softdrink}}\\n"; diff --git a/tests/sys/__snapshots__/jsfmt.spec.mjs.snap b/tests/sys/__snapshots__/jsfmt.spec.mjs.snap index 25eefe8ec..6cbfb3562 100644 --- a/tests/sys/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/sys/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`sys.php 1`] = ` ====================================options===================================== @@ -40,12 +40,12 @@ echo "test echo"; echo $test, $other; $info = ["coffee", "brown", "caffeine"]; -list($drink, $color, $power) = $info; -list( +[$drink, $color, $power] = $info; +[ $reallyReallyReallyReallyLongName, $otherReallyReallyReallyLongName, $lastOne, -) = $info; +] = $info; print "test print"; print "parens test"; @@ -68,7 +68,7 @@ isset( $test, $test, $test, - $test + $test, ); isset($test["foo"]); diff --git a/tests/trailing_commas/__snapshots__/jsfmt.spec.mjs.snap b/tests/trailing_commas/__snapshots__/jsfmt.spec.mjs.snap index 6650f4f14..c570a1a63 100644 --- a/tests/trailing_commas/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/trailing_commas/__snapshots__/jsfmt.spec.mjs.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`array.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 | printWidth =====================================input====================================== @@ -1753,6 +1754,7 @@ $expected = [ exports[`array.php 5`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 trailingComma: "all" trailingCommaPHP: false @@ -2179,6 +2181,7 @@ EOT exports[`call.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 | printWidth =====================================input====================================== @@ -3359,6 +3362,7 @@ $sel = $this->connections exports[`call.php 5`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 trailingComma: "all" trailingCommaPHP: false @@ -3654,6 +3658,7 @@ $sel = $this->connections exports[`isset.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 | printWidth =====================================input====================================== @@ -3756,6 +3761,7 @@ var_dump( exports[`isset.php 5`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 trailingComma: "all" trailingCommaPHP: false @@ -3782,6 +3788,7 @@ var_dump( exports[`list.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 | printWidth =====================================input====================================== @@ -4180,6 +4187,7 @@ list(,,,0 => $firstVeryVeryVeryVeryLong,,, 1 => $secondVeryVeryVeryVeryLong,,, 2 exports[`list.php 5`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 trailingComma: "all" trailingCommaPHP: false @@ -4280,6 +4288,7 @@ list( exports[`unset.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 | printWidth =====================================input====================================== @@ -4378,6 +4387,7 @@ unset( exports[`unset.php 5`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 trailingComma: "all" trailingCommaPHP: false @@ -4403,6 +4413,7 @@ unset( exports[`use.php 1`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 | printWidth =====================================input====================================== @@ -4609,6 +4620,7 @@ use other_foo\\bar\\{ exports[`use.php 5`] = ` ====================================options===================================== parsers: ["php"] +phpVersion: "7.0" printWidth: 80 trailingComma: "all" trailingCommaPHP: false diff --git a/tests/trailing_commas/jsfmt.spec.mjs b/tests/trailing_commas/jsfmt.spec.mjs index 695bbbc83..a9c95d350 100644 --- a/tests/trailing_commas/jsfmt.spec.mjs +++ b/tests/trailing_commas/jsfmt.spec.mjs @@ -1,8 +1,9 @@ -run_spec(import.meta, ["php"]); +run_spec(import.meta, ["php"], { phpVersion: "7.0" }); run_spec(import.meta, ["php"], { trailingCommaPHP: true, phpVersion: "5.0" }); run_spec(import.meta, ["php"], { trailingCommaPHP: true, phpVersion: "7.2" }); run_spec(import.meta, ["php"], { trailingCommaPHP: true, phpVersion: "7.3" }); run_spec(import.meta, ["php"], { trailingCommaPHP: false, + phpVersion: "7.0", trailingComma: "all", }); diff --git a/tests/unset/__snapshots__/jsfmt.spec.mjs.snap b/tests/unset/__snapshots__/jsfmt.spec.mjs.snap index 949971bb3..3384bb48a 100644 --- a/tests/unset/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/unset/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`unset.php 1`] = ` ====================================options===================================== @@ -22,14 +22,14 @@ unset($veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryL a->b); unset( $veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongVariable ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty - ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty + ->veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongProperty, ); ================================================================================ diff --git a/tests/use/__snapshots__/jsfmt.spec.mjs.snap b/tests/use/__snapshots__/jsfmt.spec.mjs.snap index f3b09702d..dca64bca2 100644 --- a/tests/use/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/use/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`use.php 1`] = ` ====================================options===================================== @@ -64,7 +64,7 @@ use Vendor\\Package\\SomeNamespace\\{ SubnamespaceOne\\ClassA, SubnamespaceOne\\ClassB, SubnamespaceTwo\\ClassY, - ClassZ + ClassZ, }; use Mizo\\Web\\{ Php\\WebSite, @@ -74,7 +74,7 @@ use Mizo\\Web\\{ function JS\\printTotal, function JS\\printList, const JS\\BUAIKUM, - const JS\\MAUTAM + const JS\\MAUTAM, }; use Illuminate\\Foundation\\Bootstrap\\BootProviders; use function some\\Full\\fn_a; diff --git a/tests/variadic/__snapshots__/jsfmt.spec.mjs.snap b/tests/variadic/__snapshots__/jsfmt.spec.mjs.snap index 4f7205633..64025ce9f 100644 --- a/tests/variadic/__snapshots__/jsfmt.spec.mjs.snap +++ b/tests/variadic/__snapshots__/jsfmt.spec.mjs.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`variadic.php 1`] = ` ====================================options===================================== @@ -41,7 +41,7 @@ function f($req, $opt = null, ...$params) '$req: %d; $opt: %d; number of params: %d' . "\\n", $req, $opt, - count($params) + count($params), ); } From 3ec61b64fe2ac2d9ded1ade693acdc17732c092d Mon Sep 17 00:00:00 2001 From: Christian Zosel Date: Wed, 16 Jul 2025 10:05:18 +0200 Subject: [PATCH 27/28] 0.24.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3a36bdc6c..bb2c4c42e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-php", - "version": "0.23.0", + "version": "0.24.0", "description": "Prettier PHP Plugin", "repository": "prettier/prettier-php", "author": "Lucas Azzola <@azz>", From 0c883a49850281077218007322f6149f853b2015 Mon Sep 17 00:00:00 2001 From: Andy Fowler Date: Mon, 11 Aug 2025 01:20:52 -0400 Subject: [PATCH 28/28] update README: note php 8.4 compatibility (#2439) As added in https://github.com/prettier/plugin-php/pull/2422 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da9c51d3f..aacfb96c0 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,7 @@ supported PHP version. You set the `phpVersion` to `composer` and this will only use the `composer.json` file to determine the php version, prettier will crash if the PHP cannot be determined. -You can also set the `phpVersion` to a specific version, such as `7.4`, `8.0`, `8.1`, `8.2`, or `8.3`. +You can also set the `phpVersion` to a specific version, such as `7.4`, `8.0`, `8.1`, `8.2`, `8.3` or `8.4`. **Please Note:** If the phpVersion is not set correctly for your environment, this plugin will produce code that could be incompatible with your PHP runtime. For example, if you are using PHP 7.4, but the plugin is set to PHP 8.3, it will